<?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>172245</bug_id>
          
          <creation_ts>2017-05-17 14:57:02 -0700</creation_ts>
          <short_desc>[MediaStream] do not cache gUM permissions</short_desc>
          <delta_ts>2022-10-05 16:22:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>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>ahmad.saleem792</cc>
    
    <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>1309843</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-05-17 14:57:02 -0700</bug_when>
    <thetext>WebKit should alway ask the user agent for permission to access devices. The user agent can choose to cache responses if it wants to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310079</commentid>
    <comment_count>1</comment_count>
      <attachid>310505</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-05-18 06:35:21 -0700</bug_when>
    <thetext>Created attachment 310505
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310080</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-05-18 06:36:00 -0700</bug_when>
    <thetext>&lt;rdar://problem/32271110&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310092</commentid>
    <comment_count>3</comment_count>
      <attachid>310505</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-05-18 08:03:56 -0700</bug_when>
    <thetext>Comment on attachment 310505
Proposed patch.

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

&gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp:41
&gt; +    , m_deviceIdentifierHashSalt(deviceIDHashSalt)

WTFMove</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310128</commentid>
    <comment_count>4</comment_count>
      <attachid>310515</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-05-18 10:26:35 -0700</bug_when>
    <thetext>Created attachment 310515
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310146</commentid>
    <comment_count>5</comment_count>
      <attachid>310519</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-05-18 10:45:56 -0700</bug_when>
    <thetext>Created attachment 310519
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310181</commentid>
    <comment_count>6</comment_count>
      <attachid>310525</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-05-18 11:57:28 -0700</bug_when>
    <thetext>Created attachment 310525
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310222</commentid>
    <comment_count>7</comment_count>
      <attachid>310541</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-05-18 13:10:43 -0700</bug_when>
    <thetext>Created attachment 310541
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310375</commentid>
    <comment_count>8</comment_count>
      <attachid>310541</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-18 18:16:51 -0700</bug_when>
    <thetext>Comment on attachment 310541
Patch for landing.

Clearing flags on attachment: 310541

Committed r217081: &lt;http://trac.webkit.org/changeset/217081&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1903587</commentid>
    <comment_count>9</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2022-10-05 16:22:43 -0700</bug_when>
    <thetext>It seems landed but didn&apos;t backed out based on each on Webkit GitHub with BugID:

https://github.com/WebKit/WebKit/commit/39b1840ee9c0a82b8944dd902415b78d7838c083

Marking this as &quot;RESOLVED FIXED&quot;. Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310505</attachid>
            <date>2017-05-18 06:35:21 -0700</date>
            <delta_ts>2017-05-18 08:03:56 -0700</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>gum_prompt_patch_2.txt</filename>
            <type>text/plain</type>
            <size>27773</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNjk4NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA1LTE3ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0g
ZG8gbm90IGNhY2hlIGdVTSBwZXJtaXNzaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMjQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1cGRhdGVkIGZhc3QvbWVkaWFzdHJl
YW0vTWVkaWFEZXZpY2VzLWdldFVzZXJNZWRpYS5odG1sLgorCisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50
cyk6IEFkZCBzYWx0IHBhcmFtZXRlci4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg6CisKIDIwMTctMDUtMTcgIE1hdHQgTGV3aXMgIDxq
bGV3aXMzQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjE2
OTc0LgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAJKHJldmlzaW9uIDIx
Njk4NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDYsNyArMjA2LDcgQEAgdm9p
ZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjYXB0dXJlRAogICAgICAgICBpdC52YWx1ZSgp
OwogfQogCi12b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZhbGlkYXRlUmVxdWVzdENv
bnN0cmFpbnRzKFZhbGlkQ29uc3RyYWludHNIYW5kbGVyJiYgdmFsaWRIYW5kbGVyLCBJbnZhbGlk
Q29uc3RyYWludHNIYW5kbGVyJiYgaW52YWxpZEhhbmRsZXIsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMmIGF1ZGlvQ29uc3RyYWludHMsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIHZpZGVvQ29uc3Ry
YWludHMpCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZhbGlkYXRlUmVxdWVzdENv
bnN0cmFpbnRzKFZhbGlkQ29uc3RyYWludHNIYW5kbGVyJiYgdmFsaWRIYW5kbGVyLCBJbnZhbGlk
Q29uc3RyYWludHNIYW5kbGVyJiYgaW52YWxpZEhhbmRsZXIsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMmIGF1ZGlvQ29uc3RyYWludHMsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIHZpZGVvQ29uc3Ry
YWludHMsIFN0cmluZyYmIGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCkKIHsKICAgICBzdHJ1Y3Qg
RGV2aWNlSW5mbyB7CiAgICAgICAgIHVuc2lnbmVkIGZpdG5lc3NTY29yZTsKQEAgLTI2NSw3ICsy
NjUsNyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZhbGlkYXRlCiAgICAgICAg
ICAgICB2aWRlb1NvdXJjZUlkcy51bmNoZWNrZWRBcHBlbmQoV1RGTW92ZShpbmZvLmlkKSk7CiAg
ICAgfQogCi0gICAgdmFsaWRIYW5kbGVyKFdURk1vdmUoYXVkaW9Tb3VyY2VJZHMpLCBXVEZNb3Zl
KHZpZGVvU291cmNlSWRzKSk7CisgICAgdmFsaWRIYW5kbGVyKFdURk1vdmUoYXVkaW9Tb3VyY2VJ
ZHMpLCBXVEZNb3ZlKHZpZGVvU291cmNlSWRzKSwgV1RGTW92ZShkZXZpY2VJZGVudGlmaWVySGFz
aFNhbHQpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIuaAkocmV2aXNpb24gMjE2OTg3KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC01OCw5ICs1OCw5IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlciYgc2luZ2xldG9uKCk7CiAgICAgc3RhdGljIHZvaWQg
c2V0U2hhcmVkU3RyZWFtQ2VudGVyT3ZlcnJpZGUoUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlciop
OwogCi0gICAgdXNpbmcgVmFsaWRDb25zdHJhaW50c0hhbmRsZXIgPSBXVEY6OkZ1bmN0aW9uPHZv
aWQoY29uc3QgVmVjdG9yPFN0cmluZz4mJiBhdWRpb0RldmljZVVJRHMsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiYgdmlkZW9EZXZpY2VVSURzKT47CisgICAgdXNpbmcgVmFsaWRDb25zdHJhaW50c0hh
bmRsZXIgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgVmVjdG9yPFN0cmluZz4mJiBhdWRpb0Rl
dmljZVVJRHMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiYgdmlkZW9EZXZpY2VVSURzLCBTdHJpbmcm
Jik+OwogICAgIHVzaW5nIEludmFsaWRDb25zdHJhaW50c0hhbmRsZXIgPSBXVEY6OkZ1bmN0aW9u
PHZvaWQoY29uc3QgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludCk+OwotICAgIHZpcnR1YWwgdm9p
ZCB2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhWYWxpZENvbnN0cmFpbnRzSGFuZGxlciYmLCBJ
bnZhbGlkQ29uc3RyYWludHNIYW5kbGVyJiYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGF1ZGlv
Q29uc3RyYWludHMsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIHZpZGVvQ29uc3RyYWludHMpOwor
ICAgIHZpcnR1YWwgdm9pZCB2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhWYWxpZENvbnN0cmFp
bnRzSGFuZGxlciYmLCBJbnZhbGlkQ29uc3RyYWludHNIYW5kbGVyJiYsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMmIGF1ZGlvQ29uc3RyYWludHMsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIHZpZGVv
Q29uc3RyYWludHMsIFN0cmluZyYmKTsKIAogICAgIHVzaW5nIE5ld01lZGlhU3RyZWFtSGFuZGxl
ciA9IHN0ZDo6ZnVuY3Rpb248dm9pZChSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPiYmKT47CiAg
ICAgdmlydHVhbCB2b2lkIGNyZWF0ZU1lZGlhU3RyZWFtKE5ld01lZGlhU3RyZWFtSGFuZGxlciYm
LCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VJ
RCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogYXVkaW9Db25zdHJhaW50cywgY29uc3QgTWVkaWFD
b25zdHJhaW50cyogdmlkZW9Db25zdHJhaW50cykgPSAwOwpJbmRleDogU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNp
b24gMjE3MDExKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMTctMDUtMTcgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhU3RyZWFtXSBkbyBub3QgY2FjaGUgZ1VNIHBlcm1p
c3Npb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzIyNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpp
bnZhbGlkYXRlUGVuZGluZ1JlcXVlc3RzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNyZWF0ZVJlcXVlc3QpOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6dXNlck1lZGlhQWNj
ZXNzV2FzRGVuaWVkKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHk6OnVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50ZWQpOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OkZyYW1lQXV0aG9yaXphdGlvblN0YXRlOjpGcmFtZUF1dGhvcml6
YXRpb25TdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OkZyYW1lQXV0aG9yaXphdGlv
blN0YXRlOjpoYXNQZXJtaXNzaW9uVG9Vc2VDYXB0dXJlRGV2aWNlKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6RnJhbWVBdXRob3JpemF0aW9uU3RhdGU6OnNldEhhc1Blcm1pc3Npb25Ub1Vz
ZUNhcHR1cmVEZXZpY2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpGcmFtZUF1dGhvcml6
YXRpb25TdGF0ZTo6ZW5zdXJlU2VjdXJpdHlPcmlnaW5zQXJlRXF1YWwpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c3Rh
dGVGb3JSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVBdXRo
b3JpemF0aW9uU3RhdGU6OnNldERldmljZUlkZW50aWZpZXJIYXNoU2FsdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OkZyYW1lQXV0aG9yaXphdGlvblN0YXRlOjpkZXZpY2VJZGVudGlmaWVy
SGFzaFNhbHQpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSk6CisgICAgICAg
ICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaDoKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6ZGV2aWNlSWRlbnRp
Zmllckhhc2hTYWx0KToKKwogMjAxNy0wNS0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkZCBtb3JlIGFzc2VydGlvbnMgaW4gQmFja2dyb3VuZFByb2Nlc3NS
ZXNwb25zaXZlbmVzc1RpbWVyCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHAJKHJldmlzaW9uIDIxNjk4NykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM5LDU2ICszOSw2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAotRnJhbWVBdXRob3JpemF0aW9uU3RhdGU6OkZyYW1lQXV0aG9yaXphdGlvblN0YXRl
KFJlZjxTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luLCBS
ZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKQotICAg
IDogbV91c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luKFdURk1vdmUodXNlck1lZGlhRG9j
dW1lbnRTZWN1cml0eU9yaWdpbikpCi0gICAgLCBtX3RvcExldmVsRG9jdW1lbnRTZWN1cml0eU9y
aWdpbihXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbikpCi17Ci19Ci0KLWJv
b2wgRnJhbWVBdXRob3JpemF0aW9uU3RhdGU6Omhhc1Blcm1pc3Npb25Ub1VzZUNhcHR1cmVEZXZp
Y2UoY29uc3QgU3RyaW5nJiBkZXZpY2VVSUQpCi17Ci0gICAgcmV0dXJuIG1fYXV0aG9yaXplZERl
dmljZVVJRHMuZmluZChkZXZpY2VVSUQpICE9IG5vdEZvdW5kOwotfQotCi12b2lkIEZyYW1lQXV0
aG9yaXphdGlvblN0YXRlOjpzZXRIYXNQZXJtaXNzaW9uVG9Vc2VDYXB0dXJlRGV2aWNlKGNvbnN0
IFN0cmluZyYgZGV2aWNlVUlELCBib29sIGhhc1Blcm1pc3Npb24pCi17Ci0gICAgaWYgKGRldmlj
ZVVJRC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHNpemVfdCBpbmRleCA9IG1f
YXV0aG9yaXplZERldmljZVVJRHMuZmluZChkZXZpY2VVSUQpOwotICAgIGlmIChoYXNQZXJtaXNz
aW9uID09IChpbmRleCAhPSBub3RGb3VuZCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICho
YXNQZXJtaXNzaW9uKQotICAgICAgICBtX2F1dGhvcml6ZWREZXZpY2VVSURzLmFwcGVuZChkZXZp
Y2VVSUQpOwotICAgIGVsc2UKLSAgICAgICAgbV9hdXRob3JpemVkRGV2aWNlVUlEcy5yZW1vdmUo
aW5kZXgpOwotfQotCi12b2lkIEZyYW1lQXV0aG9yaXphdGlvblN0YXRlOjplbnN1cmVTZWN1cml0
eU9yaWdpbnNBcmVFcXVhbChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1l
bnRTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1l
bnRTZWN1cml0eU9yaWdpbikKLXsKLSAgICBpZiAobV91c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5
T3JpZ2luLT5lcXVhbCgmdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbikgJiYgbV90b3BM
ZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4tPmVxdWFsKCZ0b3BMZXZlbERvY3VtZW50U2VjdXJp
dHlPcmlnaW4pKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3VzZXJNZWRpYURvY3VtZW50U2Vj
dXJpdHlPcmlnaW4gPSB1c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luOwotICAgIG1fdG9w
TGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luID0gdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3Jp
Z2luOwotICAgIG1fYXV0aG9yaXplZERldmljZVVJRHMuY2xlYXIoKTsKLSAgICBtX2RldmljZUlk
ZW50aWZpZXJIYXNoU2FsdCA9IGVtcHR5U3RyaW5nKCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBSZXF1ZXN0VHlwZT4KLUZyYW1lQXV0aG9yaXphdGlvblN0YXRlJiBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c3RhdGVGb3JSZXF1ZXN0KFJlcXVlc3RUeXBlJiByZXF1
ZXN0KQotewotICAgIGF1dG8mIHN0YXRlID0gbV9mcmFtZVN0YXRlcy5hZGQocmVxdWVzdC5mcmFt
ZUlEKCksIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKLSAgICBpZiAoc3RhdGUpIHsKLSAgICAg
ICAgc3RhdGUtPmVuc3VyZVNlY3VyaXR5T3JpZ2luc0FyZUVxdWFsKHJlcXVlc3QudXNlck1lZGlh
RG9jdW1lbnRTZWN1cml0eU9yaWdpbigpLCByZXF1ZXN0LnRvcExldmVsRG9jdW1lbnRTZWN1cml0
eU9yaWdpbigpKTsKLSAgICAgICAgcmV0dXJuICpzdGF0ZTsKLSAgICB9Ci0KLSAgICBzdGF0ZSA9
IHN0ZDo6bWFrZV91bmlxdWU8RnJhbWVBdXRob3JpemF0aW9uU3RhdGU+KHJlcXVlc3QudXNlck1l
ZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpLCByZXF1ZXN0LnRvcExldmVsRG9jdW1lbnRTZWN1
cml0eU9yaWdpbigpKTsKLSAgICByZXR1cm4gKnN0YXRlOwotfQotCiBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkoV2ViUGFnZVByb3h5JiBwYWdlKQogICAgIDogbV9wYWdlKHBhZ2UpCiAgICAgLCBtX3Jl
amVjdGlvblRpbWVyKCp0aGlzLCAmVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk6OnJlamVjdGlvblRpbWVyRmlyZWQpCkBAIC0xMTUsOCArNjUsNiBAQCB2b2lkIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByCiAgICAgZm9yIChhdXRvJiByZXF1ZXN0IDogbV9w
ZW5kaW5nRGV2aWNlUmVxdWVzdHMudmFsdWVzKCkpCiAgICAgICAgIHJlcXVlc3QtPmludmFsaWRh
dGUoKTsKICAgICBtX3BlbmRpbmdEZXZpY2VSZXF1ZXN0cy5jbGVhcigpOwotCi0gICAgbV9mcmFt
ZVN0YXRlcy5jbGVhcigpOwogfQogCiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5OjpzdG9wQ2FwdHVyZSgpCkBAIC0xMzAsOSArNzgsOSBAQCB2b2lkIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByCiAgICAgaW52YWxpZGF0ZVBlbmRpbmdSZXF1ZXN0
cygpOwogfQogCi1SZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNyZWF0ZVJlcXVlc3QodWludDY0X3QgdXNl
ck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4m
JiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYm
IHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhdWRpb0Rldmlj
ZVVJRHMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB2aWRlb0RldmljZVVJRHMpCitSZWY8VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHk6OmNyZWF0ZVJlcXVlc3QodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9y
aWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmln
aW4sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhdWRpb0RldmljZVVJRHMsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiB2aWRlb0RldmljZVVJRHMsIFN0cmluZyYmIGRldmljZUlESGFzaFNhbHQpCiB7Ci0g
ICAgYXV0byByZXF1ZXN0ID0gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6Y3JlYXRl
KCp0aGlzLCB1c2VyTWVkaWFJRCwgZnJhbWVJRCwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9y
aWdpbiksIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIGF1ZGlvRGV2aWNlVUlEcywg
dmlkZW9EZXZpY2VVSURzKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5OjpjcmVhdGUoKnRoaXMsIHVzZXJNZWRpYUlELCBmcmFtZUlELCBXVEZNb3Zl
KHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2lu
KSwgYXVkaW9EZXZpY2VVSURzLCB2aWRlb0RldmljZVVJRHMsIFdURk1vdmUoZGV2aWNlSURIYXNo
U2FsdCkpOwogICAgIG1fcGVuZGluZ1VzZXJNZWRpYVJlcXVlc3RzLmFkZCh1c2VyTWVkaWFJRCwg
cmVxdWVzdC5wdHIoKSk7CiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CkBAIC0xNzgsMTIgKzEyNiw2
IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHIKICAgICBpZiAoIXJl
cXVlc3QpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8mIGZyYW1lU3RhdGUgPSBzdGF0ZUZv
clJlcXVlc3QoKnJlcXVlc3QpOwotICAgIGZvciAoY29uc3QgYXV0byYgZGV2aWNlVUlEIDogcmVx
dWVzdC0+dmlkZW9EZXZpY2VVSURzKCkpCi0gICAgICAgIGZyYW1lU3RhdGUuc2V0SGFzUGVybWlz
c2lvblRvVXNlQ2FwdHVyZURldmljZShkZXZpY2VVSUQsIGZhbHNlKTsKLSAgICBmb3IgKGNvbnN0
IGF1dG8mIGRldmljZVVJRCA6IHJlcXVlc3QtPmF1ZGlvRGV2aWNlVUlEcygpKQotICAgICAgICBm
cmFtZVN0YXRlLnNldEhhc1Blcm1pc3Npb25Ub1VzZUNhcHR1cmVEZXZpY2UoZGV2aWNlVUlELCBm
YWxzZSk7Ci0KICAgICBkZW55UmVxdWVzdCh1c2VyTWVkaWFJRCwgcmVhc29uLCBlbXB0eVN0cmlu
ZygpKTsKIH0KIApAQCAtMjExLDE1ICsxNTMsOCBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByCiAgICAgaWYgKCFyZXF1ZXN0KQogICAgICAgICByZXR1cm47CiAKLSAg
ICBhdXRvJiBmcmFtZVN0YXRlID0gc3RhdGVGb3JSZXF1ZXN0KCpyZXF1ZXN0KTsKLSAgICBpZiAo
IWF1ZGlvRGV2aWNlVUlELmlzRW1wdHkoKSkKLSAgICAgICAgZnJhbWVTdGF0ZS5zZXRIYXNQZXJt
aXNzaW9uVG9Vc2VDYXB0dXJlRGV2aWNlKGF1ZGlvRGV2aWNlVUlELCB0cnVlKTsKLSAgICBpZiAo
IXZpZGVvRGV2aWNlVUlELmlzRW1wdHkoKSkKLSAgICAgICAgZnJhbWVTdGF0ZS5zZXRIYXNQZXJt
aXNzaW9uVG9Vc2VDYXB0dXJlRGV2aWNlKHZpZGVvRGV2aWNlVUlELCB0cnVlKTsKLQogICAgIFVz
ZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24oKS53aWxsQ3JlYXRlTWVkaWFTdHJlYW0o
KnRoaXMsICFhdWRpb0RldmljZVVJRC5pc0VtcHR5KCksICF2aWRlb0RldmljZVVJRC5pc0VtcHR5
KCkpOwotCi0gICAgbV9wYWdlLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVc2Vy
TWVkaWFBY2Nlc3NXYXNHcmFudGVkKHVzZXJNZWRpYUlELCBhdWRpb0RldmljZVVJRCwgdmlkZW9E
ZXZpY2VVSUQsIGZyYW1lU3RhdGUuZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KCkpLCBtX3BhZ2Uu
cGFnZUlEKCkpOworICAgIG1fcGFnZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
VXNlck1lZGlhQWNjZXNzV2FzR3JhbnRlZCh1c2VyTWVkaWFJRCwgYXVkaW9EZXZpY2VVSUQsIHZp
ZGVvRGV2aWNlVUlELCByZXF1ZXN0LT5kZXZpY2VJZGVudGlmaWVySGFzaFNhbHQoKSksIG1fcGFn
ZS5wYWdlSUQoKSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTSh1c2VyTWVkaWFJRCk7CiAgICAg
VU5VU0VEX1BBUkFNKGF1ZGlvRGV2aWNlVUlEKTsKQEAgLTI0Nyw2ICsxODIsMTIgQEAgdm9pZCBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcgogdm9pZCBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFt
ZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6TWVk
aWFDb25zdHJhaW50cyYgYXVkaW9Db25zdHJhaW50cywgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50cyYgdmlkZW9Db25zdHJhaW50cykKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
ICAgIGlmICghVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OnNpbmdsZXRvbigpLmNhcHR1cmVFbmFi
bGVkKCkpIHsKKyAgICAgICAgbV9wZW5kaW5nUmVqZWN0aW9ucy5hcHBlbmQodXNlck1lZGlhSUQp
OworICAgICAgICBzY2hlZHVsZU5leHRSZWplY3Rpb24oKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKwogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OkludmFsaWRDb25z
dHJhaW50c0hhbmRsZXIgaW52YWxpZEhhbmRsZXIgPSBbdGhpcywgdXNlck1lZGlhSURdKGNvbnN0
IFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQpIHsKICAgICAgICAgaWYgKCFtX3BhZ2UuaXNWYWxp
ZCgpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjU0LDcgKzE5NSw3IEBAIHZvaWQgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHIKICAgICAgICAgZGVueVJlcXVlc3QodXNlck1l
ZGlhSUQsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0Rl
bmlhbFJlYXNvbjo6SW52YWxpZENvbnN0cmFpbnQsIGludmFsaWRDb25zdHJhaW50KTsKICAgICB9
OwogCi0gICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6VmFsaWRDb25zdHJh
aW50c0hhbmRsZXIgdmFsaWRIYW5kbGVyID0gW3RoaXMsIHVzZXJNZWRpYUlELCBmcmFtZUlELCB1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbiA9IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLmNvcHlSZWYo
KSwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiA9IHRvcExldmVsRG9jdW1lbnRPcmlnaW4uY29weVJl
ZigpXShjb25zdCBWZWN0b3I8U3RyaW5nPiYmIGF1ZGlvRGV2aWNlVUlEcywgY29uc3QgVmVjdG9y
PFN0cmluZz4mJiB2aWRlb0RldmljZVVJRHMpIG11dGFibGUgeworICAgIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OlZhbGlkQ29uc3RyYWludHNIYW5kbGVyIHZhbGlkSGFuZGxl
ciA9IFt0aGlzLCB1c2VyTWVkaWFJRCwgZnJhbWVJRCwgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4g
PSB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbi5jb3B5UmVmKCksIHRvcExldmVsRG9jdW1lbnRPcmln
aW4gPSB0b3BMZXZlbERvY3VtZW50T3JpZ2luLmNvcHlSZWYoKV0oY29uc3QgVmVjdG9yPFN0cmlu
Zz4mJiBhdWRpb0RldmljZVVJRHMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiYgdmlkZW9EZXZpY2VV
SURzLCBTdHJpbmcmJiBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpIG11dGFibGUgewogICAgICAg
ICBpZiAoIW1fcGFnZS5pc1ZhbGlkKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTI2Myw0
NCArMjA0LDE0IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHIKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGJvb2wgYXV0aG9yaXplZEZv
ckF1ZGlvID0gZmFsc2U7Ci0gICAgICAgIGJvb2wgYXV0aG9yaXplZEZvclZpZGVvID0gZmFsc2U7
Ci0gICAgICAgIAogICAgICAgICBhdXRvIHVzZXJNZWRpYU9yaWdpbiA9IEFQSTo6U2VjdXJpdHlP
cmlnaW46OmNyZWF0ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbi5nZXQoKSk7CiAgICAgICAgIGF1
dG8gdG9wTGV2ZWxPcmlnaW4gPSBBUEk6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodG9wTGV2ZWxE
b2N1bWVudE9yaWdpbi5nZXQoKSk7Ci0gICAgICAgIAotICAgICAgICBhdXRvIHJlcXVlc3QgPSBj
cmVhdGVSZXF1ZXN0KHVzZXJNZWRpYUlELCBmcmFtZUlELCBXVEZNb3ZlKHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSwgYXVkaW9EZXZpY2VV
SURzLCB2aWRlb0RldmljZVVJRHMpOwotCi0gICAgICAgIGF1dG8mIGZyYW1lU3RhdGUgPSBzdGF0
ZUZvclJlcXVlc3QocmVxdWVzdC5nZXQoKSk7Ci0gICAgICAgIGZvciAoY29uc3QgYXV0byYgZGV2
aWNlVUlEIDogYXVkaW9EZXZpY2VVSURzKSB7Ci0gICAgICAgICAgICBpZiAoZnJhbWVTdGF0ZS5o
YXNQZXJtaXNzaW9uVG9Vc2VDYXB0dXJlRGV2aWNlKGRldmljZVVJRCkpIHsKLSAgICAgICAgICAg
ICAgICBhdXRob3JpemVkRm9yQXVkaW8gPSB0cnVlOwotICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGZvciAoY29uc3QgYXV0byYgZGV2aWNl
VUlEIDogdmlkZW9EZXZpY2VVSURzKSB7Ci0gICAgICAgICAgICBpZiAoZnJhbWVTdGF0ZS5oYXNQ
ZXJtaXNzaW9uVG9Vc2VDYXB0dXJlRGV2aWNlKGRldmljZVVJRCkpIHsKLSAgICAgICAgICAgICAg
ICBhdXRob3JpemVkRm9yVmlkZW8gPSB0cnVlOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGF1dGhvcml6ZWRGb3JBdWRpbyA9
PSAhYXVkaW9EZXZpY2VVSURzLmlzRW1wdHkoKSAmJiBhdXRob3JpemVkRm9yVmlkZW8gPT0gIXZp
ZGVvRGV2aWNlVUlEcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHVzZXJNZWRpYUFjY2Vzc1dh
c0dyYW50ZWQodXNlck1lZGlhSUQsIGF1dGhvcml6ZWRGb3JBdWRpbyA/IGF1ZGlvRGV2aWNlVUlE
c1swXSA6IGVtcHR5U3RyaW5nKCksIGF1dGhvcml6ZWRGb3JWaWRlbyA/IHZpZGVvRGV2aWNlVUlE
c1swXSA6IGVtcHR5U3RyaW5nKCkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Cisg
ICAgICAgIGF1dG8gcmVxdWVzdCA9IGNyZWF0ZVJlcXVlc3QodXNlck1lZGlhSUQsIGZyYW1lSUQs
IFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9jdW1l
bnRPcmlnaW4pLCBhdWRpb0RldmljZVVJRHMsIHZpZGVvRGV2aWNlVUlEcywgV1RGTW92ZShkZXZp
Y2VJZGVudGlmaWVySGFzaFNhbHQpKTsKIAogICAgICAgICBpZiAoIW1fcGFnZS51aUNsaWVudCgp
LmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KG1fcGFnZSwgKm1fcGFn
ZS5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVJRCksIFdURk1vdmUodXNlck1lZGlhT3JpZ2luKSwg
V1RGTW92ZSh0b3BMZXZlbE9yaWdpbiksIHJlcXVlc3QuZ2V0KCkpKQogICAgICAgICAgICAgdXNl
ck1lZGlhQWNjZXNzV2FzRGVuaWVkKHVzZXJNZWRpYUlELCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlVzZXJNZWRpYURpc2FibGVk
KTsKLQogICAgIH07CiAKLSAgICBpZiAoIVVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0
b24oKS5jYXB0dXJlRW5hYmxlZCgpKSB7Ci0gICAgICAgIG1fcGVuZGluZ1JlamVjdGlvbnMuYXBw
ZW5kKHVzZXJNZWRpYUlEKTsKLSAgICAgICAgc2NoZWR1bGVOZXh0UmVqZWN0aW9uKCk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBhdXRvIGhhdmVEZXZpY2VTYWx0SGFuZGxlciA9IFt0
aGlzLCB1c2VyTWVkaWFJRCwgdmFsaWRIYW5kbGVyID0gV1RGTW92ZSh2YWxpZEhhbmRsZXIpLCBp
bnZhbGlkSGFuZGxlciA9IFdURk1vdmUoaW52YWxpZEhhbmRsZXIpLCBhdWRpb0NvbnN0cmFpbnRz
ID0gV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyhhdWRpb0NvbnN0cmFpbnRzKSwgdmlkZW9Db25z
dHJhaW50cyA9IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHModmlkZW9Db25zdHJhaW50cyldKHVp
bnQ2NF90IHVzZXJNZWRpYUlELCBTdHJpbmcmJiBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQsIGJv
b2wgb3JpZ2luSGFzUGVyc2lzdGVudEFjY2VzcykgbXV0YWJsZSB7CiAKICAgICAgICAgYXV0byBy
ZXF1ZXN0ID0gbV9wZW5kaW5nRGV2aWNlUmVxdWVzdHMudGFrZSh1c2VyTWVkaWFJRCk7CkBAIC0z
MTMsMTIgKzIyNCw5IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHIK
ICAgICAgICAgYXVkaW9Db25zdHJhaW50cy5kZXZpY2VJREhhc2hTYWx0ID0gZGV2aWNlSWRlbnRp
Zmllckhhc2hTYWx0OwogICAgICAgICB2aWRlb0NvbnN0cmFpbnRzLmRldmljZUlESGFzaFNhbHQg
PSBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQ7CiAKLSAgICAgICAgYXV0byYgZnJhbWVTdGF0ZSA9
IHN0YXRlRm9yUmVxdWVzdChyZXF1ZXN0LnZhbHVlKCkuZ2V0KCkpOwotICAgICAgICBmcmFtZVN0
YXRlLnNldERldmljZUlkZW50aWZpZXJIYXNoU2FsdChXVEZNb3ZlKGRldmljZUlkZW50aWZpZXJI
YXNoU2FsdCkpOwotICAgICAgICAKICAgICAgICAgc3luY1dpdGhXZWJDb3JlUHJlZnMoKTsKICAg
ICAgICAgCi0gICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZh
bGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFdURk1vdmUodmFsaWRIYW5kbGVyKSwgV1RGTW92ZShp
bnZhbGlkSGFuZGxlciksIGF1ZGlvQ29uc3RyYWludHMsIHZpZGVvQ29uc3RyYWludHMpOworICAg
ICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52YWxpZGF0ZVJlcXVl
c3RDb25zdHJhaW50cyhXVEZNb3ZlKHZhbGlkSGFuZGxlciksIFdURk1vdmUoaW52YWxpZEhhbmRs
ZXIpLCBhdWRpb0NvbnN0cmFpbnRzLCB2aWRlb0NvbnN0cmFpbnRzLCBXVEZNb3ZlKGRldmljZUlk
ZW50aWZpZXJIYXNoU2FsdCkpOwogICAgIH07CiAKICAgICBnZXRVc2VyTWVkaWFQZXJtaXNzaW9u
SW5mbyh1c2VyTWVkaWFJRCwgZnJhbWVJRCwgV1RGTW92ZShoYXZlRGV2aWNlU2FsdEhhbmRsZXIp
LCBXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luKSk7CkBAIC0zNTcsOSArMjY1LDYgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcgogICAgICAgICBpZiAoIW1fcGFnZS5pc1ZhbGlkKCkpCiAgICAgICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgYXV0byYgZnJhbWVTdGF0ZSA9IHN0YXRlRm9yUmVxdWVz
dChyZXF1ZXN0LnZhbHVlKCkuZ2V0KCkpOwotICAgICAgICBmcmFtZVN0YXRlLnNldERldmljZUlk
ZW50aWZpZXJIYXNoU2FsdChTdHJpbmcoZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSk7Ci0KICAg
ICAgICAgc3luY1dpdGhXZWJDb3JlUHJlZnMoKTsKICAgICAgICAgYXV0byBkZXZpY2VJbmZvID0g
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuZ2V0TWVkaWFTdHJlYW1EZXZp
Y2VzKCk7CiAgICAgICAgIG1fcGFnZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
RGlkQ29tcGxldGVNZWRpYURldmljZUVudW1lcmF0aW9uKHVzZXJNZWRpYUlELCBkZXZpY2VJbmZv
LCBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQsIG9yaWdpbkhhc1BlcnNpc3RlbnRBY2Nlc3MpLCBt
X3BhZ2UucGFnZUlEKCkpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgJ
KHJldmlzaW9uIDIxNjk4NykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNywyNSAr
MzcsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUGFnZVByb3h5OwogCi1jbGFz
cyBGcmFtZUF1dGhvcml6YXRpb25TdGF0ZSB7Ci1wdWJsaWM6Ci0gICAgRnJhbWVBdXRob3JpemF0
aW9uU3RhdGUoUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50
U2VjdXJpdHlPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERv
Y3VtZW50U2VjdXJpdHlPcmlnaW4pOwotCi0gICAgYm9vbCBoYXNQZXJtaXNzaW9uVG9Vc2VDYXB0
dXJlRGV2aWNlKGNvbnN0IFN0cmluZyYgZGV2aWNlVUlEKTsKLSAgICB2b2lkIHNldEhhc1Blcm1p
c3Npb25Ub1VzZUNhcHR1cmVEZXZpY2UoY29uc3QgU3RyaW5nJiwgYm9vbCk7Ci0KLSAgICB2b2lk
IGVuc3VyZVNlY3VyaXR5T3JpZ2luc0FyZUVxdWFsKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1
c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYg
dG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKTsKLQotICAgIHZvaWQgc2V0RGV2aWNlSWRl
bnRpZmllckhhc2hTYWx0KFN0cmluZyYmIGhhc2hTYWx0KSB7IG1fZGV2aWNlSWRlbnRpZmllckhh
c2hTYWx0ID0gaGFzaFNhbHQ7IH0KLSAgICBjb25zdCBTdHJpbmcmIGRldmljZUlkZW50aWZpZXJI
YXNoU2FsdCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0OyB9Ci0K
LXByaXZhdGU6Ci0gICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBtX3VzZXJNZWRpYURv
Y3VtZW50U2VjdXJpdHlPcmlnaW47Ci0gICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBt
X3RvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbjsKLSAgICBWZWN0b3I8U3RyaW5nPiBtX2F1
dGhvcml6ZWREZXZpY2VVSURzOwotICAgIFN0cmluZyBtX2RldmljZUlkZW50aWZpZXJIYXNoU2Fs
dDsKLX07Ci0KIGNsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IHsK
IHB1YmxpYzoKICAgICBleHBsaWNpdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eShXZWJQYWdlUHJveHkmKTsKQEAgLTcwLDkgKzUxLDYgQEAgcHVibGljOgogICAgIHZvaWQg
dXNlck1lZGlhQWNjZXNzV2FzR3JhbnRlZCh1aW50NjRfdCwgY29uc3QgU3RyaW5nJiBhdWRpb0Rl
dmljZVVJRCwgY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZVVJRCk7CiAgICAgdm9pZCB1c2VyTWVk
aWFBY2Nlc3NXYXNEZW5pZWQodWludDY0X3QsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbik7CiAKLSAgICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgUmVxdWVzdFR5cGU+Ci0gICAgRnJhbWVBdXRob3JpemF0aW9uU3RhdGUmIHN0YXRlRm9yUmVx
dWVzdChSZXF1ZXN0VHlwZSYpOwotCiAgICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXNGb3JG
cmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CiAKICAgICB2b2lkIHN0
b3BDYXB0dXJlKCk7CkBAIC04NCw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGVuZGVkQ2Fw
dHVyZVNlc3Npb24oKTsKIAogcHJpdmF0ZToKLSAgICBSZWY8VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eT4gY3JlYXRlUmVxdWVzdCh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3Qg
ZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGF1ZGlvRGV2aWNlVUlEcywgY29uc3QgVmVjdG9y
PFN0cmluZz4mIHZpZGVvRGV2aWNlVUlEcyk7CisgICAgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk+IGNyZWF0ZVJlcXVlc3QodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhdWRpb0RldmljZVVJRHMsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiB2aWRlb0RldmljZVVJRHMsIFN0cmluZyYmKTsKICAgICB2b2lkIGRlbnlSZXF1
ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYUlELCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24sIGNvbnN0IFN0cmluZyYgaW52YWxpZENvbnN0
cmFpbnQpOwogCiAgICAgdm9pZCBnZXRVc2VyTWVkaWFQZXJtaXNzaW9uSW5mbyh1aW50NjRfdCB1
c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJv
eHk6OkNvbXBsZXRpb25IYW5kbGVyJiYsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRv
cExldmVsRG9jdW1lbnRPcmlnaW4pOwpAQCAtOTMsNyArNzEsNiBAQCBwcml2YXRlOgogCiAgICAg
SGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+
PiBtX3BlbmRpbmdVc2VyTWVkaWFSZXF1ZXN0czsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWY8
VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk+PiBtX3BlbmRpbmdEZXZpY2VSZXF1ZXN0czsK
LSAgICBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8RnJhbWVBdXRob3JpemF0aW9u
U3RhdGU+PiBtX2ZyYW1lU3RhdGVzOwogCiAgICAgV2ViUGFnZVByb3h5JiBtX3BhZ2U7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAJKHJldmlzaW9uIDIxNjk4NykKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKLVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFt
ZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYXVkaW9EZXZpY2VVSURzLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgdmlkZW9EZXZpY2VVSURzKQorVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9y
aWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmln
aW4sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhdWRpb0RldmljZVVJRHMsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiB2aWRlb0RldmljZVVJRHMsIFN0cmluZyYmIGRldmljZUlESGFzaFNhbHQpCiAgICAg
OiBtX21hbmFnZXIoJm1hbmFnZXIpCiAgICAgLCBtX3VzZXJNZWRpYUlEKHVzZXJNZWRpYUlEKQog
ICAgICwgbV9mcmFtZUlEKGZyYW1lSUQpCkBAIC0zOCw2ICszOCw3IEBAIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWQKICAgICAsIG1fdG9wTGV2ZWxEb2N1bWVudFNlY3Vy
aXR5T3JpZ2luKFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbikpCiAgICAgLCBtX3ZpZGVv
RGV2aWNlVUlEcyh2aWRlb0RldmljZVVJRHMpCiAgICAgLCBtX2F1ZGlvRGV2aWNlVUlEcyhhdWRp
b0RldmljZVVJRHMpCisgICAgLCBtX2RldmljZUlkZW50aWZpZXJIYXNoU2FsdChkZXZpY2VJREhh
c2hTYWx0KQogewogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgJKHJldmlzaW9uIDIxNjk4
NykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDkgKzM0LDkgQEAgY2xhc3MgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUAogCiBjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3Q+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZShVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB2aWRlb0RldmljZVVJRHMsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBhdWRpb0RldmljZVVJRHMpCisgICAgc3RhdGljIFJlZjxVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGUoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlE
LCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4s
IFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgdmlkZW9EZXZpY2VVSURzLCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgYXVkaW9EZXZpY2VVSURzLCBTdHJpbmcmJiBkZXZpY2VJREhhc2hTYWx0KQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eShtYW5hZ2VyLCB1c2VyTWVkaWFJRCwgZnJhbWVJRCwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiksIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIHZpZGVvRGV2aWNlVUlE
cywgYXVkaW9EZXZpY2VVSURzKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkobWFuYWdlciwgdXNlck1lZGlhSUQsIGZyYW1lSUQs
IFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9jdW1l
bnRPcmlnaW4pLCB2aWRlb0RldmljZVVJRHMsIGF1ZGlvRGV2aWNlVUlEcywgV1RGTW92ZShkZXZp
Y2VJREhhc2hTYWx0KSkpOwogICAgIH0KIAogICAgIHZvaWQgYWxsb3coY29uc3QgU3RyaW5nJiB2
aWRlb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCk7CkBAIC01Niw4ICs1
NiwxMCBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURv
Y3VtZW50U2VjdXJpdHlPcmlnaW4oKSB7IHJldHVybiBtX3VzZXJNZWRpYURvY3VtZW50U2VjdXJp
dHlPcmlnaW4uZ2V0KCk7IH0KICAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxE
b2N1bWVudFNlY3VyaXR5T3JpZ2luKCkgeyByZXR1cm4gbV90b3BMZXZlbERvY3VtZW50U2VjdXJp
dHlPcmlnaW4uZ2V0KCk7IH0KIAorICAgIGNvbnN0IFN0cmluZyYgZGV2aWNlSWRlbnRpZmllckhh
c2hTYWx0KCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VJZGVudGlmaWVySGFzaFNhbHQ7IH0KKyAg
ICAKIHByaXZhdGU6Ci0gICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYsIHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1
aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlh
RG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgdmlkZW9EZXZpY2VVSURzLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgYXVkaW9EZXZpY2VVSURzKTsKKyAgICBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Jiwg
dWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiB2aWRlb0RldmljZVVJRHMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhdWRpb0RldmljZVVJRHMs
IFN0cmluZyYmKTsKIAogICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
KiBtX21hbmFnZXI7CiAgICAgdWludDY0X3QgbV91c2VyTWVkaWFJRDsKQEAgLTY2LDYgKzY4LDcg
QEAgcHJpdmF0ZToKICAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdG9wTGV2ZWxE
b2N1bWVudFNlY3VyaXR5T3JpZ2luOwogICAgIFZlY3RvcjxTdHJpbmc+IG1fdmlkZW9EZXZpY2VV
SURzOwogICAgIFZlY3RvcjxTdHJpbmc+IG1fYXVkaW9EZXZpY2VVSURzOworICAgIFN0cmluZyBt
X2RldmljZUlkZW50aWZpZXJIYXNoU2FsdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJ
bmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0No
YW5nZUxvZwkocmV2aXNpb24gMjE2OTg3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDUtMTcgIEVyaWMgQ2FybHNvbiAgPGVy
aWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhU3RyZWFtXSBkbyBub3QgY2Fj
aGUgZ1VNIHBlcm1pc3Npb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzIyNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWdldFVzZXJNZWRpYS1l
eHBlY3RlZC50eHQ6IFVwZGF0ZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURl
dmljZXMtZ2V0VXNlck1lZGlhLmh0bWw6CisKIDIwMTctMDUtMTcgIFJ5YW4gSGFkZGFkICA8cnlh
bmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgTWFyayB0d28gaHR0cC90ZXN0cy9tZWRpYS9o
bHMvdmlkZW8gdGVzdHMgYXMgZmFpbGluZyBkdXJpbmcgaW52ZXN0aWdhdGlvbi4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWdldFVzZXJNZWRpYS1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRp
YURldmljZXMtZ2V0VXNlck1lZGlhLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE2OTg3KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMtZ2V0VXNlck1lZGlhLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNDksOSArNDksNiBAQCBQQVNTIEVycm9yIGNh
bGxiYWNrIGNhbGxlZC4KIFBBU1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEo
e2F1ZGlvOmZhbHNlLCB2aWRlbzp2aWRlb0NvbnN0cmFpbnRzfSkudGhlbihpbnZhbGlkR290U3Ry
ZWFtKS5jYXRjaChlcnJvcldpdGhDb25zdHJhaW50czIpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9u
LgogUEFTUyBFcnJvciBjYWxsYmFjayBjYWxsZWQuCiBQQVNTIGVycm9yQXJnLm5hbWUgaXMgIkVy
cm9yIgotCi1QQVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzp0
cnVlfSkudGhlbih2YWxpZFN0cmVhbSkuY2F0Y2goZXJyb3IxKTsgZGlkIG5vdCB0aHJvdyBleGNl
cHRpb24uCi1QQVNTIFN0cmVhbSBnZW5lcmF0ZWQgYmVjYXVzZSBwYWdlIGhhcyBhbHJlYWR5IGF1
dGhlbnRpY2F0ZWQuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09N
UExFVEUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWdl
dFVzZXJNZWRpYS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vTWVkaWFEZXZpY2VzLWdldFVzZXJNZWRpYS5odG1sCShyZXZpc2lvbiAyMTY5ODcpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy1nZXRVc2VyTWVkaWEuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTEgKzI3LDYgQEAKICAgICAgICAgICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgZnVuY3Rpb24gdmFsaWRT
dHJlYW0oZSkgewotICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlN0cmVhbSBnZW5lcmF0ZWQg
YmVjYXVzZSBwYWdlIGhhcyBhbHJlYWR5IGF1dGhlbnRpY2F0ZWQuIik7Ci0gICAgICAgICAgICAg
ICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgICAgICB9Ci0KICAgICAgICAgICAgIGZ1bmN0aW9u
IGVycm9yMShlKSB7CiAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChgRXJyb3IgY2FsbGJhY2sg
Y2FsbGVkLCBlcnJvciA9ICR7ZX1gKTsKICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
QEAgLTQyLDEyICszNyw3IEBACiAgICAgICAgICAgICAgICAgZXJyb3JBcmcgPSBlOwogICAgICAg
ICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXJyb3JBcmcubmFtZSIsICJFcnJvciIp
OwogCi0gICAgICAgICAgICAgICAgLy8gV2UgdGVsbCBMYXlvdXRUZXN0UnVubmVyIHRvIGRlbnkg
dXNlciBtZWRpYSByZXF1ZXN0cyBidXQgZXhwZWN0IHRoZSBnVU0gY2FsbCB0byBzdWNjZWVkCi0g
ICAgICAgICAgICAgICAgLy8gYXMgaXQgc2hvdWxkIG5vdCBzZWUgdGhlIHJlcXVlc3QgYmVjYXVz
ZSB0aGUgY3VycmVudCBicm93c2luZyBjb250ZXh0IGhhcyBhbHJlYWR5Ci0gICAgICAgICAgICAg
ICAgLy8gc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQgYSBzdHJlYW0gZm9yIHRoZSBtb2NrIGF1ZGlvIGRl
dmljZS4KLSAgICAgICAgICAgICAgICBzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGZhbHNlKTsKLSAg
ICAgICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkTm90VGhyb3co
Im5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlfSkudGhlbih2
YWxpZFN0cmVhbSkuY2F0Y2goZXJyb3IxKTsiKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgZnVuY3Rpb24gZXJyb3JXaXRoQ29u
c3RyYWludHMxKCkgewo=
</data>
<flag name="review"
          id="331568"
          type_id="1"
          status="+"
          setter="youennf"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310515</attachid>
            <date>2017-05-18 10:26:35 -0700</date>
            <delta_ts>2017-05-18 10:45:56 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>gum_prompt_patch_5.txt</filename>
            <type>text/plain</type>
            <size>27818</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNzA0NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA1LTE4ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0g
