<?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>171710</bug_id>
          
          <creation_ts>2017-05-04 20:40:59 -0700</creation_ts>
          <short_desc>[Mac] Audio capture fails when shouldCaptureAudioInUIProcess is set.</short_desc>
          <delta_ts>2017-05-08 13:03:51 -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>jeremyj-wk</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1304982</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-05-04 20:40:59 -0700</bug_when>
    <thetext>[Mac] Audio capture fails when shouldCaptureAudioInUIProcess is set.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304984</commentid>
    <comment_count>1</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-05-04 20:48:18 -0700</bug_when>
    <thetext>rdar://problem/31848689</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304985</commentid>
    <comment_count>2</comment_count>
      <attachid>309137</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-05-04 20:48:45 -0700</bug_when>
    <thetext>Created attachment 309137
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304994</commentid>
    <comment_count>3</comment_count>
      <attachid>309141</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-05-04 21:09:49 -0700</bug_when>
    <thetext>Created attachment 309141
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305012</commentid>
    <comment_count>4</comment_count>
      <attachid>309145</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-05-04 22:35:42 -0700</bug_when>
    <thetext>Created attachment 309145
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305104</commentid>
    <comment_count>5</comment_count>
      <attachid>309145</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-05-05 08:01:54 -0700</bug_when>
    <thetext>Comment on attachment 309145
Patch

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

