<?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>189930</bug_id>
          
          <creation_ts>2018-09-24 14:26:57 -0700</creation_ts>
          <short_desc>[MediaStream] Update constraints supported by getDisplayMedia</short_desc>
          <delta_ts>2018-09-25 14:31:39 -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>WebRTC</component>
          <version>Other</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="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1462884</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-09-24 14:26:57 -0700</bug_when>
    <thetext>The spec has changed the constraints that getDisplayMedia supports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462891</commentid>
    <comment_count>1</comment_count>
      <attachid>350686</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-09-24 14:33:57 -0700</bug_when>
    <thetext>Created attachment 350686
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462892</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-24 14:34:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/44740305&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463099</commentid>
    <comment_count>3</comment_count>
      <attachid>350686</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-09-24 21:43:39 -0700</bug_when>
    <thetext>Comment on attachment 350686
Patch

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

&gt; Source/WebCore/Modules/mediastream/UserMediaRequest.cpp:163
&gt; +    // 2. For each member present in constraints whose value, value, is a dictionary, run the following steps:

s/, value,//

&gt; Source/WebCore/Modules/mediastream/UserMediaRequest.cpp:175
&gt; +

Remove this line?

&gt; Source/WebCore/Modules/mediastream/UserMediaRequest.cpp:213
&gt; +        case MediaConstraintType::EchoCancellation:

From your quote of the spec, we should also reject if any of these value has a min/exact value.
Maybe we should add some tests for these values.

&gt; Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp:245
&gt; +            if (request.type != MediaStreamRequest::Type::UserMedia || !request.audioConstraints.isValid)

To improve readability, we could try to split more getDisplayDevice vs. getUserMedia code path.
For instance, have one top level request.type check in this function and introduce getCaptureDevices and getScreenDevices to iterate over relevant devices according request.type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463179</commentid>
    <comment_count>4</comment_count>
      <attachid>350686</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-09-25 10:27:43 -0700</bug_when>
    <thetext>Comment on attachment 350686
Patch

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

&gt;&gt; Source/WebCore/Modules/mediastream/UserMediaRequest.cpp:163
&gt;&gt; +    // 2. For each member present in constraints whose value, value, is a dictionary, run the following steps:
&gt; 
&gt; s/, value,//

This is verbatim from the spec.

&gt;&gt; Source/WebCore/Modules/mediastream/UserMediaRequest.cpp:175
&gt;&gt; +
&gt; 
&gt; Remove this line?

OK

&gt;&gt; Source/WebCore/Modules/mediastream/UserMediaRequest.cpp:213
&gt;&gt; +        case MediaConstraintType::EchoCancellation:
&gt; 
&gt; From your quote of the spec, we should also reject if any of these value has a min/exact value.
&gt; Maybe we should add some tests for these values.

These are audio-only constraints, and we don&apos;t support audio with getDisplayMedia. Good idea about the test, I will add an invalid audio constraint to the test.

&gt;&gt; Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp:245
&gt;&gt; +            if (request.type != MediaStreamRequest::Type::UserMedia || !request.audioConstraints.isValid)
&gt; 
&gt; To improve readability, we could try to split more getDisplayDevice vs. getUserMedia code path.
&gt; For instance, have one top level request.type check in this function and introduce getCaptureDevices and getScreenDevices to iterate over relevant devices according request.type.

Good idea, I will do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463182</commentid>
    <comment_count>5</comment_count>
      <attachid>350756</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-09-25 10:29:56 -0700</bug_when>
    <thetext>Created attachment 350756
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463244</commentid>
    <comment_count>6</comment_count>
      <attachid>350756</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-25 11:37:38 -0700</bug_when>
    <thetext>Comment on attachment 350756
Patch for landing

Clearing flags on attachment: 350756

Committed r236465: &lt;https://trac.webkit.org/changeset/236465&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463245</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-25 11:37:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463323</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-09-25 13:54:02 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463324</commentid>
    <comment_count>9</comment_count>
      <attachid>350787</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-09-25 13:54:03 -0700</bug_when>
    <thetext>Created attachment 350787
Fix broken API tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463343</commentid>
    <comment_count>10</comment_count>
      <attachid>350787</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-25 14:31:38 -0700</bug_when>
    <thetext>Comment on attachment 350787
Fix broken API tests

Clearing flags on attachment: 350787

Committed r236476: &lt;https://trac.webkit.org/changeset/236476&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463344</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-25 14:31:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350686</attachid>
            <date>2018-09-24 14:33:57 -0700</date>
            <delta_ts>2018-09-25 10:29:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189930-20180924143356.patch</filename>
            <type>text/plain</type>
            <size>20207</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2NDI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjBkZTU4ZGIyNjI0NjJl