ZG8gbm90IGNhY2hlIGdVTSBwZXJtaXNzaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMjQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5u
IEZhYmxldC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHVwZGF0ZWQgZmFzdC9tZWRpYXN0cmVh
bS9NZWRpYURldmljZXMtZ2V0VXNlck1lZGlhLmh0bWwuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRz
KTogQWRkIHNhbHQgcGFyYW1ldGVyLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaDoKKwogMjAxNy0wNS0xOCAgQW50dGkgS29pdmlzdG8g
IDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgRGVzaWduIG1vZGUgc2hvdWxkIG5vdCBhZmZl
Y3QgVUEgc2hhZG93IHRyZWVzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNw
cAkocmV2aXNpb24gMjE3MDQ2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNiw3
ICsyMDYsNyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1cmVECiAgICAg
ICAgIGl0LnZhbHVlKCk7CiB9CiAKLXZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dmFs
aWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoVmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiB2YWxpZEhh
bmRsZXIsIEludmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiBpbnZhbGlkSGFuZGxlciwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyYgYXVkaW9Db25zdHJhaW50cywgY29uc3QgTWVkaWFDb25zdHJhaW50
cyYgdmlkZW9Db25zdHJhaW50cykKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dmFs
aWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoVmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiB2YWxpZEhh
bmRsZXIsIEludmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiBpbnZhbGlkSGFuZGxlciwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyYgYXVkaW9Db25zdHJhaW50cywgY29uc3QgTWVkaWFDb25zdHJhaW50
cyYgdmlkZW9Db25zdHJhaW50cywgU3RyaW5nJiYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KQog
ewogICAgIHN0cnVjdCBEZXZpY2VJbmZvIHsKICAgICAgICAgdW5zaWduZWQgZml0bmVzc1Njb3Jl
OwpAQCAtMjY1LDcgKzI2NSw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dmFs
aWRhdGUKICAgICAgICAgICAgIHZpZGVvU291cmNlSWRzLnVuY2hlY2tlZEFwcGVuZChXVEZNb3Zl
KGluZm8uaWQpKTsKICAgICB9CiAKLSAgICB2YWxpZEhhbmRsZXIoV1RGTW92ZShhdWRpb1NvdXJj
ZUlkcyksIFdURk1vdmUodmlkZW9Tb3VyY2VJZHMpKTsKKyAgICB2YWxpZEhhbmRsZXIoV1RGTW92
ZShhdWRpb1NvdXJjZUlkcyksIFdURk1vdmUodmlkZW9Tb3VyY2VJZHMpLCBXVEZNb3ZlKGRldmlj
ZUlkZW50aWZpZXJIYXNoU2FsdCkpOwogfQogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnNldFZpc2liaWxpdHkoYm9vbCBpc1Zpc2libGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlci5oCShyZXZpc2lvbiAyMTcwNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTU4LDkgKzU4LDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyJiBzaW5nbGV0b24oKTsKICAgICBzdGF0aWMgdm9pZCBzZXRT
aGFyZWRTdHJlYW1DZW50ZXJPdmVycmlkZShSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyKik7CiAK
LSAgICB1c2luZyBWYWxpZENvbnN0cmFpbnRzSGFuZGxlciA9IFdURjo6RnVuY3Rpb248dm9pZChW
ZWN0b3I8U3RyaW5nPiYmIGF1ZGlvRGV2aWNlVUlEcywgVmVjdG9yPFN0cmluZz4mJiB2aWRlb0Rl
dmljZVVJRHMpPjsKKyAgICB1c2luZyBWYWxpZENvbnN0cmFpbnRzSGFuZGxlciA9IFdURjo6RnVu
Y3Rpb248dm9pZChWZWN0b3I8U3RyaW5nPiYmIGF1ZGlvRGV2aWNlVUlEcywgVmVjdG9yPFN0cmlu
Zz4mJiB2aWRlb0RldmljZVVJRHMsIFN0cmluZyYmKT47CiAgICAgdXNpbmcgSW52YWxpZENvbnN0
cmFpbnRzSGFuZGxlciA9IFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmIGludmFsaWRD
b25zdHJhaW50KT47Ci0gICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRz
KFZhbGlkQ29uc3RyYWludHNIYW5kbGVyJiYsIEludmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyYgYXVkaW9Db25zdHJhaW50cywgY29uc3QgTWVkaWFDb25z
dHJhaW50cyYgdmlkZW9Db25zdHJhaW50cyk7CisgICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUmVx
dWVzdENvbnN0cmFpbnRzKFZhbGlkQ29uc3RyYWludHNIYW5kbGVyJiYsIEludmFsaWRDb25zdHJh
aW50c0hhbmRsZXImJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyYgYXVkaW9Db25zdHJhaW50cywg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyYgdmlkZW9Db25zdHJhaW50cywgU3RyaW5nJiYpOwogCiAg
ICAgdXNpbmcgTmV3TWVkaWFTdHJlYW1IYW5kbGVyID0gc3RkOjpmdW5jdGlvbjx2b2lkKFJlZlB0
cjxNZWRpYVN0cmVhbVByaXZhdGU+JiYpPjsKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlTWVkaWFT
dHJlYW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyJiYsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VJ
RCwgY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBh
dWRpb0NvbnN0cmFpbnRzLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiB2aWRlb0NvbnN0cmFpbnRz
KSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMTcwNDYpCisrKyBTb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMSBAQAorMjAxNy0wNS0xOCAg
RXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFT
dHJlYW1dIGRvIG5vdCBjYWNoZSBnVU0gcGVybWlzc2lvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MjI0NQorCisgICAgICAgIFJldmlld2VkIGJ5
IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZVBlbmRpbmdSZXF1ZXN0cyk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpj
cmVhdGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHk6OnVzZXJNZWRpYUFjY2Vzc1dhc0RlbmllZCk6CisgICAgICAgIChXZWJL
aXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp1c2VyTWVkaWFBY2Nl
c3NXYXNHcmFudGVkKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUpOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51
bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUF1dGhv
cml6YXRpb25TdGF0ZTo6RnJhbWVBdXRob3JpemF0aW9uU3RhdGUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpGcmFtZUF1dGhvcml6YXRpb25TdGF0ZTo6aGFzUGVybWlzc2lvblRvVXNlQ2Fw
dHVyZURldmljZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OkZyYW1lQXV0aG9yaXphdGlv
blN0YXRlOjpzZXRIYXNQZXJtaXNzaW9uVG9Vc2VDYXB0dXJlRGV2aWNlKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6RnJhbWVBdXRob3JpemF0aW9uU3RhdGU6OmVuc3VyZVNlY3VyaXR5T3Jp
Z2luc0FyZUVxdWFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnN0YXRlRm9yUmVxdWVzdCk6IERlbGV0ZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6
CisgICAgICAgIChXZWJLaXQ6OkZyYW1lQXV0aG9yaXphdGlvblN0YXRlOjpzZXREZXZpY2VJZGVu
dGlmaWVySGFzaFNhbHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpGcmFtZUF1dGhvcml6
YXRpb25TdGF0ZTo6ZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk6OmRldmljZUlkZW50aWZpZXJIYXNoU2FsdCk6CisKIDIwMTctMDUtMTgg
IENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BF
XSBVbnJldmlld2VkIGJ1aWxkIGZpeApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuY3BwCShyZXZpc2lvbiAyMTcwNDYpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00MCw1NiArNDAsNiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKLUZyYW1lQXV0aG9yaXphdGlvblN0YXRlOjpGcmFtZUF1dGhvcml6YXRpb25T
dGF0ZShSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdp
biwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbikK
LSAgICA6IG1fdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbihXVEZNb3ZlKHVzZXJNZWRp
YURvY3VtZW50U2VjdXJpdHlPcmlnaW4pKQotICAgICwgbV90b3BMZXZlbERvY3VtZW50U2VjdXJp
dHlPcmlnaW4oV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4pKQotewotfQot
Ci1ib29sIEZyYW1lQXV0aG9yaXphdGlvblN0YXRlOjpoYXNQZXJtaXNzaW9uVG9Vc2VDYXB0dXJl
RGV2aWNlKGNvbnN0IFN0cmluZyYgZGV2aWNlVUlEKQotewotICAgIHJldHVybiBtX2F1dGhvcml6
ZWREZXZpY2VVSURzLmZpbmQoZGV2aWNlVUlEKSAhPSBub3RGb3VuZDsKLX0KLQotdm9pZCBGcmFt
ZUF1dGhvcml6YXRpb25TdGF0ZTo6c2V0SGFzUGVybWlzc2lvblRvVXNlQ2FwdHVyZURldmljZShj
b25zdCBTdHJpbmcmIGRldmljZVVJRCwgYm9vbCBoYXNQZXJtaXNzaW9uKQotewotICAgIGlmIChk
ZXZpY2VVSUQuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBzaXplX3QgaW5kZXgg
PSBtX2F1dGhvcml6ZWREZXZpY2VVSURzLmZpbmQoZGV2aWNlVUlEKTsKLSAgICBpZiAoaGFzUGVy
bWlzc2lvbiA9PSAoaW5kZXggIT0gbm90Rm91bmQpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBp
ZiAoaGFzUGVybWlzc2lvbikKLSAgICAgICAgbV9hdXRob3JpemVkRGV2aWNlVUlEcy5hcHBlbmQo
ZGV2aWNlVUlEKTsKLSAgICBlbHNlCi0gICAgICAgIG1fYXV0aG9yaXplZERldmljZVVJRHMucmVt
b3ZlKGluZGV4KTsKLX0KLQotdm9pZCBGcmFtZUF1dGhvcml6YXRpb25TdGF0ZTo6ZW5zdXJlU2Vj
dXJpdHlPcmlnaW5zQXJlRXF1YWwoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURv
Y3VtZW50U2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERv
Y3VtZW50U2VjdXJpdHlPcmlnaW4pCi17Ci0gICAgaWYgKG1fdXNlck1lZGlhRG9jdW1lbnRTZWN1
cml0eU9yaWdpbi0+ZXF1YWwoJnVzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW4pICYmIG1f
dG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luLT5lcXVhbCgmdG9wTGV2ZWxEb2N1bWVudFNl
Y3VyaXR5T3JpZ2luKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV91c2VyTWVkaWFEb2N1bWVu
dFNlY3VyaXR5T3JpZ2luID0gdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbjsKLSAgICBt
X3RvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9IHRvcExldmVsRG9jdW1lbnRTZWN1cml0
eU9yaWdpbjsKLSAgICBtX2F1dGhvcml6ZWREZXZpY2VVSURzLmNsZWFyKCk7Ci0gICAgbV9kZXZp
Y2VJZGVudGlmaWVySGFzaFNhbHQgPSBlbXB0eVN0cmluZygpOwotfQotCi10ZW1wbGF0ZSA8dHlw
ZW5hbWUgUmVxdWVzdFR5cGU+Ci1GcmFtZUF1dGhvcml6YXRpb25TdGF0ZSYgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnN0YXRlRm9yUmVxdWVzdChSZXF1ZXN0VHlwZSYg
cmVxdWVzdCkKLXsKLSAgICBhdXRvJiBzdGF0ZSA9IG1fZnJhbWVTdGF0ZXMuYWRkKHJlcXVlc3Qu
ZnJhbWVJRCgpLCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7Ci0gICAgaWYgKHN0YXRlKSB7Ci0g
ICAgICAgIHN0YXRlLT5lbnN1cmVTZWN1cml0eU9yaWdpbnNBcmVFcXVhbChyZXF1ZXN0LnVzZXJN
ZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSwgcmVxdWVzdC50b3BMZXZlbERvY3VtZW50U2Vj
dXJpdHlPcmlnaW4oKSk7Ci0gICAgICAgIHJldHVybiAqc3RhdGU7Ci0gICAgfQotCi0gICAgc3Rh
dGUgPSBzdGQ6Om1ha2VfdW5pcXVlPEZyYW1lQXV0aG9yaXphdGlvblN0YXRlPihyZXF1ZXN0LnVz
ZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSwgcmVxdWVzdC50b3BMZXZlbERvY3VtZW50
U2VjdXJpdHlPcmlnaW4oKSk7Ci0gICAgcmV0dXJuICpzdGF0ZTsKLX0KLQogVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSkKICAgICA6IG1fcGFnZShwYWdlKQogICAgICwg
bV9yZWplY3Rpb25UaW1lcigqdGhpcywgJlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OjpyZWplY3Rpb25UaW1lckZpcmVkKQpAQCAtMTE2LDggKzY2LDYgQEAgdm9pZCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcgogICAgIGZvciAoYXV0byYgcmVxdWVzdCA6
IG1fcGVuZGluZ0RldmljZVJlcXVlc3RzLnZhbHVlcygpKQogICAgICAgICByZXF1ZXN0LT5pbnZh
bGlkYXRlKCk7CiAgICAgbV9wZW5kaW5nRGV2aWNlUmVxdWVzdHMuY2xlYXIoKTsKLQotICAgIG1f
ZnJhbWVTdGF0ZXMuY2xlYXIoKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6c3RvcENhcHR1cmUoKQpAQCAtMTMxLDkgKzc5LDkgQEAgdm9pZCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcgogICAgIGludmFsaWRhdGVQZW5kaW5nUmVx
dWVzdHMoKTsKIH0KIAotUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjcmVhdGVSZXF1ZXN0KHVpbnQ2NF90
IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8U3RyaW5nPiYmIGF1ZGlvRGV2aWNl
VUlEcywgVmVjdG9yPFN0cmluZz4mJiB2aWRlb0RldmljZVVJRHMpCitSZWY8VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eT4gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk6OmNyZWF0ZVJlcXVlc3QodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQs
IFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwg
UmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZl
Y3RvcjxTdHJpbmc+JiYgYXVkaW9EZXZpY2VVSURzLCBWZWN0b3I8U3RyaW5nPiYmIHZpZGVvRGV2
aWNlVUlEcywgU3RyaW5nJiYgZGV2aWNlSURIYXNoU2FsdCkKIHsKLSAgICBhdXRvIHJlcXVlc3Qg
PSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpjcmVhdGUoKnRoaXMsIHVzZXJNZWRp
YUlELCBmcmFtZUlELCBXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0
b3BMZXZlbERvY3VtZW50T3JpZ2luKSwgV1RGTW92ZShhdWRpb0RldmljZVVJRHMpLCBXVEZNb3Zl
KHZpZGVvRGV2aWNlVUlEcykpOworICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk6OmNyZWF0ZSgqdGhpcywgdXNlck1lZGlhSUQsIGZyYW1lSUQsIFdURk1v
dmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmln
aW4pLCBXVEZNb3ZlKGF1ZGlvRGV2aWNlVUlEcyksIFdURk1vdmUodmlkZW9EZXZpY2VVSURzKSwg
V1RGTW92ZShkZXZpY2VJREhhc2hTYWx0KSk7CiAgICAgbV9wZW5kaW5nVXNlck1lZGlhUmVxdWVz
dHMuYWRkKHVzZXJNZWRpYUlELCByZXF1ZXN0LnB0cigpKTsKICAgICByZXR1cm4gcmVxdWVzdDsK
IH0KQEAgLTE3OSwxMiArMTI3LDYgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcgogICAgIGlmICghcmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byYg
ZnJhbWVTdGF0ZSA9IHN0YXRlRm9yUmVxdWVzdCgqcmVxdWVzdCk7Ci0gICAgZm9yIChjb25zdCBh
dXRvJiBkZXZpY2VVSUQgOiByZXF1ZXN0LT52aWRlb0RldmljZVVJRHMoKSkKLSAgICAgICAgZnJh
bWVTdGF0ZS5zZXRIYXNQZXJtaXNzaW9uVG9Vc2VDYXB0dXJlRGV2aWNlKGRldmljZVVJRCwgZmFs
c2UpOwotICAgIGZvciAoY29uc3QgYXV0byYgZGV2aWNlVUlEIDogcmVxdWVzdC0+YXVkaW9EZXZp
Y2VVSURzKCkpCi0gICAgICAgIGZyYW1lU3RhdGUuc2V0SGFzUGVybWlzc2lvblRvVXNlQ2FwdHVy
ZURldmljZShkZXZpY2VVSUQsIGZhbHNlKTsKLQogICAgIGRlbnlSZXF1ZXN0KHVzZXJNZWRpYUlE
LCByZWFzb24sIGVtcHR5U3RyaW5nKCkpOwogfQogCkBAIC0yMTIsMTUgKzE1NCw4IEBAIHZvaWQg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHIKICAgICBpZiAoIXJlcXVlc3QpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGF1dG8mIGZyYW1lU3RhdGUgPSBzdGF0ZUZvclJlcXVlc3Qo
KnJlcXVlc3QpOwotICAgIGlmICghYXVkaW9EZXZpY2VVSUQuaXNFbXB0eSgpKQotICAgICAgICBm
cmFtZVN0YXRlLnNldEhhc1Blcm1pc3Npb25Ub1VzZUNhcHR1cmVEZXZpY2UoYXVkaW9EZXZpY2VV
SUQsIHRydWUpOwotICAgIGlmICghdmlkZW9EZXZpY2VVSUQuaXNFbXB0eSgpKQotICAgICAgICBm
cmFtZVN0YXRlLnNldEhhc1Blcm1pc3Npb25Ub1VzZUNhcHR1cmVEZXZpY2UodmlkZW9EZXZpY2VV
SUQsIHRydWUpOwotCiAgICAgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OnNpbmdsZXRvbigpLndp
bGxDcmVhdGVNZWRpYVN0cmVhbSgqdGhpcywgIWF1ZGlvRGV2aWNlVUlELmlzRW1wdHkoKSwgIXZp
ZGVvRGV2aWNlVUlELmlzRW1wdHkoKSk7Ci0KLSAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OlVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50ZWQodXNlck1lZGlhSUQsIGF1
ZGlvRGV2aWNlVUlELCB2aWRlb0RldmljZVVJRCwgZnJhbWVTdGF0ZS5kZXZpY2VJZGVudGlmaWVy
SGFzaFNhbHQoKSksIG1fcGFnZS5wYWdlSUQoKSk7CisgICAgbV9wYWdlLnByb2Nlc3MoKS5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpVc2VyTWVkaWFBY2Nlc3NXYXNHcmFudGVkKHVzZXJNZWRpYUlE
LCBhdWRpb0RldmljZVVJRCwgdmlkZW9EZXZpY2VVSUQsIHJlcXVlc3QtPmRldmljZUlkZW50aWZp
ZXJIYXNoU2FsdCgpKSwgbV9wYWdlLnBhZ2VJRCgpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFN
KHVzZXJNZWRpYUlEKTsKICAgICBVTlVTRURfUEFSQU0oYXVkaW9EZXZpY2VVSUQpOwpAQCAtMjQ4
LDYgKzE4MywxMiBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByCiB2
b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1l
ZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFt
ZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBhdWRpb0NvbnN0cmFpbnRzLCBjb25z
dCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiB2aWRlb0NvbnN0cmFpbnRzKQogewogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisgICAgaWYgKCFVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6c2lu
Z2xldG9uKCkuY2FwdHVyZUVuYWJsZWQoKSkgeworICAgICAgICBtX3BlbmRpbmdSZWplY3Rpb25z
LmFwcGVuZCh1c2VyTWVkaWFJRCk7CisgICAgICAgIHNjaGVkdWxlTmV4dFJlamVjdGlvbigpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6SW52YWxpZENvbnN0cmFpbnRzSGFuZGxlciBpbnZhbGlkSGFuZGxlciA9IFt0aGlz
LCB1c2VyTWVkaWFJRF0oY29uc3QgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludCkgewogICAgICAg
ICBpZiAoIW1fcGFnZS5pc1ZhbGlkKCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0yNTUsNyAr
MTk2LDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcgogICAgICAg
ICBkZW55UmVxdWVzdCh1c2VyTWVkaWFJRCwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpJbnZhbGlkQ29uc3RyYWludCwgaW52YWxp
ZENvbnN0cmFpbnQpOwogICAgIH07CiAKLSAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpWYWxpZENvbnN0cmFpbnRzSGFuZGxlciB2YWxpZEhhbmRsZXIgPSBbdGhpcywgdXNl
ck1lZGlhSUQsIGZyYW1lSUQsIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luID0gdXNlck1lZGlhRG9j
dW1lbnRPcmlnaW4uY29weVJlZigpLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luID0gdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbi5jb3B5UmVmKCldKFZlY3RvcjxTdHJpbmc+JiYgYXVkaW9EZXZpY2VVSURz
LCBWZWN0b3I8U3RyaW5nPiYmIHZpZGVvRGV2aWNlVUlEcykgbXV0YWJsZSB7CisgICAgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6VmFsaWRDb25zdHJhaW50c0hhbmRsZXIgdmFs
aWRIYW5kbGVyID0gW3RoaXMsIHVzZXJNZWRpYUlELCBmcmFtZUlELCB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiA9IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLmNvcHlSZWYoKSwgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbiA9IHRvcExldmVsRG9jdW1lbnRPcmlnaW4uY29weVJlZigpXShWZWN0b3I8U3Ry
aW5nPiYmIGF1ZGlvRGV2aWNlVUlEcywgVmVjdG9yPFN0cmluZz4mJiB2aWRlb0RldmljZVVJRHMs
IFN0cmluZyYmIGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlm
ICghbV9wYWdlLmlzVmFsaWQoKSkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMjY0LDQ0ICsy
MDUsMTQgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcgogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgYm9vbCBhdXRob3JpemVkRm9yQXVk
aW8gPSBmYWxzZTsKLSAgICAgICAgYm9vbCBhdXRob3JpemVkRm9yVmlkZW8gPSBmYWxzZTsKLSAg
ICAgICAgCiAgICAgICAgIGF1dG8gdXNlck1lZGlhT3JpZ2luID0gQVBJOjpTZWN1cml0eU9yaWdp
bjo6Y3JlYXRlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLmdldCgpKTsKICAgICAgICAgYXV0byB0
b3BMZXZlbE9yaWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luLmdldCgpKTsKLSAgICAgICAgCi0gICAgICAgIGF1dG8gcmVxdWVzdCA9IGNyZWF0
ZVJlcXVlc3QodXNlck1lZGlhSUQsIGZyYW1lSUQsIFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKGF1ZGlvRGV2
aWNlVUlEcyksIFdURk1vdmUodmlkZW9EZXZpY2VVSURzKSk7Ci0KLSAgICAgICAgYXV0byYgZnJh
bWVTdGF0ZSA9IHN0YXRlRm9yUmVxdWVzdChyZXF1ZXN0LmdldCgpKTsKLSAgICAgICAgZm9yIChj
b25zdCBhdXRvJiBkZXZpY2VVSUQgOiByZXF1ZXN0LT5hdWRpb0RldmljZVVJRHMoKSkgewotICAg
ICAgICAgICAgaWYgKGZyYW1lU3RhdGUuaGFzUGVybWlzc2lvblRvVXNlQ2FwdHVyZURldmljZShk
ZXZpY2VVSUQpKSB7Ci0gICAgICAgICAgICAgICAgYXV0aG9yaXplZEZvckF1ZGlvID0gdHJ1ZTsK
LSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAg
ICBmb3IgKGNvbnN0IGF1dG8mIGRldmljZVVJRCA6IHJlcXVlc3QtPnZpZGVvRGV2aWNlVUlEcygp
KSB7Ci0gICAgICAgICAgICBpZiAoZnJhbWVTdGF0ZS5oYXNQZXJtaXNzaW9uVG9Vc2VDYXB0dXJl
RGV2aWNlKGRldmljZVVJRCkpIHsKLSAgICAgICAgICAgICAgICBhdXRob3JpemVkRm9yVmlkZW8g
PSB0cnVlOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9
Ci0KLSAgICAgICAgaWYgKGF1dGhvcml6ZWRGb3JBdWRpbyA9PSAhcmVxdWVzdC0+YXVkaW9EZXZp
Y2VVSURzKCkuaXNFbXB0eSgpICYmIGF1dGhvcml6ZWRGb3JWaWRlbyA9PSAhcmVxdWVzdC0+dmlk
ZW9EZXZpY2VVSURzKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICB1c2VyTWVkaWFBY2Nlc3NX
YXNHcmFudGVkKHVzZXJNZWRpYUlELCBhdXRob3JpemVkRm9yQXVkaW8gPyByZXF1ZXN0LT5hdWRp
b0RldmljZVVJRHMoKVswXSA6IGVtcHR5U3RyaW5nKCksIGF1dGhvcml6ZWRGb3JWaWRlbyA/IHJl
cXVlc3QtPnZpZGVvRGV2aWNlVUlEcygpWzBdIDogZW1wdHlTdHJpbmcoKSk7Ci0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIH0KKyAgICAgICAgYXV0byByZXF1ZXN0ID0gY3JlYXRlUmVxdWVz
dCh1c2VyTWVkaWFJRCwgZnJhbWVJRCwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiks
IFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIFdURk1vdmUoYXVkaW9EZXZpY2VVSURz
KSwgV1RGTW92ZSh2aWRlb0RldmljZVVJRHMpLCBXVEZNb3ZlKGRldmljZUlkZW50aWZpZXJIYXNo
U2FsdCkpOwogCiAgICAgICAgIGlmICghbV9wYWdlLnVpQ2xpZW50KCkuZGVjaWRlUG9saWN5Rm9y
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QobV9wYWdlLCAqbV9wYWdlLnByb2Nlc3MoKS53ZWJG
cmFtZShmcmFtZUlEKSwgV1RGTW92ZSh1c2VyTWVkaWFPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVs
T3JpZ2luKSwgcmVxdWVzdC5nZXQoKSkpCiAgICAgICAgICAgICB1c2VyTWVkaWFBY2Nlc3NXYXNE
ZW5pZWQodXNlck1lZGlhSUQsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJN
ZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6VXNlck1lZGlhRGlzYWJsZWQpOwotCiAgICAgfTsKIAot
ICAgIGlmICghVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OnNpbmdsZXRvbigpLmNhcHR1cmVFbmFi
bGVkKCkpIHsKLSAgICAgICAgbV9wZW5kaW5nUmVqZWN0aW9ucy5hcHBlbmQodXNlck1lZGlhSUQp
OwotICAgICAgICBzY2hlZHVsZU5leHRSZWplY3Rpb24oKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQogICAgIGF1dG8gaGF2ZURldmljZVNhbHRIYW5kbGVyID0gW3RoaXMsIHVzZXJNZWRpYUlE
LCB2YWxpZEhhbmRsZXIgPSBXVEZNb3ZlKHZhbGlkSGFuZGxlciksIGludmFsaWRIYW5kbGVyID0g
V1RGTW92ZShpbnZhbGlkSGFuZGxlciksIGF1ZGlvQ29uc3RyYWludHMgPSBXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzKGF1ZGlvQ29uc3RyYWludHMpLCB2aWRlb0NvbnN0cmFpbnRzID0gV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50cyh2aWRlb0NvbnN0cmFpbnRzKV0odWludDY0X3QgdXNlck1lZGlh
SUQsIFN0cmluZyYmIGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCwgYm9vbCBvcmlnaW5IYXNQZXJz
aXN0ZW50QWNjZXNzKSBtdXRhYmxlIHsKIAogICAgICAgICBhdXRvIHJlcXVlc3QgPSBtX3BlbmRp
bmdEZXZpY2VSZXF1ZXN0cy50YWtlKHVzZXJNZWRpYUlEKTsKQEAgLTMxNCwxMiArMjI1LDkgQEAg
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcgogICAgICAgICBhdWRpb0Nv
bnN0cmFpbnRzLmRldmljZUlESGFzaFNhbHQgPSBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQ7CiAg
ICAgICAgIHZpZGVvQ29uc3RyYWludHMuZGV2aWNlSURIYXNoU2FsdCA9IGRldmljZUlkZW50aWZp
ZXJIYXNoU2FsdDsKIAotICAgICAgICBhdXRvJiBmcmFtZVN0YXRlID0gc3RhdGVGb3JSZXF1ZXN0
KHJlcXVlc3QudmFsdWUoKS5nZXQoKSk7Ci0gICAgICAgIGZyYW1lU3RhdGUuc2V0RGV2aWNlSWRl
bnRpZmllckhhc2hTYWx0KFdURk1vdmUoZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSk7Ci0gICAg
ICAgIAogICAgICAgICBzeW5jV2l0aFdlYkNvcmVQcmVmcygpOwogICAgICAgICAKLSAgICAgICAg
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmFsaWRhdGVSZXF1ZXN0Q29u
c3RyYWludHMoV1RGTW92ZSh2YWxpZEhhbmRsZXIpLCBXVEZNb3ZlKGludmFsaWRIYW5kbGVyKSwg
YXVkaW9Db25zdHJhaW50cywgdmlkZW9Db25zdHJhaW50cyk7CisgICAgICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFdU
Rk1vdmUodmFsaWRIYW5kbGVyKSwgV1RGTW92ZShpbnZhbGlkSGFuZGxlciksIGF1ZGlvQ29uc3Ry
YWludHMsIHZpZGVvQ29uc3RyYWludHMsIFdURk1vdmUoZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0
KSk7CiAgICAgfTsKIAogICAgIGdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKHVzZXJNZWRpYUlE
LCBmcmFtZUlELCBXVEZNb3ZlKGhhdmVEZXZpY2VTYWx0SGFuZGxlciksIFdURk1vdmUodXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4pKTsKQEAg
LTM1OCw5ICsyNjYsNiBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
CiAgICAgICAgIGlmICghbV9wYWdlLmlzVmFsaWQoKSkKICAgICAgICAgICAgIHJldHVybjsKIAot
ICAgICAgICBhdXRvJiBmcmFtZVN0YXRlID0gc3RhdGVGb3JSZXF1ZXN0KHJlcXVlc3QudmFsdWUo
KS5nZXQoKSk7Ci0gICAgICAgIGZyYW1lU3RhdGUuc2V0RGV2aWNlSWRlbnRpZmllckhhc2hTYWx0
KFN0cmluZyhkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpKTsKLQogICAgICAgICBzeW5jV2l0aFdl
YkNvcmVQcmVmcygpOwogICAgICAgICBhdXRvIGRldmljZUluZm8gPSBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5nZXRNZWRpYVN0cmVhbURldmljZXMoKTsKICAgICAgICAg
bV9wYWdlLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRDb21wbGV0ZU1lZGlh
RGV2aWNlRW51bWVyYXRpb24odXNlck1lZGlhSUQsIGRldmljZUluZm8sIGRldmljZUlkZW50aWZp
ZXJIYXNoU2FsdCwgb3JpZ2luSGFzUGVyc2lzdGVudEFjY2VzcyksIG1fcGFnZS5wYWdlSUQoKSk7
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAkocmV2aXNpb24gMjE3MDQ2
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDI1ICszNiw2IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBXZWJQYWdlUHJveHk7CiAKLWNsYXNzIEZyYW1lQXV0aG9yaXph
dGlvblN0YXRlIHsKLXB1YmxpYzoKLSAgICBGcmFtZUF1dGhvcml6YXRpb25TdGF0ZShSZWY8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbiwg
UmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9y
aWdpbik7Ci0KLSAgICBib29sIGhhc1Blcm1pc3Npb25Ub1VzZUNhcHR1cmVEZXZpY2UoY29uc3Qg
U3RyaW5nJiBkZXZpY2VVSUQpOwotICAgIHZvaWQgc2V0SGFzUGVybWlzc2lvblRvVXNlQ2FwdHVy
ZURldmljZShjb25zdCBTdHJpbmcmLCBib29sKTsKLQotICAgIHZvaWQgZW5zdXJlU2VjdXJpdHlP
cmlnaW5zQXJlRXF1YWwoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50
U2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50
U2VjdXJpdHlPcmlnaW4pOwotCi0gICAgdm9pZCBzZXREZXZpY2VJZGVudGlmaWVySGFzaFNhbHQo
U3RyaW5nJiYgaGFzaFNhbHQpIHsgbV9kZXZpY2VJZGVudGlmaWVySGFzaFNhbHQgPSBoYXNoU2Fs
dDsgfQotICAgIGNvbnN0IFN0cmluZyYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KCkgY29uc3Qg
eyByZXR1cm4gbV9kZXZpY2VJZGVudGlmaWVySGFzaFNhbHQ7IH0KLQotcHJpdmF0ZToKLSAgICBS
ZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9y
aWdpbjsKLSAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdG9wTGV2ZWxEb2N1bWVu
dFNlY3VyaXR5T3JpZ2luOwotICAgIFZlY3RvcjxTdHJpbmc+IG1fYXV0aG9yaXplZERldmljZVVJ
RHM7Ci0gICAgU3RyaW5nIG1fZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0OwotfTsKLQogY2xhc3Mg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgewogcHVibGljOgogICAgIGV4
cGxpY2l0IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KFdlYlBhZ2VQcm94
eSYpOwpAQCAtNjksOSArNTAsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCB1c2VyTWVkaWFBY2Nlc3NX
YXNHcmFudGVkKHVpbnQ2NF90LCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlELCBjb25zdCBT
dHJpbmcmIHZpZGVvRGV2aWNlVUlEKTsKICAgICB2b2lkIHVzZXJNZWRpYUFjY2Vzc1dhc0Rlbmll
ZCh1aW50NjRfdCwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNj
ZXNzRGVuaWFsUmVhc29uKTsKIAotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBSZXF1ZXN0VHlwZT4K
LSAgICBGcmFtZUF1dGhvcml6YXRpb25TdGF0ZSYgc3RhdGVGb3JSZXF1ZXN0KFJlcXVlc3RUeXBl
Jik7Ci0KICAgICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVz
ZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4m
JiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKTsKIAogICAgIHZvaWQgc3RvcENhcHR1cmUoKTsKQEAg
LTgzLDcgKzYxLDcgQEAgcHVibGljOgogICAgIHZvaWQgZW5kZWRDYXB0dXJlU2Vzc2lvbigpOwog
CiBwcml2YXRlOgotICAgIFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVh
dGVSZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8U3Ry
aW5nPiYmIGF1ZGlvRGV2aWNlVUlEcywgVmVjdG9yPFN0cmluZz4mJiB2aWRlb0RldmljZVVJRHMp
OworICAgIFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGVSZXF1ZXN0
KHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8U3RyaW5nPiYmIGF1
ZGlvRGV2aWNlVUlEcywgVmVjdG9yPFN0cmluZz4mJiB2aWRlb0RldmljZVVJRHMsIFN0cmluZyYm
KTsKICAgICB2b2lkIGRlbnlSZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYUlELCBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24sIGNvbnN0
IFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQpOwogCiAgICAgdm9pZCBnZXRVc2VyTWVkaWFQZXJt
aXNzaW9uSW5mbyh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgVXNlck1l
ZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OkNvbXBsZXRpb25IYW5kbGVyJiYsIFJlZjxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOwpAQCAtOTIsNyArNzAs
NiBAQCBwcml2YXRlOgogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHk+PiBtX3BlbmRpbmdVc2VyTWVkaWFSZXF1ZXN0czsKICAgICBI
YXNoTWFwPHVpbnQ2NF90LCBSZWY8VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk+PiBtX3Bl
bmRpbmdEZXZpY2VSZXF1ZXN0czsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9w
dHI8RnJhbWVBdXRob3JpemF0aW9uU3RhdGU+PiBtX2ZyYW1lU3RhdGVzOwogCiAgICAgV2ViUGFn
ZVByb3h5JiBtX3BhZ2U7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAJKHJldmlzaW9u
IDIxNzA0NikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYg
dXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0
b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8U3RyaW5nPiYmIGF1ZGlvRGV2aWNlVUlEcywg
VmVjdG9yPFN0cmluZz4mJiB2aWRlb0RldmljZVVJRHMpCitVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBtYW5hZ2VyLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwg
dWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbiwgVmVjdG9yPFN0cmluZz4mJiBhdWRpb0RldmljZVVJRHMsIFZlY3RvcjxT
dHJpbmc+JiYgdmlkZW9EZXZpY2VVSURzLCBTdHJpbmcmJiBkZXZpY2VJREhhc2hTYWx0KQogICAg
IDogbV9tYW5hZ2VyKCZtYW5hZ2VyKQogICAgICwgbV91c2VyTWVkaWFJRCh1c2VyTWVkaWFJRCkK
ICAgICAsIG1fZnJhbWVJRChmcmFtZUlEKQpAQCAtMzgsNiArMzgsNyBAQCBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkCiAgICAgLCBtX3RvcExldmVsRG9jdW1lbnRTZWN1
cml0eU9yaWdpbihXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4pKQogICAgICwgbV92aWRl
b0RldmljZVVJRHMoV1RGTW92ZSh2aWRlb0RldmljZVVJRHMpKQogICAgICwgbV9hdWRpb0Rldmlj
ZVVJRHMoV1RGTW92ZShhdWRpb0RldmljZVVJRHMpKQorICAgICwgbV9kZXZpY2VJZGVudGlmaWVy
SGFzaFNhbHQoV1RGTW92ZShkZXZpY2VJREhhc2hTYWx0KSkKIHsKIH0KIApJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eS5oCShyZXZpc2lvbiAyMTcwNDYpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
Myw5ICszMyw5IEBAIGNsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclAKIAog
Y2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVj
dEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0PiB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBj
cmVhdGUoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVp
bnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8U3RyaW5nPiYmIHZpZGVv
RGV2aWNlVUlEcywgVmVjdG9yPFN0cmluZz4mJiBhdWRpb0RldmljZVVJRHMpCisgICAgc3RhdGlj
IFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGUoVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRpYUlE
LCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luLCBWZWN0b3I8U3RyaW5nPiYmIHZpZGVvRGV2aWNlVUlEcywgVmVjdG9y
PFN0cmluZz4mJiBhdWRpb0RldmljZVVJRHMsIFN0cmluZyYmIGRldmljZUlESGFzaFNhbHQpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5KG1hbmFnZXIsIHVzZXJNZWRpYUlELCBmcmFtZUlELCBXVEZNb3ZlKHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSwgV1RGTW92
ZSh2aWRlb0RldmljZVVJRHMpLCBXVEZNb3ZlKGF1ZGlvRGV2aWNlVUlEcykpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShtYW5h
Z2VyLCB1c2VyTWVkaWFJRCwgZnJhbWVJRCwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdp
biksIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIFdURk1vdmUodmlkZW9EZXZpY2VV
SURzKSwgV1RGTW92ZShhdWRpb0RldmljZVVJRHMpLCBXVEZNb3ZlKGRldmljZUlESGFzaFNhbHQp
KSk7CiAgICAgfQogCiAgICAgdm9pZCBhbGxvdyhjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlVUlE
LCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlEKTsKQEAgLTU1LDggKzU1LDEwIEBAIHB1Ymxp
YzoKICAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0
eU9yaWdpbigpIHsgcmV0dXJuIG1fdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbi5nZXQo
KTsgfQogICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50U2VjdXJp
dHlPcmlnaW4oKSB7IHJldHVybiBtX3RvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbi5nZXQo
KTsgfQogCisgICAgY29uc3QgU3RyaW5nJiBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQoKSBjb25z
dCB7IHJldHVybiBtX2RldmljZUlkZW50aWZpZXJIYXNoU2FsdDsgfQorCiBwcml2YXRlOgotICAg
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkmLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwg
UmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBS
ZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVj
dG9yPFN0cmluZz4mJiB2aWRlb0RldmljZVVJRHMsIFZlY3RvcjxTdHJpbmc+JiYgYXVkaW9EZXZp
Y2VVSURzKTsKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiwgdWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2
NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1
bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1l
bnRPcmlnaW4sIFZlY3RvcjxTdHJpbmc+JiYgdmlkZW9EZXZpY2VVSURzLCBWZWN0b3I8U3RyaW5n
PiYmIGF1ZGlvRGV2aWNlVUlEcywgU3RyaW5nJiYpOwogCiAgICAgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkqIG1fbWFuYWdlcjsKICAgICB1aW50NjRfdCBtX3VzZXJNZWRp
YUlEOwpAQCAtNjUsNiArNjcsNyBAQCBwcml2YXRlOgogICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbj4gbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW47CiAgICAgVmVjdG9yPFN0
cmluZz4gbV92aWRlb0RldmljZVVJRHM7CiAgICAgVmVjdG9yPFN0cmluZz4gbV9hdWRpb0Rldmlj
ZVVJRHM7CisgICAgU3RyaW5nIG1fZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMTcwNDYpCisrKyBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wNS0x
OCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVk
aWFTdHJlYW1dIGRvIG5vdCBjYWNoZSBnVU0gcGVybWlzc2lvbnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MjI0NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL01lZGlhRGV2
aWNlcy1nZXRVc2VyTWVkaWEtZXhwZWN0ZWQudHh0OiBVcGRhdGVkLgorICAgICAgICAqIGZhc3Qv
bWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWdldFVzZXJNZWRpYS5odG1sOgorCiAyMDE3LTA1LTE4
ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBEZXNpZ24gbW9k
ZSBzaG91bGQgbm90IGFmZmVjdCBVQSBzaGFkb3cgdHJlZXMKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWdldFVzZXJNZWRpYS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMtZ2V0
VXNlck1lZGlhLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE3MDQ2KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMtZ2V0VXNlck1lZGlhLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtNDksOSArNDksNiBAQCBQQVNTIEVycm9yIGNhbGxiYWNrIGNhbGxl
ZC4KIFBBU1MgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOmZhbHNl
LCB2aWRlbzp2aWRlb0NvbnN0cmFpbnRzfSkudGhlbihpbnZhbGlkR290U3RyZWFtKS5jYXRjaChl
cnJvcldpdGhDb25zdHJhaW50czIpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgogUEFTUyBFcnJv
ciBjYWxsYmFjayBjYWxsZWQuCiBQQVNTIGVycm9yQXJnLm5hbWUgaXMgIkVycm9yIgotCi1QQVNT
IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlfSkudGhlbih2
YWxpZFN0cmVhbSkuY2F0Y2goZXJyb3IxKTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCi1QQVNT
IFN0cmVhbSBnZW5lcmF0ZWQgYmVjYXVzZSBwYWdlIGhhcyBhbHJlYWR5IGF1dGhlbnRpY2F0ZWQu
CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWdldFVzZXJNZWRpYS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZp
Y2VzLWdldFVzZXJNZWRpYS5odG1sCShyZXZpc2lvbiAyMTcwNDYpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy1nZXRVc2VyTWVkaWEuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMjcsMTEgKzI3LDYgQEAKICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
ICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgZnVuY3Rpb24gdmFsaWRTdHJlYW0oZSkgewot
ICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlN0cmVhbSBnZW5lcmF0ZWQgYmVjYXVzZSBwYWdl
IGhhcyBhbHJlYWR5IGF1dGhlbnRpY2F0ZWQuIik7Ci0gICAgICAgICAgICAgICAgZmluaXNoSlNU
ZXN0KCk7Ci0gICAgICAgICAgICB9Ci0KICAgICAgICAgICAgIGZ1bmN0aW9uIGVycm9yMShlKSB7
CiAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChgRXJyb3IgY2FsbGJhY2sgY2FsbGVkLCBlcnJv
ciA9ICR7ZX1gKTsKICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKQEAgLTQyLDEyICsz
Nyw3IEBACiAgICAgICAgICAgICAgICAgZXJyb3JBcmcgPSBlOwogICAgICAgICAgICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygiZXJyb3JBcmcubmFtZSIsICJFcnJvciIpOwogCi0gICAgICAg
ICAgICAgICAgLy8gV2UgdGVsbCBMYXlvdXRUZXN0UnVubmVyIHRvIGRlbnkgdXNlciBtZWRpYSBy
ZXF1ZXN0cyBidXQgZXhwZWN0IHRoZSBnVU0gY2FsbCB0byBzdWNjZWVkCi0gICAgICAgICAgICAg
ICAgLy8gYXMgaXQgc2hvdWxkIG5vdCBzZWUgdGhlIHJlcXVlc3QgYmVjYXVzZSB0aGUgY3VycmVu
dCBicm93c2luZyBjb250ZXh0IGhhcyBhbHJlYWR5Ci0gICAgICAgICAgICAgICAgLy8gc3VjY2Vz
c2Z1bGx5IGNyZWF0ZWQgYSBzdHJlYW0gZm9yIHRoZSBtb2NrIGF1ZGlvIGRldmljZS4KLSAgICAg
ICAgICAgICAgICBzZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGZhbHNlKTsKLSAgICAgICAgICAgICAg
ICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coIm5hdmlnYXRvci5t
ZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlfSkudGhlbih2YWxpZFN0cmVhbSku
Y2F0Y2goZXJyb3IxKTsiKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAg
ICAgICAgIH0KIAogICAgICAgICAgICAgZnVuY3Rpb24gZXJyb3JXaXRoQ29uc3RyYWludHMxKCkg
ewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310519</attachid>
            <date>2017-05-18 10:45:56 -0700</date>
            <delta_ts>2017-05-18 11:57:28 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>gum_prompt_patch_6.txt</filename>
            <type>text/plain</type>
            <size>30373</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNzA0NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA1LTE4ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0g