&gt; Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:115
&gt; +    if (!audioDeviceID.isEmpty() &amp;&amp; audioFactory()) {

Can we have cases where we have some device id but no audio factory?
Shouldn&apos;t we assert that audioFactory is not null if device is not empty?

&gt; Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:117
&gt;          if (audioSource)

If audioSource is null, shouldn&apos;t we reject the getUserMedia promise?
Or do we want to be able to resolve with only the video track if we are able to get it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305108</commentid>
    <comment_count>6</comment_count>
      <attachid>309145</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-05-05 08:11:17 -0700</bug_when>
    <thetext>Comment on attachment 309145
Patch

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

&gt;&gt; Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:117
&gt;&gt;          if (audioSource)
&gt; 
&gt; If audioSource is null, shouldn&apos;t we reject the getUserMedia promise?
&gt; Or do we want to be able to resolve with only the video track if we are able to get it?

If audioSource is NULL when audioDeviceID is not empty is an internal failure because we shouldn&apos;t end up in createMediaStream if validateRequestConstraints failed, so an ASSERT is appropriate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305112</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-05-05 08:20:47 -0700</bug_when>
    <thetext>(In reply to Eric Carlson from comment #6)
&gt; Comment on attachment 309145 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=309145&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:117
&gt; &gt;&gt;          if (audioSource)
&gt; &gt; 
&gt; &gt; If audioSource is null, shouldn&apos;t we reject the getUserMedia promise?
&gt; &gt; Or do we want to be able to resolve with only the video track if we are able to get it?
&gt; 
&gt; If audioSource is NULL when audioDeviceID is not empty is an internal
&gt; failure because we shouldn&apos;t end up in createMediaStream if
&gt; validateRequestConstraints failed, so an ASSERT is appropriate.

OK, so we should add an ASSERT for audio, an ASSERT for video.
Do we also want to return early if audio is failing so that we reject the promise.
Currently if audio fails and video succeeds, we are resolving the promise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305127</commentid>
    <comment_count>8</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-05-05 08:56:11 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #5)
&gt; Comment on attachment 309145 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=309145&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:115
&gt; &gt; +    if (!audioDeviceID.isEmpty() &amp;&amp; audioFactory()) {
&gt; 
&gt; Can we have cases where we have some device id but no audio factory?
&gt; Shouldn&apos;t we assert that audioFactory is not null if device is not empty?

Honestly, if we do anything it should be to require subclasses of RealtimeMediaSourceCenter to return a non-NULL value from defaultAudioFactory() and defaultVideoFactory() and then change the return value of audioFactory() and videoFactory() to a reference instead of a pointer. Then an ASSERT won&apos;t be necessary.

&gt; &gt; Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:117
&gt; &gt;          if (audioSource)
&gt; 
&gt; If audioSource is null, shouldn&apos;t we reject the getUserMedia promise?
&gt; Or do we want to be able to resolve with only the video track if we are able
&gt; to get it?

We&apos;re not changing this behavior in this patch. Please file a bug to do this in a follow up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305996</commentid>
    <comment_count>9</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-05-08 12:34:13 -0700</bug_when>
    <thetext>Let&apos;s land it, I&apos;ll fix the clean-up things in a follow-up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1306008</commentid>
    <comment_count>10</comment_count>
      <attachid>309145</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-08 13:03:49 -0700</bug_when>
    <thetext>Comment on attachment 309145
Patch

Clearing flags on attachment: 309145

Committed r216446: &lt;http://trac.webkit.org/changeset/216446&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1306009</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-08 13:03:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309137</attachid>
            <date>2017-05-04 20:48:45 -0700</date>
            <delta_ts>2017-05-04 21:09:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171710-20170504204843.patch</filename>
            <type>text/plain</type>
            <size>8411</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2MTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODc2ODc3ZTBiZDU3ZTI2
ZTQyYzliMWU0ZmQ4MWIwN2FkMTg1M2UyZS4uNDYwYzJhZDk4ZDBkZGI4ODMxODNmNjlmMTJhM2E5
ZmEwMjcyOTZlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE3LTA1LTA0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIEF1ZGlvIGNhcHR1
cmUgZmFpbHMgd2hlbiBzaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyBpcyBzZXQuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE3MTAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCb3RoIHRoZSBzaG91
bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyBzZXR0aW5nIGFuZCB1c2VBVkZvdW5kYXRpb25BdWRp
b0NhcHR1cmUgc2V0dGluZyB3ZXJlIHRyeWluZyB0byBzZXQKKyAgICAgICAgdGhlIGF1ZGlvIGZh
Y3RvcnkgZm9yIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIsIGFuZCB3ZXJlIHN0b21waW5nIG9u
IGVhY2ggb3RoZXJzJyBjaGFuZ2VzLiBDaGFuZ2UgdGhlIHdheQorICAgICAgICB0aGUgdXNlQVZG
b3VuZGF0aW9uQXVkaW9DYXB0dXJlIHdvcmtzIHNvIHRoYXQgaXQgb25seSBhZmZlY3RzIHRoZSBk
ZWZhdWx0QXVkaW9GYWN0b3J5LCBhbGxvd2luZyB0aGF0IGRlZmF1bHQKKyAgICAgICAgdG8gYmUg
b3ZlcnJpZGRlbiBieSB0aGUgc2h1b2xkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3Mgc2V0dGluZyB3
aGVuIGl0IGNhbGxzIHNldEF1ZGlvRmFjdG9yeSgpLgorCisgICAgICAgICogcGFnZS9TZXR0aW5n
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0VXNlQVZGb3VuZGF0aW9uQXVk
aW9DYXB0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlck1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyTWFjOjpzZXRVc2VBVkZvdW5kYXRpb25BdWRpb0NhcHR1cmUpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6c2luZ2xldG9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnBsYXRmb3JtQ2VudGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6OmRlZmF1
bHRBdWRpb0ZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlck1hYzo6ZGVmYXVsdEF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIpOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmg6CisK
IDIwMTctMDUtMDMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAg
Z2V0VXNlck1lZGlhKCkgZmFpbHMgYmVjYXVzZSBkZXZpY2VzIGxpc3QgaXMgZW1wdHkgLyBpbmFj
dGl2ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IGVlYjNkYmYxZGRlYThhYTI1MjBiMDNhYjZmMGRmN2QwMWNkNjFi
NGQuLjliMTY2NDJlNzkzYjM3YjlmOGUwZmU5YzIzYjUyNDZmYjQxZjM5NTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxNy0wNS0wNCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KKworICAgICAgICBbTWFjXSBBdWRpbyBjYXB0dXJlIGZhaWxzIHdoZW4gc2hvdWxkQ2Fw
dHVyZUF1ZGlvSW5VSVByb2Nlc3MgaXMgc2V0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNzEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYydzIHNldFVz
ZUFWRm91bmRhdGlvbkF1ZGlvQ2FwdHVyZSgpIGlzIG5vdyBhY2Nlc3NlZCB2aWEgYSBzaW5nbGV0
b24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6c3luY1dpdGhXZWJDb3JlUHJlZnMpOgorCiAyMDE3LTA1LTAzICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIE1haW50YWluIGlu
dGVyYWN0aW9uIGluZm9ybWF0aW9uIFVSTCBhcyBhIFVSTCwgbm90IGEgc3RyaW5nCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuY3BwCmluZGV4IDJkYTNiODQxMjNkZDcwZmVjNDc3ZmE3YmM4NTYwY2RkYmI0
ZTZmZmEuLjBlYWY1MjZlYjk5ZTYwYWNhN2FhOWViYjc1OWZmMDQxNTY5ZmJhYTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC02MzAsNyArNjMwLDcgQEAgdm9pZCBTZXR0aW5nczo6c2V0
VXNlQVZGb3VuZGF0aW9uQXVkaW9DYXB0dXJlKGJvb2wgdXNlQVZGb3VuZGF0aW9uQXVkaW9DYXB0
dXJlKQogewogICAgIGdVc2VBVkZvdW5kYXRpb25BdWRpb0NhcHR1cmUgPSB1c2VBVkZvdW5kYXRp
b25BdWRpb0NhcHR1cmU7CiAjaWYgVVNFKEFWRk9VTkRBVElPTikKLSAgICBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyTWFjOjpzZXRVc2VBVkZvdW5kYXRpb25BdWRpb0NhcHR1cmUodXNlQVZGb3Vu
ZGF0aW9uQXVkaW9DYXB0dXJlKTsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpz
aW5nbGV0b24oKS5zZXRVc2VBVkZvdW5kYXRpb25BdWRpb0NhcHR1cmUodXNlQVZGb3VuZGF0aW9u
QXVkaW9DYXB0dXJlKTsKICNlbmRpZgogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1h
Yy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKaW5kZXggODEyNDdhMzA0MjdkMmM4NTE4YjYyYjM1YTIz
ZWJhNTkwYjY5ODUxMi4uNDEzNmQ4YTA4NzI4YTllNGU4MThjYWRmMzU0YmZlMmY3YTg1NTczNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcApAQCAtNDcs
MzMgKzQ3LDIxIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyTWFjOjpzZXRVc2VBVkZvdW5kYXRpb25BdWRpb0NhcHR1cmUoYm9vbCBlbmFibGVk
KQogewotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPGJvb2w+IGFjdGl2ZSA9IHN0ZDo6bnVsbG9w
dDsKLSAgICBpZiAoYWN0aXZlICYmIGFjdGl2ZS52YWx1ZSgpID09IGVuYWJsZWQpCi0gICAgICAg
IHJldHVybjsKLQotICAgIGFjdGl2ZSA9IGVuYWJsZWQ7Ci0gICAgaWYgKGFjdGl2ZS52YWx1ZSgp
KSB7Ci0gICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnNldEF1
ZGlvRmFjdG9yeShBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6ZmFjdG9yeSgpKTsKLSAgICAgICAgUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0QXVkaW9DYXB0dXJlRGV2aWNl
TWFuYWdlcihBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKSk7Ci0gICAgfSBlbHNl
IHsKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0QXVk
aW9GYWN0b3J5KENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmZhY3RvcnkoKSk7Ci0jaWYgUExBVEZP
Uk0oTUFDKQotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5z
ZXRBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2Vy
OjpzaW5nbGV0b24oKSk7Ci0jZWxzZQotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzaW5nbGV0b24oKS5zZXRBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKEFWQXVkaW9TZXNzaW9u
Q2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpKTsKLSNlbmRpZgotICAgIH0KKyAgICBt
X3VzZUFWRm91bmRhdGlvbkF1ZGlvQ2FwdHVyZSA9IGVuYWJsZWQ7CiB9CiAKLQotCi1SZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyJiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpwbGF0Zm9ybUNl
bnRlcigpCitSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjJiBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyTWFjOjpzaW5nbGV0b24oKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM+IGNl
bnRlcjsKICAgICByZXR1cm4gY2VudGVyOwogfQogCitSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
JiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpwbGF0Zm9ybUNlbnRlcigpCit7CisgICAgcmV0
dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6OnNpbmdsZXRvbigpOworfQorCiBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjKCkK
IHsKICAgICBtX3N1cHBvcnRlZENvbnN0cmFpbnRzLnNldFN1cHBvcnRzV2lkdGgodHJ1ZSk7CkBA
IC0yMTcsNyArMjA1LDcgQEAgVmVjdG9yPFN0cmluZz4gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ck1hYzo6YmVzdFNvdXJjZXNGb3JUeXBlQW5kQ29uc3RyYWludHMoUmUKIAogUmVhbHRpbWVNZWRp
YVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1h
Yzo6ZGVmYXVsdEF1ZGlvRmFjdG9yeSgpCiB7Ci0gICAgcmV0dXJuICZDb3JlQXVkaW9DYXB0dXJl
U291cmNlOjpmYWN0b3J5KCk7CisgICAgcmV0dXJuIG1fdXNlQVZGb3VuZGF0aW9uQXVkaW9DYXB0
dXJlID8gJkFWQXVkaW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KCkgOiAmQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZTo6ZmFjdG9yeSgpOwogfQogCiBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb0NhcHR1
cmVGYWN0b3J5KiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpkZWZhdWx0VmlkZW9GYWN0
b3J5KCkKQEAgLTIyNSw2ICsyMTMsMTcgQEAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0
dXJlRmFjdG9yeSogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6ZGVmYXVsdFYKICAgICBy
ZXR1cm4gJkFWVmlkZW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KCk7CiB9CiAKK0NhcHR1cmVEZXZp
Y2VNYW5hZ2VyKiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpkZWZhdWx0QXVkaW9DYXB0
dXJlRGV2aWNlTWFuYWdlcigpCit7CisgICAgaWYgKG1fdXNlQVZGb3VuZGF0aW9uQXVkaW9DYXB0
dXJlKQorICAgICAgICByZXR1cm4gJkFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigp
OworI2lmIFBMQVRGT1JNKE1BQykKKyAgICByZXR1cm4gJkNvcmVBdWRpb0NhcHR1cmVEZXZpY2VN
YW5hZ2VyOjpzaW5nbGV0b24oKTsKKyNlbHNlCisgICAgcmV0dXJuICZBVkF1ZGlvU2Vzc2lvbkNh
cHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmgKaW5kZXggZmYxZjg5N2JiZWRlOTlhNDQw
NTJiNjkyY2Y1ZDhkMGFlZDEwMGQ0My4uNDk3NTU5NDg1OGU0NzI1NTExOTEwODMwZmI0MzNmMjMx
MjQxMmQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5oCkBA
IC00MiwxMCArNDIsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyTWFjIGZpbmFsIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIgewogcHVibGljOgotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMoKTsKKyAgICBz
dGF0aWMgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYyYgc2luZ2xldG9uKCk7CiAKLSAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRVc2VBVkZvdW5kYXRpb25BdWRpb0NhcHR1cmUo
Ym9vbCBlbmFibGVkKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFVzZUFWRm91bmRhdGlv
bkF1ZGlvQ2FwdHVyZShib29sIGVuYWJsZWQpOwogcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3Mg
TmV2ZXJEZXN0cm95ZWQ8UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYz47CisgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlck1hYygpOwogICAgIH5SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
TWFjKCk7CiAKICAgICB2b2lkIHZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFZhbGlkQ29uc3Ry
YWludHNIYW5kbGVyIHZhbGlkSGFuZGxlciwgSW52YWxpZENvbnN0cmFpbnRzSGFuZGxlciBpbnZh
bGlkSGFuZGxlciwgY29uc3QgTWVkaWFDb25zdHJhaW50cyYgYXVkaW9Db25zdHJhaW50cywgY29u
c3QgTWVkaWFDb25zdHJhaW50cyYgdmlkZW9Db25zdHJhaW50cykgZmluYWw7CkBAIC01Niw2ICs1
OCwxMCBAQCBwcml2YXRlOgogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJl
RmFjdG9yeSogZGVmYXVsdEF1ZGlvRmFjdG9yeSgpIGZpbmFsOwogICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3RvcnkqIGRlZmF1bHRWaWRlb0ZhY3RvcnkoKSBmaW5hbDsK
KworICAgIENhcHR1cmVEZXZpY2VNYW5hZ2VyKiBkZWZhdWx0QXVkaW9DYXB0dXJlRGV2aWNlTWFu
YWdlcigpIGZpbmFsOworCisgICAgYm9vbCBtX3VzZUFWRm91bmRhdGlvbkF1ZGlvQ2FwdHVyZSB7
IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCA3NTY4MDQwZjNkZTJjMTZhNjE4MzUzZWRlMjkzN2E4
YWUxNzA5NDFlLi5lMDAzNGJlMTdmYTRhM2ExMDQ0MTYxZjY5OWY1NjI4MzM2NmI0MWQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTMzNiw3ICszMzYsNyBAQCB2
b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzeW5jV2l0aFdlYkNv
cmVQcmVmcygpIGNvbnN0CiAKICNpZiBVU0UoQVZGT1VOREFUSU9OKQogICAgIGJvb2wgdXNlQVZG
b3VuZGF0aW9uQXVkaW9DYXB0dXJlID0gbV9wYWdlLnByZWZlcmVuY2VzKCkudXNlQVZGb3VuZGF0
aW9uQXVkaW9DYXB0dXJlKCk7Ci0gICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ck1hYzo6c2V0VXNlQVZGb3VuZGF0aW9uQXVkaW9DYXB0dXJlKHVzZUFWRm91bmRhdGlvbkF1ZGlv
Q2FwdHVyZSk7CisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6c2lu
Z2xldG9uKCkuc2V0VXNlQVZGb3VuZGF0aW9uQXVkaW9DYXB0dXJlKHVzZUFWRm91bmRhdGlvbkF1
ZGlvQ2FwdHVyZSk7CiAjZW5kaWYKICNlbmRpZgogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309141</attachid>
            <date>2017-05-04 21:09:49 -0700</date>
            <delta_ts>2017-05-04 22:35:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171710-20170504210948.patch</filename>
            <type>text/plain</type>
            <size>8426</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2MTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODc2ODc3ZTBiZDU3ZTI2
ZTQyYzliMWU0ZmQ4MWIwN2FkMTg1M2UyZS4uNDYwYzJhZDk4ZDBkZGI4ODMxODNmNjlmMTJhM2E5
ZmEwMjcyOTZlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE3LTA1LTA0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIEF1ZGlvIGNhcHR1
cmUgZmFpbHMgd2hlbiBzaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyBpcyBzZXQuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE3MTAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCb3RoIHRoZSBzaG91
bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyBzZXR0aW5nIGFuZCB1c2VBVkZvdW5kYXRpb25BdWRp
b0NhcHR1cmUgc2V0dGluZyB3ZXJlIHRyeWluZyB0byBzZXQKKyAgICAgICAgdGhlIGF1ZGlvIGZh
Y3RvcnkgZm9yIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIsIGFuZCB3ZXJlIHN0b21waW5nIG9u
IGVhY2ggb3RoZXJzJyBjaGFuZ2VzLiBDaGFuZ2UgdGhlIHdheQorICAgICAgICB0aGUgdXNlQVZG
b3VuZGF0aW9uQXVkaW9DYXB0dXJlIHdvcmtzIHNvIHRoYXQgaXQgb25seSBhZmZlY3RzIHRoZSBk
ZWZhdWx0QXVkaW9GYWN0b3J5LCBhbGxvd2luZyB0aGF0IGRlZmF1bHQKKyAgICAgICAgdG8gYmUg
b3ZlcnJpZGRlbiBieSB0aGUgc2h1b2xkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3Mgc2V0dGluZyB3
aGVuIGl0IGNhbGxzIHNldEF1ZGlvRmFjdG9yeSgpLgorCisgICAgICAgICogcGFnZS9TZXR0aW5n
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0VXNlQVZGb3VuZGF0aW9uQXVk
aW9DYXB0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlck1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyTWFjOjpzZXRVc2VBVkZvdW5kYXRpb25BdWRpb0NhcHR1cmUpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6c2luZ2xldG9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnBsYXRmb3JtQ2VudGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6OmRlZmF1
bHRBdWRpb0ZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlck1hYzo6ZGVmYXVsdEF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIpOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmg6CisK
IDIwMTctMDUtMDMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAg
Z2V0VXNlck1lZGlhKCkgZmFpbHMgYmVjYXVzZSBkZXZpY2VzIGxpc3QgaXMgZW1wdHkgLyBpbmFj
dGl2ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IGVlYjNkYmYxZGRlYThhYTI1MjBiMDNhYjZmMGRmN2QwMWNkNjFi
NGQuLjliMTY2NDJlNzkzYjM3YjlmOGUwZmU5YzIzYjUyNDZmYjQxZjM5NTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxNy0wNS0wNCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KKworICAgICAgICBbTWFjXSBBdWRpbyBjYXB0dXJlIGZhaWxzIHdoZW4gc2hvdWxkQ2Fw
dHVyZUF1ZGlvSW5VSVByb2Nlc3MgaXMgc2V0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNzEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYydzIHNldFVz
ZUFWRm91bmRhdGlvbkF1ZGlvQ2FwdHVyZSgpIGlzIG5vdyBhY2Nlc3NlZCB2aWEgYSBzaW5nbGV0
b24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6c3luY1dpdGhXZWJDb3JlUHJlZnMpOgorCiAyMDE3LTA1LTAzICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIE1haW50YWluIGlu
dGVyYWN0aW9uIGluZm9ybWF0aW9uIFVSTCBhcyBhIFVSTCwgbm90IGEgc3RyaW5nCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuY3BwCmluZGV4IDJkYTNiODQxMjNkZDcwZmVjNDc3ZmE3YmM4NTYwY2RkYmI0
ZTZmZmEuLjBlYWY1MjZlYjk5ZTYwYWNhN2FhOWViYjc1OWZmMDQxNTY5ZmJhYTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC02MzAsNyArNjMwLDcgQEAgdm9pZCBTZXR0aW5nczo6c2V0
VXNlQVZGb3VuZGF0aW9uQXVkaW9DYXB0dXJlKGJvb2wgdXNlQVZGb3VuZGF0aW9uQXVkaW9DYXB0
dXJlKQogewogICAgIGdVc2VBVkZvdW5kYXRpb25BdWRpb0NhcHR1cmUgPSB1c2VBVkZvdW5kYXRp
b25BdWRpb0NhcHR1cmU7CiAjaWYgVVNFKEFWRk9VTkRBVElPTikKLSAgICBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyTWFjOjpzZXRVc2VBVkZvdW5kYXRpb25BdWRpb0NhcHR1cmUodXNlQVZGb3Vu
ZGF0aW9uQXVkaW9DYXB0dXJlKTsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpz
aW5nbGV0b24oKS5zZXRVc2VBVkZvdW5kYXRpb25BdWRpb0NhcHR1cmUodXNlQVZGb3VuZGF0aW9u
QXVkaW9DYXB0dXJlKTsKICNlbmRpZgogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1h
Yy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKaW5kZXggODEyNDdhMzA0MjdkMmM4NTE4YjYyYjM1YTIz
ZWJhNTkwYjY5ODUxMi4uNDEzNmQ4YTA4NzI4YTllNGU4MThjYWRmMzU0YmZlMmY3YTg1NTczNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcApAQCAtNDcs
MzMgKzQ3LDIxIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyTWFjOjpzZXRVc2VBVkZvdW5kYXRpb25BdWRpb0NhcHR1cmUoYm9vbCBlbmFibGVk
KQogewotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPGJvb2w+IGFjdGl2ZSA9IHN0ZDo6bnVsbG9w
dDsKLSAgICBpZiAoYWN0aXZlICYmIGFjdGl2ZS52YWx1ZSgpID09IGVuYWJsZWQpCi0gICAgICAg
IHJldHVybjsKLQotICAgIGFjdGl2ZSA9IGVuYWJsZWQ7Ci0gICAgaWYgKGFjdGl2ZS52YWx1ZSgp
KSB7Ci0gICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnNldEF1
ZGlvRmFjdG9yeShBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6ZmFjdG9yeSgpKTsKLSAgICAgICAgUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0QXVkaW9DYXB0dXJlRGV2aWNl
TWFuYWdlcihBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKSk7Ci0gICAgfSBlbHNl
IHsKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0QXVk
aW9GYWN0b3J5KENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmZhY3RvcnkoKSk7Ci0jaWYgUExBVEZP
Uk0oTUFDKQotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5z
ZXRBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2Vy
OjpzaW5nbGV0b24oKSk7Ci0jZWxzZQotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzaW5nbGV0b24oKS5zZXRBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKEFWQXVkaW9TZXNzaW9u
Q2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpKTsKLSNlbmRpZgotICAgIH0KKyAgICBt
X3VzZUFWRm91bmRhdGlvbkF1ZGlvQ2FwdHVyZSA9IGVuYWJsZWQ7CiB9CiAKLQotCi1SZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyJiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpwbGF0Zm9ybUNl
bnRlcigpCitSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjJiBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyTWFjOjpzaW5nbGV0b24oKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM+IGNl
bnRlcjsKICAgICByZXR1cm4gY2VudGVyOwogfQogCitSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
JiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpwbGF0Zm9ybUNlbnRlcigpCit7CisgICAgcmV0
dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6OnNpbmdsZXRvbigpOworfQorCiBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjKCkK
IHsKICAgICBtX3N1cHBvcnRlZENvbnN0cmFpbnRzLnNldFN1cHBvcnRzV2lkdGgodHJ1ZSk7CkBA
IC0yMTcsNyArMjA1LDcgQEAgVmVjdG9yPFN0cmluZz4gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ck1hYzo6YmVzdFNvdXJjZXNGb3JUeXBlQW5kQ29uc3RyYWludHMoUmUKIAogUmVhbHRpbWVNZWRp
YVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1h
Yzo6ZGVmYXVsdEF1ZGlvRmFjdG9yeSgpCiB7Ci0gICAgcmV0dXJuICZDb3JlQXVkaW9DYXB0dXJl
U291cmNlOjpmYWN0b3J5KCk7CisgICAgcmV0dXJuIG1fdXNlQVZGb3VuZGF0aW9uQXVkaW9DYXB0
dXJlID8gJkFWQXVkaW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KCkgOiAmQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZTo6ZmFjdG9yeSgpOwogfQogCiBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb0NhcHR1
cmVGYWN0b3J5KiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpkZWZhdWx0VmlkZW9GYWN0
b3J5KCkKQEAgLTIyNSw2ICsyMTMsMTcgQEAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0
dXJlRmFjdG9yeSogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6ZGVmYXVsdFYKICAgICBy
ZXR1cm4gJkFWVmlkZW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KCk7CiB9CiAKK0NhcHR1cmVEZXZp
Y2VNYW5hZ2VyKiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpkZWZhdWx0QXVkaW9DYXB0
dXJlRGV2aWNlTWFuYWdlcigpCit7CisgICAgaWYgKG1fdXNlQVZGb3VuZGF0aW9uQXVkaW9DYXB0
dXJlKQorICAgICAgICByZXR1cm4gJkFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigp
OworI2lmIFBMQVRGT1JNKE1BQykKKyAgICByZXR1cm4gJkNvcmVBdWRpb0NhcHR1cmVEZXZpY2VN
YW5hZ2VyOjpzaW5nbGV0b24oKTsKKyNlbHNlCisgICAgcmV0dXJuICZBVkF1ZGlvU2Vzc2lvbkNh
cHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmgKaW5kZXggZmYxZjg5N2JiZWRlOTlhNDQw
NTJiNjkyY2Y1ZDhkMGFlZDEwMGQ0My4uOTFmYzY0ZDhkMWM2Y2M1Yjg0OWFjY2YwYTQzZjA3Yzc5
NmU0ZmY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5oCkBA
IC00MiwxMCArNDIsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyTWFjIGZpbmFsIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIgewogcHVibGljOgotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMoKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYyYgc2luZ2xl
dG9uKCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRVc2VBVkZvdW5kYXRp
b25BdWRpb0NhcHR1cmUoYm9vbCBlbmFibGVkKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dFVzZUFWRm91bmRhdGlvbkF1ZGlvQ2FwdHVyZShib29sIGVuYWJsZWQpOwogcHJpdmF0ZToKKyAg
ICBmcmllbmQgY2xhc3MgTmV2ZXJEZXN0cm95ZWQ8UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1h
Yz47CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYygpOwogICAgIH5SZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyTWFjKCk7CiAKICAgICB2b2lkIHZhbGlkYXRlUmVxdWVzdENvbnN0cmFp
bnRzKFZhbGlkQ29uc3RyYWludHNIYW5kbGVyIHZhbGlkSGFuZGxlciwgSW52YWxpZENvbnN0cmFp
bnRzSGFuZGxlciBpbnZhbGlkSGFuZGxlciwgY29uc3QgTWVkaWFDb25zdHJhaW50cyYgYXVkaW9D
b25zdHJhaW50cywgY29uc3QgTWVkaWFDb25zdHJhaW50cyYgdmlkZW9Db25zdHJhaW50cykgZmlu
YWw7CkBAIC01Niw2ICs1OCwxMCBAQCBwcml2YXRlOgogCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSogZGVmYXVsdEF1ZGlvRmFjdG9yeSgpIGZpbmFsOwogICAg
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3RvcnkqIGRlZmF1bHRWaWRlb0Zh
Y3RvcnkoKSBmaW5hbDsKKworICAgIENhcHR1cmVEZXZpY2VNYW5hZ2VyKiBkZWZhdWx0QXVkaW9D
YXB0dXJlRGV2aWNlTWFuYWdlcigpIGZpbmFsOworCisgICAgYm9vbCBtX3VzZUFWRm91bmRhdGlv
bkF1ZGlvQ2FwdHVyZSB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCA3NTY4MDQwZjNkZTJjMTZh
NjE4MzUzZWRlMjkzN2E4YWUxNzA5NDFlLi5lMDAzNGJlMTdmYTRhM2ExMDQ0MTYxZjY5OWY1NjI4
MzM2NmI0MWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTMz
Niw3ICszMzYsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
OjpzeW5jV2l0aFdlYkNvcmVQcmVmcygpIGNvbnN0CiAKICNpZiBVU0UoQVZGT1VOREFUSU9OKQog
ICAgIGJvb2wgdXNlQVZGb3VuZGF0aW9uQXVkaW9DYXB0dXJlID0gbV9wYWdlLnByZWZlcmVuY2Vz
KCkudXNlQVZGb3VuZGF0aW9uQXVkaW9DYXB0dXJlKCk7Ci0gICAgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlck1hYzo6c2V0VXNlQVZGb3VuZGF0aW9uQXVkaW9DYXB0dXJlKHVzZUFW
Rm91bmRhdGlvbkF1ZGlvQ2FwdHVyZSk7CisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlck1hYzo6c2luZ2xldG9uKCkuc2V0VXNlQVZGb3VuZGF0aW9uQXVkaW9DYXB0dXJlKHVz
ZUFWRm91bmRhdGlvbkF1ZGlvQ2FwdHVyZSk7CiAjZW5kaWYKICNlbmRpZgogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309145</attachid>
            <date>2017-05-04 22:35:42 -0700</date>
            <delta_ts>2017-05-08 13:03:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171710-20170504223541.patch</filename>
            <type>text/plain</type>
            <size>17551</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2MTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmI1MTY1OTZkNTE3ZDM1
MzE1NDEyYWFjY2RhYWMxZGUwYmYyNzU3Zi4uYWYxN2ViODFhOTM5M2M3MDlhNzgxMmZlOTljMTll
NTg0ZjNjNGJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDE3LTA1LTA0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCisgICAgICAgIFtNYWNdIEF1ZGlvIGNhcHR1
cmUgZmFpbHMgd2hlbiBzaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyBpcyBzZXQuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE3MTAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCb3RoIHRoZSBzaG91
bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyBzZXR0aW5nIGFuZCB1c2VBVkZvdW5kYXRpb25BdWRp
b0NhcHR1cmUgc2V0dGluZyB3ZXJlIHRyeWluZyB0byBzZXQKKyAgICAgICAgdGhlIGF1ZGlvIGZh
Y3RvcnkgZm9yIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIsIGFuZCB3ZXJlIHN0b21waW5nIG9u
IGVhY2ggb3RoZXJzJyBjaGFuZ2VzLiBDaGFuZ2UgdGhlIHdheQorICAgICAgICB0aGUgdXNlQVZG
b3VuZGF0aW9uQXVkaW9DYXB0dXJlIHdvcmtzIHNvIHRoYXQgaXQgb25seSBhZmZlY3RzIHRoZSBk
ZWZhdWx0QXVkaW9GYWN0b3J5LCBhbGxvd2luZyB0aGF0IGRlZmF1bHQKKyAgICAgICAgdG8gYmUg
b3ZlcnJpZGRlbiBieSB0aGUgc2h1b2xkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3Mgc2V0dGluZyB3
aGVuIGl0IGNhbGxzIHNldEF1ZGlvRmFjdG9yeSgpLgorCisgICAgICAgICogcGFnZS9TZXR0aW5n
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0VXNlQVZGb3VuZGF0aW9uQXVk
aW9DYXB0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OmF1ZGlvRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjp2aWRlb0ZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6YXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcik6CisgICAgICAgIChXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp2aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2Vy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjphdWRp
b0ZhY3RvcnkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6dmlkZW9GYWN0b3J5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dmlkZW9DYXB0
dXJlRGV2aWNlTWFuYWdlcik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6c2V0VXNlQVZGb3VuZGF0aW9uQXVkaW9D
YXB0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6
OnNpbmdsZXRvbik6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpwbGF0Zm9ybUNlbnRlcik6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyTWFjOjpkZWZhdWx0QXVkaW9GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6OmRlZmF1bHRBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2Vy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlck1hYy5oOgorCisyMDE3LTA1LTA0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUIGF0IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDOjpwcm92aWRlSW5wdXQoKQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTcxNzExCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlZWIzZGJmMWRkZWE4YWEyNTIw
YjAzYWI2ZjBkZjdkMDFjZDYxYjRkLi45YjE2NjQyZTc5M2IzN2I5ZjhlMGZlOWMyM2I1MjQ2ZmI0
MWYzOTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDUtMDQgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gQXVkaW8gY2FwdHVyZSBm
YWlscyB3aGVuIHNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzIGlzIHNldC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTcxMAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXJNYWMncyBzZXRVc2VBVkZvdW5kYXRpb25BdWRpb0NhcHR1cmUoKSBpcyBub3cgYWNj
ZXNzZWQgdmlhIGEgc2luZ2xldG9uLgorCisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnN5bmNXaXRoV2ViQ29yZVByZWZzKToK
KwogMjAxNy0wNS0wMyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBNYWludGFpbiBpbnRlcmFjdGlvbiBpbmZvcm1hdGlvbiBVUkwgYXMgYSBVUkwsIG5v
dCBhIHN0cmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCAyZGEzYjg0MTIzZGQ3MGZl
YzQ3N2ZhN2JjODU2MGNkZGJiNGU2ZmZhLi4wZWFmNTI2ZWI5OWU2MGFjYTdhYTllYmI3NTlmZjA0
MTU2OWZiYWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtNjMwLDcgKzYzMCw3IEBA
IHZvaWQgU2V0dGluZ3M6OnNldFVzZUFWRm91bmRhdGlvbkF1ZGlvQ2FwdHVyZShib29sIHVzZUFW
Rm91bmRhdGlvbkF1ZGlvQ2FwdHVyZSkKIHsKICAgICBnVXNlQVZGb3VuZGF0aW9uQXVkaW9DYXB0
dXJlID0gdXNlQVZGb3VuZGF0aW9uQXVkaW9DYXB0dXJlOwogI2lmIFVTRShBVkZPVU5EQVRJT04p
Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6c2V0VXNlQVZGb3VuZGF0aW9uQXVk
aW9DYXB0dXJlKHVzZUFWRm91bmRhdGlvbkF1ZGlvQ2FwdHVyZSk7CisgICAgUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlck1hYzo6c2luZ2xldG9uKCkuc2V0VXNlQVZGb3VuZGF0aW9uQXVkaW9DYXB0
dXJlKHVzZUFWRm91bmRhdGlvbkF1ZGlvQ2FwdHVyZSk7CiAjZW5kaWYKIH0KICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCBiOWQzZDQ3Nzk2MDYyYmVlZDQxYmQ5
YTI3YTRhMWFjNGM1NzIwMjg2Li5hMGJiNTNiN2M1ZmFiZDZkOGUzZDljMjA3YmM1YTk4YzViYjQ0
MjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAtNzgsNiArNzgsMTEg
QEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp1bnNldEF1ZGlvRmFjdG9yeShSZWFs
dGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHQKICAgICAgICAgbV9hdWRpb0ZhY3RvcnkgPSBudWxs
cHRyOwogfQogCitSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5KiBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjphdWRpb0ZhY3RvcnkoKQoreworICAgIHJldHVybiBtX2F1
ZGlvRmFjdG9yeSA/IG1fYXVkaW9GYWN0b3J5OiBkZWZhdWx0QXVkaW9GYWN0b3J5KCk7Cit9CisK
IHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0VmlkZW9GYWN0b3J5KFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkpCiB7CiAgICAgbV92aWRl
b0ZhY3RvcnkgPSAmZmFjdG9yeTsKQEAgLTg5LDYgKzk0LDExIEBAIHZvaWQgUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6dW5zZXRWaWRlb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6Vmlk
ZW9DYXB0CiAgICAgICAgIG1fdmlkZW9GYWN0b3J5ID0gbnVsbHB0cjsKIH0KIAorUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6dmlkZW9GYWN0b3J5KCkKK3sKKyAgICByZXR1cm4gbV92aWRlb0ZhY3RvcnkgPyBtX3ZpZGVv
RmFjdG9yeSA6IGRlZmF1bHRWaWRlb0ZhY3RvcnkoKTsKK30KKwogdm9pZCBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzZXRBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKENhcHR1cmVEZXZpY2VN
YW5hZ2VyJiBkZXZpY2VNYW5hZ2VyKQogewogICAgIG1fYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdl
ciA9ICZkZXZpY2VNYW5hZ2VyOwpAQCAtMTAwLDYgKzExMCwxMSBAQCB2b2lkIFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6OnVuc2V0QXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcihDYXB0dXJlRGV2
aWNlTWFuYQogICAgICAgICBtX2F1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIgPSBudWxscHRyOwog
fQogCitDYXB0dXJlRGV2aWNlTWFuYWdlciogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6YXVk
aW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpCit7CisgICAgcmV0dXJuIG1fYXVkaW9DYXB0dXJlRGV2
aWNlTWFuYWdlciA/IG1fYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlciA6IGRlZmF1bHRBdWRpb0Nh
cHR1cmVEZXZpY2VNYW5hZ2VyKCk7Cit9CisKIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6c2V0VmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcihDYXB0dXJlRGV2aWNlTWFuYWdlciYgZGV2
aWNlTWFuYWdlcikKIHsKICAgICBtX3ZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIgPSAmZGV2aWNl
TWFuYWdlcjsKQEAgLTExMSw2ICsxMjYsMTEgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjp1bnNldFZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoQ2FwdHVyZURldmljZU1hbmEKICAg
ICAgICAgbV92aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyID0gbnVsbHB0cjsKIH0KIAorQ2FwdHVy
ZURldmljZU1hbmFnZXIqIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZpZGVvQ2FwdHVyZURl
dmljZU1hbmFnZXIoKQoreworICAgIHJldHVybiBtX3ZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIg
PyBtX3ZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIgOiBkZWZhdWx0VmlkZW9DYXB0dXJlRGV2aWNl
TWFuYWdlcigpOworfQorCiBzdGF0aWMgdm9pZCBhZGRTdHJpbmdUb1NIQTEoU0hBMSYgc2hhMSwg
Y29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7CiAgICAgaWYgKHN0cmluZy5pc0VtcHR5KCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyLmgKaW5kZXggN2JjN2Q4ZWI2NjQwNWM4NTljMTA3YjdmODI0
MmY1MjkzM2VjZTBiZi4uY2UwNjE3NmNiZWRlOGQzMDA4MTcxMTA4MDc0ZDM2ODdlNDViNmZjMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaApAQCAtNzEsMjIgKzcxLDIyIEBAIHB1Ymxp
YzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QXVkaW9GYWN0b3J5KFJlYWx0aW1lTWVk
aWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3RvcnkmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHVuc2V0QXVkaW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3Rv
cnkmKTsKLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5KiBhdWRp
b0ZhY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvRmFjdG9yeTsgfQorICAgIFdFQkNPUkVf
RVhQT1JUIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3RvcnkqIGF1ZGlvRmFj
dG9yeSgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWRlb0ZhY3RvcnkoUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSYpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgdW5zZXRWaWRlb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJl
RmFjdG9yeSYpOwotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3Rvcnkq
IHZpZGVvRmFjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9GYWN0b3J5OyB9CisgICAgV0VC
Q09SRV9FWFBPUlQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSogdmlk
ZW9GYWN0b3J5KCk7CiAKICAgICB2aXJ0dWFsIENhcHR1cmVEZXZpY2VNYW5hZ2VyKiBkZWZhdWx0
QXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0
dWFsIENhcHR1cmVEZXZpY2VNYW5hZ2VyKiBkZWZhdWx0VmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdl
cigpIHsgcmV0dXJuIG51bGxwdHI7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QXVk
aW9DYXB0dXJlRGV2aWNlTWFuYWdlcihDYXB0dXJlRGV2aWNlTWFuYWdlciYpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgdW5zZXRBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKENhcHR1cmVEZXZp
Y2VNYW5hZ2VyJik7Ci0gICAgQ2FwdHVyZURldmljZU1hbmFnZXIqIGF1ZGlvQ2FwdHVyZURldmlj
ZU1hbmFnZXIoKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI7IH0K
KyAgICBDYXB0dXJlRGV2aWNlTWFuYWdlciogYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpOwog
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKENh
cHR1cmVEZXZpY2VNYW5hZ2VyJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1bnNldFZpZGVv
Q2FwdHVyZURldmljZU1hbmFnZXIoQ2FwdHVyZURldmljZU1hbmFnZXImKTsKLSAgICBDYXB0dXJl
RGV2aWNlTWFuYWdlciogdmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIGNvbnN0IHsgcmV0dXJu
IG1fdmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcjsgfQorICAgIENhcHR1cmVEZXZpY2VNYW5hZ2Vy
KiB2aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCk7CiAKICAgICBTdHJpbmcgaGFzaFN0cmluZ1dp
dGhTYWx0KGNvbnN0IFN0cmluZyYgaWQsIGNvbnN0IFN0cmluZyYgaGFzaFNhbHQpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8Q2FwdHVyZURldmljZT4gY2FwdHVyZURldmljZVdp
dGhVbmlxdWVJRChjb25zdCBTdHJpbmcmIGlkLCBjb25zdCBTdHJpbmcmIGhhc2hTYWx0KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcAppbmRleCA4MTI0N2Ez
MDQyN2QyYzg1MThiNjJiMzVhMjNlYmE1OTBiNjk4NTEyLi41NjVhNTE2ZjgwNWJlNjJkMDE1ODE1
M2ZkYWJjN2YwNzlmNzFiYTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXJNYWMuY3BwCkBAIC00NywzMyArNDcsMjEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB2
b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6OnNldFVzZUFWRm91bmRhdGlvbkF1ZGlv
Q2FwdHVyZShib29sIGVuYWJsZWQpCiB7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Ym9vbD4g
YWN0aXZlID0gc3RkOjpudWxsb3B0OwotICAgIGlmIChhY3RpdmUgJiYgYWN0aXZlLnZhbHVlKCkg
PT0gZW5hYmxlZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYWN0aXZlID0gZW5hYmxlZDsKLSAg
ICBpZiAoYWN0aXZlLnZhbHVlKCkpIHsKLSAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6c2luZ2xldG9uKCkuc2V0QXVkaW9GYWN0b3J5KEFWQXVkaW9DYXB0dXJlU291cmNlOjpmYWN0
b3J5KCkpOwotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5z
ZXRBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmds
ZXRvbigpKTsKLSAgICB9IGVsc2UgewotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzaW5nbGV0b24oKS5zZXRBdWRpb0ZhY3RvcnkoQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6ZmFj
dG9yeSgpKTsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnNpbmdsZXRvbigpLnNldEF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoQ29yZUF1ZGlv
Q2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpKTsKLSNlbHNlCi0gICAgICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnNldEF1ZGlvQ2FwdHVyZURldmljZU1h
bmFnZXIoQVZBdWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkpOwot
I2VuZGlmCi0gICAgfQorICAgIG1fdXNlQVZGb3VuZGF0aW9uQXVkaW9DYXB0dXJlID0gZW5hYmxl
ZDsKIH0KIAotCi0KLVJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXImIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnBsYXRmb3JtQ2VudGVyKCkKK1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMm
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6OnNpbmdsZXRvbigpCiB7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlck1hYz4gY2VudGVyOwogICAgIHJldHVybiBjZW50ZXI7CiB9CiAKK1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXImIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnBsYXRmb3Jt
Q2VudGVyKCkKK3sKKyAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6c2lu
Z2xldG9uKCk7Cit9CisKIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6OlJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXJNYWMoKQogewogICAgIG1fc3VwcG9ydGVkQ29uc3RyYWludHMuc2V0U3Vw
cG9ydHNXaWR0aCh0cnVlKTsKQEAgLTg3LDE3ICs3NSw2IEBAIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXJNYWM6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMoKQogICAgIG1fc3VwcG9ydGVk
Q29uc3RyYWludHMuc2V0U3VwcG9ydHNFY2hvQ2FuY2VsbGF0aW9uKGZhbHNlKTsKICAgICBtX3N1
cHBvcnRlZENvbnN0cmFpbnRzLnNldFN1cHBvcnRzRGV2aWNlSWQodHJ1ZSk7CiAgICAgbV9zdXBw
b3J0ZWRDb25zdHJhaW50cy5zZXRTdXBwb3J0c0dyb3VwSWQodHJ1ZSk7Ci0KLSAgICBtX2F1ZGlv
RmFjdG9yeSA9ICZDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KCk7Ci0gICAgbV92aWRl
b0ZhY3RvcnkgPSAmQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmZhY3RvcnkoKTsKLQotI2lmIFBMQVRG
T1JNKE1BQykKLSAgICBtX2F1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIgPSAmQ29yZUF1ZGlvQ2Fw
dHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpOwotI2Vsc2UKLSAgICAvLyBGSVhNRSAxNzA4
NjE6IFVzZSBBVkF1ZGlvU2Vzc2lvbiB0byBlbnVtZXJhdGUgYXVkaW8gY2FwdHVyZSBkZXZpY2Vz
IG9uIGlPUwotICAgIG1fYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlciA9ICZBVkNhcHR1cmVEZXZp
Y2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsKLSNlbmRpZgotICAgIG1fdmlkZW9DYXB0dXJlRGV2aWNl
TWFuYWdlciA9ICZBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsKIH0KIAogUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6flJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMo
KQpAQCAtMTM1LDggKzExMiw4IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6
Y3JlYXRlTWVkaWFTdHJlYW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyIGNvbXBsCiAgICAgVmVjdG9y
PFJlZjxSZWFsdGltZU1lZGlhU291cmNlPj4gdmlkZW9Tb3VyY2VzOwogICAgIFN0cmluZyBpbnZh
bGlkQ29uc3RyYWludDsKIAotICAgIGlmICghYXVkaW9EZXZpY2VJRC5pc0VtcHR5KCkgJiYgbV9h
dWRpb0ZhY3RvcnkpIHsKLSAgICAgICAgYXV0byBhdWRpb1NvdXJjZSA9IG1fYXVkaW9GYWN0b3J5
LT5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoYXVkaW9EZXZpY2VJRCwgYXVkaW9Db25zdHJhaW50
cyk7CisgICAgaWYgKCFhdWRpb0RldmljZUlELmlzRW1wdHkoKSAmJiBhdWRpb0ZhY3RvcnkoKSkg
eworICAgICAgICBhdXRvIGF1ZGlvU291cmNlID0gYXVkaW9GYWN0b3J5KCktPmNyZWF0ZUF1ZGlv
Q2FwdHVyZVNvdXJjZShhdWRpb0RldmljZUlELCBhdWRpb0NvbnN0cmFpbnRzKTsKICAgICAgICAg
aWYgKGF1ZGlvU291cmNlKQogICAgICAgICAgICAgYXVkaW9Tb3VyY2VzLmFwcGVuZChhdWRpb1Nv
dXJjZS5zb3VyY2UoKSk7CiAjaWYgIUxPR19ESVNBQkxFRApAQCAtMTQ0LDggKzEyMSw4IEBAIHZv
aWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6Y3JlYXRlTWVkaWFTdHJlYW0oTmV3TWVk
aWFTdHJlYW1IYW5kbGVyIGNvbXBsCiAgICAgICAgICAgICBMT0coTWVkaWEsICJSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyTWFjOjpjcmVhdGVNZWRpYVN0cmVhbSglcCksIGF1ZGlvIGNvbnN0cmFp
bnRzIGZhaWxlZCB0byBhcHBseTogJXMiLCB0aGlzLCBhdWRpb1NvdXJjZS5lcnJvck1lc3NhZ2Uu
dXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYKICAgICB9Ci0gICAgaWYgKCF2aWRlb0RldmljZUlELmlz
RW1wdHkoKSAmJiBtX3ZpZGVvRmFjdG9yeSkgewotICAgICAgICBhdXRvIHZpZGVvU291cmNlID0g
bV92aWRlb0ZhY3RvcnktPmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZSh2aWRlb0RldmljZUlELCB2
aWRlb0NvbnN0cmFpbnRzKTsKKyAgICBpZiAoIXZpZGVvRGV2aWNlSUQuaXNFbXB0eSgpICYmIHZp
ZGVvRmFjdG9yeSgpKSB7CisgICAgICAgIGF1dG8gdmlkZW9Tb3VyY2UgPSB2aWRlb0ZhY3Rvcnko
KS0+Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKHZpZGVvRGV2aWNlSUQsIHZpZGVvQ29uc3RyYWlu
dHMpOwogICAgICAgICBpZiAodmlkZW9Tb3VyY2UpCiAgICAgICAgICAgICB2aWRlb1NvdXJjZXMu
YXBwZW5kKHZpZGVvU291cmNlLnNvdXJjZSgpKTsKICNpZiAhTE9HX0RJU0FCTEVECkBAIC0xNjQs
MTEgKzE0MSwxMSBAQCBWZWN0b3I8Q2FwdHVyZURldmljZT4gUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlck1hYzo6Z2V0TWVkaWFTdHJlYW1EZXZpY2VzKCkKIHsKICAgICBWZWN0b3I8Q2FwdHVyZURl
dmljZT4gcmVzdWx0OwogCi0gICAgaWYgKG1fYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcikKLSAg
ICAgICAgcmVzdWx0LmFwcGVuZFZlY3RvcihtX2F1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXItPmdl
dEF1ZGlvU291cmNlc0luZm8oKSk7CisgICAgaWYgKGF1dG8gYXVkaW9EZXZpY2VNYW5hZ2VyID0g
YXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpKQorICAgICAgICByZXN1bHQuYXBwZW5kVmVjdG9y
KGF1ZGlvRGV2aWNlTWFuYWdlci0+Z2V0QXVkaW9Tb3VyY2VzSW5mbygpKTsKIAotICAgIGlmICht
X3ZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIpCi0gICAgICAgIHJlc3VsdC5hcHBlbmRWZWN0b3Io
bV92aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLT5nZXRWaWRlb1NvdXJjZXNJbmZvKCkpOworICAg
IGlmIChhdXRvIHZpZGVvRGV2aWNlTWFuYWdlciA9IHZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIo
KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZFZlY3Rvcih2aWRlb0RldmljZU1hbmFnZXItPmdldFZp
ZGVvU291cmNlc0luZm8oKSk7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtMTkwLDEwICsx
NjcsMTAgQEAgVmVjdG9yPFN0cmluZz4gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6YmVz
dFNvdXJjZXNGb3JUeXBlQW5kQ29uc3RyYWludHMoUmUKICAgICAgICAgICAgIGNvbnRpbnVlOwog
CiAgICAgICAgIENhcHR1cmVTb3VyY2VPckVycm9yIHNvdXJjZU9yRXJyb3I7Ci0gICAgICAgIGlm
ICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvICYmIG1fdmlkZW9GYWN0
b3J5KQotICAgICAgICAgICAgc291cmNlT3JFcnJvciA9IG1fdmlkZW9GYWN0b3J5LT5jcmVhdGVW
aWRlb0NhcHR1cmVTb3VyY2UoY2FwdHVyZURldmljZS5wZXJzaXN0ZW50SWQoKSwgJmNvbnN0cmFp
bnRzKTsKLSAgICAgICAgZWxzZSBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
OjpBdWRpbyAmJiBtX2F1ZGlvRmFjdG9yeSkKLSAgICAgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBt
X2F1ZGlvRmFjdG9yeS0+Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNhcHR1cmVEZXZpY2UucGVy
c2lzdGVudElkKCksICZjb25zdHJhaW50cyk7CisgICAgICAgIGlmICh0eXBlID09IFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvICYmIHZpZGVvRmFjdG9yeSgpKQorICAgICAgICAgICAg
c291cmNlT3JFcnJvciA9IHZpZGVvRmFjdG9yeSgpLT5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2Uo
Y2FwdHVyZURldmljZS5wZXJzaXN0ZW50SWQoKSwgJmNvbnN0cmFpbnRzKTsKKyAgICAgICAgZWxz
ZSBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbyAmJiBhdWRpb0Zh
Y3RvcnkoKSkKKyAgICAgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBhdWRpb0ZhY3RvcnkoKS0+Y3Jl
YXRlQXVkaW9DYXB0dXJlU291cmNlKGNhcHR1cmVEZXZpY2UucGVyc2lzdGVudElkKCksICZjb25z
dHJhaW50cyk7CiAKICAgICAgICAgaWYgKCFzb3VyY2VPckVycm9yKSB7CiAgICAgICAgICAgICAv
LyBGSVhNRTogSGFuZGxlIHRoZSBjYXNlIG9mIGludmFsaWQgY29uc3RyYWludHMgb24gbW9yZSB0
aGFuIG9uZSBkZXZpY2UuCkBAIC0yMTcsNyArMTk0LDcgQEAgVmVjdG9yPFN0cmluZz4gUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6YmVzdFNvdXJjZXNGb3JUeXBlQW5kQ29uc3RyYWludHMo
UmUKIAogUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSogUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlck1hYzo6ZGVmYXVsdEF1ZGlvRmFjdG9yeSgpCiB7Ci0gICAgcmV0dXJu
ICZDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KCk7CisgICAgcmV0dXJuIG1fdXNlQVZG
b3VuZGF0aW9uQXVkaW9DYXB0dXJlID8gJkFWQXVkaW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KCkg
OiAmQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6ZmFjdG9yeSgpOwogfQogCiBSZWFsdGltZU1lZGlh
U291cmNlOjpWaWRlb0NhcHR1cmVGYWN0b3J5KiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFj
OjpkZWZhdWx0VmlkZW9GYWN0b3J5KCkKQEAgLTIyNSw2ICsyMDIsMjIgQEAgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1h
Yzo6ZGVmYXVsdFYKICAgICByZXR1cm4gJkFWVmlkZW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KCk7
CiB9CiAKK0NhcHR1cmVEZXZpY2VNYW5hZ2VyKiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFj
OjpkZWZhdWx0QXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpCit7CisgICAgaWYgKG1fdXNlQVZG
b3VuZGF0aW9uQXVkaW9DYXB0dXJlKQorICAgICAgICByZXR1cm4gJkFWQ2FwdHVyZURldmljZU1h
bmFnZXI6OnNpbmdsZXRvbigpOworI2lmIFBMQVRGT1JNKE1BQykKKyAgICByZXR1cm4gJkNvcmVB
dWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsKKyNlbHNlCisgICAgcmV0dXJu
ICZBVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKTsKKyNlbmRp
ZgorfQorCitDYXB0dXJlRGV2aWNlTWFuYWdlciogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1h
Yzo6ZGVmYXVsdFZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXIoKQoreworICAgIHJldHVybiAmQVZD
YXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuaAppbmRleCBmZjFmODk3YmJlZGU5OWE0NDA1MmI2OTJj
ZjVkOGQwYWVkMTAwZDQzLi5kZTZmOGVhYzU2NGJmYmZjYzI5NWJhMmUzNmVmMzJmODU3YWUyZTkz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmgKQEAgLTQyLDEw
ICs0MiwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXJNYWMgZmluYWwgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlciB7CiBw
dWJsaWM6Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYygpOworICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjJiBzaW5nbGV0b24oKTsK
IAotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNldFVzZUFWRm91bmRhdGlvbkF1ZGlv
Q2FwdHVyZShib29sIGVuYWJsZWQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VXNlQVZG
b3VuZGF0aW9uQXVkaW9DYXB0dXJlKGJvb2wgZW5hYmxlZCk7CiBwcml2YXRlOgorICAgIGZyaWVu
ZCBjbGFzcyBOZXZlckRlc3Ryb3llZDxSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjPjsKKyAg
ICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjKCk7CiAgICAgflJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXJNYWMoKTsKIAogICAgIHZvaWQgdmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoVmFs
aWRDb25zdHJhaW50c0hhbmRsZXIgdmFsaWRIYW5kbGVyLCBJbnZhbGlkQ29uc3RyYWludHNIYW5k
bGVyIGludmFsaWRIYW5kbGVyLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBhdWRpb0NvbnN0cmFp
bnRzLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiB2aWRlb0NvbnN0cmFpbnRzKSBmaW5hbDsKQEAg
LTU2LDYgKzU4LDExIEBAIHByaXZhdGU6CiAKICAgICBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRp
b0NhcHR1cmVGYWN0b3J5KiBkZWZhdWx0QXVkaW9GYWN0b3J5KCkgZmluYWw7CiAgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSogZGVmYXVsdFZpZGVvRmFjdG9yeSgp
IGZpbmFsOworCisgICAgQ2FwdHVyZURldmljZU1hbmFnZXIqIGRlZmF1bHRBdWRpb0NhcHR1cmVE
ZXZpY2VNYW5hZ2VyKCkgZmluYWw7CisgICAgQ2FwdHVyZURldmljZU1hbmFnZXIqIGRlZmF1bHRW
aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWw7CisKKyAgICBib29sIG1fdXNlQVZGb3Vu
ZGF0aW9uQXVkaW9DYXB0dXJlIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDc1NjgwNDBmM2Rl
MmMxNmE2MTgzNTNlZGUyOTM3YThhZTE3MDk0MWUuLmUwMDM0YmUxN2ZhNGEzYTEwNDQxNjFmNjk5
ZjU2MjgzMzY2YjQxZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApA
QCAtMzM2LDcgKzMzNiw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6OnN5bmNXaXRoV2ViQ29yZVByZWZzKCkgY29uc3QKIAogI2lmIFVTRShBVkZPVU5EQVRJ
T04pCiAgICAgYm9vbCB1c2VBVkZvdW5kYXRpb25BdWRpb0NhcHR1cmUgPSBtX3BhZ2UucHJlZmVy
ZW5jZXMoKS51c2VBVkZvdW5kYXRpb25BdWRpb0NhcHR1cmUoKTsKLSAgICBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpzZXRVc2VBVkZvdW5kYXRpb25BdWRpb0NhcHR1cmUo
dXNlQVZGb3VuZGF0aW9uQXVkaW9DYXB0dXJlKTsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyTWFjOjpzaW5nbGV0b24oKS5zZXRVc2VBVkZvdW5kYXRpb25BdWRpb0NhcHR1
cmUodXNlQVZGb3VuZGF0aW9uQXVkaW9DYXB0dXJlKTsKICNlbmRpZgogI2VuZGlmCiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>