OTg4N2Q4MzI0MWI0NjllMjE1YTEwZDY3MS4uNTg4YTI5YzYyZGM4NWU5NDg5Mjg4NTAyNWM4NTJl
NDNjN2FmOWZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE4LTA5LTI0ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVh
bV0gVXBkYXRlIGNvbnN0cmFpbnRzIHN1cHBvcnRlZCBieSBnZXREaXNwbGF5TWVkaWEKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTkzMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywg
dXBkYXRlZCBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9nZXQtZGlzcGxheS1tZWRpYS1w
cm9tcHQuaHRtbC4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2Vz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlczo6Z2V0RGlzcGxheU1lZGlhIGNv
bnN0KTogSWdub3JlIGF1ZGlvIGNvbnN0cmFpbnRzLgorCisgICAgICAgICogTW9kdWxlcy9tZWRp
YXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omhhc0ludmFs
aWRHZXREaXNwbGF5TWVkaWFDb25zdHJhaW50KTogQ2hlY2sgZm9yIGludmFsaWQgY29uc3RyYWlu
dHMuCisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjpzdGFydCk6IENoZWNrIGZv
ciBpbnZhbGlkIGNvbnN0cmFpbnRzLgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVz
dDo6ZGVueSk6IFN1cHBvcnQgbmV3IGVycm9yLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vVXNlck1lZGlhUmVxdWVzdC5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyk6CisKIDIwMTgt
MDktMjQgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFNlcGFy
YXRlIE1hYyBhbmQgaU9TIGltcGxlbWVudGF0aW9uIG9mIHdpbmRvd3NLZXlDb2RlRm9yQ2hhckNv
ZGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YURldmljZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURl
dmljZXMuY3BwCmluZGV4IGQ5YjBiYjc3NWFlODc3YzliMjQxNWFmZjA4NTA5NTNlZjlkM2QxNDYu
LjY5MGZmMzY2ZThmMGUxZjYyYmFkMDBhNDRjMjYxMGZlMTAxNWNmMTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKQEAgLTEy
MCw3ICsxMjAsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYURldmljZXM6OmdldERpc3BsYXlN
ZWRpYShjb25zdCBTdHJlYW1Db25zdHJhaW50cyYgY29uc3RyYQogICAgIGlmICghZG9jdW1lbnQp
CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwogCi0gICAg
YXV0byByZXF1ZXN0ID0gVXNlck1lZGlhUmVxdWVzdDo6Y3JlYXRlKCpkb2N1bWVudCwgeyBNZWRp
YVN0cmVhbVJlcXVlc3Q6OlR5cGU6OkRpc3BsYXlNZWRpYSwgY3JlYXRlTWVkaWFDb25zdHJhaW50
cyhjb25zdHJhaW50cy5hdWRpbyksIGNyZWF0ZU1lZGlhQ29uc3RyYWludHMoY29uc3RyYWludHMu
dmlkZW8pIH0sIFdURk1vdmUocHJvbWlzZSkpOworICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRp
YVJlcXVlc3Q6OmNyZWF0ZSgqZG9jdW1lbnQsIHsgTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpE
aXNwbGF5TWVkaWEsIHsgfSwgY3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdHJhaW50cy52aWRl
bykgfSwgV1RGTW92ZShwcm9taXNlKSk7CiAgICAgaWYgKHJlcXVlc3QpCiAgICAgICAgIHJlcXVl
c3QtPnN0YXJ0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IGRhNWMxMDhlMjA4ODY1ZTBlMjJiODk3
MzdhMjI1NjY0NzRjNWFjNWEuLmY1ODJlMGEzMDU3YzgwNTM0YTJjNTBkMzQyNDAwZmMxMWZjZTUy
MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1l
ZGlhUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9V
c2VyTWVkaWFSZXF1ZXN0LmNwcApAQCAtMTU2LDYgKzE1Niw3NSBAQCBzdGF0aWMgYm9vbCBjYW5D
YWxsR2V0VXNlck1lZGlhKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCB3YW50c0F1ZGlvLCBib29s
IHdhbnRzVgogICAgIHJldHVybiB0cnVlOwogfQogCitzdGF0aWMgYm9vbCBoYXNJbnZhbGlkR2V0
RGlzcGxheU1lZGlhQ29uc3RyYWludChjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50
cykKK3sKKyAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8vbWVkaWFjYXB0dXJlLXNjcmVlbi1z
aGFyZS8jbmF2aWdhdG9yLWFkZGl0aW9ucworICAgIC8vIDEuIExldCBjb25zdHJhaW50cyBiZSB0
aGUgbWV0aG9kJ3MgZmlyc3QgYXJndW1lbnQuCisgICAgLy8gMi4gRm9yIGVhY2ggbWVtYmVyIHBy
ZXNlbnQgaW4gY29uc3RyYWludHMgd2hvc2UgdmFsdWUsIHZhbHVlLCBpcyBhIGRpY3Rpb25hcnks
IHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgorICAgIC8vICAgICAxLiBJZiB2YWx1ZSBjb250YWlu
cyBhIG1lbWJlciBuYW1lZCBhZHZhbmNlZCwgcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRo
IGEgbmV3bHkgY3JlYXRlZCBUeXBlRXJyb3IuCisgICAgLy8gICAgIDIuIElmIHZhbHVlIGNvbnRh
aW5zIGEgbWVtYmVyIHdoaWNoIGluIHR1cm4gaXMgYSBkaWN0aW9uYXJ5IGNvbnRhaW5pbmcgYSBt
ZW1iZXIgbmFtZWQgZWl0aGVyIG1pbiBvcgorICAgIC8vICAgICAgICBleGFjdCwgcmV0dXJuIGEg
cHJvbWlzZSByZWplY3RlZCB3aXRoIGEgbmV3bHkgY3JlYXRlZCBUeXBlRXJyb3IuCisgICAgaWYg
KCFjb25zdHJhaW50cy5pc1ZhbGlkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAo
IWNvbnN0cmFpbnRzLmFkdmFuY2VkQ29uc3RyYWludHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKworICAgIGJvb2wgaW52YWxpZCA9IGZhbHNlOworICAgIGNvbnN0cmFpbnRzLm1h
bmRhdG9yeUNvbnN0cmFpbnRzLmZpbHRlcihbJmludmFsaWRdIChjb25zdCBNZWRpYUNvbnN0cmFp
bnQmIGNvbnN0cmFpbnQpIG11dGFibGUgeworCisgICAgICAgIHN3aXRjaCAoY29uc3RyYWludC5j
b25zdHJhaW50VHlwZSgpKSB7CisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6V2lk
dGg6CisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0OiB7CisgICAgICAg
ICAgICBhdXRvJiBpbnRDb25zdHJhaW50ID0gZG93bmNhc3Q8SW50Q29uc3RyYWludD4oY29uc3Ry
YWludCk7CisgICAgICAgICAgICBpbnQgdmFsdWU7CisgICAgICAgICAgICBpbnZhbGlkID0gaW50
Q29uc3RyYWludC5nZXRFeGFjdCh2YWx1ZSkgfHwgaW50Q29uc3RyYWludC5nZXRNaW4odmFsdWUp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIE1lZGlhQ29u
c3RyYWludFR5cGU6OkFzcGVjdFJhdGlvOgorICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5
cGU6OkZyYW1lUmF0ZTogeworICAgICAgICAgICAgYXV0byYgZG91YmxlQ29uc3RyYWludCA9IGRv
d25jYXN0PERvdWJsZUNvbnN0cmFpbnQ+KGNvbnN0cmFpbnQpOworICAgICAgICAgICAgZG91Ymxl
IHZhbHVlOworICAgICAgICAgICAgaW52YWxpZCA9IGRvdWJsZUNvbnN0cmFpbnQuZ2V0RXhhY3Qo
dmFsdWUpIHx8IGRvdWJsZUNvbnN0cmFpbnQuZ2V0TWluKHZhbHVlKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEaXNw
bGF5U3VyZmFjZToKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpMb2dpY2FsU3Vy
ZmFjZTogeworICAgICAgICAgICAgYXV0byYgYm9vbENvbnN0cmFpbnQgPSBkb3duY2FzdDxCb29s
ZWFuQ29uc3RyYWludD4oY29uc3RyYWludCk7CisgICAgICAgICAgICBib29sIHZhbHVlOworICAg
ICAgICAgICAgaW52YWxpZCA9IGJvb2xDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRU
eXBlOjpGYWNpbmdNb2RlOgorICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkRldmlj
ZUlkOgorICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3VwSWQ6IHsKKyAgICAg
ICAgICAgIGF1dG8mIHN0cmluZ0NvbnN0cmFpbnQgPSBkb3duY2FzdDxTdHJpbmdDb25zdHJhaW50
Pihjb25zdHJhaW50KTsKKyAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHZhbHVlczsKKyAgICAg
ICAgICAgIGludmFsaWQgPSBzdHJpbmdDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlcyk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50
VHlwZTo6U2FtcGxlUmF0ZToKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpTYW1w
bGVTaXplOgorICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlZvbHVtZToKKyAgICAg
ICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpFY2hvQ2FuY2VsbGF0aW9uOgorICAgICAgICAg
ICAgLy8gSWdub3JlZC4KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgTWVkaWFD
b25zdHJhaW50VHlwZTo6VW5rbm93bjoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gaW52YWxp
ZDsKKyAgICB9KTsKKworICAgIHJldHVybiBpbnZhbGlkOworfQorCiB2b2lkIFVzZXJNZWRpYVJl
cXVlc3Q6OnN0YXJ0KCkKIHsKICAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsK
QEAgLTE2NSwxOSArMjM0LDggQEAgdm9pZCBVc2VyTWVkaWFSZXF1ZXN0OjpzdGFydCgpCiAgICAg
fQogCiAgICAgaWYgKG1fcmVxdWVzdC50eXBlID09IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6
RGlzcGxheU1lZGlhKSB7Ci0gICAgICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNh
cHR1cmUtc2NyZWVuLXNoYXJlLyNjb25zdHJhaW50cwotICAgICAgICAvLyA1LjIgQ29uc3RyYWlu
aW5nIERpc3BsYXkgU3VyZmFjZSBTZWxlY3Rpb24KLSAgICAgICAgLy8gVGhlIGdldERpc3BsYXlN
ZWRpYSBmdW5jdGlvbiBkb2VzIG5vdCBwZXJtaXQgdGhlIHVzZSBvZiBjb25zdHJhaW50cyBmb3Ig
c2VsZWN0aW9uIG9mIGEgc291cmNlIGFzIGRlc2NyaWJlZAotICAgICAgICAvLyBpbiB0aGUgZ2V0
VXNlck1lZGlhKCkgYWxnb3JpdGhtLiBQcmlvciB0byBpbnZva2luZyB0aGUgZ2V0VXNlck1lZGlh
KCkgYWxnb3JpdGhtLCBpZiBlaXRoZXIgb2YgdGhlIHZpZGVvCi0gICAgICAgIC8vIGFuZCBhdWRp
byBhdHRyaWJ1dGVzIGFyZSBzZXQgdG8gYSBNZWRpYVRyYWNrQ29uc3RyYWludHMgdmFsdWUgKGFz
IG9wcG9zZWQgdG8gYmVpbmcgYWJzZW50IG9yIHNldCB0byBhCi0gICAgICAgIC8vIEJvb2xlYW4g
dmFsdWUpLCByZWplY3QgdGhlIHByb21pc2Ugd2l0aCBhIEludmFsaWRBY2Nlc3NFcnJvciBhbmQg
YWJvcnQuCi0gICAgICAgIGlmIChtX3JlcXVlc3QudmlkZW9Db25zdHJhaW50cy5pc1ZhbGlkICYm
ICEobV9yZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMuaXNFbXB0
eSgpICYmIG1fcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzLmFkdmFuY2VkQ29uc3RyYWludHMuaXNF
bXB0eSgpKSkgewotICAgICAgICAgICAgZGVueShNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6SW52
YWxpZEFjY2Vzcyk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBp
ZiAobV9yZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMuaXNWYWxpZCAmJiAhKG1fcmVxdWVzdC5hdWRp
b0NvbnN0cmFpbnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzLmlzRW1wdHkoKSAmJiBtX3JlcXVlc3Qu
YXVkaW9Db25zdHJhaW50cy5hZHZhbmNlZENvbnN0cmFpbnRzLmlzRW1wdHkoKSkpIHsKLSAgICAg
ICAgICAgIGRlbnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OkludmFsaWRBY2Nlc3MpOworICAg
ICAgICBpZiAoaGFzSW52YWxpZEdldERpc3BsYXlNZWRpYUNvbnN0cmFpbnQobV9yZXF1ZXN0LnZp
ZGVvQ29uc3RyYWludHMpKSB7CisgICAgICAgICAgICBkZW55KE1lZGlhQWNjZXNzRGVuaWFsUmVh
c29uOjpJbGxlZ2FsQ29uc3RyYWludCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
ICAgICB9CkBAIC0yNjUsNiArMzIzLDEwIEBAIHZvaWQgVXNlck1lZGlhUmVxdWVzdDo6ZGVueShN
ZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiByZWFzb24sIGNvbnN0IFN0cmluZyYgbWVzc2FnCiAKICAg
ICBFeGNlcHRpb25Db2RlIGNvZGU7CiAgICAgc3dpdGNoIChyZWFzb24pIHsKKyAgICBjYXNlIE1l
ZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpJbGxlZ2FsQ29uc3RyYWludDoKKyAgICAgICAgUkVMRUFT
RV9MT0coTWVkaWFTdHJlYW0sICJVc2VyTWVkaWFSZXF1ZXN0OjpkZW55IC0gaW52YWxpZCBjb25z
dHJhaW50cyIpOworICAgICAgICBjb2RlID0gVHlwZUVycm9yOworICAgICAgICBicmVhazsKICAg
ICBjYXNlIE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpOb0NvbnN0cmFpbnRzOgogICAgICAgICBS
RUxFQVNFX0xPRyhNZWRpYVN0cmVhbSwgIlVzZXJNZWRpYVJlcXVlc3Q6OmRlbnkgLSBubyBjb25z
dHJhaW50cyIpOwogICAgICAgICBjb2RlID0gVHlwZUVycm9yOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCBjOWU5
ZDIwNGFhODkzYWRjYzQ2ZjU0MGRhZGYxMWFjZjE5MDc5ZjgxLi5kZTUxZmQ5ZmM0M2ViMjk3ZTVk
MmEyN2U3NjRhYTRkMjdjMzBhNWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaApAQCAtNTYsNyArNTYsNyBAQCBwdWJs
aWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBbGxvd2VkTWVkaWFEZXZpY2VVSURzKGNv
bnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWxsb3coQ2FwdHVyZURldmljZSYmIGF1ZGlvRGV2
aWNlLCBDYXB0dXJlRGV2aWNlJiYgdmlkZW9EZXZpY2UsIFN0cmluZyYmIGRldmljZUlkZW50aWZp
ZXJIYXNoU2FsdCk7CiAKLSAgICBlbnVtIE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uIHsgTm9Db25z
dHJhaW50cywgVXNlck1lZGlhRGlzYWJsZWQsIE5vQ2FwdHVyZURldmljZXMsIEludmFsaWRDb25z
dHJhaW50LCBIYXJkd2FyZUVycm9yLCBQZXJtaXNzaW9uRGVuaWVkLCBJbnZhbGlkQWNjZXNzLCBP
dGhlckZhaWx1cmUgfTsKKyAgICBlbnVtIE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uIHsgTm9Db25z
dHJhaW50cywgVXNlck1lZGlhRGlzYWJsZWQsIE5vQ2FwdHVyZURldmljZXMsIEludmFsaWRDb25z
dHJhaW50LCBIYXJkd2FyZUVycm9yLCBQZXJtaXNzaW9uRGVuaWVkLCBJbnZhbGlkQWNjZXNzLCBJ
bGxlZ2FsQ29uc3RyYWludCwgT3RoZXJGYWlsdXJlIH07CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBkZW55KE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2Fn
ZSA9IGVtcHR5U3RyaW5nKCkpOwogCiAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIGF1ZGlvRGV2
aWNlVUlEcygpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9EZXZpY2VVSURzOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXIuY3BwCmluZGV4IGZmZDUxZDRlNDZkNWU4YWFhMmEyM2EwNjJhYTEy
NGY4NTJmM2ZjNDYuLmNjMjg0MjczZTg5MmY5YTI5NTNkYTE4MWFjMmFmOGQ1NTIxODdiMWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCkBAIC0yNDEsMjIgKzI0MSwyMCBAQCB2
b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRz
KFZhbGlkQ29uc3RyYWludHNIYW5kbAogICAgICAgICAgICAgICAgIHZpZGVvRGV2aWNlSW5mby5h
cHBlbmQoe3NvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+Zml0bmVzc1Njb3JlKCksIGRldmlj
ZX0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgotICAgICAgICAgICAgaWYgKHJlcXVlc3Qu
YXVkaW9Db25zdHJhaW50cy5pc1ZhbGlkKSB7Ci0gICAgICAgICAgICAgICAgYXV0byBzb3VyY2VP
ckVycm9yID0gYXVkaW9GYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGRldmljZSwg
eyB9KTsKLSAgICAgICAgICAgICAgICBpZiAoc291cmNlT3JFcnJvciAmJiBzb3VyY2VPckVycm9y
LmNhcHR1cmVTb3VyY2UtPnN1cHBvcnRzQ29uc3RyYWludHMocmVxdWVzdC5hdWRpb0NvbnN0cmFp
bnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCi0gICAgICAgICAgICAgICAgICAgIGF1ZGlvRGV2aWNl
SW5mby5hcHBlbmQoe3NvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+Zml0bmVzc1Njb3JlKCks
IGRldmljZX0pOwotICAgICAgICAgICAgfQorICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6Ok1pY3JvcGhvbmU6IHsKKyAgICAgICAgICAgIGlmIChyZXF1ZXN0LnR5cGUgIT0g
TWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpVc2VyTWVkaWEgfHwgIXJlcXVlc3QuYXVkaW9Db25z
dHJhaW50cy5pc1ZhbGlkKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAg
ICBhdXRvIHNvdXJjZU9yRXJyb3IgPSBhdWRpb0ZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVT
b3VyY2UoZGV2aWNlLCB7IH0pOworICAgICAgICAgICAgaWYgKHNvdXJjZU9yRXJyb3IgJiYgc291
cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5zdXBwb3J0c0NvbnN0cmFpbnRzKHJlcXVlc3QuYXVk
aW9Db25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpKQorICAgICAgICAgICAgICAgIGF1ZGlv
RGV2aWNlSW5mby5hcHBlbmQoe3NvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+Zml0bmVzc1Nj
b3JlKCksIGRldmljZX0pOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICAgICAg
Y2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CiAgICAgICAgIGNhc2UgQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZTo6QXBwbGljYXRpb246CiAgICAgICAgIGNhc2UgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgogICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OkJyb3dzZXI6IHsKLSAgICAgICAgICAgIGlmIChyZXF1ZXN0LnR5cGUgIT0g
TWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpEaXNwbGF5TWVkaWEpCi0gICAgICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgICAgICBBU1NFUlQocmVxdWVzdC5hdWRpb0NvbnN0cmFpbnRzLm1h
bmRhdG9yeUNvbnN0cmFpbnRzLmlzRW1wdHkoKSk7Ci0gICAgICAgICAgICBBU1NFUlQocmVxdWVz
dC52aWRlb0NvbnN0cmFpbnRzLmFkdmFuY2VkQ29uc3RyYWludHMuaXNFbXB0eSgpKTsKLSAgICAg
ICAgICAgIGlmICghcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzLmlzVmFsaWQgfHwgIXJlcXVlc3Qu
dmlkZW9Db25zdHJhaW50cy5hZHZhbmNlZENvbnN0cmFpbnRzLmlzRW1wdHkoKSB8fCAhcmVxdWVz
dC52aWRlb0NvbnN0cmFpbnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgIGlmIChyZXF1ZXN0LnR5cGUgIT0gTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpEaXNw
bGF5TWVkaWEgfHwgIXJlcXVlc3QudmlkZW9Db25zdHJhaW50cy5pc1ZhbGlkKQogICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSB2aWRl
b0ZhY3RvcnkoKS5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCB7IH0pOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGU5MmIzM2M2YWJkNWMyY2M0MzMwZTFiYmUzZjg0MWMxM2M5ZjVjYjkuLjU2MjdlNTM5MzM4OTI1
ZWU0ZjQ1ODNlNzUzOTk0OGM1MjI1ZGQ3OTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOC0w
OS0yNCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBb
TWVkaWFTdHJlYW1dIFVwZGF0ZSBjb25zdHJhaW50cyBzdXBwb3J0ZWQgYnkgZ2V0RGlzcGxheU1l
ZGlhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODk5
MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2dldC1kaXNwbGF5LW1lZGlhLXByb21wdC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZ2V0LWRp
c3BsYXktbWVkaWEtcHJvbXB0Lmh0bWw6CisKIDIwMTgtMDktMjQgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIHNvbWUgdGVzdCByZXN1bHRz
IHVuZGVyIGNvbXBvc2l0aW5nL292ZXJmbG93CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9nZXQtZGlzcGxheS1tZWRpYS1wcm9tcHQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZ2V0LWRp
c3BsYXktbWVkaWEtcHJvbXB0LWV4cGVjdGVkLnR4dAppbmRleCA4NzhhNGZjNjI5NWE5MjliMDRh
ZGI0Y2YyOTRkNjZjNDBmMWU5NDdkLi41ZWE0MDFlNzJkMDVlNjdmN2JlNTc3NGY0ZTA2ZjRkZjQw
ZDNmYzE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0
cmVhbS9nZXQtZGlzcGxheS1tZWRpYS1wcm9tcHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2dldC1kaXNwbGF5LW1lZGlhLXByb21w
dC1leHBlY3RlZC50eHQKQEAgLTUsMjYgKzUsNDQgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUK
IAogUEFTUyBudW1iZXJPZlRpbWVzR2V0VXNlck1lZGlhUHJvbXB0SGFzQmVlbkNhbGxlZCgpIGlz
IDAKIAotKiogUmVxdWVzdCBhbiBhdWRpby1vbmx5IHN0cmVhbSwgdGhlIHVzZXIgc2hvdWxkIGJl
IHByb21wdGVkICoqCi1QQVNTIG51bWJlck9mVGltZXNHZXRVc2VyTWVkaWFQcm9tcHRIYXNCZWVu
Q2FsbGVkKCkgaXMgMQotUEFTUyBzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGggaXMgMQot
UEFTUyBzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGggaXMgMAorKiogUmVxdWVzdCBhbiBh
dWRpby1vbmx5IHN0cmVhbSwgdGhlIHVzZXIgc2hvdWxkIG5vdCBiZSBwcm9tcHRlZCAqKgorUEFT
UyBudW1iZXJPZlRpbWVzR2V0VXNlck1lZGlhUHJvbXB0SGFzQmVlbkNhbGxlZCgpIGlzIDAKK1BB
U1Mgc3RyZWFtIGlzIHVuZGVmaW5lZC4KK1BBU1MgZXJyIGluc3RhbmNlb2YgRXJyb3IgIGlzIHRy
dWUKK1BBU1MgZXJyLm5hbWUgaXMgIlR5cGVFcnJvciIKIAogKiogUmVxdWVzdCBhbiB2aWRlby1v
bmx5IHN0cmVhbSwgdGhlIHVzZXIgc2hvdWxkIGJlIHByb21wdGVkICoqCi1QQVNTIG51bWJlck9m
VGltZXNHZXRVc2VyTWVkaWFQcm9tcHRIYXNCZWVuQ2FsbGVkKCkgaXMgMgorUEFTUyBudW1iZXJP
ZlRpbWVzR2V0VXNlck1lZGlhUHJvbXB0SGFzQmVlbkNhbGxlZCgpIGlzIDEKIFBBU1Mgc3RyZWFt
LmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoIGlzIDAKIFBBU1Mgc3RyZWFtLmdldFZpZGVvVHJhY2tz
KCkubGVuZ3RoIGlzIDEKIAotKiogUmVxdWVzdCBhIHN0cmVhbSB3aXRoIGF1ZGlvIGFuZCB2aWRl
bywgdGhlIHVzZXIgc2hvdWxkIGJlIHByb21wdGVkICoqCi1QQVNTIG51bWJlck9mVGltZXNHZXRV
c2VyTWVkaWFQcm9tcHRIYXNCZWVuQ2FsbGVkKCkgaXMgMwotUEFTUyBzdHJlYW0uZ2V0QXVkaW9U
cmFja3MoKS5sZW5ndGggaXMgMQorKiogUmVxdWVzdCBhIHN0cmVhbSB3aXRoIGF1ZGlvIGFuZCB2
aWRlbywgdGhlIHVzZXIgc2hvdWxkIGJlIHByb21wdGVkIGJ1dCBubyBhdWRpbyB0cmFjayBzaG91
bGQgYmUgY3JlYXRlZCAqKgorUEFTUyBudW1iZXJPZlRpbWVzR2V0VXNlck1lZGlhUHJvbXB0SGFz
QmVlbkNhbGxlZCgpIGlzIDIKK1BBU1Mgc3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoIGlz
IDAKIFBBU1Mgc3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoIGlzIDEKIAotKiogUmVxdWVz
dCBhIHN0cmVhbSB3aXRoIGludmFsaWQgY29uc3RyYWludHMsIHRoZSB1c2VyIHNob3VsZCBub3Qg
YmUgcHJvbXB0ZWQgKioKLVBBU1MgbnVtYmVyT2ZUaW1lc0dldFVzZXJNZWRpYVByb21wdEhhc0Jl
ZW5DYWxsZWQoKSBpcyAzCi1QQVNTIHN0cmVhbSBpcyBudWxsCisqKiBSZXF1ZXN0IGEgc3RyZWFt
IHdpdGggJ21heCcgY29uc3RyYWludHMsIHRoZSB1c2VyIHNob3VsZCBub3QgYmUgcHJvbXB0ZWQg
KioKK1BBU1MgbnVtYmVyT2ZUaW1lc0dldFVzZXJNZWRpYVByb21wdEhhc0JlZW5DYWxsZWQoKSBp
cyAyCitQQVNTIHN0cmVhbSBpcyB1bmRlZmluZWQuCiBQQVNTIGVyciBpbnN0YW5jZW9mIEVycm9y
ICBpcyB0cnVlCi1QQVNTIGVyci5uYW1lIGlzICJJbnZhbGlkQWNjZXNzRXJyb3IiCitQQVNTIGVy
ci5uYW1lIGlzICJUeXBlRXJyb3IiCisKKyoqIFJlcXVlc3QgYSBzdHJlYW0gd2l0aCAnbWluJyBj
b25zdHJhaW50cywgdGhlIHVzZXIgc2hvdWxkIG5vdCBiZSBwcm9tcHRlZCAqKgorUEFTUyBudW1i
ZXJPZlRpbWVzR2V0VXNlck1lZGlhUHJvbXB0SGFzQmVlbkNhbGxlZCgpIGlzIDIKK1BBU1Mgc3Ry
ZWFtIGlzIHVuZGVmaW5lZC4KK1BBU1MgZXJyIGluc3RhbmNlb2YgRXJyb3IgIGlzIHRydWUKK1BB
U1MgZXJyLm5hbWUgaXMgIlR5cGVFcnJvciIKKworKiogUmVxdWVzdCBhIHN0cmVhbSB3aXRoICdh
ZHZhbmNlZCcgY29uc3RyYWludHMsIHRoZSB1c2VyIHNob3VsZCBub3QgYmUgcHJvbXB0ZWQgKioK
K1BBU1MgbnVtYmVyT2ZUaW1lc0dldFVzZXJNZWRpYVByb21wdEhhc0JlZW5DYWxsZWQoKSBpcyAy
CitQQVNTIHN0cmVhbSBpcyB1bmRlZmluZWQuCitQQVNTIGVyciBpbnN0YW5jZW9mIEVycm9yICBp
cyB0cnVlCitQQVNTIGVyci5uYW1lIGlzICJUeXBlRXJyb3IiCisKKyoqIFJlcXVlc3QgYSBzdHJl
YW0gd2l0aCB2YWxpZCBjb25zdHJhaW50cywgdGhlIHVzZXIgc2hvdWxkIGJlIHByb21wdGVkICoq
CitQQVNTIG51bWJlck9mVGltZXNHZXRVc2VyTWVkaWFQcm9tcHRIYXNCZWVuQ2FsbGVkKCkgaXMg
MworUEFTUyBzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGggaXMgMAorUEFTUyBzdHJlYW0u
Z2V0VmlkZW9UcmFja3MoKS5sZW5ndGggaXMgMQogCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c3RyZWFtL2dldC1kaXNwbGF5LW1lZGlhLXByb21wdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZ2V0LWRpc3BsYXktbWVkaWEtcHJvbXB0Lmh0bWwKaW5k
ZXggYjQ0NTgyMTQyNTAwZjYxYmI2ODI1NTE3MDQ3OWNlMDkyMGI4ZDljNi4uMDM5YjM1NTljMDFm
YjBiNTc0NGQ1Y2MzODFhYWY0MTc1ZDQyMmJjYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZ2V0LWRpc3BsYXktbWVkaWEtcHJvbXB0Lmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZ2V0LWRpc3Bs
YXktbWVkaWEtcHJvbXB0Lmh0bWwKQEAgLTE4LDQyICsxOCw3OCBAQAogICAgIH0KICAgICAKICAg
ICBhc3luYyBmdW5jdGlvbiBwcm9tcHRGb3JBdWRpb09ubHkoKSB7Ci0gICAgICAgIGRlYnVnKCI8
YnI+KiogUmVxdWVzdCBhbiBhdWRpby1vbmx5IHN0cmVhbSwgdGhlIHVzZXIgc2hvdWxkIGJlIHBy
b21wdGVkICoqIik7Ci0gICAgICAgIHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmlj
ZXMuZ2V0RGlzcGxheU1lZGlhKHsgYXVkaW86IHRydWUgfSk7Ci0gICAgICAgIHNob3VsZEJlKCJu
dW1iZXJPZlRpbWVzR2V0VXNlck1lZGlhUHJvbXB0SGFzQmVlbkNhbGxlZCgpIiwgIjEiKTsKLSAg
ICAgICAgc2hvdWxkQmUoInN0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCIsICIxIik7Ci0g
ICAgICAgIHNob3VsZEJlKCJzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgiLCAiMCIpOwor
ICAgICAgICBkZWJ1ZygiPGJyPioqIFJlcXVlc3QgYW4gYXVkaW8tb25seSBzdHJlYW0sIHRoZSB1
c2VyIHNob3VsZCBub3QgYmUgcHJvbXB0ZWQgKioiKTsKKyAgICAgICAgc3RyZWFtID0gYXdhaXQg
bmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXREaXNwbGF5TWVkaWEoeyBhdWRpbzogdHJ1ZSB9KQor
ICAgICAgICAgICAgLmNhdGNoKChlKSA9PiB7IGVyciA9IGU7IH0pOworICAgICAgICBzaG91bGRC
ZSgibnVtYmVyT2ZUaW1lc0dldFVzZXJNZWRpYVByb21wdEhhc0JlZW5DYWxsZWQoKSIsICIwIik7
CisgICAgICAgIHNob3VsZEJlVW5kZWZpbmVkKCJzdHJlYW0iKTsKKyAgICAgICAgc2hvdWxkQmVU
cnVlKCJlcnIgaW5zdGFuY2VvZiBFcnJvciAiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJlcnIubmFtZSIsICJUeXBlRXJyb3IiKTsKICAgICB9CiAKICAgICBhc3luYyBmdW5jdGlv
biBwcm9tcHRGb3JWaWRlb09ubHkoKSB7CiAgICAgICAgIGRlYnVnKCI8YnI+KiogUmVxdWVzdCBh
biB2aWRlby1vbmx5IHN0cmVhbSwgdGhlIHVzZXIgc2hvdWxkIGJlIHByb21wdGVkICoqIik7CiAg
ICAgICAgIHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0RGlzcGxheU1l
ZGlhKHsgdmlkZW86IHRydWUgfSk7Ci0gICAgICAgIHNob3VsZEJlKCJudW1iZXJPZlRpbWVzR2V0
VXNlck1lZGlhUHJvbXB0SGFzQmVlbkNhbGxlZCgpIiwgIjIiKTsKKyAgICAgICAgc2hvdWxkQmUo
Im51bWJlck9mVGltZXNHZXRVc2VyTWVkaWFQcm9tcHRIYXNCZWVuQ2FsbGVkKCkiLCAiMSIpOwog
ICAgICAgICBzaG91bGRCZSgic3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoIiwgIjAiKTsK
ICAgICAgICAgc2hvdWxkQmUoInN0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCIsICIxIik7
CiAgICAgfQogCiAgICAgYXN5bmMgZnVuY3Rpb24gcHJvbXB0Rm9yQXVkaW9BbmRWaWRlbygpIHsK
LSAgICAgICAgZGVidWcoIjxicj4qKiBSZXF1ZXN0IGEgc3RyZWFtIHdpdGggYXVkaW8gYW5kIHZp
ZGVvLCB0aGUgdXNlciBzaG91bGQgYmUgcHJvbXB0ZWQgKioiKTsKKyAgICAgICAgZGVidWcoIjxi
cj4qKiBSZXF1ZXN0IGEgc3RyZWFtIHdpdGggYXVkaW8gYW5kIHZpZGVvLCB0aGUgdXNlciBzaG91
bGQgYmUgcHJvbXB0ZWQgYnV0IG5vIGF1ZGlvIHRyYWNrIHNob3VsZCBiZSBjcmVhdGVkICoqIik7
CiAgICAgICAgIHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0RGlzcGxh
eU1lZGlhKHsgdmlkZW86IHRydWUsIGF1ZGlvOiB0cnVlIH0pOwotICAgICAgICBzaG91bGRCZSgi
bnVtYmVyT2ZUaW1lc0dldFVzZXJNZWRpYVByb21wdEhhc0JlZW5DYWxsZWQoKSIsICIzIik7Ci0g
ICAgICAgIHNob3VsZEJlKCJzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgiLCAiMSIpOwor
ICAgICAgICBzaG91bGRCZSgibnVtYmVyT2ZUaW1lc0dldFVzZXJNZWRpYVByb21wdEhhc0JlZW5D
YWxsZWQoKSIsICIyIik7CisgICAgICAgIHNob3VsZEJlKCJzdHJlYW0uZ2V0QXVkaW9UcmFja3Mo
KS5sZW5ndGgiLCAiMCIpOwogICAgICAgICBzaG91bGRCZSgic3RyZWFtLmdldFZpZGVvVHJhY2tz
KCkubGVuZ3RoIiwgIjEiKTsKICAgICB9CiAgICAgCi0gICAgYXN5bmMgZnVuY3Rpb24gcHJvbXB0
V2l0aE1lZGlhVHJhY2tDb25zdHJhaW50cygpIHsKLSAgICAgICAgZGVidWcoIjxicj4qKiBSZXF1
ZXN0IGEgc3RyZWFtIHdpdGggaW52YWxpZCBjb25zdHJhaW50cywgdGhlIHVzZXIgc2hvdWxkIG5v
dCBiZSBwcm9tcHRlZCAqKiIpOworICAgIGFzeW5jIGZ1bmN0aW9uIHByb21wdFdpdGhFeGFjdFZp
ZGVvQ29uc3RyYWludHMoKSB7CisgICAgICAgIGRlYnVnKCI8YnI+KiogUmVxdWVzdCBhIHN0cmVh
bSB3aXRoICdtYXgnIGNvbnN0cmFpbnRzLCB0aGUgdXNlciBzaG91bGQgbm90IGJlIHByb21wdGVk
ICoqIik7CisKKyAgICAgICAgc3RyZWFtID0gbnVsbDsKKyAgICAgICAgc3RyZWFtID0gYXdhaXQg
bmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXREaXNwbGF5TWVkaWEoeyB2aWRlbzoge3dpZHRoOiB7
ZXhhY3Q6IDY0MH0sIGhlaWdodDoge2V4YWN0OiA0ODB9fSB9KQorICAgICAgICAgICAgLmNhdGNo
KChlKSA9PiB7IGVyciA9IGU7IH0pOworICAgICAgICAKKyAgICAgICAgc2hvdWxkQmUoIm51bWJl
ck9mVGltZXNHZXRVc2VyTWVkaWFQcm9tcHRIYXNCZWVuQ2FsbGVkKCkiLCAiMiIpOworICAgICAg
ICBzaG91bGRCZVVuZGVmaW5lZCgic3RyZWFtIik7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgiZXJy
IGluc3RhbmNlb2YgRXJyb3IgIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXJy
Lm5hbWUiLCAiVHlwZUVycm9yIik7CisgICAgfQorCisgICAgYXN5bmMgZnVuY3Rpb24gcHJvbXB0
V2l0aE1pblZpZGVvQ29uc3RyYWludHMoKSB7CisgICAgICAgIGRlYnVnKCI8YnI+KiogUmVxdWVz
dCBhIHN0cmVhbSB3aXRoICdtaW4nIGNvbnN0cmFpbnRzLCB0aGUgdXNlciBzaG91bGQgbm90IGJl
IHByb21wdGVkICoqIik7CisKICAgICAgICAgc3RyZWFtID0gbnVsbDsKLSAgICAgICAgdHJ5IHsK
LSAgICAgICAgICAgIHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0RGlz
cGxheU1lZGlhKHsgdmlkZW86IHt3aWR0aDoge2V4YWN0OiA2NDB9LCBoZWlnaHQ6IHtleGFjdDog
NDgwfX0gfSk7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgIGVyciA9IGU7Ci0g
ICAgICAgIH0KKyAgICAgICAgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5n
ZXREaXNwbGF5TWVkaWEoeyB2aWRlbzoge3dpZHRoOiB7bWluOiA2NDB9LCBoZWlnaHQ6IHttaW46
IDQ4MH19IH0pCisgICAgICAgICAgICAuY2F0Y2goKGUpID0+IHsgZXJyID0gZTsgfSk7CisgICAg
ICAgIHNob3VsZEJlKCJudW1iZXJPZlRpbWVzR2V0VXNlck1lZGlhUHJvbXB0SGFzQmVlbkNhbGxl
ZCgpIiwgIjIiKTsKKyAgICAgICAgc2hvdWxkQmVVbmRlZmluZWQoInN0cmVhbSIpOworICAgICAg
ICBzaG91bGRCZVRydWUoImVyciBpbnN0YW5jZW9mIEVycm9yICIpOworICAgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImVyci5uYW1lIiwgIlR5cGVFcnJvciIpOworICAgIH0KKworICAgIGFz
eW5jIGZ1bmN0aW9uIHByb21wdFdpdGhBZHZhbmNlZFZpZGVvQ29uc3RyYWludHMoKSB7CisgICAg
ICAgIGRlYnVnKCI8YnI+KiogUmVxdWVzdCBhIHN0cmVhbSB3aXRoICdhZHZhbmNlZCcgY29uc3Ry
YWludHMsIHRoZSB1c2VyIHNob3VsZCBub3QgYmUgcHJvbXB0ZWQgKioiKTsKKworICAgICAgICBz
dHJlYW0gPSBudWxsOworICAgICAgICBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzLmdldERpc3BsYXlNZWRpYSh7IHZpZGVvOiB7IHdpZHRoOiA2NDAsIGhlaWdodDogNDgwLCBh
ZHZhbmNlZDogWyB7IHdpZHRoOiAxOTIwLCBoZWlnaHQ6IDEyODAgfSBdIH0gfSkKKyAgICAgICAg
ICAgIC5jYXRjaCgoZSkgPT4geyBlcnIgPSBlOyB9KTsKKyAgICAgICAgc2hvdWxkQmUoIm51bWJl
ck9mVGltZXNHZXRVc2VyTWVkaWFQcm9tcHRIYXNCZWVuQ2FsbGVkKCkiLCAiMiIpOworICAgICAg
ICBzaG91bGRCZVVuZGVmaW5lZCgic3RyZWFtIik7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgiZXJy
IGluc3RhbmNlb2YgRXJyb3IgIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXJy
Lm5hbWUiLCAiVHlwZUVycm9yIik7CisgICAgfQorCisgICAgYXN5bmMgZnVuY3Rpb24gcHJvbXB0
V2l0aFZhbGlkVmlkZW9Db25zdHJhaW50cygpIHsKKyAgICAgICAgZGVidWcoIjxicj4qKiBSZXF1
ZXN0IGEgc3RyZWFtIHdpdGggdmFsaWQgY29uc3RyYWludHMsIHRoZSB1c2VyIHNob3VsZCBiZSBw
cm9tcHRlZCAqKiIpOworCisgICAgICAgIHN0cmVhbSA9IG51bGw7CisgICAgICAgIHN0cmVhbSA9
IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0RGlzcGxheU1lZGlhKHsgdmlkZW86IHt3
aWR0aDogNjQwLCBoZWlnaHQ6IDQ4MH0gfSkKKyAgICAgICAgICAgIC5jYXRjaCgoZSkgPT4geyBl
cnIgPSBlOyB9KTsKICAgICAgICAgCiAgICAgICAgIHNob3VsZEJlKCJudW1iZXJPZlRpbWVzR2V0
VXNlck1lZGlhUHJvbXB0SGFzQmVlbkNhbGxlZCgpIiwgIjMiKTsKLSAgICAgICAgc2hvdWxkQmVO
dWxsKCJzdHJlYW0iKTsKLSAgICAgICAgc2hvdWxkQmVUcnVlKCJlcnIgaW5zdGFuY2VvZiBFcnJv
ciAiKTsgCi0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXJyLm5hbWUiLCAiSW52YWxp
ZEFjY2Vzc0Vycm9yIik7CisgICAgICAgIHNob3VsZEJlKCJzdHJlYW0uZ2V0QXVkaW9UcmFja3Mo
KS5sZW5ndGgiLCAiMCIpOworICAgICAgICBzaG91bGRCZSgic3RyZWFtLmdldFZpZGVvVHJhY2tz
KCkubGVuZ3RoIiwgIjEiKTsKICAgICB9CiAKICAgICAoYXN5bmMgZnVuY3Rpb24oKSB7CkBAIC02
OCw3ICsxMDQsMTAgQEAKICAgICAgICAgYXdhaXQgcHJvbXB0Rm9yQXVkaW9Pbmx5KCk7CiAgICAg
ICAgIGF3YWl0IHByb21wdEZvclZpZGVvT25seSgpOwogICAgICAgICBhd2FpdCBwcm9tcHRGb3JB
dWRpb0FuZFZpZGVvKCk7Ci0gICAgICAgIGF3YWl0IHByb21wdFdpdGhNZWRpYVRyYWNrQ29uc3Ry
YWludHMoKTsKKyAgICAgICAgYXdhaXQgcHJvbXB0V2l0aEV4YWN0VmlkZW9Db25zdHJhaW50cygp
OworICAgICAgICBhd2FpdCBwcm9tcHRXaXRoTWluVmlkZW9Db25zdHJhaW50cygpOworICAgICAg
ICBhd2FpdCBwcm9tcHRXaXRoQWR2YW5jZWRWaWRlb0NvbnN0cmFpbnRzKCk7CisgICAgICAgIGF3
YWl0IHByb21wdFdpdGhWYWxpZFZpZGVvQ29uc3RyYWludHMoKTsKIAogICAgICAgICBkZWJ1Zygi
Iik7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350756</attachid>
            <date>2018-09-25 10:29:56 -0700</date>
            <delta_ts>2018-09-25 11:37:38 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-189930-20180925102955.patch</filename>
            <type>text/plain</type>
            <size>26065</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2NDI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjBkZTU4ZGIyNjI0NjJl