ZG8gbm90IGNhY2hlIGdVTSBwZXJtaXNzaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMjQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5u
IEZhYmxldC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHVwZGF0ZWQgZmFzdC9tZWRpYXN0cmVh
bS9NZWRpYURldmljZXMtZ2V0VXNlck1lZGlhLmh0bWwuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRz
KTogQWRkIHNhbHQgcGFyYW1ldGVyLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaDoKKwogMjAxNy0wNS0xOCAgQW50dGkgS29pdmlzdG8g
IDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgRGVzaWduIG1vZGUgc2hvdWxkIG5vdCBhZmZl
Y3QgVUEgc2hhZG93IHRyZWVzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNw
cAkocmV2aXNpb24gMjE3MDQ2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNiw3
ICsyMDYsNyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1cmVECiAgICAg
ICAgIGl0LnZhbHVlKCk7CiB9CiAKLXZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dmFs
aWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoVmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiB2YWxpZEhh
bmRsZXIsIEludmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiBpbnZhbGlkSGFuZGxlciwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyYgYXVkaW9Db25zdHJhaW50cywgY29uc3QgTWVkaWFDb25zdHJhaW50
cyYgdmlkZW9Db25zdHJhaW50cykKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dmFs
aWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoVmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiB2YWxpZEhh
bmRsZXIsIEludmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiBpbnZhbGlkSGFuZGxlciwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyYgYXVkaW9Db25zdHJhaW50cywgY29uc3QgTWVkaWFDb25zdHJhaW50
cyYgdmlkZW9Db25zdHJhaW50cywgU3RyaW5nJiYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KQog
ewogICAgIHN0cnVjdCBEZXZpY2VJbmZvIHsKICAgICAgICAgdW5zaWduZWQgZml0bmVzc1Njb3Jl
OwpAQCAtMjY1LDcgKzI2NSw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dmFs
aWRhdGUKICAgICAgICAgICAgIHZpZGVvU291cmNlSWRzLnVuY2hlY2tlZEFwcGVuZChXVEZNb3Zl
KGluZm8uaWQpKTsKICAgICB9CiAKLSAgICB2YWxpZEhhbmRsZXIoV1RGTW92ZShhdWRpb1NvdXJj
ZUlkcyksIFdURk1vdmUodmlkZW9Tb3VyY2VJZHMpKTsKKyAgICB2YWxpZEhhbmRsZXIoV1RGTW92
ZShhdWRpb1NvdXJjZUlkcyksIFdURk1vdmUodmlkZW9Tb3VyY2VJZHMpLCBXVEZNb3ZlKGRldmlj
ZUlkZW50aWZpZXJIYXNoU2FsdCkpOwogfQogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnNldFZpc2liaWxpdHkoYm9vbCBpc1Zpc2libGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlci5oCShyZXZpc2lvbiAyMTcwNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTU4LDkgKzU4LDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyJiBzaW5nbGV0b24oKTsKICAgICBzdGF0aWMgdm9pZCBzZXRT
aGFyZWRTdHJlYW1DZW50ZXJPdmVycmlkZShSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyKik7CiAK
LSAgICB1c2luZyBWYWxpZENvbnN0cmFpbnRzSGFuZGxlciA9IFdURjo6RnVuY3Rpb248dm9pZChW
ZWN0b3I8U3RyaW5nPiYmIGF1ZGlvRGV2aWNlVUlEcywgVmVjdG9yPFN0cmluZz4mJiB2aWRlb0Rl
dmljZVVJRHMpPjsKKyAgICB1c2luZyBWYWxpZENvbnN0cmFpbnRzSGFuZGxlciA9IFdURjo6RnVu
Y3Rpb248dm9pZChWZWN0b3I8U3RyaW5nPiYmIGF1ZGlvRGV2aWNlVUlEcywgVmVjdG9yPFN0cmlu
Zz4mJiB2aWRlb0RldmljZVVJRHMsIFN0cmluZyYmKT47CiAgICAgdXNpbmcgSW52YWxpZENvbnN0
cmFpbnRzSGFuZGxlciA9IFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmIGludmFsaWRD
b25zdHJhaW50KT47Ci0gICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRz
KFZhbGlkQ29uc3RyYWludHNIYW5kbGVyJiYsIEludmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyYgYXVkaW9Db25zdHJhaW50cywgY29uc3QgTWVkaWFDb25z
dHJhaW50cyYgdmlkZW9Db25zdHJhaW50cyk7CisgICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUmVx
dWVzdENvbnN0cmFpbnRzKFZhbGlkQ29uc3RyYWludHNIYW5kbGVyJiYsIEludmFsaWRDb25zdHJh
aW50c0hhbmRsZXImJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyYgYXVkaW9Db25zdHJhaW50cywg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyYgdmlkZW9Db25zdHJhaW50cywgU3RyaW5nJiYpOwogCiAg
ICAgdXNpbmcgTmV3TWVkaWFTdHJlYW1IYW5kbGVyID0gc3RkOjpmdW5jdGlvbjx2b2lkKFJlZlB0
cjxNZWRpYVN0cmVhbVByaXZhdGU+JiYpPjsKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlTWVkaWFT
dHJlYW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyJiYsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VJ
RCwgY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBh
dWRpb0NvbnN0cmFpbnRzLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiB2aWRlb0NvbnN0cmFpbnRz
KSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2Vi
cnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlck93ci5jcHAJKHJldmlzaW9uIDIxNzA0NikKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc3LDcgKzc3LDcgQEAgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlck93cjo6flJlYWx0aW1lTQogewogfQogCi12b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXJPd3I6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFZhbGlkQ29uc3RyYWludHNIYW5k
bGVyJiYgdmFsaWRIYW5kbGVyLCBJbnZhbGlkQ29uc3RyYWludHNIYW5kbGVyJiYgaW52YWxpZEhh
bmRsZXIsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGF1ZGlvQ29uc3RyYWludHMsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMmIHZpZGVvQ29uc3RyYWludHMpCit2b2lkIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXJPd3I6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFZhbGlkQ29uc3RyYWludHNI
YW5kbGVyJiYgdmFsaWRIYW5kbGVyLCBJbnZhbGlkQ29uc3RyYWludHNIYW5kbGVyJiYgaW52YWxp
ZEhhbmRsZXIsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGF1ZGlvQ29uc3RyYWludHMsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMmIHZpZGVvQ29uc3RyYWludHMsIFN0cmluZyYmIGRldmljZUlkZW50
aWZpZXJIYXNoU2FsdCkKIHsKICAgICBtX3ZhbGlkQ29uc3RyYWludHNIYW5kbGVyID0gV1RGTW92
ZSh2YWxpZEhhbmRsZXIpOwogICAgIG1faW52YWxpZENvbnN0cmFpbnRzSGFuZGxlciA9IFdURk1v
dmUoaW52YWxpZEhhbmRsZXIpOwpAQCAtOTQsNyArOTQsNyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXJPd3I6OnZhbGlkCiAgICAgaWYgKHZpZGVvQ29uc3RyYWludHMuaXNWYWxpZCkK
ICAgICAgICAgdmlkZW9Tb3VyY2VzLmFwcGVuZChTdHJpbmcoInZpZGVvIikpOwogCi0gICAgbV92
YWxpZENvbnN0cmFpbnRzSGFuZGxlcihXVEZNb3ZlKGF1ZGlvU291cmNlcyksIFdURk1vdmUodmlk
ZW9Tb3VyY2VzKSk7CisgICAgbV92YWxpZENvbnN0cmFpbnRzSGFuZGxlcihXVEZNb3ZlKGF1ZGlv
U291cmNlcyksIFdURk1vdmUodmlkZW9Tb3VyY2VzKSwgV1RGTW92ZShkZXZpY2VJZGVudGlmaWVy
SGFzaFNhbHQpKTsKICAgICBtX3ZhbGlkQ29uc3RyYWludHNIYW5kbGVyID0gbnVsbHB0cjsKICAg
ICBtX2ludmFsaWRDb25zdHJhaW50c0hhbmRsZXIgPSBudWxscHRyOwogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyT3dyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyLmgJKHJldmlz
aW9uIDIxNzA0NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53
ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5oCSh3b3JraW5nIGNvcHkpCkBAIC01
Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyKCk7
CiAgICAgflJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IoKTsKIAotICAgIHZvaWQgdmFsaWRh
dGVSZXF1ZXN0Q29uc3RyYWludHMoVmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiB2YWxpZEhhbmRs
ZXIsIEludmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiBpbnZhbGlkSGFuZGxlciwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyYgYXVkaW9Db25zdHJhaW50cywgY29uc3QgTWVkaWFDb25zdHJhaW50cyYg
dmlkZW9Db25zdHJhaW50cykgZmluYWw7CisgICAgdm9pZCB2YWxpZGF0ZVJlcXVlc3RDb25zdHJh
aW50cyhWYWxpZENvbnN0cmFpbnRzSGFuZGxlciYmIHZhbGlkSGFuZGxlciwgSW52YWxpZENvbnN0
cmFpbnRzSGFuZGxlciYmIGludmFsaWRIYW5kbGVyLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBh
dWRpb0NvbnN0cmFpbnRzLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiB2aWRlb0NvbnN0cmFpbnRz
LCBTdHJpbmcmJikgZmluYWw7CiAKICAgICB2b2lkIGNyZWF0ZU1lZGlhU3RyZWFtKE5ld01lZGlh
U3RyZWFtSGFuZGxlciYmLCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlSUQsIGNvbnN0IFN0cmlu
ZyYgdmlkZW9EZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogdmlkZW9Db25zdHJhaW50
cywgY29uc3QgTWVkaWFDb25zdHJhaW50cyogYXVkaW9Db25zdHJhaW50cykgZmluYWw7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNzA0NikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDE3LTA1LTE4ICBFcmljIENhcmxz
b24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0gZG8g
bm90IGNhY2hlIGdVTSBwZXJtaXNzaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMjQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZh
YmxldC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5OjppbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3RzKToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNyZWF0ZVJlcXVl
c3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6dXNlck1lZGlhQWNjZXNzV2FzRGVuaWVkKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50
ZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAgIChXZWJL
aXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjplbnVtZXJhdGVNZWRp
YURldmljZXNGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lQXV0aG9yaXphdGlvblN0
YXRlOjpGcmFtZUF1dGhvcml6YXRpb25TdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OkZyYW1lQXV0aG9yaXphdGlvblN0YXRlOjpoYXNQZXJtaXNzaW9uVG9Vc2VDYXB0dXJlRGV2aWNl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6RnJhbWVBdXRob3JpemF0aW9uU3RhdGU6OnNl
dEhhc1Blcm1pc3Npb25Ub1VzZUNhcHR1cmVEZXZpY2UpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpGcmFtZUF1dGhvcml6YXRpb25TdGF0ZTo6ZW5zdXJlU2VjdXJpdHlPcmlnaW5zQXJlRXF1
YWwpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6c3RhdGVGb3JSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAg
KFdlYktpdDo6RnJhbWVBdXRob3JpemF0aW9uU3RhdGU6OnNldERldmljZUlkZW50aWZpZXJIYXNo
U2FsdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OkZyYW1lQXV0aG9yaXphdGlvblN0YXRl
OjpkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eTo6ZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KToKKwogMjAxNy0wNS0xOCAgQ2xhdWRpbyBT
YWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXUEVdIFVucmV2aWV3
ZWQgYnVpbGQgZml4CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAJ
KHJldmlzaW9uIDIxNzA0NikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDU2
ICs0MCw2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotRnJhbWVBdXRob3JpemF0aW9uU3RhdGU6OkZyYW1lQXV0aG9yaXphdGlvblN0YXRlKFJlZjxT
ZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luLCBSZWY8U2Vj
dXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKQotICAgIDogbV91
c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luKFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRT
ZWN1cml0eU9yaWdpbikpCi0gICAgLCBtX3RvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbihX
VEZNb3ZlKHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbikpCi17Ci19Ci0KLWJvb2wgRnJh
bWVBdXRob3JpemF0aW9uU3RhdGU6Omhhc1Blcm1pc3Npb25Ub1VzZUNhcHR1cmVEZXZpY2UoY29u
c3QgU3RyaW5nJiBkZXZpY2VVSUQpCi17Ci0gICAgcmV0dXJuIG1fYXV0aG9yaXplZERldmljZVVJ
RHMuZmluZChkZXZpY2VVSUQpICE9IG5vdEZvdW5kOwotfQotCi12b2lkIEZyYW1lQXV0aG9yaXph
dGlvblN0YXRlOjpzZXRIYXNQZXJtaXNzaW9uVG9Vc2VDYXB0dXJlRGV2aWNlKGNvbnN0IFN0cmlu
ZyYgZGV2aWNlVUlELCBib29sIGhhc1Blcm1pc3Npb24pCi17Ci0gICAgaWYgKGRldmljZVVJRC5p
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHNpemVfdCBpbmRleCA9IG1fYXV0aG9y
aXplZERldmljZVVJRHMuZmluZChkZXZpY2VVSUQpOwotICAgIGlmIChoYXNQZXJtaXNzaW9uID09
IChpbmRleCAhPSBub3RGb3VuZCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChoYXNQZXJt
aXNzaW9uKQotICAgICAgICBtX2F1dGhvcml6ZWREZXZpY2VVSURzLmFwcGVuZChkZXZpY2VVSUQp
OwotICAgIGVsc2UKLSAgICAgICAgbV9hdXRob3JpemVkRGV2aWNlVUlEcy5yZW1vdmUoaW5kZXgp
OwotfQotCi12b2lkIEZyYW1lQXV0aG9yaXphdGlvblN0YXRlOjplbnN1cmVTZWN1cml0eU9yaWdp
bnNBcmVFcXVhbChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRTZWN1
cml0eU9yaWdpbiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRTZWN1
cml0eU9yaWdpbikKLXsKLSAgICBpZiAobV91c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2lu
LT5lcXVhbCgmdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbikgJiYgbV90b3BMZXZlbERv
Y3VtZW50U2VjdXJpdHlPcmlnaW4tPmVxdWFsKCZ0b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmln
aW4pKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3VzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlP
cmlnaW4gPSB1c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luOwotICAgIG1fdG9wTGV2ZWxE
b2N1bWVudFNlY3VyaXR5T3JpZ2luID0gdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luOwot
ICAgIG1fYXV0aG9yaXplZERldmljZVVJRHMuY2xlYXIoKTsKLSAgICBtX2RldmljZUlkZW50aWZp
ZXJIYXNoU2FsdCA9IGVtcHR5U3RyaW5nKCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBSZXF1
ZXN0VHlwZT4KLUZyYW1lQXV0aG9yaXphdGlvblN0YXRlJiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6c3RhdGVGb3JSZXF1ZXN0KFJlcXVlc3RUeXBlJiByZXF1ZXN0KQot
ewotICAgIGF1dG8mIHN0YXRlID0gbV9mcmFtZVN0YXRlcy5hZGQocmVxdWVzdC5mcmFtZUlEKCks
IG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKLSAgICBpZiAoc3RhdGUpIHsKLSAgICAgICAgc3Rh
dGUtPmVuc3VyZVNlY3VyaXR5T3JpZ2luc0FyZUVxdWFsKHJlcXVlc3QudXNlck1lZGlhRG9jdW1l
bnRTZWN1cml0eU9yaWdpbigpLCByZXF1ZXN0LnRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdp
bigpKTsKLSAgICAgICAgcmV0dXJuICpzdGF0ZTsKLSAgICB9Ci0KLSAgICBzdGF0ZSA9IHN0ZDo6
bWFrZV91bmlxdWU8RnJhbWVBdXRob3JpemF0aW9uU3RhdGU+KHJlcXVlc3QudXNlck1lZGlhRG9j
dW1lbnRTZWN1cml0eU9yaWdpbigpLCByZXF1ZXN0LnRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9y
aWdpbigpKTsKLSAgICByZXR1cm4gKnN0YXRlOwotfQotCiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHko
V2ViUGFnZVByb3h5JiBwYWdlKQogICAgIDogbV9wYWdlKHBhZ2UpCiAgICAgLCBtX3JlamVjdGlv
blRpbWVyKCp0aGlzLCAmVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJl
amVjdGlvblRpbWVyRmlyZWQpCkBAIC0xMTYsOCArNjYsNiBAQCB2b2lkIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByCiAgICAgZm9yIChhdXRvJiByZXF1ZXN0IDogbV9wZW5kaW5n
RGV2aWNlUmVxdWVzdHMudmFsdWVzKCkpCiAgICAgICAgIHJlcXVlc3QtPmludmFsaWRhdGUoKTsK
ICAgICBtX3BlbmRpbmdEZXZpY2VSZXF1ZXN0cy5jbGVhcigpOwotCi0gICAgbV9mcmFtZVN0YXRl
cy5jbGVhcigpOwogfQogCiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OjpzdG9wQ2FwdHVyZSgpCkBAIC0xMzEsOSArNzksOSBAQCB2b2lkIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByCiAgICAgaW52YWxpZGF0ZVBlbmRpbmdSZXF1ZXN0cygpOwog
fQogCi1SZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNyZWF0ZVJlcXVlc3QodWludDY0X3QgdXNlck1lZGlh
SUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxTdHJpbmc+JiYgYXVkaW9EZXZpY2VVSURzLCBWZWN0
b3I8U3RyaW5nPiYmIHZpZGVvRGV2aWNlVUlEcykKK1JlZjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5PiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y3JlYXRl
UmVxdWVzdCh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFN0cmlu
Zz4mJiBhdWRpb0RldmljZVVJRHMsIFZlY3RvcjxTdHJpbmc+JiYgdmlkZW9EZXZpY2VVSURzLCBT
dHJpbmcmJiBkZXZpY2VJREhhc2hTYWx0KQogewotICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNyZWF0ZSgqdGhpcywgdXNlck1lZGlhSUQsIGZyYW1l
SUQsIFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9j
dW1lbnRPcmlnaW4pLCBXVEZNb3ZlKGF1ZGlvRGV2aWNlVUlEcyksIFdURk1vdmUodmlkZW9EZXZp
Y2VVSURzKSk7CisgICAgYXV0byByZXF1ZXN0ID0gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eTo6Y3JlYXRlKCp0aGlzLCB1c2VyTWVkaWFJRCwgZnJhbWVJRCwgV1RGTW92ZSh1c2VyTWVk
aWFEb2N1bWVudE9yaWdpbiksIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIFdURk1v
dmUoYXVkaW9EZXZpY2VVSURzKSwgV1RGTW92ZSh2aWRlb0RldmljZVVJRHMpLCBXVEZNb3ZlKGRl
dmljZUlESGFzaFNhbHQpKTsKICAgICBtX3BlbmRpbmdVc2VyTWVkaWFSZXF1ZXN0cy5hZGQodXNl
ck1lZGlhSUQsIHJlcXVlc3QucHRyKCkpOwogICAgIHJldHVybiByZXF1ZXN0OwogfQpAQCAtMTc5
LDEyICsxMjcsNiBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByCiAg
ICAgaWYgKCFyZXF1ZXN0KQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvJiBmcmFtZVN0YXRl
ID0gc3RhdGVGb3JSZXF1ZXN0KCpyZXF1ZXN0KTsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGRldmlj
ZVVJRCA6IHJlcXVlc3QtPnZpZGVvRGV2aWNlVUlEcygpKQotICAgICAgICBmcmFtZVN0YXRlLnNl
dEhhc1Blcm1pc3Npb25Ub1VzZUNhcHR1cmVEZXZpY2UoZGV2aWNlVUlELCBmYWxzZSk7Ci0gICAg
Zm9yIChjb25zdCBhdXRvJiBkZXZpY2VVSUQgOiByZXF1ZXN0LT5hdWRpb0RldmljZVVJRHMoKSkK
LSAgICAgICAgZnJhbWVTdGF0ZS5zZXRIYXNQZXJtaXNzaW9uVG9Vc2VDYXB0dXJlRGV2aWNlKGRl
dmljZVVJRCwgZmFsc2UpOwotCiAgICAgZGVueVJlcXVlc3QodXNlck1lZGlhSUQsIHJlYXNvbiwg
ZW1wdHlTdHJpbmcoKSk7CiB9CiAKQEAgLTIxMiwxNSArMTU0LDggQEAgdm9pZCBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcgogICAgIGlmICghcmVxdWVzdCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgYXV0byYgZnJhbWVTdGF0ZSA9IHN0YXRlRm9yUmVxdWVzdCgqcmVxdWVzdCk7
Ci0gICAgaWYgKCFhdWRpb0RldmljZVVJRC5pc0VtcHR5KCkpCi0gICAgICAgIGZyYW1lU3RhdGUu
c2V0SGFzUGVybWlzc2lvblRvVXNlQ2FwdHVyZURldmljZShhdWRpb0RldmljZVVJRCwgdHJ1ZSk7
Ci0gICAgaWYgKCF2aWRlb0RldmljZVVJRC5pc0VtcHR5KCkpCi0gICAgICAgIGZyYW1lU3RhdGUu
c2V0SGFzUGVybWlzc2lvblRvVXNlQ2FwdHVyZURldmljZSh2aWRlb0RldmljZVVJRCwgdHJ1ZSk7
Ci0KICAgICBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkud2lsbENyZWF0ZU1l
ZGlhU3RyZWFtKCp0aGlzLCAhYXVkaW9EZXZpY2VVSUQuaXNFbXB0eSgpLCAhdmlkZW9EZXZpY2VV
SUQuaXNFbXB0eSgpKTsKLQotICAgIG1fcGFnZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6VXNlck1lZGlhQWNjZXNzV2FzR3JhbnRlZCh1c2VyTWVkaWFJRCwgYXVkaW9EZXZpY2VV
SUQsIHZpZGVvRGV2aWNlVUlELCBmcmFtZVN0YXRlLmRldmljZUlkZW50aWZpZXJIYXNoU2FsdCgp
KSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OlVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50ZWQodXNlck1lZGlhSUQsIGF1ZGlvRGV2
aWNlVUlELCB2aWRlb0RldmljZVVJRCwgcmVxdWVzdC0+ZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0
KCkpLCBtX3BhZ2UucGFnZUlEKCkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0odXNlck1lZGlh
SUQpOwogICAgIFVOVVNFRF9QQVJBTShhdWRpb0RldmljZVVJRCk7CkBAIC0yNDgsNiArMTgzLDEy
IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHIKIHZvaWQgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNz
aW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGF1ZGlvQ29uc3RyYWludHMsIGNvbnN0IFdlYkNvcmU6
Ok1lZGlhQ29uc3RyYWludHMmIHZpZGVvQ29uc3RyYWludHMpCiB7CiAjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKyAgICBpZiAoIVVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24oKS5j
YXB0dXJlRW5hYmxlZCgpKSB7CisgICAgICAgIG1fcGVuZGluZ1JlamVjdGlvbnMuYXBwZW5kKHVz
ZXJNZWRpYUlEKTsKKyAgICAgICAgc2NoZWR1bGVOZXh0UmVqZWN0aW9uKCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpJ
bnZhbGlkQ29uc3RyYWludHNIYW5kbGVyIGludmFsaWRIYW5kbGVyID0gW3RoaXMsIHVzZXJNZWRp
YUlEXShjb25zdCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KSB7CiAgICAgICAgIGlmICghbV9w
YWdlLmlzVmFsaWQoKSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTI1NSw3ICsxOTYsNyBAQCB2
b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByCiAgICAgICAgIGRlbnlSZXF1
ZXN0KHVzZXJNZWRpYUlELCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVk
aWFBY2Nlc3NEZW5pYWxSZWFzb246OkludmFsaWRDb25zdHJhaW50LCBpbnZhbGlkQ29uc3RyYWlu
dCk7CiAgICAgfTsKIAotICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OlZh
bGlkQ29uc3RyYWludHNIYW5kbGVyIHZhbGlkSGFuZGxlciA9IFt0aGlzLCB1c2VyTWVkaWFJRCwg
ZnJhbWVJRCwgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4gPSB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
bi5jb3B5UmVmKCksIHRvcExldmVsRG9jdW1lbnRPcmlnaW4gPSB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luLmNvcHlSZWYoKV0oVmVjdG9yPFN0cmluZz4mJiBhdWRpb0RldmljZVVJRHMsIFZlY3RvcjxT
dHJpbmc+JiYgdmlkZW9EZXZpY2VVSURzKSBtdXRhYmxlIHsKKyAgICBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpWYWxpZENvbnN0cmFpbnRzSGFuZGxlciB2YWxpZEhhbmRsZXIg
PSBbdGhpcywgdXNlck1lZGlhSUQsIGZyYW1lSUQsIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luID0g
dXNlck1lZGlhRG9jdW1lbnRPcmlnaW4uY29weVJlZigpLCB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
ID0gdG9wTGV2ZWxEb2N1bWVudE9yaWdpbi5jb3B5UmVmKCldKFZlY3RvcjxTdHJpbmc+JiYgYXVk
aW9EZXZpY2VVSURzLCBWZWN0b3I8U3RyaW5nPiYmIHZpZGVvRGV2aWNlVUlEcywgU3RyaW5nJiYg
ZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFtX3BhZ2Uu
aXNWYWxpZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0yNjQsNDQgKzIwNSwxNCBAQCB2
b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByCiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KIAotICAgICAgICBib29sIGF1dGhvcml6ZWRGb3JBdWRpbyA9IGZhbHNl
OwotICAgICAgICBib29sIGF1dGhvcml6ZWRGb3JWaWRlbyA9IGZhbHNlOwotICAgICAgICAKICAg
ICAgICAgYXV0byB1c2VyTWVkaWFPcmlnaW4gPSBBUEk6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUo
dXNlck1lZGlhRG9jdW1lbnRPcmlnaW4uZ2V0KCkpOwogICAgICAgICBhdXRvIHRvcExldmVsT3Jp
Z2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4u
Z2V0KCkpOwotICAgICAgICAKLSAgICAgICAgYXV0byByZXF1ZXN0ID0gY3JlYXRlUmVxdWVzdCh1
c2VyTWVkaWFJRCwgZnJhbWVJRCwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIFdU
Rk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIFdURk1vdmUoYXVkaW9EZXZpY2VVSURzKSwg
V1RGTW92ZSh2aWRlb0RldmljZVVJRHMpKTsKLQotICAgICAgICBhdXRvJiBmcmFtZVN0YXRlID0g
c3RhdGVGb3JSZXF1ZXN0KHJlcXVlc3QuZ2V0KCkpOwotICAgICAgICBmb3IgKGNvbnN0IGF1dG8m
IGRldmljZVVJRCA6IHJlcXVlc3QtPmF1ZGlvRGV2aWNlVUlEcygpKSB7Ci0gICAgICAgICAgICBp
ZiAoZnJhbWVTdGF0ZS5oYXNQZXJtaXNzaW9uVG9Vc2VDYXB0dXJlRGV2aWNlKGRldmljZVVJRCkp
IHsKLSAgICAgICAgICAgICAgICBhdXRob3JpemVkRm9yQXVkaW8gPSB0cnVlOwotICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGZvciAoY29u
c3QgYXV0byYgZGV2aWNlVUlEIDogcmVxdWVzdC0+dmlkZW9EZXZpY2VVSURzKCkpIHsKLSAgICAg
ICAgICAgIGlmIChmcmFtZVN0YXRlLmhhc1Blcm1pc3Npb25Ub1VzZUNhcHR1cmVEZXZpY2UoZGV2
aWNlVUlEKSkgewotICAgICAgICAgICAgICAgIGF1dGhvcml6ZWRGb3JWaWRlbyA9IHRydWU7Ci0g
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAg
ICBpZiAoYXV0aG9yaXplZEZvckF1ZGlvID09ICFyZXF1ZXN0LT5hdWRpb0RldmljZVVJRHMoKS5p
c0VtcHR5KCkgJiYgYXV0aG9yaXplZEZvclZpZGVvID09ICFyZXF1ZXN0LT52aWRlb0RldmljZVVJ
RHMoKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50ZWQo
dXNlck1lZGlhSUQsIGF1dGhvcml6ZWRGb3JBdWRpbyA/IHJlcXVlc3QtPmF1ZGlvRGV2aWNlVUlE
cygpWzBdIDogZW1wdHlTdHJpbmcoKSwgYXV0aG9yaXplZEZvclZpZGVvID8gcmVxdWVzdC0+dmlk
ZW9EZXZpY2VVSURzKClbMF0gOiBlbXB0eVN0cmluZygpKTsKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQorICAgICAgICBhdXRvIHJlcXVlc3QgPSBjcmVhdGVSZXF1ZXN0KHVzZXJNZWRp
YUlELCBmcmFtZUlELCBXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0
b3BMZXZlbERvY3VtZW50T3JpZ2luKSwgV1RGTW92ZShhdWRpb0RldmljZVVJRHMpLCBXVEZNb3Zl
KHZpZGVvRGV2aWNlVUlEcyksIFdURk1vdmUoZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSk7CiAK
ICAgICAgICAgaWYgKCFtX3BhZ2UudWlDbGllbnQoKS5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdChtX3BhZ2UsICptX3BhZ2UucHJvY2VzcygpLndlYkZyYW1lKGZyYW1l
SUQpLCBXVEZNb3ZlKHVzZXJNZWRpYU9yaWdpbiksIFdURk1vdmUodG9wTGV2ZWxPcmlnaW4pLCBy
ZXF1ZXN0LmdldCgpKSkKICAgICAgICAgICAgIHVzZXJNZWRpYUFjY2Vzc1dhc0RlbmllZCh1c2Vy
TWVkaWFJRCwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNz
RGVuaWFsUmVhc29uOjpVc2VyTWVkaWFEaXNhYmxlZCk7Ci0KICAgICB9OwogCi0gICAgaWYgKCFV
c2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkuY2FwdHVyZUVuYWJsZWQoKSkgewot
ICAgICAgICBtX3BlbmRpbmdSZWplY3Rpb25zLmFwcGVuZCh1c2VyTWVkaWFJRCk7Ci0gICAgICAg
IHNjaGVkdWxlTmV4dFJlamVjdGlvbigpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAg
YXV0byBoYXZlRGV2aWNlU2FsdEhhbmRsZXIgPSBbdGhpcywgdXNlck1lZGlhSUQsIHZhbGlkSGFu
ZGxlciA9IFdURk1vdmUodmFsaWRIYW5kbGVyKSwgaW52YWxpZEhhbmRsZXIgPSBXVEZNb3ZlKGlu
dmFsaWRIYW5kbGVyKSwgYXVkaW9Db25zdHJhaW50cyA9IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHMoYXVkaW9Db25zdHJhaW50cyksIHZpZGVvQ29uc3RyYWludHMgPSBXZWJDb3JlOjpNZWRpYUNv
bnN0cmFpbnRzKHZpZGVvQ29uc3RyYWludHMpXSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgU3RyaW5n
JiYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0LCBib29sIG9yaWdpbkhhc1BlcnNpc3RlbnRBY2Nl
c3MpIG11dGFibGUgewogCiAgICAgICAgIGF1dG8gcmVxdWVzdCA9IG1fcGVuZGluZ0RldmljZVJl
cXVlc3RzLnRha2UodXNlck1lZGlhSUQpOwpAQCAtMzE0LDEyICsyMjUsOSBAQCB2b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByCiAgICAgICAgIGF1ZGlvQ29uc3RyYWludHMu
ZGV2aWNlSURIYXNoU2FsdCA9IGRldmljZUlkZW50aWZpZXJIYXNoU2FsdDsKICAgICAgICAgdmlk
ZW9Db25zdHJhaW50cy5kZXZpY2VJREhhc2hTYWx0ID0gZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0
OwogCi0gICAgICAgIGF1dG8mIGZyYW1lU3RhdGUgPSBzdGF0ZUZvclJlcXVlc3QocmVxdWVzdC52
YWx1ZSgpLmdldCgpKTsKLSAgICAgICAgZnJhbWVTdGF0ZS5zZXREZXZpY2VJZGVudGlmaWVySGFz
aFNhbHQoV1RGTW92ZShkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpKTsKLSAgICAgICAgCiAgICAg
ICAgIHN5bmNXaXRoV2ViQ29yZVByZWZzKCk7CiAgICAgICAgIAotICAgICAgICBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhX
VEZNb3ZlKHZhbGlkSGFuZGxlciksIFdURk1vdmUoaW52YWxpZEhhbmRsZXIpLCBhdWRpb0NvbnN0
cmFpbnRzLCB2aWRlb0NvbnN0cmFpbnRzKTsKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6c2luZ2xldG9uKCkudmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoV1RGTW92ZSh2YWxp
ZEhhbmRsZXIpLCBXVEZNb3ZlKGludmFsaWRIYW5kbGVyKSwgYXVkaW9Db25zdHJhaW50cywgdmlk
ZW9Db25zdHJhaW50cywgV1RGTW92ZShkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpKTsKICAgICB9
OwogCiAgICAgZ2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8odXNlck1lZGlhSUQsIGZyYW1lSUQs
IFdURk1vdmUoaGF2ZURldmljZVNhbHRIYW5kbGVyKSwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiksIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbikpOwpAQCAtMzU4LDkgKzI2
Niw2IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHIKICAgICAgICAg
aWYgKCFtX3BhZ2UuaXNWYWxpZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGF1
dG8mIGZyYW1lU3RhdGUgPSBzdGF0ZUZvclJlcXVlc3QocmVxdWVzdC52YWx1ZSgpLmdldCgpKTsK
LSAgICAgICAgZnJhbWVTdGF0ZS5zZXREZXZpY2VJZGVudGlmaWVySGFzaFNhbHQoU3RyaW5nKGRl
dmljZUlkZW50aWZpZXJIYXNoU2FsdCkpOwotCiAgICAgICAgIHN5bmNXaXRoV2ViQ29yZVByZWZz
KCk7CiAgICAgICAgIGF1dG8gZGV2aWNlSW5mbyA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnNpbmdsZXRvbigpLmdldE1lZGlhU3RyZWFtRGV2aWNlcygpOwogICAgICAgICBtX3BhZ2UucHJv
Y2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZENvbXBsZXRlTWVkaWFEZXZpY2VFbnVt
ZXJhdGlvbih1c2VyTWVkaWFJRCwgZGV2aWNlSW5mbywgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0
LCBvcmlnaW5IYXNQZXJzaXN0ZW50QWNjZXNzKSwgbV9wYWdlLnBhZ2VJRCgpKTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCShyZXZpc2lvbiAyMTcwNDYpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsMjUgKzM2LDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiAKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIAotY2xhc3MgRnJhbWVBdXRob3JpemF0aW9uU3RhdGUg
ewotcHVibGljOgotICAgIEZyYW1lQXV0aG9yaXphdGlvblN0YXRlKFJlZjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luLCBSZWY8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKTsKLQot
ICAgIGJvb2wgaGFzUGVybWlzc2lvblRvVXNlQ2FwdHVyZURldmljZShjb25zdCBTdHJpbmcmIGRl
dmljZVVJRCk7Ci0gICAgdm9pZCBzZXRIYXNQZXJtaXNzaW9uVG9Vc2VDYXB0dXJlRGV2aWNlKGNv
bnN0IFN0cmluZyYsIGJvb2wpOwotCi0gICAgdm9pZCBlbnN1cmVTZWN1cml0eU9yaWdpbnNBcmVF
cXVhbChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9y
aWdpbiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9y
aWdpbik7Ci0KLSAgICB2b2lkIHNldERldmljZUlkZW50aWZpZXJIYXNoU2FsdChTdHJpbmcmJiBo
YXNoU2FsdCkgeyBtX2RldmljZUlkZW50aWZpZXJIYXNoU2FsdCA9IGhhc2hTYWx0OyB9Ci0gICAg
Y29uc3QgU3RyaW5nJiBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQoKSBjb25zdCB7IHJldHVybiBt
X2RldmljZUlkZW50aWZpZXJIYXNoU2FsdDsgfQotCi1wcml2YXRlOgotICAgIFJlZjxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbj4gbV91c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luOwotICAg
IFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlP
cmlnaW47Ci0gICAgVmVjdG9yPFN0cmluZz4gbV9hdXRob3JpemVkRGV2aWNlVUlEczsKLSAgICBT
dHJpbmcgbV9kZXZpY2VJZGVudGlmaWVySGFzaFNhbHQ7Ci19OwotCiBjbGFzcyBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5Jik7CkBAIC02
OSw5ICs1MCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50ZWQo
dWludDY0X3QsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgdmlk
ZW9EZXZpY2VVSUQpOwogICAgIHZvaWQgdXNlck1lZGlhQWNjZXNzV2FzRGVuaWVkKHVpbnQ2NF90
LCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxS
ZWFzb24pOwogCi0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFJlcXVlc3RUeXBlPgotICAgIEZyYW1l
QXV0aG9yaXphdGlvblN0YXRlJiBzdGF0ZUZvclJlcXVlc3QoUmVxdWVzdFR5cGUmKTsKLQogICAg
IHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQs
IHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVk
aWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVs
RG9jdW1lbnRPcmlnaW4pOwogCiAgICAgdm9pZCBzdG9wQ2FwdHVyZSgpOwpAQCAtODMsNyArNjEs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbmRlZENhcHR1cmVTZXNzaW9uKCk7CiAKIHByaXZhdGU6
Ci0gICAgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZVJlcXVlc3Qo
dWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxTdHJpbmc+JiYgYXVk
aW9EZXZpY2VVSURzLCBWZWN0b3I8U3RyaW5nPiYmIHZpZGVvRGV2aWNlVUlEcyk7CisgICAgUmVm
PFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZVJlcXVlc3QodWludDY0X3Qg
dXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
PiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxTdHJpbmc+JiYgYXVkaW9EZXZpY2VV
SURzLCBWZWN0b3I8U3RyaW5nPiYmIHZpZGVvRGV2aWNlVUlEcywgU3RyaW5nJiYpOwogICAgIHZv
aWQgZGVueVJlcXVlc3QodWludDY0X3QgdXNlck1lZGlhSUQsIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiwgY29uc3QgU3RyaW5nJiBp
bnZhbGlkQ29uc3RyYWludCk7CiAKICAgICB2b2lkIGdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZv
KHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBVc2VyTWVkaWFQZXJtaXNz
aW9uQ2hlY2tQcm94eTo6Q29tcGxldGlvbkhhbmRsZXImJiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CkBAIC05Miw3ICs3MCw2IEBAIHByaXZh
dGU6CiAKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eT4+IG1fcGVuZGluZ1VzZXJNZWRpYVJlcXVlc3RzOwogICAgIEhhc2hNYXA8dWlu
dDY0X3QsIFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eT4+IG1fcGVuZGluZ0Rldmlj
ZVJlcXVlc3RzOwotICAgIEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxGcmFtZUF1
dGhvcml6YXRpb25TdGF0ZT4+IG1fZnJhbWVTdGF0ZXM7CiAKICAgICBXZWJQYWdlUHJveHkmIG1f
cGFnZTsKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAkocmV2aXNpb24gMjE3MDQ2KQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlhSUQsIHVp
bnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9j
dW1lbnRPcmlnaW4sIFZlY3RvcjxTdHJpbmc+JiYgYXVkaW9EZXZpY2VVSURzLCBWZWN0b3I8U3Ry
aW5nPiYmIHZpZGVvRGV2aWNlVUlEcykKK1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6
OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBm
cmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luLCBWZWN0b3I8U3RyaW5nPiYmIGF1ZGlvRGV2aWNlVUlEcywgVmVjdG9yPFN0cmluZz4mJiB2
aWRlb0RldmljZVVJRHMsIFN0cmluZyYmIGRldmljZUlESGFzaFNhbHQpCiAgICAgOiBtX21hbmFn
ZXIoJm1hbmFnZXIpCiAgICAgLCBtX3VzZXJNZWRpYUlEKHVzZXJNZWRpYUlEKQogICAgICwgbV9m
cmFtZUlEKGZyYW1lSUQpCkBAIC0zOCw2ICszOCw3IEBAIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHk6OlVzZXJNZWQKICAgICAsIG1fdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2lu
KFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbikpCiAgICAgLCBtX3ZpZGVvRGV2aWNlVUlE
cyhXVEZNb3ZlKHZpZGVvRGV2aWNlVUlEcykpCiAgICAgLCBtX2F1ZGlvRGV2aWNlVUlEcyhXVEZN
b3ZlKGF1ZGlvRGV2aWNlVUlEcykpCisgICAgLCBtX2RldmljZUlkZW50aWZpZXJIYXNoU2FsdChX
VEZNb3ZlKGRldmljZUlESGFzaFNhbHQpKQogewogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmgJKHJldmlzaW9uIDIxNzA0NikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDkgKzMzLDkg
QEAgY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUAogCiBjbGFzcyBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6
Ok9iamVjdDo6VHlwZTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q+IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZShVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNl
ck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4m
JiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYm
IHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxTdHJpbmc+JiYgdmlkZW9EZXZpY2VVSURz
LCBWZWN0b3I8U3RyaW5nPiYmIGF1ZGlvRGV2aWNlVUlEcykKKyAgICBzdGF0aWMgUmVmPFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZShVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4sIFZlY3RvcjxTdHJpbmc+JiYgdmlkZW9EZXZpY2VVSURzLCBWZWN0b3I8U3RyaW5nPiYm
IGF1ZGlvRGV2aWNlVUlEcywgU3RyaW5nJiYgZGV2aWNlSURIYXNoU2FsdCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHko
bWFuYWdlciwgdXNlck1lZGlhSUQsIGZyYW1lSUQsIFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHZpZGVvRGV2
aWNlVUlEcyksIFdURk1vdmUoYXVkaW9EZXZpY2VVSURzKSkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KG1hbmFnZXIsIHVzZXJN
ZWRpYUlELCBmcmFtZUlELCBXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgV1RGTW92
ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh2aWRlb0RldmljZVVJRHMpLCBXVEZN
b3ZlKGF1ZGlvRGV2aWNlVUlEcyksIFdURk1vdmUoZGV2aWNlSURIYXNoU2FsdCkpKTsKICAgICB9
CiAKICAgICB2b2lkIGFsbG93KGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0
cmluZyYgYXVkaW9EZXZpY2VVSUQpOwpAQCAtNTUsOCArNTUsMTAgQEAgcHVibGljOgogICAgIFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkg
eyByZXR1cm4gbV91c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luLmdldCgpOyB9CiAgICAg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbigp
IHsgcmV0dXJuIG1fdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luLmdldCgpOyB9CiAKKyAg
ICBjb25zdCBTdHJpbmcmIGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCgpIGNvbnN0IHsgcmV0dXJu
IG1fZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0OyB9CisKIHByaXZhdGU6Ci0gICAgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eSYsIHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8U3RyaW5n
PiYmIHZpZGVvRGV2aWNlVUlEcywgVmVjdG9yPFN0cmluZz4mJiBhdWRpb0RldmljZVVJRHMpOwor
ICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkmLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJ
RCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
LCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwg
VmVjdG9yPFN0cmluZz4mJiB2aWRlb0RldmljZVVJRHMsIFZlY3RvcjxTdHJpbmc+JiYgYXVkaW9E
ZXZpY2VVSURzLCBTdHJpbmcmJik7CiAKICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eSogbV9tYW5hZ2VyOwogICAgIHVpbnQ2NF90IG1fdXNlck1lZGlhSUQ7CkBAIC02
NSw2ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBt
X3RvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbjsKICAgICBWZWN0b3I8U3RyaW5nPiBtX3Zp
ZGVvRGV2aWNlVUlEczsKICAgICBWZWN0b3I8U3RyaW5nPiBtX2F1ZGlvRGV2aWNlVUlEczsKKyAg
ICBTdHJpbmcgbV9kZXZpY2VJZGVudGlmaWVySGFzaFNhbHQ7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNzA0NikKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE3LTA1LTE4ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0g
ZG8gbm90IGNhY2hlIGdVTSBwZXJtaXNzaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMjQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5u
IEZhYmxldC4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWdldFVz
ZXJNZWRpYS1leHBlY3RlZC50eHQ6IFVwZGF0ZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVh
bS9NZWRpYURldmljZXMtZ2V0VXNlck1lZGlhLmh0bWw6CisKIDIwMTctMDUtMTggIEFudHRpIEtv
aXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIERlc2lnbiBtb2RlIHNob3VsZCBu
b3QgYWZmZWN0IFVBIHNoYWRvdyB0cmVlcwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9NZWRpYURldmljZXMtZ2V0VXNlck1lZGlhLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy1nZXRVc2VyTWVkaWEt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTcwNDYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL01lZGlhRGV2aWNlcy1nZXRVc2VyTWVkaWEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC00OSw5ICs0OSw2IEBAIFBBU1MgRXJyb3IgY2FsbGJhY2sgY2FsbGVkLgogUEFTUyBu
YXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86ZmFsc2UsIHZpZGVvOnZp
ZGVvQ29uc3RyYWludHN9KS50aGVuKGludmFsaWRHb3RTdHJlYW0pLmNhdGNoKGVycm9yV2l0aENv
bnN0cmFpbnRzMikgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCiBQQVNTIEVycm9yIGNhbGxiYWNr
IGNhbGxlZC4KIFBBU1MgZXJyb3JBcmcubmFtZSBpcyAiRXJyb3IiCi0KLVBBU1MgbmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWV9KS50aGVuKHZhbGlkU3RyZWFt
KS5jYXRjaChlcnJvcjEpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KLVBBU1MgU3RyZWFtIGdl
bmVyYXRlZCBiZWNhdXNlIHBhZ2UgaGFzIGFscmVhZHkgYXV0aGVudGljYXRlZC4KIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMtZ2V0VXNlck1lZGlhLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMtZ2V0VXNl
ck1lZGlhLmh0bWwJKHJldmlzaW9uIDIxNzA0NikKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vTWVkaWFEZXZpY2VzLWdldFVzZXJNZWRpYS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0y
NywxMSArMjcsNiBAQAogICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICAg
ICAgfQogCi0gICAgICAgICAgICBmdW5jdGlvbiB2YWxpZFN0cmVhbShlKSB7Ci0gICAgICAgICAg
ICAgICAgdGVzdFBhc3NlZCgiU3RyZWFtIGdlbmVyYXRlZCBiZWNhdXNlIHBhZ2UgaGFzIGFscmVh
ZHkgYXV0aGVudGljYXRlZC4iKTsKLSAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAg
ICAgICAgICAgIH0KLQogICAgICAgICAgICAgZnVuY3Rpb24gZXJyb3IxKGUpIHsKICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKGBFcnJvciBjYWxsYmFjayBjYWxsZWQsIGVycm9yID0gJHtlfWAp
OwogICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwpAQCAtNDIsMTIgKzM3LDcgQEAKICAg
ICAgICAgICAgICAgICBlcnJvckFyZyA9IGU7CiAgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJlcnJvckFyZy5uYW1lIiwgIkVycm9yIik7CiAKLSAgICAgICAgICAgICAgICAv
LyBXZSB0ZWxsIExheW91dFRlc3RSdW5uZXIgdG8gZGVueSB1c2VyIG1lZGlhIHJlcXVlc3RzIGJ1
dCBleHBlY3QgdGhlIGdVTSBjYWxsIHRvIHN1Y2NlZWQKLSAgICAgICAgICAgICAgICAvLyBhcyBp
dCBzaG91bGQgbm90IHNlZSB0aGUgcmVxdWVzdCBiZWNhdXNlIHRoZSBjdXJyZW50IGJyb3dzaW5n
IGNvbnRleHQgaGFzIGFscmVhZHkKLSAgICAgICAgICAgICAgICAvLyBzdWNjZXNzZnVsbHkgY3Jl
YXRlZCBhIHN0cmVhbSBmb3IgdGhlIG1vY2sgYXVkaW8gZGV2aWNlLgotICAgICAgICAgICAgICAg
IHNldFVzZXJNZWRpYVBlcm1pc3Npb24oZmFsc2UpOwotICAgICAgICAgICAgICAgIGRlYnVnKCIi
KTsKLSAgICAgICAgICAgICAgICBzaG91bGROb3RUaHJvdygibmF2aWdhdG9yLm1lZGlhRGV2aWNl
cy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWV9KS50aGVuKHZhbGlkU3RyZWFtKS5jYXRjaChlcnJv
cjEpOyIpOworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICAgICAgfQog
CiAgICAgICAgICAgICBmdW5jdGlvbiBlcnJvcldpdGhDb25zdHJhaW50czEoKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310525</attachid>
            <date>2017-05-18 11:57:28 -0700</date>
            <delta_ts>2017-05-18 13:10:43 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>gum_prompt_patch_7.txt</filename>
            <type>text/plain</type>
            <size>23093</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNzA0NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA1LTE4ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0g