OTg4N2Q4MzI0MWI0NjllMjE1YTEwZDY3MS4uNmIzNTNjZjJlMGY5MWNiY2FiZDJmZmI5OWM0ZTFm
ZmU5NmM5NDhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE4LTA5LTI0ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVh
bV0gVXBkYXRlIGNvbnN0cmFpbnRzIHN1cHBvcnRlZCBieSBnZXREaXNwbGF5TWVkaWEKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTkzMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1
cGRhdGVkIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2dldC1kaXNwbGF5LW1lZGlhLXBy
b21wdC5odG1sLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpnZXREaXNwbGF5TWVkaWEgY29u
c3QpOiBJZ25vcmUgYXVkaW8gY29uc3RyYWludHMuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aGFzSW52YWxp
ZEdldERpc3BsYXlNZWRpYUNvbnN0cmFpbnQpOiBDaGVjayBmb3IgaW52YWxpZCBjb25zdHJhaW50
cy4KKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OnN0YXJ0KTogQ2hlY2sgZm9y
IGludmFsaWQgY29uc3RyYWludHMuCisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0
OjpkZW55KTogU3VwcG9ydCBuZXcgZXJyb3IuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9Vc2VyTWVkaWFSZXF1ZXN0Lmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKToKKwogMjAxOC0w
OS0yNCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgU2VwYXJh
dGUgTWFjIGFuZCBpT1MgaW1wbGVtZW50YXRpb24gb2Ygd2luZG93c0tleUNvZGVGb3JDaGFyQ29k
ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
RGV2aWNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2
aWNlcy5jcHAKaW5kZXggZDliMGJiNzc1YWU4NzdjOWIyNDE1YWZmMDg1MDk1M2VmOWQzZDE0Ni4u
NjkwZmYzNjZlOGYwZTFmNjJiYWQwMGE0NGMyNjEwZmUxMDE1Y2YxNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcApAQCAtMTIw
LDcgKzEyMCw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhRGV2aWNlczo6Z2V0RGlzcGxheU1l
ZGlhKGNvbnN0IFN0cmVhbUNvbnN0cmFpbnRzJiBjb25zdHJhCiAgICAgaWYgKCFkb2N1bWVudCkK
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiAKLSAgICBh
dXRvIHJlcXVlc3QgPSBVc2VyTWVkaWFSZXF1ZXN0OjpjcmVhdGUoKmRvY3VtZW50LCB7IE1lZGlh
U3RyZWFtUmVxdWVzdDo6VHlwZTo6RGlzcGxheU1lZGlhLCBjcmVhdGVNZWRpYUNvbnN0cmFpbnRz
KGNvbnN0cmFpbnRzLmF1ZGlvKSwgY3JlYXRlTWVkaWFDb25zdHJhaW50cyhjb25zdHJhaW50cy52
aWRlbykgfSwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgYXV0byByZXF1ZXN0ID0gVXNlck1lZGlh
UmVxdWVzdDo6Y3JlYXRlKCpkb2N1bWVudCwgeyBNZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGU6OkRp
c3BsYXlNZWRpYSwgeyB9LCBjcmVhdGVNZWRpYUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLnZpZGVv
KSB9LCBXVEZNb3ZlKHByb21pc2UpKTsKICAgICBpZiAocmVxdWVzdCkKICAgICAgICAgcmVxdWVz
dC0+c3RhcnQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKaW5kZXggZGE1YzEwOGUyMDg4NjVlMGUyMmI4OTcz
N2EyMjU2NjQ3NGM1YWM1YS4uMTI1ZDZkMTdmNDRiODEzYjA1MzEwYzk4MzJkNmZmMmZiNmIzYWZh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVk
aWFSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Vz
ZXJNZWRpYVJlcXVlc3QuY3BwCkBAIC0xNTYsNiArMTU2LDc0IEBAIHN0YXRpYyBib29sIGNhbkNh
bGxHZXRVc2VyTWVkaWEoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHdhbnRzQXVkaW8sIGJvb2wg
d2FudHNWCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3N0YXRpYyBib29sIGhhc0ludmFsaWRHZXRE
aXNwbGF5TWVkaWFDb25zdHJhaW50KGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRz
KQoreworICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1cmUtc2NyZWVuLXNo
YXJlLyNuYXZpZ2F0b3ItYWRkaXRpb25zCisgICAgLy8gMS4gTGV0IGNvbnN0cmFpbnRzIGJlIHRo
ZSBtZXRob2QncyBmaXJzdCBhcmd1bWVudC4KKyAgICAvLyAyLiBGb3IgZWFjaCBtZW1iZXIgcHJl
c2VudCBpbiBjb25zdHJhaW50cyB3aG9zZSB2YWx1ZSwgdmFsdWUsIGlzIGEgZGljdGlvbmFyeSwg
cnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6CisgICAgLy8gICAgIDEuIElmIHZhbHVlIGNvbnRhaW5z
IGEgbWVtYmVyIG5hbWVkIGFkdmFuY2VkLCByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGgg
YSBuZXdseSBjcmVhdGVkIFR5cGVFcnJvci4KKyAgICAvLyAgICAgMi4gSWYgdmFsdWUgY29udGFp
bnMgYSBtZW1iZXIgd2hpY2ggaW4gdHVybiBpcyBhIGRpY3Rpb25hcnkgY29udGFpbmluZyBhIG1l
bWJlciBuYW1lZCBlaXRoZXIgbWluIG9yCisgICAgLy8gICAgICAgIGV4YWN0LCByZXR1cm4gYSBw
cm9taXNlIHJlamVjdGVkIHdpdGggYSBuZXdseSBjcmVhdGVkIFR5cGVFcnJvci4KKyAgICBpZiAo
IWNvbnN0cmFpbnRzLmlzVmFsaWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICgh
Y29uc3RyYWludHMuYWR2YW5jZWRDb25zdHJhaW50cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
biB0cnVlOworCisgICAgYm9vbCBpbnZhbGlkID0gZmFsc2U7CisgICAgY29uc3RyYWludHMubWFu
ZGF0b3J5Q29uc3RyYWludHMuZmlsdGVyKFsmaW52YWxpZF0gKGNvbnN0IE1lZGlhQ29uc3RyYWlu
dCYgY29uc3RyYWludCkgbXV0YWJsZSB7CisgICAgICAgIHN3aXRjaCAoY29uc3RyYWludC5jb25z
dHJhaW50VHlwZSgpKSB7CisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGg6
CisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0OiB7CisgICAgICAgICAg
ICBhdXRvJiBpbnRDb25zdHJhaW50ID0gZG93bmNhc3Q8SW50Q29uc3RyYWludD4oY29uc3RyYWlu
dCk7CisgICAgICAgICAgICBpbnQgdmFsdWU7CisgICAgICAgICAgICBpbnZhbGlkID0gaW50Q29u
c3RyYWludC5nZXRFeGFjdCh2YWx1ZSkgfHwgaW50Q29uc3RyYWludC5nZXRNaW4odmFsdWUpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIE1lZGlhQ29uc3Ry
YWludFR5cGU6OkFzcGVjdFJhdGlvOgorICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6
OkZyYW1lUmF0ZTogeworICAgICAgICAgICAgYXV0byYgZG91YmxlQ29uc3RyYWludCA9IGRvd25j
YXN0PERvdWJsZUNvbnN0cmFpbnQ+KGNvbnN0cmFpbnQpOworICAgICAgICAgICAgZG91YmxlIHZh
bHVlOworICAgICAgICAgICAgaW52YWxpZCA9IGRvdWJsZUNvbnN0cmFpbnQuZ2V0RXhhY3QodmFs
dWUpIHx8IGRvdWJsZUNvbnN0cmFpbnQuZ2V0TWluKHZhbHVlKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEaXNwbGF5
U3VyZmFjZToKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpMb2dpY2FsU3VyZmFj
ZTogeworICAgICAgICAgICAgYXV0byYgYm9vbENvbnN0cmFpbnQgPSBkb3duY2FzdDxCb29sZWFu
Q29uc3RyYWludD4oY29uc3RyYWludCk7CisgICAgICAgICAgICBib29sIHZhbHVlOworICAgICAg
ICAgICAgaW52YWxpZCA9IGJvb2xDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBl
OjpGYWNpbmdNb2RlOgorICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OkRldmljZUlk
OgorICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3VwSWQ6IHsKKyAgICAgICAg
ICAgIGF1dG8mIHN0cmluZ0NvbnN0cmFpbnQgPSBkb3duY2FzdDxTdHJpbmdDb25zdHJhaW50Pihj
b25zdHJhaW50KTsKKyAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHZhbHVlczsKKyAgICAgICAg
ICAgIGludmFsaWQgPSBzdHJpbmdDb25zdHJhaW50LmdldEV4YWN0KHZhbHVlcyk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgTWVkaWFDb25zdHJhaW50VHlw
ZTo6U2FtcGxlUmF0ZToKKyAgICAgICAgY2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpTYW1wbGVT
aXplOgorICAgICAgICBjYXNlIE1lZGlhQ29uc3RyYWludFR5cGU6OlZvbHVtZToKKyAgICAgICAg
Y2FzZSBNZWRpYUNvbnN0cmFpbnRUeXBlOjpFY2hvQ2FuY2VsbGF0aW9uOgorICAgICAgICAgICAg
Ly8gSWdub3JlZC4KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgTWVkaWFDb25z
dHJhaW50VHlwZTo6VW5rbm93bjoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gaW52YWxpZDsK
KyAgICB9KTsKKworICAgIHJldHVybiBpbnZhbGlkOworfQorCiB2b2lkIFVzZXJNZWRpYVJlcXVl
c3Q6OnN0YXJ0KCkKIHsKICAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKQEAg
LTE2NSwxOSArMjMzLDggQEAgdm9pZCBVc2VyTWVkaWFSZXF1ZXN0OjpzdGFydCgpCiAgICAgfQog
CiAgICAgaWYgKG1fcmVxdWVzdC50eXBlID09IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6RGlz
cGxheU1lZGlhKSB7Ci0gICAgICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9tZWRpYWNhcHR1
cmUtc2NyZWVuLXNoYXJlLyNjb25zdHJhaW50cwotICAgICAgICAvLyA1LjIgQ29uc3RyYWluaW5n
IERpc3BsYXkgU3VyZmFjZSBTZWxlY3Rpb24KLSAgICAgICAgLy8gVGhlIGdldERpc3BsYXlNZWRp
YSBmdW5jdGlvbiBkb2VzIG5vdCBwZXJtaXQgdGhlIHVzZSBvZiBjb25zdHJhaW50cyBmb3Igc2Vs
ZWN0aW9uIG9mIGEgc291cmNlIGFzIGRlc2NyaWJlZAotICAgICAgICAvLyBpbiB0aGUgZ2V0VXNl
ck1lZGlhKCkgYWxnb3JpdGhtLiBQcmlvciB0byBpbnZva2luZyB0aGUgZ2V0VXNlck1lZGlhKCkg
YWxnb3JpdGhtLCBpZiBlaXRoZXIgb2YgdGhlIHZpZGVvCi0gICAgICAgIC8vIGFuZCBhdWRpbyBh
dHRyaWJ1dGVzIGFyZSBzZXQgdG8gYSBNZWRpYVRyYWNrQ29uc3RyYWludHMgdmFsdWUgKGFzIG9w
cG9zZWQgdG8gYmVpbmcgYWJzZW50IG9yIHNldCB0byBhCi0gICAgICAgIC8vIEJvb2xlYW4gdmFs
dWUpLCByZWplY3QgdGhlIHByb21pc2Ugd2l0aCBhIEludmFsaWRBY2Nlc3NFcnJvciBhbmQgYWJv
cnQuCi0gICAgICAgIGlmIChtX3JlcXVlc3QudmlkZW9Db25zdHJhaW50cy5pc1ZhbGlkICYmICEo
bV9yZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMuaXNFbXB0eSgp
ICYmIG1fcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzLmFkdmFuY2VkQ29uc3RyYWludHMuaXNFbXB0
eSgpKSkgewotICAgICAgICAgICAgZGVueShNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6SW52YWxp
ZEFjY2Vzcyk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAo
bV9yZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMuaXNWYWxpZCAmJiAhKG1fcmVxdWVzdC5hdWRpb0Nv
bnN0cmFpbnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzLmlzRW1wdHkoKSAmJiBtX3JlcXVlc3QuYXVk
aW9Db25zdHJhaW50cy5hZHZhbmNlZENvbnN0cmFpbnRzLmlzRW1wdHkoKSkpIHsKLSAgICAgICAg
ICAgIGRlbnkoTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OkludmFsaWRBY2Nlc3MpOworICAgICAg
ICBpZiAoaGFzSW52YWxpZEdldERpc3BsYXlNZWRpYUNvbnN0cmFpbnQobV9yZXF1ZXN0LnZpZGVv
Q29uc3RyYWludHMpKSB7CisgICAgICAgICAgICBkZW55KE1lZGlhQWNjZXNzRGVuaWFsUmVhc29u
OjpJbGxlZ2FsQ29uc3RyYWludCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAg
ICB9CkBAIC0yNjUsNiArMzIyLDEwIEBAIHZvaWQgVXNlck1lZGlhUmVxdWVzdDo6ZGVueShNZWRp
YUFjY2Vzc0RlbmlhbFJlYXNvbiByZWFzb24sIGNvbnN0IFN0cmluZyYgbWVzc2FnCiAKICAgICBF
eGNlcHRpb25Db2RlIGNvZGU7CiAgICAgc3dpdGNoIChyZWFzb24pIHsKKyAgICBjYXNlIE1lZGlh
QWNjZXNzRGVuaWFsUmVhc29uOjpJbGxlZ2FsQ29uc3RyYWludDoKKyAgICAgICAgUkVMRUFTRV9M
T0coTWVkaWFTdHJlYW0sICJVc2VyTWVkaWFSZXF1ZXN0OjpkZW55IC0gaW52YWxpZCBjb25zdHJh
aW50cyIpOworICAgICAgICBjb2RlID0gVHlwZUVycm9yOworICAgICAgICBicmVhazsKICAgICBj
YXNlIE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpOb0NvbnN0cmFpbnRzOgogICAgICAgICBSRUxF
QVNFX0xPRyhNZWRpYVN0cmVhbSwgIlVzZXJNZWRpYVJlcXVlc3Q6OmRlbnkgLSBubyBjb25zdHJh
aW50cyIpOwogICAgICAgICBjb2RlID0gVHlwZUVycm9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCBjOWU5ZDIw
NGFhODkzYWRjYzQ2ZjU0MGRhZGYxMWFjZjE5MDc5ZjgxLi5kZTUxZmQ5ZmM0M2ViMjk3ZTVkMmEy
N2U3NjRhYTRkMjdjMzBhNWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaApAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBbGxvd2VkTWVkaWFEZXZpY2VVSURzKGNvbnN0
IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWxsb3coQ2FwdHVyZURldmljZSYmIGF1ZGlvRGV2aWNl
LCBDYXB0dXJlRGV2aWNlJiYgdmlkZW9EZXZpY2UsIFN0cmluZyYmIGRldmljZUlkZW50aWZpZXJI
YXNoU2FsdCk7CiAKLSAgICBlbnVtIE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uIHsgTm9Db25zdHJh
aW50cywgVXNlck1lZGlhRGlzYWJsZWQsIE5vQ2FwdHVyZURldmljZXMsIEludmFsaWRDb25zdHJh
aW50LCBIYXJkd2FyZUVycm9yLCBQZXJtaXNzaW9uRGVuaWVkLCBJbnZhbGlkQWNjZXNzLCBPdGhl
ckZhaWx1cmUgfTsKKyAgICBlbnVtIE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uIHsgTm9Db25zdHJh
aW50cywgVXNlck1lZGlhRGlzYWJsZWQsIE5vQ2FwdHVyZURldmljZXMsIEludmFsaWRDb25zdHJh
aW50LCBIYXJkd2FyZUVycm9yLCBQZXJtaXNzaW9uRGVuaWVkLCBJbnZhbGlkQWNjZXNzLCBJbGxl
Z2FsQ29uc3RyYWludCwgT3RoZXJGYWlsdXJlIH07CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBk
ZW55KE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSA9
IGVtcHR5U3RyaW5nKCkpOwogCiAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIGF1ZGlvRGV2aWNl
VUlEcygpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9EZXZpY2VVSURzOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIuY3BwCmluZGV4IGZmZDUxZDRlNDZkNWU4YWFhMmEyM2EwNjJhYTEyNGY4
NTJmM2ZjNDYuLjc3ZGVlNGVhMjI2NGM4ZDkyYjk3OThhZmNmNWEyMWNkOGMyNmJkYWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCkBAIC0yMDcsNzEgKzIwNyw3NCBAQCB2b2lk
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpCiAgICAg
ICAgIG1fZGV2aWNlQ2hhbmdlZE9ic2VydmVyKCk7CiB9CiAKLXZvaWQgUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6dmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoVmFsaWRDb25zdHJhaW50c0hh
bmRsZXImJiB2YWxpZEhhbmRsZXIsIEludmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiBpbnZhbGlk
SGFuZGxlciwgY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiByZXF1ZXN0LCBTdHJpbmcmJiBkZXZp
Y2VJZGVudGlmaWVySGFzaFNhbHQpCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Omdl
dERpc3BsYXlNZWRpYURldmljZXMoY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiByZXF1ZXN0LCBW
ZWN0b3I8RGV2aWNlSW5mbz4mIGRpYXBsYXlEZXZpY2VJbmZvLCBTdHJpbmcmIGZpcnN0SW52YWxp
ZENvbnN0cmFpbnQpCiB7Ci0gICAgc3RydWN0IERldmljZUluZm8gewotICAgICAgICB1bnNpZ25l
ZCBmaXRuZXNzU2NvcmU7Ci0gICAgICAgIENhcHR1cmVEZXZpY2UgZGV2aWNlOwotICAgIH07Cisg
ICAgaWYgKCFyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMuaXNWYWxpZCkKKyAgICAgICAgcmV0dXJu
OwogCi0gICAgc3RydWN0IHsKLSAgICAgICAgYm9vbCBvcGVyYXRvcigpKGNvbnN0IERldmljZUlu
Zm8mIGEsIGNvbnN0IERldmljZUluZm8mIGIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBhLmZpdG5lc3NTY29yZSA8IGIuZml0bmVzc1Njb3JlOwotICAgICAgICB9Ci0gICAgfSBzb3J0
QmFzZWRPbkZpdG5lc3NTY29yZTsKKyAgICBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnQ7CisgICAg
Zm9yIChhdXRvJiBkZXZpY2UgOiBkaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIoKS5jYXB0dXJl
RGV2aWNlcygpKSB7CisgICAgICAgIGlmICghZGV2aWNlLmVuYWJsZWQoKSkKKyAgICAgICAgICAg
IHJldHVybjsKIAotICAgIFZlY3RvcjxEZXZpY2VJbmZvPiBhdWRpb0RldmljZUluZm87Ci0gICAg
VmVjdG9yPERldmljZUluZm8+IHZpZGVvRGV2aWNlSW5mbzsKKyAgICAgICAgYXV0byBzb3VyY2VP
ckVycm9yID0gdmlkZW9GYWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGRldmljZSwg
eyB9KTsKKyAgICAgICAgaWYgKHNvdXJjZU9yRXJyb3IgJiYgc291cmNlT3JFcnJvci5jYXB0dXJl
U291cmNlLT5zdXBwb3J0c0NvbnN0cmFpbnRzKHJlcXVlc3QudmlkZW9Db25zdHJhaW50cywgaW52
YWxpZENvbnN0cmFpbnQpKQorICAgICAgICAgICAgZGlhcGxheURldmljZUluZm8uYXBwZW5kKHtz
b3VyY2VPckVycm9yLmNhcHR1cmVTb3VyY2UtPmZpdG5lc3NTY29yZSgpLCBkZXZpY2V9KTsKIAot
ICAgIFN0cmluZyBmaXJzdEludmFsaWRDb25zdHJhaW50OwotICAgIGZvciAoYXV0byYgZGV2aWNl
IDogZ2V0TWVkaWFTdHJlYW1EZXZpY2VzKCkpIHsKLSAgICAgICAgaWYgKCFkZXZpY2UuZW5hYmxl
ZCgpKQotICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmICghaW52YWxpZENvbnN0cmFp
bnQuaXNFbXB0eSgpICYmIGZpcnN0SW52YWxpZENvbnN0cmFpbnQuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgZmlyc3RJbnZhbGlkQ29uc3RyYWludCA9IGludmFsaWRDb25zdHJhaW50OworICAgIH0K
K30KIAotICAgICAgICBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnQ7Ci0gICAgICAgIENhcHR1cmVT
b3VyY2VPckVycm9yIHNvdXJjZU9yRXJyb3I7Ci0gICAgICAgIHN3aXRjaCAoZGV2aWNlLnR5cGUo
KSkgewotICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYTogewot
ICAgICAgICAgICAgaWYgKHJlcXVlc3QudHlwZSAhPSBNZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGU6
OlVzZXJNZWRpYSB8fCAhcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzLmlzVmFsaWQpCit2b2lkIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldFVzZXJNZWRpYURldmljZXMoY29uc3QgTWVkaWFT
dHJlYW1SZXF1ZXN0JiByZXF1ZXN0LCBWZWN0b3I8RGV2aWNlSW5mbz4mIGF1ZGlvRGV2aWNlSW5m
bywgVmVjdG9yPERldmljZUluZm8+JiB2aWRlb0RldmljZUluZm8sIFN0cmluZyYgZmlyc3RJbnZh
bGlkQ29uc3RyYWludCkKK3sKKyAgICBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnQ7CisgICAgaWYg
KHJlcXVlc3QuYXVkaW9Db25zdHJhaW50cy5pc1ZhbGlkKSB7CisgICAgICAgIGZvciAoYXV0byYg
ZGV2aWNlIDogYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVEZXZpY2VzKCkpIHsK
KyAgICAgICAgICAgIGlmICghZGV2aWNlLmVuYWJsZWQoKSkKICAgICAgICAgICAgICAgICBjb250
aW51ZTsKIAotICAgICAgICAgICAgYXV0byBzb3VyY2VPckVycm9yID0gdmlkZW9GYWN0b3J5KCku
Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGRldmljZSwgeyB9KTsKLSAgICAgICAgICAgIGlmIChz
b3VyY2VPckVycm9yICYmIHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+c3VwcG9ydHNDb25z
dHJhaW50cyhyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50KSkKLSAg
ICAgICAgICAgICAgICB2aWRlb0RldmljZUluZm8uYXBwZW5kKHtzb3VyY2VPckVycm9yLmNhcHR1
cmVTb3VyY2UtPmZpdG5lc3NTY29yZSgpLCBkZXZpY2V9KTsKLSAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgYXV0byBzb3VyY2VPckVycm9yID0gYXVkaW9GYWN0b3J5KCkuY3JlYXRlQXVk
aW9DYXB0dXJlU291cmNlKGRldmljZSwgeyB9KTsKKyAgICAgICAgICAgIGlmIChzb3VyY2VPckVy
cm9yICYmIHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+c3VwcG9ydHNDb25zdHJhaW50cyhy
ZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50KSkKKyAgICAgICAgICAg
ICAgICBhdWRpb0RldmljZUluZm8uYXBwZW5kKHtzb3VyY2VPckVycm9yLmNhcHR1cmVTb3VyY2Ut
PmZpdG5lc3NTY29yZSgpLCBkZXZpY2V9KTsKKworICAgICAgICAgICAgaWYgKCFpbnZhbGlkQ29u
c3RyYWludC5pc0VtcHR5KCkgJiYgZmlyc3RJbnZhbGlkQ29uc3RyYWludC5pc0VtcHR5KCkpCisg
ICAgICAgICAgICAgICAgZmlyc3RJbnZhbGlkQ29uc3RyYWludCA9IGludmFsaWRDb25zdHJhaW50
OwogICAgICAgICB9Ci0gICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWlj
cm9waG9uZToKLSAgICAgICAgICAgIGlmIChyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMuaXNWYWxp
ZCkgewotICAgICAgICAgICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IGF1ZGlvRmFjdG9yeSgp
LmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIHsgfSk7Ci0gICAgICAgICAgICAgICAg
aWYgKHNvdXJjZU9yRXJyb3IgJiYgc291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5zdXBwb3J0
c0NvbnN0cmFpbnRzKHJlcXVlc3QuYXVkaW9Db25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQp
KQotICAgICAgICAgICAgICAgICAgICBhdWRpb0RldmljZUluZm8uYXBwZW5kKHtzb3VyY2VPckVy
cm9yLmNhcHR1cmVTb3VyY2UtPmZpdG5lc3NTY29yZSgpLCBkZXZpY2V9KTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OlNjcmVlbjoKLSAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpB
cHBsaWNhdGlvbjoKLSAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5k
b3c6Ci0gICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6QnJvd3Nlcjogewot
ICAgICAgICAgICAgaWYgKHJlcXVlc3QudHlwZSAhPSBNZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGU6
OkRpc3BsYXlNZWRpYSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIEFT
U0VSVChyZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMuaXNFbXB0
eSgpKTsKLSAgICAgICAgICAgIEFTU0VSVChyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMuYWR2YW5j
ZWRDb25zdHJhaW50cy5pc0VtcHR5KCkpOwotICAgICAgICAgICAgaWYgKCFyZXF1ZXN0LnZpZGVv
Q29uc3RyYWludHMuaXNWYWxpZCB8fCAhcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzLmFkdmFuY2Vk
Q29uc3RyYWludHMuaXNFbXB0eSgpIHx8ICFyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMubWFuZGF0
b3J5Q29uc3RyYWludHMuaXNFbXB0eSgpKQorICAgIH0KKworICAgIGlmIChyZXF1ZXN0LnZpZGVv
Q29uc3RyYWludHMuaXNWYWxpZCkgeworICAgICAgICBmb3IgKGF1dG8mIGRldmljZSA6IHZpZGVv
Q2FwdHVyZURldmljZU1hbmFnZXIoKS5jYXB0dXJlRGV2aWNlcygpKSB7CisgICAgICAgICAgICBp
ZiAoIWRldmljZS5lbmFibGVkKCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAg
ICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IHZpZGVvRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2Fw
dHVyZVNvdXJjZShkZXZpY2UsIHsgfSk7CiAgICAgICAgICAgICBpZiAoc291cmNlT3JFcnJvciAm
JiBzb3VyY2VPckVycm9yLmNhcHR1cmVTb3VyY2UtPnN1cHBvcnRzQ29uc3RyYWludHMocmVxdWVz
dC52aWRlb0NvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCiAgICAgICAgICAgICAgICAg
dmlkZW9EZXZpY2VJbmZvLmFwcGVuZCh7c291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5maXRu
ZXNzU2NvcmUoKSwgZGV2aWNlfSk7Ci0gICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAg
aWYgKCFpbnZhbGlkQ29uc3RyYWludC5pc0VtcHR5KCkgJiYgZmlyc3RJbnZhbGlkQ29uc3RyYWlu
dC5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgZmlyc3RJbnZhbGlkQ29uc3RyYWludCA9IGlu
dmFsaWRDb25zdHJhaW50OwogICAgICAgICB9Ci0gICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZTo6VW5rbm93bjoKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgICAgICAgICAgYnJlYWs7CisgICAgfQorfQorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFZhbGlkQ29uc3RyYWludHNIYW5kbGVy
JiYgdmFsaWRIYW5kbGVyLCBJbnZhbGlkQ29uc3RyYWludHNIYW5kbGVyJiYgaW52YWxpZEhhbmRs
ZXIsIGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYgcmVxdWVzdCwgU3RyaW5nJiYgZGV2aWNlSWRl
bnRpZmllckhhc2hTYWx0KQoreworICAgIHN0cnVjdCB7CisgICAgICAgIGJvb2wgb3BlcmF0b3Io
KShjb25zdCBEZXZpY2VJbmZvJiBhLCBjb25zdCBEZXZpY2VJbmZvJiBiKQorICAgICAgICB7Cisg
ICAgICAgICAgICByZXR1cm4gYS5maXRuZXNzU2NvcmUgPCBiLmZpdG5lc3NTY29yZTsKICAgICAg
ICAgfQorICAgIH0gc29ydEJhc2VkT25GaXRuZXNzU2NvcmU7CiAKLSAgICAgICAgaWYgKCFpbnZh
bGlkQ29uc3RyYWludC5pc0VtcHR5KCkgJiYgZmlyc3RJbnZhbGlkQ29uc3RyYWludC5pc0VtcHR5
KCkpCi0gICAgICAgICAgICBmaXJzdEludmFsaWRDb25zdHJhaW50ID0gaW52YWxpZENvbnN0cmFp
bnQ7Ci0gICAgfQorICAgIFZlY3RvcjxEZXZpY2VJbmZvPiBhdWRpb0RldmljZUluZm87CisgICAg
VmVjdG9yPERldmljZUluZm8+IHZpZGVvRGV2aWNlSW5mbzsKKyAgICBTdHJpbmcgZmlyc3RJbnZh
bGlkQ29uc3RyYWludDsKKworICAgIGlmIChyZXF1ZXN0LnR5cGUgPT0gTWVkaWFTdHJlYW1SZXF1
ZXN0OjpUeXBlOjpEaXNwbGF5TWVkaWEpCisgICAgICAgIGdldERpc3BsYXlNZWRpYURldmljZXMo
cmVxdWVzdCwgdmlkZW9EZXZpY2VJbmZvLCBmaXJzdEludmFsaWRDb25zdHJhaW50KTsKKyAgICBl
bHNlCisgICAgICAgIGdldFVzZXJNZWRpYURldmljZXMocmVxdWVzdCwgYXVkaW9EZXZpY2VJbmZv
LCB2aWRlb0RldmljZUluZm8sIGZpcnN0SW52YWxpZENvbnN0cmFpbnQpOwogCiAgICAgaWYgKChy
ZXF1ZXN0LmF1ZGlvQ29uc3RyYWludHMuaXNWYWxpZCAmJiBhdWRpb0RldmljZUluZm8uaXNFbXB0
eSgpKSB8fCAocmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzLmlzVmFsaWQgJiYgdmlkZW9EZXZpY2VJ
bmZvLmlzRW1wdHkoKSkpIHsKICAgICAgICAgaW52YWxpZEhhbmRsZXIoZmlyc3RJbnZhbGlkQ29u
c3RyYWludCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKaW5kZXggZDU0YWU4ZTdmYTU3
ZDMyNTcxZTA3MzBjZDYyOTc3NTQ4OGRmY2Y2MS4uNzYyN2U5ODE5MmU5MzdhYzU5ZGIzYmY3NjVh
NjA3MzczOGFjMTQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaApAQCAtMTAwLDYg
KzEwMCwxNSBAQCBwcm90ZWN0ZWQ6CiAgICAgQ2FwdHVyZURldmljZU1hbmFnZXIqIG1fYXVkaW9D
YXB0dXJlRGV2aWNlTWFuYWdlciB7IG51bGxwdHIgfTsKICAgICBDYXB0dXJlRGV2aWNlTWFuYWdl
ciogbV92aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyIHsgbnVsbHB0ciB9OwogCitwcml2YXRlOgor
ICAgIHN0cnVjdCBEZXZpY2VJbmZvIHsKKyAgICAgICAgdW5zaWduZWQgZml0bmVzc1Njb3JlOwor
ICAgICAgICBDYXB0dXJlRGV2aWNlIGRldmljZTsKKyAgICB9OworCisgICAgdm9pZCBnZXREaXNw
bGF5TWVkaWFEZXZpY2VzKGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYsIFZlY3RvcjxEZXZpY2VJ
bmZvPiYsIFN0cmluZyYpOworICAgIHZvaWQgZ2V0VXNlck1lZGlhRGV2aWNlcyhjb25zdCBNZWRp
YVN0cmVhbVJlcXVlc3QmLCBWZWN0b3I8RGV2aWNlSW5mbz4mIGF1ZGlvRGV2aWNlcywgVmVjdG9y
PERldmljZUluZm8+JiB2aWRlb0RldmljZXMsIFN0cmluZyYpOworCiAgICAgV1RGOjpGdW5jdGlv
bjx2b2lkKCk+IG1fZGV2aWNlQ2hhbmdlZE9ic2VydmVyOwogfTsKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGU5MmIzM2M2
YWJkNWMyY2M0MzMwZTFiYmUzZjg0MWMxM2M5ZjVjYjkuLjQzOTZhNGNmNzVhMTkwOTFmOTNjNzE2
MTQ4NWZhZGFiZjA2NDk5NTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOC0wOS0yNCAgRXJp
YyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJl
YW1dIFVwZGF0ZSBjb25zdHJhaW50cyBzdXBwb3J0ZWQgYnkgZ2V0RGlzcGxheU1lZGlhCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODk5MzAKKworICAg
ICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogaHR0cC90ZXN0cy9t
ZWRpYS9tZWRpYS1zdHJlYW0vZ2V0LWRpc3BsYXktbWVkaWEtcHJvbXB0LWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9nZXQtZGlzcGxheS1tZWRp
YS1wcm9tcHQuaHRtbDoKKwogMjAxOC0wOS0yNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgc29tZSB0ZXN0IHJlc3VsdHMgdW5kZXIgY29t
cG9zaXRpbmcvb3ZlcmZsb3cKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc3RyZWFtL2dldC1kaXNwbGF5LW1lZGlhLXByb21wdC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9nZXQtZGlzcGxheS1tZWRp
YS1wcm9tcHQtZXhwZWN0ZWQudHh0CmluZGV4IDg3OGE0ZmM2Mjk1YTkyOWIwNGFkYjRjZjI5NGQ2
NmM0MGYxZTk0N2QuLmZhZTg2OTAzNGJiN2JkM2U0OGYyYzk5NDk4YzViYmRkNmUzZTQwZTQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2dldC1k
aXNwbGF5LW1lZGlhLXByb21wdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZ2V0LWRpc3BsYXktbWVkaWEtcHJvbXB0LWV4cGVjdGVk
LnR4dApAQCAtNSwyNiArNSw0OSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBQQVNTIG51
bWJlck9mVGltZXNHZXRVc2VyTWVkaWFQcm9tcHRIYXNCZWVuQ2FsbGVkKCkgaXMgMAogCi0qKiBS
ZXF1ZXN0IGFuIGF1ZGlvLW9ubHkgc3RyZWFtLCB0aGUgdXNlciBzaG91bGQgYmUgcHJvbXB0ZWQg
KioKLVBBU1MgbnVtYmVyT2ZUaW1lc0dldFVzZXJNZWRpYVByb21wdEhhc0JlZW5DYWxsZWQoKSBp
cyAxCi1QQVNTIHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBpcyAxCi1QQVNTIHN0cmVh
bS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCBpcyAwCisqKiBSZXF1ZXN0IGFuIGF1ZGlvLW9ubHkg
c3RyZWFtLCB0aGUgdXNlciBzaG91bGQgbm90IGJlIHByb21wdGVkICoqCitQQVNTIG51bWJlck9m
VGltZXNHZXRVc2VyTWVkaWFQcm9tcHRIYXNCZWVuQ2FsbGVkKCkgaXMgMAorUEFTUyBzdHJlYW0g
aXMgdW5kZWZpbmVkLgorUEFTUyBlcnIgaW5zdGFuY2VvZiBFcnJvciAgaXMgdHJ1ZQorUEFTUyBl
cnIubmFtZSBpcyAiVHlwZUVycm9yIgogCiAqKiBSZXF1ZXN0IGFuIHZpZGVvLW9ubHkgc3RyZWFt
LCB0aGUgdXNlciBzaG91bGQgYmUgcHJvbXB0ZWQgKioKK1BBU1MgbnVtYmVyT2ZUaW1lc0dldFVz
ZXJNZWRpYVByb21wdEhhc0JlZW5DYWxsZWQoKSBpcyAxCitQQVNTIHN0cmVhbS5nZXRBdWRpb1Ry
YWNrcygpLmxlbmd0aCBpcyAwCitQQVNTIHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCBp
cyAxCisKKyoqIFJlcXVlc3QgYSBzdHJlYW0gd2l0aCBhdWRpbyBhbmQgdmlkZW8sIHRoZSB1c2Vy
IHNob3VsZCBiZSBwcm9tcHRlZCBidXQgbm8gYXVkaW8gdHJhY2sgc2hvdWxkIGJlIGNyZWF0ZWQg
KioKIFBBU1MgbnVtYmVyT2ZUaW1lc0dldFVzZXJNZWRpYVByb21wdEhhc0JlZW5DYWxsZWQoKSBp
cyAyCiBQQVNTIHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBpcyAwCiBQQVNTIHN0cmVh
bS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCBpcyAxCiAKLSoqIFJlcXVlc3QgYSBzdHJlYW0gd2l0
aCBhdWRpbyBhbmQgdmlkZW8sIHRoZSB1c2VyIHNob3VsZCBiZSBwcm9tcHRlZCAqKgorKiogUmVx
dWVzdCBhIHN0cmVhbSB3aXRoICdtYXgnIGNvbnN0cmFpbnRzLCB0aGUgdXNlciBzaG91bGQgbm90
IGJlIHByb21wdGVkICoqCitQQVNTIG51bWJlck9mVGltZXNHZXRVc2VyTWVkaWFQcm9tcHRIYXNC
ZWVuQ2FsbGVkKCkgaXMgMgorUEFTUyBzdHJlYW0gaXMgdW5kZWZpbmVkLgorUEFTUyBlcnIgaW5z
dGFuY2VvZiBFcnJvciAgaXMgdHJ1ZQorUEFTUyBlcnIubmFtZSBpcyAiVHlwZUVycm9yIgorCisq
KiBSZXF1ZXN0IGEgc3RyZWFtIHdpdGggJ21pbicgY29uc3RyYWludHMsIHRoZSB1c2VyIHNob3Vs
ZCBub3QgYmUgcHJvbXB0ZWQgKioKK1BBU1MgbnVtYmVyT2ZUaW1lc0dldFVzZXJNZWRpYVByb21w
dEhhc0JlZW5DYWxsZWQoKSBpcyAyCitQQVNTIHN0cmVhbSBpcyB1bmRlZmluZWQuCitQQVNTIGVy
ciBpbnN0YW5jZW9mIEVycm9yICBpcyB0cnVlCitQQVNTIGVyci5uYW1lIGlzICJUeXBlRXJyb3Ii
CisKKyoqIFJlcXVlc3QgYSBzdHJlYW0gd2l0aCAnYWR2YW5jZWQnIGNvbnN0cmFpbnRzLCB0aGUg
dXNlciBzaG91bGQgbm90IGJlIHByb21wdGVkICoqCitQQVNTIG51bWJlck9mVGltZXNHZXRVc2Vy
TWVkaWFQcm9tcHRIYXNCZWVuQ2FsbGVkKCkgaXMgMgorUEFTUyBzdHJlYW0gaXMgdW5kZWZpbmVk
LgorUEFTUyBlcnIgaW5zdGFuY2VvZiBFcnJvciAgaXMgdHJ1ZQorUEFTUyBlcnIubmFtZSBpcyAi
VHlwZUVycm9yIgorCisqKiBSZXF1ZXN0IGEgc3RyZWFtIHdpdGggdmFsaWQgY29uc3RyYWludHMs
IHRoZSB1c2VyIHNob3VsZCBiZSBwcm9tcHRlZCAqKgogUEFTUyBudW1iZXJPZlRpbWVzR2V0VXNl
ck1lZGlhUHJvbXB0SGFzQmVlbkNhbGxlZCgpIGlzIDMKLVBBU1Mgc3RyZWFtLmdldEF1ZGlvVHJh
Y2tzKCkubGVuZ3RoIGlzIDEKK1BBU1Mgc3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoIGlz
IDAKIFBBU1Mgc3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoIGlzIDEKIAotKiogUmVxdWVz
dCBhIHN0cmVhbSB3aXRoIGludmFsaWQgY29uc3RyYWludHMsIHRoZSB1c2VyIHNob3VsZCBub3Qg
YmUgcHJvbXB0ZWQgKioKLVBBU1MgbnVtYmVyT2ZUaW1lc0dldFVzZXJNZWRpYVByb21wdEhhc0Jl
ZW5DYWxsZWQoKSBpcyAzCi1QQVNTIHN0cmVhbSBpcyBudWxsCi1QQVNTIGVyciBpbnN0YW5jZW9m
IEVycm9yICBpcyB0cnVlCi1QQVNTIGVyci5uYW1lIGlzICJJbnZhbGlkQWNjZXNzRXJyb3IiCisq
KiBSZXF1ZXN0IGEgc3RyZWFtIHdpdGggYW4gZXhhY3QgYXVkaW8gY29uc3RyYWludCwgaXQgc2hv
dWxkIGJlIGlnbm9yZWQgKioKK1BBU1MgbnVtYmVyT2ZUaW1lc0dldFVzZXJNZWRpYVByb21wdEhh
c0JlZW5DYWxsZWQoKSBpcyA0CitQQVNTIHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBp
cyAwCitQQVNTIHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCBpcyAxCiAKIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZ2V0LWRpc3BsYXktbWVkaWEtcHJvbXB0Lmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9nZXQtZGlzcGxheS1tZWRp
YS1wcm9tcHQuaHRtbAppbmRleCBiNDQ1ODIxNDI1MDBmNjFiYjY4MjU1MTcwNDc5Y2UwOTIwYjhk
OWM2Li5mZDczOWU2ZWExYWY0ZTYxNDUyYzk2M2VmMTI4MTA0NzU2YjNkMTFkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9nZXQtZGlzcGxheS1t
ZWRpYS1wcm9tcHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlh
LXN0cmVhbS9nZXQtZGlzcGxheS1tZWRpYS1wcm9tcHQuaHRtbApAQCAtMTgsNDQgKzE4LDkwIEBA
CiAgICAgfQogICAgIAogICAgIGFzeW5jIGZ1bmN0aW9uIHByb21wdEZvckF1ZGlvT25seSgpIHsK
LSAgICAgICAgZGVidWcoIjxicj4qKiBSZXF1ZXN0IGFuIGF1ZGlvLW9ubHkgc3RyZWFtLCB0aGUg
dXNlciBzaG91bGQgYmUgcHJvbXB0ZWQgKioiKTsKLSAgICAgICAgc3RyZWFtID0gYXdhaXQgbmF2
aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXREaXNwbGF5TWVkaWEoeyBhdWRpbzogdHJ1ZSB9KTsKLSAg
ICAgICAgc2hvdWxkQmUoIm51bWJlck9mVGltZXNHZXRVc2VyTWVkaWFQcm9tcHRIYXNCZWVuQ2Fs
bGVkKCkiLCAiMSIpOwotICAgICAgICBzaG91bGRCZSgic3RyZWFtLmdldEF1ZGlvVHJhY2tzKCku
bGVuZ3RoIiwgIjEiKTsKLSAgICAgICAgc2hvdWxkQmUoInN0cmVhbS5nZXRWaWRlb1RyYWNrcygp
Lmxlbmd0aCIsICIwIik7CisgICAgICAgIGRlYnVnKCI8YnI+KiogUmVxdWVzdCBhbiBhdWRpby1v
bmx5IHN0cmVhbSwgdGhlIHVzZXIgc2hvdWxkIG5vdCBiZSBwcm9tcHRlZCAqKiIpOworICAgICAg
ICBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldERpc3BsYXlNZWRpYSh7
IGF1ZGlvOiB0cnVlIH0pCisgICAgICAgICAgICAuY2F0Y2goKGUpID0+IHsgZXJyID0gZTsgfSk7
CisgICAgICAgIHNob3VsZEJlKCJudW1iZXJPZlRpbWVzR2V0VXNlck1lZGlhUHJvbXB0SGFzQmVl
bkNhbGxlZCgpIiwgIjAiKTsKKyAgICAgICAgc2hvdWxkQmVVbmRlZmluZWQoInN0cmVhbSIpOwor
ICAgICAgICBzaG91bGRCZVRydWUoImVyciBpbnN0YW5jZW9mIEVycm9yICIpOworICAgICAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoImVyci5uYW1lIiwgIlR5cGVFcnJvciIpOwogICAgIH0KIAog
ICAgIGFzeW5jIGZ1bmN0aW9uIHByb21wdEZvclZpZGVvT25seSgpIHsKICAgICAgICAgZGVidWco
Ijxicj4qKiBSZXF1ZXN0IGFuIHZpZGVvLW9ubHkgc3RyZWFtLCB0aGUgdXNlciBzaG91bGQgYmUg
cHJvbXB0ZWQgKioiKTsKICAgICAgICAgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2
aWNlcy5nZXREaXNwbGF5TWVkaWEoeyB2aWRlbzogdHJ1ZSB9KTsKLSAgICAgICAgc2hvdWxkQmUo
Im51bWJlck9mVGltZXNHZXRVc2VyTWVkaWFQcm9tcHRIYXNCZWVuQ2FsbGVkKCkiLCAiMiIpOwor
ICAgICAgICBzaG91bGRCZSgibnVtYmVyT2ZUaW1lc0dldFVzZXJNZWRpYVByb21wdEhhc0JlZW5D
YWxsZWQoKSIsICIxIik7CiAgICAgICAgIHNob3VsZEJlKCJzdHJlYW0uZ2V0QXVkaW9UcmFja3Mo
KS5sZW5ndGgiLCAiMCIpOwogICAgICAgICBzaG91bGRCZSgic3RyZWFtLmdldFZpZGVvVHJhY2tz
KCkubGVuZ3RoIiwgIjEiKTsKICAgICB9CiAKICAgICBhc3luYyBmdW5jdGlvbiBwcm9tcHRGb3JB
dWRpb0FuZFZpZGVvKCkgewotICAgICAgICBkZWJ1ZygiPGJyPioqIFJlcXVlc3QgYSBzdHJlYW0g
d2l0aCBhdWRpbyBhbmQgdmlkZW8sIHRoZSB1c2VyIHNob3VsZCBiZSBwcm9tcHRlZCAqKiIpOwor
ICAgICAgICBkZWJ1ZygiPGJyPioqIFJlcXVlc3QgYSBzdHJlYW0gd2l0aCBhdWRpbyBhbmQgdmlk
ZW8sIHRoZSB1c2VyIHNob3VsZCBiZSBwcm9tcHRlZCBidXQgbm8gYXVkaW8gdHJhY2sgc2hvdWxk
IGJlIGNyZWF0ZWQgKioiKTsKICAgICAgICAgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlh
RGV2aWNlcy5nZXREaXNwbGF5TWVkaWEoeyB2aWRlbzogdHJ1ZSwgYXVkaW86IHRydWUgfSk7Ci0g
ICAgICAgIHNob3VsZEJlKCJudW1iZXJPZlRpbWVzR2V0VXNlck1lZGlhUHJvbXB0SGFzQmVlbkNh
bGxlZCgpIiwgIjMiKTsKLSAgICAgICAgc2hvdWxkQmUoInN0cmVhbS5nZXRBdWRpb1RyYWNrcygp
Lmxlbmd0aCIsICIxIik7CisgICAgICAgIHNob3VsZEJlKCJudW1iZXJPZlRpbWVzR2V0VXNlck1l
ZGlhUHJvbXB0SGFzQmVlbkNhbGxlZCgpIiwgIjIiKTsKKyAgICAgICAgc2hvdWxkQmUoInN0cmVh
bS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCIsICIwIik7CiAgICAgICAgIHNob3VsZEJlKCJzdHJl
YW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgiLCAiMSIpOwogICAgIH0KICAgICAKLSAgICBhc3lu
YyBmdW5jdGlvbiBwcm9tcHRXaXRoTWVkaWFUcmFja0NvbnN0cmFpbnRzKCkgewotICAgICAgICBk
ZWJ1ZygiPGJyPioqIFJlcXVlc3QgYSBzdHJlYW0gd2l0aCBpbnZhbGlkIGNvbnN0cmFpbnRzLCB0
aGUgdXNlciBzaG91bGQgbm90IGJlIHByb21wdGVkICoqIik7CisgICAgYXN5bmMgZnVuY3Rpb24g
cHJvbXB0V2l0aEV4YWN0VmlkZW9Db25zdHJhaW50cygpIHsKKyAgICAgICAgZGVidWcoIjxicj4q
KiBSZXF1ZXN0IGEgc3RyZWFtIHdpdGggJ21heCcgY29uc3RyYWludHMsIHRoZSB1c2VyIHNob3Vs
ZCBub3QgYmUgcHJvbXB0ZWQgKioiKTsKKworICAgICAgICBzdHJlYW0gPSBudWxsOworICAgICAg
ICBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldERpc3BsYXlNZWRpYSh7
IHZpZGVvOiB7d2lkdGg6IHtleGFjdDogNjQwfSwgaGVpZ2h0OiB7ZXhhY3Q6IDQ4MH19IH0pCisg
ICAgICAgICAgICAuY2F0Y2goKGUpID0+IHsgZXJyID0gZTsgfSk7CisgICAgICAgIAorICAgICAg
ICBzaG91bGRCZSgibnVtYmVyT2ZUaW1lc0dldFVzZXJNZWRpYVByb21wdEhhc0JlZW5DYWxsZWQo
KSIsICIyIik7CisgICAgICAgIHNob3VsZEJlVW5kZWZpbmVkKCJzdHJlYW0iKTsKKyAgICAgICAg
c2hvdWxkQmVUcnVlKCJlcnIgaW5zdGFuY2VvZiBFcnJvciAiKTsKKyAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJlcnIubmFtZSIsICJUeXBlRXJyb3IiKTsKKyAgICB9CisKKyAgICBhc3lu
YyBmdW5jdGlvbiBwcm9tcHRXaXRoTWluVmlkZW9Db25zdHJhaW50cygpIHsKKyAgICAgICAgZGVi
dWcoIjxicj4qKiBSZXF1ZXN0IGEgc3RyZWFtIHdpdGggJ21pbicgY29uc3RyYWludHMsIHRoZSB1
c2VyIHNob3VsZCBub3QgYmUgcHJvbXB0ZWQgKioiKTsKKworICAgICAgICBzdHJlYW0gPSBudWxs
OworICAgICAgICBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldERpc3Bs
YXlNZWRpYSh7IHZpZGVvOiB7d2lkdGg6IHttaW46IDY0MH0sIGhlaWdodDoge21pbjogNDgwfX0g
fSkKKyAgICAgICAgICAgIC5jYXRjaCgoZSkgPT4geyBlcnIgPSBlOyB9KTsKKyAgICAgICAgc2hv
dWxkQmUoIm51bWJlck9mVGltZXNHZXRVc2VyTWVkaWFQcm9tcHRIYXNCZWVuQ2FsbGVkKCkiLCAi
MiIpOworICAgICAgICBzaG91bGRCZVVuZGVmaW5lZCgic3RyZWFtIik7CisgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgiZXJyIGluc3RhbmNlb2YgRXJyb3IgIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygiZXJyLm5hbWUiLCAiVHlwZUVycm9yIik7CisgICAgfQorCisgICAgYXN5bmMgZnVu
Y3Rpb24gcHJvbXB0V2l0aEFkdmFuY2VkVmlkZW9Db25zdHJhaW50cygpIHsKKyAgICAgICAgZGVi
dWcoIjxicj4qKiBSZXF1ZXN0IGEgc3RyZWFtIHdpdGggJ2FkdmFuY2VkJyBjb25zdHJhaW50cywg
dGhlIHVzZXIgc2hvdWxkIG5vdCBiZSBwcm9tcHRlZCAqKiIpOworCisgICAgICAgIHN0cmVhbSA9
IG51bGw7CisgICAgICAgIHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0
RGlzcGxheU1lZGlhKHsgdmlkZW86IHsgd2lkdGg6IDY0MCwgaGVpZ2h0OiA0ODAsIGFkdmFuY2Vk
OiBbIHsgd2lkdGg6IDE5MjAsIGhlaWdodDogMTI4MCB9IF0gfSB9KQorICAgICAgICAgICAgLmNh
dGNoKChlKSA9PiB7IGVyciA9IGU7IH0pOworICAgICAgICBzaG91bGRCZSgibnVtYmVyT2ZUaW1l
c0dldFVzZXJNZWRpYVByb21wdEhhc0JlZW5DYWxsZWQoKSIsICIyIik7CisgICAgICAgIHNob3Vs
ZEJlVW5kZWZpbmVkKCJzdHJlYW0iKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJlcnIgaW5zdGFu
Y2VvZiBFcnJvciAiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJlcnIubmFtZSIs
ICJUeXBlRXJyb3IiKTsKKyAgICB9CisKKyAgICBhc3luYyBmdW5jdGlvbiBwcm9tcHRXaXRoVmFs
aWRWaWRlb0NvbnN0cmFpbnRzKCkgeworICAgICAgICBkZWJ1ZygiPGJyPioqIFJlcXVlc3QgYSBz
dHJlYW0gd2l0aCB2YWxpZCBjb25zdHJhaW50cywgdGhlIHVzZXIgc2hvdWxkIGJlIHByb21wdGVk
ICoqIik7CisKICAgICAgICAgc3RyZWFtID0gbnVsbDsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAg
ICAgIHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0RGlzcGxheU1lZGlh
KHsgdmlkZW86IHt3aWR0aDoge2V4YWN0OiA2NDB9LCBoZWlnaHQ6IHtleGFjdDogNDgwfX0gfSk7
Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgIGVyciA9IGU7Ci0gICAgICAgIH0K
KyAgICAgICAgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXREaXNwbGF5
TWVkaWEoeyB2aWRlbzoge3dpZHRoOiA2NDAsIGhlaWdodDogNDgwfSB9KQorICAgICAgICAgICAg
LmNhdGNoKChlKSA9PiB7IGVyciA9IGU7IH0pOwogICAgICAgICAKICAgICAgICAgc2hvdWxkQmUo
Im51bWJlck9mVGltZXNHZXRVc2VyTWVkaWFQcm9tcHRIYXNCZWVuQ2FsbGVkKCkiLCAiMyIpOwot
ICAgICAgICBzaG91bGRCZU51bGwoInN0cmVhbSIpOwotICAgICAgICBzaG91bGRCZVRydWUoImVy
ciBpbnN0YW5jZW9mIEVycm9yICIpOyAKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJl
cnIubmFtZSIsICJJbnZhbGlkQWNjZXNzRXJyb3IiKTsKKyAgICAgICAgc2hvdWxkQmUoInN0cmVh
bS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCIsICIwIik7CisgICAgICAgIHNob3VsZEJlKCJzdHJl
YW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgiLCAiMSIpOwogICAgIH0KIAorICAgIGFzeW5jIGZ1
bmN0aW9uIHByb21wdFdpdGhJbnZhbGlkQXVkaW9Db25zdHJhaW50KCkgeworICAgICAgICBkZWJ1
ZygiPGJyPioqIFJlcXVlc3QgYSBzdHJlYW0gd2l0aCBhbiBleGFjdCBhdWRpbyBjb25zdHJhaW50
LCBpdCBzaG91bGQgYmUgaWdub3JlZCAqKiIpOworCisgICAgICAgIHN0cmVhbSA9IG51bGw7Cisg
ICAgICAgIHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0RGlzcGxheU1l
ZGlhKHsgdmlkZW86IHRydWUsIGF1ZGlvOiB7IHZvbHVtZTogeyBleGFjdDogMC41IH0gfSB9KTsK
KyAgICAgICAgc2hvdWxkQmUoIm51bWJlck9mVGltZXNHZXRVc2VyTWVkaWFQcm9tcHRIYXNCZWVu
Q2FsbGVkKCkiLCAiNCIpOworICAgICAgICBzaG91bGRCZSgic3RyZWFtLmdldEF1ZGlvVHJhY2tz
KCkubGVuZ3RoIiwgIjAiKTsKKyAgICAgICAgc2hvdWxkQmUoInN0cmVhbS5nZXRWaWRlb1RyYWNr
cygpLmxlbmd0aCIsICIxIik7CisgICAgfQorICAgIAogICAgIChhc3luYyBmdW5jdGlvbigpIHsK
ICAgICAgICAgZGVzY3JpcHRpb24oJ1Rlc3QgYmFzaWMgZ2V0RGlzcGxheU1lZGlhIHByb21wdGlu
ZyBiZWhhdmlvcicpOwogICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKQEAgLTY4LDcgKzEx
NCwxMSBAQAogICAgICAgICBhd2FpdCBwcm9tcHRGb3JBdWRpb09ubHkoKTsKICAgICAgICAgYXdh
aXQgcHJvbXB0Rm9yVmlkZW9Pbmx5KCk7CiAgICAgICAgIGF3YWl0IHByb21wdEZvckF1ZGlvQW5k
VmlkZW8oKTsKLSAgICAgICAgYXdhaXQgcHJvbXB0V2l0aE1lZGlhVHJhY2tDb25zdHJhaW50cygp
OworICAgICAgICBhd2FpdCBwcm9tcHRXaXRoRXhhY3RWaWRlb0NvbnN0cmFpbnRzKCk7CisgICAg
ICAgIGF3YWl0IHByb21wdFdpdGhNaW5WaWRlb0NvbnN0cmFpbnRzKCk7CisgICAgICAgIGF3YWl0
IHByb21wdFdpdGhBZHZhbmNlZFZpZGVvQ29uc3RyYWludHMoKTsKKyAgICAgICAgYXdhaXQgcHJv
bXB0V2l0aFZhbGlkVmlkZW9Db25zdHJhaW50cygpOworICAgICAgICBhd2FpdCBwcm9tcHRXaXRo
SW52YWxpZEF1ZGlvQ29uc3RyYWludCgpOwogCiAgICAgICAgIGRlYnVnKCIiKTsKICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350787</attachid>
            <date>2018-09-25 13:54:03 -0700</date>
            <delta_ts>2018-09-25 14:31:38 -0700</delta_ts>
            <desc>Fix broken API tests</desc>
            <filename>bug-189930-20180925135402.patch</filename>
            <type>text/plain</type>
            <size>2002</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2NDcxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODNiYjNhMmUwMTkzYmQ0YWQwN2NmODJjZTI5OWMyNjlk
ZTlhNzJjMC4uNTYxOTQ1MGUxMzVmNDYyY2ZmYzlhM2Q1MTgzOTRhODUzMDY5MjVhZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDE4LTA5LTI1ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgor
CisgICAgICAgIFtNZWRpYVN0cmVhbV0gVXBkYXRlIGNvbnN0cmFpbnRzIHN1cHBvcnRlZCBieSBn
ZXREaXNwbGF5TWVkaWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4OTkzMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDQ3NDAzMDU+CisKKyAgICAg
ICAgVW5yZXZpZXdlZCwgZml4IHRlc3QgYnJva2VuIGJ5IHIyMzY0NjUuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dldERpc3BsYXlNZWRpYS5tbToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisKIDIwMTgtMDktMjUgIE15bGVzIEMuIE1heGZp
ZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZp
eCBhZnRlciByMjM2NDU1CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0dldERpc3BsYXlNZWRpYS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvR2V0RGlzcGxheU1lZGlhLm1tCmluZGV4IDJjZWEyNzlhMTA0MDZmMTFiNjYw
OWI4MTkxYjc2YTMyMzdhZWQ2ZTMuLmFkZjg0MzkwZThjMGE1ZWE2ZTEzYTFlZmE1MTI1YTg0ZWUz
NTRiYzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
R2V0RGlzcGxheU1lZGlhLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvR2V0RGlzcGxheU1lZGlhLm1tCkBAIC0xNTIsMTYgKzE1MiwxNyBAQCBwdWJsaWM6CiBU
RVNUX0YoR2V0RGlzcGxheU1lZGlhVGVzdCwgQmFzaWNQcm9tcHQpCiB7CiAgICAgcHJvbXB0Rm9y
Q2FwdHVyZShAInsgYXVkaW86IHRydWUsIHZpZGVvOiB0cnVlIH0iLCB0cnVlKTsKLSAgICBwcm9t
cHRGb3JDYXB0dXJlKEAieyBhdWRpbzogdHJ1ZSwgdmlkZW86IGZhbHNlIH0iLCB0cnVlKTsKKyAg
ICBwcm9tcHRGb3JDYXB0dXJlKEAieyBhdWRpbzogdHJ1ZSwgdmlkZW86IGZhbHNlIH0iLCBmYWxz
ZSk7CiAgICAgcHJvbXB0Rm9yQ2FwdHVyZShAInsgYXVkaW86IGZhbHNlLCB2aWRlbzogdHJ1ZSB9
IiwgdHJ1ZSk7CiAgICAgcHJvbXB0Rm9yQ2FwdHVyZShAInsgYXVkaW86IGZhbHNlLCB2aWRlbzog
ZmFsc2UgfSIsIGZhbHNlKTsKIH0KIAogVEVTVF9GKEdldERpc3BsYXlNZWRpYVRlc3QsIENvbnN0
cmFpbnRzKQogewotICAgIHByb21wdEZvckNhcHR1cmUoQCJ7IHZpZGVvOiB7d2lkdGg6IDY0MH0g
fSIsIGZhbHNlKTsKLSAgICBwcm9tcHRGb3JDYXB0dXJlKEAieyB2aWRlbzogdHJ1ZSwgYXVkaW86
IHsgdm9sdW1lOiAwLjUgfSB9IiwgZmFsc2UpOwotICAgIHByb21wdEZvckNhcHR1cmUoQCJ7IHZp
ZGVvOiB7aGVpZ2h0OiA0ODB9LCBhdWRpbzogdHJ1ZSB9IiwgZmFsc2UpOworICAgIHByb21wdEZv
ckNhcHR1cmUoQCJ7IHZpZGVvOiB7d2lkdGg6IDY0MH0gfSIsIHRydWUpOworICAgIHByb21wdEZv
ckNhcHR1cmUoQCJ7IHZpZGVvOiB0cnVlLCBhdWRpbzogeyB2b2x1bWU6IDAuNSB9IH0iLCB0cnVl
KTsKKyAgICBwcm9tcHRGb3JDYXB0dXJlKEAieyB2aWRlbzoge2hlaWdodDogNDgwfSwgYXVkaW86
IHRydWUgfSIsIHRydWUpOworICAgIHByb21wdEZvckNhcHR1cmUoQCJ7IHZpZGVvOiB7d2lkdGg6
IHsgZXhhY3Q6IDY0MH0gfSB9IiwgZmFsc2UpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>