ZG8gbm90IGNhY2hlIGdVTSBwZXJtaXNzaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMjQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5u
IEZhYmxldC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHVwZGF0ZWQgZmFzdC9tZWRpYXN0cmVh
bS9NZWRpYURldmljZXMtZ2V0VXNlck1lZGlhLmh0bWwuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRz
KTogQWRkIHNhbHQgcGFyYW1ldGVyLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaDoKKwogMjAxNy0wNS0xOCAgQW50dGkgS29pdmlzdG8g
IDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgRGVzaWduIG1vZGUgc2hvdWxkIG5vdCBhZmZl
Y3QgVUEgc2hhZG93IHRyZWVzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNw
cAkocmV2aXNpb24gMjE3MDQ2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNiw3
ICsyMDYsNyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1cmVECiAgICAg
ICAgIGl0LnZhbHVlKCk7CiB9CiAKLXZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dmFs
aWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoVmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiB2YWxpZEhh
bmRsZXIsIEludmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiBpbnZhbGlkSGFuZGxlciwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyYgYXVkaW9Db25zdHJhaW50cywgY29uc3QgTWVkaWFDb25zdHJhaW50
cyYgdmlkZW9Db25zdHJhaW50cykKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dmFs
aWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoVmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiB2YWxpZEhh
bmRsZXIsIEludmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiBpbnZhbGlkSGFuZGxlciwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyYgYXVkaW9Db25zdHJhaW50cywgY29uc3QgTWVkaWFDb25zdHJhaW50
cyYgdmlkZW9Db25zdHJhaW50cywgU3RyaW5nJiYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KQog
ewogICAgIHN0cnVjdCBEZXZpY2VJbmZvIHsKICAgICAgICAgdW5zaWduZWQgZml0bmVzc1Njb3Jl
OwpAQCAtMjY1LDcgKzI2NSw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dmFs
aWRhdGUKICAgICAgICAgICAgIHZpZGVvU291cmNlSWRzLnVuY2hlY2tlZEFwcGVuZChXVEZNb3Zl
KGluZm8uaWQpKTsKICAgICB9CiAKLSAgICB2YWxpZEhhbmRsZXIoV1RGTW92ZShhdWRpb1NvdXJj
ZUlkcyksIFdURk1vdmUodmlkZW9Tb3VyY2VJZHMpKTsKKyAgICB2YWxpZEhhbmRsZXIoV1RGTW92
ZShhdWRpb1NvdXJjZUlkcyksIFdURk1vdmUodmlkZW9Tb3VyY2VJZHMpLCBXVEZNb3ZlKGRldmlj
ZUlkZW50aWZpZXJIYXNoU2FsdCkpOwogfQogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnNldFZpc2liaWxpdHkoYm9vbCBpc1Zpc2libGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlci5oCShyZXZpc2lvbiAyMTcwNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTU4LDkgKzU4LDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyJiBzaW5nbGV0b24oKTsKICAgICBzdGF0aWMgdm9pZCBzZXRT
aGFyZWRTdHJlYW1DZW50ZXJPdmVycmlkZShSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyKik7CiAK
LSAgICB1c2luZyBWYWxpZENvbnN0cmFpbnRzSGFuZGxlciA9IFdURjo6RnVuY3Rpb248dm9pZChW
ZWN0b3I8U3RyaW5nPiYmIGF1ZGlvRGV2aWNlVUlEcywgVmVjdG9yPFN0cmluZz4mJiB2aWRlb0Rl
dmljZVVJRHMpPjsKKyAgICB1c2luZyBWYWxpZENvbnN0cmFpbnRzSGFuZGxlciA9IFdURjo6RnVu
Y3Rpb248dm9pZChWZWN0b3I8U3RyaW5nPiYmIGF1ZGlvRGV2aWNlVUlEcywgVmVjdG9yPFN0cmlu
Zz4mJiB2aWRlb0RldmljZVVJRHMsIFN0cmluZyYmKT47CiAgICAgdXNpbmcgSW52YWxpZENvbnN0
cmFpbnRzSGFuZGxlciA9IFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmIGludmFsaWRD
b25zdHJhaW50KT47Ci0gICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRz
KFZhbGlkQ29uc3RyYWludHNIYW5kbGVyJiYsIEludmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyYgYXVkaW9Db25zdHJhaW50cywgY29uc3QgTWVkaWFDb25z
dHJhaW50cyYgdmlkZW9Db25zdHJhaW50cyk7CisgICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUmVx
dWVzdENvbnN0cmFpbnRzKFZhbGlkQ29uc3RyYWludHNIYW5kbGVyJiYsIEludmFsaWRDb25zdHJh
aW50c0hhbmRsZXImJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyYgYXVkaW9Db25zdHJhaW50cywg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyYgdmlkZW9Db25zdHJhaW50cywgU3RyaW5nJiYpOwogCiAg
ICAgdXNpbmcgTmV3TWVkaWFTdHJlYW1IYW5kbGVyID0gc3RkOjpmdW5jdGlvbjx2b2lkKFJlZlB0
cjxNZWRpYVN0cmVhbVByaXZhdGU+JiYpPjsKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlTWVkaWFT
dHJlYW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyJiYsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VJ
RCwgY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBh
dWRpb0NvbnN0cmFpbnRzLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiB2aWRlb0NvbnN0cmFpbnRz
KSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2Vi
cnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlck93ci5jcHAJKHJldmlzaW9uIDIxNzA0NikKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc3LDcgKzc3LDcgQEAgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlck93cjo6flJlYWx0aW1lTQogewogfQogCi12b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXJPd3I6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFZhbGlkQ29uc3RyYWludHNIYW5k
bGVyJiYgdmFsaWRIYW5kbGVyLCBJbnZhbGlkQ29uc3RyYWludHNIYW5kbGVyJiYgaW52YWxpZEhh
bmRsZXIsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGF1ZGlvQ29uc3RyYWludHMsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMmIHZpZGVvQ29uc3RyYWludHMpCit2b2lkIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXJPd3I6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFZhbGlkQ29uc3RyYWludHNI
YW5kbGVyJiYgdmFsaWRIYW5kbGVyLCBJbnZhbGlkQ29uc3RyYWludHNIYW5kbGVyJiYgaW52YWxp
ZEhhbmRsZXIsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGF1ZGlvQ29uc3RyYWludHMsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMmIHZpZGVvQ29uc3RyYWludHMsIFN0cmluZyYmIGRldmljZUlkZW50
aWZpZXJIYXNoU2FsdCkKIHsKICAgICBtX3ZhbGlkQ29uc3RyYWludHNIYW5kbGVyID0gV1RGTW92
ZSh2YWxpZEhhbmRsZXIpOwogICAgIG1faW52YWxpZENvbnN0cmFpbnRzSGFuZGxlciA9IFdURk1v
dmUoaW52YWxpZEhhbmRsZXIpOwpAQCAtOTQsNyArOTQsNyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXJPd3I6OnZhbGlkCiAgICAgaWYgKHZpZGVvQ29uc3RyYWludHMuaXNWYWxpZCkK
ICAgICAgICAgdmlkZW9Tb3VyY2VzLmFwcGVuZChTdHJpbmcoInZpZGVvIikpOwogCi0gICAgbV92
YWxpZENvbnN0cmFpbnRzSGFuZGxlcihXVEZNb3ZlKGF1ZGlvU291cmNlcyksIFdURk1vdmUodmlk
ZW9Tb3VyY2VzKSk7CisgICAgbV92YWxpZENvbnN0cmFpbnRzSGFuZGxlcihXVEZNb3ZlKGF1ZGlv
U291cmNlcyksIFdURk1vdmUodmlkZW9Tb3VyY2VzKSwgV1RGTW92ZShkZXZpY2VJZGVudGlmaWVy
SGFzaFNhbHQpKTsKICAgICBtX3ZhbGlkQ29uc3RyYWludHNIYW5kbGVyID0gbnVsbHB0cjsKICAg
ICBtX2ludmFsaWRDb25zdHJhaW50c0hhbmRsZXIgPSBudWxscHRyOwogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyT3dyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyLmgJKHJldmlz
aW9uIDIxNzA0NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53
ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5oCSh3b3JraW5nIGNvcHkpCkBAIC01
Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyKCk7
CiAgICAgflJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IoKTsKIAotICAgIHZvaWQgdmFsaWRh
dGVSZXF1ZXN0Q29uc3RyYWludHMoVmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiB2YWxpZEhhbmRs
ZXIsIEludmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiBpbnZhbGlkSGFuZGxlciwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyYgYXVkaW9Db25zdHJhaW50cywgY29uc3QgTWVkaWFDb25zdHJhaW50cyYg
dmlkZW9Db25zdHJhaW50cykgZmluYWw7CisgICAgdm9pZCB2YWxpZGF0ZVJlcXVlc3RDb25zdHJh
aW50cyhWYWxpZENvbnN0cmFpbnRzSGFuZGxlciYmIHZhbGlkSGFuZGxlciwgSW52YWxpZENvbnN0
cmFpbnRzSGFuZGxlciYmIGludmFsaWRIYW5kbGVyLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBh
dWRpb0NvbnN0cmFpbnRzLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiB2aWRlb0NvbnN0cmFpbnRz
LCBTdHJpbmcmJikgZmluYWw7CiAKICAgICB2b2lkIGNyZWF0ZU1lZGlhU3RyZWFtKE5ld01lZGlh
U3RyZWFtSGFuZGxlciYmLCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlSUQsIGNvbnN0IFN0cmlu
ZyYgdmlkZW9EZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogdmlkZW9Db25zdHJhaW50
cywgY29uc3QgTWVkaWFDb25zdHJhaW50cyogYXVkaW9Db25zdHJhaW50cykgZmluYWw7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNzA0NikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDE3LTA1LTE4ICBFcmljIENhcmxz
b24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0gZG8g
bm90IGNhY2hlIGdVTSBwZXJtaXNzaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMjQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZh
YmxldC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5OjppbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3RzKToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNyZWF0ZVJlcXVl
c3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6dXNlck1lZGlhQWNjZXNzV2FzRGVuaWVkKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50
ZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAgIChXZWJL
aXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjplbnVtZXJhdGVNZWRp
YURldmljZXNGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lQXV0aG9yaXphdGlvblN0
YXRlOjpGcmFtZUF1dGhvcml6YXRpb25TdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OkZyYW1lQXV0aG9yaXphdGlvblN0YXRlOjpoYXNQZXJtaXNzaW9uVG9Vc2VDYXB0dXJlRGV2aWNl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6RnJhbWVBdXRob3JpemF0aW9uU3RhdGU6OnNl
dEhhc1Blcm1pc3Npb25Ub1VzZUNhcHR1cmVEZXZpY2UpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpGcmFtZUF1dGhvcml6YXRpb25TdGF0ZTo6ZW5zdXJlU2VjdXJpdHlPcmlnaW5zQXJlRXF1
YWwpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6c3RhdGVGb3JSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAg
KFdlYktpdDo6RnJhbWVBdXRob3JpemF0aW9uU3RhdGU6OnNldERldmljZUlkZW50aWZpZXJIYXNo
U2FsdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OkZyYW1lQXV0aG9yaXphdGlvblN0YXRl
OjpkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eTo6ZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KToKKwogMjAxNy0wNS0xOCAgQ2xhdWRpbyBT
YWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXUEVdIFVucmV2aWV3
ZWQgYnVpbGQgZml4CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAJ
KHJldmlzaW9uIDIxNzA0NikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDU2
ICs0MCw2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotRnJhbWVBdXRob3JpemF0aW9uU3RhdGU6OkZyYW1lQXV0aG9yaXphdGlvblN0YXRlKFJlZjxT
ZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luLCBSZWY8U2Vj
dXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKQotICAgIDogbV91
c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luKFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRT
ZWN1cml0eU9yaWdpbikpCi0gICAgLCBtX3RvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbihX
VEZNb3ZlKHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbikpCi17Ci19Ci0KLWJvb2wgRnJh
bWVBdXRob3JpemF0aW9uU3RhdGU6Omhhc1Blcm1pc3Npb25Ub1VzZUNhcHR1cmVEZXZpY2UoY29u
c3QgU3RyaW5nJiBkZXZpY2VVSUQpCi17Ci0gICAgcmV0dXJuIG1fYXV0aG9yaXplZERldmljZVVJ
RHMuZmluZChkZXZpY2VVSUQpICE9IG5vdEZvdW5kOwotfQotCi12b2lkIEZyYW1lQXV0aG9yaXph
dGlvblN0YXRlOjpzZXRIYXNQZXJtaXNzaW9uVG9Vc2VDYXB0dXJlRGV2aWNlKGNvbnN0IFN0cmlu
ZyYgZGV2aWNlVUlELCBib29sIGhhc1Blcm1pc3Npb24pCi17Ci0gICAgaWYgKGRldmljZVVJRC5p
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHNpemVfdCBpbmRleCA9IG1fYXV0aG9y
aXplZERldmljZVVJRHMuZmluZChkZXZpY2VVSUQpOwotICAgIGlmIChoYXNQZXJtaXNzaW9uID09
IChpbmRleCAhPSBub3RGb3VuZCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChoYXNQZXJt
aXNzaW9uKQotICAgICAgICBtX2F1dGhvcml6ZWREZXZpY2VVSURzLmFwcGVuZChkZXZpY2VVSUQp
OwotICAgIGVsc2UKLSAgICAgICAgbV9hdXRob3JpemVkRGV2aWNlVUlEcy5yZW1vdmUoaW5kZXgp
OwotfQotCi12b2lkIEZyYW1lQXV0aG9yaXphdGlvblN0YXRlOjplbnN1cmVTZWN1cml0eU9yaWdp
bnNBcmVFcXVhbChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRTZWN1
cml0eU9yaWdpbiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRTZWN1
cml0eU9yaWdpbikKLXsKLSAgICBpZiAobV91c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2lu
LT5lcXVhbCgmdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbikgJiYgbV90b3BMZXZlbERv
Y3VtZW50U2VjdXJpdHlPcmlnaW4tPmVxdWFsKCZ0b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmln
aW4pKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3VzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlP
cmlnaW4gPSB1c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luOwotICAgIG1fdG9wTGV2ZWxE
b2N1bWVudFNlY3VyaXR5T3JpZ2luID0gdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luOwot
ICAgIG1fYXV0aG9yaXplZERldmljZVVJRHMuY2xlYXIoKTsKLSAgICBtX2RldmljZUlkZW50aWZp
ZXJIYXNoU2FsdCA9IGVtcHR5U3RyaW5nKCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBSZXF1
ZXN0VHlwZT4KLUZyYW1lQXV0aG9yaXphdGlvblN0YXRlJiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6c3RhdGVGb3JSZXF1ZXN0KFJlcXVlc3RUeXBlJiByZXF1ZXN0KQot
ewotICAgIGF1dG8mIHN0YXRlID0gbV9mcmFtZVN0YXRlcy5hZGQocmVxdWVzdC5mcmFtZUlEKCks
IG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKLSAgICBpZiAoc3RhdGUpIHsKLSAgICAgICAgc3Rh
dGUtPmVuc3VyZVNlY3VyaXR5T3JpZ2luc0FyZUVxdWFsKHJlcXVlc3QudXNlck1lZGlhRG9jdW1l
bnRTZWN1cml0eU9yaWdpbigpLCByZXF1ZXN0LnRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdp
bigpKTsKLSAgICAgICAgcmV0dXJuICpzdGF0ZTsKLSAgICB9Ci0KLSAgICBzdGF0ZSA9IHN0ZDo6
bWFrZV91bmlxdWU8RnJhbWVBdXRob3JpemF0aW9uU3RhdGU+KHJlcXVlc3QudXNlck1lZGlhRG9j
dW1lbnRTZWN1cml0eU9yaWdpbigpLCByZXF1ZXN0LnRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9y
aWdpbigpKTsKLSAgICByZXR1cm4gKnN0YXRlOwotfQotCiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHko
V2ViUGFnZVByb3h5JiBwYWdlKQogICAgIDogbV9wYWdlKHBhZ2UpCiAgICAgLCBtX3JlamVjdGlv
blRpbWVyKCp0aGlzLCAmVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJl
amVjdGlvblRpbWVyRmlyZWQpCkBAIC0xMTYsOCArNjYsNiBAQCB2b2lkIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByCiAgICAgZm9yIChhdXRvJiByZXF1ZXN0IDogbV9wZW5kaW5n
RGV2aWNlUmVxdWVzdHMudmFsdWVzKCkpCiAgICAgICAgIHJlcXVlc3QtPmludmFsaWRhdGUoKTsK
ICAgICBtX3BlbmRpbmdEZXZpY2VSZXF1ZXN0cy5jbGVhcigpOwotCi0gICAgbV9mcmFtZVN0YXRl
cy5jbGVhcigpOwogfQogCiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OjpzdG9wQ2FwdHVyZSgpCkBAIC0xMzEsOSArNzksOSBAQCB2b2lkIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByCiAgICAgaW52YWxpZGF0ZVBlbmRpbmdSZXF1ZXN0cygpOwog
fQogCi1SZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNyZWF0ZVJlcXVlc3QodWludDY0X3QgdXNlck1lZGlh
SUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxTdHJpbmc+JiYgYXVkaW9EZXZpY2VVSURzLCBWZWN0
b3I8U3RyaW5nPiYmIHZpZGVvRGV2aWNlVUlEcykKK1JlZjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5PiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y3JlYXRl
UmVxdWVzdCh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFN0cmlu
Zz4mJiBhdWRpb0RldmljZVVJRHMsIFZlY3RvcjxTdHJpbmc+JiYgdmlkZW9EZXZpY2VVSURzLCBT
dHJpbmcmJiBkZXZpY2VJREhhc2hTYWx0KQogewotICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNyZWF0ZSgqdGhpcywgdXNlck1lZGlhSUQsIGZyYW1l
SUQsIFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9j
dW1lbnRPcmlnaW4pLCBXVEZNb3ZlKGF1ZGlvRGV2aWNlVUlEcyksIFdURk1vdmUodmlkZW9EZXZp
Y2VVSURzKSk7CisgICAgYXV0byByZXF1ZXN0ID0gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eTo6Y3JlYXRlKCp0aGlzLCB1c2VyTWVkaWFJRCwgZnJhbWVJRCwgV1RGTW92ZSh1c2VyTWVk
aWFEb2N1bWVudE9yaWdpbiksIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIFdURk1v
dmUoYXVkaW9EZXZpY2VVSURzKSwgV1RGTW92ZSh2aWRlb0RldmljZVVJRHMpLCBXVEZNb3ZlKGRl
dmljZUlESGFzaFNhbHQpKTsKICAgICBtX3BlbmRpbmdVc2VyTWVkaWFSZXF1ZXN0cy5hZGQodXNl
ck1lZGlhSUQsIHJlcXVlc3QucHRyKCkpOwogICAgIHJldHVybiByZXF1ZXN0OwogfQpAQCAtMTc5
LDEyICsxMjcsNiBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByCiAg
ICAgaWYgKCFyZXF1ZXN0KQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvJiBmcmFtZVN0YXRl
ID0gc3RhdGVGb3JSZXF1ZXN0KCpyZXF1ZXN0KTsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGRldmlj
ZVVJRCA6IHJlcXVlc3QtPnZpZGVvRGV2aWNlVUlEcygpKQotICAgICAgICBmcmFtZVN0YXRlLnNl
dEhhc1Blcm1pc3Npb25Ub1VzZUNhcHR1cmVEZXZpY2UoZGV2aWNlVUlELCBmYWxzZSk7Ci0gICAg
Zm9yIChjb25zdCBhdXRvJiBkZXZpY2VVSUQgOiByZXF1ZXN0LT5hdWRpb0RldmljZVVJRHMoKSkK
LSAgICAgICAgZnJhbWVTdGF0ZS5zZXRIYXNQZXJtaXNzaW9uVG9Vc2VDYXB0dXJlRGV2aWNlKGRl
dmljZVVJRCwgZmFsc2UpOwotCiAgICAgZGVueVJlcXVlc3QodXNlck1lZGlhSUQsIHJlYXNvbiwg
ZW1wdHlTdHJpbmcoKSk7CiB9CiAKQEAgLTIxMiwxNSArMTU0LDggQEAgdm9pZCBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcgogICAgIGlmICghcmVxdWVzdCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgYXV0byYgZnJhbWVTdGF0ZSA9IHN0YXRlRm9yUmVxdWVzdCgqcmVxdWVzdCk7
Ci0gICAgaWYgKCFhdWRpb0RldmljZVVJRC5pc0VtcHR5KCkpCi0gICAgICAgIGZyYW1lU3RhdGUu
c2V0SGFzUGVybWlzc2lvblRvVXNlQ2FwdHVyZURldmljZShhdWRpb0RldmljZVVJRCwgdHJ1ZSk7
Ci0gICAgaWYgKCF2aWRlb0RldmljZVVJRC5pc0VtcHR5KCkpCi0gICAgICAgIGZyYW1lU3RhdGUu
c2V0SGFzUGVybWlzc2lvblRvVXNlQ2FwdHVyZURldmljZSh2aWRlb0RldmljZVVJRCwgdHJ1ZSk7
Ci0KICAgICBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkud2lsbENyZWF0ZU1l
ZGlhU3RyZWFtKCp0aGlzLCAhYXVkaW9EZXZpY2VVSUQuaXNFbXB0eSgpLCAhdmlkZW9EZXZpY2VV
SUQuaXNFbXB0eSgpKTsKLQotICAgIG1fcGFnZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6VXNlck1lZGlhQWNjZXNzV2FzR3JhbnRlZCh1c2VyTWVkaWFJRCwgYXVkaW9EZXZpY2VV
SUQsIHZpZGVvRGV2aWNlVUlELCBmcmFtZVN0YXRlLmRldmljZUlkZW50aWZpZXJIYXNoU2FsdCgp
KSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OlVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50ZWQodXNlck1lZGlhSUQsIGF1ZGlvRGV2
aWNlVUlELCB2aWRlb0RldmljZVVJRCwgcmVxdWVzdC0+ZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0
KCkpLCBtX3BhZ2UucGFnZUlEKCkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0odXNlck1lZGlh
SUQpOwogICAgIFVOVVNFRF9QQVJBTShhdWRpb0RldmljZVVJRCk7CkBAIC0yNDgsNiArMTgzLDEy
IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHIKIHZvaWQgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNz
aW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGF1ZGlvQ29uc3RyYWludHMsIGNvbnN0IFdlYkNvcmU6
Ok1lZGlhQ29uc3RyYWludHMmIHZpZGVvQ29uc3RyYWludHMpCiB7CiAjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKyAgICBpZiAoIVVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24oKS5j
YXB0dXJlRW5hYmxlZCgpKSB7CisgICAgICAgIG1fcGVuZGluZ1JlamVjdGlvbnMuYXBwZW5kKHVz
ZXJNZWRpYUlEKTsKKyAgICAgICAgc2NoZWR1bGVOZXh0UmVqZWN0aW9uKCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpJ
bnZhbGlkQ29uc3RyYWludHNIYW5kbGVyIGludmFsaWRIYW5kbGVyID0gW3RoaXMsIHVzZXJNZWRp
YUlEXShjb25zdCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KSB7CiAgICAgICAgIGlmICghbV9w
YWdlLmlzVmFsaWQoKSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTI1NSw3ICsxOTYsNyBAQCB2
b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByCiAgICAgICAgIGRlbnlSZXF1
ZXN0KHVzZXJNZWRpYUlELCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVk
aWFBY2Nlc3NEZW5pYWxSZWFzb246OkludmFsaWRDb25zdHJhaW50LCBpbnZhbGlkQ29uc3RyYWlu
dCk7CiAgICAgfTsKIAotICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OlZh
bGlkQ29uc3RyYWludHNIYW5kbGVyIHZhbGlkSGFuZGxlciA9IFt0aGlzLCB1c2VyTWVkaWFJRCwg
ZnJhbWVJRCwgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4gPSB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
bi5jb3B5UmVmKCksIHRvcExldmVsRG9jdW1lbnRPcmlnaW4gPSB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luLmNvcHlSZWYoKV0oVmVjdG9yPFN0cmluZz4mJiBhdWRpb0RldmljZVVJRHMsIFZlY3RvcjxT
dHJpbmc+JiYgdmlkZW9EZXZpY2VVSURzKSBtdXRhYmxlIHsKKyAgICBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpWYWxpZENvbnN0cmFpbnRzSGFuZGxlciB2YWxpZEhhbmRsZXIg
PSBbdGhpcywgdXNlck1lZGlhSUQsIGZyYW1lSUQsIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luID0g
dXNlck1lZGlhRG9jdW1lbnRPcmlnaW4uY29weVJlZigpLCB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
ID0gdG9wTGV2ZWxEb2N1bWVudE9yaWdpbi5jb3B5UmVmKCldKFZlY3RvcjxTdHJpbmc+JiYgYXVk
aW9EZXZpY2VVSURzLCBWZWN0b3I8U3RyaW5nPiYmIHZpZGVvRGV2aWNlVUlEcywgU3RyaW5nJiYg
ZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFtX3BhZ2Uu
aXNWYWxpZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0yNjQsNDQgKzIwNSwxNCBAQCB2
b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByCiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KIAotICAgICAgICBib29sIGF1dGhvcml6ZWRGb3JBdWRpbyA9IGZhbHNl
OwotICAgICAgICBib29sIGF1dGhvcml6ZWRGb3JWaWRlbyA9IGZhbHNlOwotICAgICAgICAKICAg
ICAgICAgYXV0byB1c2VyTWVkaWFPcmlnaW4gPSBBUEk6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUo
dXNlck1lZGlhRG9jdW1lbnRPcmlnaW4uZ2V0KCkpOwogICAgICAgICBhdXRvIHRvcExldmVsT3Jp
Z2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4u
Z2V0KCkpOwotICAgICAgICAKLSAgICAgICAgYXV0byByZXF1ZXN0ID0gY3JlYXRlUmVxdWVzdCh1
c2VyTWVkaWFJRCwgZnJhbWVJRCwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIFdU
Rk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIFdURk1vdmUoYXVkaW9EZXZpY2VVSURzKSwg
V1RGTW92ZSh2aWRlb0RldmljZVVJRHMpKTsKLQotICAgICAgICBhdXRvJiBmcmFtZVN0YXRlID0g
c3RhdGVGb3JSZXF1ZXN0KHJlcXVlc3QuZ2V0KCkpOwotICAgICAgICBmb3IgKGNvbnN0IGF1dG8m
IGRldmljZVVJRCA6IHJlcXVlc3QtPmF1ZGlvRGV2aWNlVUlEcygpKSB7Ci0gICAgICAgICAgICBp
ZiAoZnJhbWVTdGF0ZS5oYXNQZXJtaXNzaW9uVG9Vc2VDYXB0dXJlRGV2aWNlKGRldmljZVVJRCkp
IHsKLSAgICAgICAgICAgICAgICBhdXRob3JpemVkRm9yQXVkaW8gPSB0cnVlOwotICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGZvciAoY29u
c3QgYXV0byYgZGV2aWNlVUlEIDogcmVxdWVzdC0+dmlkZW9EZXZpY2VVSURzKCkpIHsKLSAgICAg
ICAgICAgIGlmIChmcmFtZVN0YXRlLmhhc1Blcm1pc3Npb25Ub1VzZUNhcHR1cmVEZXZpY2UoZGV2
aWNlVUlEKSkgewotICAgICAgICAgICAgICAgIGF1dGhvcml6ZWRGb3JWaWRlbyA9IHRydWU7Ci0g
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAg
ICBpZiAoYXV0aG9yaXplZEZvckF1ZGlvID09ICFyZXF1ZXN0LT5hdWRpb0RldmljZVVJRHMoKS5p
c0VtcHR5KCkgJiYgYXV0aG9yaXplZEZvclZpZGVvID09ICFyZXF1ZXN0LT52aWRlb0RldmljZVVJ
RHMoKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50ZWQo
dXNlck1lZGlhSUQsIGF1dGhvcml6ZWRGb3JBdWRpbyA/IHJlcXVlc3QtPmF1ZGlvRGV2aWNlVUlE
cygpWzBdIDogZW1wdHlTdHJpbmcoKSwgYXV0aG9yaXplZEZvclZpZGVvID8gcmVxdWVzdC0+dmlk
ZW9EZXZpY2VVSURzKClbMF0gOiBlbXB0eVN0cmluZygpKTsKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQorICAgICAgICBhdXRvIHJlcXVlc3QgPSBjcmVhdGVSZXF1ZXN0KHVzZXJNZWRp
YUlELCBmcmFtZUlELCBXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0
b3BMZXZlbERvY3VtZW50T3JpZ2luKSwgV1RGTW92ZShhdWRpb0RldmljZVVJRHMpLCBXVEZNb3Zl
KHZpZGVvRGV2aWNlVUlEcyksIFdURk1vdmUoZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSk7CiAK
ICAgICAgICAgaWYgKCFtX3BhZ2UudWlDbGllbnQoKS5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdChtX3BhZ2UsICptX3BhZ2UucHJvY2VzcygpLndlYkZyYW1lKGZyYW1l
SUQpLCBXVEZNb3ZlKHVzZXJNZWRpYU9yaWdpbiksIFdURk1vdmUodG9wTGV2ZWxPcmlnaW4pLCBy
ZXF1ZXN0LmdldCgpKSkKICAgICAgICAgICAgIHVzZXJNZWRpYUFjY2Vzc1dhc0RlbmllZCh1c2Vy
TWVkaWFJRCwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNz
RGVuaWFsUmVhc29uOjpVc2VyTWVkaWFEaXNhYmxlZCk7Ci0KICAgICB9OwogCi0gICAgaWYgKCFV
c2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkuY2FwdHVyZUVuYWJsZWQoKSkgewot
ICAgICAgICBtX3BlbmRpbmdSZWplY3Rpb25zLmFwcGVuZCh1c2VyTWVkaWFJRCk7Ci0gICAgICAg
IHNjaGVkdWxlTmV4dFJlamVjdGlvbigpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAg
YXV0byBoYXZlRGV2aWNlU2FsdEhhbmRsZXIgPSBbdGhpcywgdXNlck1lZGlhSUQsIHZhbGlkSGFu
ZGxlciA9IFdURk1vdmUodmFsaWRIYW5kbGVyKSwgaW52YWxpZEhhbmRsZXIgPSBXVEZNb3ZlKGlu
dmFsaWRIYW5kbGVyKSwgYXVkaW9Db25zdHJhaW50cyA9IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHMoYXVkaW9Db25zdHJhaW50cyksIHZpZGVvQ29uc3RyYWludHMgPSBXZWJDb3JlOjpNZWRpYUNv
bnN0cmFpbnRzKHZpZGVvQ29uc3RyYWludHMpXSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgU3RyaW5n
JiYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0LCBib29sIG9yaWdpbkhhc1BlcnNpc3RlbnRBY2Nl
c3MpIG11dGFibGUgewogCiAgICAgICAgIGF1dG8gcmVxdWVzdCA9IG1fcGVuZGluZ0RldmljZVJl
cXVlc3RzLnRha2UodXNlck1lZGlhSUQpOwpAQCAtMzE0LDEyICsyMjUsOSBAQCB2b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByCiAgICAgICAgIGF1ZGlvQ29uc3RyYWludHMu
ZGV2aWNlSURIYXNoU2FsdCA9IGRldmljZUlkZW50aWZpZXJIYXNoU2FsdDsKICAgICAgICAgdmlk
ZW9Db25zdHJhaW50cy5kZXZpY2VJREhhc2hTYWx0ID0gZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0
OwogCi0gICAgICAgIGF1dG8mIGZyYW1lU3RhdGUgPSBzdGF0ZUZvclJlcXVlc3QocmVxdWVzdC52
YWx1ZSgpLmdldCgpKTsKLSAgICAgICAgZnJhbWVTdGF0ZS5zZXREZXZpY2VJZGVudGlmaWVySGFz
aFNhbHQoV1RGTW92ZShkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpKTsKLSAgICAgICAgCiAgICAg
ICAgIHN5bmNXaXRoV2ViQ29yZVByZWZzKCk7CiAgICAgICAgIAotICAgICAgICBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhX
VEZNb3ZlKHZhbGlkSGFuZGxlciksIFdURk1vdmUoaW52YWxpZEhhbmRsZXIpLCBhdWRpb0NvbnN0
cmFpbnRzLCB2aWRlb0NvbnN0cmFpbnRzKTsKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6c2luZ2xldG9uKCkudmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoV1RGTW92ZSh2YWxp
ZEhhbmRsZXIpLCBXVEZNb3ZlKGludmFsaWRIYW5kbGVyKSwgYXVkaW9Db25zdHJhaW50cywgdmlk
ZW9Db25zdHJhaW50cywgV1RGTW92ZShkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpKTsKICAgICB9
OwogCiAgICAgZ2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8odXNlck1lZGlhSUQsIGZyYW1lSUQs
IFdURk1vdmUoaGF2ZURldmljZVNhbHRIYW5kbGVyKSwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiksIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbikpOwpAQCAtMzU4LDkgKzI2
Niw2IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHIKICAgICAgICAg
aWYgKCFtX3BhZ2UuaXNWYWxpZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGF1
dG8mIGZyYW1lU3RhdGUgPSBzdGF0ZUZvclJlcXVlc3QocmVxdWVzdC52YWx1ZSgpLmdldCgpKTsK
LSAgICAgICAgZnJhbWVTdGF0ZS5zZXREZXZpY2VJZGVudGlmaWVySGFzaFNhbHQoU3RyaW5nKGRl
dmljZUlkZW50aWZpZXJIYXNoU2FsdCkpOwotCiAgICAgICAgIHN5bmNXaXRoV2ViQ29yZVByZWZz
KCk7CiAgICAgICAgIGF1dG8gZGV2aWNlSW5mbyA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnNpbmdsZXRvbigpLmdldE1lZGlhU3RyZWFtRGV2aWNlcygpOwogICAgICAgICBtX3BhZ2UucHJv
Y2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZENvbXBsZXRlTWVkaWFEZXZpY2VFbnVt
ZXJhdGlvbih1c2VyTWVkaWFJRCwgZGV2aWNlSW5mbywgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0
LCBvcmlnaW5IYXNQZXJzaXN0ZW50QWNjZXNzKSwgbV9wYWdlLnBhZ2VJRCgpKTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCShyZXZpc2lvbiAyMTcwNDYpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsMjUgKzM2LDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiAKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIAotY2xhc3MgRnJhbWVBdXRob3JpemF0aW9uU3RhdGUg
ewotcHVibGljOgotICAgIEZyYW1lQXV0aG9yaXphdGlvblN0YXRlKFJlZjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luLCBSZWY8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKTsKLQot
ICAgIGJvb2wgaGFzUGVybWlzc2lvblRvVXNlQ2FwdHVyZURldmljZShjb25zdCBTdHJpbmcmIGRl
dmljZVVJRCk7Ci0gICAgdm9pZCBzZXRIYXNQZXJtaXNzaW9uVG9Vc2VDYXB0dXJlRGV2aWNlKGNv
bnN0IFN0cmluZyYsIGJvb2wpOwotCi0gICAgdm9pZCBlbnN1cmVTZWN1cml0eU9yaWdpbnNBcmVF
cXVhbChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9y
aWdpbiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9y
aWdpbik7Ci0KLSAgICB2b2lkIHNldERldmljZUlkZW50aWZpZXJIYXNoU2FsdChTdHJpbmcmJiBo
YXNoU2FsdCkgeyBtX2RldmljZUlkZW50aWZpZXJIYXNoU2FsdCA9IGhhc2hTYWx0OyB9Ci0gICAg
Y29uc3QgU3RyaW5nJiBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQoKSBjb25zdCB7IHJldHVybiBt
X2RldmljZUlkZW50aWZpZXJIYXNoU2FsdDsgfQotCi1wcml2YXRlOgotICAgIFJlZjxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbj4gbV91c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luOwotICAg
IFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlP
cmlnaW47Ci0gICAgVmVjdG9yPFN0cmluZz4gbV9hdXRob3JpemVkRGV2aWNlVUlEczsKLSAgICBT
dHJpbmcgbV9kZXZpY2VJZGVudGlmaWVySGFzaFNhbHQ7Ci19OwotCiBjbGFzcyBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5Jik7CkBAIC02
OSw5ICs1MCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50ZWQo
dWludDY0X3QsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgdmlk
ZW9EZXZpY2VVSUQpOwogICAgIHZvaWQgdXNlck1lZGlhQWNjZXNzV2FzRGVuaWVkKHVpbnQ2NF90
LCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxS
ZWFzb24pOwogCi0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFJlcXVlc3RUeXBlPgotICAgIEZyYW1l
QXV0aG9yaXphdGlvblN0YXRlJiBzdGF0ZUZvclJlcXVlc3QoUmVxdWVzdFR5cGUmKTsKLQogICAg
IHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQs
IHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVk
aWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVs
RG9jdW1lbnRPcmlnaW4pOwogCiAgICAgdm9pZCBzdG9wQ2FwdHVyZSgpOwpAQCAtODMsNyArNjEs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbmRlZENhcHR1cmVTZXNzaW9uKCk7CiAKIHByaXZhdGU6
Ci0gICAgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZVJlcXVlc3Qo
dWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxTdHJpbmc+JiYgYXVk
aW9EZXZpY2VVSURzLCBWZWN0b3I8U3RyaW5nPiYmIHZpZGVvRGV2aWNlVUlEcyk7CisgICAgUmVm
PFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZVJlcXVlc3QodWludDY0X3Qg
dXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
PiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxTdHJpbmc+JiYgYXVkaW9EZXZpY2VV
SURzLCBWZWN0b3I8U3RyaW5nPiYmIHZpZGVvRGV2aWNlVUlEcywgU3RyaW5nJiYpOwogICAgIHZv
aWQgZGVueVJlcXVlc3QodWludDY0X3QgdXNlck1lZGlhSUQsIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiwgY29uc3QgU3RyaW5nJiBp
bnZhbGlkQ29uc3RyYWludCk7CiAKICAgICB2b2lkIGdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZv
KHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBVc2VyTWVkaWFQZXJtaXNz
aW9uQ2hlY2tQcm94eTo6Q29tcGxldGlvbkhhbmRsZXImJiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CkBAIC05Miw3ICs3MCw2IEBAIHByaXZh
dGU6CiAKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eT4+IG1fcGVuZGluZ1VzZXJNZWRpYVJlcXVlc3RzOwogICAgIEhhc2hNYXA8dWlu
dDY0X3QsIFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eT4+IG1fcGVuZGluZ0Rldmlj
ZVJlcXVlc3RzOwotICAgIEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxGcmFtZUF1
dGhvcml6YXRpb25TdGF0ZT4+IG1fZnJhbWVTdGF0ZXM7CiAKICAgICBXZWJQYWdlUHJveHkmIG1f
cGFnZTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310541</attachid>
            <date>2017-05-18 13:10:43 -0700</date>
            <delta_ts>2017-05-18 18:16:51 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>gum_prompt_patch_8.txt</filename>
            <type>text/plain</type>
            <size>32680</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNzA0NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA1LTE4ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0g
ZG8gbm90IGNhY2hlIGdVTSBwZXJtaXNzaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMjQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5u
IEZhYmxldC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHVwZGF0ZWQgZmFzdC9tZWRpYXN0cmVh
bS9NZWRpYURldmljZXMtZ2V0VXNlck1lZGlhLmh0bWwuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRz
KTogQWRkIHNhbHQgcGFyYW1ldGVyLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaDoKKwogMjAxNy0wNS0xOCAgQW50dGkgS29pdmlzdG8g
IDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgRGVzaWduIG1vZGUgc2hvdWxkIG5vdCBhZmZl
Y3QgVUEgc2hhZG93IHRyZWVzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNw
cAkocmV2aXNpb24gMjE3MDQ2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNiw3
ICsyMDYsNyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1cmVECiAgICAg
ICAgIGl0LnZhbHVlKCk7CiB9CiAKLXZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dmFs
aWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoVmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiB2YWxpZEhh
bmRsZXIsIEludmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiBpbnZhbGlkSGFuZGxlciwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyYgYXVkaW9Db25zdHJhaW50cywgY29uc3QgTWVkaWFDb25zdHJhaW50
cyYgdmlkZW9Db25zdHJhaW50cykKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dmFs
aWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoVmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiB2YWxpZEhh
bmRsZXIsIEludmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiBpbnZhbGlkSGFuZGxlciwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyYgYXVkaW9Db25zdHJhaW50cywgY29uc3QgTWVkaWFDb25zdHJhaW50
cyYgdmlkZW9Db25zdHJhaW50cywgU3RyaW5nJiYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KQog
ewogICAgIHN0cnVjdCBEZXZpY2VJbmZvIHsKICAgICAgICAgdW5zaWduZWQgZml0bmVzc1Njb3Jl
OwpAQCAtMjY1LDcgKzI2NSw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dmFs
aWRhdGUKICAgICAgICAgICAgIHZpZGVvU291cmNlSWRzLnVuY2hlY2tlZEFwcGVuZChXVEZNb3Zl
KGluZm8uaWQpKTsKICAgICB9CiAKLSAgICB2YWxpZEhhbmRsZXIoV1RGTW92ZShhdWRpb1NvdXJj
ZUlkcyksIFdURk1vdmUodmlkZW9Tb3VyY2VJZHMpKTsKKyAgICB2YWxpZEhhbmRsZXIoV1RGTW92
ZShhdWRpb1NvdXJjZUlkcyksIFdURk1vdmUodmlkZW9Tb3VyY2VJZHMpLCBXVEZNb3ZlKGRldmlj
ZUlkZW50aWZpZXJIYXNoU2FsdCkpOwogfQogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnNldFZpc2liaWxpdHkoYm9vbCBpc1Zpc2libGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlci5oCShyZXZpc2lvbiAyMTcwNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTU4LDkgKzU4LDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyJiBzaW5nbGV0b24oKTsKICAgICBzdGF0aWMgdm9pZCBzZXRT
aGFyZWRTdHJlYW1DZW50ZXJPdmVycmlkZShSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyKik7CiAK
LSAgICB1c2luZyBWYWxpZENvbnN0cmFpbnRzSGFuZGxlciA9IFdURjo6RnVuY3Rpb248dm9pZChW
ZWN0b3I8U3RyaW5nPiYmIGF1ZGlvRGV2aWNlVUlEcywgVmVjdG9yPFN0cmluZz4mJiB2aWRlb0Rl
dmljZVVJRHMpPjsKKyAgICB1c2luZyBWYWxpZENvbnN0cmFpbnRzSGFuZGxlciA9IFdURjo6RnVu
Y3Rpb248dm9pZChWZWN0b3I8U3RyaW5nPiYmIGF1ZGlvRGV2aWNlVUlEcywgVmVjdG9yPFN0cmlu
Zz4mJiB2aWRlb0RldmljZVVJRHMsIFN0cmluZyYmKT47CiAgICAgdXNpbmcgSW52YWxpZENvbnN0
cmFpbnRzSGFuZGxlciA9IFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmIGludmFsaWRD
b25zdHJhaW50KT47Ci0gICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRz
KFZhbGlkQ29uc3RyYWludHNIYW5kbGVyJiYsIEludmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyYgYXVkaW9Db25zdHJhaW50cywgY29uc3QgTWVkaWFDb25z
dHJhaW50cyYgdmlkZW9Db25zdHJhaW50cyk7CisgICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUmVx
dWVzdENvbnN0cmFpbnRzKFZhbGlkQ29uc3RyYWludHNIYW5kbGVyJiYsIEludmFsaWRDb25zdHJh
aW50c0hhbmRsZXImJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyYgYXVkaW9Db25zdHJhaW50cywg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyYgdmlkZW9Db25zdHJhaW50cywgU3RyaW5nJiYpOwogCiAg
ICAgdXNpbmcgTmV3TWVkaWFTdHJlYW1IYW5kbGVyID0gc3RkOjpmdW5jdGlvbjx2b2lkKFJlZlB0
cjxNZWRpYVN0cmVhbVByaXZhdGU+JiYpPjsKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlTWVkaWFT
dHJlYW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyJiYsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VJ
RCwgY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBh
dWRpb0NvbnN0cmFpbnRzLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiB2aWRlb0NvbnN0cmFpbnRz
KSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2Vi
cnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlck93ci5jcHAJKHJldmlzaW9uIDIxNzA0NikKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc3LDcgKzc3LDcgQEAgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlck93cjo6flJlYWx0aW1lTQogewogfQogCi12b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXJPd3I6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFZhbGlkQ29uc3RyYWludHNIYW5k
bGVyJiYgdmFsaWRIYW5kbGVyLCBJbnZhbGlkQ29uc3RyYWludHNIYW5kbGVyJiYgaW52YWxpZEhh
bmRsZXIsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGF1ZGlvQ29uc3RyYWludHMsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMmIHZpZGVvQ29uc3RyYWludHMpCit2b2lkIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXJPd3I6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFZhbGlkQ29uc3RyYWludHNI
YW5kbGVyJiYgdmFsaWRIYW5kbGVyLCBJbnZhbGlkQ29uc3RyYWludHNIYW5kbGVyJiYgaW52YWxp
ZEhhbmRsZXIsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGF1ZGlvQ29uc3RyYWludHMsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMmIHZpZGVvQ29uc3RyYWludHMsIFN0cmluZyYmIGRldmljZUlkZW50
aWZpZXJIYXNoU2FsdCkKIHsKICAgICBtX3ZhbGlkQ29uc3RyYWludHNIYW5kbGVyID0gV1RGTW92
ZSh2YWxpZEhhbmRsZXIpOwogICAgIG1faW52YWxpZENvbnN0cmFpbnRzSGFuZGxlciA9IFdURk1v
dmUoaW52YWxpZEhhbmRsZXIpOwpAQCAtOTQsNyArOTQsNyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXJPd3I6OnZhbGlkCiAgICAgaWYgKHZpZGVvQ29uc3RyYWludHMuaXNWYWxpZCkK
ICAgICAgICAgdmlkZW9Tb3VyY2VzLmFwcGVuZChTdHJpbmcoInZpZGVvIikpOwogCi0gICAgbV92
YWxpZENvbnN0cmFpbnRzSGFuZGxlcihXVEZNb3ZlKGF1ZGlvU291cmNlcyksIFdURk1vdmUodmlk
ZW9Tb3VyY2VzKSk7CisgICAgbV92YWxpZENvbnN0cmFpbnRzSGFuZGxlcihXVEZNb3ZlKGF1ZGlv
U291cmNlcyksIFdURk1vdmUodmlkZW9Tb3VyY2VzKSwgV1RGTW92ZShkZXZpY2VJZGVudGlmaWVy
SGFzaFNhbHQpKTsKICAgICBtX3ZhbGlkQ29uc3RyYWludHNIYW5kbGVyID0gbnVsbHB0cjsKICAg
ICBtX2ludmFsaWRDb25zdHJhaW50c0hhbmRsZXIgPSBudWxscHRyOwogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyT3dyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyLmgJKHJldmlz
aW9uIDIxNzA0NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53
ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5oCSh3b3JraW5nIGNvcHkpCkBAIC01
Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyKCk7
CiAgICAgflJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IoKTsKIAotICAgIHZvaWQgdmFsaWRh
dGVSZXF1ZXN0Q29uc3RyYWludHMoVmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiB2YWxpZEhhbmRs
ZXIsIEludmFsaWRDb25zdHJhaW50c0hhbmRsZXImJiBpbnZhbGlkSGFuZGxlciwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyYgYXVkaW9Db25zdHJhaW50cywgY29uc3QgTWVkaWFDb25zdHJhaW50cyYg
dmlkZW9Db25zdHJhaW50cykgZmluYWw7CisgICAgdm9pZCB2YWxpZGF0ZVJlcXVlc3RDb25zdHJh
aW50cyhWYWxpZENvbnN0cmFpbnRzSGFuZGxlciYmIHZhbGlkSGFuZGxlciwgSW52YWxpZENvbnN0
cmFpbnRzSGFuZGxlciYmIGludmFsaWRIYW5kbGVyLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBh
dWRpb0NvbnN0cmFpbnRzLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiB2aWRlb0NvbnN0cmFpbnRz
LCBTdHJpbmcmJikgZmluYWw7CiAKICAgICB2b2lkIGNyZWF0ZU1lZGlhU3RyZWFtKE5ld01lZGlh
U3RyZWFtSGFuZGxlciYmLCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlSUQsIGNvbnN0IFN0cmlu
ZyYgdmlkZW9EZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogdmlkZW9Db25zdHJhaW50
cywgY29uc3QgTWVkaWFDb25zdHJhaW50cyogYXVkaW9Db25zdHJhaW50cykgZmluYWw7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNzA0NikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDE3LTA1LTE4ICBFcmljIENhcmxz
b24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0gZG8g
bm90IGNhY2hlIGdVTSBwZXJtaXNzaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMjQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZh
YmxldC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5OjppbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3RzKToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNyZWF0ZVJlcXVl
c3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6dXNlck1lZGlhQWNjZXNzV2FzRGVuaWVkKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50
ZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAgIChXZWJL
aXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjplbnVtZXJhdGVNZWRp
YURldmljZXNGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lQXV0aG9yaXphdGlvblN0
YXRlOjpGcmFtZUF1dGhvcml6YXRpb25TdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OkZyYW1lQXV0aG9yaXphdGlvblN0YXRlOjpoYXNQZXJtaXNzaW9uVG9Vc2VDYXB0dXJlRGV2aWNl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6RnJhbWVBdXRob3JpemF0aW9uU3RhdGU6OnNl
dEhhc1Blcm1pc3Npb25Ub1VzZUNhcHR1cmVEZXZpY2UpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpGcmFtZUF1dGhvcml6YXRpb25TdGF0ZTo6ZW5zdXJlU2VjdXJpdHlPcmlnaW5zQXJlRXF1
YWwpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6c3RhdGVGb3JSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAg
KFdlYktpdDo6RnJhbWVBdXRob3JpemF0aW9uU3RhdGU6OnNldERldmljZUlkZW50aWZpZXJIYXNo
U2FsdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OkZyYW1lQXV0aG9yaXphdGlvblN0YXRl
OjpkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eTo6ZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KToKKwogMjAxNy0wNS0xOCAgQ2xhdWRpbyBT
YWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXUEVdIFVucmV2aWV3
ZWQgYnVpbGQgZml4CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAJ
KHJldmlzaW9uIDIxNzA0NikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDU2
ICs0MCw2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotRnJhbWVBdXRob3JpemF0aW9uU3RhdGU6OkZyYW1lQXV0aG9yaXphdGlvblN0YXRlKFJlZjxT
ZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luLCBSZWY8U2Vj
dXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKQotICAgIDogbV91
c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luKFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRT
ZWN1cml0eU9yaWdpbikpCi0gICAgLCBtX3RvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbihX
VEZNb3ZlKHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbikpCi17Ci19Ci0KLWJvb2wgRnJh
bWVBdXRob3JpemF0aW9uU3RhdGU6Omhhc1Blcm1pc3Npb25Ub1VzZUNhcHR1cmVEZXZpY2UoY29u
c3QgU3RyaW5nJiBkZXZpY2VVSUQpCi17Ci0gICAgcmV0dXJuIG1fYXV0aG9yaXplZERldmljZVVJ
RHMuZmluZChkZXZpY2VVSUQpICE9IG5vdEZvdW5kOwotfQotCi12b2lkIEZyYW1lQXV0aG9yaXph
dGlvblN0YXRlOjpzZXRIYXNQZXJtaXNzaW9uVG9Vc2VDYXB0dXJlRGV2aWNlKGNvbnN0IFN0cmlu
ZyYgZGV2aWNlVUlELCBib29sIGhhc1Blcm1pc3Npb24pCi17Ci0gICAgaWYgKGRldmljZVVJRC5p
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHNpemVfdCBpbmRleCA9IG1fYXV0aG9y
aXplZERldmljZVVJRHMuZmluZChkZXZpY2VVSUQpOwotICAgIGlmIChoYXNQZXJtaXNzaW9uID09
IChpbmRleCAhPSBub3RGb3VuZCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChoYXNQZXJt
aXNzaW9uKQotICAgICAgICBtX2F1dGhvcml6ZWREZXZpY2VVSURzLmFwcGVuZChkZXZpY2VVSUQp
OwotICAgIGVsc2UKLSAgICAgICAgbV9hdXRob3JpemVkRGV2aWNlVUlEcy5yZW1vdmUoaW5kZXgp
OwotfQotCi12b2lkIEZyYW1lQXV0aG9yaXphdGlvblN0YXRlOjplbnN1cmVTZWN1cml0eU9yaWdp
bnNBcmVFcXVhbChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRTZWN1
cml0eU9yaWdpbiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRTZWN1
cml0eU9yaWdpbikKLXsKLSAgICBpZiAobV91c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2lu
LT5lcXVhbCgmdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbikgJiYgbV90b3BMZXZlbERv
Y3VtZW50U2VjdXJpdHlPcmlnaW4tPmVxdWFsKCZ0b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmln
aW4pKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3VzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlP
cmlnaW4gPSB1c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luOwotICAgIG1fdG9wTGV2ZWxE
b2N1bWVudFNlY3VyaXR5T3JpZ2luID0gdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luOwot
ICAgIG1fYXV0aG9yaXplZERldmljZVVJRHMuY2xlYXIoKTsKLSAgICBtX2RldmljZUlkZW50aWZp
ZXJIYXNoU2FsdCA9IGVtcHR5U3RyaW5nKCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBSZXF1
ZXN0VHlwZT4KLUZyYW1lQXV0aG9yaXphdGlvblN0YXRlJiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6c3RhdGVGb3JSZXF1ZXN0KFJlcXVlc3RUeXBlJiByZXF1ZXN0KQot
ewotICAgIGF1dG8mIHN0YXRlID0gbV9mcmFtZVN0YXRlcy5hZGQocmVxdWVzdC5mcmFtZUlEKCks
IG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKLSAgICBpZiAoc3RhdGUpIHsKLSAgICAgICAgc3Rh
dGUtPmVuc3VyZVNlY3VyaXR5T3JpZ2luc0FyZUVxdWFsKHJlcXVlc3QudXNlck1lZGlhRG9jdW1l
bnRTZWN1cml0eU9yaWdpbigpLCByZXF1ZXN0LnRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdp
bigpKTsKLSAgICAgICAgcmV0dXJuICpzdGF0ZTsKLSAgICB9Ci0KLSAgICBzdGF0ZSA9IHN0ZDo6
bWFrZV91bmlxdWU8RnJhbWVBdXRob3JpemF0aW9uU3RhdGU+KHJlcXVlc3QudXNlck1lZGlhRG9j
dW1lbnRTZWN1cml0eU9yaWdpbigpLCByZXF1ZXN0LnRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9y
aWdpbigpKTsKLSAgICByZXR1cm4gKnN0YXRlOwotfQotCiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHko
V2ViUGFnZVByb3h5JiBwYWdlKQogICAgIDogbV9wYWdlKHBhZ2UpCiAgICAgLCBtX3JlamVjdGlv
blRpbWVyKCp0aGlzLCAmVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJl
amVjdGlvblRpbWVyRmlyZWQpCkBAIC0xMTYsOCArNjYsNiBAQCB2b2lkIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByCiAgICAgZm9yIChhdXRvJiByZXF1ZXN0IDogbV9wZW5kaW5n
RGV2aWNlUmVxdWVzdHMudmFsdWVzKCkpCiAgICAgICAgIHJlcXVlc3QtPmludmFsaWRhdGUoKTsK
ICAgICBtX3BlbmRpbmdEZXZpY2VSZXF1ZXN0cy5jbGVhcigpOwotCi0gICAgbV9mcmFtZVN0YXRl
cy5jbGVhcigpOwogfQogCiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OjpzdG9wQ2FwdHVyZSgpCkBAIC0xMzEsOSArNzksOSBAQCB2b2lkIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByCiAgICAgaW52YWxpZGF0ZVBlbmRpbmdSZXF1ZXN0cygpOwog
fQogCi1SZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNyZWF0ZVJlcXVlc3QodWludDY0X3QgdXNlck1lZGlh
SUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxTdHJpbmc+JiYgYXVkaW9EZXZpY2VVSURzLCBWZWN0
b3I8U3RyaW5nPiYmIHZpZGVvRGV2aWNlVUlEcykKK1JlZjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5PiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y3JlYXRl
UmVxdWVzdCh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFN0cmlu
Zz4mJiBhdWRpb0RldmljZVVJRHMsIFZlY3RvcjxTdHJpbmc+JiYgdmlkZW9EZXZpY2VVSURzLCBT
dHJpbmcmJiBkZXZpY2VJREhhc2hTYWx0KQogewotICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNyZWF0ZSgqdGhpcywgdXNlck1lZGlhSUQsIGZyYW1l
SUQsIFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9j
dW1lbnRPcmlnaW4pLCBXVEZNb3ZlKGF1ZGlvRGV2aWNlVUlEcyksIFdURk1vdmUodmlkZW9EZXZp
Y2VVSURzKSk7CisgICAgYXV0byByZXF1ZXN0ID0gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eTo6Y3JlYXRlKCp0aGlzLCB1c2VyTWVkaWFJRCwgZnJhbWVJRCwgV1RGTW92ZSh1c2VyTWVk
aWFEb2N1bWVudE9yaWdpbiksIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIFdURk1v
dmUoYXVkaW9EZXZpY2VVSURzKSwgV1RGTW92ZSh2aWRlb0RldmljZVVJRHMpLCBXVEZNb3ZlKGRl
dmljZUlESGFzaFNhbHQpKTsKICAgICBtX3BlbmRpbmdVc2VyTWVkaWFSZXF1ZXN0cy5hZGQodXNl
ck1lZGlhSUQsIHJlcXVlc3QucHRyKCkpOwogICAgIHJldHVybiByZXF1ZXN0OwogfQpAQCAtMTc5
LDEyICsxMjcsNiBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByCiAg
ICAgaWYgKCFyZXF1ZXN0KQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvJiBmcmFtZVN0YXRl
ID0gc3RhdGVGb3JSZXF1ZXN0KCpyZXF1ZXN0KTsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGRldmlj
ZVVJRCA6IHJlcXVlc3QtPnZpZGVvRGV2aWNlVUlEcygpKQotICAgICAgICBmcmFtZVN0YXRlLnNl
dEhhc1Blcm1pc3Npb25Ub1VzZUNhcHR1cmVEZXZpY2UoZGV2aWNlVUlELCBmYWxzZSk7Ci0gICAg
Zm9yIChjb25zdCBhdXRvJiBkZXZpY2VVSUQgOiByZXF1ZXN0LT5hdWRpb0RldmljZVVJRHMoKSkK
LSAgICAgICAgZnJhbWVTdGF0ZS5zZXRIYXNQZXJtaXNzaW9uVG9Vc2VDYXB0dXJlRGV2aWNlKGRl
dmljZVVJRCwgZmFsc2UpOwotCiAgICAgZGVueVJlcXVlc3QodXNlck1lZGlhSUQsIHJlYXNvbiwg
ZW1wdHlTdHJpbmcoKSk7CiB9CiAKQEAgLTIxMiwxNSArMTU0LDggQEAgdm9pZCBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcgogICAgIGlmICghcmVxdWVzdCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgYXV0byYgZnJhbWVTdGF0ZSA9IHN0YXRlRm9yUmVxdWVzdCgqcmVxdWVzdCk7
Ci0gICAgaWYgKCFhdWRpb0RldmljZVVJRC5pc0VtcHR5KCkpCi0gICAgICAgIGZyYW1lU3RhdGUu
c2V0SGFzUGVybWlzc2lvblRvVXNlQ2FwdHVyZURldmljZShhdWRpb0RldmljZVVJRCwgdHJ1ZSk7
Ci0gICAgaWYgKCF2aWRlb0RldmljZVVJRC5pc0VtcHR5KCkpCi0gICAgICAgIGZyYW1lU3RhdGUu
c2V0SGFzUGVybWlzc2lvblRvVXNlQ2FwdHVyZURldmljZSh2aWRlb0RldmljZVVJRCwgdHJ1ZSk7
Ci0KICAgICBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkud2lsbENyZWF0ZU1l
ZGlhU3RyZWFtKCp0aGlzLCAhYXVkaW9EZXZpY2VVSUQuaXNFbXB0eSgpLCAhdmlkZW9EZXZpY2VV
SUQuaXNFbXB0eSgpKTsKLQotICAgIG1fcGFnZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6VXNlck1lZGlhQWNjZXNzV2FzR3JhbnRlZCh1c2VyTWVkaWFJRCwgYXVkaW9EZXZpY2VV
SUQsIHZpZGVvRGV2aWNlVUlELCBmcmFtZVN0YXRlLmRldmljZUlkZW50aWZpZXJIYXNoU2FsdCgp
KSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OlVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50ZWQodXNlck1lZGlhSUQsIGF1ZGlvRGV2
aWNlVUlELCB2aWRlb0RldmljZVVJRCwgcmVxdWVzdC0+ZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0
KCkpLCBtX3BhZ2UucGFnZUlEKCkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0odXNlck1lZGlh
SUQpOwogICAgIFVOVVNFRF9QQVJBTShhdWRpb0RldmljZVVJRCk7CkBAIC0yNDgsNiArMTgzLDEy
IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHIKIHZvaWQgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNz
aW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGF1ZGlvQ29uc3RyYWludHMsIGNvbnN0IFdlYkNvcmU6
Ok1lZGlhQ29uc3RyYWludHMmIHZpZGVvQ29uc3RyYWludHMpCiB7CiAjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKyAgICBpZiAoIVVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24oKS5j
YXB0dXJlRW5hYmxlZCgpKSB7CisgICAgICAgIG1fcGVuZGluZ1JlamVjdGlvbnMuYXBwZW5kKHVz
ZXJNZWRpYUlEKTsKKyAgICAgICAgc2NoZWR1bGVOZXh0UmVqZWN0aW9uKCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpJ
bnZhbGlkQ29uc3RyYWludHNIYW5kbGVyIGludmFsaWRIYW5kbGVyID0gW3RoaXMsIHVzZXJNZWRp
YUlEXShjb25zdCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KSB7CiAgICAgICAgIGlmICghbV9w
YWdlLmlzVmFsaWQoKSkKICAgICAgICAgICAgIHJldHVybjsKQEAgLTI1NSw3ICsxOTYsNyBAQCB2
b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByCiAgICAgICAgIGRlbnlSZXF1
ZXN0KHVzZXJNZWRpYUlELCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVk
aWFBY2Nlc3NEZW5pYWxSZWFzb246OkludmFsaWRDb25zdHJhaW50LCBpbnZhbGlkQ29uc3RyYWlu
dCk7CiAgICAgfTsKIAotICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OlZh
bGlkQ29uc3RyYWludHNIYW5kbGVyIHZhbGlkSGFuZGxlciA9IFt0aGlzLCB1c2VyTWVkaWFJRCwg
ZnJhbWVJRCwgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4gPSB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
bi5jb3B5UmVmKCksIHRvcExldmVsRG9jdW1lbnRPcmlnaW4gPSB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luLmNvcHlSZWYoKV0oVmVjdG9yPFN0cmluZz4mJiBhdWRpb0RldmljZVVJRHMsIFZlY3RvcjxT
dHJpbmc+JiYgdmlkZW9EZXZpY2VVSURzKSBtdXRhYmxlIHsKKyAgICBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpWYWxpZENvbnN0cmFpbnRzSGFuZGxlciB2YWxpZEhhbmRsZXIg
PSBbdGhpcywgdXNlck1lZGlhSUQsIGZyYW1lSUQsIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luID0g
dXNlck1lZGlhRG9jdW1lbnRPcmlnaW4uY29weVJlZigpLCB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
ID0gdG9wTGV2ZWxEb2N1bWVudE9yaWdpbi5jb3B5UmVmKCldKFZlY3RvcjxTdHJpbmc+JiYgYXVk
aW9EZXZpY2VVSURzLCBWZWN0b3I8U3RyaW5nPiYmIHZpZGVvRGV2aWNlVUlEcywgU3RyaW5nJiYg
ZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFtX3BhZ2Uu
aXNWYWxpZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0yNjQsNDQgKzIwNSwxNCBAQCB2
b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByCiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KIAotICAgICAgICBib29sIGF1dGhvcml6ZWRGb3JBdWRpbyA9IGZhbHNl
OwotICAgICAgICBib29sIGF1dGhvcml6ZWRGb3JWaWRlbyA9IGZhbHNlOwotICAgICAgICAKICAg
ICAgICAgYXV0byB1c2VyTWVkaWFPcmlnaW4gPSBBUEk6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUo
dXNlck1lZGlhRG9jdW1lbnRPcmlnaW4uZ2V0KCkpOwogICAgICAgICBhdXRvIHRvcExldmVsT3Jp
Z2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4u
Z2V0KCkpOwotICAgICAgICAKLSAgICAgICAgYXV0byByZXF1ZXN0ID0gY3JlYXRlUmVxdWVzdCh1
c2VyTWVkaWFJRCwgZnJhbWVJRCwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIFdU
Rk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIFdURk1vdmUoYXVkaW9EZXZpY2VVSURzKSwg
V1RGTW92ZSh2aWRlb0RldmljZVVJRHMpKTsKLQotICAgICAgICBhdXRvJiBmcmFtZVN0YXRlID0g
c3RhdGVGb3JSZXF1ZXN0KHJlcXVlc3QuZ2V0KCkpOwotICAgICAgICBmb3IgKGNvbnN0IGF1dG8m
IGRldmljZVVJRCA6IHJlcXVlc3QtPmF1ZGlvRGV2aWNlVUlEcygpKSB7Ci0gICAgICAgICAgICBp
ZiAoZnJhbWVTdGF0ZS5oYXNQZXJtaXNzaW9uVG9Vc2VDYXB0dXJlRGV2aWNlKGRldmljZVVJRCkp
IHsKLSAgICAgICAgICAgICAgICBhdXRob3JpemVkRm9yQXVkaW8gPSB0cnVlOwotICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGZvciAoY29u
c3QgYXV0byYgZGV2aWNlVUlEIDogcmVxdWVzdC0+dmlkZW9EZXZpY2VVSURzKCkpIHsKLSAgICAg
ICAgICAgIGlmIChmcmFtZVN0YXRlLmhhc1Blcm1pc3Npb25Ub1VzZUNhcHR1cmVEZXZpY2UoZGV2
aWNlVUlEKSkgewotICAgICAgICAgICAgICAgIGF1dGhvcml6ZWRGb3JWaWRlbyA9IHRydWU7Ci0g
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAg
ICBpZiAoYXV0aG9yaXplZEZvckF1ZGlvID09ICFyZXF1ZXN0LT5hdWRpb0RldmljZVVJRHMoKS5p
c0VtcHR5KCkgJiYgYXV0aG9yaXplZEZvclZpZGVvID09ICFyZXF1ZXN0LT52aWRlb0RldmljZVVJ
RHMoKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50ZWQo
dXNlck1lZGlhSUQsIGF1dGhvcml6ZWRGb3JBdWRpbyA/IHJlcXVlc3QtPmF1ZGlvRGV2aWNlVUlE
cygpWzBdIDogZW1wdHlTdHJpbmcoKSwgYXV0aG9yaXplZEZvclZpZGVvID8gcmVxdWVzdC0+dmlk
ZW9EZXZpY2VVSURzKClbMF0gOiBlbXB0eVN0cmluZygpKTsKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQorICAgICAgICBhdXRvIHJlcXVlc3QgPSBjcmVhdGVSZXF1ZXN0KHVzZXJNZWRp
YUlELCBmcmFtZUlELCBXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0
b3BMZXZlbERvY3VtZW50T3JpZ2luKSwgV1RGTW92ZShhdWRpb0RldmljZVVJRHMpLCBXVEZNb3Zl
KHZpZGVvRGV2aWNlVUlEcyksIFdURk1vdmUoZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSk7CiAK
ICAgICAgICAgaWYgKCFtX3BhZ2UudWlDbGllbnQoKS5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdChtX3BhZ2UsICptX3BhZ2UucHJvY2VzcygpLndlYkZyYW1lKGZyYW1l
SUQpLCBXVEZNb3ZlKHVzZXJNZWRpYU9yaWdpbiksIFdURk1vdmUodG9wTGV2ZWxPcmlnaW4pLCBy
ZXF1ZXN0LmdldCgpKSkKICAgICAgICAgICAgIHVzZXJNZWRpYUFjY2Vzc1dhc0RlbmllZCh1c2Vy
TWVkaWFJRCwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNz
RGVuaWFsUmVhc29uOjpVc2VyTWVkaWFEaXNhYmxlZCk7Ci0KICAgICB9OwogCi0gICAgaWYgKCFV
c2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkuY2FwdHVyZUVuYWJsZWQoKSkgewot
ICAgICAgICBtX3BlbmRpbmdSZWplY3Rpb25zLmFwcGVuZCh1c2VyTWVkaWFJRCk7Ci0gICAgICAg
IHNjaGVkdWxlTmV4dFJlamVjdGlvbigpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAg
YXV0byBoYXZlRGV2aWNlU2FsdEhhbmRsZXIgPSBbdGhpcywgdXNlck1lZGlhSUQsIHZhbGlkSGFu
ZGxlciA9IFdURk1vdmUodmFsaWRIYW5kbGVyKSwgaW52YWxpZEhhbmRsZXIgPSBXVEZNb3ZlKGlu
dmFsaWRIYW5kbGVyKSwgYXVkaW9Db25zdHJhaW50cyA9IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHMoYXVkaW9Db25zdHJhaW50cyksIHZpZGVvQ29uc3RyYWludHMgPSBXZWJDb3JlOjpNZWRpYUNv
bnN0cmFpbnRzKHZpZGVvQ29uc3RyYWludHMpXSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgU3RyaW5n
JiYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0LCBib29sIG9yaWdpbkhhc1BlcnNpc3RlbnRBY2Nl
c3MpIG11dGFibGUgewogCiAgICAgICAgIGF1dG8gcmVxdWVzdCA9IG1fcGVuZGluZ0RldmljZVJl
cXVlc3RzLnRha2UodXNlck1lZGlhSUQpOwpAQCAtMzE0LDEyICsyMjUsOSBAQCB2b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByCiAgICAgICAgIGF1ZGlvQ29uc3RyYWludHMu
ZGV2aWNlSURIYXNoU2FsdCA9IGRldmljZUlkZW50aWZpZXJIYXNoU2FsdDsKICAgICAgICAgdmlk
ZW9Db25zdHJhaW50cy5kZXZpY2VJREhhc2hTYWx0ID0gZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0
OwogCi0gICAgICAgIGF1dG8mIGZyYW1lU3RhdGUgPSBzdGF0ZUZvclJlcXVlc3QocmVxdWVzdC52
YWx1ZSgpLmdldCgpKTsKLSAgICAgICAgZnJhbWVTdGF0ZS5zZXREZXZpY2VJZGVudGlmaWVySGFz
aFNhbHQoV1RGTW92ZShkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpKTsKLSAgICAgICAgCiAgICAg
ICAgIHN5bmNXaXRoV2ViQ29yZVByZWZzKCk7CiAgICAgICAgIAotICAgICAgICBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhX
VEZNb3ZlKHZhbGlkSGFuZGxlciksIFdURk1vdmUoaW52YWxpZEhhbmRsZXIpLCBhdWRpb0NvbnN0
cmFpbnRzLCB2aWRlb0NvbnN0cmFpbnRzKTsKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6c2luZ2xldG9uKCkudmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoV1RGTW92ZSh2YWxp
ZEhhbmRsZXIpLCBXVEZNb3ZlKGludmFsaWRIYW5kbGVyKSwgYXVkaW9Db25zdHJhaW50cywgdmlk
ZW9Db25zdHJhaW50cywgV1RGTW92ZShkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpKTsKICAgICB9
OwogCiAgICAgZ2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8odXNlck1lZGlhSUQsIGZyYW1lSUQs
IFdURk1vdmUoaGF2ZURldmljZVNhbHRIYW5kbGVyKSwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiksIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbikpOwpAQCAtMzU4LDkgKzI2
Niw2IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHIKICAgICAgICAg
aWYgKCFtX3BhZ2UuaXNWYWxpZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGF1
dG8mIGZyYW1lU3RhdGUgPSBzdGF0ZUZvclJlcXVlc3QocmVxdWVzdC52YWx1ZSgpLmdldCgpKTsK
LSAgICAgICAgZnJhbWVTdGF0ZS5zZXREZXZpY2VJZGVudGlmaWVySGFzaFNhbHQoU3RyaW5nKGRl
dmljZUlkZW50aWZpZXJIYXNoU2FsdCkpOwotCiAgICAgICAgIHN5bmNXaXRoV2ViQ29yZVByZWZz
KCk7CiAgICAgICAgIGF1dG8gZGV2aWNlSW5mbyA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnNpbmdsZXRvbigpLmdldE1lZGlhU3RyZWFtRGV2aWNlcygpOwogICAgICAgICBtX3BhZ2UucHJv
Y2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZENvbXBsZXRlTWVkaWFEZXZpY2VFbnVt
ZXJhdGlvbih1c2VyTWVkaWFJRCwgZGV2aWNlSW5mbywgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0
LCBvcmlnaW5IYXNQZXJzaXN0ZW50QWNjZXNzKSwgbV9wYWdlLnBhZ2VJRCgpKTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCShyZXZpc2lvbiAyMTcwNDYpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsMjUgKzM2LDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiAKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIAotY2xhc3MgRnJhbWVBdXRob3JpemF0aW9uU3RhdGUg
ewotcHVibGljOgotICAgIEZyYW1lQXV0aG9yaXphdGlvblN0YXRlKFJlZjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luLCBSZWY8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKTsKLQot
ICAgIGJvb2wgaGFzUGVybWlzc2lvblRvVXNlQ2FwdHVyZURldmljZShjb25zdCBTdHJpbmcmIGRl
dmljZVVJRCk7Ci0gICAgdm9pZCBzZXRIYXNQZXJtaXNzaW9uVG9Vc2VDYXB0dXJlRGV2aWNlKGNv
bnN0IFN0cmluZyYsIGJvb2wpOwotCi0gICAgdm9pZCBlbnN1cmVTZWN1cml0eU9yaWdpbnNBcmVF
cXVhbChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9y
aWdpbiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9y
aWdpbik7Ci0KLSAgICB2b2lkIHNldERldmljZUlkZW50aWZpZXJIYXNoU2FsdChTdHJpbmcmJiBo
YXNoU2FsdCkgeyBtX2RldmljZUlkZW50aWZpZXJIYXNoU2FsdCA9IGhhc2hTYWx0OyB9Ci0gICAg
Y29uc3QgU3RyaW5nJiBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQoKSBjb25zdCB7IHJldHVybiBt
X2RldmljZUlkZW50aWZpZXJIYXNoU2FsdDsgfQotCi1wcml2YXRlOgotICAgIFJlZjxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbj4gbV91c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luOwotICAg
IFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlP
cmlnaW47Ci0gICAgVmVjdG9yPFN0cmluZz4gbV9hdXRob3JpemVkRGV2aWNlVUlEczsKLSAgICBT
dHJpbmcgbV9kZXZpY2VJZGVudGlmaWVySGFzaFNhbHQ7Ci19OwotCiBjbGFzcyBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5Jik7CkBAIC02
OSw5ICs1MCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50ZWQo
dWludDY0X3QsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgdmlk
ZW9EZXZpY2VVSUQpOwogICAgIHZvaWQgdXNlck1lZGlhQWNjZXNzV2FzRGVuaWVkKHVpbnQ2NF90
LCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxS
ZWFzb24pOwogCi0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFJlcXVlc3RUeXBlPgotICAgIEZyYW1l
QXV0aG9yaXphdGlvblN0YXRlJiBzdGF0ZUZvclJlcXVlc3QoUmVxdWVzdFR5cGUmKTsKLQogICAg
IHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQs
IHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVk
aWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVs
RG9jdW1lbnRPcmlnaW4pOwogCiAgICAgdm9pZCBzdG9wQ2FwdHVyZSgpOwpAQCAtODMsNyArNjEs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbmRlZENhcHR1cmVTZXNzaW9uKCk7CiAKIHByaXZhdGU6
Ci0gICAgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZVJlcXVlc3Qo
dWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxTdHJpbmc+JiYgYXVk
aW9EZXZpY2VVSURzLCBWZWN0b3I8U3RyaW5nPiYmIHZpZGVvRGV2aWNlVUlEcyk7CisgICAgUmVm
PFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZVJlcXVlc3QodWludDY0X3Qg
dXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
PiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxTdHJpbmc+JiYgYXVkaW9EZXZpY2VV
SURzLCBWZWN0b3I8U3RyaW5nPiYmIHZpZGVvRGV2aWNlVUlEcywgU3RyaW5nJiYpOwogICAgIHZv
aWQgZGVueVJlcXVlc3QodWludDY0X3QgdXNlck1lZGlhSUQsIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiwgY29uc3QgU3RyaW5nJiBp
bnZhbGlkQ29uc3RyYWludCk7CiAKICAgICB2b2lkIGdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZv
KHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBVc2VyTWVkaWFQZXJtaXNz
aW9uQ2hlY2tQcm94eTo6Q29tcGxldGlvbkhhbmRsZXImJiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CkBAIC05Miw3ICs3MCw2IEBAIHByaXZh
dGU6CiAKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eT4+IG1fcGVuZGluZ1VzZXJNZWRpYVJlcXVlc3RzOwogICAgIEhhc2hNYXA8dWlu
dDY0X3QsIFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eT4+IG1fcGVuZGluZ0Rldmlj
ZVJlcXVlc3RzOwotICAgIEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxGcmFtZUF1
dGhvcml6YXRpb25TdGF0ZT4+IG1fZnJhbWVTdGF0ZXM7CiAKICAgICBXZWJQYWdlUHJveHkmIG1f
cGFnZTsKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAkocmV2aXNpb24gMjE3MDQ2KQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlhSUQsIHVp
bnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9j
dW1lbnRPcmlnaW4sIFZlY3RvcjxTdHJpbmc+JiYgYXVkaW9EZXZpY2VVSURzLCBWZWN0b3I8U3Ry
aW5nPiYmIHZpZGVvRGV2aWNlVUlEcykKK1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6
OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBm
cmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luLCBWZWN0b3I8U3RyaW5nPiYmIGF1ZGlvRGV2aWNlVUlEcywgVmVjdG9yPFN0cmluZz4mJiB2
aWRlb0RldmljZVVJRHMsIFN0cmluZyYmIGRldmljZUlESGFzaFNhbHQpCiAgICAgOiBtX21hbmFn
ZXIoJm1hbmFnZXIpCiAgICAgLCBtX3VzZXJNZWRpYUlEKHVzZXJNZWRpYUlEKQogICAgICwgbV9m
cmFtZUlEKGZyYW1lSUQpCkBAIC0zOCw2ICszOCw3IEBAIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHk6OlVzZXJNZWQKICAgICAsIG1fdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2lu
KFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbikpCiAgICAgLCBtX3ZpZGVvRGV2aWNlVUlE
cyhXVEZNb3ZlKHZpZGVvRGV2aWNlVUlEcykpCiAgICAgLCBtX2F1ZGlvRGV2aWNlVUlEcyhXVEZN
b3ZlKGF1ZGlvRGV2aWNlVUlEcykpCisgICAgLCBtX2RldmljZUlkZW50aWZpZXJIYXNoU2FsdChX
VEZNb3ZlKGRldmljZUlESGFzaFNhbHQpKQogewogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmgJKHJldmlzaW9uIDIxNzA0NikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDkgKzMzLDkg
QEAgY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUAogCiBjbGFzcyBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6
Ok9iamVjdDo6VHlwZTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q+IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZShVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNl
ck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4m
JiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYm
IHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxTdHJpbmc+JiYgdmlkZW9EZXZpY2VVSURz
LCBWZWN0b3I8U3RyaW5nPiYmIGF1ZGlvRGV2aWNlVUlEcykKKyAgICBzdGF0aWMgUmVmPFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZShVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4sIFZlY3RvcjxTdHJpbmc+JiYgdmlkZW9EZXZpY2VVSURzLCBWZWN0b3I8U3RyaW5nPiYm
IGF1ZGlvRGV2aWNlVUlEcywgU3RyaW5nJiYgZGV2aWNlSURIYXNoU2FsdCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHko
bWFuYWdlciwgdXNlck1lZGlhSUQsIGZyYW1lSUQsIFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHZpZGVvRGV2
aWNlVUlEcyksIFdURk1vdmUoYXVkaW9EZXZpY2VVSURzKSkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KG1hbmFnZXIsIHVzZXJN
ZWRpYUlELCBmcmFtZUlELCBXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgV1RGTW92
ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh2aWRlb0RldmljZVVJRHMpLCBXVEZN
b3ZlKGF1ZGlvRGV2aWNlVUlEcyksIFdURk1vdmUoZGV2aWNlSURIYXNoU2FsdCkpKTsKICAgICB9
CiAKICAgICB2b2lkIGFsbG93KGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0
cmluZyYgYXVkaW9EZXZpY2VVSUQpOwpAQCAtNTUsOCArNTUsMTAgQEAgcHVibGljOgogICAgIFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkg
eyByZXR1cm4gbV91c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luLmdldCgpOyB9CiAgICAg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbigp
IHsgcmV0dXJuIG1fdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luLmdldCgpOyB9CiAKKyAg
ICBjb25zdCBTdHJpbmcmIGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCgpIGNvbnN0IHsgcmV0dXJu
IG1fZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0OyB9CisKIHByaXZhdGU6Ci0gICAgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eSYsIHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8U3RyaW5n
PiYmIHZpZGVvRGV2aWNlVUlEcywgVmVjdG9yPFN0cmluZz4mJiBhdWRpb0RldmljZVVJRHMpOwor
ICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkmLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJ
RCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
LCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwg
VmVjdG9yPFN0cmluZz4mJiB2aWRlb0RldmljZVVJRHMsIFZlY3RvcjxTdHJpbmc+JiYgYXVkaW9E
ZXZpY2VVSURzLCBTdHJpbmcmJik7CiAKICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eSogbV9tYW5hZ2VyOwogICAgIHVpbnQ2NF90IG1fdXNlck1lZGlhSUQ7CkBAIC02
NSw2ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBt
X3RvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbjsKICAgICBWZWN0b3I8U3RyaW5nPiBtX3Zp
ZGVvRGV2aWNlVUlEczsKICAgICBWZWN0b3I8U3RyaW5nPiBtX2F1ZGlvRGV2aWNlVUlEczsKKyAg
ICBTdHJpbmcgbV9kZXZpY2VJZGVudGlmaWVySGFzaFNhbHQ7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNzA0NikKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA1LTE4ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0g
ZG8gbm90IGNhY2hlIGdVTSBwZXJtaXNzaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMjQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5u
IEZhYmxldC4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWdldFVz
ZXJNZWRpYS1leHBlY3RlZC50eHQ6IFVwZGF0ZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVh
bS9NZWRpYURldmljZXMtZ2V0VXNlck1lZGlhLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9t
ZWRpYS9tZWRpYS1zdHJlYW0vZ2V0LXVzZXItbWVkaWEtcHJvbXB0LWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9nZXQtdXNlci1tZWRpYS1wcm9t
cHQuaHRtbDoKKwogMjAxNy0wNS0xOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CiAKICAgICAgICAgRGVzaWduIG1vZGUgc2hvdWxkIG5vdCBhZmZlY3QgVUEgc2hhZG93IHRyZWVz
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy1nZXRVc2Vy
TWVkaWEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vTWVkaWFEZXZpY2VzLWdldFVzZXJNZWRpYS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIx
NzA0NikKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLWdldFVz
ZXJNZWRpYS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDkgKzQ5LDYgQEAgUEFT
UyBFcnJvciBjYWxsYmFjayBjYWxsZWQuCiBQQVNTIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0
VXNlck1lZGlhKHthdWRpbzpmYWxzZSwgdmlkZW86dmlkZW9Db25zdHJhaW50c30pLnRoZW4oaW52
YWxpZEdvdFN0cmVhbSkuY2F0Y2goZXJyb3JXaXRoQ29uc3RyYWludHMyKSBkaWQgbm90IHRocm93
IGV4Y2VwdGlvbi4KIFBBU1MgRXJyb3IgY2FsbGJhY2sgY2FsbGVkLgogUEFTUyBlcnJvckFyZy5u
YW1lIGlzICJFcnJvciIKLQotUEFTUyBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRp
YSh7YXVkaW86dHJ1ZX0pLnRoZW4odmFsaWRTdHJlYW0pLmNhdGNoKGVycm9yMSk7IGRpZCBub3Qg
dGhyb3cgZXhjZXB0aW9uLgotUEFTUyBTdHJlYW0gZ2VuZXJhdGVkIGJlY2F1c2UgcGFnZSBoYXMg
YWxyZWFkeSBhdXRoZW50aWNhdGVkLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQog
CiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlh
RGV2aWNlcy1nZXRVc2VyTWVkaWEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy1nZXRVc2VyTWVkaWEuaHRtbAkocmV2aXNpb24gMjE3
MDQ2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMtZ2V0VXNl
ck1lZGlhLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI3LDExICsyNyw2IEBACiAgICAgICAgICAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGZ1bmN0
aW9uIHZhbGlkU3RyZWFtKGUpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTdHJlYW0g
Z2VuZXJhdGVkIGJlY2F1c2UgcGFnZSBoYXMgYWxyZWFkeSBhdXRoZW50aWNhdGVkLiIpOwotICAg
ICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICAgICAgfQotCiAgICAgICAgICAg
ICBmdW5jdGlvbiBlcnJvcjEoZSkgewogICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoYEVycm9y
IGNhbGxiYWNrIGNhbGxlZCwgZXJyb3IgPSAke2V9YCk7CiAgICAgICAgICAgICAgICAgZmluaXNo
SlNUZXN0KCk7CkBAIC00MiwxMiArMzcsNyBAQAogICAgICAgICAgICAgICAgIGVycm9yQXJnID0g
ZTsKICAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImVycm9yQXJnLm5hbWUi
LCAiRXJyb3IiKTsKIAotICAgICAgICAgICAgICAgIC8vIFdlIHRlbGwgTGF5b3V0VGVzdFJ1bm5l
ciB0byBkZW55IHVzZXIgbWVkaWEgcmVxdWVzdHMgYnV0IGV4cGVjdCB0aGUgZ1VNIGNhbGwgdG8g
c3VjY2VlZAotICAgICAgICAgICAgICAgIC8vIGFzIGl0IHNob3VsZCBub3Qgc2VlIHRoZSByZXF1
ZXN0IGJlY2F1c2UgdGhlIGN1cnJlbnQgYnJvd3NpbmcgY29udGV4dCBoYXMgYWxyZWFkeQotICAg
ICAgICAgICAgICAgIC8vIHN1Y2Nlc3NmdWxseSBjcmVhdGVkIGEgc3RyZWFtIGZvciB0aGUgbW9j
ayBhdWRpbyBkZXZpY2UuCi0gICAgICAgICAgICAgICAgc2V0VXNlck1lZGlhUGVybWlzc2lvbihm
YWxzZSk7Ci0gICAgICAgICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAgICAgICAgIHNob3Vs
ZE5vdFRocm93KCJuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86dHJ1
ZX0pLnRoZW4odmFsaWRTdHJlYW0pLmNhdGNoKGVycm9yMSk7Iik7CisgICAgICAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGVy
cm9yV2l0aENvbnN0cmFpbnRzMSgpIHsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc3RyZWFtL2dldC11c2VyLW1lZGlhLXByb21wdC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZ2V0LXVz
ZXItbWVkaWEtcHJvbXB0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE3MDQ2KQorKysgTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZ2V0LXVzZXItbWVkaWEtcHJvbXB0
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTcsOSArMTcsOSBAQCBQQVNTIG51bWJl
ck9mVGltZXNHZXRVc2VyTWVkaWFIYXNCZWVuQ2FsCiBQQVNTIHN0cmVhbS5nZXRBdWRpb1RyYWNr
cygpLmxlbmd0aCBpcyAwCiBQQVNTIHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCBpcyAx
CiAKLSoqIFJlcXVlc3QgYSBzdHJlYW0gd2l0aCB2aWRlbyBhbmQgYXVkaW8sIHRoZSB1c2VyIHNo
b3VsZCBiZSBub3QgcHJvbXB0ZWQgKioKKyoqIFJlcXVlc3QgYSBzdHJlYW0gd2l0aCB2aWRlbyBh
bmQgYXVkaW8sIHRoZSB1c2VyIHNob3VsZCBiZSBwcm9tcHRlZCBhZ2FpbiAqKgogUEFTUyBuYXZp
Z2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86dHJ1ZX0p
LnRoZW4oZ290U3RyZWFtMyk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgotUEFTUyBudW1iZXJP
ZlRpbWVzR2V0VXNlck1lZGlhSGFzQmVlbkNhbGxlZCgpIGlzIDIKK1BBU1MgbnVtYmVyT2ZUaW1l
c0dldFVzZXJNZWRpYUhhc0JlZW5DYWxsZWQoKSBpcyAzCiBQQVNTIHN0cmVhbS5nZXRBdWRpb1Ry
YWNrcygpLmxlbmd0aCBpcyAxCiBQQVNTIHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCBp
cyAxCiAKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2dl
dC11c2VyLW1lZGlhLXByb21wdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2dldC11c2VyLW1lZGlhLXByb21wdC5odG1sCShyZXZp
c2lvbiAyMTcwNDYpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVh
bS9nZXQtdXNlci1tZWRpYS1wcm9tcHQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTUsNyArMTUs
NyBAQAogICAgICAgICAgICAgZnVuY3Rpb24gZ290U3RyZWFtMyhzKQogICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgIHN0cmVhbSA9IHM7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmUoIm51
bWJlck9mVGltZXNHZXRVc2VyTWVkaWFIYXNCZWVuQ2FsbGVkKCkiLCAiMiIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJudW1iZXJPZlRpbWVzR2V0VXNlck1lZGlhSGFzQmVlbkNhbGxlZCgp
IiwgIjMiKTsKICAgICAgICAgICAgICAgICBzaG91bGRCZSgic3RyZWFtLmdldEF1ZGlvVHJhY2tz
KCkubGVuZ3RoIiwgIjEiKTsKICAgICAgICAgICAgICAgICBzaG91bGRCZSgic3RyZWFtLmdldFZp
ZGVvVHJhY2tzKCkubGVuZ3RoIiwgIjEiKTsKIApAQCAtMzAsNyArMzAsNyBAQAogICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCJzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgiLCAiMCIpOwog
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCJzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgi
LCAiMSIpOwogCi0gICAgICAgICAgICAgICAgZGVidWcoIjxicj4qKiBSZXF1ZXN0IGEgc3RyZWFt
IHdpdGggdmlkZW8gYW5kIGF1ZGlvLCB0aGUgdXNlciBzaG91bGQgYmUgbm90IHByb21wdGVkICoq
Iik7CisgICAgICAgICAgICAgICAgZGVidWcoIjxicj4qKiBSZXF1ZXN0IGEgc3RyZWFtIHdpdGgg
dmlkZW8gYW5kIGF1ZGlvLCB0aGUgdXNlciBzaG91bGQgYmUgcHJvbXB0ZWQgYWdhaW4gKioiKTsK
ICAgICAgICAgICAgICAgICBzaG91bGROb3RUaHJvdygibmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5n
ZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOnRydWV9KS50aGVuKGdvdFN0cmVhbTMpOyIp
OwogICAgICAgICAgICAgfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>