<?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>173392</bug_id>
          
          <creation_ts>2017-06-14 17:42:21 -0700</creation_ts>
          <short_desc>[WebIDL] Replace general inclusion of JSDOMConvert.h with inclusion of individual converter files to reduce unnecessary inclusion</short_desc>
          <delta_ts>2017-06-15 10:49:56 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1319394</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-06-14 17:42:21 -0700</bug_when>
    <thetext>[WebIDL] Replace general inclusion of JSDOMConvert.h with inclusion of individual converter files to reduce unnessary inclusion</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319395</commentid>
    <comment_count>1</comment_count>
      <attachid>312937</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-06-14 17:44:18 -0700</bug_when>
    <thetext>Created attachment 312937
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319430</commentid>
    <comment_count>2</comment_count>
      <attachid>312948</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-06-14 20:05:47 -0700</bug_when>
    <thetext>Created attachment 312948
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319450</commentid>
    <comment_count>3</comment_count>
      <attachid>312953</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-06-14 21:24:20 -0700</bug_when>
    <thetext>Created attachment 312953
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319613</commentid>
    <comment_count>4</comment_count>
      <attachid>312953</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-06-15 10:18:22 -0700</bug_when>
    <thetext>Comment on attachment 312953
Patch

OMG</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319621</commentid>
    <comment_count>5</comment_count>
      <attachid>312953</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-15 10:49:54 -0700</bug_when>
    <thetext>Comment on attachment 312953
Patch

Clearing flags on attachment: 312953

Committed r218342: &lt;http://trac.webkit.org/changeset/218342&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319622</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-15 10:49:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312937</attachid>
            <date>2017-06-14 17:44:18 -0700</date>
            <delta_ts>2017-06-14 20:05:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173392-20170614174456.patch</filename>
            <type>text/plain</type>
            <size>136045</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0MiBAQAorMjAxNy0wNi0xNCAgU2FtIFdl
aW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIFtXZWJJRExdIFJlcGxhY2UgZ2VuZXJh
bCBpbmNsdXNpb24gb2YgSlNET01Db252ZXJ0Lmggd2l0aCBpbmNsdXNpb24gb2YgaW5kaXZpZHVh
bCBjb252ZXJ0ZXIgZmlsZXMgdG8gcmVkdWNlIHVubmVzc2FyeSBpbmNsdXNpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzM5MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCUmVxdWVzdC5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHA6CisgICAgICAgICogTW9kdWxlcy9wbHVnaW5z
L1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0lE
QkJpbmRpbmdVdGlsaXRpZXMuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ1NTU3R5bGVE
ZWNsYXJhdGlvbkN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDcnlwdG9BbGdv
cml0aG1EaWN0aW9uYXJ5LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1l
bnRJbnRlcmZhY2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudFJl
Z2lzdHJ5Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRCYXNl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpEZXRhaWw6OmdldFB0ck9yUmVmKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRl
dGFpbDo6Z2V0UHRyT3JSZWYpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
Q29udmVydFJlY29yZC5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVydFNlcXVl
bmNlcy5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVydFVuaW9uLmg6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6
OmdldERPTUNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1
c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dQcm9wZXJ0aWVzLmNw
cDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxDYW52YXNF
bGVtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxEb2N1bWVudEN1
c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNIaXN0b3J5Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU01lc3NhZ2VFdmVudDo6ZGF0YSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNN
b2NrQ29udGVudEZpbHRlclNldHRpbmdzQ3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU011dGF0aW9uQ2FsbGJhY2suY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWE1MSHR0
cFJlcXVlc3RDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNYTUxIdHRwUmVxdWVzdDo6
cmV0cmlldmVSZXNwb25zZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0R2xvYmFsT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3Bw
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAg
ICAoQWRkVG9JbmNsdWRlc0ZvcklETFR5cGUpOgorICAgICAgICAoR2V0SlNDQXR0cmlidXRlc0Zv
ckF0dHJpYnV0ZSk6CisgICAgICAgIChHZW5lcmF0ZUVudW1lcmF0aW9uSGVhZGVyKToKKyAgICAg
ICAgKEdlbmVyYXRlRW51bWVyYXRpb25JbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChHZW5lcmF0
ZUVudW1lcmF0aW9uSW1wbGVtZW50YXRpb25Db250ZW50KToKKyAgICAgICAgKEdlbmVyYXRlRW51
bWVyYXRpb25zSW1wbGVtZW50YXRpb25Db250ZW50KToKKyAgICAgICAgKEdlbmVyYXRlRW51bWVy
YXRpb25IZWFkZXJDb250ZW50KToKKyAgICAgICAgKEdlbmVyYXRlRW51bWVyYXRpb25zSGVhZGVy
Q29udGVudCk6CisgICAgICAgIChHZW5lcmF0ZURpY3Rpb25hcnlIZWFkZXJDb250ZW50KToKKyAg
ICAgICAgKEdlbmVyYXRlRGljdGlvbmFyaWVzSGVhZGVyQ29udGVudCk6CisgICAgICAgIChHZW5l
cmF0ZURpY3Rpb25hcnlJbXBsZW1lbnRhdGlvbkNvbnRlbnQpOgorICAgICAgICAoR2VuZXJhdGVE
aWN0aW9uYXJpZXNJbXBsZW1lbnRhdGlvbkNvbnRlbnQpOgorICAgICAgICAoR2VuZXJhdGVIZWFk
ZXIpOgorICAgICAgICAoR2VuZXJhdGVQcm9wZXJ0aWVzSGFzaFRhYmxlKToKKyAgICAgICAgKEdl
bmVyYXRlT3ZlcmxvYWREaXNwYXRjaGVyKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRp
b24pOgorICAgICAgICAoR2VuZXJhdGVBdHRyaWJ1dGVHZXR0ZXJEZWZpbml0aW9uKToKKyAgICAg
ICAgKEdlbmVyYXRlU2VyaWFsaXplckRlZmluaXRpb24pOgorICAgICAgICAoR2VuZXJhdGVEaWN0
aW9uYXJ5SGVhZGVyKToKKyAgICAgICAgKEpTVmFsdWVUb05hdGl2ZSk6CisgICAgICAgIChOYXRp
dmVUb0pTVmFsdWVVc2luZ1JlZmVyZW5jZXMpOgorICAgICAgICAoTmF0aXZlVG9KU1ZhbHVlVXNp
bmdQb2ludGVycyk6CisgICAgICAgIChJc1ZhbGlkQ29udGV4dEZvck5hdGl2ZVRvSlNWYWx1ZSk6
CisgICAgICAgIChOYXRpdmVUb0pTVmFsdWUpOgorICAgICAgICAoR2VuZXJhdGVDb25zdHJ1Y3Rv
ckRlZmluaXRpb24pOgorICAgICAgICAoQ29tcHV0ZUZ1bmN0aW9uU3BlY2lhbCk6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTTWFwTGlrZS5jcHA6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlNYXBMaWtlLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnMuY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lm
aWVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJh
Y2tGdW5jdGlvbi5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dENhbGxiYWNrRnVuY3Rpb25SZXRocm93LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbldpdGhUeXBlZGVmcy5jcHA6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrSW50ZXJmYWNlLmNwcDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tJbnRlcmZh
Y2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RE9NSklULmNw
cDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50
Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFeGNlcHRpb24uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHA6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbi5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0
dGVyV2l0aElkZW50aWZpZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRp
b24uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERl
bGV0ZXJXaXRoSWRlbnRpZmllci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3Bw
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnMuY3Bw
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldp
dGhVbmZvcmdhYmxlUHJvcGVydGllcy5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJp
ZGVCdWlsdGlucy5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0Tm9kZTo6c2VyaWFsaXplKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblRvSlNPTkJvZHkpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmg6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjb252ZXJ0RGljdGlvbmFyeVRvSlMpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T2Jq
OjpzZXJpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Ub0pTT05Cb2R5KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnMuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHA6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVu
dC5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VS
ZWplY3Rpb25FdmVudC5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTZXJpYWxpemF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6YXRp
b246OnNlcmlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXJpYWxpemF0aW9uUHJv
dG90eXBlRnVuY3Rpb25Ub0pTT05Cb2R5KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbi5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdDo6c2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0UHJvdG90eXBlRnVuY3Rpb25Ub0pTT05Cb2R5
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlv
bkluaGVyaXQuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2Vy
aWFsaXphdGlvbkluaGVyaXRGaW5hbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTZXJp
YWxpemF0aW9uSW5oZXJpdEZpbmFsOjpzZXJpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbFByb3RvdHlwZUZ1bmN0aW9uVG9KU09OQm9keSk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25J
bmhlcml0RmluYWwuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RhbmRhbG9uZURpY3Rpb25hcnkuY3BwOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdGFuZGFsb25lRGljdGlvbmFyeS5oOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdGFuZGFsb25lRW51bWVy
YXRpb24uaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRl
ZnMuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RWb2lkQ2Fs
bGJhY2tGdW5jdGlvbi5jcHA6CisgICAgICAgICogZG9tL01vdXNlRXZlbnQuY3BwOgorICAgICAg
ICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHA6CisKIDIwMTctMDYtMTQgIENvbW1p
dCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIyMTgyODUuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJSZXF1ZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQyLDcgKzQyLDkgQEAKICNpbmNsdWRlICJJREJLZXlEYXRhLmgiCiAjaW5jbHVkZSAiSURCT2Jq
ZWN0U3RvcmUuaCIKICNpbmNsdWRlICJJREJSZXN1bHREYXRhLmgiCi0jaW5jbHVkZSAiSlNET01D
b252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0SW5kZXhlZERCLmgiCisjaW5jbHVkZSAi
SlNET01Db252ZXJ0TnVtYmVycy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFNlcXVlbmNlcy5o
IgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTY29wZUd1YXJkLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDTWVkaWFFbmRwb2ludC5jcHAJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw2IEBACiAjaWYgVVNFKExJQldFQlJUQykK
IAogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKICNp
bmNsdWRlICJKU1JUQ1N0YXRzUmVwb3J0LmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDRGF0YUNoYW5u
ZWxIYW5kbGVyLmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgi
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVw
bGFjZW1lbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5z
L1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0J
KHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDkgQEAKICNpbXBvcnQgIkhUTUxQbHVnSW5FbGVt
ZW50LmgiCiAjaW1wb3J0ICJIVE1MVmlkZW9FbGVtZW50LmgiCiAjaW1wb3J0ICJKU0RPTUJpbmRp
bmcuaCIKKyNpbXBvcnQgIkpTRE9NQ29udmVydE51bGxhYmxlLmgiCisjaW1wb3J0ICJKU0RPTUNv
bnZlcnRTZXF1ZW5jZXMuaCIKKyNpbXBvcnQgIkpTRE9NQ29udmVydFN0cmluZ3MuaCIKICNpbXBv
cnQgIkpTRE9NR2xvYmFsT2JqZWN0LmgiCiAjaW1wb3J0ICJKU0hUTUxWaWRlb0VsZW1lbnQuaCIK
ICNpbXBvcnQgIkpTUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuaCIKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCShyZXZp
c2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRp
bGl0aWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsOCArMzgsOCBAQAogI2luY2x1ZGUgIklE
QlZhbHVlLmgiCiAjaW5jbHVkZSAiSW5kZXhLZXkuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcu
aCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKLSNpbmNsdWRlICJKU0RPTVN0cmluZ0xpc3Qu
aCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnREYXRlLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0
TnVsbGFibGUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQu
aCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1
c3RvbS5jcHAJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYg
KzM1LDggQEAKICNpbmNsdWRlICJEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkhhc2hUb29scy5oIgogI2luY2x1ZGUgIkpTQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIgor
I2luY2x1ZGUgIkpTRE9NQ29udmVydE51bGxhYmxlLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0
U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRGVwcmVjYXRlZENTU09NVmFsdWUuaCIKICNpbmNsdWRl
ICJKU05vZGUuaCIKICNpbmNsdWRlICJKU1N0eWxlU2hlZXRDdXN0b20uaCIKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1E
aWN0aW9uYXJ5LmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDEsNyArNDEsOSBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJKU0Ny
eXB0b09wZXJhdGlvbkRhdGEuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKLSNpbmNsdWRl
ICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRCdWZmZXJTb3VyY2UuaCIK
KyNpbmNsdWRlICJKU0RPTUNvbnZlcnROdW1iZXJzLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0
U3RyaW5ncy5oIgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5jcHAJ
KHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9t
RWxlbWVudEludGVyZmFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDggQEAKICNp
bmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKICNpbmNsdWRlICJIVE1MVW5rbm93bkVsZW1lbnQu
aCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnROdWxs
YWJsZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFN0cmluZ3MuaCIKICNpbmNsdWRlICJKU0RP
TUdsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTSFRN
TEVsZW1lbnQuaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxl
bWVudFJlZ2lzdHJ5Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRSZWdpc3RyeUN1c3RvbS5jcHAJKHJldmlzaW9uIDIxODI5
OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5
Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsOCBAQAogI2luY2x1ZGUgIkhU
TUxOYW1lcy5oIgogI2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIgogI2luY2x1
ZGUgIkpTRE9NQmluZGluZy5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgorI2luY2x1ZGUg
IkpTRE9NQ29udmVydFNlcXVlbmNlcy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFN0cmluZ3Mu
aCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogCiB1c2luZyBuYW1lc3BhY2Ug
SlNDOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0QmFzZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydEJh
c2UuaAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01Db252ZXJ0QmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiwxNCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAvLyBDb252ZXJzaW9uIGZyb20gSlNWYWx1ZSAtPiBJbXBsZW1lbnRhdGlv
bgogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IENvbnZlcnRlcjsKIAorbmFtZXNwYWNlIERl
dGFpbCB7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgVCogZ2V0UHRyT3JSZWYoY29u
c3QgVCogcCkgeyByZXR1cm4gY29uc3RfY2FzdDxUKj4ocCk7IH0KK3RlbXBsYXRlIDx0eXBlbmFt
ZSBUPiBpbmxpbmUgVCYgZ2V0UHRyT3JSZWYoY29uc3QgVCYgcCkgeyByZXR1cm4gY29uc3RfY2Fz
dDxUJj4ocCk7IH0KK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgVCogZ2V0UHRyT3JSZWYo
Y29uc3QgUmVmUHRyPFQ+JiBwKSB7IHJldHVybiBwLmdldCgpOyB9Cit0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4gaW5saW5lIFQmIGdldFB0ck9yUmVmKGNvbnN0IFJlZjxUPiYgcCkgeyByZXR1cm4gcC5n
ZXQoKTsgfQorCit9CiAKIHN0cnVjdCBEZWZhdWx0RXhjZXB0aW9uVGhyb3dlciB7CiAgICAgdm9p
ZCBvcGVyYXRvcigpKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpUaHJvd1Njb3BlJiBzY29w
ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydEludGVyZmFj
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVy
dEludGVyZmFjZS5oCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUNvbnZlcnRJbnRlcmZhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtNDksMTUgKzQ5
LDYgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IENvbnZlcnRlcjxJRAogICAgIH0KIH07
CiAKLW5hbWVzcGFjZSBEZXRhaWwgewotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIFQq
IGdldFB0ck9yUmVmKGNvbnN0IFQqIHApIHsgcmV0dXJuIGNvbnN0X2Nhc3Q8VCo+KHApOyB9Ci10
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIFQmIGdldFB0ck9yUmVmKGNvbnN0IFQmIHApIHsg
cmV0dXJuIGNvbnN0X2Nhc3Q8VCY+KHApOyB9Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5l
IFQqIGdldFB0ck9yUmVmKGNvbnN0IFJlZlB0cjxUPiYgcCkgeyByZXR1cm4gcC5nZXQoKTsgfQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGlubGluZSBUJiBnZXRQdHJPclJlZihjb25zdCBSZWY8VD4m
IHApIHsgcmV0dXJuIHAuZ2V0KCk7IH0KLQotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1
Y3QgSlNDb252ZXJ0ZXI8SURMSW50ZXJmYWNlPFQ+PiB7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIG5lZWRzU3RhdGUgPSB0cnVlOwogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0ds
b2JhbE9iamVjdCA9IHRydWU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUNvbnZlcnRSZWNvcmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUNvbnZlcnRSZWNvcmQuaAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0UmVjb3JkLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0
MCw3ICsxNDAsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLLCB0eXBlbmFtZSBWPiBzdHJ1Y3QgCiAg
ICAgICAgIGF1dG8mIHZtID0gc3RhdGUudm0oKTsKICAgICAKICAgICAgICAgLy8gMS4gTGV0IHJl
c3VsdCBiZSAhIE9iamVjdENyZWF0ZSglT2JqZWN0UHJvdG90eXBlJSkuCi0gICAgICAgIGF1dG8g
cmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoJnN0YXRlKTsKKyAgICAgICAgYXV0byByZXN1
bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdCgmc3RhdGUsIGdsb2JhbE9iamVjdC5vYmplY3RQcm90
b3R5cGUoKSk7CiAgICAgICAgIAogICAgICAgICAvLyAyLiBSZXBlYXQsIGZvciBlYWNoIG1hcHBp
bmcgKGtleSwgdmFsdWUpIGluIEQ6CiAgICAgICAgIGZvciAoY29uc3QgYXV0byYga2V5VmFsdWVQ
YWlyIDogbWFwKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZl
cnRTZXF1ZW5jZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUNvbnZlcnRTZXF1ZW5jZXMuaAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0U2VxdWVuY2VzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI3LDkgKzI3LDEyIEBACiAKICNpbmNsdWRlICJJRExUeXBlcy5oIgogI2luY2x1ZGUgIkpTRE9N
Q29udmVydEJhc2UuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnROdW1iZXJzLmgiCisjaW5jbHVk
ZSAiSlNET01HbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlIDxydW50aW1lL0l0ZXJhdG9yT3BlcmF0
aW9ucy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNBcnJheS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUv
SlNHbG9iYWxPYmplY3RJbmxpbmVzLmg+CisjaW5jbHVkZSA8cnVudGltZS9PYmplY3RDb25zdHJ1
Y3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQxMiwzICs0MTUsNCBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSlNDb252ZXJ0ZXI8CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVy
dFVuaW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01D
b252ZXJ0VW5pb24uaAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01Db252ZXJ0VW5pb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBA
QAogI2luY2x1ZGUgIklETFR5cGVzLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5j
bHVkZSAiSlNET01Db252ZXJ0QmFzZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bGwuaCIK
ICNpbmNsdWRlIDxydW50aW1lL0l0ZXJhdG9yT3BlcmF0aW9ucy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVj
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmgJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NR2xvYmFsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDk4ICszNSw5OCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBET01HdWFyZGVkT2JqZWN0OwotICAg
IGNsYXNzIERvY3VtZW50OwotICAgIGNsYXNzIEV2ZW50OwotICAgIGNsYXNzIERPTVdyYXBwZXJX
b3JsZDsKLSAgICBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgRE9NR3VhcmRl
ZE9iamVjdDsKK2NsYXNzIERvY3VtZW50OworY2xhc3MgRXZlbnQ7CitjbGFzcyBET01XcmFwcGVy
V29ybGQ7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCi0gICAgdHlwZWRlZiBIYXNo
TWFwPGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiwgSlNDOjpXcml0ZUJhcnJpZXI8SlNDOjpTdHJ1Y3R1
cmU+PiBKU0RPTVN0cnVjdHVyZU1hcDsKLSAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgSlNDOjpD
bGFzc0luZm8qLCBKU0M6OldyaXRlQmFycmllcjxKU0M6OkpTT2JqZWN0Pj4gSlNET01Db25zdHJ1
Y3Rvck1hcDsKLSAgICB0eXBlZGVmIEhhc2hTZXQ8RE9NR3VhcmRlZE9iamVjdCo+IERPTUd1YXJk
ZWRPYmplY3RTZXQ7Cit0eXBlZGVmIEhhc2hNYXA8Y29uc3QgSlNDOjpDbGFzc0luZm8qLCBKU0M6
OldyaXRlQmFycmllcjxKU0M6OlN0cnVjdHVyZT4+IEpTRE9NU3RydWN0dXJlTWFwOwordHlwZWRl
ZiBIYXNoTWFwPGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiwgSlNDOjpXcml0ZUJhcnJpZXI8SlNDOjpK
U09iamVjdD4+IEpTRE9NQ29uc3RydWN0b3JNYXA7Cit0eXBlZGVmIEhhc2hTZXQ8RE9NR3VhcmRl
ZE9iamVjdCo+IERPTUd1YXJkZWRPYmplY3RTZXQ7CiAKLSAgICBjbGFzcyBXRUJDT1JFX0VYUE9S
VCBKU0RPTUdsb2JhbE9iamVjdCA6IHB1YmxpYyBKU0M6OkpTR2xvYmFsT2JqZWN0IHsKLSAgICAg
ICAgdHlwZWRlZiBKU0M6OkpTR2xvYmFsT2JqZWN0IEJhc2U7Ci0gICAgcHJvdGVjdGVkOgotICAg
ICAgICBzdHJ1Y3QgSlNET01HbG9iYWxPYmplY3REYXRhOworY2xhc3MgV0VCQ09SRV9FWFBPUlQg
SlNET01HbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNDOjpKU0dsb2JhbE9iamVjdCB7CisgICAgdHlw
ZWRlZiBKU0M6OkpTR2xvYmFsT2JqZWN0IEJhc2U7Citwcm90ZWN0ZWQ6CisgICAgc3RydWN0IEpT
RE9NR2xvYmFsT2JqZWN0RGF0YTsKIAotICAgICAgICBKU0RPTUdsb2JhbE9iamVjdChKU0M6OlZN
JiwgSlNDOjpTdHJ1Y3R1cmUqLCBSZWY8RE9NV3JhcHBlcldvcmxkPiYmLCBjb25zdCBKU0M6Okds
b2JhbE9iamVjdE1ldGhvZFRhYmxlKiA9IDApOwotICAgICAgICBzdGF0aWMgdm9pZCBkZXN0cm95
KEpTQzo6SlNDZWxsKik7Ci0gICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwot
ICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0M6OkpTT2JqZWN0Kik7Cisg
ICAgSlNET01HbG9iYWxPYmplY3QoSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwgUmVmPERPTVdy
YXBwZXJXb3JsZD4mJiwgY29uc3QgSlNDOjpHbG9iYWxPYmplY3RNZXRob2RUYWJsZSogPSAwKTsK
KyAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CisgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihKU0M6OlZNJik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlND
OjpKU09iamVjdCopOwogCi0gICAgcHVibGljOgotICAgICAgICBMb2NrJiBnY0xvY2soKSB7IHJl
dHVybiBtX2djTG9jazsgfQorcHVibGljOgorICAgIExvY2smIGdjTG9jaygpIHsgcmV0dXJuIG1f
Z2NMb2NrOyB9CiAKLSAgICAgICAgSlNET01TdHJ1Y3R1cmVNYXAmIHN0cnVjdHVyZXMoY29uc3Qg
QWJzdHJhY3RMb2NrZXImKSB7IHJldHVybiBtX3N0cnVjdHVyZXM7IH0KLSAgICAgICAgSlNET01D
b25zdHJ1Y3Rvck1hcCYgY29uc3RydWN0b3JzKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgeyByZXR1
cm4gbV9jb25zdHJ1Y3RvcnM7IH0KKyAgICBKU0RPTVN0cnVjdHVyZU1hcCYgc3RydWN0dXJlcyhj
b25zdCBBYnN0cmFjdExvY2tlciYpIHsgcmV0dXJuIG1fc3RydWN0dXJlczsgfQorICAgIEpTRE9N
Q29uc3RydWN0b3JNYXAmIGNvbnN0cnVjdG9ycyhjb25zdCBBYnN0cmFjdExvY2tlciYpIHsgcmV0
dXJuIG1fY29uc3RydWN0b3JzOyB9CiAKLSAgICAgICAgRE9NR3VhcmRlZE9iamVjdFNldCYgZ3Vh
cmRlZE9iamVjdHMoY29uc3QgQWJzdHJhY3RMb2NrZXImKSB7IHJldHVybiBtX2d1YXJkZWRPYmpl
Y3RzOyB9CisgICAgRE9NR3VhcmRlZE9iamVjdFNldCYgZ3VhcmRlZE9iamVjdHMoY29uc3QgQWJz
dHJhY3RMb2NrZXImKSB7IHJldHVybiBtX2d1YXJkZWRPYmplY3RzOyB9CiAKLSAgICAgICAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0OworICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsK
IAotICAgICAgICAvLyBNYWtlIGJpbmRpbmcgY29kZSBnZW5lcmF0aW9uIGVhc2llci4KLSAgICAg
ICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCgpIHsgcmV0dXJuIHRoaXM7IH0KKyAg
ICAvLyBNYWtlIGJpbmRpbmcgY29kZSBnZW5lcmF0aW9uIGVhc2llci4KKyAgICBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KCkgeyByZXR1cm4gdGhpczsgfQogCi0gICAgICAgIHZvaWQg
c2V0Q3VycmVudEV2ZW50KEV2ZW50Kik7Ci0gICAgICAgIEV2ZW50KiBjdXJyZW50RXZlbnQoKSBj
b25zdDsKKyAgICB2b2lkIHNldEN1cnJlbnRFdmVudChFdmVudCopOworICAgIEV2ZW50KiBjdXJy
ZW50RXZlbnQoKSBjb25zdDsKIAotICAgICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpT
Qzo6SlNDZWxsKiwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hp
bGRyZW4oSlNDOjpKU0NlbGwqLCBKU0M6OlNsb3RWaXNpdG9yJik7CiAKLSAgICAgICAgRE9NV3Jh
cHBlcldvcmxkJiB3b3JsZCgpIHsgcmV0dXJuIG1fd29ybGQuZ2V0KCk7IH0KLSAgICAgICAgYm9v
bCB3b3JsZElzTm9ybWFsKCkgY29uc3QgeyByZXR1cm4gbV93b3JsZElzTm9ybWFsOyB9Ci0gICAg
ICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZXb3JsZElzTm9ybWFsKCkgeyByZXR1cm4gT0JK
RUNUX09GRlNFVE9GKEpTRE9NR2xvYmFsT2JqZWN0LCBtX3dvcmxkSXNOb3JtYWwpOyB9CisgICAg
RE9NV3JhcHBlcldvcmxkJiB3b3JsZCgpIHsgcmV0dXJuIG1fd29ybGQuZ2V0KCk7IH0KKyAgICBi
b29sIHdvcmxkSXNOb3JtYWwoKSBjb25zdCB7IHJldHVybiBtX3dvcmxkSXNOb3JtYWw7IH0KKyAg
ICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mV29ybGRJc05vcm1hbCgpIHsgcmV0dXJuIE9CSkVD
VF9PRkZTRVRPRihKU0RPTUdsb2JhbE9iamVjdCwgbV93b3JsZElzTm9ybWFsKTsgfQogCi0gICAg
ICAgIEpTQnVpbHRpbkludGVybmFsRnVuY3Rpb25zJiBidWlsdGluSW50ZXJuYWxGdW5jdGlvbnMo
KSB7IHJldHVybiBtX2J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9uczsgfQorICAgIEpTQnVpbHRpbklu
dGVybmFsRnVuY3Rpb25zJiBidWlsdGluSW50ZXJuYWxGdW5jdGlvbnMoKSB7IHJldHVybiBtX2J1
aWx0aW5JbnRlcm5hbEZ1bmN0aW9uczsgfQogCi0gICAgcHJvdGVjdGVkOgotICAgICAgICBzdGF0
aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOworcHJvdGVjdGVkOgorICAgIHN0YXRpYyBj
b25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAKLSAgICBwdWJsaWM6Ci0gICAgICAgIH5KU0RP
TUdsb2JhbE9iamVjdCgpOworcHVibGljOgorICAgIH5KU0RPTUdsb2JhbE9iamVjdCgpOwogCi0g
ICAgICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgSlNDOjpDbGFzc0luZm8qIGluZm8oKSB7IHJl
dHVybiAmc19pbmZvOyB9CisgICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBKU0M6OkNsYXNzSW5m
byogaW5mbygpIHsgcmV0dXJuICZzX2luZm87IH0KIAotICAgICAgICBzdGF0aWMgSlNDOjpTdHJ1
Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlw
ZSkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUo
dm0sIDAsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Okdsb2JhbE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKLSAgICAgICAgfQotCi0gICAgcHJvdGVjdGVkOgotICAg
ICAgICBKU0RPTVN0cnVjdHVyZU1hcCBtX3N0cnVjdHVyZXM7Ci0gICAgICAgIEpTRE9NQ29uc3Ry
dWN0b3JNYXAgbV9jb25zdHJ1Y3RvcnM7Ci0gICAgICAgIERPTUd1YXJkZWRPYmplY3RTZXQgbV9n
dWFyZGVkT2JqZWN0czsKLQotICAgICAgICBFdmVudCogbV9jdXJyZW50RXZlbnQ7Ci0gICAgICAg
IFJlZjxET01XcmFwcGVyV29ybGQ+IG1fd29ybGQ7Ci0gICAgICAgIHVpbnQ4X3QgbV93b3JsZElz
Tm9ybWFsOwotICAgICAgICBMb2NrIG1fZ2NMb2NrOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAg
dm9pZCBhZGRCdWlsdGluR2xvYmFscyhKU0M6OlZNJik7Ci0gICAgICAgIGZyaWVuZCB2b2lkIEpT
QnVpbHRpbkludGVybmFsRnVuY3Rpb25zOjppbml0aWFsaXplKEpTRE9NR2xvYmFsT2JqZWN0Jik7
Ci0KLSAgICAgICAgSlNCdWlsdGluSW50ZXJuYWxGdW5jdGlvbnMgbV9idWlsdGluSW50ZXJuYWxG
dW5jdGlvbnM7Ci0gICAgfTsKLQotICAgIHRlbXBsYXRlPGNsYXNzIENvbnN0cnVjdG9yQ2xhc3M+
Ci0gICAgaW5saW5lIEpTQzo6SlNPYmplY3QqIGdldERPTUNvbnN0cnVjdG9yKEpTQzo6Vk0mIHZt
LCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQorICAgIHN0YXRpYyBKU0M6
OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgcHJv
dG90eXBlKQogICAgIHsKLSAgICAgICAgaWYgKEpTQzo6SlNPYmplY3QqIGNvbnN0cnVjdG9yID0g
Y29uc3RfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCY+KGdsb2JhbE9iamVjdCkuY29uc3RydWN0b3Jz
KE5vTG9ja2luZ05lY2Vzc2FyeSkuZ2V0KENvbnN0cnVjdG9yQ2xhc3M6OmluZm8oKSkuZ2V0KCkp
Ci0gICAgICAgICAgICByZXR1cm4gY29uc3RydWN0b3I7Ci0gICAgICAgIEpTQzo6SlNPYmplY3Qq
IGNvbnN0cnVjdG9yID0gQ29uc3RydWN0b3JDbGFzczo6Y3JlYXRlKHZtLCBDb25zdHJ1Y3RvckNs
YXNzOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGNvbnN0X2Nhc3Q8SlNET01HbG9iYWxPYmplY3QmPihn
bG9iYWxPYmplY3QpLCBDb25zdHJ1Y3RvckNsYXNzOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUodm0s
IGdsb2JhbE9iamVjdCkpLCBjb25zdF9jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Jj4oZ2xvYmFsT2Jq
ZWN0KSk7Ci0gICAgICAgIEFTU0VSVCghY29uc3RfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCY+KGds
b2JhbE9iamVjdCkuY29uc3RydWN0b3JzKE5vTG9ja2luZ05lY2Vzc2FyeSkuY29udGFpbnMoQ29u
c3RydWN0b3JDbGFzczo6aW5mbygpKSk7Ci0gICAgICAgIEpTQzo6V3JpdGVCYXJyaWVyPEpTQzo6
SlNPYmplY3Q+IHRlbXA7Ci0gICAgICAgIEpTRE9NR2xvYmFsT2JqZWN0JiBtdXRhYmxlR2xvYmFs
T2JqZWN0ID0gY29uc3RfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCY+KGdsb2JhbE9iamVjdCk7Ci0g
ICAgICAgIGF1dG8gbG9ja2VyID0gSlNDOjpsb2NrRHVyaW5nTWFya2luZyh2bS5oZWFwLCBtdXRh
YmxlR2xvYmFsT2JqZWN0LmdjTG9jaygpKTsKLSAgICAgICAgbXV0YWJsZUdsb2JhbE9iamVjdC5j
b25zdHJ1Y3RvcnMobG9ja2VyKS5hZGQoQ29uc3RydWN0b3JDbGFzczo6aW5mbygpLCB0ZW1wKS5p
dGVyYXRvci0+dmFsdWUuc2V0KHZtLCAmZ2xvYmFsT2JqZWN0LCBjb25zdHJ1Y3Rvcik7Ci0gICAg
ICAgIHJldHVybiBjb25zdHJ1Y3RvcjsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpj
cmVhdGUodm0sIDAsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Okdsb2JhbE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKLSAgICBKU0RPTUdsb2JhbE9i
amVjdCogdG9KU0RPTUdsb2JhbE9iamVjdChEb2N1bWVudCosIEpTQzo6RXhlY1N0YXRlKik7Ci0g
ICAgSlNET01HbG9iYWxPYmplY3QqIHRvSlNET01HbG9iYWxPYmplY3QoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIEpTQzo6RXhlY1N0YXRlKik7Citwcm90ZWN0ZWQ6CisgICAgSlNET01TdHJ1Y3R1
cmVNYXAgbV9zdHJ1Y3R1cmVzOworICAgIEpTRE9NQ29uc3RydWN0b3JNYXAgbV9jb25zdHJ1Y3Rv
cnM7CisgICAgRE9NR3VhcmRlZE9iamVjdFNldCBtX2d1YXJkZWRPYmplY3RzOworCisgICAgRXZl
bnQqIG1fY3VycmVudEV2ZW50OworICAgIFJlZjxET01XcmFwcGVyV29ybGQ+IG1fd29ybGQ7Cisg
ICAgdWludDhfdCBtX3dvcmxkSXNOb3JtYWw7CisgICAgTG9jayBtX2djTG9jazsKKworcHJpdmF0
ZToKKyAgICB2b2lkIGFkZEJ1aWx0aW5HbG9iYWxzKEpTQzo6Vk0mKTsKKyAgICBmcmllbmQgdm9p
ZCBKU0J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9uczo6aW5pdGlhbGl6ZShKU0RPTUdsb2JhbE9iamVj
dCYpOworCisgICAgSlNCdWlsdGluSW50ZXJuYWxGdW5jdGlvbnMgbV9idWlsdGluSW50ZXJuYWxG
dW5jdGlvbnM7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBDb25zdHJ1Y3RvckNsYXNzPgoraW5saW5l
IEpTQzo6SlNPYmplY3QqIGdldERPTUNvbnN0cnVjdG9yKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RP
TUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQoreworICAgIGlmIChKU0M6OkpTT2JqZWN0KiBj
b25zdHJ1Y3RvciA9IGNvbnN0X2Nhc3Q8SlNET01HbG9iYWxPYmplY3QmPihnbG9iYWxPYmplY3Qp
LmNvbnN0cnVjdG9ycyhOb0xvY2tpbmdOZWNlc3NhcnkpLmdldChDb25zdHJ1Y3RvckNsYXNzOjpp
bmZvKCkpLmdldCgpKQorICAgICAgICByZXR1cm4gY29uc3RydWN0b3I7CisgICAgSlNDOjpKU09i
amVjdCogY29uc3RydWN0b3IgPSBDb25zdHJ1Y3RvckNsYXNzOjpjcmVhdGUodm0sIENvbnN0cnVj
dG9yQ2xhc3M6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgY29uc3RfY2FzdDxKU0RPTUdsb2JhbE9iamVj
dCY+KGdsb2JhbE9iamVjdCksIENvbnN0cnVjdG9yQ2xhc3M6OnByb3RvdHlwZUZvclN0cnVjdHVy
ZSh2bSwgZ2xvYmFsT2JqZWN0KSksIGNvbnN0X2Nhc3Q8SlNET01HbG9iYWxPYmplY3QmPihnbG9i
YWxPYmplY3QpKTsKKyAgICBBU1NFUlQoIWNvbnN0X2Nhc3Q8SlNET01HbG9iYWxPYmplY3QmPihn
bG9iYWxPYmplY3QpLmNvbnN0cnVjdG9ycyhOb0xvY2tpbmdOZWNlc3NhcnkpLmNvbnRhaW5zKENv
bnN0cnVjdG9yQ2xhc3M6OmluZm8oKSkpOworICAgIEpTQzo6V3JpdGVCYXJyaWVyPEpTQzo6SlNP
YmplY3Q+IHRlbXA7CisgICAgSlNET01HbG9iYWxPYmplY3QmIG11dGFibGVHbG9iYWxPYmplY3Qg
PSBjb25zdF9jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Jj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBhdXRv
IGxvY2tlciA9IEpTQzo6bG9ja0R1cmluZ01hcmtpbmcodm0uaGVhcCwgbXV0YWJsZUdsb2JhbE9i
amVjdC5nY0xvY2soKSk7CisgICAgbXV0YWJsZUdsb2JhbE9iamVjdC5jb25zdHJ1Y3RvcnMobG9j
a2VyKS5hZGQoQ29uc3RydWN0b3JDbGFzczo6aW5mbygpLCB0ZW1wKS5pdGVyYXRvci0+dmFsdWUu
c2V0KHZtLCAmZ2xvYmFsT2JqZWN0LCBjb25zdHJ1Y3Rvcik7CisgICAgcmV0dXJuIGNvbnN0cnVj
dG9yOworfQorCitKU0RPTUdsb2JhbE9iamVjdCogdG9KU0RPTUdsb2JhbE9iamVjdChEb2N1bWVu
dCosIEpTQzo6RXhlY1N0YXRlKik7CitKU0RPTUdsb2JhbE9iamVjdCogdG9KU0RPTUdsb2JhbE9i
amVjdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgSlNDOjpFeGVjU3RhdGUqKTsKIAotICAgIEpT
RE9NR2xvYmFsT2JqZWN0KiB0b0pTRE9NR2xvYmFsT2JqZWN0KERvY3VtZW50KiwgRE9NV3JhcHBl
cldvcmxkJik7Ci0gICAgSlNET01HbG9iYWxPYmplY3QqIHRvSlNET01HbG9iYWxPYmplY3QoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIERPTVdyYXBwZXJXb3JsZCYpOworSlNET01HbG9iYWxPYmpl
Y3QqIHRvSlNET01HbG9iYWxPYmplY3QoRG9jdW1lbnQqLCBET01XcmFwcGVyV29ybGQmKTsKK0pT
RE9NR2xvYmFsT2JqZWN0KiB0b0pTRE9NR2xvYmFsT2JqZWN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBET01XcmFwcGVyV29ybGQmKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAko
cmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw5IEBACiAjaW5jbHVkZSAi
SFRNTERvY3VtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSlNET01CaW5kaW5nU2VjdXJpdHkuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnROdWxs
YWJsZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bWJlcnMuaCIKKyNpbmNsdWRlICJKU0RP
TUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNFdmVudC5oIgogI2luY2x1ZGUgIkpTRXZl
bnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIkpTSFRNTEF1ZGlvRWxlbWVudC5oIgpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dQcm9wZXJ0aWVzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1Byb3BlcnRpZXMu
Y3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd1Byb3BlcnRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAj
aW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5j
bHVkZSAiSlNET01CaW5kaW5nU2VjdXJpdHkuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJp
bmdzLmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dCYXNlLmgiCiAjaW5jbHVkZSAiSlNFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSlNIVE1MQ29sbGVjdGlvbi5oIgpJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAJKHJldmlzaW9uIDIxODI5OSkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNSwxNiArMjUsMTQgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgog
I2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgogI2luY2x1ZGUgIkpTQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252
ZXJ0TnVtYmVycy5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAi
SlNIVE1MRG9jdW1lbnQuaCIKICNpbmNsdWRlICJKU0xvY2F0aW9uLmgiCiAjaW5jbHVkZSAiSlNY
TUxEb2N1bWVudC5oIgotI2luY2x1ZGUgIkxvY2F0aW9uLmgiCiAjaW5jbHVkZSAiTm9kZVRyYXZl
cnNhbC5oIgogI2luY2x1ZGUgIlNWR0RvY3VtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJv
bGxlci5oIgotI2luY2x1ZGUgIlRvdWNoTGlzdC5oIgogI2luY2x1ZGUgIlhNTERvY3VtZW50Lmgi
CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0Vycm9ySGFuZGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM1LDcgKzM1LDggQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVycm9yRXZl
bnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgorI2lu
Y2x1ZGUgIkpTRE9NQ29udmVydE51bWJlcnMuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJp
bmdzLmgiCiAjaW5jbHVkZSAiSlNFdmVudC5oIgogI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNT
dGF0ZS5oIgogI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZUluc3RydW1lbnRhdGlvbi5o
IgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIu
Y3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2
ZW50TGlzdGVuZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwxMCArMjIsMTAgQEAKIAogI2lu
Y2x1ZGUgIkJlZm9yZVVubG9hZEV2ZW50LmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9s
aWN5LmgiCi0jaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IkhUTUxFbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNE
T01Db252ZXJ0TnVsbGFibGUuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAj
aW5jbHVkZSAiSlNEb2N1bWVudC5oIgogI2luY2x1ZGUgIkpTRXZlbnQuaCIKICNpbmNsdWRlICJK
U0V2ZW50VGFyZ2V0LmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxD
YW52YXNFbGVtZW50Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0hUTUxDYW52YXNFbGVtZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gMjE4Mjk5KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQ2FudmFzRWxlbWVudEN1c3RvbS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDggKzI5LDkgQEAKIAogI2luY2x1ZGUgIkhUTUxDYW52
YXNFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCIKLSNp
bmNsdWRlIDxiaW5kaW5ncy9TY3JpcHRPYmplY3QuaD4KLSNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+
CisjaW5jbHVkZSAiSlNET01Db252ZXJ0RGljdGlvbmFyeS5oIgorI2luY2x1ZGUgIkpTRE9NQ29u
dmVydE51bGxhYmxlLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogCiAjaWYg
RU5BQkxFKFdFQkdMKQogI2luY2x1ZGUgIkpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIgpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRG9jdW1lbnRDdXN0b20uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTERvY3VtZW50Q3Vz
dG9tLmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNIVE1MRG9jdW1lbnRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw4IEBA
CiAjaW5jbHVkZSAiSlNIVE1MRG9jdW1lbnQuaCIKIAogI2luY2x1ZGUgIkpTRE9NQWJzdHJhY3RP
cGVyYXRpb25zLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0SW50ZXJmYWNlLmgiCisjaW5jbHVk
ZSAiSlNET01Db252ZXJ0VW5pb24uaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5oIgog
I2luY2x1ZGUgIkpTSFRNTENvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJTZWdtZW50ZWRTdHJpbmcu
aCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSGlzdG9yeUN1c3RvbS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIaXN0b3J5Q3VzdG9t
LmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNI
aXN0b3J5Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsOCBAQAogCiAjaW5j
bHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiSlNE
T01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0TnVsbGFibGUuaCIKKyNpbmNsdWRl
ICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0Z1bmN0aW9uLmg+CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAJKHJldmlz
aW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50
Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTEgKzMzLDEyIEBACiAKICNpbmNsdWRl
ICJKU0Jsb2IuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKLSNpbmNsdWRlICJKU0RPTUNv
bnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRCdWZmZXJTb3VyY2UuaCIKKyNpbmNsdWRl
ICJKU0RPTUNvbnZlcnRJbnRlcmZhY2UuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdz
LmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3cuaCIKICNpbmNsdWRlICJKU0V2ZW50VGFyZ2V0Lmgi
CiAjaW5jbHVkZSAiSlNNZXNzYWdlUG9ydC5oIgotI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgog
I2luY2x1ZGUgPHJ1bnRpbWUvSlNBcnJheS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNBcnJheUJ1
ZmZlci5oPgogCkBAIC04NiwxNSArODcsMTUgQEAgSlNWYWx1ZSBKU01lc3NhZ2VFdmVudDo6ZGF0
YShFeGVjU3RhdGUmIAogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgTWVzc2FnZUV2ZW50OjpE
YXRhVHlwZVN0cmluZzoKLSAgICAgICAgcmVzdWx0ID0ganNTdHJpbmdXaXRoQ2FjaGUoJnN0YXRl
LCBldmVudC5kYXRhQXNTdHJpbmcoKSk7CisgICAgICAgIHJlc3VsdCA9IHRvSlM8SURMRE9NU3Ry
aW5nPihzdGF0ZSwgZXZlbnQuZGF0YUFzU3RyaW5nKCkpOwogICAgICAgICBicmVhazsKIAogICAg
IGNhc2UgTWVzc2FnZUV2ZW50OjpEYXRhVHlwZUJsb2I6Ci0gICAgICAgIHJlc3VsdCA9IHRvSlMo
JnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgZXZlbnQuZGF0YUFzQmxvYigpKTsKKyAgICAgICAgcmVz
dWx0ID0gdG9KUzxJRExJbnRlcmZhY2U8QmxvYj4+KHN0YXRlLCAqZ2xvYmFsT2JqZWN0KCksIGV2
ZW50LmRhdGFBc0Jsb2IoKSk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBNZXNzYWdlRXZl
bnQ6OkRhdGFUeXBlQXJyYXlCdWZmZXI6Ci0gICAgICAgIHJlc3VsdCA9IHRvSlMoJnN0YXRlLCBn
bG9iYWxPYmplY3QoKSwgZXZlbnQuZGF0YUFzQXJyYXlCdWZmZXIoKSk7CisgICAgICAgIHJlc3Vs
dCA9IHRvSlM8SURMSW50ZXJmYWNlPEFycmF5QnVmZmVyPj4oc3RhdGUsICpnbG9iYWxPYmplY3Qo
KSwgZXZlbnQuZGF0YUFzQXJyYXlCdWZmZXIoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNb2NrQ29udGVudEZpbHRlclNldHRp
bmdzQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3NDdXN0b20uY3BwCShyZXZpc2lvbiAyMTgyOTkpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3ND
dXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAjaWYgRU5BQkxFKENP
TlRFTlRfRklMVEVSSU5HKQogCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCi0jaW5jbHVkZSAi
SlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0TnVtYmVycy5oIgogI2luY2x1
ZGUgIk1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaCIKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxi
YWNrLmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNNdXRhdGlvbkNhbGxiYWNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsOCBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTTXV0YXRpb25DYWxsYmFjay5oIgogCisj
aW5jbHVkZSAiSlNET01Db252ZXJ0SW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0
U2VxdWVuY2VzLmgiCiAjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJK
U01haW5UaHJlYWRFeGVjU3RhdGUuaCIKICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGVJ
bnN0cnVtZW50YXRpb24uaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1M
SHR0cFJlcXVlc3RDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjksMjggKzI5LDE0IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiSlNYTUxIdHRwUmVxdWVzdC5oIgogCi0jaW5jbHVkZSAiQmxvYi5oIgotI2luY2x1ZGUg
IkRPTUZvcm1EYXRhLmgiCi0jaW5jbHVkZSAiRE9NV2luZG93LmgiCi0jaW5jbHVkZSAiRG9jdW1l
bnQuaCIKLSNpbmNsdWRlICJFdmVudC5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAi
RnJhbWVMb2FkZXIuaCIKLSNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJKU0Jsb2IuaCIKLSNpbmNsdWRlICJK
U0RPTUNvbnZlcnQuaCIKLSNpbmNsdWRlICJKU0RPTUZvcm1EYXRhLmgiCi0jaW5jbHVkZSAiSlNE
T01XaW5kb3dDdXN0b20uaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRCdWZmZXJTb3VyY2UuaCIK
KyNpbmNsdWRlICJKU0RPTUNvbnZlcnRJbnRlcmZhY2UuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZl
cnRKU09OLmgiCiAjaW5jbHVkZSAiSlNEb2N1bWVudC5oIgotI2luY2x1ZGUgIkpTRXZlbnQuaCIK
LSNpbmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuaCIKLSNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdC5o
IgogI2luY2x1ZGUgPHJ1bnRpbWUvQXJyYXlCdWZmZXIuaD4KLSNpbmNsdWRlIDxydW50aW1lL0Vy
cm9yLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0FycmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8cnVu
dGltZS9KU0FycmF5QnVmZmVyVmlldy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNPTk9iamVjdC5o
PgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCkBAIC0xMDgsNyArOTQsNyBAQCBKU1ZhbHVlIEpT
WE1MSHR0cFJlcXVlc3Q6OnJldHJpZXZlUmVzcG9uCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOwogCiAgICAgY2FzZSBYTUxIdHRwUmVxdWVzdDo6UmVzcG9uc2VUeXBlOjpKc29uOgotICAg
ICAgICB2YWx1ZSA9IEpTT05QYXJzZSgmc3RhdGUsIHdyYXBwZWQoKS5yZXNwb25zZVRleHRJZ25v
cmluZ1Jlc3BvbnNlVHlwZSgpKTsKKyAgICAgICAgdmFsdWUgPSB0b0pTPElETEpTT04+KHN0YXRl
LCB3cmFwcGVkKCkucmVzcG9uc2VUZXh0SWdub3JpbmdSZXNwb25zZVR5cGUoKSk7CiAgICAgICAg
IGlmICghdmFsdWUpCiAgICAgICAgICAgICB2YWx1ZSA9IGpzTnVsbCgpOwogICAgICAgICBicmVh
azsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdEdsb2JhbE9iamVjdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0R2xvYmFs
T2JqZWN0LmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0R2xvYmFsT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsOCArMzEsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNjcmlwdEdsb2JhbE9iamVjdC5oIgog
Ci0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCi0jaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5k
bGluZy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEludGVyZmFjZS5oIgogI2luY2x1ZGUgIkpT
SW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgiCiAjaW5jbHVkZSA8cnVudGltZS9JZGVudGlmaWVySW5s
aW5lcy5oPgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2Ny
aXB0VmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJKU0Jsb2IuaCIKICNpbmNsdWRlICJKU0NyeXB0
b0tleS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVy
dEJ1ZmZlclNvdXJjZS5oIgogI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiSlNGaWxlLmgiCiAjaW5jbHVkZSAiSlNGaWxlTGlzdC5oIgpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlzaW9u
IDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0yOTAsNDkgKzI5MCwxNDUgQEAgc3ViIEFkZFRvSW1w
bEluY2x1ZGVzRm9ySURMVHlwZQogc3ViIEFkZFRvSW5jbHVkZXNGb3JJRExUeXBlCiB7CiAgICAg
bXkgKCR0eXBlLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCkgPSBAXzsKLSAgICAKLSAgICBy
ZXR1cm4gaWYgJGNvZGVHZW5lcmF0b3ItPklzUHJpbWl0aXZlVHlwZSgkdHlwZSk7Ci0gICAgcmV0
dXJuIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJHR5cGUpOwotICAgIHJldHVybiBp
ZiAkY29kZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkdHlwZSk7Ci0gICAgcmV0dXJuIGlm
ICR0eXBlLT5uYW1lIGVxICJhbnkiOwotICAgIHJldHVybiBpZiAkdHlwZS0+bmFtZSBlcSAib2Jq
ZWN0IjsKLSAgICAKLSAgICBpZiAoJHR5cGUtPmlzVW5pb24pIHsKLSAgICAgICAgQWRkVG9JbmNs
dWRlcygiPHd0Zi9WYXJpYW50Lmg+IiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOwogCi0g
ICAgICAgIGZvcmVhY2ggbXkgJG1lbWJlclR5cGUgKEB7JHR5cGUtPnN1YnR5cGVzfSkgewotICAg
ICAgICAgICAgQWRkVG9JbmNsdWRlc0ZvcklETFR5cGUoJG1lbWJlclR5cGUsICRpbmNsdWRlc1Jl
ZiwgJGNvbmRpdGlvbmFsKTsKKyAgICBpZiAoJHR5cGUtPmlzTnVsbGFibGUpIHsKKyAgICAgICAg
QWRkVG9JbmNsdWRlcygiSlNET01Db252ZXJ0TnVsbGFibGUuaCIsICRpbmNsdWRlc1JlZiwgJGNv
bmRpdGlvbmFsKTsKKyAgICB9CisKKyAgICBpZiAoJHR5cGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
e092ZXJyaWRlSURMVHlwZX0pIHsKKyAgICAgICAgbXkgJG92ZXJyaWRlVHlwZU5hbWUgPSAkdHlw
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57T3ZlcnJpZGVJRExUeXBlfTsKKyAgICAgICAgaWYgKCRv
dmVycmlkZVR5cGVOYW1lIGVxICJJRExJREJLZXkiKSB7CisgICAgICAgICAgICBBZGRUb0luY2x1
ZGVzKCJKU0RPTUNvbnZlcnRJbmRleGVkREIuaCIsICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFs
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgkb3ZlcnJp
ZGVUeXBlTmFtZSBlcSAiSURMV2ViR0xBbnkiKSB7CisgICAgICAgICAgICBBZGRUb0luY2x1ZGVz
KCJKU0RPTUNvbnZlcnRXZWJHTC5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisgICAgfQogCisgICAgaWYgKCR0eXBlLT5uYW1l
IGVxICJhbnkiKSB7CisgICAgICAgIEFkZFRvSW5jbHVkZXMoIkpTRE9NQ29udmVydEFueS5oIiwg
JGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NlcXVlbmNlT3JGcm96ZW5BcnJheVR5cGUoJHR5cGUp
KSB7Ci0gICAgICAgIEFkZFRvSW5jbHVkZXMoIjxydW50aW1lL0pTQXJyYXkuaD4iLCAkaW5jbHVk
ZXNSZWYsICRjb25kaXRpb25hbCk7CisgICAgaWYgKCR0eXBlLT5uYW1lIGVxICJib29sZWFuIikg
eworICAgICAgICBBZGRUb0luY2x1ZGVzKCJKU0RPTUNvbnZlcnRCb29sZWFuLmgiLCAkaW5jbHVk
ZXNSZWYsICRjb25kaXRpb25hbCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAo
JGNvZGVHZW5lcmF0b3ItPklzVHlwZWRBcnJheVR5cGUoJHR5cGUpKSB7CisgICAgICAgIEFkZFRv
SW5jbHVkZXMoIkpTRE9NQ29udmVydEJ1ZmZlclNvdXJjZS5oIiwgJGluY2x1ZGVzUmVmLCAkY29u
ZGl0aW9uYWwpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCR0eXBlLT5uYW1l
IGVxICJCdWZmZXJTb3VyY2UiKSB7CisgICAgICAgIEFkZFRvSW5jbHVkZXMoIkpTRE9NQ29udmVy
dEJ1ZmZlclNvdXJjZS5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworICAgICAgICBB
ZGRUb0luY2x1ZGVzKCJKU0RPTUNvbnZlcnRVbmlvbi5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0
aW9uYWwpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCRjb2RlR2VuZXJhdG9y
LT5Jc0NhbGxiYWNrRnVuY3Rpb24oJHR5cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc0NhbGxiYWNr
SW50ZXJmYWNlKCR0eXBlKSkgeworICAgICAgICBBZGRUb0luY2x1ZGVzKCJKUyIgLiAkdHlwZS0+
bmFtZSAuICIuaCIsICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgQWRkVG9J
bmNsdWRlcygiSlNET01Db252ZXJ0Q2FsbGJhY2tzLmgiLCAkaW5jbHVkZXNSZWYsICRjb25kaXRp
b25hbCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoJHR5cGUtPm5hbWUgZXEg
IkRhdGUiKSB7CisgICAgICAgIEFkZFRvSW5jbHVkZXMoIkpTRE9NQ29udmVydERhdGUuaCIsICRp
bmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGlmICgkY29kZUdlbmVyYXRvci0+SXNFeHRlcm5hbERpY3Rpb25hcnlUeXBlKCR0eXBlKSkgewor
ICAgICAgICBBZGRUb0luY2x1ZGVzKCJKUyIgLiAkdHlwZS0+bmFtZSAuICIuaCIsICRpbmNsdWRl
c1JlZiwgJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNET01Db252ZXJ0
RGljdGlvbmFyeS5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc0V4dGVybmFsRW51bVR5cGUo
JHR5cGUpKSB7CisgICAgICAgIEFkZFRvSW5jbHVkZXMoIkpTIiAuICR0eXBlLT5uYW1lIC4gIi5o
IiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworICAgICAgICBBZGRUb0luY2x1ZGVzKCJK
U0RPTUNvbnZlcnRFbnVtZXJhdGlvbi5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCR0eXBlLT5uYW1lIGVxICJFdmVudExp
c3RlbmVyIikgeworICAgICAgICBBZGRUb0luY2x1ZGVzKCJKU0V2ZW50TGlzdGVuZXIuaCIsICRp
bmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNET01D
b252ZXJ0RXZlbnRMaXN0ZW5lci5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc0ludGVyZmFj
ZVR5cGUoJHR5cGUpKSB7CisgICAgICAgIEFkZFRvSW5jbHVkZXMoIkpTIiAuICR0eXBlLT5uYW1l
IC4gIi5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworICAgICAgICBBZGRUb0luY2x1
ZGVzKCJKU0RPTUNvbnZlcnRJbnRlcmZhY2UuaCIsICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFs
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICgkdHlwZS0+bmFtZSBlcSAiSlNP
TiIpIHsKKyAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNET01Db252ZXJ0SlNPTi5oIiwgJGluY2x1
ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYg
KCRjb2RlR2VuZXJhdG9yLT5Jc051bWVyaWNUeXBlKCR0eXBlKSkgeworICAgICAgICBBZGRUb0lu
Y2x1ZGVzKCJKU0RPTUNvbnZlcnROdW1iZXJzLmgiLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25h
bCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoJHR5cGUtPm5hbWUgZXEgIm9i
amVjdCIpIHsKKyAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNET01Db252ZXJ0T2JqZWN0LmgiLCAk
aW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzUHJvbWlzZVR5cGUoJHR5cGUpKSB7CisgICAgICAgIEFk
ZFRvSW5jbHVkZXMoIkpTRE9NUHJvbWlzZS5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwp
OworICAgICAgICBBZGRUb0luY2x1ZGVzKCJKU0RPTUNvbnZlcnRQcm9taXNlLmgiLCAkaW5jbHVk
ZXNSZWYsICRjb25kaXRpb25hbCk7CisKICAgICAgICAgQWRkVG9JbmNsdWRlc0ZvcklETFR5cGUo
QHskdHlwZS0+c3VidHlwZXN9WzBdLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzUmVjb3JkVHlw
ZSgkdHlwZSkpIHsKICAgICAgICAgQWRkVG9JbmNsdWRlcygiPHd0Zi9WZWN0b3IuaD4iLCAkaW5j
bHVkZXNSZWYsICRjb25kaXRpb25hbCk7CisgICAgICAgIEFkZFRvSW5jbHVkZXMoIkpTRE9NQ29u
dmVydFJlY29yZC5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworCiAgICAgICAgIEFk
ZFRvSW5jbHVkZXNGb3JJRExUeXBlKEB7JHR5cGUtPnN1YnR5cGVzfVswXSwgJGluY2x1ZGVzUmVm
LCAkY29uZGl0aW9uYWwpOwogICAgICAgICBBZGRUb0luY2x1ZGVzRm9ySURMVHlwZShAeyR0eXBl
LT5zdWJ0eXBlc31bMV0sICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNQcm9taXNlVHlwZSgkdHlw
ZSkpIHsKLSAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNET01Qcm9taXNlLmgiLCAkaW5jbHVkZXNS
ZWYsICRjb25kaXRpb25hbCk7CisgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NlcXVlbmNlT3JG
cm96ZW5BcnJheVR5cGUoJHR5cGUpKSB7CisgICAgICAgIEFkZFRvSW5jbHVkZXMoIjxydW50aW1l
L0pTQXJyYXkuaD4iLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7CisgICAgICAgIEFkZFRv
SW5jbHVkZXMoIkpTRE9NQ29udmVydFNlcXVlbmNlcy5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0
aW9uYWwpOworCiAgICAgICAgIEFkZFRvSW5jbHVkZXNGb3JJRExUeXBlKEB7JHR5cGUtPnN1YnR5
cGVzfVswXSwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1dyYXBwZXJUeXBlKCR0eXBlKSB8fCAk
Y29kZUdlbmVyYXRvci0+SXNFeHRlcm5hbERpY3Rpb25hcnlUeXBlKCR0eXBlKSB8fCAkY29kZUdl
bmVyYXRvci0+SXNFeHRlcm5hbEVudW1UeXBlKCR0eXBlKSB8fCAkdHlwZS0+bmFtZSBlcSAiRXZl
bnRMaXN0ZW5lciIpIHsKLSAgICAgICAgQWRkVG9JbmNsdWRlcygiSlMiIC4gJHR5cGUtPm5hbWUg
LiAiLmgiLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7CisgICAgaWYgKCR0eXBlLT5uYW1l
IGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiKSB7CisgICAgICAgIEFkZFRvSW5jbHVkZXMoIlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworICAg
ICAgICBBZGRUb0luY2x1ZGVzKCJKU0RPTUNvbnZlcnRTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIs
ICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAg
ICAKLSAgICBpZiAoJHR5cGUtPm5hbWUgZXEgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIpIHsKLSAg
ICAgICAgQWRkVG9JbmNsdWRlcygkdHlwZS0+bmFtZSAuICIuaCIsICRpbmNsdWRlc1JlZiwgJGNv
bmRpdGlvbmFsKTsKKworICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCR0eXBl
KSkgeworICAgICAgICBBZGRUb0luY2x1ZGVzKCJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiLCAkaW5j
bHVkZXNSZWYsICRjb25kaXRpb25hbCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBp
ZiAoJHR5cGUtPmlzVW5pb24pIHsKKyAgICAgICAgQWRkVG9JbmNsdWRlcygiPHd0Zi9WYXJpYW50
Lmg+IiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworICAgICAgICBBZGRUb0luY2x1ZGVz
KCJKU0RPTUNvbnZlcnRVbmlvbi5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworCisg
ICAgICAgIGZvcmVhY2ggbXkgJG1lbWJlclR5cGUgKEB7JHR5cGUtPnN1YnR5cGVzfSkgeworICAg
ICAgICAgICAgQWRkVG9JbmNsdWRlc0ZvcklETFR5cGUoJG1lbWJlclR5cGUsICRpbmNsdWRlc1Jl
ZiwgJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBpZiAoJHR5cGUtPm5hbWUgZXEgIlhQYXRoTlNSZXNvbHZlciIpIHsKKyAgICAgICAgQWRk
VG9JbmNsdWRlcygiSlNYUGF0aE5TUmVzb2x2ZXIuaCIsICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlv
bmFsKTsKKyAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNET01Db252ZXJ0WFBhdGhOU1Jlc29sdmVy
LmgiLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiB9CkBAIC0xNTg3LDcgKzE2ODMsNyBAQCBzdWIgR2V0SlNDQXR0cmlidXRlc0ZvckF0dHJpYnV0
ZQogICAgIHB1c2goQHNwZWNpYWxzLCAiRG9udEVudW0iKSBpZiAoJGF0dHJpYnV0ZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Tm90RW51bWVyYWJsZX0gfHwgJGlzR2xvYmFsQ29uc3RydWN0b3IpOwog
ICAgIHB1c2goQHNwZWNpYWxzLCAiUmVhZE9ubHkiKSBpZiBJc1JlYWRvbmx5KCRhdHRyaWJ1dGUp
OwogICAgIHB1c2goQHNwZWNpYWxzLCAiQ3VzdG9tQWNjZXNzb3IiKSB1bmxlc3MgJGlzR2xvYmFs
Q29uc3RydWN0b3Igb3IgSXNKU0J1aWx0aW4oJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7Ci0gICAg
cHVzaChAc3BlY2lhbHMsICJET01KSVRBdHRyaWJ1dGUiKSBpZiAkYXR0cmlidXRlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiRE9NSklUIn07CisgICAgcHVzaChAc3BlY2lhbHMsICJET01KSVRBdHRy
aWJ1dGUiKSBpZiAkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntET01KSVR9OwogICAg
IHB1c2goQHNwZWNpYWxzLCAiQWNjZXNzb3IgfCBCdWlsdGluIikgaWYgIElzSlNCdWlsdGluKCRp
bnRlcmZhY2UsICRhdHRyaWJ1dGUpOwogICAgIHJldHVybiAoQHNwZWNpYWxzID4gMCkgPyBqb2lu
KCIgfCAiLCBAc3BlY2lhbHMpIDogIjAiOwogfQpAQCAtMTgyOSwxMCArMTkyNSw5IEBAIHN1YiBH
ZW5lcmF0ZUVudW1lcmF0aW9uSGVhZGVyCiAgCiAgICAgIyAtIEFkZCBkZWZhdWx0IGhlYWRlciB0
ZW1wbGF0ZSBhbmQgaGVhZGVyIHByb3RlY3Rpb24uCiAgICAgcHVzaChAaGVhZGVyQ29udGVudEhl
YWRlciwgR2VuZXJhdGVIZWFkZXJDb250ZW50SGVhZGVyKCRlbnVtZXJhdGlvbikpOwotIAotICAg
ICRoZWFkZXJJbmNsdWRlc3siJGNsYXNzTmFtZS5oIn0gPSAxOwotICAgICRoZWFkZXJJbmNsdWRl
c3siSlNET01Db252ZXJ0LmgifSA9IDE7Ci0gCisKKyAgICAkaGVhZGVySW5jbHVkZXN7IiR7Y2xh
c3NOYW1lfS5oIn0gPSAxOworCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIlxubmFtZXNwYWNl
IFdlYkNvcmUge1xuXG4iKTsKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCBHZW5lcmF0ZUVudW1l
cmF0aW9uSGVhZGVyQ29udGVudCgkZW51bWVyYXRpb24sICRjbGFzc05hbWUpKTsKICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAifSAvLyBuYW1lc3BhY2UgV2ViQ29yZVxuIik7CkBAIC0xODQ3LDEx
ICsxOTQyLDcgQEAgc3ViIEdlbmVyYXRlRW51bWVyYXRpb25JbXBsZW1lbnRhdGlvbgogIAogICAg
ICMgLSBBZGQgZGVmYXVsdCBoZWFkZXIgdGVtcGxhdGUKICAgICBwdXNoKEBpbXBsQ29udGVudEhl
YWRlciwgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbkNvbnRlbnRIZWFkZXIoJGVudW1lcmF0aW9uKSk7
Ci0gICAgCi0gICAgIyBGSVhNRTogQSBsaXR0bGUgdWdseSB0byBoYXZlIHRoaXMgYmUgYSBzaWRl
IGVmZmVjdCBpbnN0ZWFkIG9mIGEgcmV0dXJuIHZhbHVlLgotICAgIEFkZFRvSW1wbEluY2x1ZGVz
KCI8cnVudGltZS9KU1N0cmluZy5oPiIpOwotICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKU0RPTUNv
bnZlcnQuaCIpOwotIAorCiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbnVzaW5nIG5hbWVzcGFj
ZSBKU0M7XG5cbiIpOwogICAgIHB1c2goQGltcGxDb250ZW50LCAibmFtZXNwYWNlIFdlYkNvcmUg
e1xuXG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgR2VuZXJhdGVFbnVtZXJhdGlvbkltcGxl
bWVudGF0aW9uQ29udGVudCgkZW51bWVyYXRpb24sICRjbGFzc05hbWUpKTsKQEAgLTE4NjQsNyAr
MTk1NSwxMSBAQCBzdWIgR2VuZXJhdGVFbnVtZXJhdGlvbkltcGxlbWVudGF0aW9uCiBzdWIgR2Vu
ZXJhdGVFbnVtZXJhdGlvbkltcGxlbWVudGF0aW9uQ29udGVudAogewogICAgIG15ICgkZW51bWVy
YXRpb24sICRjbGFzc05hbWUsICRpbnRlcmZhY2UsICRjb25kaXRpb25hbFN0cmluZykgPSBAXzsK
LSAgICAKKworICAgICMgRklYTUU6IEEgbGl0dGxlIHVnbHkgdG8gaGF2ZSB0aGlzIGJlIGEgc2lk
ZSBlZmZlY3QgaW5zdGVhZCBvZiBhIHJldHVybiB2YWx1ZS4KKyAgICBBZGRUb0ltcGxJbmNsdWRl
cygiPHJ1bnRpbWUvSlNTdHJpbmcuaD4iKTsKKyAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlNET01D
b252ZXJ0RW51bWVyYXRpb24uaCIpOworCiAgICAgbXkgJHJlc3VsdCA9ICIiOwogICAgICRyZXN1
bHQgLj0gIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuXG4iIGlmICRjb25kaXRpb25hbFN0cmlu
ZzsKIApAQCAtMTkyNiwxMCArMjAyMSw2IEBAIHN1YiBHZW5lcmF0ZUVudW1lcmF0aW9uc0ltcGxl
bWVudGF0aW9uQ28KICAgICBteSAoJGludGVyZmFjZSwgJGVudW1lcmF0aW9ucykgPSBAXzsKIAog
ICAgIHJldHVybiAiIiB1bmxlc3MgQCRlbnVtZXJhdGlvbnM7Ci0gICAgCi0gICAgIyBGSVhNRTog
QSBsaXR0bGUgdWdseSB0byBoYXZlIHRoaXMgYmUgYSBzaWRlIGVmZmVjdCBpbnN0ZWFkIG9mIGEg
cmV0dXJuIHZhbHVlLgotICAgIEFkZFRvSW1wbEluY2x1ZGVzKCI8cnVudGltZS9KU1N0cmluZy5o
PiIpOwotICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKU0RPTUNvbnZlcnQuaCIpOwogCiAgICAgbXkg
JHJlc3VsdCA9ICIiOwogICAgIGZvcmVhY2ggbXkgJGVudW1lcmF0aW9uIChAJGVudW1lcmF0aW9u
cykgewpAQCAtMTk0NCw2ICsyMDM1LDggQEAgc3ViIEdlbmVyYXRlRW51bWVyYXRpb25IZWFkZXJD
b250ZW50CiB7CiAgICAgbXkgKCRlbnVtZXJhdGlvbiwgJGNsYXNzTmFtZSwgJGNvbmRpdGlvbmFs
U3RyaW5nKSA9IEBfOwogCisgICAgJGhlYWRlckluY2x1ZGVzeyJKU0RPTUNvbnZlcnRFbnVtZXJh
dGlvbi5oIn0gPSAxOworCiAgICAgbXkgJHJlc3VsdCA9ICIiOwogICAgICRyZXN1bHQgLj0gIiNp
ZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuXG4iIGlmICRjb25kaXRpb25hbFN0cmluZzsKIApAQCAt
MTk2Niw4ICsyMDU5LDYgQEAgc3ViIEdlbmVyYXRlRW51bWVyYXRpb25zSGVhZGVyQ29udGVudAog
ICAgICMgRklYTUU6IENvdWxkIG9wdGltaXplIHRoaXMgdG8gb25seSBnZW5lcmF0ZSB0aGUgcGFy
dHMgb2YgZWFjaCBlbnVtZXJhdGlvbiB0aGF0IGFyZSBhY3R1YWxseQogICAgICMgdXNlZCwgd2hp
Y2ggd291bGQgcmVxdWlyZSBpdGVyYXRpbmcgb3ZlciBldmVyeXRoaW5nIGluIHRoZSBpbnRlcmZh
Y2UuCiAKLSAgICAkaGVhZGVySW5jbHVkZXN7IkpTRE9NQ29udmVydC5oIn0gPSAxOwotCiAgICAg
bXkgJHJlc3VsdCA9ICIiOwogICAgIGZvcmVhY2ggbXkgJGVudW1lcmF0aW9uIChAJGVudW1lcmF0
aW9ucykgewogICAgICAgICBteSAkY2xhc3NOYW1lID0gR2V0RW51bWVyYXRpb25DbGFzc05hbWUo
JGVudW1lcmF0aW9uLT50eXBlLCAkaW50ZXJmYWNlKTsKQEAgLTIwNDIsOSArMjEzMywxMSBAQCBz
dWIgR2VuZXJhdGVEaWN0aW9uYXJ5SGVhZGVyQ29udGVudAogewogICAgIG15ICgkZGljdGlvbmFy
eSwgJGNsYXNzTmFtZSwgJGNvbmRpdGlvbmFsU3RyaW5nKSA9IEBfOwogCisgICAgJGhlYWRlcklu
Y2x1ZGVzeyJKU0RPTUNvbnZlcnREaWN0aW9uYXJ5LmgifSA9IDE7CisKICAgICBteSAkcmVzdWx0
ID0gIiI7CiAgICAgJHJlc3VsdCAuPSAiI2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG5cbiIgaWYg
JGNvbmRpdGlvbmFsU3RyaW5nOwotICAgICRyZXN1bHQgLj0gInRlbXBsYXRlPD4gJHtjbGFzc05h
bWV9IGNvbnZlcnREaWN0aW9uYXJ5PCRjbGFzc05hbWU+KEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpK
U1ZhbHVlKTtcblxuIjsKKyAgICAkcmVzdWx0IC49ICJ0ZW1wbGF0ZTw+ICR7Y2xhc3NOYW1lfSBj
b252ZXJ0RGljdGlvbmFyeTwke2NsYXNzTmFtZX0+KEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU1Zh
bHVlKTtcblxuIjsKIAogICAgIGlmICgkZGljdGlvbmFyeS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
SlNHZW5lcmF0ZVRvSlNPYmplY3R9KSB7CiAgICAgICAgICRyZXN1bHQgLj0gIkpTQzo6SlNPYmpl
Y3QqIGNvbnZlcnREaWN0aW9uYXJ5VG9KUyhKU0M6OkV4ZWNTdGF0ZSYsIEpTRE9NR2xvYmFsT2Jq
ZWN0JiwgY29uc3QgJHtjbGFzc05hbWV9Jik7XG5cbiI7CkBAIC0yMDYwLDggKzIxNTMsNiBAQCBz
dWIgR2VuZXJhdGVEaWN0aW9uYXJpZXNIZWFkZXJDb250ZW50CiAKICAgICByZXR1cm4gIiIgdW5s
ZXNzIEAkYWxsRGljdGlvbmFyaWVzOwogCi0gICAgJGhlYWRlckluY2x1ZGVzeyJKU0RPTUNvbnZl
cnQuaCJ9ID0gMTsKLQogICAgIG15ICRyZXN1bHQgPSAiIjsKICAgICBmb3JlYWNoIG15ICRkaWN0
aW9uYXJ5IChAJGFsbERpY3Rpb25hcmllcykgewogICAgICAgICAkaGVhZGVySW5jbHVkZXN7JHR5
cGVTY29wZS0+dHlwZS0+bmFtZSAuICIuaCJ9ID0gMSBpZiAkdHlwZVNjb3BlOwpAQCAtMjA3NCwx
NyArMjE2NSwyMSBAQCBzdWIgR2VuZXJhdGVEaWN0aW9uYXJpZXNIZWFkZXJDb250ZW50CiAKIHN1
YiBHZW5lcmF0ZURpY3Rpb25hcnlJbXBsZW1lbnRhdGlvbkNvbnRlbnQKIHsKLSAgICBteSAoJGRp
Y3Rpb25hcnksICRjbGFzc05hbWUsICRpbnRlcmZhY2UsICRjb25kaXRpb25hbFN0cmluZykgPSBA
XzsKKyAgICBteSAoJGRpY3Rpb25hcnksICRjbGFzc05hbWUsICRpbnRlcmZhY2UpID0gQF87CiAK
ICAgICBteSAkcmVzdWx0ID0gIiI7CiAKICAgICBteSAkbmFtZSA9ICRkaWN0aW9uYXJ5LT50eXBl
LT5uYW1lOwogICAgIG15ICR0eXBlU2NvcGUgPSAkaW50ZXJmYWNlIHx8ICRkaWN0aW9uYXJ5Owog
Ci0gICAgJHJlc3VsdCAuPSAiI2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG5cbiIgaWYgJGNvbmRp
dGlvbmFsU3RyaW5nOworICAgIG15ICRjb25kaXRpb25hbCA9ICRkaWN0aW9uYXJ5LT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPntDb25kaXRpb25hbH07CisgICAgaWYgKCRjb25kaXRpb25hbCkgeworICAg
ICAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25k
aXRpb25hbFN0cmluZ0Zyb21BdHRyaWJ1dGVWYWx1ZSgkY29uZGl0aW9uYWwpOworICAgICAgICAk
cmVzdWx0IC49ICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31cblxuIjsKKyAgICB9CiAKICAgICAj
IEZJWE1FOiBBIGxpdHRsZSB1Z2x5IHRvIGhhdmUgdGhpcyBiZSBhIHNpZGUgZWZmZWN0IGluc3Rl
YWQgb2YgYSByZXR1cm4gdmFsdWUuCi0gICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTRE9NQ29udmVy
dC5oIik7CisgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTRE9NQ29udmVydERpY3Rpb25hcnkuaCIp
OwogCiAgICAgIyBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNlcy1kaWN0aW9uYXJ5
CiAgICAgJHJlc3VsdCAuPSAidGVtcGxhdGU8PiAkY2xhc3NOYW1lIGNvbnZlcnREaWN0aW9uYXJ5
PCRjbGFzc05hbWU+KEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUpXG4iOwpAQCAtMjEz
Nyw3ICsyMjMyLDcgQEAgc3ViIEdlbmVyYXRlRGljdGlvbmFyeUltcGxlbWVudGF0aW9uQ29udAog
CiAgICAgICAgICAgICAjIDUuMS4gTGV0IGtleSBiZSB0aGUgaWRlbnRpZmllciBvZiBtZW1iZXIu
CiAgICAgICAgICAgICBteSAka2V5ID0gJG1lbWJlci0+bmFtZTsKLSAgICAgICAgICAgIG15ICRp
bXBsZW1lbnRlZEFzS2V5ID0gJG1lbWJlci0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkltcGxlbWVu
dGVkQXMifSA/ICRtZW1iZXItPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBsZW1lbnRlZEFzIn0g
OiAka2V5OworICAgICAgICAgICAgbXkgJGltcGxlbWVudGVkQXNLZXkgPSAkbWVtYmVyLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPntJbXBsZW1lbnRlZEFzfSB8fCAka2V5OwogCiAgICAgICAgICAgICAj
IDUuMi4gTGV0IHZhbHVlIGJlIGFuIEVDTUFTY3JpcHQgdmFsdWUsIGRlcGVuZGluZyBvbiBUeXBl
KFYpOgogICAgICAgICAgICAgJHJlc3VsdCAuPSAiICAgIEpTVmFsdWUgJHtrZXl9VmFsdWUgPSBp
c051bGxPclVuZGVmaW5lZCA/IGpzVW5kZWZpbmVkKCkgOiBvYmplY3QtPmdldCgmc3RhdGUsIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoJnN0YXRlLCBcIiR7a2V5fVwiKSk7XG4iOwpAQCAtMjE3Miwx
MiArMjI2NywxNSBAQCBzdWIgR2VuZXJhdGVEaWN0aW9uYXJ5SW1wbGVtZW50YXRpb25Db250CiAg
ICAgJHJlc3VsdCAuPSAifVxuXG4iOwogCiAgICAgaWYgKCRkaWN0aW9uYXJ5LT5leHRlbmRlZEF0
dHJpYnV0ZXMtPntKU0dlbmVyYXRlVG9KU09iamVjdH0pIHsKKyAgICAgICAgQWRkVG9JbXBsSW5j
bHVkZXMoIkpTRE9NR2xvYmFsT2JqZWN0LmgiKTsKKyAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMo
IjxydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmg+Iik7CisKICAgICAgICAgJHJlc3VsdCAuPSAi
SlNDOjpKU09iamVjdCogY29udmVydERpY3Rpb25hcnlUb0pTKEpTQzo6RXhlY1N0YXRlJiBzdGF0
ZSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgY29uc3QgJHtjbGFzc05hbWV9JiBk
aWN0aW9uYXJ5KVxuIjsKICAgICAgICAgJHJlc3VsdCAuPSAie1xuIjsKICAgICAgICAgJHJlc3Vs
dCAuPSAiICAgIGF1dG8mIHZtID0gc3RhdGUudm0oKTtcblxuIjsKIAogICAgICAgICAjIDEuIExl
dCBPIGJlICEgT2JqZWN0Q3JlYXRlKCVPYmplY3RQcm90b3R5cGUlKS4KLSAgICAgICAgJHJlc3Vs
dCAuPSAiICAgIGF1dG8gcmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoJnN0YXRlKTtcblxu
IjsKKyAgICAgICAgJHJlc3VsdCAuPSAiICAgIGF1dG8gcmVzdWx0ID0gY29uc3RydWN0RW1wdHlP
YmplY3QoJnN0YXRlLCBnbG9iYWxPYmplY3Qub2JqZWN0UHJvdG90eXBlKCkpO1xuXG4iOwogCiAg
ICAgICAgICMgMi4gTGV0IGRpY3Rpb25hcmllcyBiZSBhIGxpc3QgY29uc2lzdGluZyBvZiBEIGFu
ZCBhbGwgb2YgROKAmXMgaW5oZXJpdGVkIGRpY3Rpb25hcmllcywKICAgICAgICAgIyAgICBpbiBv
cmRlciBmcm9tIGxlYXN0IHRvIG1vc3QgZGVyaXZlZC4KQEAgLTIxODksMjEgKzIyODcsMjcgQEAg
c3ViIEdlbmVyYXRlRGljdGlvbmFyeUltcGxlbWVudGF0aW9uQ29udAogICAgICAgICAgICAgbXkg
QHNvcnRlZE1lbWJlcnMgPSBzb3J0IHsgJGEtPm5hbWUgY21wICRiLT5uYW1lIH0gQHskZGljdGlv
bmFyeS0+bWVtYmVyc307CiAgICAgICAgICAgICBmb3JlYWNoIG15ICRtZW1iZXIgKEBzb3J0ZWRN
ZW1iZXJzKSB7CiAgICAgICAgICAgICAgICAgbXkgJGtleSA9ICRtZW1iZXItPm5hbWU7Ci0gICAg
ICAgICAgICAgICAgbXkgJGltcGxlbWVudGVkQXNLZXkgPSAkbWVtYmVyLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiSW1wbGVtZW50ZWRBcyJ9ID8gJG1lbWJlci0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkltcGxlbWVudGVkQXMifSA6ICRrZXk7CisgICAgICAgICAgICAgICAgbXkgJGltcGxlbWVudGVk
QXNLZXkgPSAkbWVtYmVyLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntJbXBsZW1lbnRlZEFzfSB8fCAk
a2V5OworICAgICAgICAgICAgICAgIG15ICR2YWx1ZUV4cHJlc3Npb24gPSAiZGljdGlvbmFyeS4k
e2ltcGxlbWVudGVkQXNLZXl9IjsKIAogICAgICAgICAgICAgICAgICMgMS4gTGV0IGtleSBiZSB0
aGUgaWRlbnRpZmllciBvZiBtZW1iZXIuCiAgICAgICAgICAgICAgICAgIyAyLiBJZiB0aGUgZGlj
dGlvbmFyeSBtZW1iZXIgbmFtZWQga2V5IGlzIHByZXNlbnQgaW4gViwgdGhlbjoKICAgICAgICAg
ICAgICAgICAgICAgIyAxLiBMZXQgaWRsVmFsdWUgYmUgdGhlIHZhbHVlIG9mIG1lbWJlciBvbiBW
LgogICAgICAgICAgICAgICAgICAgICAjIDIuIExldCB2YWx1ZSBiZSB0aGUgcmVzdWx0IG9mIGNv
bnZlcnRpbmcgaWRsVmFsdWUgdG8gYW4gRUNNQVNjcmlwdCB2YWx1ZS4KICAgICAgICAgICAgICAg
ICAgICAgIyAzLiBQZXJmb3JtICEgQ3JlYXRlRGF0YVByb3BlcnR5KE8sIGtleSwgdmFsdWUpLgot
ICAgICAgICAgICAgICAgIG15ICRJRExUeXBlID0gR2V0SURMVHlwZSgkdHlwZVNjb3BlLCAkbWVt
YmVyLT50eXBlKTsKKwogICAgICAgICAgICAgICAgIGlmICghJG1lbWJlci0+aXNSZXF1aXJlZCAm
JiBub3QgZGVmaW5lZCAkbWVtYmVyLT5kZWZhdWx0KSB7Ci0gICAgICAgICAgICAgICAgICAgICRy
ZXN1bHQgLj0gIiAgICBpZiAoISR7SURMVHlwZX06OmlzTnVsbFZhbHVlKGRpY3Rpb25hcnkuJHtp
bXBsZW1lbnRlZEFzS2V5fSkpIHtcbiI7Ci0gICAgICAgICAgICAgICAgICAgICRyZXN1bHQgLj0g
IiAgICAgICAgYXV0byAke2tleX1WYWx1ZSA9IHRvSlM8JElETFR5cGU+KHN0YXRlLCBnbG9iYWxP
YmplY3QsICR7SURMVHlwZX06OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LiR7
aW1wbGVtZW50ZWRBc0tleX0pKTtcbiI7CisgICAgICAgICAgICAgICAgICAgIG15ICRJRExUeXBl
ID0gR2V0SURMVHlwZSgkdHlwZVNjb3BlLCAkbWVtYmVyLT50eXBlKTsKKyAgICAgICAgICAgICAg
ICAgICAgbXkgJGNvbnZlcnNpb25FeHByZXNzaW9uID0gTmF0aXZlVG9KU1ZhbHVlVXNpbmdSZWZl
cmVuY2VzKCRtZW1iZXIsICR0eXBlU2NvcGUsICIke0lETFR5cGV9OjpleHRyYWN0VmFsdWVGcm9t
TnVsbGFibGUoJHt2YWx1ZUV4cHJlc3Npb259KSIsICJnbG9iYWxPYmplY3QiKTsKKworICAgICAg
ICAgICAgICAgICAgICAkcmVzdWx0IC49ICIgICAgaWYgKCEke0lETFR5cGV9Ojppc051bGxWYWx1
ZSgke3ZhbHVlRXhwcmVzc2lvbn0pKSB7XG4iOworICAgICAgICAgICAgICAgICAgICAkcmVzdWx0
IC49ICIgICAgICAgIGF1dG8gJHtrZXl9VmFsdWUgPSAke2NvbnZlcnNpb25FeHByZXNzaW9ufTtc
biI7CiAgICAgICAgICAgICAgICAgICAgICRyZXN1bHQgLj0gIiAgICAgICAgcmVzdWx0LT5wdXRE
aXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIFwiJHtrZXl9XCIpLCAk
e2tleX1WYWx1ZSk7XG4iOwogICAgICAgICAgICAgICAgICAgICAkcmVzdWx0IC49ICIgICAgfVxu
IjsKICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAkcmVzdWx0
IC49ICIgICAgYXV0byAke2tleX1WYWx1ZSA9IHRvSlM8JElETFR5cGU+KHN0YXRlLCBnbG9iYWxP
YmplY3QsIGRpY3Rpb25hcnkuJHtpbXBsZW1lbnRlZEFzS2V5fSk7XG4iOworICAgICAgICAgICAg
ICAgICAgICBteSAkY29udmVyc2lvbkV4cHJlc3Npb24gPSBOYXRpdmVUb0pTVmFsdWVVc2luZ1Jl
ZmVyZW5jZXMoJG1lbWJlciwgJHR5cGVTY29wZSwgJHZhbHVlRXhwcmVzc2lvbiwgImdsb2JhbE9i
amVjdCIpOworCisgICAgICAgICAgICAgICAgICAgICRyZXN1bHQgLj0gIiAgICBhdXRvICR7a2V5
fVZhbHVlID0gJHtjb252ZXJzaW9uRXhwcmVzc2lvbn07XG4iOwogICAgICAgICAgICAgICAgICAg
ICAkcmVzdWx0IC49ICIgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6
ZnJvbVN0cmluZygmdm0sIFwiJHtrZXl9XCIpLCAke2tleX1WYWx1ZSk7XG4iOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTIyMTMsNyArMjMxNyw3IEBAIHN1YiBHZW5lcmF0
ZURpY3Rpb25hcnlJbXBsZW1lbnRhdGlvbkNvbnQKICAgICAgICAgJHJlc3VsdCAuPSAifVxuXG4i
OwogICAgIH0KIAotICAgICRyZXN1bHQgLj0gIiNlbmRpZlxuXG4iIGlmICRjb25kaXRpb25hbFN0
cmluZzsKKyAgICAkcmVzdWx0IC49ICIjZW5kaWZcblxuIiBpZiAkY29uZGl0aW9uYWw7CiAKICAg
ICByZXR1cm4gJHJlc3VsdDsKIH0KQEAgLTIyMjUsOCArMjMyOSw3IEBAIHN1YiBHZW5lcmF0ZURp
Y3Rpb25hcmllc0ltcGxlbWVudGF0aW9uQ28KICAgICBteSAkcmVzdWx0ID0gIiI7CiAgICAgZm9y
ZWFjaCBteSAkZGljdGlvbmFyeSAoQCRhbGxEaWN0aW9uYXJpZXMpIHsKICAgICAgICAgbXkgJGNs
YXNzTmFtZSA9IEdldERpY3Rpb25hcnlDbGFzc05hbWUoJGRpY3Rpb25hcnktPnR5cGUsICR0eXBl
U2NvcGUpOwotICAgICAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+
R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkZGljdGlvbmFyeSk7Ci0gICAgICAgICRyZXN1bHQg
Lj0gR2VuZXJhdGVEaWN0aW9uYXJ5SW1wbGVtZW50YXRpb25Db250ZW50KCRkaWN0aW9uYXJ5LCAk
Y2xhc3NOYW1lLCAkdHlwZVNjb3BlLCAkY29uZGl0aW9uYWxTdHJpbmcpOworICAgICAgICAkcmVz
dWx0IC49IEdlbmVyYXRlRGljdGlvbmFyeUltcGxlbWVudGF0aW9uQ29udGVudCgkZGljdGlvbmFy
eSwgJGNsYXNzTmFtZSwgJHR5cGVTY29wZSk7CiAgICAgfQogICAgIHJldHVybiAkcmVzdWx0Owog
fQpAQCAtMjUwOSw3ICsyNjEyLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKICAgICAjIFNlcmlh
bGl6ZXIgZnVuY3Rpb24uCiAgICAgaWYgKCRpbnRlcmZhY2UtPnNlcmlhbGl6YWJsZSkgewotICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBzZXJp
YWxpemUoSlNDOjpFeGVjU3RhdGUqLCAke2NsYXNzTmFtZX0qIHRoaXNPYmplY3QsIEpTQzo6VGhy
b3dTY29wZSYpO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGlj
IEpTQzo6SlNPYmplY3QqIHNlcmlhbGl6ZShKU0M6OkV4ZWNTdGF0ZSYsICR7Y2xhc3NOYW1lfSYg
dGhpc09iamVjdCwgSlNET01HbG9iYWxPYmplY3QmLCBKU0M6OlRocm93U2NvcGUmKTtcbiIpOwog
ICAgIH0KICAgICAKICAgICBteSAkbnVtQ3VzdG9tT3BlcmF0aW9ucyA9IDA7CkBAIC0yNTMyLDcg
KzI2MzUsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgICAgICAgICAkbnVtQ2FjaGVk
QXR0cmlidXRlcysrOwogICAgICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjZW5k
aWZcbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICRoYXNET01KSVRBdHRyaWJ1dGVzID0gMSBpZiAkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiRE9NSklUIn07CisgICAgICAgICAgICAkaGFzRE9NSklUQXR0cmlidXRlcyA9IDEgaWYg
JGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RE9NSklUfTsKIAogICAgICAgICAgICAg
JGhhc0ZvcndhcmREZWNsYXJpbmdBdHRyaWJ1dGVzID0gMSBpZiAkYXR0cmlidXRlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPntGb3J3YXJkRGVjbGFyZUluSGVhZGVyfTsKICAgICAgICAgfQpAQCAtMjc3
MCw3ICsyODczLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgICRoZWFkZXJJbmNsdWRl
c3siPGRvbWppdC9ET01KSVRHZXR0ZXJTZXR0ZXIuaD4ifSA9IDE7CiAgICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsIi8vIERPTUpJVCBlbWl0dGVycyBmb3IgYXR0cmlidXRlc1xuXG4iKTsKICAg
ICAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRpbnRlcmZhY2UtPmF0dHJpYnV0ZXN9KSB7
Ci0gICAgICAgICAgICBuZXh0IHVubGVzcyAkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiRE9NSklUIn07CisgICAgICAgICAgICBuZXh0IHVubGVzcyAkYXR0cmlidXRlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPntET01KSVR9OwogICAgICAgICAgICAgYXNzZXJ0KCJPbmx5IERPTUpJVD1H
ZXR0ZXIgaXMgc3VwcG9ydGVkIGZvciBhdHRyaWJ1dGVzIikgdW5sZXNzICRjb2RlR2VuZXJhdG9y
LT5FeHRlbmRlZEF0dHJpYnV0ZUNvbnRhaW5zKCRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+e0RPTUpJVH0sICJHZXR0ZXIiKTsKIAogICAgICAgICAgICAgbXkgJGludGVyZmFjZU5hbWUg
PSAkaW50ZXJmYWNlLT50eXBlLT5uYW1lOwpAQCAtMjg3OSw3ICsyOTgyLDcgQEAgc3ViIEdlbmVy
YXRlUHJvcGVydGllc0hhc2hUYWJsZQogICAgICAgICBteSAkc3BlY2lhbCA9IEdldEpTQ0F0dHJp
YnV0ZXNGb3JBdHRyaWJ1dGUoJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7CiAgICAgICAgIHB1c2go
QCRoYXNoU3BlY2lhbHMsICRzcGVjaWFsKTsKIAotICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkRPTUpJVCJ9KSB7CisgICAgICAgIGlmICgkYXR0cmlidXRlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPntET01KSVR9KSB7CiAgICAgICAgICAgICBwdXNoKEAkaGFzaFZh
bHVlMSwgImRvbUpJVEdldHRlclNldHRlckZvciIgLiAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIC4g
JGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGF0dHJpYnV0ZS0+bmFtZSkpOwogICAgICAgICAg
ICAgcHVzaChAJGhhc2hWYWx1ZTIsICIwIik7CiAgICAgICAgIH0gZWxzZSB7CkBAIC0zMTQzLDcg
KzMyNDYsNyBAQCBzdWIgR2VuZXJhdGVPdmVybG9hZERpc3BhdGNoZXIKICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgICAgIGlmICgkY29uZGl0aW9uKVxuICAgICIpIGlmICRjb25kaXRp
b247CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gIiAuICRvdmVy
bG9hZEZ1bmN0aW9uUHJlZml4IC4gJG92ZXJsb2FkLT57b3ZlcmxvYWRJbmRleH0gLiAkb3Zlcmxv
YWRGdW5jdGlvblN1ZmZpeCAuICIoJHtwYXJhbWV0ZXJzVG9Gb3J3YXJkfSk7XG4iKTsKICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIjZW5kaWZcbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsK
LSAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoJGluY2x1ZGUsICRvdmVybG9hZC0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkNvbmRpdGlvbmFsIn0pIGlmICRpbmNsdWRlOworICAgICAgICBBZGRUb0lt
cGxJbmNsdWRlcygkaW5jbHVkZSwgJG92ZXJsb2FkLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDb25k
aXRpb25hbH0pIGlmICRpbmNsdWRlOwogICAgIH07CiAgICAgbXkgJGlzT3B0aW9uYWxQYXJhbWV0
ZXIgPSBzdWIgewogICAgICAgICBteSAoJHR5cGUsICRvcHRpb25hbGl0eSkgPSBAXzsKQEAgLTM3
ODMsMTEgKzM4ODYsMTEgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAg
IG15IEBzcGVjaWFscyA9ICgpOwogICAgICAgICAgICAgcHVzaChAc3BlY2lhbHMsICJEb250RGVs
ZXRlIikgaWYgSXNVbmZvcmdlYWJsZSgkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKICAgICAgICAg
ICAgIHB1c2goQHNwZWNpYWxzLCAiUmVhZE9ubHkiKSBpZiBJc1JlYWRvbmx5KCRhdHRyaWJ1dGUp
OwotICAgICAgICAgICAgcHVzaChAc3BlY2lhbHMsICJET01KSVRBdHRyaWJ1dGUiKSBpZiAkYXR0
cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRE9NSklUIn07CisgICAgICAgICAgICBwdXNo
KEBzcGVjaWFscywgIkRPTUpJVEF0dHJpYnV0ZSIpIGlmICRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+e0RPTUpJVH07CiAgICAgICAgICAgICBteSAkc3BlY2lhbCA9IChAc3BlY2lhbHMg
PiAwKSA/IGpvaW4oIiB8ICIsIEBzcGVjaWFscykgOiAiMCI7CiAgICAgICAgICAgICBwdXNoKEBo
YXNoU3BlY2lhbHMsICRzcGVjaWFsKTsKIAotICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJET01KSVQifSkgeworICAgICAgICAgICAgaWYgKCRhdHRyaWJ1
dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0RPTUpJVH0pIHsKICAgICAgICAgICAgICAgICBwdXNo
KEBoYXNoVmFsdWUxLCAiZG9tSklUR2V0dGVyU2V0dGVyRm9yIiAuICRpbnRlcmZhY2UtPnR5cGUt
Pm5hbWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5uYW1lKSk7CiAg
ICAgICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVlMiwgIjAiKTsKICAgICAgICAgICAgIH0gZWxz
ZSB7CkBAIC0zOTYyLDYgKzQwNjUsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAg
ICAgICAgICAgaWYgKElzS2V5VmFsdWVJdGVyYWJsZUludGVyZmFjZSgkaW50ZXJmYWNlKSBvciAk
aW50ZXJmYWNlLT5tYXBMaWtlKSB7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRvclN5bWJvbCwgZ2V0
RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5lbnRyaWVzUHVibGlj
TmFtZSgpKSwgRG9udEVudW0pO1xuIik7CiAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCI8cnVudGltZS9BcnJheVByb3RvdHlwZS5oPiIpOwog
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHB1dERpcmVjdCh2bSwgdm0u
cHJvcGVydHlOYW1lcy0+aXRlcmF0b3JTeW1ib2wsIGdsb2JhbE9iamVjdCgpLT5hcnJheVByb3Rv
dHlwZSgpLT5nZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnZh
bHVlc1ByaXZhdGVOYW1lKCkpLCBEb250RW51bSk7XG4iKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQpAQCAtNDE4MCw5ICs0Mjg0LDkgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAg
ICBpZiAoJG51bUF0dHJpYnV0ZXMgPiAwKSB7CiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJK
U0RPTUF0dHJpYnV0ZS5oIik7CiAKLSAgICAgICAgbXkgJGNhc3RpbmdGdW5jdGlvbiA9ICRpbnRl
cmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Qcm94eVRvSlNPYmplY3QifSA/ICJ0
byR7Y2xhc3NOYW1lfSIgOiBHZXRDYXN0aW5nSGVscGVyRm9yVGhpc09iamVjdCgkaW50ZXJmYWNl
KTsKKyAgICAgICAgbXkgJGNhc3RpbmdGdW5jdGlvbiA9ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0
cmlidXRlcy0+e0N1c3RvbVByb3h5VG9KU09iamVjdH0gPyAidG8ke2NsYXNzTmFtZX0iIDogR2V0
Q2FzdGluZ0hlbHBlckZvclRoaXNPYmplY3QoJGludGVyZmFjZSk7CiAgICAgICAgICMgRklYTUU6
IFJlbW92ZSBJbXBsaWNpdFRoaXMga2V5d29yZCBhcyBpdCBpcyBubyBsb25nZXIgZGVmaW5lZCBi
eSBXZWJJREwgc3BlYyBhbmQgaXMgb25seSB1c2VkIGluIERPTVdpbmRvdy4KLSAgICAgICAgaWYg
KCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBsaWNpdFRoaXMifSkgeworICAg
ICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57SW1wbGljaXRUaGlzfSkg
ewogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ0ZW1wbGF0ZTw+IGlubGluZSAke2Ns
YXNzTmFtZX0qIElETEF0dHJpYnV0ZTwke2NsYXNzTmFtZX0+OjpjYXN0KEV4ZWNTdGF0ZSYgc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSlcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGF1
dG8gZGVjb2RlZFRoaXNWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpO1xuIik7CkBA
IC00MjAyLDggKzQzMDYsOCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBB
ZGRUb0ltcGxJbmNsdWRlcygiSlNET01PcGVyYXRpb24uaCIpOwogCiAgICAgICAgICMgRklYTUU6
IE1ha2UgY29uc2lzdGVudCBJRExBdHRyaWJ1dGU8Pjo6Y2FzdCBhbmQgSURMT3BlcmF0aW9uPD46
OmNhc3QgaW4gY2FzZSBvZiBDdXN0b21Qcm94eVRvSlNPYmplY3QuCi0gICAgICAgIG15ICRjYXN0
aW5nRnVuY3Rpb24gPSAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tUHJv
eHlUb0pTT2JqZWN0In0gPyAidG8ke2NsYXNzTmFtZX0iIDogR2V0Q2FzdGluZ0hlbHBlckZvclRo
aXNPYmplY3QoJGludGVyZmFjZSk7Ci0gICAgICAgIG15ICR0aGlzVmFsdWUgPSAkaW50ZXJmYWNl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tUHJveHlUb0pTT2JqZWN0In0gPyAic3RhdGUu
dGhpc1ZhbHVlKCkudG9UaGlzKCZzdGF0ZSwgTm90U3RyaWN0TW9kZSkiIDogInN0YXRlLnRoaXNW
YWx1ZSgpIjsKKyAgICAgICAgbXkgJGNhc3RpbmdGdW5jdGlvbiA9ICRpbnRlcmZhY2UtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+e0N1c3RvbVByb3h5VG9KU09iamVjdH0gPyAidG8ke2NsYXNzTmFtZX0i
IDogR2V0Q2FzdGluZ0hlbHBlckZvclRoaXNPYmplY3QoJGludGVyZmFjZSk7CisgICAgICAgIG15
ICR0aGlzVmFsdWUgPSAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21Qcm94
eVRvSlNPYmplY3R9ID8gInN0YXRlLnRoaXNWYWx1ZSgpLnRvVGhpcygmc3RhdGUsIE5vdFN0cmlj
dE1vZGUpIiA6ICJzdGF0ZS50aGlzVmFsdWUoKSI7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAidGVtcGxhdGU8PiBpbmxpbmUgJHtjbGFzc05hbWV9KiBJRExPcGVyYXRpb248JHtjbGFzc05h
bWV9Pjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlKVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAie1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiAkY2Fz
dGluZ0Z1bmN0aW9uKHN0YXRlLnZtKCksICR0aGlzVmFsdWUpO1xuIik7CkBAIC00NjE0LDcgKzQ3
MTgsNyBAQCBzdWIgR2VuZXJhdGVBdHRyaWJ1dGVHZXR0ZXJEZWZpbml0aW9uCiAgICAgR2VuZXJh
dGVBdHRyaWJ1dGVHZXR0ZXJCb2R5RGVmaW5pdGlvbigkb3V0cHV0QXJyYXksICRpbnRlcmZhY2Us
ICRjbGFzc05hbWUsICRhdHRyaWJ1dGUsICRhdHRyaWJ1dGVHZXR0ZXJCb2R5TmFtZSwgJGNvbmRp
dGlvbmFsKTsKICAgICBHZW5lcmF0ZUF0dHJpYnV0ZUdldHRlclRyYW1wb2xpbmVEZWZpbml0aW9u
KCRvdXRwdXRBcnJheSwgJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSwgJGF0dHJp
YnV0ZUdldHRlck5hbWUsICRhdHRyaWJ1dGVHZXR0ZXJCb2R5TmFtZSwgJGNvbmRpdGlvbmFsKTsK
ICAgICAKLSAgICBpZiAoJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRPTUpJVCJ9
KSB7CisgICAgaWYgKCRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0RPTUpJVH0pIHsK
ICAgICAgICAgYXNzZXJ0KCJPbmx5IERPTUpJVD1HZXR0ZXIgaXMgc3VwcG9ydGVkIGZvciBhdHRy
aWJ1dGVzIikgdW5sZXNzICRjb2RlR2VuZXJhdG9yLT5FeHRlbmRlZEF0dHJpYnV0ZUNvbnRhaW5z
KCRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0RPTUpJVH0sICJHZXR0ZXIiKTsKIAog
ICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiPHd0Zi9OZXZlckRlc3Ryb3llZC5oPiIsICRjb25k
aXRpb25hbCk7CkBAIC01MDcwLDIyICs1MTc0LDIyIEBAIHN1YiBHZW5lcmF0ZVNlcmlhbGl6ZXJE
ZWZpbml0aW9uCiAKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiPHJ1bnRpbWUvT2JqZWN0Q29uc3Ry
dWN0b3IuaD4iKTsKIAotICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNDOjpKU09iamVjdCogSlMk
e2ludGVyZmFjZU5hbWV9OjpzZXJpYWxpemUoRXhlY1N0YXRlKiBzdGF0ZSwgSlMke2ludGVyZmFj
ZU5hbWV9KiB0aGlzT2JqZWN0LCBUaHJvd1Njb3BlJiB0aHJvd1Njb3BlKVxuIik7CisgICAgcHVz
aChAaW1wbENvbnRlbnQsICJKU0M6OkpTT2JqZWN0KiBKUyR7aW50ZXJmYWNlTmFtZX06OnNlcmlh
bGl6ZShFeGVjU3RhdGUmIHN0YXRlLCAke2NsYXNzTmFtZX0mIHRoaXNPYmplY3QsIEpTRE9NR2xv
YmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIFRocm93U2NvcGUmIHRocm93U2NvcGUpXG4iKTsKICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwotICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IGF1dG8mIHZtID0gc3RhdGUtPnZtKCk7XG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBhdXRvJiB2bSA9IHN0YXRlLnZtKCk7XG4iKTsKIAogICAgIGlmICgkaW50ZXJmYWNlLT5zZXJp
YWxpemFibGUtPmhhc0luaGVyaXQpIHsKICAgICAgICAgbXkgJHBhcmVudFNlcmlhbGl6ZXJJbnRl
cmZhY2VOYW1lID0gJHBhcmVudFNlcmlhbGl6ZXJJbnRlcmZhY2UtPnR5cGUtPm5hbWU7Ci0gICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGF1dG8qIHJlc3VsdCA9IEpTJHtwYXJlbnRTZXJp
YWxpemVySW50ZXJmYWNlTmFtZX06OnNlcmlhbGl6ZShzdGF0ZSwgdGhpc09iamVjdCwgdGhyb3dT
Y29wZSk7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgYXV0byogcmVzdWx0
ID0gSlMke3BhcmVudFNlcmlhbGl6ZXJJbnRlcmZhY2VOYW1lfTo6c2VyaWFsaXplKHN0YXRlLCB0
aGlzT2JqZWN0LCBnbG9iYWxPYmplY3QsIHRocm93U2NvcGUpO1xuIik7CiAgICAgfSBlbHNlIHsK
LSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgYXV0byogcmVzdWx0ID0gY29uc3RydWN0
RW1wdHlPYmplY3Qoc3RhdGUpO1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IGF1dG8qIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KCZzdGF0ZSwgZ2xvYmFsT2JqZWN0
Lm9iamVjdFByb3RvdHlwZSgpKTtcbiIpOwogICAgIH0KICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IlxuIik7CiAKICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEBzZXJpYWxpemVkQXR0cmlidXRl
cykgewogICAgICAgICBteSAkbmFtZSA9ICRhdHRyaWJ1dGUtPm5hbWU7CiAgICAgICAgIG15ICRn
ZXRGdW5jdGlvbk5hbWUgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFz
c05hbWUsICRhdHRyaWJ1dGUpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBhdXRv
ICR7bmFtZX1WYWx1ZSA9ICR7Z2V0RnVuY3Rpb25OYW1lfUdldHRlcigqc3RhdGUsICp0aGlzT2Jq
ZWN0LCB0aHJvd1Njb3BlKTtcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBh
dXRvICR7bmFtZX1WYWx1ZSA9ICR7Z2V0RnVuY3Rpb25OYW1lfUdldHRlcihzdGF0ZSwgdGhpc09i
amVjdCwgdGhyb3dTY29wZSk7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
dGhyb3dTY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpO1xuIik7CiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KCZ2bSwgXCIke25hbWV9XCIpLCAke25hbWV9VmFsdWUpO1xuIik7CiAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiXG4iKTsKQEAgLTUwOTUsMTQgKzUxOTksMTQgQEAgc3ViIEdlbmVyYXRlU2Vy
aWFsaXplckRlZmluaXRpb24KICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cbiIpOwogICAgIHB1
c2goQGltcGxDb250ZW50LCAiXG4iKTsKIAotICAgIHB1c2goQGltcGxDb250ZW50LCAic3RhdGlj
IGlubGluZSBFbmNvZGVkSlNWYWx1ZSAke3NlcmlhbGl6ZXJOYXRpdmVGdW5jdGlvbk5hbWV9Qm9k
eShFeGVjU3RhdGUqIHN0YXRlLCBKUyR7aW50ZXJmYWNlTmFtZX0qIHRoaXNPYmplY3QsIEpTQzo6
VGhyb3dTY29wZSYgdGhyb3dTY29wZSlcbiIpOworICAgIHB1c2goQGltcGxDb250ZW50LCAic3Rh
dGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSAke3NlcmlhbGl6ZXJOYXRpdmVGdW5jdGlvbk5hbWV9
Qm9keShFeGVjU3RhdGUqIHN0YXRlLCAke2NsYXNzTmFtZX0qIHRoaXNPYmplY3QsIEpTQzo6VGhy
b3dTY29wZSYgdGhyb3dTY29wZSlcbiIpOwogICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7
Ci0gICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKUyR7
aW50ZXJmYWNlTmFtZX06OnNlcmlhbGl6ZShzdGF0ZSwgdGhpc09iamVjdCwgdGhyb3dTY29wZSkp
O1xuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKUyR7aW50ZXJmYWNlTmFtZX06OnNlcmlhbGl6ZSgqc3RhdGUsICp0aGlzT2JqZWN0LCAqdGhp
c09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUpKTtcbiIpOwogICAgIHB1c2goQGlt
cGxDb250ZW50LCAifVxuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIpOwogICAgIHB1
c2goQGltcGxDb250ZW50LCAiRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCAke3NlcmlhbGl6
ZXJOYXRpdmVGdW5jdGlvbk5hbWV9KEV4ZWNTdGF0ZSogc3RhdGUpXG4iKTsKICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIntcbiIpOwotICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlMke2ludGVyZmFjZU5hbWV9Pjo6Y2FsbDwke3NlcmlhbGl6ZXJOYXRpdmVG
dW5jdGlvbk5hbWV9Qm9keT4oKnN0YXRlLCBcIiRzZXJpYWxpemVyRnVuY3Rpb25OYW1lXCIpO1xu
Iik7CisgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKUyR7
aW50ZXJmYWNlTmFtZX0+OjpjYWxsPCR7c2VyaWFsaXplck5hdGl2ZUZ1bmN0aW9uTmFtZX1Cb2R5
Pigqc3RhdGUsIFwiJHtzZXJpYWxpemVyRnVuY3Rpb25OYW1lfVwiKTtcbiIpOwogICAgIHB1c2go
QGltcGxDb250ZW50LCAifVxuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIpOwogfQpA
QCAtNTQ2Myw4ICs1NTY3LDcgQEAgc3ViIEdlbmVyYXRlRGljdGlvbmFyeUhlYWRlcgogICAgICMg
LSBBZGQgZGVmYXVsdCBoZWFkZXIgdGVtcGxhdGUgYW5kIGhlYWRlciBwcm90ZWN0aW9uLgogICAg
IHB1c2goQGhlYWRlckNvbnRlbnRIZWFkZXIsIEdlbmVyYXRlSGVhZGVyQ29udGVudEhlYWRlcigk
ZGljdGlvbmFyeSkpOwogCi0gICAgJGhlYWRlckluY2x1ZGVzeyIkY2xhc3NOYW1lLmgifSA9IDE7
Ci0gICAgJGhlYWRlckluY2x1ZGVzeyJKU0RPTUNvbnZlcnQuaCJ9ID0gMTsKKyAgICAkaGVhZGVy
SW5jbHVkZXN7IiR7Y2xhc3NOYW1lfS5oIn0gPSAxOwogCiAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIlxubmFtZXNwYWNlIFdlYkNvcmUge1xuXG4iKTsKICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCBHZW5lcmF0ZURpY3Rpb25hcnlIZWFkZXJDb250ZW50KCRkaWN0aW9uYXJ5LCAkY2xhc3NOYW1l
KSk7CkBAIC02MTY0LDggKzYyNjcsNyBAQCBzdWIgSlNWYWx1ZVRvTmF0aXZlCiAgICAgJHRoaXNP
YmplY3RSZWZlcmVuY2UgPSAiKmNhc3RlZFRoaXMiIHVubGVzcyAkdGhpc09iamVjdFJlZmVyZW5j
ZTsKIAogICAgIEFkZFRvSW1wbEluY2x1ZGVzRm9ySURMVHlwZSgkdHlwZSwgJGNvbmRpdGlvbmFs
KTsKLQotICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKU0RPTUNvbnZlcnQuaCIpOworICAgIEFkZFRv
SW1wbEluY2x1ZGVzKCJKU0RPTUdsb2JhbE9iamVjdC5oIiwgJGNvbmRpdGlvbmFsKSBpZiBKU1Zh
bHVlVG9OYXRpdmVET01Db252ZXJ0TmVlZHNHbG9iYWxPYmplY3QoJHR5cGUpOwogCiAgICAgbXkg
JElETFR5cGUgPSBHZXRJRExUeXBlKCRpbnRlcmZhY2UsICR0eXBlKTsKIApAQCAtNjI2OSwyOSAr
NjM3MSwyOSBAQCBzdWIgTmF0aXZlVG9KU1ZhbHVlRE9NQ29udmVydE5lZWRzR2xvYmFsCiAKIHN1
YiBOYXRpdmVUb0pTVmFsdWVVc2luZ1JlZmVyZW5jZXMKIHsKLSAgICBteSAoJGNvbnRleHQsICRp
bnRlcmZhY2UsICR2YWx1ZSwgJGdsb2JhbE9iamVjdFJlZmVyZW5jZSwgJHN1cHByZXNzRXhjZXB0
aW9uQ2hlY2spID0gQF87CisgICAgbXkgKCRjb250ZXh0LCAkaW50ZXJmYWNlLCAkdmFsdWUsICRn
bG9iYWxPYmplY3RSZWZlcmVuY2UsICRzdXBwcmVzc0V4Y2VwdGlvbkNoZWNrLCAkZXhjbHVkZU51
bGxhYmlsaXR5KSA9IEBfOwogCi0gICAgcmV0dXJuIE5hdGl2ZVRvSlNWYWx1ZSgkY29udGV4dCwg
JGludGVyZmFjZSwgJHZhbHVlLCAic3RhdGUiLCAkZ2xvYmFsT2JqZWN0UmVmZXJlbmNlLCAkc3Vw
cHJlc3NFeGNlcHRpb25DaGVjayk7CisgICAgcmV0dXJuIE5hdGl2ZVRvSlNWYWx1ZSgkY29udGV4
dCwgJGludGVyZmFjZSwgJHZhbHVlLCAic3RhdGUiLCAkZ2xvYmFsT2JqZWN0UmVmZXJlbmNlLCAk
c3VwcHJlc3NFeGNlcHRpb25DaGVjaywgJGV4Y2x1ZGVOdWxsYWJpbGl0eSk7CiB9CiAKICMgRklY
TUU6IFdlIHNob3VsZCByZW1vdmUgTmF0aXZlVG9KU1ZhbHVlVXNpbmdQb2ludGVycyBhbmQgY29t
YmluZSBOYXRpdmVUb0pTVmFsdWVVc2luZ1JlZmVyZW5jZXMgYW5kIE5hdGl2ZVRvSlNWYWx1ZQog
c3ViIE5hdGl2ZVRvSlNWYWx1ZVVzaW5nUG9pbnRlcnMKIHsKLSAgICBteSAoJGNvbnRleHQsICRp
bnRlcmZhY2UsICR2YWx1ZSwgJGdsb2JhbE9iamVjdFJlZmVyZW5jZSwgJHN1cHByZXNzRXhjZXB0
aW9uQ2hlY2spID0gQF87CisgICAgbXkgKCRjb250ZXh0LCAkaW50ZXJmYWNlLCAkdmFsdWUsICRn
bG9iYWxPYmplY3RSZWZlcmVuY2UsICRzdXBwcmVzc0V4Y2VwdGlvbkNoZWNrLCAkZXhjbHVkZU51
bGxhYmlsaXR5KSA9IEBfOwogCi0gICAgcmV0dXJuIE5hdGl2ZVRvSlNWYWx1ZSgkY29udGV4dCwg
JGludGVyZmFjZSwgJHZhbHVlLCAiKnN0YXRlIiwgJGdsb2JhbE9iamVjdFJlZmVyZW5jZSwgJHN1
cHByZXNzRXhjZXB0aW9uQ2hlY2spOworICAgIHJldHVybiBOYXRpdmVUb0pTVmFsdWUoJGNvbnRl
eHQsICRpbnRlcmZhY2UsICR2YWx1ZSwgIipzdGF0ZSIsICRnbG9iYWxPYmplY3RSZWZlcmVuY2Us
ICRzdXBwcmVzc0V4Y2VwdGlvbkNoZWNrLCAkZXhjbHVkZU51bGxhYmlsaXR5KTsKIH0KIAogc3Vi
IElzVmFsaWRDb250ZXh0Rm9yTmF0aXZlVG9KU1ZhbHVlCiB7CiAgICAgbXkgJGNvbnRleHQgPSBz
aGlmdDsKICAgICAKLSAgICByZXR1cm4gcmVmKCRjb250ZXh0KSBlcSAiSURMQXR0cmlidXRlIiB8
fCByZWYoJGNvbnRleHQpIGVxICJJRExPcGVyYXRpb24iIHx8IHJlZigkY29udGV4dCkgZXEgIklE
TEFyZ3VtZW50IjsKKyAgICByZXR1cm4gcmVmKCRjb250ZXh0KSBlcSAiSURMQXR0cmlidXRlIiB8
fCByZWYoJGNvbnRleHQpIGVxICJJRExBcmd1bWVudCIgfHwgcmVmKCRjb250ZXh0KSBlcSAiSURM
RGljdGlvbmFyeU1lbWJlciIgfHwgcmVmKCRjb250ZXh0KSBlcSAiSURMT3BlcmF0aW9uIjsKIH0K
IAogc3ViIE5hdGl2ZVRvSlNWYWx1ZQogewotICAgIG15ICgkY29udGV4dCwgJGludGVyZmFjZSwg
JHZhbHVlLCAkc3RhdGVSZWZlcmVuY2UsICRnbG9iYWxPYmplY3RSZWZlcmVuY2UsICRzdXBwcmVz
c0V4Y2VwdGlvbkNoZWNrKSA9IEBfOworICAgIG15ICgkY29udGV4dCwgJGludGVyZmFjZSwgJHZh
bHVlLCAkc3RhdGVSZWZlcmVuY2UsICRnbG9iYWxPYmplY3RSZWZlcmVuY2UsICRzdXBwcmVzc0V4
Y2VwdGlvbkNoZWNrLCAkZXhjbHVkZU51bGxhYmlsaXR5KSA9IEBfOwogCiAgICAgYXNzZXJ0KCJJ
bnZhbGlkIGNvbnRleHQgdHlwZSIpIGlmICFJc1ZhbGlkQ29udGV4dEZvck5hdGl2ZVRvSlNWYWx1
ZSgkY29udGV4dCk7CiAKQEAgLTYzMDcsMTQgKzY0MDksMTQgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1
ZQogICAgIH0KIAogICAgIEFkZFRvSW1wbEluY2x1ZGVzRm9ySURMVHlwZSgkdHlwZSwgJGNvbmRp
dGlvbmFsKTsKLSAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlNET01Db252ZXJ0LmgiLCAkY29uZGl0
aW9uYWwpOworICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKU0RPTUdsb2JhbE9iamVjdC5oIiwgJGNv
bmRpdGlvbmFsKSBpZiBOYXRpdmVUb0pTVmFsdWVET01Db252ZXJ0TmVlZHNHbG9iYWxPYmplY3Qo
JHR5cGUpOwogCiAgICAgaWYgKCRjb250ZXh0LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDaGVja1Nl
Y3VyaXR5Rm9yTm9kZX0pIHsKICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTRE9NQmluZGlu
Z1NlY3VyaXR5LmgiLCAkY29uZGl0aW9uYWwpOwogICAgICAgICAkdmFsdWUgPSAiQmluZGluZ1Nl
Y3VyaXR5OjpjaGVja1NlY3VyaXR5Rm9yTm9kZSgkc3RhdGVSZWZlcmVuY2UsICR2YWx1ZSkiOwog
ICAgIH0KIAotICAgIG15ICRJRExUeXBlID0gR2V0SURMVHlwZSgkaW50ZXJmYWNlLCAkdHlwZSk7
CisgICAgbXkgJElETFR5cGUgPSAkZXhjbHVkZU51bGxhYmlsaXR5ID8gR2V0SURMVHlwZUV4Y2x1
ZGluZ051bGxhYmlsaXR5KCRpbnRlcmZhY2UsICR0eXBlKSA6IEdldElETFR5cGUoJGludGVyZmFj
ZSwgJHR5cGUpOwogCiAgICAgbXkgQGNvbnZlcnNpb25Bcmd1bWVudHMgPSAoKTsKICAgICBwdXNo
KEBjb252ZXJzaW9uQXJndW1lbnRzLCAkc3RhdGVSZWZlcmVuY2UpIGlmIE5hdGl2ZVRvSlNWYWx1
ZURPTUNvbnZlcnROZWVkc1N0YXRlKCR0eXBlKSB8fCAkbWF5VGhyb3dFeGNlcHRpb247CkBAIC02
NzU0LDggKzY4NTYsNiBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3RvckRlZmluaXRpb24KICAgICAg
ICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBhdXRvKiBjYXN0ZWRUaGlzID0ganNDYXN0
PCR7Y29uc3RydWN0b3JDbGFzc05hbWV9Kj4oc3RhdGUtPmpzQ2FsbGVlKCkpO1xuIik7CiAgICAg
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgQVNTRVJUKGNhc3RlZFRoaXMpO1xuIik7
CiAKLSAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCI8cnVudGltZS9FcnJvci5oPiIpOwot
CiAgICAgICAgICAgICBHZW5lcmF0ZUFyZ3VtZW50c0NvdW50Q2hlY2soJG91dHB1dEFycmF5LCAk
b3BlcmF0aW9uLCAkaW50ZXJmYWNlLCAiICAgICIpOwogCiAgICAgICAgICAgICBteSAkZnVuY3Rp
b25JbXBsZW1lbnRhdGlvbk5hbWUgPSAkZ2VuZXJhdGluZ05hbWVkQ29uc3RydWN0b3IgPyAiY3Jl
YXRlRm9ySlNDb25zdHJ1Y3RvciIgOiAiY3JlYXRlIjsKQEAgLTY3NjYsNiArNjg2Niw4IEBAIHN1
YiBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbgogCiAgICAgICAgICAgICBteSAkSURMVHlw
ZSA9IEdldElETFR5cGUoJGludGVyZmFjZSwgJGludGVyZmFjZS0+dHlwZSk7CiAKKyAgICAgICAg
ICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKU0RPTUNvbnZlcnRJbnRlcmZhY2UuaCIpOworCiAgICAg
ICAgICAgICBteSBAY29uc3RydWN0aW9uQ29udmVyc2lvbkFyZ3VtZW50cyA9ICgpOwogICAgICAg
ICAgICAgcHVzaChAY29uc3RydWN0aW9uQ29udmVyc2lvbkFyZ3VtZW50cywgIipzdGF0ZSIpOwog
ICAgICAgICAgICAgcHVzaChAY29uc3RydWN0aW9uQ29udmVyc2lvbkFyZ3VtZW50cywgIipjYXN0
ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSIpOwpAQCAtNjk0MCw3ICs3MDQyLDcgQEAgc3ViIENvbXB1
dGVGdW5jdGlvblNwZWNpYWwKICAgICB9IGVsc2UgewogICAgICAgICBwdXNoKEBzcGVjaWFscywg
IkpTQzo6RnVuY3Rpb24iKTsKICAgICB9Ci0gICAgaWYgKCRvcGVyYXRpb24tPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJET01KSVQifSkgeworICAgIGlmICgkb3BlcmF0aW9uLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPntET01KSVR9KSB7CiAgICAgICAgIHB1c2goQHNwZWNpYWxzLCAiRE9NSklURnVuY3Rp
b24iKSBpZiAkb3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntET01KSVR9OwogICAgIH0K
ICAgICByZXR1cm4gKEBzcGVjaWFscyA+IDApID8gam9pbigiIHwgIiwgQHNwZWNpYWxzKSA6ICIw
IjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU01hcExp
a2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU01hcExpa2UuY3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNNYXBMaWtlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjQsNyArMjQsOCBAQAogI2luY2x1ZGUgIkpTRE9NQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiSlNE
T01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUu
aCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRBbnku
aCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNl
cHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NTWFwTGlrZS5oIgogI2luY2x1ZGUgIkpT
RE9NT3BlcmF0aW9uLmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNSZWFkT25seU1hcExpa2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5TWFwTGlrZS5jcHAJKHJldmlzaW9u
IDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Jl
YWRPbmx5TWFwTGlrZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDggQEAKICNpbmNs
dWRlICJKU0RPTUF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1
ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCi0jaW5jbHVkZSAiSlNET01D
b252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0QW55LmgiCisjaW5jbHVkZSAiSlNET01D
b252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNp
bmNsdWRlICJKU0RPTU1hcExpa2UuaCIKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURP
TU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAJKHJldmlzaW9uIDIxODI5OSkKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01P
YmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw5IEBACiAjaW5jbHVkZSAiSlNE
T01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nU2VjdXJpdHkuaCIKICNpbmNsdWRl
ICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9NQ29u
dmVydC5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEludGVyZmFjZS5oIgorI2luY2x1ZGUgIkpT
RE9NQ29udmVydE51bWJlcnMuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAj
aW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0
aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENF
UmVhY3Rpb25zLmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjYsOCArMjYsMTAgQEAKICNpbmNsdWRlICJKU0RPTUF0dHJpYnV0ZS5oIgogI2luY2x1ZGUg
IkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3Rh
YmxlLmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0
SW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUg
IkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKKyNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5o
IgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2Fj
aGUuaCIKICNpbmNsdWRlICJKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyLmgiCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnNT
dHJpbmdpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIuY3BwCShyZXZpc2lvbiAy
MTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcg
QEAKICNpbmNsdWRlICJKU0RPTUF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5o
IgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCi0jaW5jbHVk
ZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2lu
Y2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlv
bi5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dENhbGxiYWNrRnVuY3Rpb24uY3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIxLDcgKzIxLDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJKU1Rlc3RDYWxsYmFja0Z1bmN0aW9uLmgiCiAKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQu
aCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnROdW1iZXJzLmgiCisjaW5jbHVkZSAiSlNET01Db252
ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNs
dWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2su
aD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
YWxsYmFja0Z1bmN0aW9uUmV0aHJvdy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rpb25SZXRocm93LmNw
cAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rpb25SZXRocm93LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjEsOCArMjEsMTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1Rlc3RD
YWxsYmFja0Z1bmN0aW9uUmV0aHJvdy5oIgogCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisj
aW5jbHVkZSAiSlNET01Db252ZXJ0TnVtYmVycy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFNl
cXVlbmNlcy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFN0cmluZ3MuaCIKICNpbmNsdWRlICJK
U0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCisjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIK
ICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSA8cnVudGltZS9K
U0FycmF5Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uV2l0aFR5
cGVkZWZzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbldpdGhUeXBlZGVmcy5jcHAJKHJldmlzaW9u
IDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RDYWxsYmFja0Z1bmN0aW9uV2l0aFR5cGVkZWZzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEs
OCArMjEsMTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1Rlc3RDYWxsYmFj
a0Z1bmN0aW9uV2l0aFR5cGVkZWZzLmgiCiAKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNp
bmNsdWRlICJKU0RPTUNvbnZlcnROdWxsYWJsZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydE51
bWJlcnMuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTZXF1ZW5jZXMuaCIKICNpbmNsdWRlICJK
U0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCisjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIK
ICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSA8cnVudGltZS9K
U0FycmF5Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0ludGVyZmFjZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdENhbGxiYWNrSW50ZXJmYWNlLmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrSW50ZXJmYWNlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsMTQgQEAKICNpbmNsdWRlICJKU1Rlc3RDYWxs
YmFja0ludGVyZmFjZS5oIgogCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVj
dGFibGUuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRCb29sZWFuLmgiCisjaW5jbHVkZSAiSlNE
T01Db252ZXJ0QnVmZmVyU291cmNlLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0SW50ZXJmYWNl
LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0TnVtYmVycy5oIgorI2luY2x1ZGUgIkpTRE9NQ29u
dmVydFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFN0cmlu
Z3MuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCisjaW5jbHVkZSAiSlNE
T01HbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU0RPTVN0cmluZ0xpc3QuaCIKICNpbmNsdWRl
ICJKU1Rlc3ROb2RlLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNr
SW50ZXJmYWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrSW50ZXJmYWNlLmgJKHJldmlzaW9uIDIxODI5OSkKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0lu
dGVyZmFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw4IEBACiAjaW5jbHVkZSAiQWN0
aXZlRE9NQ2FsbGJhY2suaCIKICNpbmNsdWRlICJJRExUeXBlcy5oIgogI2luY2x1ZGUgIkpTQ2Fs
bGJhY2tEYXRhLmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01D
b252ZXJ0RGljdGlvbmFyeS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEVudW1lcmF0aW9uLmgi
CiAjaW5jbHVkZSAiVGVzdENhbGxiYWNrSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdERPTUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RET01KSVQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOCw4ICsyOCwxNCBAQAogI2luY2x1ZGUgIkpTRE9NQXR0cmlidXRlLmgi
CiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5v
dENvbnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJK
U0RPTUNvbnZlcnRBbnkuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRCb29sZWFuLmgiCisjaW5j
bHVkZSAiSlNET01Db252ZXJ0SW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0TnVs
bGFibGUuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnROdW1iZXJzLmgiCisjaW5jbHVkZSAiSlNE
T01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIK
KyNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9u
LmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJKU0VsZW1lbnQu
aCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RF
dmVudENvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDIx
ODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RF
dmVudENvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsOSArMjQsMTEgQEAKICNp
bmNsdWRlICJKU0RPTUF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2lu
Y2x1ZGUgIkpTRE9NQ29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRCb29sZWFu
LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0SW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiSlNET01D
b252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNp
bmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4K
ICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1
Y3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmgJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9y
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIwLDcgKzIwLDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNp
bmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnREaWN0aW9uYXJ5
LmgiCiAjaW5jbHVkZSAiSlNFdmVudC5oIgogI2luY2x1ZGUgIlRlc3RFdmVudENvbnN0cnVjdG9y
LmgiCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudFRhcmdldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAkocmV2aXNpb24gMjE4Mjk5KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFy
Z2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsOCArMjQsMTAgQEAKICNpbmNsdWRlICJKU0RP
TUFic3RyYWN0T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1
ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCi0jaW5jbHVkZSAiSlNET01D
b252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0SW50ZXJmYWNlLmgiCisjaW5jbHVkZSAi
SlNET01Db252ZXJ0TnVtYmVycy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcu
aCIKKyNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0
aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJKU05vZGUu
aCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RF
eGNlcHRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgIkpTRE9NQXR0cmlidXRl
LmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rv
ck5vdENvbnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRl
ICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGlu
Zy5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSA8cnVudGltZS9G
dW5jdGlvblByb3RvdHlwZS5oPgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlLmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSAiSlNET01BdHRyaWJ1dGUuaCIKICNpbmNs
dWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3Ry
dWN0YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgorI2luY2x1ZGUgIkpTRE9NQ29u
dmVydFN0cmluZ3MuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5j
bHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1
cmVzLmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0R2xvYmFsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmNwcAkocmV2aXNpb24gMjE4Mjk5
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2Jh
bE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDkgQEAKICNpbmNsdWRlICJK
U0RPTUF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpT
RE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0
LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0Qm9vbGVhbi5oIgorI2luY2x1ZGUgIkpTRE9NQ29u
dmVydE51bWJlcnMuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVk
ZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgi
CiAjaW5jbHVkZSAiSlNET01PcGVyYXRpb25SZXR1cm5pbmdQcm9taXNlLmgiCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5v
SWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCShyZXZpc2lv
biAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDcg
KzIzLDcgQEAKIAogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29u
c3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisj
aW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9u
SGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgIlVS
TC5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvbi5jcHAJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw3ICsyMyw3IEBACiAKICNpbmNsdWRlICJKU0RP
TUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5o
IgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFN0cmlu
Z3MuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNE
T01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJVUkwuaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZp
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCShyZXZpc2lvbiAyMTgy
OTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5k
ZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNyArMjMs
OCBAQAogCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1
Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNs
dWRlICJKU0RPTUNvbnZlcnROdW1iZXJzLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5n
cy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RP
TU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0SW50ZXJmYWNlLmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDIwICsyNywyNSBAQAogI2luY2x1ZGUgIkpTRE9NQXR0cmlidXRlLmgiCiAjaW5jbHVk
ZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvci5oIgotI2luY2x1
ZGUgIkpTRE9NQ29udmVydC5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEludGVyZmFjZS5oIgog
I2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTU9wZXJh
dGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSAiVGVzdFN1
cHBsZW1lbnRhbC5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KICNpbmNsdWRlIDxydW50
aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogCisjaWYg
RU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRp
dGlvbjEyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikgfHwgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBF
TkFCTEUoQ29uZGl0aW9uMjMpCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgorI2Vu
ZGlmCisKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKICNp
bmNsdWRlICJUZXN0U3VwcGxlbWVudGFsQnVpbHRpbnMuaCIKICNlbmRpZgogCiAjaWYgRU5BQkxF
KENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpIHx8IEVOQUJMRShDb25kaXRpb24y
MikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQorI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bWJlcnMu
aCIKKyNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTTm9kZS5oIgog
I2luY2x1ZGUgIkpTVGVzdE9iai5oIgogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5jcHAJKHJldmlzaW9uIDIxODI5OSkKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2VM
ZWFkaW5nVW5kZXJzY29yZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDcgQEAKICNp
bmNsdWRlICJKU0RPTUF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2lu
Y2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCi0jaW5jbHVkZSAiSlNE
T01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUg
IkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5o
IgogI2luY2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAJKHJldmlzaW9uIDIxODI5OSkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsOCArMjMsOSBAQAogCiAj
aW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENv
bnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RP
TUNvbnZlcnRDYWxsYmFja3MuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgi
CisjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlv
bi5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSAiSlNNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAkocmV2aXNpb24gMjE4Mjk5KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0
LDcgQEAKICNpbmNsdWRlICJKU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkpT
RE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxl
LmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3Ry
aW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJK
U0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgIlVSTC5oIgpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb24uY3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSAiSlNET01B
YnN0cmFjdE9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRl
ICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9NQ29u
dmVydC5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFN0cmluZ3MuaCIKICNpbmNsdWRlICJKU0RP
TUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNp
bmNsdWRlICJVUkwuaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAkocmV2aXNpb24gMjE4Mjk5KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyAr
MjQsOCBAQAogI2luY2x1ZGUgIkpTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAi
SlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFi
bGUuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRO
dW1iZXJzLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpT
RE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgogI2lu
Y2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29u
c3RydWN0b3IuY3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIzLDExICsyMywxMSBAQAogCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5j
bHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RP
TUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRJbnRlcmZhY2UuaCIKKyNpbmNsdWRl
ICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGlu
Zy5oIgogI2luY2x1ZGUgIkpTRE9NTmFtZWRDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkpTRE9N
V3JhcHBlckNhY2hlLmgiCi0jaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgogI2luY2x1ZGUgPHJ1
bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERl
bGV0ZXJOb0lkZW50aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIuY3BwCShy
ZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjQsNyArMjQsNyBAQAogI2luY2x1ZGUgIkpTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgiCiAjaW5j
bHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0
cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNv
bnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2lu
Y2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblBy
b3RvdHlwZS5oPgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVy
VGhyb3dpbmdFeGNlcHRpb24uY3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNl
cHRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSAiSlNE
T01BYnN0cmFjdE9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNs
dWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9N
Q29udmVydC5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFN0cmluZ3MuaCIKICNpbmNsdWRlICJK
U0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIK
ICNpbmNsdWRlIDxydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmg+CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50
aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5jcHAJKHJldmlzaW9uIDIx
ODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0
LDcgQEAKICNpbmNsdWRlICJKU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkpT
RE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxl
LmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3Ry
aW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJK
U0RPTU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVy
V2l0aEluZGV4ZWRHZXR0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5j
cHAJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI0LDcgKzI0LDcgQEAKICNpbmNsdWRlICJKU0RPTUFic3RyYWN0T3BlcmF0aW9u
cy5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0
b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVk
ZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxp
bmcuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgIlVSTC5oIgpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
U2V0dGVyTm9JZGVudGlmaWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCShy
ZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
NCw3ICsyNCw3IEBACiAjaW5jbHVkZSAiSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaCIKICNpbmNs
dWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3Ry
dWN0YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgorI2luY2x1ZGUgIkpTRE9NQ29u
dmVydFN0cmluZ3MuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5j
bHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlIDxydW50aW1lL0Z1bmN0aW9uUHJv
dG90eXBlLmg+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb24uY3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDcgQEAKICNpbmNsdWRlICJKU0RPTUFi
c3RyYWN0T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUg
IkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCi0jaW5jbHVkZSAiSlNET01Db252
ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRE9N
RXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAJKHJldmlzaW9uIDIxODI5OSkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNl
dHRlcldpdGhJZGVudGlmaWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQAog
I2luY2x1ZGUgIkpTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNET01CaW5k
aW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKLSNp
bmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgi
CiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NT3Bl
cmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVy
cmlkZUJ1aWx0aW5zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucy5jcHAJ
KHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgIkpTRE9NQWJzdHJhY3RPcGVyYXRpb25z
LmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rv
ck5vdENvbnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRl
ICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGlu
Zy5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSA8cnVudGltZS9G
dW5jdGlvblByb3RvdHlwZS5oPgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMuY3BwCShyZXZpc2lvbiAyMTgy
OTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
NSw3ICsyNSw3IEBACiAjaW5jbHVkZSAiSlNET01BdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJKU0RP
TUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5o
IgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFN0cmlu
Z3MuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNE
T01PcGVyYXRpb24uaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0
aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0
dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5jcHAJKHJldmlz
aW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRp
bnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw3IEBACiAjaW5jbHVkZSAiSlNET01B
dHRyaWJ1dGUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNv
bnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgor
I2luY2x1ZGUgIkpTRE9NQ29udmVydFN0cmluZ3MuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlv
bkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNET01PcGVyYXRpb24uaCIKICNpbmNsdWRlICJKU0RP
TVdyYXBwZXJDYWNoZS5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw5IEBACiAjaW5jbHVkZSAiSlNET01BdHRyaWJ1dGUu
aCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9y
LmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0Qm9v
bGVhbi5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEludGVyZmFjZS5oIgorI2luY2x1ZGUgIkpT
RE9NQ29udmVydFN0cmluZ3MuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgi
CiAjaW5jbHVkZSAiSlNET01JdGVyYXRvci5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgi
CkBAIC0zMyw3ICszNSw2IEBACiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgog
I2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlIDxidWlsdGlucy9C
dWlsdGluTmFtZXMuaD4KLSNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CiAjaW5jbHVkZSA8cnVu
dGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KIApAQCAt
Mzg2LDEyICszODcsMTIgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dAogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Tm9kZT46OmNhbGw8anNUZXN0Tm9kZVBy
b3RvdHlwZUZ1bmN0aW9uRm9yRWFjaENhbGxlcj4oKnN0YXRlLCAiZm9yRWFjaCIpOwogfQogCi1K
U0M6OkpTT2JqZWN0KiBKU1Rlc3ROb2RlOjpzZXJpYWxpemUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNU
ZXN0Tm9kZSogdGhpc09iamVjdCwgVGhyb3dTY29wZSYgdGhyb3dTY29wZSkKK0pTQzo6SlNPYmpl
Y3QqIEpTVGVzdE5vZGU6OnNlcmlhbGl6ZShFeGVjU3RhdGUmIHN0YXRlLCBKU1Rlc3ROb2RlJiB0
aGlzT2JqZWN0LCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBUaHJvd1Njb3BlJiB0
aHJvd1Njb3BlKQogewotICAgIGF1dG8mIHZtID0gc3RhdGUtPnZtKCk7Ci0gICAgYXV0byogcmVz
dWx0ID0gY29uc3RydWN0RW1wdHlPYmplY3Qoc3RhdGUpOworICAgIGF1dG8mIHZtID0gc3RhdGUu
dm0oKTsKKyAgICBhdXRvKiByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdCgmc3RhdGUsIGds
b2JhbE9iamVjdC5vYmplY3RQcm90b3R5cGUoKSk7CiAKLSAgICBhdXRvIG5hbWVWYWx1ZSA9IGpz
VGVzdE5vZGVOYW1lR2V0dGVyKCpzdGF0ZSwgKnRoaXNPYmplY3QsIHRocm93U2NvcGUpOworICAg
IGF1dG8gbmFtZVZhbHVlID0ganNUZXN0Tm9kZU5hbWVHZXR0ZXIoc3RhdGUsIHRoaXNPYmplY3Qs
IHRocm93U2NvcGUpOwogICAgIHRocm93U2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKICAgICBy
ZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJuYW1lIiks
IG5hbWVWYWx1ZSk7CiAKQEAgLTQwMCw3ICs0MDEsNyBAQCBKU0M6OkpTT2JqZWN0KiBKU1Rlc3RO
b2RlOjpzZXJpYWxpemUoRXhlCiAKIHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0
Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVG9KU09OQm9keShFeGVjU3RhdGUqIHN0YXRlLCBKU1Rlc3RO
b2RlKiB0aGlzT2JqZWN0LCBKU0M6OlRocm93U2NvcGUmIHRocm93U2NvcGUpCiB7Ci0gICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROb2RlOjpzZXJpYWxpemUoc3RhdGUsIHRoaXNPYmpl
Y3QsIHRocm93U2NvcGUpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5vZGU6
OnNlcmlhbGl6ZSgqc3RhdGUsICp0aGlzT2JqZWN0LCAqdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0
KCksIHRocm93U2NvcGUpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3ROb2RlUHJvdG90eXBlRnVuY3Rpb25Ub0pTT04oRXhlY1N0YXRlKiBzdGF0ZSkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5v
ZGUuaAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBw
dWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihK
U0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAgIHN0YXRpYyBKU0M6OkpT
T2JqZWN0KiBzZXJpYWxpemUoSlNDOjpFeGVjU3RhdGUqLCBKU1Rlc3ROb2RlKiB0aGlzT2JqZWN0
LCBKU0M6OlRocm93U2NvcGUmKTsKKyAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogc2VyaWFsaXpl
KEpTQzo6RXhlY1N0YXRlJiwgSlNUZXN0Tm9kZSYgdGhpc09iamVjdCwgSlNET01HbG9iYWxPYmpl
Y3QmLCBKU0M6OlRocm93U2NvcGUmKTsKICAgICBUZXN0Tm9kZSYgd3JhcHBlZCgpIGNvbnN0CiAg
ICAgewogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGVzdE5vZGUmPihCYXNlOjp3cmFwcGVk
KCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9iai5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9iai5jcHAJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMCw4ICszMCwyNCBAQAogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpT
RE9NQmluZGluZ1NlY3VyaXR5LmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvci5oIgorI2lu
Y2x1ZGUgIkpTRE9NQ29udmVydEFueS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEJvb2xlYW4u
aCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRCdWZmZXJTb3VyY2UuaCIKKyNpbmNsdWRlICJKU0RP
TUNvbnZlcnRDYWxsYmFja3MuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRFdmVudExpc3RlbmVy
LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0SW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiSlNET01D
b252ZXJ0TnVsbGFibGUuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnROdW1iZXJzLmgiCisjaW5j
bHVkZSAiSlNET01Db252ZXJ0T2JqZWN0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0UmVjb3Jk
LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U2VxdWVuY2VzLmgiCisjaW5jbHVkZSAiSlNET01D
b252ZXJ0U2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3Ry
aW5ncy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFVuaW9uLmgiCiAjaW5jbHVkZSAiSlNET01D
b252ZXJ0VmFyaWFkaWMuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRYUGF0aE5TUmVzb2x2ZXIu
aCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCisjaW5jbHVkZSAiSlNET01H
bG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU0RPTUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNE
T01PcGVyYXRpb24uaCIKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvblJldHVybmluZ1Byb21pc2Uu
aCIKQEAgLTY1LDcgKzgxLDcgQEAKICNpbmNsdWRlIDxidWlsdGlucy9CdWlsdGluTmFtZXMuaD4K
ICNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0QXJndW1lbnRzLmg+CiAjaW5jbHVkZSA8aW5zcGVj
dG9yL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuaD4KLSNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+
CisjaW5jbHVkZSA8cnVudGltZS9BcnJheVByb3RvdHlwZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUv
RnVuY3Rpb25Qcm90b3R5cGUuaD4KICNpbmNsdWRlIDxydW50aW1lL0l0ZXJhdG9yT3BlcmF0aW9u
cy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNBcnJheS5oPgpAQCAtNjE0LDcgKzYzMCw3IEBAIEpT
Qzo6SlNPYmplY3QqIGNvbnZlcnREaWN0aW9uYXJ5VG9KUyhKU0MKIHsKICAgICBhdXRvJiB2bSA9
IHN0YXRlLnZtKCk7CiAKLSAgICBhdXRvIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KCZz
dGF0ZSk7CisgICAgYXV0byByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdCgmc3RhdGUsIGds
b2JhbE9iamVjdC5vYmplY3RQcm90b3R5cGUoKSk7CiAKICAgICBpZiAoIUlETFNlcXVlbmNlPElE
TENsYW1wQWRhcHRvcjxJRExMb25nPj46OmlzTnVsbFZhbHVlKGRpY3Rpb25hcnkuYW5ub3RhdGVk
VHlwZUluU2VxdWVuY2VNZW1iZXIpKSB7CiAgICAgICAgIGF1dG8gYW5ub3RhdGVkVHlwZUluU2Vx
dWVuY2VNZW1iZXJWYWx1ZSA9IHRvSlM8SURMU2VxdWVuY2U8SURMQ2xhbXBBZGFwdG9yPElETExv
bmc+Pj4oc3RhdGUsIGdsb2JhbE9iamVjdCwgSURMU2VxdWVuY2U8SURMQ2xhbXBBZGFwdG9yPElE
TExvbmc+Pjo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRpY3Rpb25hcnkuYW5ub3RhdGVkVHlw
ZUluU2VxdWVuY2VNZW1iZXIpKTsKQEAgLTYyNCw5NiArNjQwLDk2IEBAIEpTQzo6SlNPYmplY3Qq
IGNvbnZlcnREaWN0aW9uYXJ5VG9KUyhKU0MKICAgICAgICAgYXV0byBhbm5vdGF0ZWRUeXBlSW5V
bmlvbk1lbWJlclZhbHVlID0gdG9KUzxJRExVbmlvbjxJRExET01TdHJpbmcsIElETENsYW1wQWRh
cHRvcjxJRExMb25nPj4+KHN0YXRlLCBnbG9iYWxPYmplY3QsIElETFVuaW9uPElETERPTVN0cmlu
ZywgSURMQ2xhbXBBZGFwdG9yPElETExvbmc+Pjo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRp
Y3Rpb25hcnkuYW5ub3RhdGVkVHlwZUluVW5pb25NZW1iZXIpKTsKICAgICAgICAgcmVzdWx0LT5w
dXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJhbm5vdGF0ZWRU
eXBlSW5Vbmlvbk1lbWJlciIpLCBhbm5vdGF0ZWRUeXBlSW5Vbmlvbk1lbWJlclZhbHVlKTsKICAg
ICB9Ci0gICAgYXV0byBhbnlUeXBlZGVmVmFsdWVWYWx1ZSA9IHRvSlM8SURMQW55PihzdGF0ZSwg
Z2xvYmFsT2JqZWN0LCBkaWN0aW9uYXJ5LmFueVR5cGVkZWZWYWx1ZSk7CisgICAgYXV0byBhbnlU
eXBlZGVmVmFsdWVWYWx1ZSA9IHRvSlM8SURMQW55PihkaWN0aW9uYXJ5LmFueVR5cGVkZWZWYWx1
ZSk7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zygmdm0sICJhbnlUeXBlZGVmVmFsdWUiKSwgYW55VHlwZWRlZlZhbHVlVmFsdWUpOwotICAgIGF1
dG8gYW55VmFsdWVWYWx1ZSA9IHRvSlM8SURMQW55PihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBkaWN0
aW9uYXJ5LmFueVZhbHVlKTsKKyAgICBhdXRvIGFueVZhbHVlVmFsdWUgPSB0b0pTPElETEFueT4o
ZGljdGlvbmFyeS5hbnlWYWx1ZSk7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRl
bnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJhbnlWYWx1ZSIpLCBhbnlWYWx1ZVZhbHVlKTsKLSAg
ICBhdXRvIGFueVZhbHVlV2l0aE51bGxEZWZhdWx0VmFsdWUgPSB0b0pTPElETEFueT4oc3RhdGUs
IGdsb2JhbE9iamVjdCwgZGljdGlvbmFyeS5hbnlWYWx1ZVdpdGhOdWxsRGVmYXVsdCk7CisgICAg
YXV0byBhbnlWYWx1ZVdpdGhOdWxsRGVmYXVsdFZhbHVlID0gdG9KUzxJRExBbnk+KGRpY3Rpb25h
cnkuYW55VmFsdWVXaXRoTnVsbERlZmF1bHQpOwogICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBK
U0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiYW55VmFsdWVXaXRoTnVsbERlZmF1bHQi
KSwgYW55VmFsdWVXaXRoTnVsbERlZmF1bHRWYWx1ZSk7Ci0gICAgYXV0byBib29sZWFuV2l0aERl
ZmF1bHRWYWx1ZSA9IHRvSlM8SURMQm9vbGVhbj4oc3RhdGUsIGdsb2JhbE9iamVjdCwgZGljdGlv
bmFyeS5ib29sZWFuV2l0aERlZmF1bHQpOworICAgIGF1dG8gYm9vbGVhbldpdGhEZWZhdWx0VmFs
dWUgPSB0b0pTPElETEJvb2xlYW4+KGRpY3Rpb25hcnkuYm9vbGVhbldpdGhEZWZhdWx0KTsKICAg
ICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwg
ImJvb2xlYW5XaXRoRGVmYXVsdCIpLCBib29sZWFuV2l0aERlZmF1bHRWYWx1ZSk7CiAgICAgaWYg
KCFJRExCb29sZWFuOjppc051bGxWYWx1ZShkaWN0aW9uYXJ5LmJvb2xlYW5XaXRob3V0RGVmYXVs
dCkpIHsKLSAgICAgICAgYXV0byBib29sZWFuV2l0aG91dERlZmF1bHRWYWx1ZSA9IHRvSlM8SURM
Qm9vbGVhbj4oc3RhdGUsIGdsb2JhbE9iamVjdCwgSURMQm9vbGVhbjo6ZXh0cmFjdFZhbHVlRnJv
bU51bGxhYmxlKGRpY3Rpb25hcnkuYm9vbGVhbldpdGhvdXREZWZhdWx0KSk7CisgICAgICAgIGF1
dG8gYm9vbGVhbldpdGhvdXREZWZhdWx0VmFsdWUgPSB0b0pTPElETEJvb2xlYW4+KElETEJvb2xl
YW46OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LmJvb2xlYW5XaXRob3V0RGVm
YXVsdCkpOwogICAgICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKCZ2bSwgImJvb2xlYW5XaXRob3V0RGVmYXVsdCIpLCBib29sZWFuV2l0aG91dERl
ZmF1bHRWYWx1ZSk7CiAgICAgfQogICAgIGlmICghSURMQnVmZmVyU291cmNlOjppc051bGxWYWx1
ZShkaWN0aW9uYXJ5LmJ1ZmZlclNvdXJjZVZhbHVlKSkgewotICAgICAgICBhdXRvIGJ1ZmZlclNv
dXJjZVZhbHVlVmFsdWUgPSB0b0pTPElETEJ1ZmZlclNvdXJjZT4oc3RhdGUsIGdsb2JhbE9iamVj
dCwgSURMQnVmZmVyU291cmNlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUoZGljdGlvbmFyeS5i
dWZmZXJTb3VyY2VWYWx1ZSkpOworICAgICAgICBhdXRvIGJ1ZmZlclNvdXJjZVZhbHVlVmFsdWUg
PSB0b0pTPElETEJ1ZmZlclNvdXJjZT4oSURMQnVmZmVyU291cmNlOjpleHRyYWN0VmFsdWVGcm9t
TnVsbGFibGUoZGljdGlvbmFyeS5idWZmZXJTb3VyY2VWYWx1ZSkpOwogICAgICAgICByZXN1bHQt
PnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImJ1ZmZlclNv
dXJjZVZhbHVlIiksIGJ1ZmZlclNvdXJjZVZhbHVlVmFsdWUpOwogICAgIH0KICAgICBpZiAoIUlE
TERpY3Rpb25hcnk8VGVzdE9iajo6RGljdGlvbmFyeVRoYXRTaG91bGRUb2xlcmF0ZU51bGw+Ojpp
c051bGxWYWx1ZShkaWN0aW9uYXJ5LmRpY3Rpb25hcnlNZW1iZXIpKSB7CiAgICAgICAgIGF1dG8g
ZGljdGlvbmFyeU1lbWJlclZhbHVlID0gdG9KUzxJRExEaWN0aW9uYXJ5PFRlc3RPYmo6OkRpY3Rp
b25hcnlUaGF0U2hvdWxkVG9sZXJhdGVOdWxsPj4oc3RhdGUsIGdsb2JhbE9iamVjdCwgSURMRGlj
dGlvbmFyeTxUZXN0T2JqOjpEaWN0aW9uYXJ5VGhhdFNob3VsZFRvbGVyYXRlTnVsbD46OmV4dHJh
Y3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LmRpY3Rpb25hcnlNZW1iZXIpKTsKICAgICAg
ICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0s
ICJkaWN0aW9uYXJ5TWVtYmVyIiksIGRpY3Rpb25hcnlNZW1iZXJWYWx1ZSk7CiAgICAgfQotICAg
IGF1dG8gZW51bWVyYXRpb25WYWx1ZVdpdGhEZWZhdWx0VmFsdWUgPSB0b0pTPElETEVudW1lcmF0
aW9uPFRlc3RPYmo6OkVudW1UeXBlPj4oc3RhdGUsIGdsb2JhbE9iamVjdCwgZGljdGlvbmFyeS5l
bnVtZXJhdGlvblZhbHVlV2l0aERlZmF1bHQpOworICAgIGF1dG8gZW51bWVyYXRpb25WYWx1ZVdp
dGhEZWZhdWx0VmFsdWUgPSB0b0pTPElETEVudW1lcmF0aW9uPFRlc3RPYmo6OkVudW1UeXBlPj4o
c3RhdGUsIGRpY3Rpb25hcnkuZW51bWVyYXRpb25WYWx1ZVdpdGhEZWZhdWx0KTsKICAgICByZXN1
bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImVudW1l
cmF0aW9uVmFsdWVXaXRoRGVmYXVsdCIpLCBlbnVtZXJhdGlvblZhbHVlV2l0aERlZmF1bHRWYWx1
ZSk7Ci0gICAgYXV0byBlbnVtZXJhdGlvblZhbHVlV2l0aEVtcHR5U3RyaW5nRGVmYXVsdFZhbHVl
ID0gdG9KUzxJRExFbnVtZXJhdGlvbjxUZXN0T2JqOjpFbnVtVHlwZT4+KHN0YXRlLCBnbG9iYWxP
YmplY3QsIGRpY3Rpb25hcnkuZW51bWVyYXRpb25WYWx1ZVdpdGhFbXB0eVN0cmluZ0RlZmF1bHQp
OworICAgIGF1dG8gZW51bWVyYXRpb25WYWx1ZVdpdGhFbXB0eVN0cmluZ0RlZmF1bHRWYWx1ZSA9
IHRvSlM8SURMRW51bWVyYXRpb248VGVzdE9iajo6RW51bVR5cGU+PihzdGF0ZSwgZGljdGlvbmFy
eS5lbnVtZXJhdGlvblZhbHVlV2l0aEVtcHR5U3RyaW5nRGVmYXVsdCk7CiAgICAgcmVzdWx0LT5w
dXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJlbnVtZXJhdGlv
blZhbHVlV2l0aEVtcHR5U3RyaW5nRGVmYXVsdCIpLCBlbnVtZXJhdGlvblZhbHVlV2l0aEVtcHR5
U3RyaW5nRGVmYXVsdFZhbHVlKTsKICAgICBpZiAoIUlETEVudW1lcmF0aW9uPFRlc3RPYmo6OkVu
dW1UeXBlPjo6aXNOdWxsVmFsdWUoZGljdGlvbmFyeS5lbnVtZXJhdGlvblZhbHVlV2l0aG91dERl
ZmF1bHQpKSB7Ci0gICAgICAgIGF1dG8gZW51bWVyYXRpb25WYWx1ZVdpdGhvdXREZWZhdWx0VmFs
dWUgPSB0b0pTPElETEVudW1lcmF0aW9uPFRlc3RPYmo6OkVudW1UeXBlPj4oc3RhdGUsIGdsb2Jh
bE9iamVjdCwgSURMRW51bWVyYXRpb248VGVzdE9iajo6RW51bVR5cGU+OjpleHRyYWN0VmFsdWVG
cm9tTnVsbGFibGUoZGljdGlvbmFyeS5lbnVtZXJhdGlvblZhbHVlV2l0aG91dERlZmF1bHQpKTsK
KyAgICAgICAgYXV0byBlbnVtZXJhdGlvblZhbHVlV2l0aG91dERlZmF1bHRWYWx1ZSA9IHRvSlM8
SURMRW51bWVyYXRpb248VGVzdE9iajo6RW51bVR5cGU+PihzdGF0ZSwgSURMRW51bWVyYXRpb248
VGVzdE9iajo6RW51bVR5cGU+OjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUoZGljdGlvbmFyeS5l
bnVtZXJhdGlvblZhbHVlV2l0aG91dERlZmF1bHQpKTsKICAgICAgICAgcmVzdWx0LT5wdXREaXJl
Y3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJlbnVtZXJhdGlvblZhbHVl
V2l0aG91dERlZmF1bHQiKSwgZW51bWVyYXRpb25WYWx1ZVdpdGhvdXREZWZhdWx0VmFsdWUpOwog
ICAgIH0KLSAgICBhdXRvIGZvb0FsaWFzVmFsdWUgPSB0b0pTPElETEFueT4oc3RhdGUsIGdsb2Jh
bE9iamVjdCwgZGljdGlvbmFyeS5mb28pOworICAgIGF1dG8gZm9vQWxpYXNWYWx1ZSA9IHRvSlM8
SURMQW55PihkaWN0aW9uYXJ5LmZvbyk7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6
SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJmb29BbGlhcyIpLCBmb29BbGlhc1ZhbHVlKTsK
LSAgICBhdXRvIGZvb1dpdGhEZWZhdWx0QWxpYXNWYWx1ZSA9IHRvSlM8SURMQW55PihzdGF0ZSwg
Z2xvYmFsT2JqZWN0LCBkaWN0aW9uYXJ5LmZvb1dpdGhEZWZhdWx0KTsKKyAgICBhdXRvIGZvb1dp
dGhEZWZhdWx0QWxpYXNWYWx1ZSA9IHRvSlM8SURMQW55PihkaWN0aW9uYXJ5LmZvb1dpdGhEZWZh
dWx0KTsKICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKCZ2bSwgImZvb1dpdGhEZWZhdWx0QWxpYXMiKSwgZm9vV2l0aERlZmF1bHRBbGlhc1ZhbHVl
KTsKICAgICBpZiAoIUlETExvbmc6OmlzTnVsbFZhbHVlKGRpY3Rpb25hcnkuaW50ZWdlcikpIHsK
LSAgICAgICAgYXV0byBpbnRlZ2VyVmFsdWUgPSB0b0pTPElETExvbmc+KHN0YXRlLCBnbG9iYWxP
YmplY3QsIElETExvbmc6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LmludGVn
ZXIpKTsKKyAgICAgICAgYXV0byBpbnRlZ2VyVmFsdWUgPSB0b0pTPElETExvbmc+KElETExvbmc6
OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LmludGVnZXIpKTsKICAgICAgICAg
cmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJp
bnRlZ2VyIiksIGludGVnZXJWYWx1ZSk7CiAgICAgfQotICAgIGF1dG8gaW50ZWdlcldpdGhEZWZh
dWx0VmFsdWUgPSB0b0pTPElETExvbmc+KHN0YXRlLCBnbG9iYWxPYmplY3QsIGRpY3Rpb25hcnku
aW50ZWdlcldpdGhEZWZhdWx0KTsKKyAgICBhdXRvIGludGVnZXJXaXRoRGVmYXVsdFZhbHVlID0g
dG9KUzxJRExMb25nPihkaWN0aW9uYXJ5LmludGVnZXJXaXRoRGVmYXVsdCk7CiAgICAgcmVzdWx0
LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJpbnRlZ2Vy
V2l0aERlZmF1bHQiKSwgaW50ZWdlcldpdGhEZWZhdWx0VmFsdWUpOwogICAgIGlmICghSURMTG9u
Z0xvbmc6OmlzTnVsbFZhbHVlKGRpY3Rpb25hcnkubGFyZ2VJbnRlZ2VyKSkgewotICAgICAgICBh
dXRvIGxhcmdlSW50ZWdlclZhbHVlID0gdG9KUzxJRExMb25nTG9uZz4oc3RhdGUsIGdsb2JhbE9i
amVjdCwgSURMTG9uZ0xvbmc6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5Lmxh
cmdlSW50ZWdlcikpOworICAgICAgICBhdXRvIGxhcmdlSW50ZWdlclZhbHVlID0gdG9KUzxJRExM
b25nTG9uZz4oSURMTG9uZ0xvbmc6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5
LmxhcmdlSW50ZWdlcikpOwogICAgICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImxhcmdlSW50ZWdlciIpLCBsYXJnZUludGVnZXJWYWx1
ZSk7CiAgICAgfQotICAgIGF1dG8gbGFyZ2VJbnRlZ2VyV2l0aERlZmF1bHRWYWx1ZSA9IHRvSlM8
SURMTG9uZ0xvbmc+KHN0YXRlLCBnbG9iYWxPYmplY3QsIGRpY3Rpb25hcnkubGFyZ2VJbnRlZ2Vy
V2l0aERlZmF1bHQpOworICAgIGF1dG8gbGFyZ2VJbnRlZ2VyV2l0aERlZmF1bHRWYWx1ZSA9IHRv
SlM8SURMTG9uZ0xvbmc+KGRpY3Rpb25hcnkubGFyZ2VJbnRlZ2VyV2l0aERlZmF1bHQpOwogICAg
IHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAi
bGFyZ2VJbnRlZ2VyV2l0aERlZmF1bHQiKSwgbGFyZ2VJbnRlZ2VyV2l0aERlZmF1bHRWYWx1ZSk7
Ci0gICAgYXV0byBudWxsYWJsZUludGVnZXJXaXRoRGVmYXVsdFZhbHVlID0gdG9KUzxJRExOdWxs
YWJsZTxJRExMb25nPj4oc3RhdGUsIGdsb2JhbE9iamVjdCwgZGljdGlvbmFyeS5udWxsYWJsZUlu
dGVnZXJXaXRoRGVmYXVsdCk7CisgICAgYXV0byBudWxsYWJsZUludGVnZXJXaXRoRGVmYXVsdFZh
bHVlID0gdG9KUzxJRExOdWxsYWJsZTxJRExMb25nPj4oZGljdGlvbmFyeS5udWxsYWJsZUludGVn
ZXJXaXRoRGVmYXVsdCk7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmll
cjo6ZnJvbVN0cmluZygmdm0sICJudWxsYWJsZUludGVnZXJXaXRoRGVmYXVsdCIpLCBudWxsYWJs
ZUludGVnZXJXaXRoRGVmYXVsdFZhbHVlKTsKICAgICBhdXRvIG51bGxhYmxlTm9kZVZhbHVlID0g
dG9KUzxJRExOdWxsYWJsZTxJRExJbnRlcmZhY2U8Tm9kZT4+PihzdGF0ZSwgZ2xvYmFsT2JqZWN0
LCBkaWN0aW9uYXJ5Lm51bGxhYmxlTm9kZSk7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpT
Qzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJudWxsYWJsZU5vZGUiKSwgbnVsbGFibGVO
b2RlVmFsdWUpOwotICAgIGF1dG8gbnVsbGFibGVTdHJpbmdXaXRoRGVmYXVsdFZhbHVlID0gdG9K
UzxJRExOdWxsYWJsZTxJRExET01TdHJpbmc+PihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBkaWN0aW9u
YXJ5Lm51bGxhYmxlU3RyaW5nV2l0aERlZmF1bHQpOworICAgIGF1dG8gbnVsbGFibGVTdHJpbmdX
aXRoRGVmYXVsdFZhbHVlID0gdG9KUzxJRExOdWxsYWJsZTxJRExET01TdHJpbmc+PihzdGF0ZSwg
ZGljdGlvbmFyeS5udWxsYWJsZVN0cmluZ1dpdGhEZWZhdWx0KTsKICAgICByZXN1bHQtPnB1dERp
cmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgIm51bGxhYmxlU3RyaW5n
V2l0aERlZmF1bHQiKSwgbnVsbGFibGVTdHJpbmdXaXRoRGVmYXVsdFZhbHVlKTsKICAgICBhdXRv
IG51bGxhYmxlVW5pb25NZW1iZXJWYWx1ZSA9IHRvSlM8SURMTnVsbGFibGU8SURMVW5pb248SURM
TG9uZywgSURMSW50ZXJmYWNlPE5vZGU+Pj4+KHN0YXRlLCBnbG9iYWxPYmplY3QsIGRpY3Rpb25h
cnkubnVsbGFibGVVbmlvbk1lbWJlcik7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6
SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJudWxsYWJsZVVuaW9uTWVtYmVyIiksIG51bGxh
YmxlVW5pb25NZW1iZXJWYWx1ZSk7CiAgICAgaWYgKCFJRExEb3VibGU6OmlzTnVsbFZhbHVlKGRp
Y3Rpb25hcnkucmVzdHJpY3RlZERvdWJsZSkpIHsKLSAgICAgICAgYXV0byByZXN0cmljdGVkRG91
YmxlVmFsdWUgPSB0b0pTPElETERvdWJsZT4oc3RhdGUsIGdsb2JhbE9iamVjdCwgSURMRG91Ymxl
OjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUoZGljdGlvbmFyeS5yZXN0cmljdGVkRG91YmxlKSk7
CisgICAgICAgIGF1dG8gcmVzdHJpY3RlZERvdWJsZVZhbHVlID0gdG9KUzxJRExEb3VibGU+KElE
TERvdWJsZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRpY3Rpb25hcnkucmVzdHJpY3RlZERv
dWJsZSkpOwogICAgICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKCZ2bSwgInJlc3RyaWN0ZWREb3VibGUiKSwgcmVzdHJpY3RlZERvdWJsZVZhbHVl
KTsKICAgICB9Ci0gICAgYXV0byByZXN0cmljdGVkRG91YmxlV2l0aERlZmF1bHRWYWx1ZSA9IHRv
SlM8SURMRG91YmxlPihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBkaWN0aW9uYXJ5LnJlc3RyaWN0ZWRE
b3VibGVXaXRoRGVmYXVsdCk7CisgICAgYXV0byByZXN0cmljdGVkRG91YmxlV2l0aERlZmF1bHRW
YWx1ZSA9IHRvSlM8SURMRG91YmxlPihkaWN0aW9uYXJ5LnJlc3RyaWN0ZWREb3VibGVXaXRoRGVm
YXVsdCk7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0
cmluZygmdm0sICJyZXN0cmljdGVkRG91YmxlV2l0aERlZmF1bHQiKSwgcmVzdHJpY3RlZERvdWJs
ZVdpdGhEZWZhdWx0VmFsdWUpOwogICAgIGlmICghSURMRmxvYXQ6OmlzTnVsbFZhbHVlKGRpY3Rp
b25hcnkucmVzdHJpY3RlZEZsb2F0KSkgewotICAgICAgICBhdXRvIHJlc3RyaWN0ZWRGbG9hdFZh
bHVlID0gdG9KUzxJRExGbG9hdD4oc3RhdGUsIGdsb2JhbE9iamVjdCwgSURMRmxvYXQ6OmV4dHJh
Y3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LnJlc3RyaWN0ZWRGbG9hdCkpOworICAgICAg
ICBhdXRvIHJlc3RyaWN0ZWRGbG9hdFZhbHVlID0gdG9KUzxJRExGbG9hdD4oSURMRmxvYXQ6OmV4
dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LnJlc3RyaWN0ZWRGbG9hdCkpOwogICAg
ICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2
bSwgInJlc3RyaWN0ZWRGbG9hdCIpLCByZXN0cmljdGVkRmxvYXRWYWx1ZSk7CiAgICAgfQotICAg
IGF1dG8gcmVzdHJpY3RlZEZsb2F0V2l0aERlZmF1bHRWYWx1ZSA9IHRvSlM8SURMRmxvYXQ+KHN0
YXRlLCBnbG9iYWxPYmplY3QsIGRpY3Rpb25hcnkucmVzdHJpY3RlZEZsb2F0V2l0aERlZmF1bHQp
OworICAgIGF1dG8gcmVzdHJpY3RlZEZsb2F0V2l0aERlZmF1bHRWYWx1ZSA9IHRvSlM8SURMRmxv
YXQ+KGRpY3Rpb25hcnkucmVzdHJpY3RlZEZsb2F0V2l0aERlZmF1bHQpOwogICAgIHJlc3VsdC0+
cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAicmVzdHJpY3Rl
ZEZsb2F0V2l0aERlZmF1bHQiKSwgcmVzdHJpY3RlZEZsb2F0V2l0aERlZmF1bHRWYWx1ZSk7CiAg
ICAgaWYgKCFJRExTZXF1ZW5jZTxJRExET01TdHJpbmc+Ojppc051bGxWYWx1ZShkaWN0aW9uYXJ5
LnNlcXVlbmNlT2ZTdHJpbmdzKSkgewogICAgICAgICBhdXRvIHNlcXVlbmNlT2ZTdHJpbmdzVmFs
dWUgPSB0b0pTPElETFNlcXVlbmNlPElETERPTVN0cmluZz4+KHN0YXRlLCBnbG9iYWxPYmplY3Qs
IElETFNlcXVlbmNlPElETERPTVN0cmluZz46OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0
aW9uYXJ5LnNlcXVlbmNlT2ZTdHJpbmdzKSk7CiAgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZt
LCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAic2VxdWVuY2VPZlN0cmluZ3MiKSwg
c2VxdWVuY2VPZlN0cmluZ3NWYWx1ZSk7CiAgICAgfQogICAgIGlmICghSURMQ2xhbXBBZGFwdG9y
PElETEJ5dGU+Ojppc051bGxWYWx1ZShkaWN0aW9uYXJ5LnNtYWxsSW50ZWdlckNsYW1wZWQpKSB7
Ci0gICAgICAgIGF1dG8gc21hbGxJbnRlZ2VyQ2xhbXBlZFZhbHVlID0gdG9KUzxJRExDbGFtcEFk
YXB0b3I8SURMQnl0ZT4+KHN0YXRlLCBnbG9iYWxPYmplY3QsIElETENsYW1wQWRhcHRvcjxJRExC
eXRlPjo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRpY3Rpb25hcnkuc21hbGxJbnRlZ2VyQ2xh
bXBlZCkpOworICAgICAgICBhdXRvIHNtYWxsSW50ZWdlckNsYW1wZWRWYWx1ZSA9IHRvSlM8SURM
Q2xhbXBBZGFwdG9yPElETEJ5dGU+PihJRExDbGFtcEFkYXB0b3I8SURMQnl0ZT46OmV4dHJhY3RW
YWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LnNtYWxsSW50ZWdlckNsYW1wZWQpKTsKICAgICAg
ICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0s
ICJzbWFsbEludGVnZXJDbGFtcGVkIiksIHNtYWxsSW50ZWdlckNsYW1wZWRWYWx1ZSk7CiAgICAg
fQogICAgIGlmICghSURMQnl0ZTo6aXNOdWxsVmFsdWUoZGljdGlvbmFyeS5zbWFsbEludGVnZXJX
aXRoRGVmYXVsdCkpIHsKLSAgICAgICAgYXV0byBzbWFsbEludGVnZXJXaXRoRGVmYXVsdFZhbHVl
ID0gdG9KUzxJRExCeXRlPihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBJRExCeXRlOjpleHRyYWN0VmFs
dWVGcm9tTnVsbGFibGUoZGljdGlvbmFyeS5zbWFsbEludGVnZXJXaXRoRGVmYXVsdCkpOworICAg
ICAgICBhdXRvIHNtYWxsSW50ZWdlcldpdGhEZWZhdWx0VmFsdWUgPSB0b0pTPElETEJ5dGU+KElE
TEJ5dGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LnNtYWxsSW50ZWdlcldp
dGhEZWZhdWx0KSk7CiAgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZp
ZXI6OmZyb21TdHJpbmcoJnZtLCAic21hbGxJbnRlZ2VyV2l0aERlZmF1bHQiKSwgc21hbGxJbnRl
Z2VyV2l0aERlZmF1bHRWYWx1ZSk7CiAgICAgfQogICAgIGlmICghSURMRW5mb3JjZVJhbmdlQWRh
cHRvcjxJRExPY3RldD46OmlzTnVsbFZhbHVlKGRpY3Rpb25hcnkuc21hbGxVbnNpZ25lZEludGVn
ZXJFbmZvcmNlZFJhbmdlKSkgewotICAgICAgICBhdXRvIHNtYWxsVW5zaWduZWRJbnRlZ2VyRW5m
b3JjZWRSYW5nZVZhbHVlID0gdG9KUzxJRExFbmZvcmNlUmFuZ2VBZGFwdG9yPElETE9jdGV0Pj4o
c3RhdGUsIGdsb2JhbE9iamVjdCwgSURMRW5mb3JjZVJhbmdlQWRhcHRvcjxJRExPY3RldD46OmV4
dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LnNtYWxsVW5zaWduZWRJbnRlZ2VyRW5m
b3JjZWRSYW5nZSkpOworICAgICAgICBhdXRvIHNtYWxsVW5zaWduZWRJbnRlZ2VyRW5mb3JjZWRS
YW5nZVZhbHVlID0gdG9KUzxJRExFbmZvcmNlUmFuZ2VBZGFwdG9yPElETE9jdGV0Pj4oSURMRW5m
b3JjZVJhbmdlQWRhcHRvcjxJRExPY3RldD46OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0
aW9uYXJ5LnNtYWxsVW5zaWduZWRJbnRlZ2VyRW5mb3JjZWRSYW5nZSkpOwogICAgICAgICByZXN1
bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgInNtYWxs
VW5zaWduZWRJbnRlZ2VyRW5mb3JjZWRSYW5nZSIpLCBzbWFsbFVuc2lnbmVkSW50ZWdlckVuZm9y
Y2VkUmFuZ2VWYWx1ZSk7CiAgICAgfQotICAgIGF1dG8gc21hbGxVbnNpZ25lZEludGVnZXJXaXRo
RGVmYXVsdFZhbHVlID0gdG9KUzxJRExPY3RldD4oc3RhdGUsIGdsb2JhbE9iamVjdCwgZGljdGlv
bmFyeS5zbWFsbFVuc2lnbmVkSW50ZWdlcldpdGhEZWZhdWx0KTsKKyAgICBhdXRvIHNtYWxsVW5z
aWduZWRJbnRlZ2VyV2l0aERlZmF1bHRWYWx1ZSA9IHRvSlM8SURMT2N0ZXQ+KGRpY3Rpb25hcnku
c21hbGxVbnNpZ25lZEludGVnZXJXaXRoRGVmYXVsdCk7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qo
dm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJzbWFsbFVuc2lnbmVkSW50ZWdl
cldpdGhEZWZhdWx0IiksIHNtYWxsVW5zaWduZWRJbnRlZ2VyV2l0aERlZmF1bHRWYWx1ZSk7CiAg
ICAgaWYgKCFJRExUcmVhdE51bGxBc0VtcHR5QWRhcHRvcjxJRExET01TdHJpbmc+Ojppc051bGxW
YWx1ZShkaWN0aW9uYXJ5LnN0cmluZ1RyZWF0TnVsbEFzRW1wdHlTdHJpbmcpKSB7Ci0gICAgICAg
IGF1dG8gc3RyaW5nVHJlYXROdWxsQXNFbXB0eVN0cmluZ1ZhbHVlID0gdG9KUzxJRExUcmVhdE51
bGxBc0VtcHR5QWRhcHRvcjxJRExET01TdHJpbmc+PihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBJRExU
cmVhdE51bGxBc0VtcHR5QWRhcHRvcjxJRExET01TdHJpbmc+OjpleHRyYWN0VmFsdWVGcm9tTnVs
bGFibGUoZGljdGlvbmFyeS5zdHJpbmdUcmVhdE51bGxBc0VtcHR5U3RyaW5nKSk7CisgICAgICAg
IGF1dG8gc3RyaW5nVHJlYXROdWxsQXNFbXB0eVN0cmluZ1ZhbHVlID0gdG9KUzxJRExUcmVhdE51
bGxBc0VtcHR5QWRhcHRvcjxJRExET01TdHJpbmc+PihzdGF0ZSwgSURMVHJlYXROdWxsQXNFbXB0
eUFkYXB0b3I8SURMRE9NU3RyaW5nPjo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRpY3Rpb25h
cnkuc3RyaW5nVHJlYXROdWxsQXNFbXB0eVN0cmluZykpOwogICAgICAgICByZXN1bHQtPnB1dERp
cmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgInN0cmluZ1RyZWF0TnVs
bEFzRW1wdHlTdHJpbmciKSwgc3RyaW5nVHJlYXROdWxsQXNFbXB0eVN0cmluZ1ZhbHVlKTsKICAg
ICB9Ci0gICAgYXV0byBzdHJpbmdXaXRoRGVmYXVsdFZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+
KHN0YXRlLCBnbG9iYWxPYmplY3QsIGRpY3Rpb25hcnkuc3RyaW5nV2l0aERlZmF1bHQpOworICAg
IGF1dG8gc3RyaW5nV2l0aERlZmF1bHRWYWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPihzdGF0ZSwg
ZGljdGlvbmFyeS5zdHJpbmdXaXRoRGVmYXVsdCk7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0s
IEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJzdHJpbmdXaXRoRGVmYXVsdCIpLCBz
dHJpbmdXaXRoRGVmYXVsdFZhbHVlKTsKICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFs
dWUoZGljdGlvbmFyeS5zdHJpbmdXaXRob3V0RGVmYXVsdCkpIHsKLSAgICAgICAgYXV0byBzdHJp
bmdXaXRob3V0RGVmYXVsdFZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KHN0YXRlLCBnbG9iYWxP
YmplY3QsIElETERPTVN0cmluZzo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRpY3Rpb25hcnku
c3RyaW5nV2l0aG91dERlZmF1bHQpKTsKKyAgICAgICAgYXV0byBzdHJpbmdXaXRob3V0RGVmYXVs
dFZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KHN0YXRlLCBJRExET01TdHJpbmc6OmV4dHJhY3RW
YWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LnN0cmluZ1dpdGhvdXREZWZhdWx0KSk7CiAgICAg
ICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZt
LCAic3RyaW5nV2l0aG91dERlZmF1bHQiKSwgc3RyaW5nV2l0aG91dERlZmF1bHRWYWx1ZSk7CiAg
ICAgfQogICAgIGlmICghSURMVW5pb248SURMTG9uZywgSURMSW50ZXJmYWNlPE5vZGU+Pjo6aXNO
dWxsVmFsdWUoZGljdGlvbmFyeS51bmlvbk1lbWJlcikpIHsKQEAgLTcyMSwyOCArNzM3LDI4IEBA
IEpTQzo6SlNPYmplY3QqIGNvbnZlcnREaWN0aW9uYXJ5VG9KUyhKU0MKICAgICAgICAgcmVzdWx0
LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJ1bmlvbk1l
bWJlciIpLCB1bmlvbk1lbWJlclZhbHVlKTsKICAgICB9CiAgICAgaWYgKCFJRExVbnJlc3RyaWN0
ZWREb3VibGU6OmlzTnVsbFZhbHVlKGRpY3Rpb25hcnkudW5yZXN0cmljdGVkRG91YmxlKSkgewot
ICAgICAgICBhdXRvIHVucmVzdHJpY3RlZERvdWJsZVZhbHVlID0gdG9KUzxJRExVbnJlc3RyaWN0
ZWREb3VibGU+KHN0YXRlLCBnbG9iYWxPYmplY3QsIElETFVucmVzdHJpY3RlZERvdWJsZTo6ZXh0
cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRpY3Rpb25hcnkudW5yZXN0cmljdGVkRG91YmxlKSk7Cisg
ICAgICAgIGF1dG8gdW5yZXN0cmljdGVkRG91YmxlVmFsdWUgPSB0b0pTPElETFVucmVzdHJpY3Rl
ZERvdWJsZT4oSURMVW5yZXN0cmljdGVkRG91YmxlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUo
ZGljdGlvbmFyeS51bnJlc3RyaWN0ZWREb3VibGUpKTsKICAgICAgICAgcmVzdWx0LT5wdXREaXJl
Y3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJ1bnJlc3RyaWN0ZWREb3Vi
bGUiKSwgdW5yZXN0cmljdGVkRG91YmxlVmFsdWUpOwogICAgIH0KLSAgICBhdXRvIHVucmVzdHJp
Y3RlZERvdWJsZVdpdGhEZWZhdWx0VmFsdWUgPSB0b0pTPElETFVucmVzdHJpY3RlZERvdWJsZT4o
c3RhdGUsIGdsb2JhbE9iamVjdCwgZGljdGlvbmFyeS51bnJlc3RyaWN0ZWREb3VibGVXaXRoRGVm
YXVsdCk7CisgICAgYXV0byB1bnJlc3RyaWN0ZWREb3VibGVXaXRoRGVmYXVsdFZhbHVlID0gdG9K
UzxJRExVbnJlc3RyaWN0ZWREb3VibGU+KGRpY3Rpb25hcnkudW5yZXN0cmljdGVkRG91YmxlV2l0
aERlZmF1bHQpOwogICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZy
b21TdHJpbmcoJnZtLCAidW5yZXN0cmljdGVkRG91YmxlV2l0aERlZmF1bHQiKSwgdW5yZXN0cmlj
dGVkRG91YmxlV2l0aERlZmF1bHRWYWx1ZSk7CiAgICAgaWYgKCFJRExVbnJlc3RyaWN0ZWRGbG9h
dDo6aXNOdWxsVmFsdWUoZGljdGlvbmFyeS51bnJlc3RyaWN0ZWRGbG9hdCkpIHsKLSAgICAgICAg
YXV0byB1bnJlc3RyaWN0ZWRGbG9hdFZhbHVlID0gdG9KUzxJRExVbnJlc3RyaWN0ZWRGbG9hdD4o
c3RhdGUsIGdsb2JhbE9iamVjdCwgSURMVW5yZXN0cmljdGVkRmxvYXQ6OmV4dHJhY3RWYWx1ZUZy
b21OdWxsYWJsZShkaWN0aW9uYXJ5LnVucmVzdHJpY3RlZEZsb2F0KSk7CisgICAgICAgIGF1dG8g
dW5yZXN0cmljdGVkRmxvYXRWYWx1ZSA9IHRvSlM8SURMVW5yZXN0cmljdGVkRmxvYXQ+KElETFVu
cmVzdHJpY3RlZEZsb2F0OjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUoZGljdGlvbmFyeS51bnJl
c3RyaWN0ZWRGbG9hdCkpOwogICAgICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgInVucmVzdHJpY3RlZEZsb2F0IiksIHVucmVzdHJpY3Rl
ZEZsb2F0VmFsdWUpOwogICAgIH0KLSAgICBhdXRvIHVucmVzdHJpY3RlZEZsb2F0V2l0aERlZmF1
bHRWYWx1ZSA9IHRvSlM8SURMVW5yZXN0cmljdGVkRmxvYXQ+KHN0YXRlLCBnbG9iYWxPYmplY3Qs
IGRpY3Rpb25hcnkudW5yZXN0cmljdGVkRmxvYXRXaXRoRGVmYXVsdCk7CisgICAgYXV0byB1bnJl
c3RyaWN0ZWRGbG9hdFdpdGhEZWZhdWx0VmFsdWUgPSB0b0pTPElETFVucmVzdHJpY3RlZEZsb2F0
PihkaWN0aW9uYXJ5LnVucmVzdHJpY3RlZEZsb2F0V2l0aERlZmF1bHQpOwogICAgIHJlc3VsdC0+
cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAidW5yZXN0cmlj
dGVkRmxvYXRXaXRoRGVmYXVsdCIpLCB1bnJlc3RyaWN0ZWRGbG9hdFdpdGhEZWZhdWx0VmFsdWUp
OwogICAgIGlmICghSURMVW5zaWduZWRMb25nOjppc051bGxWYWx1ZShkaWN0aW9uYXJ5LnVuc2ln
bmVkSW50ZWdlcikpIHsKLSAgICAgICAgYXV0byB1bnNpZ25lZEludGVnZXJWYWx1ZSA9IHRvSlM8
SURMVW5zaWduZWRMb25nPihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBJRExVbnNpZ25lZExvbmc6OmV4
dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LnVuc2lnbmVkSW50ZWdlcikpOworICAg
ICAgICBhdXRvIHVuc2lnbmVkSW50ZWdlclZhbHVlID0gdG9KUzxJRExVbnNpZ25lZExvbmc+KElE
TFVuc2lnbmVkTG9uZzo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRpY3Rpb25hcnkudW5zaWdu
ZWRJbnRlZ2VyKSk7CiAgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZp
ZXI6OmZyb21TdHJpbmcoJnZtLCAidW5zaWduZWRJbnRlZ2VyIiksIHVuc2lnbmVkSW50ZWdlclZh
bHVlKTsKICAgICB9Ci0gICAgYXV0byB1bnNpZ25lZEludGVnZXJXaXRoRGVmYXVsdFZhbHVlID0g
dG9KUzxJRExVbnNpZ25lZExvbmc+KHN0YXRlLCBnbG9iYWxPYmplY3QsIGRpY3Rpb25hcnkudW5z
aWduZWRJbnRlZ2VyV2l0aERlZmF1bHQpOworICAgIGF1dG8gdW5zaWduZWRJbnRlZ2VyV2l0aERl
ZmF1bHRWYWx1ZSA9IHRvSlM8SURMVW5zaWduZWRMb25nPihkaWN0aW9uYXJ5LnVuc2lnbmVkSW50
ZWdlcldpdGhEZWZhdWx0KTsKICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKCZ2bSwgInVuc2lnbmVkSW50ZWdlcldpdGhEZWZhdWx0IiksIHVuc2ln
bmVkSW50ZWdlcldpdGhEZWZhdWx0VmFsdWUpOwogICAgIGlmICghSURMVW5zaWduZWRMb25nTG9u
Zzo6aXNOdWxsVmFsdWUoZGljdGlvbmFyeS51bnNpZ25lZExhcmdlSW50ZWdlcikpIHsKLSAgICAg
ICAgYXV0byB1bnNpZ25lZExhcmdlSW50ZWdlclZhbHVlID0gdG9KUzxJRExVbnNpZ25lZExvbmdM
b25nPihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBJRExVbnNpZ25lZExvbmdMb25nOjpleHRyYWN0VmFs
dWVGcm9tTnVsbGFibGUoZGljdGlvbmFyeS51bnNpZ25lZExhcmdlSW50ZWdlcikpOworICAgICAg
ICBhdXRvIHVuc2lnbmVkTGFyZ2VJbnRlZ2VyVmFsdWUgPSB0b0pTPElETFVuc2lnbmVkTG9uZ0xv
bmc+KElETFVuc2lnbmVkTG9uZ0xvbmc6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9u
YXJ5LnVuc2lnbmVkTGFyZ2VJbnRlZ2VyKSk7CiAgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZt
LCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAidW5zaWduZWRMYXJnZUludGVnZXIi
KSwgdW5zaWduZWRMYXJnZUludGVnZXJWYWx1ZSk7CiAgICAgfQotICAgIGF1dG8gdW5zaWduZWRM
YXJnZUludGVnZXJXaXRoRGVmYXVsdFZhbHVlID0gdG9KUzxJRExVbnNpZ25lZExvbmdMb25nPihz
dGF0ZSwgZ2xvYmFsT2JqZWN0LCBkaWN0aW9uYXJ5LnVuc2lnbmVkTGFyZ2VJbnRlZ2VyV2l0aERl
ZmF1bHQpOworICAgIGF1dG8gdW5zaWduZWRMYXJnZUludGVnZXJXaXRoRGVmYXVsdFZhbHVlID0g
dG9KUzxJRExVbnNpZ25lZExvbmdMb25nPihkaWN0aW9uYXJ5LnVuc2lnbmVkTGFyZ2VJbnRlZ2Vy
V2l0aERlZmF1bHQpOwogICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6
OmZyb21TdHJpbmcoJnZtLCAidW5zaWduZWRMYXJnZUludGVnZXJXaXRoRGVmYXVsdCIpLCB1bnNp
Z25lZExhcmdlSW50ZWdlcldpdGhEZWZhdWx0VmFsdWUpOwogICAgIHJldHVybiByZXN1bHQ7CiB9
CkBAIC03OTQ3LDI0ICs3OTYzLDI0IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHIKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZ0JvZHk+KCpzdGF0ZSwgInRvU3RyaW5nIik7CiB9
CiAKLUpTQzo6SlNPYmplY3QqIEpTVGVzdE9iajo6c2VyaWFsaXplKEV4ZWNTdGF0ZSogc3RhdGUs
IEpTVGVzdE9iaiogdGhpc09iamVjdCwgVGhyb3dTY29wZSYgdGhyb3dTY29wZSkKK0pTQzo6SlNP
YmplY3QqIEpTVGVzdE9iajo6c2VyaWFsaXplKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVGVzdE9iaiYg
dGhpc09iamVjdCwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgVGhyb3dTY29wZSYg
dGhyb3dTY29wZSkKIHsKLSAgICBhdXRvJiB2bSA9IHN0YXRlLT52bSgpOwotICAgIGF1dG8qIHJl
c3VsdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KHN0YXRlKTsKKyAgICBhdXRvJiB2bSA9IHN0YXRl
LnZtKCk7CisgICAgYXV0byogcmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoJnN0YXRlLCBn
bG9iYWxPYmplY3Qub2JqZWN0UHJvdG90eXBlKCkpOwogCi0gICAgYXV0byBjcmVhdGVWYWx1ZSA9
IGpzVGVzdE9iakNyZWF0ZUdldHRlcigqc3RhdGUsICp0aGlzT2JqZWN0LCB0aHJvd1Njb3BlKTsK
KyAgICBhdXRvIGNyZWF0ZVZhbHVlID0ganNUZXN0T2JqQ3JlYXRlR2V0dGVyKHN0YXRlLCB0aGlz
T2JqZWN0LCB0aHJvd1Njb3BlKTsKICAgICB0aHJvd1Njb3BlLmFzc2VydE5vRXhjZXB0aW9uKCk7
CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAi
Y3JlYXRlIiksIGNyZWF0ZVZhbHVlKTsKIAotICAgIGF1dG8gcmVhZE9ubHlTdHJpbmdBdHRyVmFs
dWUgPSBqc1Rlc3RPYmpSZWFkT25seVN0cmluZ0F0dHJHZXR0ZXIoKnN0YXRlLCAqdGhpc09iamVj
dCwgdGhyb3dTY29wZSk7CisgICAgYXV0byByZWFkT25seVN0cmluZ0F0dHJWYWx1ZSA9IGpzVGVz
dE9ialJlYWRPbmx5U3RyaW5nQXR0ckdldHRlcihzdGF0ZSwgdGhpc09iamVjdCwgdGhyb3dTY29w
ZSk7CiAgICAgdGhyb3dTY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwogICAgIHJlc3VsdC0+cHV0
RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgInJlYWRPbmx5U3RyaW5nQXR0
ciIpLCByZWFkT25seVN0cmluZ0F0dHJWYWx1ZSk7CiAKLSAgICBhdXRvIGVudW1BdHRyVmFsdWUg
PSBqc1Rlc3RPYmpFbnVtQXR0ckdldHRlcigqc3RhdGUsICp0aGlzT2JqZWN0LCB0aHJvd1Njb3Bl
KTsKKyAgICBhdXRvIGVudW1BdHRyVmFsdWUgPSBqc1Rlc3RPYmpFbnVtQXR0ckdldHRlcihzdGF0
ZSwgdGhpc09iamVjdCwgdGhyb3dTY29wZSk7CiAgICAgdGhyb3dTY29wZS5hc3NlcnROb0V4Y2Vw
dGlvbigpOwogICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KCZ2bSwgImVudW1BdHRyIiksIGVudW1BdHRyVmFsdWUpOwogCi0gICAgYXV0byBsb25nQXR0clZh
bHVlID0ganNUZXN0T2JqTG9uZ0F0dHJHZXR0ZXIoKnN0YXRlLCAqdGhpc09iamVjdCwgdGhyb3dT
Y29wZSk7CisgICAgYXV0byBsb25nQXR0clZhbHVlID0ganNUZXN0T2JqTG9uZ0F0dHJHZXR0ZXIo
c3RhdGUsIHRoaXNPYmplY3QsIHRocm93U2NvcGUpOwogICAgIHRocm93U2NvcGUuYXNzZXJ0Tm9F
eGNlcHRpb24oKTsKICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZygmdm0sICJsb25nQXR0ciIpLCBsb25nQXR0clZhbHVlKTsKIApAQCAtNzk3Myw3ICs3OTg5
LDcgQEAgSlNDOjpKU09iamVjdCogSlNUZXN0T2JqOjpzZXJpYWxpemUoRXhlYwogCiBzdGF0aWMg
aW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVG9KU09OQm9k
eShFeGVjU3RhdGUqIHN0YXRlLCBKU1Rlc3RPYmoqIHRoaXNPYmplY3QsIEpTQzo6VGhyb3dTY29w
ZSYgdGhyb3dTY29wZSkKIHsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE9iajo6
c2VyaWFsaXplKHN0YXRlLCB0aGlzT2JqZWN0LCB0aHJvd1Njb3BlKSk7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1Rlc3RPYmo6OnNlcmlhbGl6ZSgqc3RhdGUsICp0aGlzT2JqZWN0LCAq
dGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUpKTsKIH0KIAogRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRvSlNPTihFeGVj
U3RhdGUqIHN0YXRlKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yMCw3ICsyMCw4IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiSlNET01Db252
ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0RGljdGlvbmFyeS5oIgorI2luY2x1ZGUgIkpT
RE9NQ29udmVydEVudW1lcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyLmgiCiAjaW5j
bHVkZSAiVGVzdE9iai5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvQ2FsbERhdGEuaD4KQEAgLTU2LDcg
KzU3LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29u
c3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICBzdGF0
aWMgSlNDOjpKU09iamVjdCogc2VyaWFsaXplKEpTQzo6RXhlY1N0YXRlKiwgSlNUZXN0T2JqKiB0
aGlzT2JqZWN0LCBKU0M6OlRocm93U2NvcGUmKTsKKyAgICBzdGF0aWMgSlNDOjpKU09iamVjdCog
c2VyaWFsaXplKEpTQzo6RXhlY1N0YXRlJiwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU0RPTUds
b2JhbE9iamVjdCYsIEpTQzo6VGhyb3dTY29wZSYpOwogICAgIG11dGFibGUgSlNDOjpXcml0ZUJh
cnJpZXI8SlNDOjpVbmtub3duPiBtX2NhY2hlZEF0dHJpYnV0ZTE7CiAgICAgbXV0YWJsZSBKU0M6
OldyaXRlQmFycmllcjxKU0M6OlVua25vd24+IG1fY2FjaGVkQXR0cmlidXRlMjsKICAgICBzdGF0
aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIEpTQzo6U2xvdFZpc2l0b3ImKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAJKHJldmlzaW9u
IDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsMTEgKzI0
LDEzIEBACiAjaW5jbHVkZSAiSlNCbG9iLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAj
aW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvci5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgor
I2luY2x1ZGUgIkpTRE9NQ29udmVydEJ1ZmZlclNvdXJjZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29u
dmVydEludGVyZmFjZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bWJlcnMuaCIKKyNpbmNs
dWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0VmFyaWFk
aWMuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNE
T01XcmFwcGVyQ2FjaGUuaCIKLSNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CiAjaW5jbHVkZSA8
cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KIApJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzV2l0aFNlcXVlbmNlLmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRo
U2VxdWVuY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMywxMCArMjMsMTEgQEAKIAogI2luY2x1
ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3IuaCIKLSNpbmNs
dWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRJbnRlcmZhY2UuaCIK
KyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTZXF1ZW5jZXMuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZl
cnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1
ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCi0jaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KICNpbmNsdWRlIDxydW50aW1lL0l0
ZXJhdG9yT3BlcmF0aW9ucy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNBcnJheS5oPgpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVp
bHRpbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVp
bHRpbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw4ICsyNCwxMCBAQAogI2luY2x1ZGUgIkpT
RE9NQWJzdHJhY3RPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5j
bHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RP
TUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRJbnRlcmZhY2UuaCIKKyNpbmNsdWRl
ICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGlu
Zy5oIgorI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNET01PcGVy
YXRpb24uaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgIkpTTm9k
ZS5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAJ
KHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
NCwxMCArMjQsMTQgQEAKICNpbmNsdWRlICJKU0RPTUF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkpT
RE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJK
U0RPTUNvbnZlcnRBbnkuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRCb29sZWFuLmgiCisjaW5j
bHVkZSAiSlNET01Db252ZXJ0SW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0UHJv
bWlzZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFN0cmluZ3MuaCIKICNpbmNsdWRlICJKU0RP
TUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlLmgiCiAjaW5jbHVk
ZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKLSNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CiAjaW5j
bHVkZSA8d3RmL0dldFB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25F
dmVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQuaAkocmV2aXNpb24gMjE4Mjk5KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VSZWpl
Y3Rpb25FdmVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMCw3ICsyMCw3IEBACiAKICNwcmFnbWEg
b25jZQogCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0
RGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIkpTRXZlbnQuaCIKICNpbmNsdWRlICJUZXN0UHJvbWlz
ZVJlamVjdGlvbkV2ZW50LmgiCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbi5jcHAJ
KHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsOCArMjQs
MTEgQEAKICNpbmNsdWRlICJKU0RPTUF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGlu
Zy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCi0jaW5j
bHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0SW50ZXJmYWNlLmgi
CisjaW5jbHVkZSAiSlNET01Db252ZXJ0TnVtYmVycy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVy
dFN0cmluZ3MuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCisjaW5jbHVk
ZSAiSlNET01HbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgogI2lu
Y2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSAiSlNUZXN0RXhjZXB0aW9uLmgi
CkBAIC0zNzAsMjggKzM3MywyOCBAQCBib29sIHNldEpTVGVzdFNlcmlhbGl6YXRpb25TaXh0aFR5
cGVkZWZBCiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXJpYWxpemF0aW9uPjo6c2V0
PHNldEpTVGVzdFNlcmlhbGl6YXRpb25TaXh0aFR5cGVkZWZBdHRyaWJ1dGVTZXR0ZXI+KCpzdGF0
ZSwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzaXh0aFR5cGVkZWZBdHRyaWJ1dGUiKTsKIH0K
IAotSlNDOjpKU09iamVjdCogSlNUZXN0U2VyaWFsaXphdGlvbjo6c2VyaWFsaXplKEV4ZWNTdGF0
ZSogc3RhdGUsIEpTVGVzdFNlcmlhbGl6YXRpb24qIHRoaXNPYmplY3QsIFRocm93U2NvcGUmIHRo
cm93U2NvcGUpCitKU0M6OkpTT2JqZWN0KiBKU1Rlc3RTZXJpYWxpemF0aW9uOjpzZXJpYWxpemUo
RXhlY1N0YXRlJiBzdGF0ZSwgSlNUZXN0U2VyaWFsaXphdGlvbiYgdGhpc09iamVjdCwgSlNET01H
bG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgVGhyb3dTY29wZSYgdGhyb3dTY29wZSkKIHsKLSAg
ICBhdXRvJiB2bSA9IHN0YXRlLT52bSgpOwotICAgIGF1dG8qIHJlc3VsdCA9IGNvbnN0cnVjdEVt
cHR5T2JqZWN0KHN0YXRlKTsKKyAgICBhdXRvJiB2bSA9IHN0YXRlLnZtKCk7CisgICAgYXV0byog
cmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoJnN0YXRlLCBnbG9iYWxPYmplY3Qub2JqZWN0
UHJvdG90eXBlKCkpOwogCi0gICAgYXV0byBmaXJzdFN0cmluZ0F0dHJpYnV0ZVZhbHVlID0ganNU
ZXN0U2VyaWFsaXphdGlvbkZpcnN0U3RyaW5nQXR0cmlidXRlR2V0dGVyKCpzdGF0ZSwgKnRoaXNP
YmplY3QsIHRocm93U2NvcGUpOworICAgIGF1dG8gZmlyc3RTdHJpbmdBdHRyaWJ1dGVWYWx1ZSA9
IGpzVGVzdFNlcmlhbGl6YXRpb25GaXJzdFN0cmluZ0F0dHJpYnV0ZUdldHRlcihzdGF0ZSwgdGhp
c09iamVjdCwgdGhyb3dTY29wZSk7CiAgICAgdGhyb3dTY29wZS5hc3NlcnROb0V4Y2VwdGlvbigp
OwogICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwg
ImZpcnN0U3RyaW5nQXR0cmlidXRlIiksIGZpcnN0U3RyaW5nQXR0cmlidXRlVmFsdWUpOwogCi0g
ICAgYXV0byBzZWNvbmRMb25nQXR0cmlidXRlVmFsdWUgPSBqc1Rlc3RTZXJpYWxpemF0aW9uU2Vj
b25kTG9uZ0F0dHJpYnV0ZUdldHRlcigqc3RhdGUsICp0aGlzT2JqZWN0LCB0aHJvd1Njb3BlKTsK
KyAgICBhdXRvIHNlY29uZExvbmdBdHRyaWJ1dGVWYWx1ZSA9IGpzVGVzdFNlcmlhbGl6YXRpb25T
ZWNvbmRMb25nQXR0cmlidXRlR2V0dGVyKHN0YXRlLCB0aGlzT2JqZWN0LCB0aHJvd1Njb3BlKTsK
ICAgICB0aHJvd1Njb3BlLmFzc2VydE5vRXhjZXB0aW9uKCk7CiAgICAgcmVzdWx0LT5wdXREaXJl
Y3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAic2Vjb25kTG9uZ0F0dHJpYnV0ZSIp
LCBzZWNvbmRMb25nQXR0cmlidXRlVmFsdWUpOwogCi0gICAgYXV0byBmb3VydGhVbnJlc3RyaWN0
ZWREb3VibGVBdHRyaWJ1dGVWYWx1ZSA9IGpzVGVzdFNlcmlhbGl6YXRpb25Gb3VydGhVbnJlc3Ry
aWN0ZWREb3VibGVBdHRyaWJ1dGVHZXR0ZXIoKnN0YXRlLCAqdGhpc09iamVjdCwgdGhyb3dTY29w
ZSk7CisgICAgYXV0byBmb3VydGhVbnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGVWYWx1ZSA9IGpz
VGVzdFNlcmlhbGl6YXRpb25Gb3VydGhVbnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGVHZXR0ZXIo
c3RhdGUsIHRoaXNPYmplY3QsIHRocm93U2NvcGUpOwogICAgIHRocm93U2NvcGUuYXNzZXJ0Tm9F
eGNlcHRpb24oKTsKICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZygmdm0sICJmb3VydGhVbnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGUiKSwgZm91cnRoVW5y
ZXN0cmljdGVkRG91YmxlQXR0cmlidXRlVmFsdWUpOwogCi0gICAgYXV0byBmaWZ0aExvbmdBdHRy
aWJ1dGVWYWx1ZSA9IGpzVGVzdFNlcmlhbGl6YXRpb25GaWZ0aExvbmdBdHRyaWJ1dGVHZXR0ZXIo
KnN0YXRlLCAqdGhpc09iamVjdCwgdGhyb3dTY29wZSk7CisgICAgYXV0byBmaWZ0aExvbmdBdHRy
aWJ1dGVWYWx1ZSA9IGpzVGVzdFNlcmlhbGl6YXRpb25GaWZ0aExvbmdBdHRyaWJ1dGVHZXR0ZXIo
c3RhdGUsIHRoaXNPYmplY3QsIHRocm93U2NvcGUpOwogICAgIHRocm93U2NvcGUuYXNzZXJ0Tm9F
eGNlcHRpb24oKTsKICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZygmdm0sICJmaWZ0aExvbmdBdHRyaWJ1dGUiKSwgZmlmdGhMb25nQXR0cmlidXRlVmFsdWUp
OwogCi0gICAgYXV0byBzaXh0aFR5cGVkZWZBdHRyaWJ1dGVWYWx1ZSA9IGpzVGVzdFNlcmlhbGl6
YXRpb25TaXh0aFR5cGVkZWZBdHRyaWJ1dGVHZXR0ZXIoKnN0YXRlLCAqdGhpc09iamVjdCwgdGhy
b3dTY29wZSk7CisgICAgYXV0byBzaXh0aFR5cGVkZWZBdHRyaWJ1dGVWYWx1ZSA9IGpzVGVzdFNl
cmlhbGl6YXRpb25TaXh0aFR5cGVkZWZBdHRyaWJ1dGVHZXR0ZXIoc3RhdGUsIHRoaXNPYmplY3Qs
IHRocm93U2NvcGUpOwogICAgIHRocm93U2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKICAgICBy
ZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJzaXh0aFR5
cGVkZWZBdHRyaWJ1dGUiKSwgc2l4dGhUeXBlZGVmQXR0cmlidXRlVmFsdWUpOwogCkBAIC00MDAs
NyArNDAzLDcgQEAgSlNDOjpKU09iamVjdCogSlNUZXN0U2VyaWFsaXphdGlvbjo6c2VyaQogCiBz
dGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6YXRpb25Qcm90b3R5cGVG
dW5jdGlvblRvSlNPTkJvZHkoRXhlY1N0YXRlKiBzdGF0ZSwgSlNUZXN0U2VyaWFsaXphdGlvbiog
dGhpc09iamVjdCwgSlNDOjpUaHJvd1Njb3BlJiB0aHJvd1Njb3BlKQogewotICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoSlNUZXN0U2VyaWFsaXphdGlvbjo6c2VyaWFsaXplKHN0YXRlLCB0aGlz
T2JqZWN0LCB0aHJvd1Njb3BlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RT
ZXJpYWxpemF0aW9uOjpzZXJpYWxpemUoKnN0YXRlLCAqdGhpc09iamVjdCwgKnRoaXNPYmplY3Qt
Pmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0U2VyaWFsaXphdGlvblByb3RvdHlwZUZ1bmN0aW9uVG9KU09OKEV4ZWNT
dGF0ZSogc3RhdGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0U2VyaWFsaXphdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uLmgJKHJldmlzaW9uIDIx
ODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RT
ZXJpYWxpemF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgog
ICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYs
IGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICBzdGF0aWMgSlNDOjpKU09iamVjdCog
c2VyaWFsaXplKEpTQzo6RXhlY1N0YXRlKiwgSlNUZXN0U2VyaWFsaXphdGlvbiogdGhpc09iamVj
dCwgSlNDOjpUaHJvd1Njb3BlJik7CisgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIHNlcmlhbGl6
ZShKU0M6OkV4ZWNTdGF0ZSYsIEpTVGVzdFNlcmlhbGl6YXRpb24mIHRoaXNPYmplY3QsIEpTRE9N
R2xvYmFsT2JqZWN0JiwgSlNDOjpUaHJvd1Njb3BlJik7CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0
U2VyaWFsaXphdGlvbihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRl
c3RTZXJpYWxpemF0aW9uPiYmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXph
dGlvbkluaGVyaXQuY3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSAiSlNET01BdHRyaWJ1dGUuaCIK
ICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90
Q29uc3RydWN0YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgorI2luY2x1ZGUgIkpT
RE9NQ29udmVydE51bWJlcnMuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgi
CiAjaW5jbHVkZSAiSlNET01PcGVyYXRpb24uaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNo
ZS5oIgpAQCAtMTk2LDEyICsxOTYsMTIgQEAgYm9vbCBzZXRKU1Rlc3RTZXJpYWxpemF0aW9uSW5o
ZXJpdEluaGVyaQogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0U2VyaWFsaXphdGlvbklu
aGVyaXQ+OjpzZXQ8c2V0SlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRJbmhlcml0TG9uZ0F0dHJp
YnV0ZVNldHRlcj4oKnN0YXRlLCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImluaGVyaXRMb25n
QXR0cmlidXRlIik7CiB9CiAKLUpTQzo6SlNPYmplY3QqIEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhl
cml0OjpzZXJpYWxpemUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNUZXN0U2VyaWFsaXphdGlvbkluaGVy
aXQqIHRoaXNPYmplY3QsIFRocm93U2NvcGUmIHRocm93U2NvcGUpCitKU0M6OkpTT2JqZWN0KiBK
U1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdDo6c2VyaWFsaXplKEV4ZWNTdGF0ZSYgc3RhdGUsIEpT
VGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0JiB0aGlzT2JqZWN0LCBKU0RPTUdsb2JhbE9iamVjdCYg
Z2xvYmFsT2JqZWN0LCBUaHJvd1Njb3BlJiB0aHJvd1Njb3BlKQogewotICAgIGF1dG8mIHZtID0g
c3RhdGUtPnZtKCk7Ci0gICAgYXV0byogcmVzdWx0ID0gSlNUZXN0U2VyaWFsaXphdGlvbjo6c2Vy
aWFsaXplKHN0YXRlLCB0aGlzT2JqZWN0LCB0aHJvd1Njb3BlKTsKKyAgICBhdXRvJiB2bSA9IHN0
YXRlLnZtKCk7CisgICAgYXV0byogcmVzdWx0ID0gSlNUZXN0U2VyaWFsaXphdGlvbjo6c2VyaWFs
aXplKHN0YXRlLCB0aGlzT2JqZWN0LCBnbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOwogCi0gICAg
YXV0byBpbmhlcml0TG9uZ0F0dHJpYnV0ZVZhbHVlID0ganNUZXN0U2VyaWFsaXphdGlvbkluaGVy
aXRJbmhlcml0TG9uZ0F0dHJpYnV0ZUdldHRlcigqc3RhdGUsICp0aGlzT2JqZWN0LCB0aHJvd1Nj
b3BlKTsKKyAgICBhdXRvIGluaGVyaXRMb25nQXR0cmlidXRlVmFsdWUgPSBqc1Rlc3RTZXJpYWxp
emF0aW9uSW5oZXJpdEluaGVyaXRMb25nQXR0cmlidXRlR2V0dGVyKHN0YXRlLCB0aGlzT2JqZWN0
LCB0aHJvd1Njb3BlKTsKICAgICB0aHJvd1Njb3BlLmFzc2VydE5vRXhjZXB0aW9uKCk7CiAgICAg
cmVzdWx0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiaW5oZXJp
dExvbmdBdHRyaWJ1dGUiKSwgaW5oZXJpdExvbmdBdHRyaWJ1dGVWYWx1ZSk7CiAKQEAgLTIxMCw3
ICsyMTAsNyBAQCBKU0M6OkpTT2JqZWN0KiBKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpCiAKIHN0
YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRQcm90
b3R5cGVGdW5jdGlvblRvSlNPTkJvZHkoRXhlY1N0YXRlKiBzdGF0ZSwgSlNUZXN0U2VyaWFsaXph
dGlvbkluaGVyaXQqIHRoaXNPYmplY3QsIEpTQzo6VGhyb3dTY29wZSYgdGhyb3dTY29wZSkKIHsK
LSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0Ojpz
ZXJpYWxpemUoc3RhdGUsIHRoaXNPYmplY3QsIHRocm93U2NvcGUpKTsKKyAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0OjpzZXJpYWxpemUoKnN0YXRl
LCAqdGhpc09iamVjdCwgKnRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlKSk7
CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2VyaWFsaXphdGlvbklu
aGVyaXRQcm90b3R5cGVGdW5jdGlvblRvSlNPTihFeGVjU3RhdGUqIHN0YXRlKQpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25J
bmhlcml0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0LmgJKHJldmlzaW9uIDIxODI5OSkKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0
aW9uSW5oZXJpdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAg
ICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBj
b25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7Ci0gICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIHNl
cmlhbGl6ZShKU0M6OkV4ZWNTdGF0ZSosIEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0KiB0aGlz
T2JqZWN0LCBKU0M6OlRocm93U2NvcGUmKTsKKyAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogc2Vy
aWFsaXplKEpTQzo6RXhlY1N0YXRlJiwgSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXQmIHRoaXNP
YmplY3QsIEpTRE9NR2xvYmFsT2JqZWN0JiwgSlNDOjpUaHJvd1Njb3BlJik7CiAgICAgVGVzdFNl
cmlhbGl6YXRpb25Jbmhlcml0JiB3cmFwcGVkKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxUZXN0U2VyaWFsaXphdGlvbkluaGVyaXQmPihCYXNlOjp3cmFwcGVkKCkp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNl
cmlhbGl6YXRpb25Jbmhlcml0RmluYWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFs
LmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSAiSlNET01BdHRyaWJ1dGUuaCIKICNpbmNs
dWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3Ry
dWN0YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgorI2luY2x1ZGUgIkpTRE9NQ29u
dmVydE51bWJlcnMuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5j
bHVkZSAiSlNET01PcGVyYXRpb24uaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgpA
QCAtMjI5LDEyICsyMjksMTIgQEAgYm9vbCBzZXRKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZp
bmFsRgogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRG
aW5hbD46OnNldDxzZXRKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0
cmlidXRlQmFyU2V0dGVyPigqc3RhdGUsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZmluYWxM
b25nQXR0cmlidXRlQmFyIik7CiB9CiAKLUpTQzo6SlNPYmplY3QqIEpTVGVzdFNlcmlhbGl6YXRp
b25Jbmhlcml0RmluYWw6OnNlcmlhbGl6ZShFeGVjU3RhdGUqIHN0YXRlLCBKU1Rlc3RTZXJpYWxp
emF0aW9uSW5oZXJpdEZpbmFsKiB0aGlzT2JqZWN0LCBUaHJvd1Njb3BlJiB0aHJvd1Njb3BlKQor
SlNDOjpKU09iamVjdCogSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbDo6c2VyaWFsaXpl
KEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwmIHRoaXNP
YmplY3QsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIFRocm93U2NvcGUmIHRocm93
U2NvcGUpCiB7Ci0gICAgYXV0byYgdm0gPSBzdGF0ZS0+dm0oKTsKLSAgICBhdXRvKiByZXN1bHQg
PSBKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdDo6c2VyaWFsaXplKHN0YXRlLCB0aGlzT2JqZWN0
LCB0aHJvd1Njb3BlKTsKKyAgICBhdXRvJiB2bSA9IHN0YXRlLnZtKCk7CisgICAgYXV0byogcmVz
dWx0ID0gSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXQ6OnNlcmlhbGl6ZShzdGF0ZSwgdGhpc09i
amVjdCwgZ2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlKTsKIAotICAgIGF1dG8gZmluYWxMb25nQXR0
cmlidXRlQmFyVmFsdWUgPSBqc1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsRmluYWxMb25n
QXR0cmlidXRlQmFyR2V0dGVyKCpzdGF0ZSwgKnRoaXNPYmplY3QsIHRocm93U2NvcGUpOworICAg
IGF1dG8gZmluYWxMb25nQXR0cmlidXRlQmFyVmFsdWUgPSBqc1Rlc3RTZXJpYWxpemF0aW9uSW5o
ZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlQmFyR2V0dGVyKHN0YXRlLCB0aGlzT2JqZWN0LCB0
aHJvd1Njb3BlKTsKICAgICB0aHJvd1Njb3BlLmFzc2VydE5vRXhjZXB0aW9uKCk7CiAgICAgcmVz
dWx0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiZmluYWxMb25n
QXR0cmlidXRlQmFyIiksIGZpbmFsTG9uZ0F0dHJpYnV0ZUJhclZhbHVlKTsKIApAQCAtMjQzLDcg
KzI0Myw3IEBAIEpTQzo6SlNPYmplY3QqIEpTVGVzdFNlcmlhbGl6YXRpb25JbmhlcmkKIAogc3Rh
dGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFs
UHJvdG90eXBlRnVuY3Rpb25Ub0pTT05Cb2R5KEV4ZWNTdGF0ZSogc3RhdGUsIEpTVGVzdFNlcmlh
bGl6YXRpb25Jbmhlcml0RmluYWwqIHRoaXNPYmplY3QsIEpTQzo6VGhyb3dTY29wZSYgdGhyb3dT
Y29wZSkKIHsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFNlcmlhbGl6YXRpb25J
bmhlcml0RmluYWw6OnNlcmlhbGl6ZShzdGF0ZSwgdGhpc09iamVjdCwgdGhyb3dTY29wZSkpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5h
bDo6c2VyaWFsaXplKCpzdGF0ZSwgKnRoaXNPYmplY3QsICp0aGlzT2JqZWN0LT5nbG9iYWxPYmpl
Y3QoKSwgdGhyb3dTY29wZSkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWxQcm90b3R5cGVGdW5jdGlvblRvSlNPTihFeGVj
U3RhdGUqIHN0YXRlKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbklu
aGVyaXRGaW5hbC5oCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMg
SlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFs
T2JqZWN0Kik7Ci0gICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIHNlcmlhbGl6ZShKU0M6OkV4ZWNT
dGF0ZSosIEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwqIHRoaXNPYmplY3QsIEpTQzo6
VGhyb3dTY29wZSYpOworICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBzZXJpYWxpemUoSlNDOjpF
eGVjU3RhdGUmLCBKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsJiB0aGlzT2JqZWN0LCBK
U0RPTUdsb2JhbE9iamVjdCYsIEpTQzo6VGhyb3dTY29wZSYpOwogICAgIFRlc3RTZXJpYWxpemF0
aW9uSW5oZXJpdEZpbmFsJiB3cmFwcGVkKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDxUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbCY+KEJhc2U6OndyYXBwZWQo
KSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlLmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDggKzI3LDExIEBACiAjaW5jbHVkZSAiSlNET01B
dHRyaWJ1dGUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNv
bnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgor
I2luY2x1ZGUgIkpTRE9NQ29udmVydEludGVyZmFjZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVy
dFNlcXVlbmNlcy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKKyNpbmNsdWRlICJKU0RP
TUdsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAi
SlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJKU01lc3NhZ2VQb3J0LmgiCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RhbmRhbG9uZURp
Y3Rpb25hcnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTdGFuZGFsb25lRGljdGlvbmFyeS5jcHAJKHJldmlzaW9uIDIxODI5
OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdGFu
ZGFsb25lRGljdGlvbmFyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDggQEAKIAog
I2luY2x1ZGUgIkpTVGVzdFN0YW5kYWxvbmVEaWN0aW9uYXJ5LmgiCiAKKyNpbmNsdWRlICJKU0RP
TUNvbnZlcnRCb29sZWFuLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KIApAQCAtMzEsNiArMzMsOCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKKwogdGVtcGxhdGU8PiBEaWN0aW9u
YXJ5SW1wbE5hbWUgY29udmVydERpY3Rpb25hcnk8RGljdGlvbmFyeUltcGxOYW1lPihFeGVjU3Rh
dGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CkBA
IC02NCw2ICs2OCw4IEBAIHRlbXBsYXRlPD4gRGljdGlvbmFyeUltcGxOYW1lIGNvbnZlcnREaWMK
ICAgICByZXR1cm4gcmVzdWx0OwogfQogCisjZW5kaWYKKwogdGVtcGxhdGU8PiBKU1N0cmluZyog
Y29udmVydEVudW1lcmF0aW9uVG9KUyhFeGVjU3RhdGUmIHN0YXRlLCBUZXN0U3RhbmRhbG9uZURp
Y3Rpb25hcnk6OkVudW1JblN0YW5kYWxvbmVEaWN0aW9uYXJ5RmlsZSBlbnVtZXJhdGlvblZhbHVl
KQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+IHZhbHVlc1tdID0g
ewpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0
YW5kYWxvbmVEaWN0aW9uYXJ5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0YW5kYWxvbmVEaWN0aW9uYXJ5LmgJKHJldmlzaW9u
IDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTdGFuZGFsb25lRGljdGlvbmFyeS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw3ICsyMyw4IEBA
CiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpCiAKICNpbmNsdWRlICJEaWN0aW9uYXJ5SW1wbE5hbWUu
aCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnREaWN0
aW9uYXJ5LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0RW51bWVyYXRpb24uaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0U3RhbmRhbG9uZUVudW1lcmF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0YW5kYWxvbmVFbnVtZXJh
dGlvbi5oCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U3RhbmRhbG9uZUVudW1lcmF0aW9uLmgJKHdvcmtpbmcgY29weSkK
QEAgLTIyLDcgKzIyLDcgQEAKIAogI2lmIEVOQUJMRShDT05ESVRJT04pCiAKLSNpbmNsdWRlICJK
U0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRFbnVtZXJhdGlvbi5oIgogI2lu
Y2x1ZGUgIlRlc3RTdGFuZGFsb25lRW51bWVyYXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5
cGVkZWZzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNCw4ICsyNCwxNyBAQAogI2luY2x1ZGUgIkpTRE9NQXR0cmlidXRlLmgi
CiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvci5o
IgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEJvb2xl
YW4uaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRDYWxsYmFja3MuaCIKKyNpbmNsdWRlICJKU0RP
TUNvbnZlcnRJbnRlcmZhY2UuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnROdWxsYWJsZS5oIgor
I2luY2x1ZGUgIkpTRE9NQ29udmVydE51bWJlcnMuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRT
ZXF1ZW5jZXMuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTZXJpYWxpemVkU2NyaXB0VmFsdWUu
aCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCisjaW5jbHVkZSAiSlNET01Db252
ZXJ0VW5pb24uaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCisjaW5jbHVk
ZSAiSlNET01HbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgogI2lu
Y2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSAiSlNTVkdQb2ludC5oIgpAQCAt
MzQsNyArNDMsNiBAQAogI2luY2x1ZGUgIkpTVGVzdEV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAi
SlNUZXN0U3ViT2JqLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCi0jaW5j
bHVkZSA8cnVudGltZS9FcnJvci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5
cGUuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRy
Lmg+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Vm9pZENhbGxiYWNrRnVuY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RWb2lkQ2FsbGJhY2tGdW5jdGlvbi5jcHAJKHJl
dmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RWb2lkQ2FsbGJhY2tGdW5jdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDgg
KzI0LDE0IEBACiAKICNpbmNsdWRlICJKU1Rlc3RWb2lkQ2FsbGJhY2tGdW5jdGlvbi5oIgogCi0j
aW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0Qm9vbGVhbi5o
IgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEJ1ZmZlclNvdXJjZS5oIgorI2luY2x1ZGUgIkpTRE9N
Q29udmVydEludGVyZmFjZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bWJlcnMuaCIKKyNp
bmNsdWRlICJKU0RPTUNvbnZlcnRTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKKyNpbmNsdWRlICJK
U0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5o
IgorI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNUZXN0Tm9kZS5o
IgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTZXJpYWxp
emVkU2NyaXB0VmFsdWUuaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAJKHJldmlz
aW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjgsNyArMjgsOCBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAi
RnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTElGcmFtZUVsZW1lbnQuaCIKLSNpbmNsdWRlICJK
U0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRJbnRlcmZhY2UuaCIKKyNpbmNs
dWRlICJKU0RPTUNvbnZlcnROdWxsYWJsZS5oIgogI2luY2x1ZGUgIkpTRXZlbnRUYXJnZXQuaCIK
ICNpbmNsdWRlICJKU0V2ZW50VGFyZ2V0Q3VzdG9tLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3Vz
ZUV2ZW50LmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdl
RWxlbWVudC5jcHAJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFBsdWdJbkltYWdlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDkgQEAK
ICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIK
ICNpbmNsdWRlICJIVE1MSW1hZ2VMb2FkZXIuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRCb29s
ZWFuLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0SW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiSlNE
T01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTU2hhZG93Um9vdC5oIgogI2luY2x1ZGUg
IkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312948</attachid>
            <date>2017-06-14 20:05:47 -0700</date>
            <delta_ts>2017-06-14 21:24:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173392-20170614200624.patch</filename>
            <type>text/plain</type>
            <size>144802</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0MiBAQAorMjAxNy0wNi0xNCAgU2FtIFdl
aW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIFtXZWJJRExdIFJlcGxhY2UgZ2VuZXJh
bCBpbmNsdXNpb24gb2YgSlNET01Db252ZXJ0Lmggd2l0aCBpbmNsdXNpb24gb2YgaW5kaXZpZHVh
bCBjb252ZXJ0ZXIgZmlsZXMgdG8gcmVkdWNlIHVubmVzc2FyeSBpbmNsdXNpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzM5MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCUmVxdWVzdC5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHA6CisgICAgICAgICogTW9kdWxlcy9wbHVnaW5z
L1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0lE
QkJpbmRpbmdVdGlsaXRpZXMuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ1NTU3R5bGVE
ZWNsYXJhdGlvbkN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDcnlwdG9BbGdv
cml0aG1EaWN0aW9uYXJ5LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1l
bnRJbnRlcmZhY2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudFJl
Z2lzdHJ5Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRCYXNl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpEZXRhaWw6OmdldFB0ck9yUmVmKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRl
dGFpbDo6Z2V0UHRyT3JSZWYpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
Q29udmVydFJlY29yZC5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVydFNlcXVl
bmNlcy5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVydFVuaW9uLmg6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6
OmdldERPTUNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1
c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dQcm9wZXJ0aWVzLmNw
cDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxDYW52YXNF
bGVtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxEb2N1bWVudEN1
c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNIaXN0b3J5Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU01lc3NhZ2VFdmVudDo6ZGF0YSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNN
b2NrQ29udGVudEZpbHRlclNldHRpbmdzQ3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU011dGF0aW9uQ2FsbGJhY2suY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWE1MSHR0
cFJlcXVlc3RDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNYTUxIdHRwUmVxdWVzdDo6
cmV0cmlldmVSZXNwb25zZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0R2xvYmFsT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3Bw
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAg
ICAoQWRkVG9JbmNsdWRlc0ZvcklETFR5cGUpOgorICAgICAgICAoR2V0SlNDQXR0cmlidXRlc0Zv
ckF0dHJpYnV0ZSk6CisgICAgICAgIChHZW5lcmF0ZUVudW1lcmF0aW9uSGVhZGVyKToKKyAgICAg
ICAgKEdlbmVyYXRlRW51bWVyYXRpb25JbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChHZW5lcmF0
ZUVudW1lcmF0aW9uSW1wbGVtZW50YXRpb25Db250ZW50KToKKyAgICAgICAgKEdlbmVyYXRlRW51
bWVyYXRpb25zSW1wbGVtZW50YXRpb25Db250ZW50KToKKyAgICAgICAgKEdlbmVyYXRlRW51bWVy
YXRpb25IZWFkZXJDb250ZW50KToKKyAgICAgICAgKEdlbmVyYXRlRW51bWVyYXRpb25zSGVhZGVy
Q29udGVudCk6CisgICAgICAgIChHZW5lcmF0ZURpY3Rpb25hcnlIZWFkZXJDb250ZW50KToKKyAg
ICAgICAgKEdlbmVyYXRlRGljdGlvbmFyaWVzSGVhZGVyQ29udGVudCk6CisgICAgICAgIChHZW5l
cmF0ZURpY3Rpb25hcnlJbXBsZW1lbnRhdGlvbkNvbnRlbnQpOgorICAgICAgICAoR2VuZXJhdGVE
aWN0aW9uYXJpZXNJbXBsZW1lbnRhdGlvbkNvbnRlbnQpOgorICAgICAgICAoR2VuZXJhdGVIZWFk
ZXIpOgorICAgICAgICAoR2VuZXJhdGVQcm9wZXJ0aWVzSGFzaFRhYmxlKToKKyAgICAgICAgKEdl
bmVyYXRlT3ZlcmxvYWREaXNwYXRjaGVyKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRp
b24pOgorICAgICAgICAoR2VuZXJhdGVBdHRyaWJ1dGVHZXR0ZXJEZWZpbml0aW9uKToKKyAgICAg
ICAgKEdlbmVyYXRlU2VyaWFsaXplckRlZmluaXRpb24pOgorICAgICAgICAoR2VuZXJhdGVEaWN0
aW9uYXJ5SGVhZGVyKToKKyAgICAgICAgKEpTVmFsdWVUb05hdGl2ZSk6CisgICAgICAgIChOYXRp
dmVUb0pTVmFsdWVVc2luZ1JlZmVyZW5jZXMpOgorICAgICAgICAoTmF0aXZlVG9KU1ZhbHVlVXNp
bmdQb2ludGVycyk6CisgICAgICAgIChJc1ZhbGlkQ29udGV4dEZvck5hdGl2ZVRvSlNWYWx1ZSk6
CisgICAgICAgIChOYXRpdmVUb0pTVmFsdWUpOgorICAgICAgICAoR2VuZXJhdGVDb25zdHJ1Y3Rv
ckRlZmluaXRpb24pOgorICAgICAgICAoQ29tcHV0ZUZ1bmN0aW9uU3BlY2lhbCk6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTTWFwTGlrZS5jcHA6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlNYXBMaWtlLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnMuY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lm
aWVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJh
Y2tGdW5jdGlvbi5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dENhbGxiYWNrRnVuY3Rpb25SZXRocm93LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbldpdGhUeXBlZGVmcy5jcHA6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrSW50ZXJmYWNlLmNwcDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tJbnRlcmZh
Y2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RE9NSklULmNw
cDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50
Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFeGNlcHRpb24uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHA6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbi5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0
dGVyV2l0aElkZW50aWZpZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRp
b24uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERl
bGV0ZXJXaXRoSWRlbnRpZmllci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3Bw
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnMuY3Bw
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldp
dGhVbmZvcmdhYmxlUHJvcGVydGllcy5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJp
ZGVCdWlsdGlucy5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0Tm9kZTo6c2VyaWFsaXplKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblRvSlNPTkJvZHkpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmg6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjb252ZXJ0RGljdGlvbmFyeVRvSlMpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T2Jq
OjpzZXJpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Ub0pTT05Cb2R5KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnMuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHA6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVu
dC5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VS
ZWplY3Rpb25FdmVudC5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTZXJpYWxpemF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6YXRp
b246OnNlcmlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXJpYWxpemF0aW9uUHJv
dG90eXBlRnVuY3Rpb25Ub0pTT05Cb2R5KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbi5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdDo6c2VyaWFsaXplKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0UHJvdG90eXBlRnVuY3Rpb25Ub0pTT05Cb2R5
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlv
bkluaGVyaXQuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2Vy
aWFsaXphdGlvbkluaGVyaXRGaW5hbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTZXJp
YWxpemF0aW9uSW5oZXJpdEZpbmFsOjpzZXJpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbFByb3RvdHlwZUZ1bmN0aW9uVG9KU09OQm9keSk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25J
bmhlcml0RmluYWwuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RhbmRhbG9uZURpY3Rpb25hcnkuY3BwOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdGFuZGFsb25lRGljdGlvbmFyeS5oOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdGFuZGFsb25lRW51bWVy
YXRpb24uaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRl
ZnMuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RWb2lkQ2Fs
bGJhY2tGdW5jdGlvbi5jcHA6CisgICAgICAgICogZG9tL01vdXNlRXZlbnQuY3BwOgorICAgICAg
ICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHA6CisKIDIwMTctMDYtMTQgIENvbW1p
dCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIyMTgyODUuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJSZXF1ZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQyLDcgKzQyLDkgQEAKICNpbmNsdWRlICJJREJLZXlEYXRhLmgiCiAjaW5jbHVkZSAiSURCT2Jq
ZWN0U3RvcmUuaCIKICNpbmNsdWRlICJJREJSZXN1bHREYXRhLmgiCi0jaW5jbHVkZSAiSlNET01D
b252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0SW5kZXhlZERCLmgiCisjaW5jbHVkZSAi
SlNET01Db252ZXJ0TnVtYmVycy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFNlcXVlbmNlcy5o
IgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTY29wZUd1YXJkLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDTWVkaWFFbmRwb2ludC5jcHAJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw2IEBACiAjaWYgVVNFKExJQldFQlJUQykK
IAogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKICNp
bmNsdWRlICJKU1JUQ1N0YXRzUmVwb3J0LmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDRGF0YUNoYW5u
ZWxIYW5kbGVyLmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgi
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVw
bGFjZW1lbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5z
L1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0J
KHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDkgQEAKICNpbXBvcnQgIkhUTUxQbHVnSW5FbGVt
ZW50LmgiCiAjaW1wb3J0ICJIVE1MVmlkZW9FbGVtZW50LmgiCiAjaW1wb3J0ICJKU0RPTUJpbmRp
bmcuaCIKKyNpbXBvcnQgIkpTRE9NQ29udmVydE51bGxhYmxlLmgiCisjaW1wb3J0ICJKU0RPTUNv
bnZlcnRTZXF1ZW5jZXMuaCIKKyNpbXBvcnQgIkpTRE9NQ29udmVydFN0cmluZ3MuaCIKICNpbXBv
cnQgIkpTRE9NR2xvYmFsT2JqZWN0LmgiCiAjaW1wb3J0ICJKU0hUTUxWaWRlb0VsZW1lbnQuaCIK
ICNpbXBvcnQgIkpTUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuaCIKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCShyZXZp
c2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRp
bGl0aWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsOCArMzgsOCBAQAogI2luY2x1ZGUgIklE
QlZhbHVlLmgiCiAjaW5jbHVkZSAiSW5kZXhLZXkuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcu
aCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKLSNpbmNsdWRlICJKU0RPTVN0cmluZ0xpc3Qu
aCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnREYXRlLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0
TnVsbGFibGUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQu
aCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1
c3RvbS5jcHAJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYg
KzM1LDggQEAKICNpbmNsdWRlICJEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkhhc2hUb29scy5oIgogI2luY2x1ZGUgIkpTQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIgor
I2luY2x1ZGUgIkpTRE9NQ29udmVydE51bGxhYmxlLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0
U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRGVwcmVjYXRlZENTU09NVmFsdWUuaCIKICNpbmNsdWRl
ICJKU05vZGUuaCIKICNpbmNsdWRlICJKU1N0eWxlU2hlZXRDdXN0b20uaCIKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1E
aWN0aW9uYXJ5LmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDEsNyArNDEsOSBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJKU0Ny
eXB0b09wZXJhdGlvbkRhdGEuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKLSNpbmNsdWRl
ICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRCdWZmZXJTb3VyY2UuaCIK
KyNpbmNsdWRlICJKU0RPTUNvbnZlcnROdW1iZXJzLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0
U3RyaW5ncy5oIgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5jcHAJ
KHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9t
RWxlbWVudEludGVyZmFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDggQEAKICNp
bmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKICNpbmNsdWRlICJIVE1MVW5rbm93bkVsZW1lbnQu
aCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnROdWxs
YWJsZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFN0cmluZ3MuaCIKICNpbmNsdWRlICJKU0RP
TUdsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTSFRN
TEVsZW1lbnQuaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxl
bWVudFJlZ2lzdHJ5Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRSZWdpc3RyeUN1c3RvbS5jcHAJKHJldmlzaW9uIDIxODI5
OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5
Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsOCBAQAogI2luY2x1ZGUgIkhU
TUxOYW1lcy5oIgogI2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIgogI2luY2x1
ZGUgIkpTRE9NQmluZGluZy5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgorI2luY2x1ZGUg
IkpTRE9NQ29udmVydFNlcXVlbmNlcy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFN0cmluZ3Mu
aCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogCiB1c2luZyBuYW1lc3BhY2Ug
SlNDOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0QmFzZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydEJh
c2UuaAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01Db252ZXJ0QmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiwxNCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAvLyBDb252ZXJzaW9uIGZyb20gSlNWYWx1ZSAtPiBJbXBsZW1lbnRhdGlv
bgogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IENvbnZlcnRlcjsKIAorbmFtZXNwYWNlIERl
dGFpbCB7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgVCogZ2V0UHRyT3JSZWYoY29u
c3QgVCogcCkgeyByZXR1cm4gY29uc3RfY2FzdDxUKj4ocCk7IH0KK3RlbXBsYXRlIDx0eXBlbmFt
ZSBUPiBpbmxpbmUgVCYgZ2V0UHRyT3JSZWYoY29uc3QgVCYgcCkgeyByZXR1cm4gY29uc3RfY2Fz
dDxUJj4ocCk7IH0KK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgVCogZ2V0UHRyT3JSZWYo
Y29uc3QgUmVmUHRyPFQ+JiBwKSB7IHJldHVybiBwLmdldCgpOyB9Cit0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4gaW5saW5lIFQmIGdldFB0ck9yUmVmKGNvbnN0IFJlZjxUPiYgcCkgeyByZXR1cm4gcC5n
ZXQoKTsgfQorCit9CiAKIHN0cnVjdCBEZWZhdWx0RXhjZXB0aW9uVGhyb3dlciB7CiAgICAgdm9p
ZCBvcGVyYXRvcigpKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpUaHJvd1Njb3BlJiBzY29w
ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydEludGVyZmFj
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVy
dEludGVyZmFjZS5oCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUNvbnZlcnRJbnRlcmZhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtNDksMTUgKzQ5
LDYgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IENvbnZlcnRlcjxJRAogICAgIH0KIH07
CiAKLW5hbWVzcGFjZSBEZXRhaWwgewotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIFQq
IGdldFB0ck9yUmVmKGNvbnN0IFQqIHApIHsgcmV0dXJuIGNvbnN0X2Nhc3Q8VCo+KHApOyB9Ci10
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIFQmIGdldFB0ck9yUmVmKGNvbnN0IFQmIHApIHsg
cmV0dXJuIGNvbnN0X2Nhc3Q8VCY+KHApOyB9Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5l
IFQqIGdldFB0ck9yUmVmKGNvbnN0IFJlZlB0cjxUPiYgcCkgeyByZXR1cm4gcC5nZXQoKTsgfQot
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGlubGluZSBUJiBnZXRQdHJPclJlZihjb25zdCBSZWY8VD4m
IHApIHsgcmV0dXJuIHAuZ2V0KCk7IH0KLQotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1
Y3QgSlNDb252ZXJ0ZXI8SURMSW50ZXJmYWNlPFQ+PiB7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBi
b29sIG5lZWRzU3RhdGUgPSB0cnVlOwogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0ds
b2JhbE9iamVjdCA9IHRydWU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUNvbnZlcnRSZWNvcmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUNvbnZlcnRSZWNvcmQuaAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0UmVjb3JkLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0
MCw3ICsxNDAsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLLCB0eXBlbmFtZSBWPiBzdHJ1Y3QgCiAg
ICAgICAgIGF1dG8mIHZtID0gc3RhdGUudm0oKTsKICAgICAKICAgICAgICAgLy8gMS4gTGV0IHJl
c3VsdCBiZSAhIE9iamVjdENyZWF0ZSglT2JqZWN0UHJvdG90eXBlJSkuCi0gICAgICAgIGF1dG8g
cmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoJnN0YXRlKTsKKyAgICAgICAgYXV0byByZXN1
bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdCgmc3RhdGUsIGdsb2JhbE9iamVjdC5vYmplY3RQcm90
b3R5cGUoKSk7CiAgICAgICAgIAogICAgICAgICAvLyAyLiBSZXBlYXQsIGZvciBlYWNoIG1hcHBp
bmcgKGtleSwgdmFsdWUpIGluIEQ6CiAgICAgICAgIGZvciAoY29uc3QgYXV0byYga2V5VmFsdWVQ
YWlyIDogbWFwKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZl
cnRTZXF1ZW5jZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUNvbnZlcnRTZXF1ZW5jZXMuaAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0U2VxdWVuY2VzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI3LDkgKzI3LDEyIEBACiAKICNpbmNsdWRlICJJRExUeXBlcy5oIgogI2luY2x1ZGUgIkpTRE9N
Q29udmVydEJhc2UuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnROdW1iZXJzLmgiCisjaW5jbHVk
ZSAiSlNET01HbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlIDxydW50aW1lL0l0ZXJhdG9yT3BlcmF0
aW9ucy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNBcnJheS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUv
SlNHbG9iYWxPYmplY3RJbmxpbmVzLmg+CisjaW5jbHVkZSA8cnVudGltZS9PYmplY3RDb25zdHJ1
Y3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQxMiwzICs0MTUsNCBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSlNDb252ZXJ0ZXI8CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVy
dFVuaW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01D
b252ZXJ0VW5pb24uaAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01Db252ZXJ0VW5pb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBA
QAogI2luY2x1ZGUgIklETFR5cGVzLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5j
bHVkZSAiSlNET01Db252ZXJ0QmFzZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bGwuaCIK
ICNpbmNsdWRlIDxydW50aW1lL0l0ZXJhdG9yT3BlcmF0aW9ucy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVj
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmgJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NR2xvYmFsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDk4ICszNSw5OCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBET01HdWFyZGVkT2JqZWN0OwotICAg
IGNsYXNzIERvY3VtZW50OwotICAgIGNsYXNzIEV2ZW50OwotICAgIGNsYXNzIERPTVdyYXBwZXJX
b3JsZDsKLSAgICBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgRE9NR3VhcmRl
ZE9iamVjdDsKK2NsYXNzIERvY3VtZW50OworY2xhc3MgRXZlbnQ7CitjbGFzcyBET01XcmFwcGVy
V29ybGQ7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCi0gICAgdHlwZWRlZiBIYXNo
TWFwPGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiwgSlNDOjpXcml0ZUJhcnJpZXI8SlNDOjpTdHJ1Y3R1
cmU+PiBKU0RPTVN0cnVjdHVyZU1hcDsKLSAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgSlNDOjpD
bGFzc0luZm8qLCBKU0M6OldyaXRlQmFycmllcjxKU0M6OkpTT2JqZWN0Pj4gSlNET01Db25zdHJ1
Y3Rvck1hcDsKLSAgICB0eXBlZGVmIEhhc2hTZXQ8RE9NR3VhcmRlZE9iamVjdCo+IERPTUd1YXJk
ZWRPYmplY3RTZXQ7Cit0eXBlZGVmIEhhc2hNYXA8Y29uc3QgSlNDOjpDbGFzc0luZm8qLCBKU0M6
OldyaXRlQmFycmllcjxKU0M6OlN0cnVjdHVyZT4+IEpTRE9NU3RydWN0dXJlTWFwOwordHlwZWRl
ZiBIYXNoTWFwPGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiwgSlNDOjpXcml0ZUJhcnJpZXI8SlNDOjpK
U09iamVjdD4+IEpTRE9NQ29uc3RydWN0b3JNYXA7Cit0eXBlZGVmIEhhc2hTZXQ8RE9NR3VhcmRl
ZE9iamVjdCo+IERPTUd1YXJkZWRPYmplY3RTZXQ7CiAKLSAgICBjbGFzcyBXRUJDT1JFX0VYUE9S
VCBKU0RPTUdsb2JhbE9iamVjdCA6IHB1YmxpYyBKU0M6OkpTR2xvYmFsT2JqZWN0IHsKLSAgICAg
ICAgdHlwZWRlZiBKU0M6OkpTR2xvYmFsT2JqZWN0IEJhc2U7Ci0gICAgcHJvdGVjdGVkOgotICAg
ICAgICBzdHJ1Y3QgSlNET01HbG9iYWxPYmplY3REYXRhOworY2xhc3MgV0VCQ09SRV9FWFBPUlQg
SlNET01HbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNDOjpKU0dsb2JhbE9iamVjdCB7CisgICAgdHlw
ZWRlZiBKU0M6OkpTR2xvYmFsT2JqZWN0IEJhc2U7Citwcm90ZWN0ZWQ6CisgICAgc3RydWN0IEpT
RE9NR2xvYmFsT2JqZWN0RGF0YTsKIAotICAgICAgICBKU0RPTUdsb2JhbE9iamVjdChKU0M6OlZN
JiwgSlNDOjpTdHJ1Y3R1cmUqLCBSZWY8RE9NV3JhcHBlcldvcmxkPiYmLCBjb25zdCBKU0M6Okds
b2JhbE9iamVjdE1ldGhvZFRhYmxlKiA9IDApOwotICAgICAgICBzdGF0aWMgdm9pZCBkZXN0cm95
KEpTQzo6SlNDZWxsKik7Ci0gICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwot
ICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0M6OkpTT2JqZWN0Kik7Cisg
ICAgSlNET01HbG9iYWxPYmplY3QoSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwgUmVmPERPTVdy
YXBwZXJXb3JsZD4mJiwgY29uc3QgSlNDOjpHbG9iYWxPYmplY3RNZXRob2RUYWJsZSogPSAwKTsK
KyAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CisgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihKU0M6OlZNJik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlND
OjpKU09iamVjdCopOwogCi0gICAgcHVibGljOgotICAgICAgICBMb2NrJiBnY0xvY2soKSB7IHJl
dHVybiBtX2djTG9jazsgfQorcHVibGljOgorICAgIExvY2smIGdjTG9jaygpIHsgcmV0dXJuIG1f
Z2NMb2NrOyB9CiAKLSAgICAgICAgSlNET01TdHJ1Y3R1cmVNYXAmIHN0cnVjdHVyZXMoY29uc3Qg
QWJzdHJhY3RMb2NrZXImKSB7IHJldHVybiBtX3N0cnVjdHVyZXM7IH0KLSAgICAgICAgSlNET01D
b25zdHJ1Y3Rvck1hcCYgY29uc3RydWN0b3JzKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgeyByZXR1
cm4gbV9jb25zdHJ1Y3RvcnM7IH0KKyAgICBKU0RPTVN0cnVjdHVyZU1hcCYgc3RydWN0dXJlcyhj
b25zdCBBYnN0cmFjdExvY2tlciYpIHsgcmV0dXJuIG1fc3RydWN0dXJlczsgfQorICAgIEpTRE9N
Q29uc3RydWN0b3JNYXAmIGNvbnN0cnVjdG9ycyhjb25zdCBBYnN0cmFjdExvY2tlciYpIHsgcmV0
dXJuIG1fY29uc3RydWN0b3JzOyB9CiAKLSAgICAgICAgRE9NR3VhcmRlZE9iamVjdFNldCYgZ3Vh
cmRlZE9iamVjdHMoY29uc3QgQWJzdHJhY3RMb2NrZXImKSB7IHJldHVybiBtX2d1YXJkZWRPYmpl
Y3RzOyB9CisgICAgRE9NR3VhcmRlZE9iamVjdFNldCYgZ3VhcmRlZE9iamVjdHMoY29uc3QgQWJz
dHJhY3RMb2NrZXImKSB7IHJldHVybiBtX2d1YXJkZWRPYmplY3RzOyB9CiAKLSAgICAgICAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0OworICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsK
IAotICAgICAgICAvLyBNYWtlIGJpbmRpbmcgY29kZSBnZW5lcmF0aW9uIGVhc2llci4KLSAgICAg
ICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCgpIHsgcmV0dXJuIHRoaXM7IH0KKyAg
ICAvLyBNYWtlIGJpbmRpbmcgY29kZSBnZW5lcmF0aW9uIGVhc2llci4KKyAgICBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KCkgeyByZXR1cm4gdGhpczsgfQogCi0gICAgICAgIHZvaWQg
c2V0Q3VycmVudEV2ZW50KEV2ZW50Kik7Ci0gICAgICAgIEV2ZW50KiBjdXJyZW50RXZlbnQoKSBj
b25zdDsKKyAgICB2b2lkIHNldEN1cnJlbnRFdmVudChFdmVudCopOworICAgIEV2ZW50KiBjdXJy
ZW50RXZlbnQoKSBjb25zdDsKIAotICAgICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpT
Qzo6SlNDZWxsKiwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hp
bGRyZW4oSlNDOjpKU0NlbGwqLCBKU0M6OlNsb3RWaXNpdG9yJik7CiAKLSAgICAgICAgRE9NV3Jh
cHBlcldvcmxkJiB3b3JsZCgpIHsgcmV0dXJuIG1fd29ybGQuZ2V0KCk7IH0KLSAgICAgICAgYm9v
bCB3b3JsZElzTm9ybWFsKCkgY29uc3QgeyByZXR1cm4gbV93b3JsZElzTm9ybWFsOyB9Ci0gICAg
ICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZXb3JsZElzTm9ybWFsKCkgeyByZXR1cm4gT0JK
RUNUX09GRlNFVE9GKEpTRE9NR2xvYmFsT2JqZWN0LCBtX3dvcmxkSXNOb3JtYWwpOyB9CisgICAg
RE9NV3JhcHBlcldvcmxkJiB3b3JsZCgpIHsgcmV0dXJuIG1fd29ybGQuZ2V0KCk7IH0KKyAgICBi
b29sIHdvcmxkSXNOb3JtYWwoKSBjb25zdCB7IHJldHVybiBtX3dvcmxkSXNOb3JtYWw7IH0KKyAg
ICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mV29ybGRJc05vcm1hbCgpIHsgcmV0dXJuIE9CSkVD
VF9PRkZTRVRPRihKU0RPTUdsb2JhbE9iamVjdCwgbV93b3JsZElzTm9ybWFsKTsgfQogCi0gICAg
ICAgIEpTQnVpbHRpbkludGVybmFsRnVuY3Rpb25zJiBidWlsdGluSW50ZXJuYWxGdW5jdGlvbnMo
KSB7IHJldHVybiBtX2J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9uczsgfQorICAgIEpTQnVpbHRpbklu
dGVybmFsRnVuY3Rpb25zJiBidWlsdGluSW50ZXJuYWxGdW5jdGlvbnMoKSB7IHJldHVybiBtX2J1
aWx0aW5JbnRlcm5hbEZ1bmN0aW9uczsgfQogCi0gICAgcHJvdGVjdGVkOgotICAgICAgICBzdGF0
aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOworcHJvdGVjdGVkOgorICAgIHN0YXRpYyBj
b25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAKLSAgICBwdWJsaWM6Ci0gICAgICAgIH5KU0RP
TUdsb2JhbE9iamVjdCgpOworcHVibGljOgorICAgIH5KU0RPTUdsb2JhbE9iamVjdCgpOwogCi0g
ICAgICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgSlNDOjpDbGFzc0luZm8qIGluZm8oKSB7IHJl
dHVybiAmc19pbmZvOyB9CisgICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBKU0M6OkNsYXNzSW5m
byogaW5mbygpIHsgcmV0dXJuICZzX2luZm87IH0KIAotICAgICAgICBzdGF0aWMgSlNDOjpTdHJ1
Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlw
ZSkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUo
dm0sIDAsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Okdsb2JhbE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKLSAgICAgICAgfQotCi0gICAgcHJvdGVjdGVkOgotICAg
ICAgICBKU0RPTVN0cnVjdHVyZU1hcCBtX3N0cnVjdHVyZXM7Ci0gICAgICAgIEpTRE9NQ29uc3Ry
dWN0b3JNYXAgbV9jb25zdHJ1Y3RvcnM7Ci0gICAgICAgIERPTUd1YXJkZWRPYmplY3RTZXQgbV9n
dWFyZGVkT2JqZWN0czsKLQotICAgICAgICBFdmVudCogbV9jdXJyZW50RXZlbnQ7Ci0gICAgICAg
IFJlZjxET01XcmFwcGVyV29ybGQ+IG1fd29ybGQ7Ci0gICAgICAgIHVpbnQ4X3QgbV93b3JsZElz
Tm9ybWFsOwotICAgICAgICBMb2NrIG1fZ2NMb2NrOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAg
dm9pZCBhZGRCdWlsdGluR2xvYmFscyhKU0M6OlZNJik7Ci0gICAgICAgIGZyaWVuZCB2b2lkIEpT
QnVpbHRpbkludGVybmFsRnVuY3Rpb25zOjppbml0aWFsaXplKEpTRE9NR2xvYmFsT2JqZWN0Jik7
Ci0KLSAgICAgICAgSlNCdWlsdGluSW50ZXJuYWxGdW5jdGlvbnMgbV9idWlsdGluSW50ZXJuYWxG
dW5jdGlvbnM7Ci0gICAgfTsKLQotICAgIHRlbXBsYXRlPGNsYXNzIENvbnN0cnVjdG9yQ2xhc3M+
Ci0gICAgaW5saW5lIEpTQzo6SlNPYmplY3QqIGdldERPTUNvbnN0cnVjdG9yKEpTQzo6Vk0mIHZt
LCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQorICAgIHN0YXRpYyBKU0M6
OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgcHJv
dG90eXBlKQogICAgIHsKLSAgICAgICAgaWYgKEpTQzo6SlNPYmplY3QqIGNvbnN0cnVjdG9yID0g
Y29uc3RfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCY+KGdsb2JhbE9iamVjdCkuY29uc3RydWN0b3Jz
KE5vTG9ja2luZ05lY2Vzc2FyeSkuZ2V0KENvbnN0cnVjdG9yQ2xhc3M6OmluZm8oKSkuZ2V0KCkp
Ci0gICAgICAgICAgICByZXR1cm4gY29uc3RydWN0b3I7Ci0gICAgICAgIEpTQzo6SlNPYmplY3Qq
IGNvbnN0cnVjdG9yID0gQ29uc3RydWN0b3JDbGFzczo6Y3JlYXRlKHZtLCBDb25zdHJ1Y3RvckNs
YXNzOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGNvbnN0X2Nhc3Q8SlNET01HbG9iYWxPYmplY3QmPihn
bG9iYWxPYmplY3QpLCBDb25zdHJ1Y3RvckNsYXNzOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUodm0s
IGdsb2JhbE9iamVjdCkpLCBjb25zdF9jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Jj4oZ2xvYmFsT2Jq
ZWN0KSk7Ci0gICAgICAgIEFTU0VSVCghY29uc3RfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCY+KGds
b2JhbE9iamVjdCkuY29uc3RydWN0b3JzKE5vTG9ja2luZ05lY2Vzc2FyeSkuY29udGFpbnMoQ29u
c3RydWN0b3JDbGFzczo6aW5mbygpKSk7Ci0gICAgICAgIEpTQzo6V3JpdGVCYXJyaWVyPEpTQzo6
SlNPYmplY3Q+IHRlbXA7Ci0gICAgICAgIEpTRE9NR2xvYmFsT2JqZWN0JiBtdXRhYmxlR2xvYmFs
T2JqZWN0ID0gY29uc3RfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCY+KGdsb2JhbE9iamVjdCk7Ci0g
ICAgICAgIGF1dG8gbG9ja2VyID0gSlNDOjpsb2NrRHVyaW5nTWFya2luZyh2bS5oZWFwLCBtdXRh
YmxlR2xvYmFsT2JqZWN0LmdjTG9jaygpKTsKLSAgICAgICAgbXV0YWJsZUdsb2JhbE9iamVjdC5j
b25zdHJ1Y3RvcnMobG9ja2VyKS5hZGQoQ29uc3RydWN0b3JDbGFzczo6aW5mbygpLCB0ZW1wKS5p
dGVyYXRvci0+dmFsdWUuc2V0KHZtLCAmZ2xvYmFsT2JqZWN0LCBjb25zdHJ1Y3Rvcik7Ci0gICAg
ICAgIHJldHVybiBjb25zdHJ1Y3RvcjsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpj
cmVhdGUodm0sIDAsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Okdsb2JhbE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKLSAgICBKU0RPTUdsb2JhbE9i
amVjdCogdG9KU0RPTUdsb2JhbE9iamVjdChEb2N1bWVudCosIEpTQzo6RXhlY1N0YXRlKik7Ci0g
ICAgSlNET01HbG9iYWxPYmplY3QqIHRvSlNET01HbG9iYWxPYmplY3QoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIEpTQzo6RXhlY1N0YXRlKik7Citwcm90ZWN0ZWQ6CisgICAgSlNET01TdHJ1Y3R1
cmVNYXAgbV9zdHJ1Y3R1cmVzOworICAgIEpTRE9NQ29uc3RydWN0b3JNYXAgbV9jb25zdHJ1Y3Rv
cnM7CisgICAgRE9NR3VhcmRlZE9iamVjdFNldCBtX2d1YXJkZWRPYmplY3RzOworCisgICAgRXZl
bnQqIG1fY3VycmVudEV2ZW50OworICAgIFJlZjxET01XcmFwcGVyV29ybGQ+IG1fd29ybGQ7Cisg
ICAgdWludDhfdCBtX3dvcmxkSXNOb3JtYWw7CisgICAgTG9jayBtX2djTG9jazsKKworcHJpdmF0
ZToKKyAgICB2b2lkIGFkZEJ1aWx0aW5HbG9iYWxzKEpTQzo6Vk0mKTsKKyAgICBmcmllbmQgdm9p
ZCBKU0J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9uczo6aW5pdGlhbGl6ZShKU0RPTUdsb2JhbE9iamVj
dCYpOworCisgICAgSlNCdWlsdGluSW50ZXJuYWxGdW5jdGlvbnMgbV9idWlsdGluSW50ZXJuYWxG
dW5jdGlvbnM7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBDb25zdHJ1Y3RvckNsYXNzPgoraW5saW5l
IEpTQzo6SlNPYmplY3QqIGdldERPTUNvbnN0cnVjdG9yKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RP
TUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQoreworICAgIGlmIChKU0M6OkpTT2JqZWN0KiBj
b25zdHJ1Y3RvciA9IGNvbnN0X2Nhc3Q8SlNET01HbG9iYWxPYmplY3QmPihnbG9iYWxPYmplY3Qp
LmNvbnN0cnVjdG9ycyhOb0xvY2tpbmdOZWNlc3NhcnkpLmdldChDb25zdHJ1Y3RvckNsYXNzOjpp
bmZvKCkpLmdldCgpKQorICAgICAgICByZXR1cm4gY29uc3RydWN0b3I7CisgICAgSlNDOjpKU09i
amVjdCogY29uc3RydWN0b3IgPSBDb25zdHJ1Y3RvckNsYXNzOjpjcmVhdGUodm0sIENvbnN0cnVj
dG9yQ2xhc3M6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgY29uc3RfY2FzdDxKU0RPTUdsb2JhbE9iamVj
dCY+KGdsb2JhbE9iamVjdCksIENvbnN0cnVjdG9yQ2xhc3M6OnByb3RvdHlwZUZvclN0cnVjdHVy
ZSh2bSwgZ2xvYmFsT2JqZWN0KSksIGNvbnN0X2Nhc3Q8SlNET01HbG9iYWxPYmplY3QmPihnbG9i
YWxPYmplY3QpKTsKKyAgICBBU1NFUlQoIWNvbnN0X2Nhc3Q8SlNET01HbG9iYWxPYmplY3QmPihn
bG9iYWxPYmplY3QpLmNvbnN0cnVjdG9ycyhOb0xvY2tpbmdOZWNlc3NhcnkpLmNvbnRhaW5zKENv
bnN0cnVjdG9yQ2xhc3M6OmluZm8oKSkpOworICAgIEpTQzo6V3JpdGVCYXJyaWVyPEpTQzo6SlNP
YmplY3Q+IHRlbXA7CisgICAgSlNET01HbG9iYWxPYmplY3QmIG11dGFibGVHbG9iYWxPYmplY3Qg
PSBjb25zdF9jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Jj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBhdXRv
IGxvY2tlciA9IEpTQzo6bG9ja0R1cmluZ01hcmtpbmcodm0uaGVhcCwgbXV0YWJsZUdsb2JhbE9i
amVjdC5nY0xvY2soKSk7CisgICAgbXV0YWJsZUdsb2JhbE9iamVjdC5jb25zdHJ1Y3RvcnMobG9j
a2VyKS5hZGQoQ29uc3RydWN0b3JDbGFzczo6aW5mbygpLCB0ZW1wKS5pdGVyYXRvci0+dmFsdWUu
c2V0KHZtLCAmZ2xvYmFsT2JqZWN0LCBjb25zdHJ1Y3Rvcik7CisgICAgcmV0dXJuIGNvbnN0cnVj
dG9yOworfQorCitKU0RPTUdsb2JhbE9iamVjdCogdG9KU0RPTUdsb2JhbE9iamVjdChEb2N1bWVu
dCosIEpTQzo6RXhlY1N0YXRlKik7CitKU0RPTUdsb2JhbE9iamVjdCogdG9KU0RPTUdsb2JhbE9i
amVjdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgSlNDOjpFeGVjU3RhdGUqKTsKIAotICAgIEpT
RE9NR2xvYmFsT2JqZWN0KiB0b0pTRE9NR2xvYmFsT2JqZWN0KERvY3VtZW50KiwgRE9NV3JhcHBl
cldvcmxkJik7Ci0gICAgSlNET01HbG9iYWxPYmplY3QqIHRvSlNET01HbG9iYWxPYmplY3QoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIERPTVdyYXBwZXJXb3JsZCYpOworSlNET01HbG9iYWxPYmpl
Y3QqIHRvSlNET01HbG9iYWxPYmplY3QoRG9jdW1lbnQqLCBET01XcmFwcGVyV29ybGQmKTsKK0pT
RE9NR2xvYmFsT2JqZWN0KiB0b0pTRE9NR2xvYmFsT2JqZWN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBET01XcmFwcGVyV29ybGQmKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAko
cmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw5IEBACiAjaW5jbHVkZSAi
SFRNTERvY3VtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSlNET01CaW5kaW5nU2VjdXJpdHkuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnROdWxs
YWJsZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bWJlcnMuaCIKKyNpbmNsdWRlICJKU0RP
TUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNFdmVudC5oIgogI2luY2x1ZGUgIkpTRXZl
bnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIkpTSFRNTEF1ZGlvRWxlbWVudC5oIgpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dQcm9wZXJ0aWVzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1Byb3BlcnRpZXMu
Y3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd1Byb3BlcnRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAj
aW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5j
bHVkZSAiSlNET01CaW5kaW5nU2VjdXJpdHkuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJp
bmdzLmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dCYXNlLmgiCiAjaW5jbHVkZSAiSlNFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSlNIVE1MQ29sbGVjdGlvbi5oIgpJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAJKHJldmlzaW9uIDIxODI5OSkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNSwxNiArMjUsMTQgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgog
I2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgogI2luY2x1ZGUgIkpTQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252
ZXJ0TnVtYmVycy5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAi
SlNIVE1MRG9jdW1lbnQuaCIKICNpbmNsdWRlICJKU0xvY2F0aW9uLmgiCiAjaW5jbHVkZSAiSlNY
TUxEb2N1bWVudC5oIgotI2luY2x1ZGUgIkxvY2F0aW9uLmgiCiAjaW5jbHVkZSAiTm9kZVRyYXZl
cnNhbC5oIgogI2luY2x1ZGUgIlNWR0RvY3VtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJv
bGxlci5oIgotI2luY2x1ZGUgIlRvdWNoTGlzdC5oIgogI2luY2x1ZGUgIlhNTERvY3VtZW50Lmgi
CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0Vycm9ySGFuZGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM1LDcgKzM1LDggQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVycm9yRXZl
bnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgorI2lu
Y2x1ZGUgIkpTRE9NQ29udmVydE51bWJlcnMuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJp
bmdzLmgiCiAjaW5jbHVkZSAiSlNFdmVudC5oIgogI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNT
dGF0ZS5oIgogI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZUluc3RydW1lbnRhdGlvbi5o
IgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIu
Y3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2
ZW50TGlzdGVuZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwxMCArMjIsMTAgQEAKIAogI2lu
Y2x1ZGUgIkJlZm9yZVVubG9hZEV2ZW50LmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9s
aWN5LmgiCi0jaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IkhUTUxFbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNE
T01Db252ZXJ0TnVsbGFibGUuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAj
aW5jbHVkZSAiSlNEb2N1bWVudC5oIgogI2luY2x1ZGUgIkpTRXZlbnQuaCIKICNpbmNsdWRlICJK
U0V2ZW50VGFyZ2V0LmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxD
YW52YXNFbGVtZW50Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0hUTUxDYW52YXNFbGVtZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gMjE4Mjk5KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQ2FudmFzRWxlbWVudEN1c3RvbS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDggKzI5LDkgQEAKIAogI2luY2x1ZGUgIkhUTUxDYW52
YXNFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCIKLSNp
bmNsdWRlIDxiaW5kaW5ncy9TY3JpcHRPYmplY3QuaD4KLSNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+
CisjaW5jbHVkZSAiSlNET01Db252ZXJ0RGljdGlvbmFyeS5oIgorI2luY2x1ZGUgIkpTRE9NQ29u
dmVydE51bGxhYmxlLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogCiAjaWYg
RU5BQkxFKFdFQkdMKQogI2luY2x1ZGUgIkpTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIgpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRG9jdW1lbnRDdXN0b20uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTERvY3VtZW50Q3Vz
dG9tLmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNIVE1MRG9jdW1lbnRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw4IEBA
CiAjaW5jbHVkZSAiSlNIVE1MRG9jdW1lbnQuaCIKIAogI2luY2x1ZGUgIkpTRE9NQWJzdHJhY3RP
cGVyYXRpb25zLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0SW50ZXJmYWNlLmgiCisjaW5jbHVk
ZSAiSlNET01Db252ZXJ0VW5pb24uaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5oIgog
I2luY2x1ZGUgIkpTSFRNTENvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJTZWdtZW50ZWRTdHJpbmcu
aCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSGlzdG9yeUN1c3RvbS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIaXN0b3J5Q3VzdG9t
LmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNI
aXN0b3J5Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsOCBAQAogCiAjaW5j
bHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiSlNE
T01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0TnVsbGFibGUuaCIKKyNpbmNsdWRl
ICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0Z1bmN0aW9uLmg+CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAJKHJldmlz
aW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50
Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTEgKzMzLDEyIEBACiAKICNpbmNsdWRl
ICJKU0Jsb2IuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKLSNpbmNsdWRlICJKU0RPTUNv
bnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRCdWZmZXJTb3VyY2UuaCIKKyNpbmNsdWRl
ICJKU0RPTUNvbnZlcnRJbnRlcmZhY2UuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdz
LmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3cuaCIKICNpbmNsdWRlICJKU0V2ZW50VGFyZ2V0Lmgi
CiAjaW5jbHVkZSAiSlNNZXNzYWdlUG9ydC5oIgotI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgog
I2luY2x1ZGUgPHJ1bnRpbWUvSlNBcnJheS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNBcnJheUJ1
ZmZlci5oPgogCkBAIC04NiwxNSArODcsMTUgQEAgSlNWYWx1ZSBKU01lc3NhZ2VFdmVudDo6ZGF0
YShFeGVjU3RhdGUmIAogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgTWVzc2FnZUV2ZW50OjpE
YXRhVHlwZVN0cmluZzoKLSAgICAgICAgcmVzdWx0ID0ganNTdHJpbmdXaXRoQ2FjaGUoJnN0YXRl
LCBldmVudC5kYXRhQXNTdHJpbmcoKSk7CisgICAgICAgIHJlc3VsdCA9IHRvSlM8SURMRE9NU3Ry
aW5nPihzdGF0ZSwgZXZlbnQuZGF0YUFzU3RyaW5nKCkpOwogICAgICAgICBicmVhazsKIAogICAg
IGNhc2UgTWVzc2FnZUV2ZW50OjpEYXRhVHlwZUJsb2I6Ci0gICAgICAgIHJlc3VsdCA9IHRvSlMo
JnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgZXZlbnQuZGF0YUFzQmxvYigpKTsKKyAgICAgICAgcmVz
dWx0ID0gdG9KUzxJRExJbnRlcmZhY2U8QmxvYj4+KHN0YXRlLCAqZ2xvYmFsT2JqZWN0KCksIGV2
ZW50LmRhdGFBc0Jsb2IoKSk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBNZXNzYWdlRXZl
bnQ6OkRhdGFUeXBlQXJyYXlCdWZmZXI6Ci0gICAgICAgIHJlc3VsdCA9IHRvSlMoJnN0YXRlLCBn
bG9iYWxPYmplY3QoKSwgZXZlbnQuZGF0YUFzQXJyYXlCdWZmZXIoKSk7CisgICAgICAgIHJlc3Vs
dCA9IHRvSlM8SURMSW50ZXJmYWNlPEFycmF5QnVmZmVyPj4oc3RhdGUsICpnbG9iYWxPYmplY3Qo
KSwgZXZlbnQuZGF0YUFzQXJyYXlCdWZmZXIoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNb2NrQ29udGVudEZpbHRlclNldHRp
bmdzQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3NDdXN0b20uY3BwCShyZXZpc2lvbiAyMTgyOTkpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3ND
dXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAjaWYgRU5BQkxFKENP
TlRFTlRfRklMVEVSSU5HKQogCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCi0jaW5jbHVkZSAi
SlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0TnVtYmVycy5oIgogI2luY2x1
ZGUgIk1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaCIKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxi
YWNrLmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNNdXRhdGlvbkNhbGxiYWNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsOCBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTTXV0YXRpb25DYWxsYmFjay5oIgogCisj
aW5jbHVkZSAiSlNET01Db252ZXJ0SW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0
U2VxdWVuY2VzLmgiCiAjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJK
U01haW5UaHJlYWRFeGVjU3RhdGUuaCIKICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGVJ
bnN0cnVtZW50YXRpb24uaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1M
SHR0cFJlcXVlc3RDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjksMjggKzI5LDE0IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiSlNYTUxIdHRwUmVxdWVzdC5oIgogCi0jaW5jbHVkZSAiQmxvYi5oIgotI2luY2x1ZGUg
IkRPTUZvcm1EYXRhLmgiCi0jaW5jbHVkZSAiRE9NV2luZG93LmgiCi0jaW5jbHVkZSAiRG9jdW1l
bnQuaCIKLSNpbmNsdWRlICJFdmVudC5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAi
RnJhbWVMb2FkZXIuaCIKLSNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJKU0Jsb2IuaCIKLSNpbmNsdWRlICJK
U0RPTUNvbnZlcnQuaCIKLSNpbmNsdWRlICJKU0RPTUZvcm1EYXRhLmgiCi0jaW5jbHVkZSAiSlNE
T01XaW5kb3dDdXN0b20uaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRCdWZmZXJTb3VyY2UuaCIK
KyNpbmNsdWRlICJKU0RPTUNvbnZlcnRJbnRlcmZhY2UuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZl
cnRKU09OLmgiCiAjaW5jbHVkZSAiSlNEb2N1bWVudC5oIgotI2luY2x1ZGUgIkpTRXZlbnQuaCIK
LSNpbmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuaCIKLSNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdC5o
IgogI2luY2x1ZGUgPHJ1bnRpbWUvQXJyYXlCdWZmZXIuaD4KLSNpbmNsdWRlIDxydW50aW1lL0Vy
cm9yLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0FycmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8cnVu
dGltZS9KU0FycmF5QnVmZmVyVmlldy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNPTk9iamVjdC5o
PgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCkBAIC0xMDgsNyArOTQsNyBAQCBKU1ZhbHVlIEpT
WE1MSHR0cFJlcXVlc3Q6OnJldHJpZXZlUmVzcG9uCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOwogCiAgICAgY2FzZSBYTUxIdHRwUmVxdWVzdDo6UmVzcG9uc2VUeXBlOjpKc29uOgotICAg
ICAgICB2YWx1ZSA9IEpTT05QYXJzZSgmc3RhdGUsIHdyYXBwZWQoKS5yZXNwb25zZVRleHRJZ25v
cmluZ1Jlc3BvbnNlVHlwZSgpKTsKKyAgICAgICAgdmFsdWUgPSB0b0pTPElETEpTT04+KHN0YXRl
LCB3cmFwcGVkKCkucmVzcG9uc2VUZXh0SWdub3JpbmdSZXNwb25zZVR5cGUoKSk7CiAgICAgICAg
IGlmICghdmFsdWUpCiAgICAgICAgICAgICB2YWx1ZSA9IGpzTnVsbCgpOwogICAgICAgICBicmVh
azsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdEdsb2JhbE9iamVjdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0R2xvYmFs
T2JqZWN0LmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0R2xvYmFsT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsOCArMzEsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNjcmlwdEdsb2JhbE9iamVjdC5oIgog
Ci0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCi0jaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5k
bGluZy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEludGVyZmFjZS5oIgogI2luY2x1ZGUgIkpT
SW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgiCiAjaW5jbHVkZSA8cnVudGltZS9JZGVudGlmaWVySW5s
aW5lcy5oPgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2Ny
aXB0VmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJKU0Jsb2IuaCIKICNpbmNsdWRlICJKU0NyeXB0
b0tleS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVy
dEJ1ZmZlclNvdXJjZS5oIgogI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiSlNGaWxlLmgiCiAjaW5jbHVkZSAiSlNGaWxlTGlzdC5oIgpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlzaW9u
IDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0yOTAsNDkgKzI5MCwxNDUgQEAgc3ViIEFkZFRvSW1w
bEluY2x1ZGVzRm9ySURMVHlwZQogc3ViIEFkZFRvSW5jbHVkZXNGb3JJRExUeXBlCiB7CiAgICAg
bXkgKCR0eXBlLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCkgPSBAXzsKLSAgICAKLSAgICBy
ZXR1cm4gaWYgJGNvZGVHZW5lcmF0b3ItPklzUHJpbWl0aXZlVHlwZSgkdHlwZSk7Ci0gICAgcmV0
dXJuIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJHR5cGUpOwotICAgIHJldHVybiBp
ZiAkY29kZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkdHlwZSk7Ci0gICAgcmV0dXJuIGlm
ICR0eXBlLT5uYW1lIGVxICJhbnkiOwotICAgIHJldHVybiBpZiAkdHlwZS0+bmFtZSBlcSAib2Jq
ZWN0IjsKLSAgICAKLSAgICBpZiAoJHR5cGUtPmlzVW5pb24pIHsKLSAgICAgICAgQWRkVG9JbmNs
dWRlcygiPHd0Zi9WYXJpYW50Lmg+IiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOwogCi0g
ICAgICAgIGZvcmVhY2ggbXkgJG1lbWJlclR5cGUgKEB7JHR5cGUtPnN1YnR5cGVzfSkgewotICAg
ICAgICAgICAgQWRkVG9JbmNsdWRlc0ZvcklETFR5cGUoJG1lbWJlclR5cGUsICRpbmNsdWRlc1Jl
ZiwgJGNvbmRpdGlvbmFsKTsKKyAgICBpZiAoJHR5cGUtPmlzTnVsbGFibGUpIHsKKyAgICAgICAg
QWRkVG9JbmNsdWRlcygiSlNET01Db252ZXJ0TnVsbGFibGUuaCIsICRpbmNsdWRlc1JlZiwgJGNv
bmRpdGlvbmFsKTsKKyAgICB9CisKKyAgICBpZiAoJHR5cGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
e092ZXJyaWRlSURMVHlwZX0pIHsKKyAgICAgICAgbXkgJG92ZXJyaWRlVHlwZU5hbWUgPSAkdHlw
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57T3ZlcnJpZGVJRExUeXBlfTsKKyAgICAgICAgaWYgKCRv
dmVycmlkZVR5cGVOYW1lIGVxICJJRExJREJLZXkiKSB7CisgICAgICAgICAgICBBZGRUb0luY2x1
ZGVzKCJKU0RPTUNvbnZlcnRJbmRleGVkREIuaCIsICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFs
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgkb3ZlcnJp
ZGVUeXBlTmFtZSBlcSAiSURMV2ViR0xBbnkiKSB7CisgICAgICAgICAgICBBZGRUb0luY2x1ZGVz
KCJKU0RPTUNvbnZlcnRXZWJHTC5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisgICAgfQogCisgICAgaWYgKCR0eXBlLT5uYW1l
IGVxICJhbnkiKSB7CisgICAgICAgIEFkZFRvSW5jbHVkZXMoIkpTRE9NQ29udmVydEFueS5oIiwg
JGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NlcXVlbmNlT3JGcm96ZW5BcnJheVR5cGUoJHR5cGUp
KSB7Ci0gICAgICAgIEFkZFRvSW5jbHVkZXMoIjxydW50aW1lL0pTQXJyYXkuaD4iLCAkaW5jbHVk
ZXNSZWYsICRjb25kaXRpb25hbCk7CisgICAgaWYgKCR0eXBlLT5uYW1lIGVxICJib29sZWFuIikg
eworICAgICAgICBBZGRUb0luY2x1ZGVzKCJKU0RPTUNvbnZlcnRCb29sZWFuLmgiLCAkaW5jbHVk
ZXNSZWYsICRjb25kaXRpb25hbCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAo
JGNvZGVHZW5lcmF0b3ItPklzVHlwZWRBcnJheVR5cGUoJHR5cGUpKSB7CisgICAgICAgIEFkZFRv
SW5jbHVkZXMoIkpTRE9NQ29udmVydEJ1ZmZlclNvdXJjZS5oIiwgJGluY2x1ZGVzUmVmLCAkY29u
ZGl0aW9uYWwpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCR0eXBlLT5uYW1l
IGVxICJCdWZmZXJTb3VyY2UiKSB7CisgICAgICAgIEFkZFRvSW5jbHVkZXMoIkpTRE9NQ29udmVy
dEJ1ZmZlclNvdXJjZS5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworICAgICAgICBB
ZGRUb0luY2x1ZGVzKCJKU0RPTUNvbnZlcnRVbmlvbi5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0
aW9uYWwpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCRjb2RlR2VuZXJhdG9y
LT5Jc0NhbGxiYWNrRnVuY3Rpb24oJHR5cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc0NhbGxiYWNr
SW50ZXJmYWNlKCR0eXBlKSkgeworICAgICAgICBBZGRUb0luY2x1ZGVzKCJKUyIgLiAkdHlwZS0+
bmFtZSAuICIuaCIsICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgQWRkVG9J
bmNsdWRlcygiSlNET01Db252ZXJ0Q2FsbGJhY2tzLmgiLCAkaW5jbHVkZXNSZWYsICRjb25kaXRp
b25hbCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoJHR5cGUtPm5hbWUgZXEg
IkRhdGUiKSB7CisgICAgICAgIEFkZFRvSW5jbHVkZXMoIkpTRE9NQ29udmVydERhdGUuaCIsICRp
bmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGlmICgkY29kZUdlbmVyYXRvci0+SXNFeHRlcm5hbERpY3Rpb25hcnlUeXBlKCR0eXBlKSkgewor
ICAgICAgICBBZGRUb0luY2x1ZGVzKCJKUyIgLiAkdHlwZS0+bmFtZSAuICIuaCIsICRpbmNsdWRl
c1JlZiwgJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNET01Db252ZXJ0
RGljdGlvbmFyeS5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc0V4dGVybmFsRW51bVR5cGUo
JHR5cGUpKSB7CisgICAgICAgIEFkZFRvSW5jbHVkZXMoIkpTIiAuICR0eXBlLT5uYW1lIC4gIi5o
IiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworICAgICAgICBBZGRUb0luY2x1ZGVzKCJK
U0RPTUNvbnZlcnRFbnVtZXJhdGlvbi5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCR0eXBlLT5uYW1lIGVxICJFdmVudExp
c3RlbmVyIikgeworICAgICAgICBBZGRUb0luY2x1ZGVzKCJKU0V2ZW50TGlzdGVuZXIuaCIsICRp
bmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNET01D
b252ZXJ0RXZlbnRMaXN0ZW5lci5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc0ludGVyZmFj
ZVR5cGUoJHR5cGUpKSB7CisgICAgICAgIEFkZFRvSW5jbHVkZXMoIkpTIiAuICR0eXBlLT5uYW1l
IC4gIi5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworICAgICAgICBBZGRUb0luY2x1
ZGVzKCJKU0RPTUNvbnZlcnRJbnRlcmZhY2UuaCIsICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFs
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICgkdHlwZS0+bmFtZSBlcSAiSlNP
TiIpIHsKKyAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNET01Db252ZXJ0SlNPTi5oIiwgJGluY2x1
ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYg
KCRjb2RlR2VuZXJhdG9yLT5Jc051bWVyaWNUeXBlKCR0eXBlKSkgeworICAgICAgICBBZGRUb0lu
Y2x1ZGVzKCJKU0RPTUNvbnZlcnROdW1iZXJzLmgiLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25h
bCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoJHR5cGUtPm5hbWUgZXEgIm9i
amVjdCIpIHsKKyAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNET01Db252ZXJ0T2JqZWN0LmgiLCAk
aW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzUHJvbWlzZVR5cGUoJHR5cGUpKSB7CisgICAgICAgIEFk
ZFRvSW5jbHVkZXMoIkpTRE9NUHJvbWlzZS5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwp
OworICAgICAgICBBZGRUb0luY2x1ZGVzKCJKU0RPTUNvbnZlcnRQcm9taXNlLmgiLCAkaW5jbHVk
ZXNSZWYsICRjb25kaXRpb25hbCk7CisKICAgICAgICAgQWRkVG9JbmNsdWRlc0ZvcklETFR5cGUo
QHskdHlwZS0+c3VidHlwZXN9WzBdLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzUmVjb3JkVHlw
ZSgkdHlwZSkpIHsKICAgICAgICAgQWRkVG9JbmNsdWRlcygiPHd0Zi9WZWN0b3IuaD4iLCAkaW5j
bHVkZXNSZWYsICRjb25kaXRpb25hbCk7CisgICAgICAgIEFkZFRvSW5jbHVkZXMoIkpTRE9NQ29u
dmVydFJlY29yZC5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworCiAgICAgICAgIEFk
ZFRvSW5jbHVkZXNGb3JJRExUeXBlKEB7JHR5cGUtPnN1YnR5cGVzfVswXSwgJGluY2x1ZGVzUmVm
LCAkY29uZGl0aW9uYWwpOwogICAgICAgICBBZGRUb0luY2x1ZGVzRm9ySURMVHlwZShAeyR0eXBl
LT5zdWJ0eXBlc31bMV0sICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNQcm9taXNlVHlwZSgkdHlw
ZSkpIHsKLSAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNET01Qcm9taXNlLmgiLCAkaW5jbHVkZXNS
ZWYsICRjb25kaXRpb25hbCk7CisgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NlcXVlbmNlT3JG
cm96ZW5BcnJheVR5cGUoJHR5cGUpKSB7CisgICAgICAgIEFkZFRvSW5jbHVkZXMoIjxydW50aW1l
L0pTQXJyYXkuaD4iLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7CisgICAgICAgIEFkZFRv
SW5jbHVkZXMoIkpTRE9NQ29udmVydFNlcXVlbmNlcy5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0
aW9uYWwpOworCiAgICAgICAgIEFkZFRvSW5jbHVkZXNGb3JJRExUeXBlKEB7JHR5cGUtPnN1YnR5
cGVzfVswXSwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1dyYXBwZXJUeXBlKCR0eXBlKSB8fCAk
Y29kZUdlbmVyYXRvci0+SXNFeHRlcm5hbERpY3Rpb25hcnlUeXBlKCR0eXBlKSB8fCAkY29kZUdl
bmVyYXRvci0+SXNFeHRlcm5hbEVudW1UeXBlKCR0eXBlKSB8fCAkdHlwZS0+bmFtZSBlcSAiRXZl
bnRMaXN0ZW5lciIpIHsKLSAgICAgICAgQWRkVG9JbmNsdWRlcygiSlMiIC4gJHR5cGUtPm5hbWUg
LiAiLmgiLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7CisgICAgaWYgKCR0eXBlLT5uYW1l
IGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiKSB7CisgICAgICAgIEFkZFRvSW5jbHVkZXMoIlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworICAg
ICAgICBBZGRUb0luY2x1ZGVzKCJKU0RPTUNvbnZlcnRTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIs
ICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAg
ICAKLSAgICBpZiAoJHR5cGUtPm5hbWUgZXEgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIpIHsKLSAg
ICAgICAgQWRkVG9JbmNsdWRlcygkdHlwZS0+bmFtZSAuICIuaCIsICRpbmNsdWRlc1JlZiwgJGNv
bmRpdGlvbmFsKTsKKworICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCR0eXBl
KSkgeworICAgICAgICBBZGRUb0luY2x1ZGVzKCJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiLCAkaW5j
bHVkZXNSZWYsICRjb25kaXRpb25hbCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBp
ZiAoJHR5cGUtPmlzVW5pb24pIHsKKyAgICAgICAgQWRkVG9JbmNsdWRlcygiPHd0Zi9WYXJpYW50
Lmg+IiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworICAgICAgICBBZGRUb0luY2x1ZGVz
KCJKU0RPTUNvbnZlcnRVbmlvbi5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworCisg
ICAgICAgIGZvcmVhY2ggbXkgJG1lbWJlclR5cGUgKEB7JHR5cGUtPnN1YnR5cGVzfSkgeworICAg
ICAgICAgICAgQWRkVG9JbmNsdWRlc0ZvcklETFR5cGUoJG1lbWJlclR5cGUsICRpbmNsdWRlc1Jl
ZiwgJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBpZiAoJHR5cGUtPm5hbWUgZXEgIlhQYXRoTlNSZXNvbHZlciIpIHsKKyAgICAgICAgQWRk
VG9JbmNsdWRlcygiSlNYUGF0aE5TUmVzb2x2ZXIuaCIsICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlv
bmFsKTsKKyAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNET01Db252ZXJ0WFBhdGhOU1Jlc29sdmVy
LmgiLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiB9CkBAIC0xNTg3LDcgKzE2ODMsNyBAQCBzdWIgR2V0SlNDQXR0cmlidXRlc0ZvckF0dHJpYnV0
ZQogICAgIHB1c2goQHNwZWNpYWxzLCAiRG9udEVudW0iKSBpZiAoJGF0dHJpYnV0ZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Tm90RW51bWVyYWJsZX0gfHwgJGlzR2xvYmFsQ29uc3RydWN0b3IpOwog
ICAgIHB1c2goQHNwZWNpYWxzLCAiUmVhZE9ubHkiKSBpZiBJc1JlYWRvbmx5KCRhdHRyaWJ1dGUp
OwogICAgIHB1c2goQHNwZWNpYWxzLCAiQ3VzdG9tQWNjZXNzb3IiKSB1bmxlc3MgJGlzR2xvYmFs
Q29uc3RydWN0b3Igb3IgSXNKU0J1aWx0aW4oJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7Ci0gICAg
cHVzaChAc3BlY2lhbHMsICJET01KSVRBdHRyaWJ1dGUiKSBpZiAkYXR0cmlidXRlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiRE9NSklUIn07CisgICAgcHVzaChAc3BlY2lhbHMsICJET01KSVRBdHRy
aWJ1dGUiKSBpZiAkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntET01KSVR9OwogICAg
IHB1c2goQHNwZWNpYWxzLCAiQWNjZXNzb3IgfCBCdWlsdGluIikgaWYgIElzSlNCdWlsdGluKCRp
bnRlcmZhY2UsICRhdHRyaWJ1dGUpOwogICAgIHJldHVybiAoQHNwZWNpYWxzID4gMCkgPyBqb2lu
KCIgfCAiLCBAc3BlY2lhbHMpIDogIjAiOwogfQpAQCAtMTgyOSwxMCArMTkyNSw5IEBAIHN1YiBH
ZW5lcmF0ZUVudW1lcmF0aW9uSGVhZGVyCiAgCiAgICAgIyAtIEFkZCBkZWZhdWx0IGhlYWRlciB0
ZW1wbGF0ZSBhbmQgaGVhZGVyIHByb3RlY3Rpb24uCiAgICAgcHVzaChAaGVhZGVyQ29udGVudEhl
YWRlciwgR2VuZXJhdGVIZWFkZXJDb250ZW50SGVhZGVyKCRlbnVtZXJhdGlvbikpOwotIAotICAg
ICRoZWFkZXJJbmNsdWRlc3siJGNsYXNzTmFtZS5oIn0gPSAxOwotICAgICRoZWFkZXJJbmNsdWRl
c3siSlNET01Db252ZXJ0LmgifSA9IDE7Ci0gCisKKyAgICAkaGVhZGVySW5jbHVkZXN7IiR7Y2xh
c3NOYW1lfS5oIn0gPSAxOworCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIlxubmFtZXNwYWNl
IFdlYkNvcmUge1xuXG4iKTsKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCBHZW5lcmF0ZUVudW1l
cmF0aW9uSGVhZGVyQ29udGVudCgkZW51bWVyYXRpb24sICRjbGFzc05hbWUpKTsKICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAifSAvLyBuYW1lc3BhY2UgV2ViQ29yZVxuIik7CkBAIC0xODQ3LDEx
ICsxOTQyLDcgQEAgc3ViIEdlbmVyYXRlRW51bWVyYXRpb25JbXBsZW1lbnRhdGlvbgogIAogICAg
ICMgLSBBZGQgZGVmYXVsdCBoZWFkZXIgdGVtcGxhdGUKICAgICBwdXNoKEBpbXBsQ29udGVudEhl
YWRlciwgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbkNvbnRlbnRIZWFkZXIoJGVudW1lcmF0aW9uKSk7
Ci0gICAgCi0gICAgIyBGSVhNRTogQSBsaXR0bGUgdWdseSB0byBoYXZlIHRoaXMgYmUgYSBzaWRl
IGVmZmVjdCBpbnN0ZWFkIG9mIGEgcmV0dXJuIHZhbHVlLgotICAgIEFkZFRvSW1wbEluY2x1ZGVz
KCI8cnVudGltZS9KU1N0cmluZy5oPiIpOwotICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKU0RPTUNv
bnZlcnQuaCIpOwotIAorCiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbnVzaW5nIG5hbWVzcGFj
ZSBKU0M7XG5cbiIpOwogICAgIHB1c2goQGltcGxDb250ZW50LCAibmFtZXNwYWNlIFdlYkNvcmUg
e1xuXG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgR2VuZXJhdGVFbnVtZXJhdGlvbkltcGxl
bWVudGF0aW9uQ29udGVudCgkZW51bWVyYXRpb24sICRjbGFzc05hbWUpKTsKQEAgLTE4NjQsNyAr
MTk1NSwxMiBAQCBzdWIgR2VuZXJhdGVFbnVtZXJhdGlvbkltcGxlbWVudGF0aW9uCiBzdWIgR2Vu
ZXJhdGVFbnVtZXJhdGlvbkltcGxlbWVudGF0aW9uQ29udGVudAogewogICAgIG15ICgkZW51bWVy
YXRpb24sICRjbGFzc05hbWUsICRpbnRlcmZhY2UsICRjb25kaXRpb25hbFN0cmluZykgPSBAXzsK
LSAgICAKKworICAgICMgRklYTUU6IEEgbGl0dGxlIHVnbHkgdG8gaGF2ZSB0aGlzIGJlIGEgc2lk
ZSBlZmZlY3QgaW5zdGVhZCBvZiBhIHJldHVybiB2YWx1ZS4KKyAgICBBZGRUb0ltcGxJbmNsdWRl
cygiPHJ1bnRpbWUvSlNTdHJpbmcuaD4iKTsKKyAgICBBZGRUb0ltcGxJbmNsdWRlcygiPHJ1bnRp
bWUvSlNDSW5saW5lcy5oPiIpOworICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKU0RPTUNvbnZlcnRF
bnVtZXJhdGlvbi5oIik7CisKICAgICBteSAkcmVzdWx0ID0gIiI7CiAgICAgJHJlc3VsdCAuPSAi
I2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG5cbiIgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogCkBA
IC0xOTI2LDEwICsyMDIyLDYgQEAgc3ViIEdlbmVyYXRlRW51bWVyYXRpb25zSW1wbGVtZW50YXRp
b25DbwogICAgIG15ICgkaW50ZXJmYWNlLCAkZW51bWVyYXRpb25zKSA9IEBfOwogCiAgICAgcmV0
dXJuICIiIHVubGVzcyBAJGVudW1lcmF0aW9uczsKLSAgICAKLSAgICAjIEZJWE1FOiBBIGxpdHRs
ZSB1Z2x5IHRvIGhhdmUgdGhpcyBiZSBhIHNpZGUgZWZmZWN0IGluc3RlYWQgb2YgYSByZXR1cm4g
dmFsdWUuCi0gICAgQWRkVG9JbXBsSW5jbHVkZXMoIjxydW50aW1lL0pTU3RyaW5nLmg+Iik7Ci0g
ICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTRE9NQ29udmVydC5oIik7CiAKICAgICBteSAkcmVzdWx0
ID0gIiI7CiAgICAgZm9yZWFjaCBteSAkZW51bWVyYXRpb24gKEAkZW51bWVyYXRpb25zKSB7CkBA
IC0xOTQ0LDYgKzIwMzYsOCBAQCBzdWIgR2VuZXJhdGVFbnVtZXJhdGlvbkhlYWRlckNvbnRlbnQK
IHsKICAgICBteSAoJGVudW1lcmF0aW9uLCAkY2xhc3NOYW1lLCAkY29uZGl0aW9uYWxTdHJpbmcp
ID0gQF87CiAKKyAgICAkaGVhZGVySW5jbHVkZXN7IkpTRE9NQ29udmVydEVudW1lcmF0aW9uLmgi
fSA9IDE7CisKICAgICBteSAkcmVzdWx0ID0gIiI7CiAgICAgJHJlc3VsdCAuPSAiI2lmICR7Y29u
ZGl0aW9uYWxTdHJpbmd9XG5cbiIgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogCkBAIC0xOTY2LDgg
KzIwNjAsNiBAQCBzdWIgR2VuZXJhdGVFbnVtZXJhdGlvbnNIZWFkZXJDb250ZW50CiAgICAgIyBG
SVhNRTogQ291bGQgb3B0aW1pemUgdGhpcyB0byBvbmx5IGdlbmVyYXRlIHRoZSBwYXJ0cyBvZiBl
YWNoIGVudW1lcmF0aW9uIHRoYXQgYXJlIGFjdHVhbGx5CiAgICAgIyB1c2VkLCB3aGljaCB3b3Vs
ZCByZXF1aXJlIGl0ZXJhdGluZyBvdmVyIGV2ZXJ5dGhpbmcgaW4gdGhlIGludGVyZmFjZS4KIAot
ICAgICRoZWFkZXJJbmNsdWRlc3siSlNET01Db252ZXJ0LmgifSA9IDE7Ci0KICAgICBteSAkcmVz
dWx0ID0gIiI7CiAgICAgZm9yZWFjaCBteSAkZW51bWVyYXRpb24gKEAkZW51bWVyYXRpb25zKSB7
CiAgICAgICAgIG15ICRjbGFzc05hbWUgPSBHZXRFbnVtZXJhdGlvbkNsYXNzTmFtZSgkZW51bWVy
YXRpb24tPnR5cGUsICRpbnRlcmZhY2UpOwpAQCAtMjA0Miw5ICsyMTM0LDExIEBAIHN1YiBHZW5l
cmF0ZURpY3Rpb25hcnlIZWFkZXJDb250ZW50CiB7CiAgICAgbXkgKCRkaWN0aW9uYXJ5LCAkY2xh
c3NOYW1lLCAkY29uZGl0aW9uYWxTdHJpbmcpID0gQF87CiAKKyAgICAkaGVhZGVySW5jbHVkZXN7
IkpTRE9NQ29udmVydERpY3Rpb25hcnkuaCJ9ID0gMTsKKwogICAgIG15ICRyZXN1bHQgPSAiIjsK
ICAgICAkcmVzdWx0IC49ICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31cblxuIiBpZiAkY29uZGl0
aW9uYWxTdHJpbmc7Ci0gICAgJHJlc3VsdCAuPSAidGVtcGxhdGU8PiAke2NsYXNzTmFtZX0gY29u
dmVydERpY3Rpb25hcnk8JGNsYXNzTmFtZT4oSlNDOjpFeGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUp
O1xuXG4iOworICAgICRyZXN1bHQgLj0gInRlbXBsYXRlPD4gJHtjbGFzc05hbWV9IGNvbnZlcnRE
aWN0aW9uYXJ5PCR7Y2xhc3NOYW1lfT4oSlNDOjpFeGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUpO1xu
XG4iOwogCiAgICAgaWYgKCRkaWN0aW9uYXJ5LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntKU0dlbmVy
YXRlVG9KU09iamVjdH0pIHsKICAgICAgICAgJHJlc3VsdCAuPSAiSlNDOjpKU09iamVjdCogY29u
dmVydERpY3Rpb25hcnlUb0pTKEpTQzo6RXhlY1N0YXRlJiwgSlNET01HbG9iYWxPYmplY3QmLCBj
b25zdCAke2NsYXNzTmFtZX0mKTtcblxuIjsKQEAgLTIwNjAsOCArMjE1NCw2IEBAIHN1YiBHZW5l
cmF0ZURpY3Rpb25hcmllc0hlYWRlckNvbnRlbnQKIAogICAgIHJldHVybiAiIiB1bmxlc3MgQCRh
bGxEaWN0aW9uYXJpZXM7CiAKLSAgICAkaGVhZGVySW5jbHVkZXN7IkpTRE9NQ29udmVydC5oIn0g
PSAxOwotCiAgICAgbXkgJHJlc3VsdCA9ICIiOwogICAgIGZvcmVhY2ggbXkgJGRpY3Rpb25hcnkg
KEAkYWxsRGljdGlvbmFyaWVzKSB7CiAgICAgICAgICRoZWFkZXJJbmNsdWRlc3skdHlwZVNjb3Bl
LT50eXBlLT5uYW1lIC4gIi5oIn0gPSAxIGlmICR0eXBlU2NvcGU7CkBAIC0yMDc0LDE3ICsyMTY2
LDIyIEBAIHN1YiBHZW5lcmF0ZURpY3Rpb25hcmllc0hlYWRlckNvbnRlbnQKIAogc3ViIEdlbmVy
YXRlRGljdGlvbmFyeUltcGxlbWVudGF0aW9uQ29udGVudAogewotICAgIG15ICgkZGljdGlvbmFy
eSwgJGNsYXNzTmFtZSwgJGludGVyZmFjZSwgJGNvbmRpdGlvbmFsU3RyaW5nKSA9IEBfOworICAg
IG15ICgkZGljdGlvbmFyeSwgJGNsYXNzTmFtZSwgJGludGVyZmFjZSkgPSBAXzsKIAogICAgIG15
ICRyZXN1bHQgPSAiIjsKIAogICAgIG15ICRuYW1lID0gJGRpY3Rpb25hcnktPnR5cGUtPm5hbWU7
CiAgICAgbXkgJHR5cGVTY29wZSA9ICRpbnRlcmZhY2UgfHwgJGRpY3Rpb25hcnk7CiAKLSAgICAk
cmVzdWx0IC49ICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31cblxuIiBpZiAkY29uZGl0aW9uYWxT
dHJpbmc7CisgICAgbXkgJGNvbmRpdGlvbmFsID0gJGRpY3Rpb25hcnktPmV4dGVuZGVkQXR0cmli
dXRlcy0+e0NvbmRpdGlvbmFsfTsKKyAgICBpZiAoJGNvbmRpdGlvbmFsKSB7CisgICAgICAgIG15
ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFs
U3RyaW5nRnJvbUF0dHJpYnV0ZVZhbHVlKCRjb25kaXRpb25hbCk7CisgICAgICAgICRyZXN1bHQg
Lj0gIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuXG4iOworICAgIH0KIAogICAgICMgRklYTUU6
IEEgbGl0dGxlIHVnbHkgdG8gaGF2ZSB0aGlzIGJlIGEgc2lkZSBlZmZlY3QgaW5zdGVhZCBvZiBh
IHJldHVybiB2YWx1ZS4KLSAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlNET01Db252ZXJ0LmgiKTsK
KyAgICBBZGRUb0ltcGxJbmNsdWRlcygiPHJ1bnRpbWUvSlNDSW5saW5lcy5oPiIpOworICAgIEFk
ZFRvSW1wbEluY2x1ZGVzKCJKU0RPTUNvbnZlcnREaWN0aW9uYXJ5LmgiKTsKIAogICAgICMgaHR0
cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jZXMtZGljdGlvbmFyeQogICAgICRyZXN1bHQg
Lj0gInRlbXBsYXRlPD4gJGNsYXNzTmFtZSBjb252ZXJ0RGljdGlvbmFyeTwkY2xhc3NOYW1lPihF
eGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKVxuIjsKQEAgLTIxMzcsNyArMjIzNCw3IEBA
IHN1YiBHZW5lcmF0ZURpY3Rpb25hcnlJbXBsZW1lbnRhdGlvbkNvbnQKIAogICAgICAgICAgICAg
IyA1LjEuIExldCBrZXkgYmUgdGhlIGlkZW50aWZpZXIgb2YgbWVtYmVyLgogICAgICAgICAgICAg
bXkgJGtleSA9ICRtZW1iZXItPm5hbWU7Ci0gICAgICAgICAgICBteSAkaW1wbGVtZW50ZWRBc0tl
eSA9ICRtZW1iZXItPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBsZW1lbnRlZEFzIn0gPyAkbWVt
YmVyLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVtZW50ZWRBcyJ9IDogJGtleTsKKyAgICAg
ICAgICAgIG15ICRpbXBsZW1lbnRlZEFzS2V5ID0gJG1lbWJlci0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57SW1wbGVtZW50ZWRBc30gfHwgJGtleTsKIAogICAgICAgICAgICAgIyA1LjIuIExldCB2YWx1
ZSBiZSBhbiBFQ01BU2NyaXB0IHZhbHVlLCBkZXBlbmRpbmcgb24gVHlwZShWKToKICAgICAgICAg
ICAgICRyZXN1bHQgLj0gIiAgICBKU1ZhbHVlICR7a2V5fVZhbHVlID0gaXNOdWxsT3JVbmRlZmlu
ZWQgPyBqc1VuZGVmaW5lZCgpIDogb2JqZWN0LT5nZXQoJnN0YXRlLCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKCZzdGF0ZSwgXCIke2tleX1cIikpO1xuIjsKQEAgLTIxNzIsMTIgKzIyNjksMTUgQEAg
c3ViIEdlbmVyYXRlRGljdGlvbmFyeUltcGxlbWVudGF0aW9uQ29udAogICAgICRyZXN1bHQgLj0g
In1cblxuIjsKIAogICAgIGlmICgkZGljdGlvbmFyeS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57SlNH
ZW5lcmF0ZVRvSlNPYmplY3R9KSB7CisgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKU0RPTUds
b2JhbE9iamVjdC5oIik7CisgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCI8cnVudGltZS9PYmpl
Y3RDb25zdHJ1Y3Rvci5oPiIpOworCiAgICAgICAgICRyZXN1bHQgLj0gIkpTQzo6SlNPYmplY3Qq
IGNvbnZlcnREaWN0aW9uYXJ5VG9KUyhKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTRE9NR2xvYmFs
T2JqZWN0JiBnbG9iYWxPYmplY3QsIGNvbnN0ICR7Y2xhc3NOYW1lfSYgZGljdGlvbmFyeSlcbiI7
CiAgICAgICAgICRyZXN1bHQgLj0gIntcbiI7CiAgICAgICAgICRyZXN1bHQgLj0gIiAgICBhdXRv
JiB2bSA9IHN0YXRlLnZtKCk7XG5cbiI7CiAKICAgICAgICAgIyAxLiBMZXQgTyBiZSAhIE9iamVj
dENyZWF0ZSglT2JqZWN0UHJvdG90eXBlJSkuCi0gICAgICAgICRyZXN1bHQgLj0gIiAgICBhdXRv
IHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KCZzdGF0ZSk7XG5cbiI7CisgICAgICAgICRy
ZXN1bHQgLj0gIiAgICBhdXRvIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KCZzdGF0ZSwg
Z2xvYmFsT2JqZWN0Lm9iamVjdFByb3RvdHlwZSgpKTtcblxuIjsKIAogICAgICAgICAjIDIuIExl
dCBkaWN0aW9uYXJpZXMgYmUgYSBsaXN0IGNvbnNpc3Rpbmcgb2YgRCBhbmQgYWxsIG9mIETigJlz
IGluaGVyaXRlZCBkaWN0aW9uYXJpZXMsCiAgICAgICAgICMgICAgaW4gb3JkZXIgZnJvbSBsZWFz
dCB0byBtb3N0IGRlcml2ZWQuCkBAIC0yMTg5LDIxICsyMjg5LDI3IEBAIHN1YiBHZW5lcmF0ZURp
Y3Rpb25hcnlJbXBsZW1lbnRhdGlvbkNvbnQKICAgICAgICAgICAgIG15IEBzb3J0ZWRNZW1iZXJz
ID0gc29ydCB7ICRhLT5uYW1lIGNtcCAkYi0+bmFtZSB9IEB7JGRpY3Rpb25hcnktPm1lbWJlcnN9
OwogICAgICAgICAgICAgZm9yZWFjaCBteSAkbWVtYmVyIChAc29ydGVkTWVtYmVycykgewogICAg
ICAgICAgICAgICAgIG15ICRrZXkgPSAkbWVtYmVyLT5uYW1lOwotICAgICAgICAgICAgICAgIG15
ICRpbXBsZW1lbnRlZEFzS2V5ID0gJG1lbWJlci0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkltcGxl
bWVudGVkQXMifSA/ICRtZW1iZXItPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBsZW1lbnRlZEFz
In0gOiAka2V5OworICAgICAgICAgICAgICAgIG15ICRpbXBsZW1lbnRlZEFzS2V5ID0gJG1lbWJl
ci0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57SW1wbGVtZW50ZWRBc30gfHwgJGtleTsKKyAgICAgICAg
ICAgICAgICBteSAkdmFsdWVFeHByZXNzaW9uID0gImRpY3Rpb25hcnkuJHtpbXBsZW1lbnRlZEFz
S2V5fSI7CiAKICAgICAgICAgICAgICAgICAjIDEuIExldCBrZXkgYmUgdGhlIGlkZW50aWZpZXIg
b2YgbWVtYmVyLgogICAgICAgICAgICAgICAgICMgMi4gSWYgdGhlIGRpY3Rpb25hcnkgbWVtYmVy
IG5hbWVkIGtleSBpcyBwcmVzZW50IGluIFYsIHRoZW46CiAgICAgICAgICAgICAgICAgICAgICMg
MS4gTGV0IGlkbFZhbHVlIGJlIHRoZSB2YWx1ZSBvZiBtZW1iZXIgb24gVi4KICAgICAgICAgICAg
ICAgICAgICAgIyAyLiBMZXQgdmFsdWUgYmUgdGhlIHJlc3VsdCBvZiBjb252ZXJ0aW5nIGlkbFZh
bHVlIHRvIGFuIEVDTUFTY3JpcHQgdmFsdWUuCiAgICAgICAgICAgICAgICAgICAgICMgMy4gUGVy
Zm9ybSAhIENyZWF0ZURhdGFQcm9wZXJ0eShPLCBrZXksIHZhbHVlKS4KLSAgICAgICAgICAgICAg
ICBteSAkSURMVHlwZSA9IEdldElETFR5cGUoJHR5cGVTY29wZSwgJG1lbWJlci0+dHlwZSk7CisK
ICAgICAgICAgICAgICAgICBpZiAoISRtZW1iZXItPmlzUmVxdWlyZWQgJiYgbm90IGRlZmluZWQg
JG1lbWJlci0+ZGVmYXVsdCkgewotICAgICAgICAgICAgICAgICAgICAkcmVzdWx0IC49ICIgICAg
aWYgKCEke0lETFR5cGV9Ojppc051bGxWYWx1ZShkaWN0aW9uYXJ5LiR7aW1wbGVtZW50ZWRBc0tl
eX0pKSB7XG4iOwotICAgICAgICAgICAgICAgICAgICAkcmVzdWx0IC49ICIgICAgICAgIGF1dG8g
JHtrZXl9VmFsdWUgPSB0b0pTPCRJRExUeXBlPihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCAke0lETFR5
cGV9OjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUoZGljdGlvbmFyeS4ke2ltcGxlbWVudGVkQXNL
ZXl9KSk7XG4iOworICAgICAgICAgICAgICAgICAgICBteSAkSURMVHlwZSA9IEdldElETFR5cGUo
JHR5cGVTY29wZSwgJG1lbWJlci0+dHlwZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRjb252
ZXJzaW9uRXhwcmVzc2lvbiA9IE5hdGl2ZVRvSlNWYWx1ZVVzaW5nUmVmZXJlbmNlcygkbWVtYmVy
LCAkdHlwZVNjb3BlLCAiJHtJRExUeXBlfTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKCR7dmFs
dWVFeHByZXNzaW9ufSkiLCAiZ2xvYmFsT2JqZWN0Iik7CisKKyAgICAgICAgICAgICAgICAgICAg
JHJlc3VsdCAuPSAiICAgIGlmICghJHtJRExUeXBlfTo6aXNOdWxsVmFsdWUoJHt2YWx1ZUV4cHJl
c3Npb259KSkge1xuIjsKKyAgICAgICAgICAgICAgICAgICAgJHJlc3VsdCAuPSAiICAgICAgICBh
dXRvICR7a2V5fVZhbHVlID0gJHtjb252ZXJzaW9uRXhwcmVzc2lvbn07XG4iOwogICAgICAgICAg
ICAgICAgICAgICAkcmVzdWx0IC49ICIgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6
OklkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCBcIiR7a2V5fVwiKSwgJHtrZXl9VmFsdWUpO1xu
IjsKICAgICAgICAgICAgICAgICAgICAgJHJlc3VsdCAuPSAiICAgIH1cbiI7CiAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgJHJlc3VsdCAuPSAiICAgIGF1dG8g
JHtrZXl9VmFsdWUgPSB0b0pTPCRJRExUeXBlPihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBkaWN0aW9u
YXJ5LiR7aW1wbGVtZW50ZWRBc0tleX0pO1xuIjsKKyAgICAgICAgICAgICAgICAgICAgbXkgJGNv
bnZlcnNpb25FeHByZXNzaW9uID0gTmF0aXZlVG9KU1ZhbHVlVXNpbmdSZWZlcmVuY2VzKCRtZW1i
ZXIsICR0eXBlU2NvcGUsICR2YWx1ZUV4cHJlc3Npb24sICJnbG9iYWxPYmplY3QiKTsKKworICAg
ICAgICAgICAgICAgICAgICAkcmVzdWx0IC49ICIgICAgYXV0byAke2tleX1WYWx1ZSA9ICR7Y29u
dmVyc2lvbkV4cHJlc3Npb259O1xuIjsKICAgICAgICAgICAgICAgICAgICAgJHJlc3VsdCAuPSAi
ICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZt
LCBcIiR7a2V5fVwiKSwgJHtrZXl9VmFsdWUpO1xuIjsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICB9CkBAIC0yMjEzLDcgKzIzMTksNyBAQCBzdWIgR2VuZXJhdGVEaWN0aW9uYXJ5SW1w
bGVtZW50YXRpb25Db250CiAgICAgICAgICRyZXN1bHQgLj0gIn1cblxuIjsKICAgICB9CiAKLSAg
ICAkcmVzdWx0IC49ICIjZW5kaWZcblxuIiBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CisgICAgJHJl
c3VsdCAuPSAiI2VuZGlmXG5cbiIgaWYgJGNvbmRpdGlvbmFsOwogCiAgICAgcmV0dXJuICRyZXN1
bHQ7CiB9CkBAIC0yMjI1LDggKzIzMzEsNyBAQCBzdWIgR2VuZXJhdGVEaWN0aW9uYXJpZXNJbXBs
ZW1lbnRhdGlvbkNvCiAgICAgbXkgJHJlc3VsdCA9ICIiOwogICAgIGZvcmVhY2ggbXkgJGRpY3Rp
b25hcnkgKEAkYWxsRGljdGlvbmFyaWVzKSB7CiAgICAgICAgIG15ICRjbGFzc05hbWUgPSBHZXRE
aWN0aW9uYXJ5Q2xhc3NOYW1lKCRkaWN0aW9uYXJ5LT50eXBlLCAkdHlwZVNjb3BlKTsKLSAgICAg
ICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0
aW9uYWxTdHJpbmcoJGRpY3Rpb25hcnkpOwotICAgICAgICAkcmVzdWx0IC49IEdlbmVyYXRlRGlj
dGlvbmFyeUltcGxlbWVudGF0aW9uQ29udGVudCgkZGljdGlvbmFyeSwgJGNsYXNzTmFtZSwgJHR5
cGVTY29wZSwgJGNvbmRpdGlvbmFsU3RyaW5nKTsKKyAgICAgICAgJHJlc3VsdCAuPSBHZW5lcmF0
ZURpY3Rpb25hcnlJbXBsZW1lbnRhdGlvbkNvbnRlbnQoJGRpY3Rpb25hcnksICRjbGFzc05hbWUs
ICR0eXBlU2NvcGUpOwogICAgIH0KICAgICByZXR1cm4gJHJlc3VsdDsKIH0KQEAgLTI1MDksNyAr
MjYxNCw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogCiAgICAgIyBTZXJpYWxpemVyIGZ1bmN0aW9u
LgogICAgIGlmICgkaW50ZXJmYWNlLT5zZXJpYWxpemFibGUpIHsKLSAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogc2VyaWFsaXplKEpTQzo6RXhl
Y1N0YXRlKiwgJHtjbGFzc05hbWV9KiB0aGlzT2JqZWN0LCBKU0M6OlRocm93U2NvcGUmKTtcbiIp
OworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0
KiBzZXJpYWxpemUoSlNDOjpFeGVjU3RhdGUmLCAke2NsYXNzTmFtZX0mIHRoaXNPYmplY3QsIEpT
RE9NR2xvYmFsT2JqZWN0JiwgSlNDOjpUaHJvd1Njb3BlJik7XG4iKTsKICAgICB9CiAgICAgCiAg
ICAgbXkgJG51bUN1c3RvbU9wZXJhdGlvbnMgPSAwOwpAQCAtMjUzMiw3ICsyNjM3LDcgQEAgc3Vi
IEdlbmVyYXRlSGVhZGVyCiAgICAgICAgICAgICAgICAgJG51bUNhY2hlZEF0dHJpYnV0ZXMrKzsK
ICAgICAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiI2VuZGlmXG4iKSBpZiAkY29u
ZGl0aW9uYWxTdHJpbmc7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAkaGFzRE9NSklUQXR0
cmlidXRlcyA9IDEgaWYgJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRPTUpJVCJ9
OworICAgICAgICAgICAgJGhhc0RPTUpJVEF0dHJpYnV0ZXMgPSAxIGlmICRhdHRyaWJ1dGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+e0RPTUpJVH07CiAKICAgICAgICAgICAgICRoYXNGb3J3YXJkRGVj
bGFyaW5nQXR0cmlidXRlcyA9IDEgaWYgJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
Rm9yd2FyZERlY2xhcmVJbkhlYWRlcn07CiAgICAgICAgIH0KQEAgLTI3NzAsNyArMjg3NSw3IEBA
IHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICAkaGVhZGVySW5jbHVkZXN7Ijxkb21qaXQvRE9N
SklUR2V0dGVyU2V0dGVyLmg+In0gPSAxOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCIv
LyBET01KSVQgZW1pdHRlcnMgZm9yIGF0dHJpYnV0ZXNcblxuIik7CiAgICAgICAgIGZvcmVhY2gg
bXkgJGF0dHJpYnV0ZSAoQHskaW50ZXJmYWNlLT5hdHRyaWJ1dGVzfSkgewotICAgICAgICAgICAg
bmV4dCB1bmxlc3MgJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRPTUpJVCJ9Owor
ICAgICAgICAgICAgbmV4dCB1bmxlc3MgJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
RE9NSklUfTsKICAgICAgICAgICAgIGFzc2VydCgiT25seSBET01KSVQ9R2V0dGVyIGlzIHN1cHBv
cnRlZCBmb3IgYXR0cmlidXRlcyIpIHVubGVzcyAkY29kZUdlbmVyYXRvci0+RXh0ZW5kZWRBdHRy
aWJ1dGVDb250YWlucygkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntET01KSVR9LCAi
R2V0dGVyIik7CiAKICAgICAgICAgICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGludGVyZmFjZS0+
dHlwZS0+bmFtZTsKQEAgLTI4NzksNyArMjk4NCw3IEBAIHN1YiBHZW5lcmF0ZVByb3BlcnRpZXNI
YXNoVGFibGUKICAgICAgICAgbXkgJHNwZWNpYWwgPSBHZXRKU0NBdHRyaWJ1dGVzRm9yQXR0cmli
dXRlKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOwogICAgICAgICBwdXNoKEAkaGFzaFNwZWNpYWxz
LCAkc3BlY2lhbCk7CiAKLSAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJET01KSVQifSkgeworICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57RE9NSklUfSkgewogICAgICAgICAgICAgcHVzaChAJGhhc2hWYWx1ZTEsICJkb21KSVRH
ZXR0ZXJTZXR0ZXJGb3IiIC4gJGludGVyZmFjZS0+dHlwZS0+bmFtZSAuICRjb2RlR2VuZXJhdG9y
LT5XS191Y2ZpcnN0KCRhdHRyaWJ1dGUtPm5hbWUpKTsKICAgICAgICAgICAgIHB1c2goQCRoYXNo
VmFsdWUyLCAiMCIpOwogICAgICAgICB9IGVsc2UgewpAQCAtMzE0Myw3ICszMjQ4LDcgQEAgc3Vi
IEdlbmVyYXRlT3ZlcmxvYWREaXNwYXRjaGVyCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgICAgICBpZiAoJGNvbmRpdGlvbilcbiAgICAiKSBpZiAkY29uZGl0aW9uOwogICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuICIgLiAkb3ZlcmxvYWRGdW5jdGlvblBy
ZWZpeCAuICRvdmVybG9hZC0+e292ZXJsb2FkSW5kZXh9IC4gJG92ZXJsb2FkRnVuY3Rpb25TdWZm
aXggLiAiKCR7cGFyYW1ldGVyc1RvRm9yd2FyZH0pO1xuIik7CiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiI2VuZGlmXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7Ci0gICAgICAgIEFkZFRv
SW1wbEluY2x1ZGVzKCRpbmNsdWRlLCAkb3ZlcmxvYWQtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
b25kaXRpb25hbCJ9KSBpZiAkaW5jbHVkZTsKKyAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoJGlu
Y2x1ZGUsICRvdmVybG9hZC0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q29uZGl0aW9uYWx9KSBpZiAk
aW5jbHVkZTsKICAgICB9OwogICAgIG15ICRpc09wdGlvbmFsUGFyYW1ldGVyID0gc3ViIHsKICAg
ICAgICAgbXkgKCR0eXBlLCAkb3B0aW9uYWxpdHkpID0gQF87CkBAIC0zNTg2LDYgKzM2OTEsNyBA
QCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICMgLSBBZGQgZGVmYXVsdCBoZWFkZXIg
dGVtcGxhdGUKICAgICBwdXNoKEBpbXBsQ29udGVudEhlYWRlciwgR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbkNvbnRlbnRIZWFkZXIoJGludGVyZmFjZSkpOwogCisgICAgQWRkVG9JbXBsSW5jbHVkZXMo
IjxydW50aW1lL0pTQ0lubGluZXMuaD4iKTsKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlNET01C
aW5kaW5nLmgiKTsKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlNET01FeGNlcHRpb25IYW5kbGlu
Zy5oIik7CiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTRE9NV3JhcHBlckNhY2hlLmgiKTsKQEAg
LTM3ODMsMTEgKzM4ODksMTEgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAg
ICAgIG15IEBzcGVjaWFscyA9ICgpOwogICAgICAgICAgICAgcHVzaChAc3BlY2lhbHMsICJEb250
RGVsZXRlIikgaWYgSXNVbmZvcmdlYWJsZSgkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKICAgICAg
ICAgICAgIHB1c2goQHNwZWNpYWxzLCAiUmVhZE9ubHkiKSBpZiBJc1JlYWRvbmx5KCRhdHRyaWJ1
dGUpOwotICAgICAgICAgICAgcHVzaChAc3BlY2lhbHMsICJET01KSVRBdHRyaWJ1dGUiKSBpZiAk
YXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRE9NSklUIn07CisgICAgICAgICAgICBw
dXNoKEBzcGVjaWFscywgIkRPTUpJVEF0dHJpYnV0ZSIpIGlmICRhdHRyaWJ1dGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+e0RPTUpJVH07CiAgICAgICAgICAgICBteSAkc3BlY2lhbCA9IChAc3BlY2lh
bHMgPiAwKSA/IGpvaW4oIiB8ICIsIEBzcGVjaWFscykgOiAiMCI7CiAgICAgICAgICAgICBwdXNo
KEBoYXNoU3BlY2lhbHMsICRzcGVjaWFsKTsKIAotICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJET01KSVQifSkgeworICAgICAgICAgICAgaWYgKCRhdHRy
aWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0RPTUpJVH0pIHsKICAgICAgICAgICAgICAgICBw
dXNoKEBoYXNoVmFsdWUxLCAiZG9tSklUR2V0dGVyU2V0dGVyRm9yIiAuICRpbnRlcmZhY2UtPnR5
cGUtPm5hbWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5uYW1lKSk7
CiAgICAgICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVlMiwgIjAiKTsKICAgICAgICAgICAgIH0g
ZWxzZSB7CkBAIC0zOTYyLDYgKzQwNjgsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
ICAgICAgICAgICAgaWYgKElzS2V5VmFsdWVJdGVyYWJsZUludGVyZmFjZSgkaW50ZXJmYWNlKSBv
ciAkaW50ZXJmYWNlLT5tYXBMaWtlKSB7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRvclN5bWJvbCwg
Z2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5lbnRyaWVzUHVi
bGljTmFtZSgpKSwgRG9udEVudW0pO1xuIik7CiAgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCI8cnVudGltZS9BcnJheVByb3RvdHlwZS5oPiIp
OwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHB1dERpcmVjdCh2bSwg
dm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0b3JTeW1ib2wsIGdsb2JhbE9iamVjdCgpLT5hcnJheVBy
b3RvdHlwZSgpLT5nZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LnZhbHVlc1ByaXZhdGVOYW1lKCkpLCBEb250RW51bSk7XG4iKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQpAQCAtNDE4MCw5ICs0Mjg3LDkgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICBpZiAoJG51bUF0dHJpYnV0ZXMgPiAwKSB7CiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVz
KCJKU0RPTUF0dHJpYnV0ZS5oIik7CiAKLSAgICAgICAgbXkgJGNhc3RpbmdGdW5jdGlvbiA9ICRp
bnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Qcm94eVRvSlNPYmplY3QifSA/
ICJ0byR7Y2xhc3NOYW1lfSIgOiBHZXRDYXN0aW5nSGVscGVyRm9yVGhpc09iamVjdCgkaW50ZXJm
YWNlKTsKKyAgICAgICAgbXkgJGNhc3RpbmdGdW5jdGlvbiA9ICRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+e0N1c3RvbVByb3h5VG9KU09iamVjdH0gPyAidG8ke2NsYXNzTmFtZX0iIDog
R2V0Q2FzdGluZ0hlbHBlckZvclRoaXNPYmplY3QoJGludGVyZmFjZSk7CiAgICAgICAgICMgRklY
TUU6IFJlbW92ZSBJbXBsaWNpdFRoaXMga2V5d29yZCBhcyBpdCBpcyBubyBsb25nZXIgZGVmaW5l
ZCBieSBXZWJJREwgc3BlYyBhbmQgaXMgb25seSB1c2VkIGluIERPTVdpbmRvdy4KLSAgICAgICAg
aWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBsaWNpdFRoaXMifSkgewor
ICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57SW1wbGljaXRUaGlz
fSkgewogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ0ZW1wbGF0ZTw+IGlubGluZSAk
e2NsYXNzTmFtZX0qIElETEF0dHJpYnV0ZTwke2NsYXNzTmFtZX0+OjpjYXN0KEV4ZWNTdGF0ZSYg
c3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSlcbiIpOwogICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IGF1dG8gZGVjb2RlZFRoaXNWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpO1xuIik7
CkBAIC00MjAyLDggKzQzMDksOCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAg
ICBBZGRUb0ltcGxJbmNsdWRlcygiSlNET01PcGVyYXRpb24uaCIpOwogCiAgICAgICAgICMgRklY
TUU6IE1ha2UgY29uc2lzdGVudCBJRExBdHRyaWJ1dGU8Pjo6Y2FzdCBhbmQgSURMT3BlcmF0aW9u
PD46OmNhc3QgaW4gY2FzZSBvZiBDdXN0b21Qcm94eVRvSlNPYmplY3QuCi0gICAgICAgIG15ICRj
YXN0aW5nRnVuY3Rpb24gPSAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9t
UHJveHlUb0pTT2JqZWN0In0gPyAidG8ke2NsYXNzTmFtZX0iIDogR2V0Q2FzdGluZ0hlbHBlckZv
clRoaXNPYmplY3QoJGludGVyZmFjZSk7Ci0gICAgICAgIG15ICR0aGlzVmFsdWUgPSAkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tUHJveHlUb0pTT2JqZWN0In0gPyAic3Rh
dGUudGhpc1ZhbHVlKCkudG9UaGlzKCZzdGF0ZSwgTm90U3RyaWN0TW9kZSkiIDogInN0YXRlLnRo
aXNWYWx1ZSgpIjsKKyAgICAgICAgbXkgJGNhc3RpbmdGdW5jdGlvbiA9ICRpbnRlcmZhY2UtPmV4
dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbVByb3h5VG9KU09iamVjdH0gPyAidG8ke2NsYXNzTmFt
ZX0iIDogR2V0Q2FzdGluZ0hlbHBlckZvclRoaXNPYmplY3QoJGludGVyZmFjZSk7CisgICAgICAg
IG15ICR0aGlzVmFsdWUgPSAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21Q
cm94eVRvSlNPYmplY3R9ID8gInN0YXRlLnRoaXNWYWx1ZSgpLnRvVGhpcygmc3RhdGUsIE5vdFN0
cmljdE1vZGUpIiA6ICJzdGF0ZS50aGlzVmFsdWUoKSI7CiAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAidGVtcGxhdGU8PiBpbmxpbmUgJHtjbGFzc05hbWV9KiBJRExPcGVyYXRpb248JHtjbGFz
c05hbWV9Pjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlKVxuIik7CiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAie1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiAk
Y2FzdGluZ0Z1bmN0aW9uKHN0YXRlLnZtKCksICR0aGlzVmFsdWUpO1xuIik7CkBAIC00NjE0LDcg
KzQ3MjEsNyBAQCBzdWIgR2VuZXJhdGVBdHRyaWJ1dGVHZXR0ZXJEZWZpbml0aW9uCiAgICAgR2Vu
ZXJhdGVBdHRyaWJ1dGVHZXR0ZXJCb2R5RGVmaW5pdGlvbigkb3V0cHV0QXJyYXksICRpbnRlcmZh
Y2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUsICRhdHRyaWJ1dGVHZXR0ZXJCb2R5TmFtZSwgJGNv
bmRpdGlvbmFsKTsKICAgICBHZW5lcmF0ZUF0dHJpYnV0ZUdldHRlclRyYW1wb2xpbmVEZWZpbml0
aW9uKCRvdXRwdXRBcnJheSwgJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSwgJGF0
dHJpYnV0ZUdldHRlck5hbWUsICRhdHRyaWJ1dGVHZXR0ZXJCb2R5TmFtZSwgJGNvbmRpdGlvbmFs
KTsKICAgICAKLSAgICBpZiAoJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRPTUpJ
VCJ9KSB7CisgICAgaWYgKCRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0RPTUpJVH0p
IHsKICAgICAgICAgYXNzZXJ0KCJPbmx5IERPTUpJVD1HZXR0ZXIgaXMgc3VwcG9ydGVkIGZvciBh
dHRyaWJ1dGVzIikgdW5sZXNzICRjb2RlR2VuZXJhdG9yLT5FeHRlbmRlZEF0dHJpYnV0ZUNvbnRh
aW5zKCRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0RPTUpJVH0sICJHZXR0ZXIiKTsK
IAogICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiPHd0Zi9OZXZlckRlc3Ryb3llZC5oPiIsICRj
b25kaXRpb25hbCk7CkBAIC01MDcwLDIyICs1MTc3LDIyIEBAIHN1YiBHZW5lcmF0ZVNlcmlhbGl6
ZXJEZWZpbml0aW9uCiAKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiPHJ1bnRpbWUvT2JqZWN0Q29u
c3RydWN0b3IuaD4iKTsKIAotICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNDOjpKU09iamVjdCog
SlMke2ludGVyZmFjZU5hbWV9OjpzZXJpYWxpemUoRXhlY1N0YXRlKiBzdGF0ZSwgSlMke2ludGVy
ZmFjZU5hbWV9KiB0aGlzT2JqZWN0LCBUaHJvd1Njb3BlJiB0aHJvd1Njb3BlKVxuIik7CisgICAg
cHVzaChAaW1wbENvbnRlbnQsICJKU0M6OkpTT2JqZWN0KiBKUyR7aW50ZXJmYWNlTmFtZX06OnNl
cmlhbGl6ZShFeGVjU3RhdGUmIHN0YXRlLCAke2NsYXNzTmFtZX0mIHRoaXNPYmplY3QsIEpTRE9N
R2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIFRocm93U2NvcGUmIHRocm93U2NvcGUpXG4iKTsK
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwotICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIGF1dG8mIHZtID0gc3RhdGUtPnZtKCk7XG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBhdXRvJiB2bSA9IHN0YXRlLnZtKCk7XG4iKTsKIAogICAgIGlmICgkaW50ZXJmYWNlLT5z
ZXJpYWxpemFibGUtPmhhc0luaGVyaXQpIHsKICAgICAgICAgbXkgJHBhcmVudFNlcmlhbGl6ZXJJ
bnRlcmZhY2VOYW1lID0gJHBhcmVudFNlcmlhbGl6ZXJJbnRlcmZhY2UtPnR5cGUtPm5hbWU7Ci0g
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGF1dG8qIHJlc3VsdCA9IEpTJHtwYXJlbnRT
ZXJpYWxpemVySW50ZXJmYWNlTmFtZX06OnNlcmlhbGl6ZShzdGF0ZSwgdGhpc09iamVjdCwgdGhy
b3dTY29wZSk7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgYXV0byogcmVz
dWx0ID0gSlMke3BhcmVudFNlcmlhbGl6ZXJJbnRlcmZhY2VOYW1lfTo6c2VyaWFsaXplKHN0YXRl
LCB0aGlzT2JqZWN0LCBnbG9iYWxPYmplY3QsIHRocm93U2NvcGUpO1xuIik7CiAgICAgfSBlbHNl
IHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgYXV0byogcmVzdWx0ID0gY29uc3Ry
dWN0RW1wdHlPYmplY3Qoc3RhdGUpO1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIGF1dG8qIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KCZzdGF0ZSwgZ2xvYmFsT2Jq
ZWN0Lm9iamVjdFByb3RvdHlwZSgpKTtcbiIpOwogICAgIH0KICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIlxuIik7CiAKICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEBzZXJpYWxpemVkQXR0cmli
dXRlcykgewogICAgICAgICBteSAkbmFtZSA9ICRhdHRyaWJ1dGUtPm5hbWU7CiAgICAgICAgIG15
ICRnZXRGdW5jdGlvbk5hbWUgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRj
bGFzc05hbWUsICRhdHRyaWJ1dGUpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBh
dXRvICR7bmFtZX1WYWx1ZSA9ICR7Z2V0RnVuY3Rpb25OYW1lfUdldHRlcigqc3RhdGUsICp0aGlz
T2JqZWN0LCB0aHJvd1Njb3BlKTtcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBhdXRvICR7bmFtZX1WYWx1ZSA9ICR7Z2V0RnVuY3Rpb25OYW1lfUdldHRlcihzdGF0ZSwgdGhp
c09iamVjdCwgdGhyb3dTY29wZSk7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgdGhyb3dTY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpO1xuIik7CiAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKCZ2bSwgXCIke25hbWV9XCIpLCAke25hbWV9VmFsdWUpO1xuIik7CiAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiXG4iKTsKQEAgLTUwOTUsMTQgKzUyMDIsMTQgQEAgc3ViIEdlbmVyYXRl
U2VyaWFsaXplckRlZmluaXRpb24KICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cbiIpOwogICAg
IHB1c2goQGltcGxDb250ZW50LCAiXG4iKTsKIAotICAgIHB1c2goQGltcGxDb250ZW50LCAic3Rh
dGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSAke3NlcmlhbGl6ZXJOYXRpdmVGdW5jdGlvbk5hbWV9
Qm9keShFeGVjU3RhdGUqIHN0YXRlLCBKUyR7aW50ZXJmYWNlTmFtZX0qIHRoaXNPYmplY3QsIEpT
Qzo6VGhyb3dTY29wZSYgdGhyb3dTY29wZSlcbiIpOworICAgIHB1c2goQGltcGxDb250ZW50LCAi
c3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSAke3NlcmlhbGl6ZXJOYXRpdmVGdW5jdGlvbk5h
bWV9Qm9keShFeGVjU3RhdGUqIHN0YXRlLCAke2NsYXNzTmFtZX0qIHRoaXNPYmplY3QsIEpTQzo6
VGhyb3dTY29wZSYgdGhyb3dTY29wZSlcbiIpOwogICAgIHB1c2goQGltcGxDb250ZW50LCAie1xu
Iik7Ci0gICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
UyR7aW50ZXJmYWNlTmFtZX06OnNlcmlhbGl6ZShzdGF0ZSwgdGhpc09iamVjdCwgdGhyb3dTY29w
ZSkpO1xuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShKUyR7aW50ZXJmYWNlTmFtZX06OnNlcmlhbGl6ZSgqc3RhdGUsICp0aGlzT2JqZWN0LCAq
dGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUpKTtcbiIpOwogICAgIHB1c2go
QGltcGxDb250ZW50LCAifVxuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIpOwogICAg
IHB1c2goQGltcGxDb250ZW50LCAiRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCAke3Nlcmlh
bGl6ZXJOYXRpdmVGdW5jdGlvbk5hbWV9KEV4ZWNTdGF0ZSogc3RhdGUpXG4iKTsKICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIntcbiIpOwotICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVy
biBJRExPcGVyYXRpb248SlMke2ludGVyZmFjZU5hbWV9Pjo6Y2FsbDwke3NlcmlhbGl6ZXJOYXRp
dmVGdW5jdGlvbk5hbWV9Qm9keT4oKnN0YXRlLCBcIiRzZXJpYWxpemVyRnVuY3Rpb25OYW1lXCIp
O1xuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
UyR7aW50ZXJmYWNlTmFtZX0+OjpjYWxsPCR7c2VyaWFsaXplck5hdGl2ZUZ1bmN0aW9uTmFtZX1C
b2R5Pigqc3RhdGUsIFwiJHtzZXJpYWxpemVyRnVuY3Rpb25OYW1lfVwiKTtcbiIpOwogICAgIHB1
c2goQGltcGxDb250ZW50LCAifVxuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIpOwog
fQpAQCAtNTQ2Myw4ICs1NTcwLDcgQEAgc3ViIEdlbmVyYXRlRGljdGlvbmFyeUhlYWRlcgogICAg
ICMgLSBBZGQgZGVmYXVsdCBoZWFkZXIgdGVtcGxhdGUgYW5kIGhlYWRlciBwcm90ZWN0aW9uLgog
ICAgIHB1c2goQGhlYWRlckNvbnRlbnRIZWFkZXIsIEdlbmVyYXRlSGVhZGVyQ29udGVudEhlYWRl
cigkZGljdGlvbmFyeSkpOwogCi0gICAgJGhlYWRlckluY2x1ZGVzeyIkY2xhc3NOYW1lLmgifSA9
IDE7Ci0gICAgJGhlYWRlckluY2x1ZGVzeyJKU0RPTUNvbnZlcnQuaCJ9ID0gMTsKKyAgICAkaGVh
ZGVySW5jbHVkZXN7IiR7Y2xhc3NOYW1lfS5oIn0gPSAxOwogCiAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIlxubmFtZXNwYWNlIFdlYkNvcmUge1xuXG4iKTsKICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCBHZW5lcmF0ZURpY3Rpb25hcnlIZWFkZXJDb250ZW50KCRkaWN0aW9uYXJ5LCAkY2xhc3NO
YW1lKSk7CkBAIC02MTY0LDggKzYyNzAsNyBAQCBzdWIgSlNWYWx1ZVRvTmF0aXZlCiAgICAgJHRo
aXNPYmplY3RSZWZlcmVuY2UgPSAiKmNhc3RlZFRoaXMiIHVubGVzcyAkdGhpc09iamVjdFJlZmVy
ZW5jZTsKIAogICAgIEFkZFRvSW1wbEluY2x1ZGVzRm9ySURMVHlwZSgkdHlwZSwgJGNvbmRpdGlv
bmFsKTsKLQotICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKU0RPTUNvbnZlcnQuaCIpOworICAgIEFk
ZFRvSW1wbEluY2x1ZGVzKCJKU0RPTUdsb2JhbE9iamVjdC5oIiwgJGNvbmRpdGlvbmFsKSBpZiBK
U1ZhbHVlVG9OYXRpdmVET01Db252ZXJ0TmVlZHNHbG9iYWxPYmplY3QoJHR5cGUpOwogCiAgICAg
bXkgJElETFR5cGUgPSBHZXRJRExUeXBlKCRpbnRlcmZhY2UsICR0eXBlKTsKIApAQCAtNjI2OSwy
OSArNjM3NCwyOSBAQCBzdWIgTmF0aXZlVG9KU1ZhbHVlRE9NQ29udmVydE5lZWRzR2xvYmFsCiAK
IHN1YiBOYXRpdmVUb0pTVmFsdWVVc2luZ1JlZmVyZW5jZXMKIHsKLSAgICBteSAoJGNvbnRleHQs
ICRpbnRlcmZhY2UsICR2YWx1ZSwgJGdsb2JhbE9iamVjdFJlZmVyZW5jZSwgJHN1cHByZXNzRXhj
ZXB0aW9uQ2hlY2spID0gQF87CisgICAgbXkgKCRjb250ZXh0LCAkaW50ZXJmYWNlLCAkdmFsdWUs
ICRnbG9iYWxPYmplY3RSZWZlcmVuY2UsICRzdXBwcmVzc0V4Y2VwdGlvbkNoZWNrLCAkZXhjbHVk
ZU51bGxhYmlsaXR5KSA9IEBfOwogCi0gICAgcmV0dXJuIE5hdGl2ZVRvSlNWYWx1ZSgkY29udGV4
dCwgJGludGVyZmFjZSwgJHZhbHVlLCAic3RhdGUiLCAkZ2xvYmFsT2JqZWN0UmVmZXJlbmNlLCAk
c3VwcHJlc3NFeGNlcHRpb25DaGVjayk7CisgICAgcmV0dXJuIE5hdGl2ZVRvSlNWYWx1ZSgkY29u
dGV4dCwgJGludGVyZmFjZSwgJHZhbHVlLCAic3RhdGUiLCAkZ2xvYmFsT2JqZWN0UmVmZXJlbmNl
LCAkc3VwcHJlc3NFeGNlcHRpb25DaGVjaywgJGV4Y2x1ZGVOdWxsYWJpbGl0eSk7CiB9CiAKICMg
RklYTUU6IFdlIHNob3VsZCByZW1vdmUgTmF0aXZlVG9KU1ZhbHVlVXNpbmdQb2ludGVycyBhbmQg
Y29tYmluZSBOYXRpdmVUb0pTVmFsdWVVc2luZ1JlZmVyZW5jZXMgYW5kIE5hdGl2ZVRvSlNWYWx1
ZQogc3ViIE5hdGl2ZVRvSlNWYWx1ZVVzaW5nUG9pbnRlcnMKIHsKLSAgICBteSAoJGNvbnRleHQs
ICRpbnRlcmZhY2UsICR2YWx1ZSwgJGdsb2JhbE9iamVjdFJlZmVyZW5jZSwgJHN1cHByZXNzRXhj
ZXB0aW9uQ2hlY2spID0gQF87CisgICAgbXkgKCRjb250ZXh0LCAkaW50ZXJmYWNlLCAkdmFsdWUs
ICRnbG9iYWxPYmplY3RSZWZlcmVuY2UsICRzdXBwcmVzc0V4Y2VwdGlvbkNoZWNrLCAkZXhjbHVk
ZU51bGxhYmlsaXR5KSA9IEBfOwogCi0gICAgcmV0dXJuIE5hdGl2ZVRvSlNWYWx1ZSgkY29udGV4
dCwgJGludGVyZmFjZSwgJHZhbHVlLCAiKnN0YXRlIiwgJGdsb2JhbE9iamVjdFJlZmVyZW5jZSwg
JHN1cHByZXNzRXhjZXB0aW9uQ2hlY2spOworICAgIHJldHVybiBOYXRpdmVUb0pTVmFsdWUoJGNv
bnRleHQsICRpbnRlcmZhY2UsICR2YWx1ZSwgIipzdGF0ZSIsICRnbG9iYWxPYmplY3RSZWZlcmVu
Y2UsICRzdXBwcmVzc0V4Y2VwdGlvbkNoZWNrLCAkZXhjbHVkZU51bGxhYmlsaXR5KTsKIH0KIAog
c3ViIElzVmFsaWRDb250ZXh0Rm9yTmF0aXZlVG9KU1ZhbHVlCiB7CiAgICAgbXkgJGNvbnRleHQg
PSBzaGlmdDsKICAgICAKLSAgICByZXR1cm4gcmVmKCRjb250ZXh0KSBlcSAiSURMQXR0cmlidXRl
IiB8fCByZWYoJGNvbnRleHQpIGVxICJJRExPcGVyYXRpb24iIHx8IHJlZigkY29udGV4dCkgZXEg
IklETEFyZ3VtZW50IjsKKyAgICByZXR1cm4gcmVmKCRjb250ZXh0KSBlcSAiSURMQXR0cmlidXRl
IiB8fCByZWYoJGNvbnRleHQpIGVxICJJRExBcmd1bWVudCIgfHwgcmVmKCRjb250ZXh0KSBlcSAi
SURMRGljdGlvbmFyeU1lbWJlciIgfHwgcmVmKCRjb250ZXh0KSBlcSAiSURMT3BlcmF0aW9uIjsK
IH0KIAogc3ViIE5hdGl2ZVRvSlNWYWx1ZQogewotICAgIG15ICgkY29udGV4dCwgJGludGVyZmFj
ZSwgJHZhbHVlLCAkc3RhdGVSZWZlcmVuY2UsICRnbG9iYWxPYmplY3RSZWZlcmVuY2UsICRzdXBw
cmVzc0V4Y2VwdGlvbkNoZWNrKSA9IEBfOworICAgIG15ICgkY29udGV4dCwgJGludGVyZmFjZSwg
JHZhbHVlLCAkc3RhdGVSZWZlcmVuY2UsICRnbG9iYWxPYmplY3RSZWZlcmVuY2UsICRzdXBwcmVz
c0V4Y2VwdGlvbkNoZWNrLCAkZXhjbHVkZU51bGxhYmlsaXR5KSA9IEBfOwogCiAgICAgYXNzZXJ0
KCJJbnZhbGlkIGNvbnRleHQgdHlwZSIpIGlmICFJc1ZhbGlkQ29udGV4dEZvck5hdGl2ZVRvSlNW
YWx1ZSgkY29udGV4dCk7CiAKQEAgLTYzMDcsMTQgKzY0MTIsMTQgQEAgc3ViIE5hdGl2ZVRvSlNW
YWx1ZQogICAgIH0KIAogICAgIEFkZFRvSW1wbEluY2x1ZGVzRm9ySURMVHlwZSgkdHlwZSwgJGNv
bmRpdGlvbmFsKTsKLSAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlNET01Db252ZXJ0LmgiLCAkY29u
ZGl0aW9uYWwpOworICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKU0RPTUdsb2JhbE9iamVjdC5oIiwg
JGNvbmRpdGlvbmFsKSBpZiBOYXRpdmVUb0pTVmFsdWVET01Db252ZXJ0TmVlZHNHbG9iYWxPYmpl
Y3QoJHR5cGUpOwogCiAgICAgaWYgKCRjb250ZXh0LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDaGVj
a1NlY3VyaXR5Rm9yTm9kZX0pIHsKICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTRE9NQmlu
ZGluZ1NlY3VyaXR5LmgiLCAkY29uZGl0aW9uYWwpOwogICAgICAgICAkdmFsdWUgPSAiQmluZGlu
Z1NlY3VyaXR5OjpjaGVja1NlY3VyaXR5Rm9yTm9kZSgkc3RhdGVSZWZlcmVuY2UsICR2YWx1ZSki
OwogICAgIH0KIAotICAgIG15ICRJRExUeXBlID0gR2V0SURMVHlwZSgkaW50ZXJmYWNlLCAkdHlw
ZSk7CisgICAgbXkgJElETFR5cGUgPSAkZXhjbHVkZU51bGxhYmlsaXR5ID8gR2V0SURMVHlwZUV4
Y2x1ZGluZ051bGxhYmlsaXR5KCRpbnRlcmZhY2UsICR0eXBlKSA6IEdldElETFR5cGUoJGludGVy
ZmFjZSwgJHR5cGUpOwogCiAgICAgbXkgQGNvbnZlcnNpb25Bcmd1bWVudHMgPSAoKTsKICAgICBw
dXNoKEBjb252ZXJzaW9uQXJndW1lbnRzLCAkc3RhdGVSZWZlcmVuY2UpIGlmIE5hdGl2ZVRvSlNW
YWx1ZURPTUNvbnZlcnROZWVkc1N0YXRlKCR0eXBlKSB8fCAkbWF5VGhyb3dFeGNlcHRpb247CkBA
IC02NzU0LDggKzY4NTksNiBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3RvckRlZmluaXRpb24KICAg
ICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBhdXRvKiBjYXN0ZWRUaGlzID0ganND
YXN0PCR7Y29uc3RydWN0b3JDbGFzc05hbWV9Kj4oc3RhdGUtPmpzQ2FsbGVlKCkpO1xuIik7CiAg
ICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgQVNTRVJUKGNhc3RlZFRoaXMpO1xu
Iik7CiAKLSAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCI8cnVudGltZS9FcnJvci5oPiIp
OwotCiAgICAgICAgICAgICBHZW5lcmF0ZUFyZ3VtZW50c0NvdW50Q2hlY2soJG91dHB1dEFycmF5
LCAkb3BlcmF0aW9uLCAkaW50ZXJmYWNlLCAiICAgICIpOwogCiAgICAgICAgICAgICBteSAkZnVu
Y3Rpb25JbXBsZW1lbnRhdGlvbk5hbWUgPSAkZ2VuZXJhdGluZ05hbWVkQ29uc3RydWN0b3IgPyAi
Y3JlYXRlRm9ySlNDb25zdHJ1Y3RvciIgOiAiY3JlYXRlIjsKQEAgLTY3NjYsNiArNjg2OSw4IEBA
IHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbgogCiAgICAgICAgICAgICBteSAkSURM
VHlwZSA9IEdldElETFR5cGUoJGludGVyZmFjZSwgJGludGVyZmFjZS0+dHlwZSk7CiAKKyAgICAg
ICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKU0RPTUNvbnZlcnRJbnRlcmZhY2UuaCIpOworCiAg
ICAgICAgICAgICBteSBAY29uc3RydWN0aW9uQ29udmVyc2lvbkFyZ3VtZW50cyA9ICgpOwogICAg
ICAgICAgICAgcHVzaChAY29uc3RydWN0aW9uQ29udmVyc2lvbkFyZ3VtZW50cywgIipzdGF0ZSIp
OwogICAgICAgICAgICAgcHVzaChAY29uc3RydWN0aW9uQ29udmVyc2lvbkFyZ3VtZW50cywgIipj
YXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSIpOwpAQCAtNjk0MCw3ICs3MDQ1LDcgQEAgc3ViIENv
bXB1dGVGdW5jdGlvblNwZWNpYWwKICAgICB9IGVsc2UgewogICAgICAgICBwdXNoKEBzcGVjaWFs
cywgIkpTQzo6RnVuY3Rpb24iKTsKICAgICB9Ci0gICAgaWYgKCRvcGVyYXRpb24tPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJET01KSVQifSkgeworICAgIGlmICgkb3BlcmF0aW9uLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPntET01KSVR9KSB7CiAgICAgICAgIHB1c2goQHNwZWNpYWxzLCAiRE9NSklURnVu
Y3Rpb24iKSBpZiAkb3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntET01KSVR9OwogICAg
IH0KICAgICByZXR1cm4gKEBzcGVjaWFscyA+IDApID8gam9pbigiIHwgIiwgQHNwZWNpYWxzKSA6
ICIwIjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0lu
dGVyZmFjZU5hbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU0ludGVyZmFjZU5hbWUuY3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNJbnRlcmZhY2VOYW1lLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkpTRE9NRXhjZXB0
aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUg
PHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGlu
ZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNNYXBMaWtlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNNYXBMaWtlLmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTTWFwTGlrZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDEz
ICsyNCwxNSBAQAogI2luY2x1ZGUgIkpTRE9NQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiSlNET01C
aW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIK
LSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRBbnkuaCIK
KyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRp
b25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NTWFwTGlrZS5oIgogI2luY2x1ZGUgIkpTRE9N
T3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlIDxi
dWlsdGlucy9CdWlsdGluTmFtZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL0Z1bmN0aW9uUHJvdG90
eXBlLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dl
dFB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlNYXBMaWtlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seU1hcExp
a2UuY3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNSZWFkT25seU1hcExpa2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwx
MyArMjQsMTUgQEAKICNpbmNsdWRlICJKU0RPTUF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkpTRE9N
QmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgi
Ci0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0QW55Lmgi
CisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0
aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTU1hcExpa2UuaCIKICNpbmNsdWRlICJKU0RP
TU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSA8
YnVpbHRpbnMvQnVpbHRpbk5hbWVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblByb3Rv
dHlwZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9H
ZXRQdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3Rp
dmVET01PYmplY3QuY3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjUsMTIgKzI1LDE1IEBACiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5j
bHVkZSAiSlNET01CaW5kaW5nU2VjdXJpdHkuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9y
Tm90Q29uc3RydWN0YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgorI2luY2x1ZGUg
IkpTRE9NQ29udmVydEludGVyZmFjZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bWJlcnMu
aCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNl
cHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAi
SlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJKU05vZGUuaCIKICNpbmNsdWRlIDxydW50
aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+
CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25z
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Q0VSZWFjdGlvbnMuY3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNiwxMiArMjYsMTUgQEAKICNpbmNsdWRlICJKU0RPTUF0dHJpYnV0ZS5o
IgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JO
b3RDb25zdHJ1Y3RhYmxlLmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAi
SlNET01Db252ZXJ0SW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5o
IgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKKyNpbmNsdWRlICJKU0RPTUds
b2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNE
T01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVy
LmgiCiAjaW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPHJ1
bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIEpTQzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdp
Zmllci5jcHAJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjUsMTEgKzI1LDEyIEBACiAjaW5jbHVkZSAiSlNET01BdHRyaWJ1dGUuaCIKICNp
bmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29u
c3RydWN0YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgorI2luY2x1ZGUgIkpTRE9N
Q29udmVydFN0cmluZ3MuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAj
aW5jbHVkZSAiSlNET01PcGVyYXRpb24uaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5o
IgogI2luY2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxydW50
aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKIHVzaW5nIG5hbWVz
cGFjZSBKU0M7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Q2FsbGJhY2tGdW5jdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rpb24uY3BwCShyZXZp
c2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Q2FsbGJhY2tGdW5jdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxLDcgKzIxLDgg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1Rlc3RDYWxsYmFja0Z1bmN0aW9u
LmgiCiAKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRO
dW1iZXJzLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpT
RE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0
LmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uUmV0aHJvdy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdENhbGxiYWNrRnVuY3Rpb25SZXRocm93LmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rp
b25SZXRocm93LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEsOCArMjEsMTEgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJKU1Rlc3RDYWxsYmFja0Z1bmN0aW9uUmV0aHJvdy5oIgog
Ci0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0TnVtYmVy
cy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFNlcXVlbmNlcy5oIgorI2luY2x1ZGUgIkpTRE9N
Q29udmVydFN0cmluZ3MuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCisj
aW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25D
b250ZXh0LmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0FycmF5Lmg+CiAjaW5jbHVkZSA8cnVudGlt
ZS9KU0xvY2suaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uV2l0aFR5cGVkZWZzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5j
dGlvbldpdGhUeXBlZGVmcy5jcHAJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uV2l0aFR5cGVk
ZWZzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEsOCArMjEsMTEgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJKU1Rlc3RDYWxsYmFja0Z1bmN0aW9uV2l0aFR5cGVkZWZzLmgiCiAK
LSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnROdWxsYWJs
ZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bWJlcnMuaCIKKyNpbmNsdWRlICJKU0RPTUNv
bnZlcnRTZXF1ZW5jZXMuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCisj
aW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25D
b250ZXh0LmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0FycmF5Lmg+CiAjaW5jbHVkZSA8cnVudGlt
ZS9KU0xvY2suaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RDYWxsYmFja0ludGVyZmFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrSW50ZXJmYWNlLmNwcAko
cmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdENhbGxiYWNrSW50ZXJmYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTIg
KzI1LDIwIEBACiAjaW5jbHVkZSAiSlNUZXN0Q2FsbGJhY2tJbnRlcmZhY2UuaCIKIAogI2luY2x1
ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCisjaW5jbHVkZSAiSlNET01D
b252ZXJ0Qm9vbGVhbi5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEJ1ZmZlclNvdXJjZS5oIgor
I2luY2x1ZGUgIkpTRE9NQ29udmVydEludGVyZmFjZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVy
dE51bWJlcnMuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTZXJpYWxpemVkU2NyaXB0VmFsdWUu
aCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNl
cHRpb25IYW5kbGluZy5oIgorI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiSlNET01TdHJpbmdMaXN0LmgiCiAjaW5jbHVkZSAiSlNUZXN0Tm9kZS5oIgogI2luY2x1ZGUg
IlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFs
dWUuaCIKICNpbmNsdWRlIDxydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8
cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KICNpbmNs
dWRlIDxydW50aW1lL0pTU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2Fs
bGJhY2tJbnRlcmZhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tJbnRlcmZhY2UuaAkocmV2aXNpb24gMjE4Mjk5
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxi
YWNrSW50ZXJmYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDggQEAKICNpbmNsdWRl
ICJBY3RpdmVET01DYWxsYmFjay5oIgogI2luY2x1ZGUgIklETFR5cGVzLmgiCiAjaW5jbHVkZSAi
SlNDYWxsYmFja0RhdGEuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJK
U0RPTUNvbnZlcnREaWN0aW9uYXJ5LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0RW51bWVyYXRp
b24uaCIKICNpbmNsdWRlICJUZXN0Q2FsbGJhY2tJbnRlcmZhY2UuaCIKICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhK
U0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25z
dHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJK
U0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgIlRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25z
dHJ1Y3RvckJ1aWx0aW5zLmgiCiAjaW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5o
PgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIu
aD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9i
amVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmNwcAko
cmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFu
ZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgPHJ1bnRp
bWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4K
ICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RE9NSklULmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RE9NSklULmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4
LDEzICsyOCwyMCBAQAogI2luY2x1ZGUgIkpTRE9NQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiSlNE
T01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUu
aCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRBbnku
aCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRCb29sZWFuLmgiCisjaW5jbHVkZSAiSlNET01Db252
ZXJ0SW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0TnVsbGFibGUuaCIKKyNpbmNs
dWRlICJKU0RPTUNvbnZlcnROdW1iZXJzLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5n
cy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKKyNpbmNsdWRlICJKU0RP
TUdsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAi
SlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJKU0VsZW1lbnQuaCIKICNpbmNsdWRlICJK
U05vZGVMaXN0LmgiCiAjaW5jbHVkZSA8aW50ZXJwcmV0ZXIvRnJhbWVUcmFjZXJzLmg+CisjaW5j
bHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50
Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI0LDkgKzI0LDEyIEBACiAjaW5jbHVkZSAiSlNET01BdHRyaWJ1dGUuaCIKICNp
bmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yLmgiCisj
aW5jbHVkZSAiSlNET01Db252ZXJ0Qm9vbGVhbi5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydElu
dGVyZmFjZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFN0cmluZ3MuaCIKICNpbmNsdWRlICJK
U0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIK
LSNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVz
Lmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29u
c3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiAyMTgyOTkpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1
Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMCw3ICsyMCw3IEBACiAKICNwcmFnbWEgb25jZQog
Ci0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0RGljdGlv
bmFyeS5oIgogI2luY2x1ZGUgIkpTRXZlbnQuaCIKICNpbmNsdWRlICJUZXN0RXZlbnRDb25zdHJ1
Y3Rvci5oIgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0RXZlbnRUYXJnZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAJKHJldmlzaW9uIDIxODI5
OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVu
dFRhcmdldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDExICsyNCwxNCBAQAogI2luY2x1ZGUg
IkpTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAj
aW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJK
U0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRJbnRlcmZhY2UuaCIKKyNpbmNs
dWRlICJKU0RPTUNvbnZlcnROdW1iZXJzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5k
bGluZy5oIgorI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNET01P
cGVyYXRpb24uaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgIkpT
Tm9kZS5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRp
bWUvUHJvcGVydHlOYW1lQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RFeGNlcHRpb24uY3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjQsMTAgKzI0LDExIEBACiAjaW5jbHVkZSAiSlNET01BdHRyaWJ1dGUuaCIKICNp
bmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29u
c3RydWN0YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgorI2luY2x1ZGUgIkpTRE9N
Q29udmVydFN0cmluZ3MuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAj
aW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlIDxydW50aW1lL0Z1bmN0aW9u
UHJvdG90eXBlLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8
d3RmL0dldFB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFi
bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxMiArMjQsMTMgQEAKICNpbmNsdWRlICJKU0RP
TUF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9N
Q29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0Lmgi
CisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0
aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUg
IlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgiCiAjaW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUg
PHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIEpTQzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwCShyZXZpc2lv
biAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0R2xvYmFsT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsOSBAQAogI2lu
Y2x1ZGUgIkpTRE9NQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5j
bHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RP
TUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRCb29sZWFuLmgiCisjaW5jbHVkZSAi
SlNET01Db252ZXJ0TnVtYmVycy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFN0cmluZ3MuaCIK
ICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNET01PcGVy
YXRpb24uaCIKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvblJldHVybmluZ1Byb21pc2UuaCIKQEAg
LTMzLDYgKzM1LDcgQEAKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5j
bHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Q
cm90b3R5cGUuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3
dGYvR2V0UHRyLmg+CiAKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQpJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50
aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAkocmV2aXNpb24gMjE4
Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMywxMSArMjMs
MTIgQEAKIAogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3Ry
dWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5j
bHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFu
ZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgIlVSTC5o
IgogI2luY2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxydW50
aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL1Byb3BlcnR5TmFtZUFycmF5Lmg+
CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAkocmV2aXNpb24gMjE4Mjk5
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDExICsy
MywxMiBAQAogCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25z
dHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNp
bmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25I
YW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSAiVVJM
LmgiCiAjaW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPHJ1
bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXku
aD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCShyZXZpc2lvbiAyMTgyOTkpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNl
dHRlcldpdGhJZGVudGlmaWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTIgKzIzLDE0IEBA
CiAKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9y
Tm90Q29uc3RydWN0YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgorI2luY2x1ZGUg
IkpTRE9NQ29udmVydE51bWJlcnMuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgi
CiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NT3Bl
cmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJVUkwu
aCIKICNpbmNsdWRlIDxydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8cnVu
dGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5o
PgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAJ
KHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNywyMCArMjcsMjYg
QEAKICNpbmNsdWRlICJKU0RPTUF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5o
IgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3IuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQu
aCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJKU0RPTUV4
Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNET01PcGVyYXRpb24uaCIKICNpbmNsdWRl
ICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgIlRlc3RTdXBwbGVtZW50YWwuaCIKLSNp
bmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CiAjaW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblByb3Rv
dHlwZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9H
ZXRQdHIuaD4KIAorI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTEp
IHx8IEVOQUJMRShDb25kaXRpb24xMikgfHwgRU5BQkxFKENvbmRpdGlvbjIpIHx8IEVOQUJMRShD
b25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQorI2luY2x1ZGUgIkpTRE9NQ29udmVy
dFN0cmluZ3MuaCIKKyNlbmRpZgorCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUo
Q29uZGl0aW9uMTIpCiAjaW5jbHVkZSAiVGVzdFN1cHBsZW1lbnRhbEJ1aWx0aW5zLmgiCiAjZW5k
aWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKSB8fCBF
TkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKKyNpbmNsdWRlICJKU0RP
TUNvbnZlcnROdW1iZXJzLmgiCisjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKICNpbmNs
dWRlICJKU05vZGUuaCIKICNpbmNsdWRlICJKU1Rlc3RPYmouaCIKICNlbmRpZgpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZUxlYWRp
bmdVbmRlcnNjb3JlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuY3BwCShyZXZp
c2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
NCwxMCArMjQsMTEgQEAKICNpbmNsdWRlICJKU0RPTUF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkpT
RE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxl
LmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3Ry
aW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJK
U0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUu
aD4KKyNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRy
Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJdGVyYWJsZS5jcHAJKHJl
dmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RJdGVyYWJsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNp
bmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgPGJ1aWx0aW5zL0J1aWx0aW5O
YW1lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRl
IDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBKU0M7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RKU0J1aWx0aW5Db25zdHJ1
Y3Rvci5jcHAJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2lu
Y2x1ZGUgIlRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckJ1aWx0aW5zLmgiCiAjaW5jbHVkZSA8cnVu
dGltZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5o
PgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAJKHJldmlzaW9u
IDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTIgKzIz
LDE0IEBACiAKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0
cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgorI2lu
Y2x1ZGUgIkpTRE9NQ29udmVydENhbGxiYWNrcy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9u
SGFuZGxpbmcuaCIKKyNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpT
RE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRl
ICJKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCIKICNpbmNsdWRlIDxydW50aW1lL0Z1bmN0aW9u
UHJvdG90eXBlLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8
d3RmL0dldFB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5v
SWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAJ
KHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNCwxMSArMjQsMTIgQEAKICNpbmNsdWRlICJKU0RPTUFic3RyYWN0T3BlcmF0
aW9ucy5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3Ry
dWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5j
bHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFu
ZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgIlVSTC5o
IgogI2luY2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxydW50
aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL1Byb3BlcnR5TmFtZUFycmF5Lmg+
CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJ
KHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI0LDExICsyNCwxMiBAQAogI2luY2x1ZGUgIkpTRE9NQWJzdHJhY3RP
cGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01D
b25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIK
KyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRp
b25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSAi
VVJMLmgiCiAjaW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUg
PHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvUHJvcGVydHlOYW1lQXJy
YXkuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAko
cmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjQsMTIgKzI0LDE0IEBACiAjaW5jbHVkZSAiSlNET01BYnN0cmFjdE9wZXJh
dGlvbnMuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0
cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgorI2lu
Y2x1ZGUgIkpTRE9NQ29udmVydE51bWJlcnMuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJp
bmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpT
RE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRl
ICJVUkwuaCIKICNpbmNsdWRlIDxydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVk
ZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Qcm9wZXJ0eU5hbWVB
cnJheS5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KIApJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMywxMiArMjMsMTMgQEAKIAogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5o
IgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCi0jaW5jbHVk
ZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0SW50ZXJmYWNlLmgiCisj
aW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9u
SGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTU5hbWVkQ29uc3RydWN0b3IuaCIKICNpbmNsdWRl
ICJKU0RPTVdyYXBwZXJDYWNoZS5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KICNpbmNs
dWRlIDxydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0NJ
bmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgSlND
OwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5j
cHAJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNCwxMCArMjQsMTEgQEAKICNpbmNsdWRlICJKU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JO
b3RDb25zdHJ1Y3RhYmxlLmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAi
SlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcu
aCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRnVu
Y3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNs
dWRlIDx3dGYvR2V0UHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyVGhyb3dp
bmdFeGNlcHRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJKHJl
dmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI0LDEwICsyNCwxMSBAQAogI2luY2x1ZGUgIkpTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgi
CiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5v
dENvbnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJK
U0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5o
IgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSA8cnVudGltZS9GdW5j
dGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1
ZGUgPHd0Zi9HZXRQdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRl
bnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNwcAkocmV2aXNpb24g
MjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsMTEg
KzI0LDEyIEBACiAjaW5jbHVkZSAiSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaCIKICNpbmNsdWRl
ICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0
YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVy
dFN0cmluZ3MuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVk
ZSAiSlNET01PcGVyYXRpb24uaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pT
Q0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBK
U0M7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5k
ZXhlZEdldHRlci5jcHAJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDExICsyNCwxMiBAQAogI2luY2x1ZGUgIkpTRE9NQWJz
dHJhY3RPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAi
SlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZl
cnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01F
eGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5j
bHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvUHJvcGVydHlO
YW1lQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmll
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAkocmV2aXNpb24gMjE4Mjk5KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0
dGVyTm9JZGVudGlmaWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsMTAgKzI0LDExIEBACiAj
aW5jbHVkZSAiSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRp
bmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgotI2lu
Y2x1ZGUgIkpTRE9NQ29udmVydC5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFN0cmluZ3MuaCIK
ICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNET01XcmFw
cGVyQ2FjaGUuaCIKICNpbmNsdWRlIDxydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5j
bHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogCiB1
c2luZyBuYW1lc3BhY2UgSlNDOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dp
bmdFeGNlcHRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxMCArMjQsMTEgQEAKICNpbmNs
dWRlICJKU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5o
IgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCi0jaW5jbHVk
ZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2lu
Y2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJD
YWNoZS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRl
IDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBKU0M7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVy
V2l0aElkZW50aWZpZXIuY3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDExICsyNCwxMiBAQAogI2luY2x1ZGUgIkpTRE9NQWJz
dHJhY3RPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAi
SlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZl
cnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01F
eGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVk
ZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlIDxydW50aW1lL0Z1bmN0aW9uUHJvdG90
eXBlLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dl
dFB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRp
bnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zLmNwcAkocmV2aXNpb24g
MjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
NCwxMCArMjQsMTEgQEAKICNpbmNsdWRlICJKU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oIgogI2lu
Y2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25z
dHJ1Y3RhYmxlLmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01D
b252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNp
bmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Q
cm90b3R5cGUuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3
dGYvR2V0UHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJs
ZVByb3BlcnRpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcy5j
cHAJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI1LDExICsyNSwxMiBAQAogI2luY2x1ZGUgIkpTRE9NQXR0cmlidXRl
LmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rv
ck5vdENvbnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRl
ICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGlu
Zy5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVy
Q2FjaGUuaCIKICNpbmNsdWRlIDxydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVk
ZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogCiB1c2lu
ZyBuYW1lc3BhY2UgSlNDOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJp
ZGVCdWlsdGlucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5k
T3ZlcnJpZGVCdWlsdGlucy5jcHAJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxl
UHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwx
MSArMjUsMTIgQEAKICNpbmNsdWRlICJKU0RPTUF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkpTRE9N
QmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgi
Ci0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5n
cy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RP
TU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSA8
cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5l
cy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Tm9kZS5jcHAJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQs
NyArMjQsOSBAQAogI2luY2x1ZGUgIkpTRE9NQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiSlNET01C
aW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvci5oIgotI2luY2x1ZGUgIkpTRE9N
Q29udmVydC5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEJvb2xlYW4uaCIKKyNpbmNsdWRlICJK
U0RPTUNvbnZlcnRJbnRlcmZhY2UuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgi
CiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NSXRl
cmF0b3IuaCIKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgpAQCAtMzMsNyArMzUsNyBAQAog
I2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVj
dXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSA8YnVpbHRpbnMvQnVpbHRpbk5hbWVzLmg+Ci0jaW5j
bHVkZSA8cnVudGltZS9FcnJvci5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgog
I2luY2x1ZGUgPHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvR2V0
UHRyLmg+CiAKQEAgLTM4NiwxMiArMzg4LDEyIEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3QKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5vZGU+OjpjYWxs
PGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkZvckVhY2hDYWxsZXI+KCpzdGF0ZSwgImZvckVh
Y2giKTsKIH0KIAotSlNDOjpKU09iamVjdCogSlNUZXN0Tm9kZTo6c2VyaWFsaXplKEV4ZWNTdGF0
ZSogc3RhdGUsIEpTVGVzdE5vZGUqIHRoaXNPYmplY3QsIFRocm93U2NvcGUmIHRocm93U2NvcGUp
CitKU0M6OkpTT2JqZWN0KiBKU1Rlc3ROb2RlOjpzZXJpYWxpemUoRXhlY1N0YXRlJiBzdGF0ZSwg
SlNUZXN0Tm9kZSYgdGhpc09iamVjdCwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwg
VGhyb3dTY29wZSYgdGhyb3dTY29wZSkKIHsKLSAgICBhdXRvJiB2bSA9IHN0YXRlLT52bSgpOwot
ICAgIGF1dG8qIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KHN0YXRlKTsKKyAgICBhdXRv
JiB2bSA9IHN0YXRlLnZtKCk7CisgICAgYXV0byogcmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmpl
Y3QoJnN0YXRlLCBnbG9iYWxPYmplY3Qub2JqZWN0UHJvdG90eXBlKCkpOwogCi0gICAgYXV0byBu
YW1lVmFsdWUgPSBqc1Rlc3ROb2RlTmFtZUdldHRlcigqc3RhdGUsICp0aGlzT2JqZWN0LCB0aHJv
d1Njb3BlKTsKKyAgICBhdXRvIG5hbWVWYWx1ZSA9IGpzVGVzdE5vZGVOYW1lR2V0dGVyKHN0YXRl
LCB0aGlzT2JqZWN0LCB0aHJvd1Njb3BlKTsKICAgICB0aHJvd1Njb3BlLmFzc2VydE5vRXhjZXB0
aW9uKCk7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmco
JnZtLCAibmFtZSIpLCBuYW1lVmFsdWUpOwogCkBAIC00MDAsNyArNDAyLDcgQEAgSlNDOjpKU09i
amVjdCogSlNUZXN0Tm9kZTo6c2VyaWFsaXplKEV4ZQogCiBzdGF0aWMgaW5saW5lIEVuY29kZWRK
U1ZhbHVlIGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblRvSlNPTkJvZHkoRXhlY1N0YXRlKiBz
dGF0ZSwgSlNUZXN0Tm9kZSogdGhpc09iamVjdCwgSlNDOjpUaHJvd1Njb3BlJiB0aHJvd1Njb3Bl
KQogewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0Tm9kZTo6c2VyaWFsaXplKHN0
YXRlLCB0aGlzT2JqZWN0LCB0aHJvd1Njb3BlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKU1Rlc3ROb2RlOjpzZXJpYWxpemUoKnN0YXRlLCAqdGhpc09iamVjdCwgKnRoaXNPYmplY3Qt
Pmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVG9KU09OKEV4ZWNTdGF0ZSogc3Rh
dGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Tm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROb2RlLmgJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3
LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0
Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICBz
dGF0aWMgSlNDOjpKU09iamVjdCogc2VyaWFsaXplKEpTQzo6RXhlY1N0YXRlKiwgSlNUZXN0Tm9k
ZSogdGhpc09iamVjdCwgSlNDOjpUaHJvd1Njb3BlJik7CisgICAgc3RhdGljIEpTQzo6SlNPYmpl
Y3QqIHNlcmlhbGl6ZShKU0M6OkV4ZWNTdGF0ZSYsIEpTVGVzdE5vZGUmIHRoaXNPYmplY3QsIEpT
RE9NR2xvYmFsT2JqZWN0JiwgSlNDOjpUaHJvd1Njb3BlJik7CiAgICAgVGVzdE5vZGUmIHdyYXBw
ZWQoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRlc3ROb2RlJj4o
QmFzZTo6d3JhcHBlZCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPYmouY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzAsOCArMzAsMjQgQEAKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIK
ICNpbmNsdWRlICJKU0RPTUJpbmRpbmdTZWN1cml0eS5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3Ry
dWN0b3IuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRBbnkuaCIKKyNpbmNsdWRlICJKU0RPTUNv
bnZlcnRCb29sZWFuLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0QnVmZmVyU291cmNlLmgiCisj
aW5jbHVkZSAiSlNET01Db252ZXJ0Q2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0
RXZlbnRMaXN0ZW5lci5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEludGVyZmFjZS5oIgorI2lu
Y2x1ZGUgIkpTRE9NQ29udmVydE51bGxhYmxlLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0TnVt
YmVycy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydE9iamVjdC5oIgorI2luY2x1ZGUgIkpTRE9N
Q29udmVydFJlY29yZC5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFNlcXVlbmNlcy5oIgorI2lu
Y2x1ZGUgIkpTRE9NQ29udmVydFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgIkpT
RE9NQ29udmVydFN0cmluZ3MuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRVbmlvbi5oIgogI2lu
Y2x1ZGUgIkpTRE9NQ29udmVydFZhcmlhZGljLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0WFBh
dGhOU1Jlc29sdmVyLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgorI2lu
Y2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNET01JdGVyYXRvci5oIgog
I2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01PcGVyYXRpb25SZXR1
cm5pbmdQcm9taXNlLmgiCkBAIC02NSwxMCArODEsMTEgQEAKICNpbmNsdWRlIDxidWlsdGlucy9C
dWlsdGluTmFtZXMuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0QXJndW1lbnRzLmg+CiAj
aW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuaD4KLSNpbmNsdWRlIDxy
dW50aW1lL0Vycm9yLmg+CisjaW5jbHVkZSA8cnVudGltZS9BcnJheVByb3RvdHlwZS5oPgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KICNpbmNsdWRlIDxydW50aW1lL0l0
ZXJhdG9yT3BlcmF0aW9ucy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNBcnJheS5oPgorI2luY2x1
ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNTdHJpbmcuaD4K
ICNpbmNsdWRlIDxydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmg+CiAjaW5jbHVkZSA8cnVudGlt
ZS9Qcm9wZXJ0eU5hbWVBcnJheS5oPgpAQCAtNjE0LDcgKzYzMSw3IEBAIEpTQzo6SlNPYmplY3Qq
IGNvbnZlcnREaWN0aW9uYXJ5VG9KUyhKU0MKIHsKICAgICBhdXRvJiB2bSA9IHN0YXRlLnZtKCk7
CiAKLSAgICBhdXRvIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KCZzdGF0ZSk7CisgICAg
YXV0byByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdCgmc3RhdGUsIGdsb2JhbE9iamVjdC5v
YmplY3RQcm90b3R5cGUoKSk7CiAKICAgICBpZiAoIUlETFNlcXVlbmNlPElETENsYW1wQWRhcHRv
cjxJRExMb25nPj46OmlzTnVsbFZhbHVlKGRpY3Rpb25hcnkuYW5ub3RhdGVkVHlwZUluU2VxdWVu
Y2VNZW1iZXIpKSB7CiAgICAgICAgIGF1dG8gYW5ub3RhdGVkVHlwZUluU2VxdWVuY2VNZW1iZXJW
YWx1ZSA9IHRvSlM8SURMU2VxdWVuY2U8SURMQ2xhbXBBZGFwdG9yPElETExvbmc+Pj4oc3RhdGUs
IGdsb2JhbE9iamVjdCwgSURMU2VxdWVuY2U8SURMQ2xhbXBBZGFwdG9yPElETExvbmc+Pjo6ZXh0
cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRpY3Rpb25hcnkuYW5ub3RhdGVkVHlwZUluU2VxdWVuY2VN
ZW1iZXIpKTsKQEAgLTYyNCw5NiArNjQxLDk2IEBAIEpTQzo6SlNPYmplY3QqIGNvbnZlcnREaWN0
aW9uYXJ5VG9KUyhKU0MKICAgICAgICAgYXV0byBhbm5vdGF0ZWRUeXBlSW5Vbmlvbk1lbWJlclZh
bHVlID0gdG9KUzxJRExVbmlvbjxJRExET01TdHJpbmcsIElETENsYW1wQWRhcHRvcjxJRExMb25n
Pj4+KHN0YXRlLCBnbG9iYWxPYmplY3QsIElETFVuaW9uPElETERPTVN0cmluZywgSURMQ2xhbXBB
ZGFwdG9yPElETExvbmc+Pjo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRpY3Rpb25hcnkuYW5u
b3RhdGVkVHlwZUluVW5pb25NZW1iZXIpKTsKICAgICAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0s
IEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJhbm5vdGF0ZWRUeXBlSW5Vbmlvbk1l
bWJlciIpLCBhbm5vdGF0ZWRUeXBlSW5Vbmlvbk1lbWJlclZhbHVlKTsKICAgICB9Ci0gICAgYXV0
byBhbnlUeXBlZGVmVmFsdWVWYWx1ZSA9IHRvSlM8SURMQW55PihzdGF0ZSwgZ2xvYmFsT2JqZWN0
LCBkaWN0aW9uYXJ5LmFueVR5cGVkZWZWYWx1ZSk7CisgICAgYXV0byBhbnlUeXBlZGVmVmFsdWVW
YWx1ZSA9IHRvSlM8SURMQW55PihkaWN0aW9uYXJ5LmFueVR5cGVkZWZWYWx1ZSk7CiAgICAgcmVz
dWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJhbnlU
eXBlZGVmVmFsdWUiKSwgYW55VHlwZWRlZlZhbHVlVmFsdWUpOwotICAgIGF1dG8gYW55VmFsdWVW
YWx1ZSA9IHRvSlM8SURMQW55PihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBkaWN0aW9uYXJ5LmFueVZh
bHVlKTsKKyAgICBhdXRvIGFueVZhbHVlVmFsdWUgPSB0b0pTPElETEFueT4oZGljdGlvbmFyeS5h
bnlWYWx1ZSk7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJv
bVN0cmluZygmdm0sICJhbnlWYWx1ZSIpLCBhbnlWYWx1ZVZhbHVlKTsKLSAgICBhdXRvIGFueVZh
bHVlV2l0aE51bGxEZWZhdWx0VmFsdWUgPSB0b0pTPElETEFueT4oc3RhdGUsIGdsb2JhbE9iamVj
dCwgZGljdGlvbmFyeS5hbnlWYWx1ZVdpdGhOdWxsRGVmYXVsdCk7CisgICAgYXV0byBhbnlWYWx1
ZVdpdGhOdWxsRGVmYXVsdFZhbHVlID0gdG9KUzxJRExBbnk+KGRpY3Rpb25hcnkuYW55VmFsdWVX
aXRoTnVsbERlZmF1bHQpOwogICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZp
ZXI6OmZyb21TdHJpbmcoJnZtLCAiYW55VmFsdWVXaXRoTnVsbERlZmF1bHQiKSwgYW55VmFsdWVX
aXRoTnVsbERlZmF1bHRWYWx1ZSk7Ci0gICAgYXV0byBib29sZWFuV2l0aERlZmF1bHRWYWx1ZSA9
IHRvSlM8SURMQm9vbGVhbj4oc3RhdGUsIGdsb2JhbE9iamVjdCwgZGljdGlvbmFyeS5ib29sZWFu
V2l0aERlZmF1bHQpOworICAgIGF1dG8gYm9vbGVhbldpdGhEZWZhdWx0VmFsdWUgPSB0b0pTPElE
TEJvb2xlYW4+KGRpY3Rpb25hcnkuYm9vbGVhbldpdGhEZWZhdWx0KTsKICAgICByZXN1bHQtPnB1
dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImJvb2xlYW5XaXRo
RGVmYXVsdCIpLCBib29sZWFuV2l0aERlZmF1bHRWYWx1ZSk7CiAgICAgaWYgKCFJRExCb29sZWFu
Ojppc051bGxWYWx1ZShkaWN0aW9uYXJ5LmJvb2xlYW5XaXRob3V0RGVmYXVsdCkpIHsKLSAgICAg
ICAgYXV0byBib29sZWFuV2l0aG91dERlZmF1bHRWYWx1ZSA9IHRvSlM8SURMQm9vbGVhbj4oc3Rh
dGUsIGdsb2JhbE9iamVjdCwgSURMQm9vbGVhbjo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRp
Y3Rpb25hcnkuYm9vbGVhbldpdGhvdXREZWZhdWx0KSk7CisgICAgICAgIGF1dG8gYm9vbGVhbldp
dGhvdXREZWZhdWx0VmFsdWUgPSB0b0pTPElETEJvb2xlYW4+KElETEJvb2xlYW46OmV4dHJhY3RW
YWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LmJvb2xlYW5XaXRob3V0RGVmYXVsdCkpOwogICAg
ICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2
bSwgImJvb2xlYW5XaXRob3V0RGVmYXVsdCIpLCBib29sZWFuV2l0aG91dERlZmF1bHRWYWx1ZSk7
CiAgICAgfQogICAgIGlmICghSURMQnVmZmVyU291cmNlOjppc051bGxWYWx1ZShkaWN0aW9uYXJ5
LmJ1ZmZlclNvdXJjZVZhbHVlKSkgewotICAgICAgICBhdXRvIGJ1ZmZlclNvdXJjZVZhbHVlVmFs
dWUgPSB0b0pTPElETEJ1ZmZlclNvdXJjZT4oc3RhdGUsIGdsb2JhbE9iamVjdCwgSURMQnVmZmVy
U291cmNlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUoZGljdGlvbmFyeS5idWZmZXJTb3VyY2VW
YWx1ZSkpOworICAgICAgICBhdXRvIGJ1ZmZlclNvdXJjZVZhbHVlVmFsdWUgPSB0b0pTPElETEJ1
ZmZlclNvdXJjZT4oSURMQnVmZmVyU291cmNlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUoZGlj
dGlvbmFyeS5idWZmZXJTb3VyY2VWYWx1ZSkpOwogICAgICAgICByZXN1bHQtPnB1dERpcmVjdCh2
bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImJ1ZmZlclNvdXJjZVZhbHVlIiks
IGJ1ZmZlclNvdXJjZVZhbHVlVmFsdWUpOwogICAgIH0KICAgICBpZiAoIUlETERpY3Rpb25hcnk8
VGVzdE9iajo6RGljdGlvbmFyeVRoYXRTaG91bGRUb2xlcmF0ZU51bGw+Ojppc051bGxWYWx1ZShk
aWN0aW9uYXJ5LmRpY3Rpb25hcnlNZW1iZXIpKSB7CiAgICAgICAgIGF1dG8gZGljdGlvbmFyeU1l
bWJlclZhbHVlID0gdG9KUzxJRExEaWN0aW9uYXJ5PFRlc3RPYmo6OkRpY3Rpb25hcnlUaGF0U2hv
dWxkVG9sZXJhdGVOdWxsPj4oc3RhdGUsIGdsb2JhbE9iamVjdCwgSURMRGljdGlvbmFyeTxUZXN0
T2JqOjpEaWN0aW9uYXJ5VGhhdFNob3VsZFRvbGVyYXRlTnVsbD46OmV4dHJhY3RWYWx1ZUZyb21O
dWxsYWJsZShkaWN0aW9uYXJ5LmRpY3Rpb25hcnlNZW1iZXIpKTsKICAgICAgICAgcmVzdWx0LT5w
dXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJkaWN0aW9uYXJ5
TWVtYmVyIiksIGRpY3Rpb25hcnlNZW1iZXJWYWx1ZSk7CiAgICAgfQotICAgIGF1dG8gZW51bWVy
YXRpb25WYWx1ZVdpdGhEZWZhdWx0VmFsdWUgPSB0b0pTPElETEVudW1lcmF0aW9uPFRlc3RPYmo6
OkVudW1UeXBlPj4oc3RhdGUsIGdsb2JhbE9iamVjdCwgZGljdGlvbmFyeS5lbnVtZXJhdGlvblZh
bHVlV2l0aERlZmF1bHQpOworICAgIGF1dG8gZW51bWVyYXRpb25WYWx1ZVdpdGhEZWZhdWx0VmFs
dWUgPSB0b0pTPElETEVudW1lcmF0aW9uPFRlc3RPYmo6OkVudW1UeXBlPj4oc3RhdGUsIGRpY3Rp
b25hcnkuZW51bWVyYXRpb25WYWx1ZVdpdGhEZWZhdWx0KTsKICAgICByZXN1bHQtPnB1dERpcmVj
dCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImVudW1lcmF0aW9uVmFsdWVX
aXRoRGVmYXVsdCIpLCBlbnVtZXJhdGlvblZhbHVlV2l0aERlZmF1bHRWYWx1ZSk7Ci0gICAgYXV0
byBlbnVtZXJhdGlvblZhbHVlV2l0aEVtcHR5U3RyaW5nRGVmYXVsdFZhbHVlID0gdG9KUzxJRExF
bnVtZXJhdGlvbjxUZXN0T2JqOjpFbnVtVHlwZT4+KHN0YXRlLCBnbG9iYWxPYmplY3QsIGRpY3Rp
b25hcnkuZW51bWVyYXRpb25WYWx1ZVdpdGhFbXB0eVN0cmluZ0RlZmF1bHQpOworICAgIGF1dG8g
ZW51bWVyYXRpb25WYWx1ZVdpdGhFbXB0eVN0cmluZ0RlZmF1bHRWYWx1ZSA9IHRvSlM8SURMRW51
bWVyYXRpb248VGVzdE9iajo6RW51bVR5cGU+PihzdGF0ZSwgZGljdGlvbmFyeS5lbnVtZXJhdGlv
blZhbHVlV2l0aEVtcHR5U3RyaW5nRGVmYXVsdCk7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0s
IEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJlbnVtZXJhdGlvblZhbHVlV2l0aEVt
cHR5U3RyaW5nRGVmYXVsdCIpLCBlbnVtZXJhdGlvblZhbHVlV2l0aEVtcHR5U3RyaW5nRGVmYXVs
dFZhbHVlKTsKICAgICBpZiAoIUlETEVudW1lcmF0aW9uPFRlc3RPYmo6OkVudW1UeXBlPjo6aXNO
dWxsVmFsdWUoZGljdGlvbmFyeS5lbnVtZXJhdGlvblZhbHVlV2l0aG91dERlZmF1bHQpKSB7Ci0g
ICAgICAgIGF1dG8gZW51bWVyYXRpb25WYWx1ZVdpdGhvdXREZWZhdWx0VmFsdWUgPSB0b0pTPElE
TEVudW1lcmF0aW9uPFRlc3RPYmo6OkVudW1UeXBlPj4oc3RhdGUsIGdsb2JhbE9iamVjdCwgSURM
RW51bWVyYXRpb248VGVzdE9iajo6RW51bVR5cGU+OjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUo
ZGljdGlvbmFyeS5lbnVtZXJhdGlvblZhbHVlV2l0aG91dERlZmF1bHQpKTsKKyAgICAgICAgYXV0
byBlbnVtZXJhdGlvblZhbHVlV2l0aG91dERlZmF1bHRWYWx1ZSA9IHRvSlM8SURMRW51bWVyYXRp
b248VGVzdE9iajo6RW51bVR5cGU+PihzdGF0ZSwgSURMRW51bWVyYXRpb248VGVzdE9iajo6RW51
bVR5cGU+OjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUoZGljdGlvbmFyeS5lbnVtZXJhdGlvblZh
bHVlV2l0aG91dERlZmF1bHQpKTsKICAgICAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6
SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJlbnVtZXJhdGlvblZhbHVlV2l0aG91dERlZmF1
bHQiKSwgZW51bWVyYXRpb25WYWx1ZVdpdGhvdXREZWZhdWx0VmFsdWUpOwogICAgIH0KLSAgICBh
dXRvIGZvb0FsaWFzVmFsdWUgPSB0b0pTPElETEFueT4oc3RhdGUsIGdsb2JhbE9iamVjdCwgZGlj
dGlvbmFyeS5mb28pOworICAgIGF1dG8gZm9vQWxpYXNWYWx1ZSA9IHRvSlM8SURMQW55PihkaWN0
aW9uYXJ5LmZvbyk7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6
ZnJvbVN0cmluZygmdm0sICJmb29BbGlhcyIpLCBmb29BbGlhc1ZhbHVlKTsKLSAgICBhdXRvIGZv
b1dpdGhEZWZhdWx0QWxpYXNWYWx1ZSA9IHRvSlM8SURMQW55PihzdGF0ZSwgZ2xvYmFsT2JqZWN0
LCBkaWN0aW9uYXJ5LmZvb1dpdGhEZWZhdWx0KTsKKyAgICBhdXRvIGZvb1dpdGhEZWZhdWx0QWxp
YXNWYWx1ZSA9IHRvSlM8SURMQW55PihkaWN0aW9uYXJ5LmZvb1dpdGhEZWZhdWx0KTsKICAgICBy
ZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImZv
b1dpdGhEZWZhdWx0QWxpYXMiKSwgZm9vV2l0aERlZmF1bHRBbGlhc1ZhbHVlKTsKICAgICBpZiAo
IUlETExvbmc6OmlzTnVsbFZhbHVlKGRpY3Rpb25hcnkuaW50ZWdlcikpIHsKLSAgICAgICAgYXV0
byBpbnRlZ2VyVmFsdWUgPSB0b0pTPElETExvbmc+KHN0YXRlLCBnbG9iYWxPYmplY3QsIElETExv
bmc6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LmludGVnZXIpKTsKKyAgICAg
ICAgYXV0byBpbnRlZ2VyVmFsdWUgPSB0b0pTPElETExvbmc+KElETExvbmc6OmV4dHJhY3RWYWx1
ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LmludGVnZXIpKTsKICAgICAgICAgcmVzdWx0LT5wdXRE
aXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJpbnRlZ2VyIiksIGlu
dGVnZXJWYWx1ZSk7CiAgICAgfQotICAgIGF1dG8gaW50ZWdlcldpdGhEZWZhdWx0VmFsdWUgPSB0
b0pTPElETExvbmc+KHN0YXRlLCBnbG9iYWxPYmplY3QsIGRpY3Rpb25hcnkuaW50ZWdlcldpdGhE
ZWZhdWx0KTsKKyAgICBhdXRvIGludGVnZXJXaXRoRGVmYXVsdFZhbHVlID0gdG9KUzxJRExMb25n
PihkaWN0aW9uYXJ5LmludGVnZXJXaXRoRGVmYXVsdCk7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qo
dm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJpbnRlZ2VyV2l0aERlZmF1bHQi
KSwgaW50ZWdlcldpdGhEZWZhdWx0VmFsdWUpOwogICAgIGlmICghSURMTG9uZ0xvbmc6OmlzTnVs
bFZhbHVlKGRpY3Rpb25hcnkubGFyZ2VJbnRlZ2VyKSkgewotICAgICAgICBhdXRvIGxhcmdlSW50
ZWdlclZhbHVlID0gdG9KUzxJRExMb25nTG9uZz4oc3RhdGUsIGdsb2JhbE9iamVjdCwgSURMTG9u
Z0xvbmc6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LmxhcmdlSW50ZWdlcikp
OworICAgICAgICBhdXRvIGxhcmdlSW50ZWdlclZhbHVlID0gdG9KUzxJRExMb25nTG9uZz4oSURM
TG9uZ0xvbmc6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LmxhcmdlSW50ZWdl
cikpOwogICAgICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKCZ2bSwgImxhcmdlSW50ZWdlciIpLCBsYXJnZUludGVnZXJWYWx1ZSk7CiAgICAgfQot
ICAgIGF1dG8gbGFyZ2VJbnRlZ2VyV2l0aERlZmF1bHRWYWx1ZSA9IHRvSlM8SURMTG9uZ0xvbmc+
KHN0YXRlLCBnbG9iYWxPYmplY3QsIGRpY3Rpb25hcnkubGFyZ2VJbnRlZ2VyV2l0aERlZmF1bHQp
OworICAgIGF1dG8gbGFyZ2VJbnRlZ2VyV2l0aERlZmF1bHRWYWx1ZSA9IHRvSlM8SURMTG9uZ0xv
bmc+KGRpY3Rpb25hcnkubGFyZ2VJbnRlZ2VyV2l0aERlZmF1bHQpOwogICAgIHJlc3VsdC0+cHV0
RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAibGFyZ2VJbnRlZ2Vy
V2l0aERlZmF1bHQiKSwgbGFyZ2VJbnRlZ2VyV2l0aERlZmF1bHRWYWx1ZSk7Ci0gICAgYXV0byBu
dWxsYWJsZUludGVnZXJXaXRoRGVmYXVsdFZhbHVlID0gdG9KUzxJRExOdWxsYWJsZTxJRExMb25n
Pj4oc3RhdGUsIGdsb2JhbE9iamVjdCwgZGljdGlvbmFyeS5udWxsYWJsZUludGVnZXJXaXRoRGVm
YXVsdCk7CisgICAgYXV0byBudWxsYWJsZUludGVnZXJXaXRoRGVmYXVsdFZhbHVlID0gdG9KUzxJ
RExOdWxsYWJsZTxJRExMb25nPj4oZGljdGlvbmFyeS5udWxsYWJsZUludGVnZXJXaXRoRGVmYXVs
dCk7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zygmdm0sICJudWxsYWJsZUludGVnZXJXaXRoRGVmYXVsdCIpLCBudWxsYWJsZUludGVnZXJXaXRo
RGVmYXVsdFZhbHVlKTsKICAgICBhdXRvIG51bGxhYmxlTm9kZVZhbHVlID0gdG9KUzxJRExOdWxs
YWJsZTxJRExJbnRlcmZhY2U8Tm9kZT4+PihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBkaWN0aW9uYXJ5
Lm51bGxhYmxlTm9kZSk7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmll
cjo6ZnJvbVN0cmluZygmdm0sICJudWxsYWJsZU5vZGUiKSwgbnVsbGFibGVOb2RlVmFsdWUpOwot
ICAgIGF1dG8gbnVsbGFibGVTdHJpbmdXaXRoRGVmYXVsdFZhbHVlID0gdG9KUzxJRExOdWxsYWJs
ZTxJRExET01TdHJpbmc+PihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBkaWN0aW9uYXJ5Lm51bGxhYmxl
U3RyaW5nV2l0aERlZmF1bHQpOworICAgIGF1dG8gbnVsbGFibGVTdHJpbmdXaXRoRGVmYXVsdFZh
bHVlID0gdG9KUzxJRExOdWxsYWJsZTxJRExET01TdHJpbmc+PihzdGF0ZSwgZGljdGlvbmFyeS5u
dWxsYWJsZVN0cmluZ1dpdGhEZWZhdWx0KTsKICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSlND
OjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgIm51bGxhYmxlU3RyaW5nV2l0aERlZmF1bHQi
KSwgbnVsbGFibGVTdHJpbmdXaXRoRGVmYXVsdFZhbHVlKTsKICAgICBhdXRvIG51bGxhYmxlVW5p
b25NZW1iZXJWYWx1ZSA9IHRvSlM8SURMTnVsbGFibGU8SURMVW5pb248SURMTG9uZywgSURMSW50
ZXJmYWNlPE5vZGU+Pj4+KHN0YXRlLCBnbG9iYWxPYmplY3QsIGRpY3Rpb25hcnkubnVsbGFibGVV
bmlvbk1lbWJlcik7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6
ZnJvbVN0cmluZygmdm0sICJudWxsYWJsZVVuaW9uTWVtYmVyIiksIG51bGxhYmxlVW5pb25NZW1i
ZXJWYWx1ZSk7CiAgICAgaWYgKCFJRExEb3VibGU6OmlzTnVsbFZhbHVlKGRpY3Rpb25hcnkucmVz
dHJpY3RlZERvdWJsZSkpIHsKLSAgICAgICAgYXV0byByZXN0cmljdGVkRG91YmxlVmFsdWUgPSB0
b0pTPElETERvdWJsZT4oc3RhdGUsIGdsb2JhbE9iamVjdCwgSURMRG91YmxlOjpleHRyYWN0VmFs
dWVGcm9tTnVsbGFibGUoZGljdGlvbmFyeS5yZXN0cmljdGVkRG91YmxlKSk7CisgICAgICAgIGF1
dG8gcmVzdHJpY3RlZERvdWJsZVZhbHVlID0gdG9KUzxJRExEb3VibGU+KElETERvdWJsZTo6ZXh0
cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRpY3Rpb25hcnkucmVzdHJpY3RlZERvdWJsZSkpOwogICAg
ICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2
bSwgInJlc3RyaWN0ZWREb3VibGUiKSwgcmVzdHJpY3RlZERvdWJsZVZhbHVlKTsKICAgICB9Ci0g
ICAgYXV0byByZXN0cmljdGVkRG91YmxlV2l0aERlZmF1bHRWYWx1ZSA9IHRvSlM8SURMRG91Ymxl
PihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBkaWN0aW9uYXJ5LnJlc3RyaWN0ZWREb3VibGVXaXRoRGVm
YXVsdCk7CisgICAgYXV0byByZXN0cmljdGVkRG91YmxlV2l0aERlZmF1bHRWYWx1ZSA9IHRvSlM8
SURMRG91YmxlPihkaWN0aW9uYXJ5LnJlc3RyaWN0ZWREb3VibGVXaXRoRGVmYXVsdCk7CiAgICAg
cmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJy
ZXN0cmljdGVkRG91YmxlV2l0aERlZmF1bHQiKSwgcmVzdHJpY3RlZERvdWJsZVdpdGhEZWZhdWx0
VmFsdWUpOwogICAgIGlmICghSURMRmxvYXQ6OmlzTnVsbFZhbHVlKGRpY3Rpb25hcnkucmVzdHJp
Y3RlZEZsb2F0KSkgewotICAgICAgICBhdXRvIHJlc3RyaWN0ZWRGbG9hdFZhbHVlID0gdG9KUzxJ
RExGbG9hdD4oc3RhdGUsIGdsb2JhbE9iamVjdCwgSURMRmxvYXQ6OmV4dHJhY3RWYWx1ZUZyb21O
dWxsYWJsZShkaWN0aW9uYXJ5LnJlc3RyaWN0ZWRGbG9hdCkpOworICAgICAgICBhdXRvIHJlc3Ry
aWN0ZWRGbG9hdFZhbHVlID0gdG9KUzxJRExGbG9hdD4oSURMRmxvYXQ6OmV4dHJhY3RWYWx1ZUZy
b21OdWxsYWJsZShkaWN0aW9uYXJ5LnJlc3RyaWN0ZWRGbG9hdCkpOwogICAgICAgICByZXN1bHQt
PnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgInJlc3RyaWN0
ZWRGbG9hdCIpLCByZXN0cmljdGVkRmxvYXRWYWx1ZSk7CiAgICAgfQotICAgIGF1dG8gcmVzdHJp
Y3RlZEZsb2F0V2l0aERlZmF1bHRWYWx1ZSA9IHRvSlM8SURMRmxvYXQ+KHN0YXRlLCBnbG9iYWxP
YmplY3QsIGRpY3Rpb25hcnkucmVzdHJpY3RlZEZsb2F0V2l0aERlZmF1bHQpOworICAgIGF1dG8g
cmVzdHJpY3RlZEZsb2F0V2l0aERlZmF1bHRWYWx1ZSA9IHRvSlM8SURMRmxvYXQ+KGRpY3Rpb25h
cnkucmVzdHJpY3RlZEZsb2F0V2l0aERlZmF1bHQpOwogICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZt
LCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAicmVzdHJpY3RlZEZsb2F0V2l0aERl
ZmF1bHQiKSwgcmVzdHJpY3RlZEZsb2F0V2l0aERlZmF1bHRWYWx1ZSk7CiAgICAgaWYgKCFJRExT
ZXF1ZW5jZTxJRExET01TdHJpbmc+Ojppc051bGxWYWx1ZShkaWN0aW9uYXJ5LnNlcXVlbmNlT2ZT
dHJpbmdzKSkgewogICAgICAgICBhdXRvIHNlcXVlbmNlT2ZTdHJpbmdzVmFsdWUgPSB0b0pTPElE
TFNlcXVlbmNlPElETERPTVN0cmluZz4+KHN0YXRlLCBnbG9iYWxPYmplY3QsIElETFNlcXVlbmNl
PElETERPTVN0cmluZz46OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LnNlcXVl
bmNlT2ZTdHJpbmdzKSk7CiAgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50
aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAic2VxdWVuY2VPZlN0cmluZ3MiKSwgc2VxdWVuY2VPZlN0
cmluZ3NWYWx1ZSk7CiAgICAgfQogICAgIGlmICghSURMQ2xhbXBBZGFwdG9yPElETEJ5dGU+Ojpp
c051bGxWYWx1ZShkaWN0aW9uYXJ5LnNtYWxsSW50ZWdlckNsYW1wZWQpKSB7Ci0gICAgICAgIGF1
dG8gc21hbGxJbnRlZ2VyQ2xhbXBlZFZhbHVlID0gdG9KUzxJRExDbGFtcEFkYXB0b3I8SURMQnl0
ZT4+KHN0YXRlLCBnbG9iYWxPYmplY3QsIElETENsYW1wQWRhcHRvcjxJRExCeXRlPjo6ZXh0cmFj
dFZhbHVlRnJvbU51bGxhYmxlKGRpY3Rpb25hcnkuc21hbGxJbnRlZ2VyQ2xhbXBlZCkpOworICAg
ICAgICBhdXRvIHNtYWxsSW50ZWdlckNsYW1wZWRWYWx1ZSA9IHRvSlM8SURMQ2xhbXBBZGFwdG9y
PElETEJ5dGU+PihJRExDbGFtcEFkYXB0b3I8SURMQnl0ZT46OmV4dHJhY3RWYWx1ZUZyb21OdWxs
YWJsZShkaWN0aW9uYXJ5LnNtYWxsSW50ZWdlckNsYW1wZWQpKTsKICAgICAgICAgcmVzdWx0LT5w
dXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJzbWFsbEludGVn
ZXJDbGFtcGVkIiksIHNtYWxsSW50ZWdlckNsYW1wZWRWYWx1ZSk7CiAgICAgfQogICAgIGlmICgh
SURMQnl0ZTo6aXNOdWxsVmFsdWUoZGljdGlvbmFyeS5zbWFsbEludGVnZXJXaXRoRGVmYXVsdCkp
IHsKLSAgICAgICAgYXV0byBzbWFsbEludGVnZXJXaXRoRGVmYXVsdFZhbHVlID0gdG9KUzxJRExC
eXRlPihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBJRExCeXRlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFi
bGUoZGljdGlvbmFyeS5zbWFsbEludGVnZXJXaXRoRGVmYXVsdCkpOworICAgICAgICBhdXRvIHNt
YWxsSW50ZWdlcldpdGhEZWZhdWx0VmFsdWUgPSB0b0pTPElETEJ5dGU+KElETEJ5dGU6OmV4dHJh
Y3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LnNtYWxsSW50ZWdlcldpdGhEZWZhdWx0KSk7
CiAgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJp
bmcoJnZtLCAic21hbGxJbnRlZ2VyV2l0aERlZmF1bHQiKSwgc21hbGxJbnRlZ2VyV2l0aERlZmF1
bHRWYWx1ZSk7CiAgICAgfQogICAgIGlmICghSURMRW5mb3JjZVJhbmdlQWRhcHRvcjxJRExPY3Rl
dD46OmlzTnVsbFZhbHVlKGRpY3Rpb25hcnkuc21hbGxVbnNpZ25lZEludGVnZXJFbmZvcmNlZFJh
bmdlKSkgewotICAgICAgICBhdXRvIHNtYWxsVW5zaWduZWRJbnRlZ2VyRW5mb3JjZWRSYW5nZVZh
bHVlID0gdG9KUzxJRExFbmZvcmNlUmFuZ2VBZGFwdG9yPElETE9jdGV0Pj4oc3RhdGUsIGdsb2Jh
bE9iamVjdCwgSURMRW5mb3JjZVJhbmdlQWRhcHRvcjxJRExPY3RldD46OmV4dHJhY3RWYWx1ZUZy
b21OdWxsYWJsZShkaWN0aW9uYXJ5LnNtYWxsVW5zaWduZWRJbnRlZ2VyRW5mb3JjZWRSYW5nZSkp
OworICAgICAgICBhdXRvIHNtYWxsVW5zaWduZWRJbnRlZ2VyRW5mb3JjZWRSYW5nZVZhbHVlID0g
dG9KUzxJRExFbmZvcmNlUmFuZ2VBZGFwdG9yPElETE9jdGV0Pj4oSURMRW5mb3JjZVJhbmdlQWRh
cHRvcjxJRExPY3RldD46OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LnNtYWxs
VW5zaWduZWRJbnRlZ2VyRW5mb3JjZWRSYW5nZSkpOwogICAgICAgICByZXN1bHQtPnB1dERpcmVj
dCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgInNtYWxsVW5zaWduZWRJbnRl
Z2VyRW5mb3JjZWRSYW5nZSIpLCBzbWFsbFVuc2lnbmVkSW50ZWdlckVuZm9yY2VkUmFuZ2VWYWx1
ZSk7CiAgICAgfQotICAgIGF1dG8gc21hbGxVbnNpZ25lZEludGVnZXJXaXRoRGVmYXVsdFZhbHVl
ID0gdG9KUzxJRExPY3RldD4oc3RhdGUsIGdsb2JhbE9iamVjdCwgZGljdGlvbmFyeS5zbWFsbFVu
c2lnbmVkSW50ZWdlcldpdGhEZWZhdWx0KTsKKyAgICBhdXRvIHNtYWxsVW5zaWduZWRJbnRlZ2Vy
V2l0aERlZmF1bHRWYWx1ZSA9IHRvSlM8SURMT2N0ZXQ+KGRpY3Rpb25hcnkuc21hbGxVbnNpZ25l
ZEludGVnZXJXaXRoRGVmYXVsdCk7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRl
bnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJzbWFsbFVuc2lnbmVkSW50ZWdlcldpdGhEZWZhdWx0
IiksIHNtYWxsVW5zaWduZWRJbnRlZ2VyV2l0aERlZmF1bHRWYWx1ZSk7CiAgICAgaWYgKCFJRExU
cmVhdE51bGxBc0VtcHR5QWRhcHRvcjxJRExET01TdHJpbmc+Ojppc051bGxWYWx1ZShkaWN0aW9u
YXJ5LnN0cmluZ1RyZWF0TnVsbEFzRW1wdHlTdHJpbmcpKSB7Ci0gICAgICAgIGF1dG8gc3RyaW5n
VHJlYXROdWxsQXNFbXB0eVN0cmluZ1ZhbHVlID0gdG9KUzxJRExUcmVhdE51bGxBc0VtcHR5QWRh
cHRvcjxJRExET01TdHJpbmc+PihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBJRExUcmVhdE51bGxBc0Vt
cHR5QWRhcHRvcjxJRExET01TdHJpbmc+OjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUoZGljdGlv
bmFyeS5zdHJpbmdUcmVhdE51bGxBc0VtcHR5U3RyaW5nKSk7CisgICAgICAgIGF1dG8gc3RyaW5n
VHJlYXROdWxsQXNFbXB0eVN0cmluZ1ZhbHVlID0gdG9KUzxJRExUcmVhdE51bGxBc0VtcHR5QWRh
cHRvcjxJRExET01TdHJpbmc+PihzdGF0ZSwgSURMVHJlYXROdWxsQXNFbXB0eUFkYXB0b3I8SURM
RE9NU3RyaW5nPjo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRpY3Rpb25hcnkuc3RyaW5nVHJl
YXROdWxsQXNFbXB0eVN0cmluZykpOwogICAgICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSlND
OjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgInN0cmluZ1RyZWF0TnVsbEFzRW1wdHlTdHJp
bmciKSwgc3RyaW5nVHJlYXROdWxsQXNFbXB0eVN0cmluZ1ZhbHVlKTsKICAgICB9Ci0gICAgYXV0
byBzdHJpbmdXaXRoRGVmYXVsdFZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KHN0YXRlLCBnbG9i
YWxPYmplY3QsIGRpY3Rpb25hcnkuc3RyaW5nV2l0aERlZmF1bHQpOworICAgIGF1dG8gc3RyaW5n
V2l0aERlZmF1bHRWYWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPihzdGF0ZSwgZGljdGlvbmFyeS5z
dHJpbmdXaXRoRGVmYXVsdCk7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRp
Zmllcjo6ZnJvbVN0cmluZygmdm0sICJzdHJpbmdXaXRoRGVmYXVsdCIpLCBzdHJpbmdXaXRoRGVm
YXVsdFZhbHVlKTsKICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUoZGljdGlvbmFy
eS5zdHJpbmdXaXRob3V0RGVmYXVsdCkpIHsKLSAgICAgICAgYXV0byBzdHJpbmdXaXRob3V0RGVm
YXVsdFZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KHN0YXRlLCBnbG9iYWxPYmplY3QsIElETERP
TVN0cmluZzo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRpY3Rpb25hcnkuc3RyaW5nV2l0aG91
dERlZmF1bHQpKTsKKyAgICAgICAgYXV0byBzdHJpbmdXaXRob3V0RGVmYXVsdFZhbHVlID0gdG9K
UzxJRExET01TdHJpbmc+KHN0YXRlLCBJRExET01TdHJpbmc6OmV4dHJhY3RWYWx1ZUZyb21OdWxs
YWJsZShkaWN0aW9uYXJ5LnN0cmluZ1dpdGhvdXREZWZhdWx0KSk7CiAgICAgICAgIHJlc3VsdC0+
cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAic3RyaW5nV2l0
aG91dERlZmF1bHQiKSwgc3RyaW5nV2l0aG91dERlZmF1bHRWYWx1ZSk7CiAgICAgfQogICAgIGlm
ICghSURMVW5pb248SURMTG9uZywgSURMSW50ZXJmYWNlPE5vZGU+Pjo6aXNOdWxsVmFsdWUoZGlj
dGlvbmFyeS51bmlvbk1lbWJlcikpIHsKQEAgLTcyMSwyOCArNzM4LDI4IEBAIEpTQzo6SlNPYmpl
Y3QqIGNvbnZlcnREaWN0aW9uYXJ5VG9KUyhKU0MKICAgICAgICAgcmVzdWx0LT5wdXREaXJlY3Qo
dm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJ1bmlvbk1lbWJlciIpLCB1bmlv
bk1lbWJlclZhbHVlKTsKICAgICB9CiAgICAgaWYgKCFJRExVbnJlc3RyaWN0ZWREb3VibGU6Omlz
TnVsbFZhbHVlKGRpY3Rpb25hcnkudW5yZXN0cmljdGVkRG91YmxlKSkgewotICAgICAgICBhdXRv
IHVucmVzdHJpY3RlZERvdWJsZVZhbHVlID0gdG9KUzxJRExVbnJlc3RyaWN0ZWREb3VibGU+KHN0
YXRlLCBnbG9iYWxPYmplY3QsIElETFVucmVzdHJpY3RlZERvdWJsZTo6ZXh0cmFjdFZhbHVlRnJv
bU51bGxhYmxlKGRpY3Rpb25hcnkudW5yZXN0cmljdGVkRG91YmxlKSk7CisgICAgICAgIGF1dG8g
dW5yZXN0cmljdGVkRG91YmxlVmFsdWUgPSB0b0pTPElETFVucmVzdHJpY3RlZERvdWJsZT4oSURM
VW5yZXN0cmljdGVkRG91YmxlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUoZGljdGlvbmFyeS51
bnJlc3RyaWN0ZWREb3VibGUpKTsKICAgICAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6
SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJ1bnJlc3RyaWN0ZWREb3VibGUiKSwgdW5yZXN0
cmljdGVkRG91YmxlVmFsdWUpOwogICAgIH0KLSAgICBhdXRvIHVucmVzdHJpY3RlZERvdWJsZVdp
dGhEZWZhdWx0VmFsdWUgPSB0b0pTPElETFVucmVzdHJpY3RlZERvdWJsZT4oc3RhdGUsIGdsb2Jh
bE9iamVjdCwgZGljdGlvbmFyeS51bnJlc3RyaWN0ZWREb3VibGVXaXRoRGVmYXVsdCk7CisgICAg
YXV0byB1bnJlc3RyaWN0ZWREb3VibGVXaXRoRGVmYXVsdFZhbHVlID0gdG9KUzxJRExVbnJlc3Ry
aWN0ZWREb3VibGU+KGRpY3Rpb25hcnkudW5yZXN0cmljdGVkRG91YmxlV2l0aERlZmF1bHQpOwog
ICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZt
LCAidW5yZXN0cmljdGVkRG91YmxlV2l0aERlZmF1bHQiKSwgdW5yZXN0cmljdGVkRG91YmxlV2l0
aERlZmF1bHRWYWx1ZSk7CiAgICAgaWYgKCFJRExVbnJlc3RyaWN0ZWRGbG9hdDo6aXNOdWxsVmFs
dWUoZGljdGlvbmFyeS51bnJlc3RyaWN0ZWRGbG9hdCkpIHsKLSAgICAgICAgYXV0byB1bnJlc3Ry
aWN0ZWRGbG9hdFZhbHVlID0gdG9KUzxJRExVbnJlc3RyaWN0ZWRGbG9hdD4oc3RhdGUsIGdsb2Jh
bE9iamVjdCwgSURMVW5yZXN0cmljdGVkRmxvYXQ6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShk
aWN0aW9uYXJ5LnVucmVzdHJpY3RlZEZsb2F0KSk7CisgICAgICAgIGF1dG8gdW5yZXN0cmljdGVk
RmxvYXRWYWx1ZSA9IHRvSlM8SURMVW5yZXN0cmljdGVkRmxvYXQ+KElETFVucmVzdHJpY3RlZEZs
b2F0OjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUoZGljdGlvbmFyeS51bnJlc3RyaWN0ZWRGbG9h
dCkpOwogICAgICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKCZ2bSwgInVucmVzdHJpY3RlZEZsb2F0IiksIHVucmVzdHJpY3RlZEZsb2F0VmFsdWUp
OwogICAgIH0KLSAgICBhdXRvIHVucmVzdHJpY3RlZEZsb2F0V2l0aERlZmF1bHRWYWx1ZSA9IHRv
SlM8SURMVW5yZXN0cmljdGVkRmxvYXQ+KHN0YXRlLCBnbG9iYWxPYmplY3QsIGRpY3Rpb25hcnku
dW5yZXN0cmljdGVkRmxvYXRXaXRoRGVmYXVsdCk7CisgICAgYXV0byB1bnJlc3RyaWN0ZWRGbG9h
dFdpdGhEZWZhdWx0VmFsdWUgPSB0b0pTPElETFVucmVzdHJpY3RlZEZsb2F0PihkaWN0aW9uYXJ5
LnVucmVzdHJpY3RlZEZsb2F0V2l0aERlZmF1bHQpOwogICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZt
LCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAidW5yZXN0cmljdGVkRmxvYXRXaXRo
RGVmYXVsdCIpLCB1bnJlc3RyaWN0ZWRGbG9hdFdpdGhEZWZhdWx0VmFsdWUpOwogICAgIGlmICgh
SURMVW5zaWduZWRMb25nOjppc051bGxWYWx1ZShkaWN0aW9uYXJ5LnVuc2lnbmVkSW50ZWdlcikp
IHsKLSAgICAgICAgYXV0byB1bnNpZ25lZEludGVnZXJWYWx1ZSA9IHRvSlM8SURMVW5zaWduZWRM
b25nPihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBJRExVbnNpZ25lZExvbmc6OmV4dHJhY3RWYWx1ZUZy
b21OdWxsYWJsZShkaWN0aW9uYXJ5LnVuc2lnbmVkSW50ZWdlcikpOworICAgICAgICBhdXRvIHVu
c2lnbmVkSW50ZWdlclZhbHVlID0gdG9KUzxJRExVbnNpZ25lZExvbmc+KElETFVuc2lnbmVkTG9u
Zzo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRpY3Rpb25hcnkudW5zaWduZWRJbnRlZ2VyKSk7
CiAgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJp
bmcoJnZtLCAidW5zaWduZWRJbnRlZ2VyIiksIHVuc2lnbmVkSW50ZWdlclZhbHVlKTsKICAgICB9
Ci0gICAgYXV0byB1bnNpZ25lZEludGVnZXJXaXRoRGVmYXVsdFZhbHVlID0gdG9KUzxJRExVbnNp
Z25lZExvbmc+KHN0YXRlLCBnbG9iYWxPYmplY3QsIGRpY3Rpb25hcnkudW5zaWduZWRJbnRlZ2Vy
V2l0aERlZmF1bHQpOworICAgIGF1dG8gdW5zaWduZWRJbnRlZ2VyV2l0aERlZmF1bHRWYWx1ZSA9
IHRvSlM8SURMVW5zaWduZWRMb25nPihkaWN0aW9uYXJ5LnVuc2lnbmVkSW50ZWdlcldpdGhEZWZh
dWx0KTsKICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKCZ2bSwgInVuc2lnbmVkSW50ZWdlcldpdGhEZWZhdWx0IiksIHVuc2lnbmVkSW50ZWdlcldp
dGhEZWZhdWx0VmFsdWUpOwogICAgIGlmICghSURMVW5zaWduZWRMb25nTG9uZzo6aXNOdWxsVmFs
dWUoZGljdGlvbmFyeS51bnNpZ25lZExhcmdlSW50ZWdlcikpIHsKLSAgICAgICAgYXV0byB1bnNp
Z25lZExhcmdlSW50ZWdlclZhbHVlID0gdG9KUzxJRExVbnNpZ25lZExvbmdMb25nPihzdGF0ZSwg
Z2xvYmFsT2JqZWN0LCBJRExVbnNpZ25lZExvbmdMb25nOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFi
bGUoZGljdGlvbmFyeS51bnNpZ25lZExhcmdlSW50ZWdlcikpOworICAgICAgICBhdXRvIHVuc2ln
bmVkTGFyZ2VJbnRlZ2VyVmFsdWUgPSB0b0pTPElETFVuc2lnbmVkTG9uZ0xvbmc+KElETFVuc2ln
bmVkTG9uZ0xvbmc6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LnVuc2lnbmVk
TGFyZ2VJbnRlZ2VyKSk7CiAgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50
aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAidW5zaWduZWRMYXJnZUludGVnZXIiKSwgdW5zaWduZWRM
YXJnZUludGVnZXJWYWx1ZSk7CiAgICAgfQotICAgIGF1dG8gdW5zaWduZWRMYXJnZUludGVnZXJX
aXRoRGVmYXVsdFZhbHVlID0gdG9KUzxJRExVbnNpZ25lZExvbmdMb25nPihzdGF0ZSwgZ2xvYmFs
T2JqZWN0LCBkaWN0aW9uYXJ5LnVuc2lnbmVkTGFyZ2VJbnRlZ2VyV2l0aERlZmF1bHQpOworICAg
IGF1dG8gdW5zaWduZWRMYXJnZUludGVnZXJXaXRoRGVmYXVsdFZhbHVlID0gdG9KUzxJRExVbnNp
Z25lZExvbmdMb25nPihkaWN0aW9uYXJ5LnVuc2lnbmVkTGFyZ2VJbnRlZ2VyV2l0aERlZmF1bHQp
OwogICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmco
JnZtLCAidW5zaWduZWRMYXJnZUludGVnZXJXaXRoRGVmYXVsdCIpLCB1bnNpZ25lZExhcmdlSW50
ZWdlcldpdGhEZWZhdWx0VmFsdWUpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC03OTQ3LDI0
ICs3OTY0LDI0IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHIKICAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25Ub1N0cmluZ0JvZHk+KCpzdGF0ZSwgInRvU3RyaW5nIik7CiB9CiAKLUpTQzo6SlNP
YmplY3QqIEpTVGVzdE9iajo6c2VyaWFsaXplKEV4ZWNTdGF0ZSogc3RhdGUsIEpTVGVzdE9iaiog
dGhpc09iamVjdCwgVGhyb3dTY29wZSYgdGhyb3dTY29wZSkKK0pTQzo6SlNPYmplY3QqIEpTVGVz
dE9iajo6c2VyaWFsaXplKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwg
SlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgVGhyb3dTY29wZSYgdGhyb3dTY29wZSkK
IHsKLSAgICBhdXRvJiB2bSA9IHN0YXRlLT52bSgpOwotICAgIGF1dG8qIHJlc3VsdCA9IGNvbnN0
cnVjdEVtcHR5T2JqZWN0KHN0YXRlKTsKKyAgICBhdXRvJiB2bSA9IHN0YXRlLnZtKCk7CisgICAg
YXV0byogcmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoJnN0YXRlLCBnbG9iYWxPYmplY3Qu
b2JqZWN0UHJvdG90eXBlKCkpOwogCi0gICAgYXV0byBjcmVhdGVWYWx1ZSA9IGpzVGVzdE9iakNy
ZWF0ZUdldHRlcigqc3RhdGUsICp0aGlzT2JqZWN0LCB0aHJvd1Njb3BlKTsKKyAgICBhdXRvIGNy
ZWF0ZVZhbHVlID0ganNUZXN0T2JqQ3JlYXRlR2V0dGVyKHN0YXRlLCB0aGlzT2JqZWN0LCB0aHJv
d1Njb3BlKTsKICAgICB0aHJvd1Njb3BlLmFzc2VydE5vRXhjZXB0aW9uKCk7CiAgICAgcmVzdWx0
LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiY3JlYXRlIiksIGNy
ZWF0ZVZhbHVlKTsKIAotICAgIGF1dG8gcmVhZE9ubHlTdHJpbmdBdHRyVmFsdWUgPSBqc1Rlc3RP
YmpSZWFkT25seVN0cmluZ0F0dHJHZXR0ZXIoKnN0YXRlLCAqdGhpc09iamVjdCwgdGhyb3dTY29w
ZSk7CisgICAgYXV0byByZWFkT25seVN0cmluZ0F0dHJWYWx1ZSA9IGpzVGVzdE9ialJlYWRPbmx5
U3RyaW5nQXR0ckdldHRlcihzdGF0ZSwgdGhpc09iamVjdCwgdGhyb3dTY29wZSk7CiAgICAgdGhy
b3dTY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwogICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgInJlYWRPbmx5U3RyaW5nQXR0ciIpLCByZWFkT25s
eVN0cmluZ0F0dHJWYWx1ZSk7CiAKLSAgICBhdXRvIGVudW1BdHRyVmFsdWUgPSBqc1Rlc3RPYmpF
bnVtQXR0ckdldHRlcigqc3RhdGUsICp0aGlzT2JqZWN0LCB0aHJvd1Njb3BlKTsKKyAgICBhdXRv
IGVudW1BdHRyVmFsdWUgPSBqc1Rlc3RPYmpFbnVtQXR0ckdldHRlcihzdGF0ZSwgdGhpc09iamVj
dCwgdGhyb3dTY29wZSk7CiAgICAgdGhyb3dTY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwogICAg
IHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImVudW1B
dHRyIiksIGVudW1BdHRyVmFsdWUpOwogCi0gICAgYXV0byBsb25nQXR0clZhbHVlID0ganNUZXN0
T2JqTG9uZ0F0dHJHZXR0ZXIoKnN0YXRlLCAqdGhpc09iamVjdCwgdGhyb3dTY29wZSk7CisgICAg
YXV0byBsb25nQXR0clZhbHVlID0ganNUZXN0T2JqTG9uZ0F0dHJHZXR0ZXIoc3RhdGUsIHRoaXNP
YmplY3QsIHRocm93U2NvcGUpOwogICAgIHRocm93U2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsK
ICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJs
b25nQXR0ciIpLCBsb25nQXR0clZhbHVlKTsKIApAQCAtNzk3Myw3ICs3OTkwLDcgQEAgSlNDOjpK
U09iamVjdCogSlNUZXN0T2JqOjpzZXJpYWxpemUoRXhlYwogCiBzdGF0aWMgaW5saW5lIEVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVG9KU09OQm9keShFeGVjU3RhdGUq
IHN0YXRlLCBKU1Rlc3RPYmoqIHRoaXNPYmplY3QsIEpTQzo6VGhyb3dTY29wZSYgdGhyb3dTY29w
ZSkKIHsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE9iajo6c2VyaWFsaXplKHN0
YXRlLCB0aGlzT2JqZWN0LCB0aHJvd1Njb3BlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKU1Rlc3RPYmo6OnNlcmlhbGl6ZSgqc3RhdGUsICp0aGlzT2JqZWN0LCAqdGhpc09iamVjdC0+
Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRvSlNPTihFeGVjU3RhdGUqIHN0YXRl
KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9i
ai5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouaAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMCw3ICsy
MCw4IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5j
bHVkZSAiSlNET01Db252ZXJ0RGljdGlvbmFyeS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEVu
dW1lcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyLmgiCiAjaW5jbHVkZSAiVGVzdE9i
ai5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvQ2FsbERhdGEuaD4KQEAgLTU2LDcgKzU3LDcgQEAgcHVi
bGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlND
OjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICBzdGF0aWMgSlNDOjpKU09i
amVjdCogc2VyaWFsaXplKEpTQzo6RXhlY1N0YXRlKiwgSlNUZXN0T2JqKiB0aGlzT2JqZWN0LCBK
U0M6OlRocm93U2NvcGUmKTsKKyAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogc2VyaWFsaXplKEpT
Qzo6RXhlY1N0YXRlJiwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU0RPTUdsb2JhbE9iamVjdCYs
IEpTQzo6VGhyb3dTY29wZSYpOwogICAgIG11dGFibGUgSlNDOjpXcml0ZUJhcnJpZXI8SlNDOjpV
bmtub3duPiBtX2NhY2hlZEF0dHJpYnV0ZTE7CiAgICAgbXV0YWJsZSBKU0M6OldyaXRlQmFycmll
cjxKU0M6OlVua25vd24+IG1fY2FjaGVkQXR0cmlidXRlMjsKICAgICBzdGF0aWMgdm9pZCB2aXNp
dENoaWxkcmVuKEpTQ2VsbCosIEpTQzo6U2xvdFZpc2l0b3ImKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAJKHJldmlzaW9uIDIxODI5OSkKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsMTIgKzI0LDE1IEBACiAjaW5j
bHVkZSAiSlNCbG9iLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNE
T01Db25zdHJ1Y3Rvci5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgorI2luY2x1ZGUgIkpT
RE9NQ29udmVydEJ1ZmZlclNvdXJjZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEludGVyZmFj
ZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bWJlcnMuaCIKKyNpbmNsdWRlICJKU0RPTUNv
bnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0VmFyaWFkaWMuaCIKICNpbmNs
dWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2Fj
aGUuaCIKLSNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CiAjaW5jbHVkZSA8cnVudGltZS9GdW5j
dGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1
ZGUgPHd0Zi9HZXRQdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzV2l0aFNlcXVlbmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5j
ZS5jcHAJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjMsMTMgKzIzLDE1IEBACiAKICNpbmNsdWRlICJKU0RPTUJpbmRp
bmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yLmgiCi0jaW5jbHVkZSAiSlNET01Db252
ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0SW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiSlNE
T01Db252ZXJ0U2VxdWVuY2VzLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgog
I2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBw
ZXJDYWNoZS5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KICNpbmNsdWRlIDxydW50aW1l
L0Z1bmN0aW9uUHJvdG90eXBlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9JdGVyYXRvck9wZXJhdGlv
bnMuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQXJyYXkuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pT
Q0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBK
U0M7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T3ZlcnJpZGVCdWlsdGlucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuY3BwCShyZXZpc2lvbiAy
MTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T3ZlcnJpZGVCdWlsdGlucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDEyICsyNCwxNSBAQAog
I2luY2x1ZGUgIkpTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNET01CaW5k
aW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKLSNp
bmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRJbnRlcmZhY2Uu
aCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNl
cHRpb25IYW5kbGluZy5oIgorI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiSlNET01PcGVyYXRpb24uaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2lu
Y2x1ZGUgIkpTTm9kZS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4K
KyNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlz
ZVJlamVjdGlvbkV2ZW50LmNwcAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI0LDEwICsyNCwxNSBAQAogI2luY2x1ZGUgIkpTRE9NQXR0cmli
dXRlLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1
Y3Rvci5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEFueS5oIgorI2luY2x1ZGUgIkpTRE9NQ29u
dmVydEJvb2xlYW4uaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRJbnRlcmZhY2UuaCIKKyNpbmNs
dWRlICJKU0RPTUNvbnZlcnRQcm9taXNlLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5n
cy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RP
TVByb21pc2UuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgotI2luY2x1ZGUgPHJ1
bnRpbWUvRXJyb3IuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRl
IDx3dGYvR2V0UHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5oCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJlamVjdGlv
bkV2ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIwLDcgKzIwLDcgQEAKIAogI3ByYWdtYSBvbmNl
CiAKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnREaWN0
aW9uYXJ5LmgiCiAjaW5jbHVkZSAiSlNFdmVudC5oIgogI2luY2x1ZGUgIlRlc3RQcm9taXNlUmVq
ZWN0aW9uRXZlbnQuaCIKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uLmNwcAkocmV2
aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFNlcmlhbGl6YXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxMiArMjQsMTYg
QEAKICNpbmNsdWRlICJKU0RPTUF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5o
IgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCi0jaW5jbHVk
ZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0SW50ZXJmYWNlLmgiCisj
aW5jbHVkZSAiSlNET01Db252ZXJ0TnVtYmVycy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFN0
cmluZ3MuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCisjaW5jbHVkZSAi
SlNET01HbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgogI2luY2x1
ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSAiSlNUZXN0RXhjZXB0aW9uLmgiCiAj
aW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUv
SlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaD4KICNp
bmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKQEAgLTM3MCwyOCArMzc0LDI4IEBAIGJvb2wgc2V0SlNU
ZXN0U2VyaWFsaXphdGlvblNpeHRoVHlwZWRlZkEKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdFNlcmlhbGl6YXRpb24+OjpzZXQ8c2V0SlNUZXN0U2VyaWFsaXphdGlvblNpeHRoVHlwZWRl
ZkF0dHJpYnV0ZVNldHRlcj4oKnN0YXRlLCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInNpeHRo
VHlwZWRlZkF0dHJpYnV0ZSIpOwogfQogCi1KU0M6OkpTT2JqZWN0KiBKU1Rlc3RTZXJpYWxpemF0
aW9uOjpzZXJpYWxpemUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNUZXN0U2VyaWFsaXphdGlvbiogdGhp
c09iamVjdCwgVGhyb3dTY29wZSYgdGhyb3dTY29wZSkKK0pTQzo6SlNPYmplY3QqIEpTVGVzdFNl
cmlhbGl6YXRpb246OnNlcmlhbGl6ZShFeGVjU3RhdGUmIHN0YXRlLCBKU1Rlc3RTZXJpYWxpemF0
aW9uJiB0aGlzT2JqZWN0LCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBUaHJvd1Nj
b3BlJiB0aHJvd1Njb3BlKQogewotICAgIGF1dG8mIHZtID0gc3RhdGUtPnZtKCk7Ci0gICAgYXV0
byogcmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmplY3Qoc3RhdGUpOworICAgIGF1dG8mIHZtID0g
c3RhdGUudm0oKTsKKyAgICBhdXRvKiByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdCgmc3Rh
dGUsIGdsb2JhbE9iamVjdC5vYmplY3RQcm90b3R5cGUoKSk7CiAKLSAgICBhdXRvIGZpcnN0U3Ry
aW5nQXR0cmlidXRlVmFsdWUgPSBqc1Rlc3RTZXJpYWxpemF0aW9uRmlyc3RTdHJpbmdBdHRyaWJ1
dGVHZXR0ZXIoKnN0YXRlLCAqdGhpc09iamVjdCwgdGhyb3dTY29wZSk7CisgICAgYXV0byBmaXJz
dFN0cmluZ0F0dHJpYnV0ZVZhbHVlID0ganNUZXN0U2VyaWFsaXphdGlvbkZpcnN0U3RyaW5nQXR0
cmlidXRlR2V0dGVyKHN0YXRlLCB0aGlzT2JqZWN0LCB0aHJvd1Njb3BlKTsKICAgICB0aHJvd1Nj
b3BlLmFzc2VydE5vRXhjZXB0aW9uKCk7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIElkZW50
aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiZmlyc3RTdHJpbmdBdHRyaWJ1dGUiKSwgZmlyc3RTdHJp
bmdBdHRyaWJ1dGVWYWx1ZSk7CiAKLSAgICBhdXRvIHNlY29uZExvbmdBdHRyaWJ1dGVWYWx1ZSA9
IGpzVGVzdFNlcmlhbGl6YXRpb25TZWNvbmRMb25nQXR0cmlidXRlR2V0dGVyKCpzdGF0ZSwgKnRo
aXNPYmplY3QsIHRocm93U2NvcGUpOworICAgIGF1dG8gc2Vjb25kTG9uZ0F0dHJpYnV0ZVZhbHVl
ID0ganNUZXN0U2VyaWFsaXphdGlvblNlY29uZExvbmdBdHRyaWJ1dGVHZXR0ZXIoc3RhdGUsIHRo
aXNPYmplY3QsIHRocm93U2NvcGUpOwogICAgIHRocm93U2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24o
KTsKICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0s
ICJzZWNvbmRMb25nQXR0cmlidXRlIiksIHNlY29uZExvbmdBdHRyaWJ1dGVWYWx1ZSk7CiAKLSAg
ICBhdXRvIGZvdXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0ZVZhbHVlID0ganNUZXN0U2Vy
aWFsaXphdGlvbkZvdXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0ZUdldHRlcigqc3RhdGUs
ICp0aGlzT2JqZWN0LCB0aHJvd1Njb3BlKTsKKyAgICBhdXRvIGZvdXJ0aFVucmVzdHJpY3RlZERv
dWJsZUF0dHJpYnV0ZVZhbHVlID0ganNUZXN0U2VyaWFsaXphdGlvbkZvdXJ0aFVucmVzdHJpY3Rl
ZERvdWJsZUF0dHJpYnV0ZUdldHRlcihzdGF0ZSwgdGhpc09iamVjdCwgdGhyb3dTY29wZSk7CiAg
ICAgdGhyb3dTY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwogICAgIHJlc3VsdC0+cHV0RGlyZWN0
KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImZvdXJ0aFVucmVzdHJpY3RlZERvdWJs
ZUF0dHJpYnV0ZSIpLCBmb3VydGhVbnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGVWYWx1ZSk7CiAK
LSAgICBhdXRvIGZpZnRoTG9uZ0F0dHJpYnV0ZVZhbHVlID0ganNUZXN0U2VyaWFsaXphdGlvbkZp
ZnRoTG9uZ0F0dHJpYnV0ZUdldHRlcigqc3RhdGUsICp0aGlzT2JqZWN0LCB0aHJvd1Njb3BlKTsK
KyAgICBhdXRvIGZpZnRoTG9uZ0F0dHJpYnV0ZVZhbHVlID0ganNUZXN0U2VyaWFsaXphdGlvbkZp
ZnRoTG9uZ0F0dHJpYnV0ZUdldHRlcihzdGF0ZSwgdGhpc09iamVjdCwgdGhyb3dTY29wZSk7CiAg
ICAgdGhyb3dTY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwogICAgIHJlc3VsdC0+cHV0RGlyZWN0
KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImZpZnRoTG9uZ0F0dHJpYnV0ZSIpLCBm
aWZ0aExvbmdBdHRyaWJ1dGVWYWx1ZSk7CiAKLSAgICBhdXRvIHNpeHRoVHlwZWRlZkF0dHJpYnV0
ZVZhbHVlID0ganNUZXN0U2VyaWFsaXphdGlvblNpeHRoVHlwZWRlZkF0dHJpYnV0ZUdldHRlcigq
c3RhdGUsICp0aGlzT2JqZWN0LCB0aHJvd1Njb3BlKTsKKyAgICBhdXRvIHNpeHRoVHlwZWRlZkF0
dHJpYnV0ZVZhbHVlID0ganNUZXN0U2VyaWFsaXphdGlvblNpeHRoVHlwZWRlZkF0dHJpYnV0ZUdl
dHRlcihzdGF0ZSwgdGhpc09iamVjdCwgdGhyb3dTY29wZSk7CiAgICAgdGhyb3dTY29wZS5hc3Nl
cnROb0V4Y2VwdGlvbigpOwogICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKCZ2bSwgInNpeHRoVHlwZWRlZkF0dHJpYnV0ZSIpLCBzaXh0aFR5cGVkZWZBdHRy
aWJ1dGVWYWx1ZSk7CiAKQEAgLTQwMCw3ICs0MDQsNyBAQCBKU0M6OkpTT2JqZWN0KiBKU1Rlc3RT
ZXJpYWxpemF0aW9uOjpzZXJpCiAKIHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0
U2VyaWFsaXphdGlvblByb3RvdHlwZUZ1bmN0aW9uVG9KU09OQm9keShFeGVjU3RhdGUqIHN0YXRl
LCBKU1Rlc3RTZXJpYWxpemF0aW9uKiB0aGlzT2JqZWN0LCBKU0M6OlRocm93U2NvcGUmIHRocm93
U2NvcGUpCiB7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RTZXJpYWxpemF0aW9u
OjpzZXJpYWxpemUoc3RhdGUsIHRoaXNPYmplY3QsIHRocm93U2NvcGUpKTsKKyAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFNlcmlhbGl6YXRpb246OnNlcmlhbGl6ZSgqc3RhdGUsICp0
aGlzT2JqZWN0LCAqdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUpKTsKIH0K
IAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXJpYWxpemF0aW9uUHJvdG90
eXBlRnVuY3Rpb25Ub0pTT04oRXhlY1N0YXRlKiBzdGF0ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlh
bGl6YXRpb24uaAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAt
NDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBn
ZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAg
IHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBzZXJpYWxpemUoSlNDOjpFeGVjU3RhdGUqLCBKU1Rlc3RT
ZXJpYWxpemF0aW9uKiB0aGlzT2JqZWN0LCBKU0M6OlRocm93U2NvcGUmKTsKKyAgICBzdGF0aWMg
SlNDOjpKU09iamVjdCogc2VyaWFsaXplKEpTQzo6RXhlY1N0YXRlJiwgSlNUZXN0U2VyaWFsaXph
dGlvbiYgdGhpc09iamVjdCwgSlNET01HbG9iYWxPYmplY3QmLCBKU0M6OlRocm93U2NvcGUmKTsK
IHByb3RlY3RlZDoKICAgICBKU1Rlc3RTZXJpYWxpemF0aW9uKEpTQzo6U3RydWN0dXJlKiwgSlNE
T01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdFNlcmlhbGl6YXRpb24+JiYpOwogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbklu
aGVyaXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdC5jcHAJKHJldmlzaW9uIDIxODI5OSkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxp
emF0aW9uSW5oZXJpdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDEwICsyNCwxMSBAQAogI2lu
Y2x1ZGUgIkpTRE9NQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5j
bHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RP
TUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnROdW1iZXJzLmgiCiAjaW5jbHVkZSAi
SlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAj
aW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKKyNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGlu
ZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmg+CiAjaW5jbHVkZSA8
d3RmL0dldFB0ci5oPgogCkBAIC0xOTYsMTIgKzE5NywxMiBAQCBib29sIHNldEpTVGVzdFNlcmlh
bGl6YXRpb25Jbmhlcml0SW5oZXJpCiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXJp
YWxpemF0aW9uSW5oZXJpdD46OnNldDxzZXRKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEluaGVy
aXRMb25nQXR0cmlidXRlU2V0dGVyPigqc3RhdGUsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
aW5oZXJpdExvbmdBdHRyaWJ1dGUiKTsKIH0KIAotSlNDOjpKU09iamVjdCogSlNUZXN0U2VyaWFs
aXphdGlvbkluaGVyaXQ6OnNlcmlhbGl6ZShFeGVjU3RhdGUqIHN0YXRlLCBKU1Rlc3RTZXJpYWxp
emF0aW9uSW5oZXJpdCogdGhpc09iamVjdCwgVGhyb3dTY29wZSYgdGhyb3dTY29wZSkKK0pTQzo6
SlNPYmplY3QqIEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0OjpzZXJpYWxpemUoRXhlY1N0YXRl
JiBzdGF0ZSwgSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXQmIHRoaXNPYmplY3QsIEpTRE9NR2xv
YmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIFRocm93U2NvcGUmIHRocm93U2NvcGUpCiB7Ci0gICAg
YXV0byYgdm0gPSBzdGF0ZS0+dm0oKTsKLSAgICBhdXRvKiByZXN1bHQgPSBKU1Rlc3RTZXJpYWxp
emF0aW9uOjpzZXJpYWxpemUoc3RhdGUsIHRoaXNPYmplY3QsIHRocm93U2NvcGUpOworICAgIGF1
dG8mIHZtID0gc3RhdGUudm0oKTsKKyAgICBhdXRvKiByZXN1bHQgPSBKU1Rlc3RTZXJpYWxpemF0
aW9uOjpzZXJpYWxpemUoc3RhdGUsIHRoaXNPYmplY3QsIGdsb2JhbE9iamVjdCwgdGhyb3dTY29w
ZSk7CiAKLSAgICBhdXRvIGluaGVyaXRMb25nQXR0cmlidXRlVmFsdWUgPSBqc1Rlc3RTZXJpYWxp
emF0aW9uSW5oZXJpdEluaGVyaXRMb25nQXR0cmlidXRlR2V0dGVyKCpzdGF0ZSwgKnRoaXNPYmpl
Y3QsIHRocm93U2NvcGUpOworICAgIGF1dG8gaW5oZXJpdExvbmdBdHRyaWJ1dGVWYWx1ZSA9IGpz
VGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0SW5oZXJpdExvbmdBdHRyaWJ1dGVHZXR0ZXIoc3RhdGUs
IHRoaXNPYmplY3QsIHRocm93U2NvcGUpOwogICAgIHRocm93U2NvcGUuYXNzZXJ0Tm9FeGNlcHRp
b24oKTsKICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygm
dm0sICJpbmhlcml0TG9uZ0F0dHJpYnV0ZSIpLCBpbmhlcml0TG9uZ0F0dHJpYnV0ZVZhbHVlKTsK
IApAQCAtMjEwLDcgKzIxMSw3IEBAIEpTQzo6SlNPYmplY3QqIEpTVGVzdFNlcmlhbGl6YXRpb25J
bmhlcmkKIAogc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemF0aW9u
SW5oZXJpdFByb3RvdHlwZUZ1bmN0aW9uVG9KU09OQm9keShFeGVjU3RhdGUqIHN0YXRlLCBKU1Rl
c3RTZXJpYWxpemF0aW9uSW5oZXJpdCogdGhpc09iamVjdCwgSlNDOjpUaHJvd1Njb3BlJiB0aHJv
d1Njb3BlKQogewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0U2VyaWFsaXphdGlv
bkluaGVyaXQ6OnNlcmlhbGl6ZShzdGF0ZSwgdGhpc09iamVjdCwgdGhyb3dTY29wZSkpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXQ6OnNlcmlh
bGl6ZSgqc3RhdGUsICp0aGlzT2JqZWN0LCAqdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIHRo
cm93U2NvcGUpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXJp
YWxpemF0aW9uSW5oZXJpdFByb3RvdHlwZUZ1bmN0aW9uVG9KU09OKEV4ZWNTdGF0ZSogc3RhdGUp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2Vy
aWFsaXphdGlvbkluaGVyaXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXQuaAkocmV2aXNpb24g
MjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFNlcmlhbGl6YXRpb25Jbmhlcml0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAg
cHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3Io
SlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICBzdGF0aWMgSlNDOjpK
U09iamVjdCogc2VyaWFsaXplKEpTQzo6RXhlY1N0YXRlKiwgSlNUZXN0U2VyaWFsaXphdGlvbklu
aGVyaXQqIHRoaXNPYmplY3QsIEpTQzo6VGhyb3dTY29wZSYpOworICAgIHN0YXRpYyBKU0M6OkpT
T2JqZWN0KiBzZXJpYWxpemUoSlNDOjpFeGVjU3RhdGUmLCBKU1Rlc3RTZXJpYWxpemF0aW9uSW5o
ZXJpdCYgdGhpc09iamVjdCwgSlNET01HbG9iYWxPYmplY3QmLCBKU0M6OlRocm93U2NvcGUmKTsK
ICAgICBUZXN0U2VyaWFsaXphdGlvbkluaGVyaXQmIHdyYXBwZWQoKSBjb25zdAogICAgIHsKICAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRlc3RTZXJpYWxpemF0aW9uSW5oZXJpdCY+KEJhc2U6
OndyYXBwZWQoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25J
bmhlcml0RmluYWwuY3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI0LDEwICsyNCwxMSBAQAogI2luY2x1ZGUgIkpTRE9NQXR0cmli
dXRlLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1
Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNs
dWRlICJKU0RPTUNvbnZlcnROdW1iZXJzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5k
bGluZy5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFw
cGVyQ2FjaGUuaCIKKyNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxy
dW50aW1lL09iamVjdENvbnN0cnVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogCkBA
IC0yMjksMTIgKzIzMCwxMiBAQCBib29sIHNldEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0Rmlu
YWxGCiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZp
bmFsPjo6c2V0PHNldEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRy
aWJ1dGVCYXJTZXR0ZXI+KCpzdGF0ZSwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJmaW5hbExv
bmdBdHRyaWJ1dGVCYXIiKTsKIH0KIAotSlNDOjpKU09iamVjdCogSlNUZXN0U2VyaWFsaXphdGlv
bkluaGVyaXRGaW5hbDo6c2VyaWFsaXplKEV4ZWNTdGF0ZSogc3RhdGUsIEpTVGVzdFNlcmlhbGl6
YXRpb25Jbmhlcml0RmluYWwqIHRoaXNPYmplY3QsIFRocm93U2NvcGUmIHRocm93U2NvcGUpCitK
U0M6OkpTT2JqZWN0KiBKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsOjpzZXJpYWxpemUo
RXhlY1N0YXRlJiBzdGF0ZSwgSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbCYgdGhpc09i
amVjdCwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgVGhyb3dTY29wZSYgdGhyb3dT
Y29wZSkKIHsKLSAgICBhdXRvJiB2bSA9IHN0YXRlLT52bSgpOwotICAgIGF1dG8qIHJlc3VsdCA9
IEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0OjpzZXJpYWxpemUoc3RhdGUsIHRoaXNPYmplY3Qs
IHRocm93U2NvcGUpOworICAgIGF1dG8mIHZtID0gc3RhdGUudm0oKTsKKyAgICBhdXRvKiByZXN1
bHQgPSBKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdDo6c2VyaWFsaXplKHN0YXRlLCB0aGlzT2Jq
ZWN0LCBnbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOwogCi0gICAgYXV0byBmaW5hbExvbmdBdHRy
aWJ1dGVCYXJWYWx1ZSA9IGpzVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWxGaW5hbExvbmdB
dHRyaWJ1dGVCYXJHZXR0ZXIoKnN0YXRlLCAqdGhpc09iamVjdCwgdGhyb3dTY29wZSk7CisgICAg
YXV0byBmaW5hbExvbmdBdHRyaWJ1dGVCYXJWYWx1ZSA9IGpzVGVzdFNlcmlhbGl6YXRpb25Jbmhl
cml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVCYXJHZXR0ZXIoc3RhdGUsIHRoaXNPYmplY3QsIHRo
cm93U2NvcGUpOwogICAgIHRocm93U2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKICAgICByZXN1
bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJmaW5hbExvbmdB
dHRyaWJ1dGVCYXIiKSwgZmluYWxMb25nQXR0cmlidXRlQmFyVmFsdWUpOwogCkBAIC0yNDMsNyAr
MjQ0LDcgQEAgSlNDOjpKU09iamVjdCogSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaQogCiBzdGF0
aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWxQ
cm90b3R5cGVGdW5jdGlvblRvSlNPTkJvZHkoRXhlY1N0YXRlKiBzdGF0ZSwgSlNUZXN0U2VyaWFs
aXphdGlvbkluaGVyaXRGaW5hbCogdGhpc09iamVjdCwgSlNDOjpUaHJvd1Njb3BlJiB0aHJvd1Nj
b3BlKQogewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0U2VyaWFsaXphdGlvbklu
aGVyaXRGaW5hbDo6c2VyaWFsaXplKHN0YXRlLCB0aGlzT2JqZWN0LCB0aHJvd1Njb3BlKSk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFs
OjpzZXJpYWxpemUoKnN0YXRlLCAqdGhpc09iamVjdCwgKnRoaXNPYmplY3QtPmdsb2JhbE9iamVj
dCgpLCB0aHJvd1Njb3BlKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbFByb3RvdHlwZUZ1bmN0aW9uVG9KU09OKEV4ZWNT
dGF0ZSogc3RhdGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5o
ZXJpdEZpbmFsLmgJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBK
U0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxP
YmplY3QqKTsKLSAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogc2VyaWFsaXplKEpTQzo6RXhlY1N0
YXRlKiwgSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbCogdGhpc09iamVjdCwgSlNDOjpU
aHJvd1Njb3BlJik7CisgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIHNlcmlhbGl6ZShKU0M6OkV4
ZWNTdGF0ZSYsIEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwmIHRoaXNPYmplY3QsIEpT
RE9NR2xvYmFsT2JqZWN0JiwgSlNDOjpUaHJvd1Njb3BlJik7CiAgICAgVGVzdFNlcmlhbGl6YXRp
b25Jbmhlcml0RmluYWwmIHdyYXBwZWQoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PFRlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsJj4oQmFzZTo6d3JhcHBlZCgp
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UuY3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTQgKzI3LDE4IEBACiAjaW5jbHVkZSAiSlNET01B
dHRyaWJ1dGUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNv
bnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgor
I2luY2x1ZGUgIkpTRE9NQ29udmVydEludGVyZmFjZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVy
dFNlcXVlbmNlcy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKKyNpbmNsdWRlICJKU0RP
TUdsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAi
SlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJKU01lc3NhZ2VQb3J0LmgiCiAjaW5jbHVk
ZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblBy
b3RvdHlwZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNBcnJheS5oPgorI2luY2x1ZGUgPHJ1bnRp
bWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIEpTQzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTdGFuZGFsb25lRGljdGlvbmFyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0YW5kYWxvbmVEaWN0aW9uYXJ5LmNw
cAkocmV2aXNpb24gMjE4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFN0YW5kYWxvbmVEaWN0aW9uYXJ5LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjQsNiArMjQsOSBAQAogCiAjaW5jbHVkZSAiSlNUZXN0U3RhbmRhbG9uZURpY3Rpb25hcnkuaCIK
IAorI2luY2x1ZGUgIkpTRE9NQ29udmVydEJvb2xlYW4uaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZl
cnRTdHJpbmdzLmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8
cnVudGltZS9KU1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCkBA
IC0zMSw2ICszNCw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorI2lmIEVOQUJMRShDb25kaXRpb24xKQorCiB0ZW1wbGF0ZTw+IERpY3Rpb25hcnlJbXBs
TmFtZSBjb252ZXJ0RGljdGlvbmFyeTxEaWN0aW9uYXJ5SW1wbE5hbWU+KEV4ZWNTdGF0ZSYgc3Rh
dGUsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUudm0oKTsKQEAgLTY0LDYg
KzY5LDggQEAgdGVtcGxhdGU8PiBEaWN0aW9uYXJ5SW1wbE5hbWUgY29udmVydERpYwogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKKyNlbmRpZgorCiB0ZW1wbGF0ZTw+IEpTU3RyaW5nKiBjb252ZXJ0
RW51bWVyYXRpb25Ub0pTKEV4ZWNTdGF0ZSYgc3RhdGUsIFRlc3RTdGFuZGFsb25lRGljdGlvbmFy
eTo6RW51bUluU3RhbmRhbG9uZURpY3Rpb25hcnlGaWxlIGVudW1lcmF0aW9uVmFsdWUpCiB7CiAg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gdmFsdWVzW10gPSB7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RhbmRhbG9u
ZURpY3Rpb25hcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U3RhbmRhbG9uZURpY3Rpb25hcnkuaAkocmV2aXNpb24gMjE4Mjk5
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0YW5k
YWxvbmVEaWN0aW9uYXJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDcgKzIzLDggQEAKICNpZiBF
TkFCTEUoQ29uZGl0aW9uMSkKIAogI2luY2x1ZGUgIkRpY3Rpb25hcnlJbXBsTmFtZS5oIgotI2lu
Y2x1ZGUgIkpTRE9NQ29udmVydC5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydERpY3Rpb25hcnku
aCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRFbnVtZXJhdGlvbi5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTdGFuZGFsb25lRW51bWVyYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdGFuZGFsb25lRW51bWVyYXRpb24u
Y3BwCShyZXZpc2lvbiAyMTgyOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U3RhbmRhbG9uZUVudW1lcmF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjQsNiArMjQsNyBAQAogCiAjaW5jbHVkZSAiSlNUZXN0U3RhbmRhbG9uZUVudW1lcmF0aW9u
LmgiCiAKKyNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxydW50aW1l
L0pTU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdGFuZGFsb25lRW51
bWVyYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U3RhbmRhbG9uZUVudW1lcmF0aW9uLmgJKHJldmlzaW9uIDIxODI5OSkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdGFuZGFs
b25lRW51bWVyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQAogCiAjaWYg
RU5BQkxFKENPTkRJVElPTikKIAotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgorI2luY2x1ZGUg
IkpTRE9NQ29udmVydEVudW1lcmF0aW9uLmgiCiAjaW5jbHVkZSAiVGVzdFN0YW5kYWxvbmVFbnVt
ZXJhdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5j
cHAJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDggKzI0LDE3
IEBACiAjaW5jbHVkZSAiSlNET01BdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcu
aCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yLmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0
LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0Qm9vbGVhbi5oIgorI2luY2x1ZGUgIkpTRE9NQ29u
dmVydENhbGxiYWNrcy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEludGVyZmFjZS5oIgorI2lu
Y2x1ZGUgIkpTRE9NQ29udmVydE51bGxhYmxlLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0TnVt
YmVycy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFNlcXVlbmNlcy5oIgorI2luY2x1ZGUgIkpT
RE9NQ29udmVydFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVy
dFN0cmluZ3MuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRVbmlvbi5oIgogI2luY2x1ZGUgIkpT
RE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKKyNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgog
I2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUu
aCIKICNpbmNsdWRlICJKU1NWR1BvaW50LmgiCkBAIC0zNCw5ICs0Myw5IEBACiAjaW5jbHVkZSAi
SlNUZXN0RXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJKU1Rlc3RTdWJPYmouaCIKICNpbmNsdWRl
ICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKLSNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CiAj
aW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUv
SlNBcnJheS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0
Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Vm9pZENhbGxiYWNrRnVuY3Rpb24u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RWb2lkQ2FsbGJhY2tGdW5jdGlvbi5jcHAJKHJldmlzaW9uIDIxODI5OSkKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RWb2lkQ2FsbGJhY2tG
dW5jdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDggKzI0LDE0IEBACiAKICNpbmNsdWRl
ICJKU1Rlc3RWb2lkQ2FsbGJhY2tGdW5jdGlvbi5oIgogCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0
LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0Qm9vbGVhbi5oIgorI2luY2x1ZGUgIkpTRE9NQ29u
dmVydEJ1ZmZlclNvdXJjZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEludGVyZmFjZS5oIgor
I2luY2x1ZGUgIkpTRE9NQ29udmVydE51bWJlcnMuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgi
CiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgorI2luY2x1ZGUgIkpTRE9NR2xv
YmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNUZXN0Tm9kZS5oIgogI2luY2x1ZGUgIlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAJKHJldmlzaW9uIDIxODI5OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgs
OCBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVk
ZSAiSFRNTElGcmFtZUVsZW1lbnQuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNs
dWRlICJKU0RPTUNvbnZlcnRJbnRlcmZhY2UuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnROdWxs
YWJsZS5oIgogI2luY2x1ZGUgIkpTRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJKU0V2ZW50VGFy
Z2V0Q3VzdG9tLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAJKHJldmlzaW9u
IDIxODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDkgQEAKICNpbmNsdWRlICJFdmVudE5hbWVz
LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VM
b2FkZXIuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRCb29sZWFuLmgiCisjaW5jbHVkZSAiSlNE
T01Db252ZXJ0SW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgog
I2luY2x1ZGUgIkpTU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312953</attachid>
            <date>2017-06-14 21:24:20 -0700</date>
            <delta_ts>2017-06-15 10:49:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173392-20170614212457.patch</filename>
            <type>text/plain</type>
            <size>144304</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxODMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzMiBAQAorMjAxNy0wNi0xNCAgU2FtIFdl
aW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIFtXZWJJRExdIFJlcGxhY2UgZ2VuZXJh
bCBpbmNsdXNpb24gb2YgSlNET01Db252ZXJ0Lmggd2l0aCBpbmNsdXNpb24gb2YgaW5kaXZpZHVh
bCBjb252ZXJ0ZXIgZmlsZXMgdG8gcmVkdWNlIHVubmVjZXNzYXJ5IGluY2x1c2lvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMzkyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RvcCBpbmNsdWRpbmcg
dGhlIHVtYnJlbGxhIGhlYWRlciBKU0RPTUNvbnZlcnQuaCBpbiBldmVyeSBnZW5lcmF0ZWQgYmlu
ZGluZ3MgYW5kIAorICAgICAgICBpbnN0ZWFkIG9ubHkgaW5jbHVkZSB0aGUgc3BlY2lmaWMgY29u
dmVydGVyIG5lZWRlZC4gVGhlbiwgZ28gYXJvdW5kIGFuZCBhZGQgYWxsIHRoZQorICAgICAgICBu
b3cgbWlzc2luZyBpbmNsdWRlcyB0aGF0IHVzZWQgdG8gYmUgb2J0YWluZWQgdHJhbnNpdGl2ZWx5
LgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHA6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5j
cHA6CisgICAgICAgICogTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50
Lm1tOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHA6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuY3BwOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Q3VzdG9tLmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRCYXNlLmg6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNET01Db252ZXJ0SW50ZXJmYWNlLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01Db252
ZXJ0UmVjb3JkLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01Db252ZXJ0U2VxdWVuY2Vz
Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01Db252ZXJ0VW5pb24uaDoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d1Byb3BlcnRpZXMuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20u
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTSFRNTENhbnZhc0VsZW1lbnRDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
SFRNTERvY3VtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hpc3RvcnlD
dXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTWVzc2FnZUV2ZW50OjpkYXRhKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3NDdXN0b20uY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5jcHA6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1hN
TEh0dHBSZXF1ZXN0OjpyZXRyaWV2ZVJlc3BvbnNlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9T
Y3JpcHRHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG06CisgICAgICAgIChBZGRUb0luY2x1ZGVzRm9ySURMVHlwZSk6CisgICAgICAgIChHZXRK
U0NBdHRyaWJ1dGVzRm9yQXR0cmlidXRlKToKKyAgICAgICAgKEdlbmVyYXRlRW51bWVyYXRpb25I
ZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVFbnVtZXJhdGlvbkltcGxlbWVudGF0aW9uKToKKyAg
ICAgICAgKEdlbmVyYXRlRW51bWVyYXRpb25JbXBsZW1lbnRhdGlvbkNvbnRlbnQpOgorICAgICAg
ICAoR2VuZXJhdGVFbnVtZXJhdGlvbnNJbXBsZW1lbnRhdGlvbkNvbnRlbnQpOgorICAgICAgICAo
R2VuZXJhdGVFbnVtZXJhdGlvbkhlYWRlckNvbnRlbnQpOgorICAgICAgICAoR2VuZXJhdGVFbnVt
ZXJhdGlvbnNIZWFkZXJDb250ZW50KToKKyAgICAgICAgKEdlbmVyYXRlRGljdGlvbmFyeUhlYWRl
ckNvbnRlbnQpOgorICAgICAgICAoR2VuZXJhdGVEaWN0aW9uYXJpZXNIZWFkZXJDb250ZW50KToK
KyAgICAgICAgKEdlbmVyYXRlRGljdGlvbmFyeUltcGxlbWVudGF0aW9uQ29udGVudCk6CisgICAg
ICAgIChHZW5lcmF0ZURpY3Rpb25hcmllc0ltcGxlbWVudGF0aW9uQ29udGVudCk6CisgICAgICAg
IChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZVByb3BlcnRpZXNIYXNoVGFibGUp
OgorICAgICAgICAoR2VuZXJhdGVPdmVybG9hZERpc3BhdGNoZXIpOgorICAgICAgICAoR2VuZXJh
dGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUF0dHJpYnV0ZUdldHRlckRlZmlu
aXRpb24pOgorICAgICAgICAoR2VuZXJhdGVTZXJpYWxpemVyRGVmaW5pdGlvbik6CisgICAgICAg
IChHZW5lcmF0ZURpY3Rpb25hcnlIZWFkZXIpOgorICAgICAgICAoSlNWYWx1ZVRvTmF0aXZlKToK
KyAgICAgICAgKE5hdGl2ZVRvSlNWYWx1ZVVzaW5nUmVmZXJlbmNlcyk6CisgICAgICAgIChOYXRp
dmVUb0pTVmFsdWVVc2luZ1BvaW50ZXJzKToKKyAgICAgICAgKElzVmFsaWRDb250ZXh0Rm9yTmF0
aXZlVG9KU1ZhbHVlKToKKyAgICAgICAgKE5hdGl2ZVRvSlNWYWx1ZSk6CisgICAgICAgIChHZW5l
cmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbik6CisgICAgICAgIChDb21wdXRlRnVuY3Rpb25TcGVj
aWFsKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNNYXBMaWtlLmNwcDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seU1hcExpa2UuY3Bw
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmpl
Y3QuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0
aW9ucy5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVh
Y3Rpb25zU3RyaW5naWZpZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlvblJldGhyb3cuY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uV2l0aFR5cGVkZWZz
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tJ
bnRlcmZhY2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
YWxsYmFja0ludGVyZmFjZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RET01KSVQuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNw
cDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRl
clRocm93aW5nRXhjZXB0aW9uLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuY3Bw
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb24uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIuY3Bw
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJU
aHJvd2luZ0V4Y2VwdGlvbi5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3Bw
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5v
SWRlbnRpZmllci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJp
ZGVCdWlsdGlucy5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzLmNwcDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3Bl
cnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5vZGUuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnMuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHA6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5j
cHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VSZWpl
Y3Rpb25FdmVudC5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RT
ZXJpYWxpemF0aW9uLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U2VyaWFsaXphdGlvbi5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdC5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0Lmg6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwuY3BwOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5o
ZXJpdEZpbmFsLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFN0YW5kYWxvbmVEaWN0aW9uYXJ5LmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RhbmRhbG9uZURpY3Rpb25hcnkuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RhbmRhbG9uZUVudW1lcmF0
aW9uLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZz
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Vm9pZENhbGxi
YWNrRnVuY3Rpb24uY3BwOgorICAgICAgICAqIGRvbS9Nb3VzZUV2ZW50LmNwcDoKKyAgICAgICAg
KiBodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwOgorCiAyMDE3LTA2LTE0ICBBbnRvaW5l
IFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgUmViYXNlbGluZSBtZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtZG9jdW1lbnRzCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAkocmV2aXNpb24gMjE4MzE0
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDkgQEAKICNpbmNsdWRlICJJREJLZXlEYXRhLmgiCiAj
aW5jbHVkZSAiSURCT2JqZWN0U3RvcmUuaCIKICNpbmNsdWRlICJJREJSZXN1bHREYXRhLmgiCi0j
aW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0SW5kZXhlZERC
LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0TnVtYmVycy5oIgorI2luY2x1ZGUgIkpTRE9NQ29u
dmVydFNlcXVlbmNlcy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTY29wZUd1
YXJkLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgpJbmRleDogU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRw
b2ludC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAJKHJldmlzaW9uIDIxODMxNCkK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q01lZGlhRW5kcG9pbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw2IEBACiAjaWYg
VVNFKExJQldFQlJUQykKIAogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKLSNpbmNsdWRlICJKU0RP
TUNvbnZlcnQuaCIKICNpbmNsdWRlICJKU1JUQ1N0YXRzUmVwb3J0LmgiCiAjaW5jbHVkZSAiTGli
V2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyLmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDUGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVp
Y2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCShyZXZpc2lvbiAy
MTgzMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2lu
UmVwbGFjZW1lbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDkgQEAKICNpbXBvcnQg
IkhUTUxQbHVnSW5FbGVtZW50LmgiCiAjaW1wb3J0ICJIVE1MVmlkZW9FbGVtZW50LmgiCiAjaW1w
b3J0ICJKU0RPTUJpbmRpbmcuaCIKKyNpbXBvcnQgIkpTRE9NQ29udmVydE51bGxhYmxlLmgiCisj
aW1wb3J0ICJKU0RPTUNvbnZlcnRTZXF1ZW5jZXMuaCIKKyNpbXBvcnQgIkpTRE9NQ29udmVydFN0
cmluZ3MuaCIKICNpbXBvcnQgIkpTRE9NR2xvYmFsT2JqZWN0LmgiCiAjaW1wb3J0ICJKU0hUTUxW
aWRlb0VsZW1lbnQuaCIKICNpbXBvcnQgIkpTUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuaCIK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGls
aXRpZXMuY3BwCShyZXZpc2lvbiAyMTgzMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsOCArMzgsOCBA
QAogI2luY2x1ZGUgIklEQlZhbHVlLmgiCiAjaW5jbHVkZSAiSW5kZXhLZXkuaCIKICNpbmNsdWRl
ICJKU0RPTUJpbmRpbmcuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKLSNpbmNsdWRlICJK
U0RPTVN0cmluZ0xpc3QuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnREYXRlLmgiCisjaW5jbHVk
ZSAiSlNET01Db252ZXJ0TnVsbGFibGUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVk
ZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0
b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5
bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAJKHJldmlzaW9uIDIxODMxNCkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM1LDYgKzM1LDggQEAKICNpbmNsdWRlICJEZXByZWNhdGVkQ1NTT01QcmltaXRp
dmVWYWx1ZS5oIgogI2luY2x1ZGUgIkhhc2hUb29scy5oIgogI2luY2x1ZGUgIkpTQ1NTU3R5bGVE
ZWNsYXJhdGlvbi5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bGxhYmxlLmgiCisjaW5jbHVk
ZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRGVwcmVjYXRlZENTU09NVmFs
dWUuaCIKICNpbmNsdWRlICJKU05vZGUuaCIKICNpbmNsdWRlICJKU1N0eWxlU2hlZXRDdXN0b20u
aCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGlj
dGlvbmFyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlND
cnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcAkocmV2aXNpb24gMjE4MzE0KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDEsNyArNDEsOSBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIK
ICNpbmNsdWRlICJKU0NyeXB0b09wZXJhdGlvbkRhdGEuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRp
bmcuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRC
dWZmZXJTb3VyY2UuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnROdW1iZXJzLmgiCisjaW5jbHVk
ZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVu
dEludGVyZmFjZS5jcHAJKHJldmlzaW9uIDIxODMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMx
LDYgKzMxLDggQEAKICNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKICNpbmNsdWRlICJIVE1M
VW5rbm93bkVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJK
U0RPTUNvbnZlcnROdWxsYWJsZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFN0cmluZ3MuaCIK
ICNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTRWxlbWVudC5oIgog
I2luY2x1ZGUgIkpTSFRNTEVsZW1lbnQuaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRSZWdpc3RyeUN1c3RvbS5jcHAJ
KHJldmlzaW9uIDIxODMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9t
RWxlbWVudFJlZ2lzdHJ5Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsOCBA
QAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVy
ZmFjZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVy
dC5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFNlcXVlbmNlcy5oIgorI2luY2x1ZGUgIkpTRE9N
Q29udmVydFN0cmluZ3MuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogCiB1
c2luZyBuYW1lc3BhY2UgSlNDOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01Db252ZXJ0QmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NQ29udmVydEJhc2UuaAkocmV2aXNpb24gMjE4MzE0KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01Db252ZXJ0QmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICsz
MiwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBDb252ZXJzaW9uIGZyb20gSlNWYWx1ZSAt
PiBJbXBsZW1lbnRhdGlvbgogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IENvbnZlcnRlcjsK
IAorbmFtZXNwYWNlIERldGFpbCB7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgVCog
Z2V0UHRyT3JSZWYoY29uc3QgVCogcCkgeyByZXR1cm4gY29uc3RfY2FzdDxUKj4ocCk7IH0KK3Rl
bXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgVCYgZ2V0UHRyT3JSZWYoY29uc3QgVCYgcCkgeyBy
ZXR1cm4gY29uc3RfY2FzdDxUJj4ocCk7IH0KK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUg
VCogZ2V0UHRyT3JSZWYoY29uc3QgUmVmUHRyPFQ+JiBwKSB7IHJldHVybiBwLmdldCgpOyB9Cit0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIFQmIGdldFB0ck9yUmVmKGNvbnN0IFJlZjxUPiYg
cCkgeyByZXR1cm4gcC5nZXQoKTsgfQorCit9CiAKIHN0cnVjdCBEZWZhdWx0RXhjZXB0aW9uVGhy
b3dlciB7CiAgICAgdm9pZCBvcGVyYXRvcigpKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpU
aHJvd1Njb3BlJiBzY29wZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
Q29udmVydEludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQ29udmVydEludGVyZmFjZS5oCShyZXZpc2lvbiAyMTgzMTQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRJbnRlcmZhY2UuaAkod29ya2luZyBjb3B5
KQpAQCAtNDksMTUgKzQ5LDYgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IENvbnZlcnRl
cjxJRAogICAgIH0KIH07CiAKLW5hbWVzcGFjZSBEZXRhaWwgewotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4gaW5saW5lIFQqIGdldFB0ck9yUmVmKGNvbnN0IFQqIHApIHsgcmV0dXJuIGNvbnN0X2Nh
c3Q8VCo+KHApOyB9Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIFQmIGdldFB0ck9yUmVm
KGNvbnN0IFQmIHApIHsgcmV0dXJuIGNvbnN0X2Nhc3Q8VCY+KHApOyB9Ci10ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4gaW5saW5lIFQqIGdldFB0ck9yUmVmKGNvbnN0IFJlZlB0cjxUPiYgcCkgeyByZXR1
cm4gcC5nZXQoKTsgfQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGlubGluZSBUJiBnZXRQdHJPclJl
Zihjb25zdCBSZWY8VD4mIHApIHsgcmV0dXJuIHAuZ2V0KCk7IH0KLQotfQotCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBzdHJ1Y3QgSlNDb252ZXJ0ZXI8SURMSW50ZXJmYWNlPFQ+PiB7CiAgICAgc3Rh
dGljIGNvbnN0ZXhwciBib29sIG5lZWRzU3RhdGUgPSB0cnVlOwogICAgIHN0YXRpYyBjb25zdGV4
cHIgYm9vbCBuZWVkc0dsb2JhbE9iamVjdCA9IHRydWU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRSZWNvcmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRSZWNvcmQuaAkocmV2aXNpb24gMjE4MzE0KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0UmVjb3JkLmgJKHdvcmtp
bmcgY29weSkKQEAgLTE0MCw3ICsxNDAsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLLCB0eXBlbmFt
ZSBWPiBzdHJ1Y3QgCiAgICAgICAgIGF1dG8mIHZtID0gc3RhdGUudm0oKTsKICAgICAKICAgICAg
ICAgLy8gMS4gTGV0IHJlc3VsdCBiZSAhIE9iamVjdENyZWF0ZSglT2JqZWN0UHJvdG90eXBlJSku
Ci0gICAgICAgIGF1dG8gcmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoJnN0YXRlKTsKKyAg
ICAgICAgYXV0byByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdCgmc3RhdGUsIGdsb2JhbE9i
amVjdC5vYmplY3RQcm90b3R5cGUoKSk7CiAgICAgICAgIAogICAgICAgICAvLyAyLiBSZXBlYXQs
IGZvciBlYWNoIG1hcHBpbmcgKGtleSwgdmFsdWUpIGluIEQ6CiAgICAgICAgIGZvciAoY29uc3Qg
YXV0byYga2V5VmFsdWVQYWlyIDogbWFwKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUNvbnZlcnRTZXF1ZW5jZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRTZXF1ZW5jZXMuaAkocmV2aXNpb24gMjE4MzE0KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0U2VxdWVuY2VzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI3LDkgKzI3LDEyIEBACiAKICNpbmNsdWRlICJJRExUeXBlcy5oIgog
I2luY2x1ZGUgIkpTRE9NQ29udmVydEJhc2UuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnROdW1i
ZXJzLmgiCisjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlIDxydW50aW1l
L0l0ZXJhdG9yT3BlcmF0aW9ucy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNBcnJheS5oPgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3RJbmxpbmVzLmg+CisjaW5jbHVkZSA8cnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQxMiwz
ICs0MTUsNCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSlNDb252ZXJ0ZXI8CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQ29udmVydFVuaW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01Db252ZXJ0VW5pb24uaAkocmV2aXNpb24gMjE4MzE0KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0VW5pb24uaAkod29ya2luZyBjb3B5KQpA
QCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIklETFR5cGVzLmgiCiAjaW5jbHVkZSAiSlNET01C
aW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0QmFzZS5oIgorI2luY2x1ZGUgIkpTRE9N
Q29udmVydE51bGwuaCIKICNpbmNsdWRlIDxydW50aW1lL0l0ZXJhdG9yT3BlcmF0aW9ucy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUdsb2JhbE9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgJKHJldmlzaW9uIDIxODMxNCkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1
LDk4ICszNSw5OCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBET01HdWFy
ZGVkT2JqZWN0OwotICAgIGNsYXNzIERvY3VtZW50OwotICAgIGNsYXNzIEV2ZW50OwotICAgIGNs
YXNzIERPTVdyYXBwZXJXb3JsZDsKLSAgICBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Owor
Y2xhc3MgRE9NR3VhcmRlZE9iamVjdDsKK2NsYXNzIERvY3VtZW50OworY2xhc3MgRXZlbnQ7Citj
bGFzcyBET01XcmFwcGVyV29ybGQ7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCi0g
ICAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiwgSlNDOjpXcml0ZUJhcnJp
ZXI8SlNDOjpTdHJ1Y3R1cmU+PiBKU0RPTVN0cnVjdHVyZU1hcDsKLSAgICB0eXBlZGVmIEhhc2hN
YXA8Y29uc3QgSlNDOjpDbGFzc0luZm8qLCBKU0M6OldyaXRlQmFycmllcjxKU0M6OkpTT2JqZWN0
Pj4gSlNET01Db25zdHJ1Y3Rvck1hcDsKLSAgICB0eXBlZGVmIEhhc2hTZXQ8RE9NR3VhcmRlZE9i
amVjdCo+IERPTUd1YXJkZWRPYmplY3RTZXQ7Cit0eXBlZGVmIEhhc2hNYXA8Y29uc3QgSlNDOjpD
bGFzc0luZm8qLCBKU0M6OldyaXRlQmFycmllcjxKU0M6OlN0cnVjdHVyZT4+IEpTRE9NU3RydWN0
dXJlTWFwOwordHlwZWRlZiBIYXNoTWFwPGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiwgSlNDOjpXcml0
ZUJhcnJpZXI8SlNDOjpKU09iamVjdD4+IEpTRE9NQ29uc3RydWN0b3JNYXA7Cit0eXBlZGVmIEhh
c2hTZXQ8RE9NR3VhcmRlZE9iamVjdCo+IERPTUd1YXJkZWRPYmplY3RTZXQ7CiAKLSAgICBjbGFz
cyBXRUJDT1JFX0VYUE9SVCBKU0RPTUdsb2JhbE9iamVjdCA6IHB1YmxpYyBKU0M6OkpTR2xvYmFs
T2JqZWN0IHsKLSAgICAgICAgdHlwZWRlZiBKU0M6OkpTR2xvYmFsT2JqZWN0IEJhc2U7Ci0gICAg
cHJvdGVjdGVkOgotICAgICAgICBzdHJ1Y3QgSlNET01HbG9iYWxPYmplY3REYXRhOworY2xhc3Mg
V0VCQ09SRV9FWFBPUlQgSlNET01HbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNDOjpKU0dsb2JhbE9i
amVjdCB7CisgICAgdHlwZWRlZiBKU0M6OkpTR2xvYmFsT2JqZWN0IEJhc2U7Citwcm90ZWN0ZWQ6
CisgICAgc3RydWN0IEpTRE9NR2xvYmFsT2JqZWN0RGF0YTsKIAotICAgICAgICBKU0RPTUdsb2Jh
bE9iamVjdChKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBSZWY8RE9NV3JhcHBlcldvcmxkPiYm
LCBjb25zdCBKU0M6Okdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKiA9IDApOwotICAgICAgICBzdGF0
aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7Ci0gICAgICAgIHZvaWQgZmluaXNoQ3JlYXRp
b24oSlNDOjpWTSYpOwotICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0M6
OkpTT2JqZWN0Kik7CisgICAgSlNET01HbG9iYWxPYmplY3QoSlNDOjpWTSYsIEpTQzo6U3RydWN0
dXJlKiwgUmVmPERPTVdyYXBwZXJXb3JsZD4mJiwgY29uc3QgSlNDOjpHbG9iYWxPYmplY3RNZXRo
b2RUYWJsZSogPSAwKTsKKyAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7Cisg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlv
bihKU0M6OlZNJiwgSlNDOjpKU09iamVjdCopOwogCi0gICAgcHVibGljOgotICAgICAgICBMb2Nr
JiBnY0xvY2soKSB7IHJldHVybiBtX2djTG9jazsgfQorcHVibGljOgorICAgIExvY2smIGdjTG9j
aygpIHsgcmV0dXJuIG1fZ2NMb2NrOyB9CiAKLSAgICAgICAgSlNET01TdHJ1Y3R1cmVNYXAmIHN0
cnVjdHVyZXMoY29uc3QgQWJzdHJhY3RMb2NrZXImKSB7IHJldHVybiBtX3N0cnVjdHVyZXM7IH0K
LSAgICAgICAgSlNET01Db25zdHJ1Y3Rvck1hcCYgY29uc3RydWN0b3JzKGNvbnN0IEFic3RyYWN0
TG9ja2VyJikgeyByZXR1cm4gbV9jb25zdHJ1Y3RvcnM7IH0KKyAgICBKU0RPTVN0cnVjdHVyZU1h
cCYgc3RydWN0dXJlcyhjb25zdCBBYnN0cmFjdExvY2tlciYpIHsgcmV0dXJuIG1fc3RydWN0dXJl
czsgfQorICAgIEpTRE9NQ29uc3RydWN0b3JNYXAmIGNvbnN0cnVjdG9ycyhjb25zdCBBYnN0cmFj
dExvY2tlciYpIHsgcmV0dXJuIG1fY29uc3RydWN0b3JzOyB9CiAKLSAgICAgICAgRE9NR3VhcmRl
ZE9iamVjdFNldCYgZ3VhcmRlZE9iamVjdHMoY29uc3QgQWJzdHJhY3RMb2NrZXImKSB7IHJldHVy
biBtX2d1YXJkZWRPYmplY3RzOyB9CisgICAgRE9NR3VhcmRlZE9iamVjdFNldCYgZ3VhcmRlZE9i
amVjdHMoY29uc3QgQWJzdHJhY3RMb2NrZXImKSB7IHJldHVybiBtX2d1YXJkZWRPYmplY3RzOyB9
CiAKLSAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpIGNvbnN0OworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSBjb25zdDsKIAotICAgICAgICAvLyBNYWtlIGJpbmRpbmcgY29kZSBnZW5lcmF0aW9u
IGVhc2llci4KLSAgICAgICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCgpIHsgcmV0
dXJuIHRoaXM7IH0KKyAgICAvLyBNYWtlIGJpbmRpbmcgY29kZSBnZW5lcmF0aW9uIGVhc2llci4K
KyAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCkgeyByZXR1cm4gdGhpczsgfQog
Ci0gICAgICAgIHZvaWQgc2V0Q3VycmVudEV2ZW50KEV2ZW50Kik7Ci0gICAgICAgIEV2ZW50KiBj
dXJyZW50RXZlbnQoKSBjb25zdDsKKyAgICB2b2lkIHNldEN1cnJlbnRFdmVudChFdmVudCopOwor
ICAgIEV2ZW50KiBjdXJyZW50RXZlbnQoKSBjb25zdDsKIAotICAgICAgICBzdGF0aWMgdm9pZCB2
aXNpdENoaWxkcmVuKEpTQzo6SlNDZWxsKiwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHN0YXRp
YyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDOjpKU0NlbGwqLCBKU0M6OlNsb3RWaXNpdG9yJik7CiAK
LSAgICAgICAgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCgpIHsgcmV0dXJuIG1fd29ybGQuZ2V0KCk7
IH0KLSAgICAgICAgYm9vbCB3b3JsZElzTm9ybWFsKCkgY29uc3QgeyByZXR1cm4gbV93b3JsZElz
Tm9ybWFsOyB9Ci0gICAgICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZXb3JsZElzTm9ybWFs
KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEpTRE9NR2xvYmFsT2JqZWN0LCBtX3dvcmxkSXNO
b3JtYWwpOyB9CisgICAgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCgpIHsgcmV0dXJuIG1fd29ybGQu
Z2V0KCk7IH0KKyAgICBib29sIHdvcmxkSXNOb3JtYWwoKSBjb25zdCB7IHJldHVybiBtX3dvcmxk
SXNOb3JtYWw7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mV29ybGRJc05vcm1hbCgp
IHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU0RPTUdsb2JhbE9iamVjdCwgbV93b3JsZElzTm9y
bWFsKTsgfQogCi0gICAgICAgIEpTQnVpbHRpbkludGVybmFsRnVuY3Rpb25zJiBidWlsdGluSW50
ZXJuYWxGdW5jdGlvbnMoKSB7IHJldHVybiBtX2J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9uczsgfQor
ICAgIEpTQnVpbHRpbkludGVybmFsRnVuY3Rpb25zJiBidWlsdGluSW50ZXJuYWxGdW5jdGlvbnMo
KSB7IHJldHVybiBtX2J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9uczsgfQogCi0gICAgcHJvdGVjdGVk
OgotICAgICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOworcHJvdGVjdGVk
OgorICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAKLSAgICBwdWJsaWM6
Ci0gICAgICAgIH5KU0RPTUdsb2JhbE9iamVjdCgpOworcHVibGljOgorICAgIH5KU0RPTUdsb2Jh
bE9iamVjdCgpOwogCi0gICAgICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgSlNDOjpDbGFzc0lu
Zm8qIGluZm8oKSB7IHJldHVybiAmc19pbmZvOyB9CisgICAgc3RhdGljIGNvbnN0ZXhwciBjb25z
dCBKU0M6OkNsYXNzSW5mbyogaW5mbygpIHsgcmV0dXJuICZzX2luZm87IH0KIAotICAgICAgICBz
dGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OlZNJiB2bSwgSlNDOjpK
U1ZhbHVlIHByb3RvdHlwZSkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3Ry
dWN0dXJlOjpjcmVhdGUodm0sIDAsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Okdsb2Jh
bE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKLSAgICAgICAgfQotCi0gICAg
cHJvdGVjdGVkOgotICAgICAgICBKU0RPTVN0cnVjdHVyZU1hcCBtX3N0cnVjdHVyZXM7Ci0gICAg
ICAgIEpTRE9NQ29uc3RydWN0b3JNYXAgbV9jb25zdHJ1Y3RvcnM7Ci0gICAgICAgIERPTUd1YXJk
ZWRPYmplY3RTZXQgbV9ndWFyZGVkT2JqZWN0czsKLQotICAgICAgICBFdmVudCogbV9jdXJyZW50
RXZlbnQ7Ci0gICAgICAgIFJlZjxET01XcmFwcGVyV29ybGQ+IG1fd29ybGQ7Ci0gICAgICAgIHVp
bnQ4X3QgbV93b3JsZElzTm9ybWFsOwotICAgICAgICBMb2NrIG1fZ2NMb2NrOwotCi0gICAgcHJp
dmF0ZToKLSAgICAgICAgdm9pZCBhZGRCdWlsdGluR2xvYmFscyhKU0M6OlZNJik7Ci0gICAgICAg
IGZyaWVuZCB2b2lkIEpTQnVpbHRpbkludGVybmFsRnVuY3Rpb25zOjppbml0aWFsaXplKEpTRE9N
R2xvYmFsT2JqZWN0Jik7Ci0KLSAgICAgICAgSlNCdWlsdGluSW50ZXJuYWxGdW5jdGlvbnMgbV9i
dWlsdGluSW50ZXJuYWxGdW5jdGlvbnM7Ci0gICAgfTsKLQotICAgIHRlbXBsYXRlPGNsYXNzIENv
bnN0cnVjdG9yQ2xhc3M+Ci0gICAgaW5saW5lIEpTQzo6SlNPYmplY3QqIGdldERPTUNvbnN0cnVj
dG9yKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQor
ICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBK
U0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAgaWYgKEpTQzo6SlNPYmplY3Qq
IGNvbnN0cnVjdG9yID0gY29uc3RfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCY+KGdsb2JhbE9iamVj
dCkuY29uc3RydWN0b3JzKE5vTG9ja2luZ05lY2Vzc2FyeSkuZ2V0KENvbnN0cnVjdG9yQ2xhc3M6
OmluZm8oKSkuZ2V0KCkpCi0gICAgICAgICAgICByZXR1cm4gY29uc3RydWN0b3I7Ci0gICAgICAg
IEpTQzo6SlNPYmplY3QqIGNvbnN0cnVjdG9yID0gQ29uc3RydWN0b3JDbGFzczo6Y3JlYXRlKHZt
LCBDb25zdHJ1Y3RvckNsYXNzOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGNvbnN0X2Nhc3Q8SlNET01H
bG9iYWxPYmplY3QmPihnbG9iYWxPYmplY3QpLCBDb25zdHJ1Y3RvckNsYXNzOjpwcm90b3R5cGVG
b3JTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCkpLCBjb25zdF9jYXN0PEpTRE9NR2xvYmFsT2Jq
ZWN0Jj4oZ2xvYmFsT2JqZWN0KSk7Ci0gICAgICAgIEFTU0VSVCghY29uc3RfY2FzdDxKU0RPTUds
b2JhbE9iamVjdCY+KGdsb2JhbE9iamVjdCkuY29uc3RydWN0b3JzKE5vTG9ja2luZ05lY2Vzc2Fy
eSkuY29udGFpbnMoQ29uc3RydWN0b3JDbGFzczo6aW5mbygpKSk7Ci0gICAgICAgIEpTQzo6V3Jp
dGVCYXJyaWVyPEpTQzo6SlNPYmplY3Q+IHRlbXA7Ci0gICAgICAgIEpTRE9NR2xvYmFsT2JqZWN0
JiBtdXRhYmxlR2xvYmFsT2JqZWN0ID0gY29uc3RfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCY+KGds
b2JhbE9iamVjdCk7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gSlNDOjpsb2NrRHVyaW5nTWFya2lu
Zyh2bS5oZWFwLCBtdXRhYmxlR2xvYmFsT2JqZWN0LmdjTG9jaygpKTsKLSAgICAgICAgbXV0YWJs
ZUdsb2JhbE9iamVjdC5jb25zdHJ1Y3RvcnMobG9ja2VyKS5hZGQoQ29uc3RydWN0b3JDbGFzczo6
aW5mbygpLCB0ZW1wKS5pdGVyYXRvci0+dmFsdWUuc2V0KHZtLCAmZ2xvYmFsT2JqZWN0LCBjb25z
dHJ1Y3Rvcik7Ci0gICAgICAgIHJldHVybiBjb25zdHJ1Y3RvcjsKKyAgICAgICAgcmV0dXJuIEpT
Qzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIDAsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6
Okdsb2JhbE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKLSAg
ICBKU0RPTUdsb2JhbE9iamVjdCogdG9KU0RPTUdsb2JhbE9iamVjdChEb2N1bWVudCosIEpTQzo6
RXhlY1N0YXRlKik7Ci0gICAgSlNET01HbG9iYWxPYmplY3QqIHRvSlNET01HbG9iYWxPYmplY3Qo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEpTQzo6RXhlY1N0YXRlKik7Citwcm90ZWN0ZWQ6Cisg
ICAgSlNET01TdHJ1Y3R1cmVNYXAgbV9zdHJ1Y3R1cmVzOworICAgIEpTRE9NQ29uc3RydWN0b3JN
YXAgbV9jb25zdHJ1Y3RvcnM7CisgICAgRE9NR3VhcmRlZE9iamVjdFNldCBtX2d1YXJkZWRPYmpl
Y3RzOworCisgICAgRXZlbnQqIG1fY3VycmVudEV2ZW50OworICAgIFJlZjxET01XcmFwcGVyV29y
bGQ+IG1fd29ybGQ7CisgICAgdWludDhfdCBtX3dvcmxkSXNOb3JtYWw7CisgICAgTG9jayBtX2dj
TG9jazsKKworcHJpdmF0ZToKKyAgICB2b2lkIGFkZEJ1aWx0aW5HbG9iYWxzKEpTQzo6Vk0mKTsK
KyAgICBmcmllbmQgdm9pZCBKU0J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9uczo6aW5pdGlhbGl6ZShK
U0RPTUdsb2JhbE9iamVjdCYpOworCisgICAgSlNCdWlsdGluSW50ZXJuYWxGdW5jdGlvbnMgbV9i
dWlsdGluSW50ZXJuYWxGdW5jdGlvbnM7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBDb25zdHJ1Y3Rv
ckNsYXNzPgoraW5saW5lIEpTQzo6SlNPYmplY3QqIGdldERPTUNvbnN0cnVjdG9yKEpTQzo6Vk0m
IHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQoreworICAgIGlmIChK
U0M6OkpTT2JqZWN0KiBjb25zdHJ1Y3RvciA9IGNvbnN0X2Nhc3Q8SlNET01HbG9iYWxPYmplY3Qm
PihnbG9iYWxPYmplY3QpLmNvbnN0cnVjdG9ycyhOb0xvY2tpbmdOZWNlc3NhcnkpLmdldChDb25z
dHJ1Y3RvckNsYXNzOjppbmZvKCkpLmdldCgpKQorICAgICAgICByZXR1cm4gY29uc3RydWN0b3I7
CisgICAgSlNDOjpKU09iamVjdCogY29uc3RydWN0b3IgPSBDb25zdHJ1Y3RvckNsYXNzOjpjcmVh
dGUodm0sIENvbnN0cnVjdG9yQ2xhc3M6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgY29uc3RfY2FzdDxK
U0RPTUdsb2JhbE9iamVjdCY+KGdsb2JhbE9iamVjdCksIENvbnN0cnVjdG9yQ2xhc3M6OnByb3Rv
dHlwZUZvclN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0KSksIGNvbnN0X2Nhc3Q8SlNET01HbG9i
YWxPYmplY3QmPihnbG9iYWxPYmplY3QpKTsKKyAgICBBU1NFUlQoIWNvbnN0X2Nhc3Q8SlNET01H
bG9iYWxPYmplY3QmPihnbG9iYWxPYmplY3QpLmNvbnN0cnVjdG9ycyhOb0xvY2tpbmdOZWNlc3Nh
cnkpLmNvbnRhaW5zKENvbnN0cnVjdG9yQ2xhc3M6OmluZm8oKSkpOworICAgIEpTQzo6V3JpdGVC
YXJyaWVyPEpTQzo6SlNPYmplY3Q+IHRlbXA7CisgICAgSlNET01HbG9iYWxPYmplY3QmIG11dGFi
bGVHbG9iYWxPYmplY3QgPSBjb25zdF9jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Jj4oZ2xvYmFsT2Jq
ZWN0KTsKKyAgICBhdXRvIGxvY2tlciA9IEpTQzo6bG9ja0R1cmluZ01hcmtpbmcodm0uaGVhcCwg
bXV0YWJsZUdsb2JhbE9iamVjdC5nY0xvY2soKSk7CisgICAgbXV0YWJsZUdsb2JhbE9iamVjdC5j
b25zdHJ1Y3RvcnMobG9ja2VyKS5hZGQoQ29uc3RydWN0b3JDbGFzczo6aW5mbygpLCB0ZW1wKS5p
dGVyYXRvci0+dmFsdWUuc2V0KHZtLCAmZ2xvYmFsT2JqZWN0LCBjb25zdHJ1Y3Rvcik7CisgICAg
cmV0dXJuIGNvbnN0cnVjdG9yOworfQorCitKU0RPTUdsb2JhbE9iamVjdCogdG9KU0RPTUdsb2Jh
bE9iamVjdChEb2N1bWVudCosIEpTQzo6RXhlY1N0YXRlKik7CitKU0RPTUdsb2JhbE9iamVjdCog
dG9KU0RPTUdsb2JhbE9iamVjdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgSlNDOjpFeGVjU3Rh
dGUqKTsKIAotICAgIEpTRE9NR2xvYmFsT2JqZWN0KiB0b0pTRE9NR2xvYmFsT2JqZWN0KERvY3Vt
ZW50KiwgRE9NV3JhcHBlcldvcmxkJik7Ci0gICAgSlNET01HbG9iYWxPYmplY3QqIHRvSlNET01H
bG9iYWxPYmplY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIERPTVdyYXBwZXJXb3JsZCYpOwor
SlNET01HbG9iYWxPYmplY3QqIHRvSlNET01HbG9iYWxPYmplY3QoRG9jdW1lbnQqLCBET01XcmFw
cGVyV29ybGQmKTsKK0pTRE9NR2xvYmFsT2JqZWN0KiB0b0pTRE9NR2xvYmFsT2JqZWN0KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBET01XcmFwcGVyV29ybGQmKTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0
b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93Q3VzdG9tLmNwcAkocmV2aXNpb24gMjE4MzE0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw5
IEBACiAjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJF
bGVtZW50LmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nU2VjdXJpdHkuaCIKKyNpbmNsdWRlICJK
U0RPTUNvbnZlcnROdWxsYWJsZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bWJlcnMuaCIK
KyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNFdmVudC5oIgog
I2luY2x1ZGUgIkpTRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIkpTSFRNTEF1ZGlvRWxlbWVu
dC5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dQcm9wZXJ0
aWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd1Byb3BlcnRpZXMuY3BwCShyZXZpc2lvbiAyMTgzMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd1Byb3BlcnRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
MCw2ICszMCw3IEBACiAjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCiAjaW5jbHVkZSAiSlNET01C
aW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nU2VjdXJpdHkuaCIKKyNpbmNsdWRlICJK
U0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dCYXNlLmgiCiAjaW5j
bHVkZSAiSlNFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNIVE1MQ29sbGVjdGlvbi5oIgpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAJKHJl
dmlzaW9uIDIxODMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRD
dXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxNiArMjUsMTQgQEAKICNpbmNsdWRlICJG
cmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgogI2luY2x1ZGUgIkpTQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5j
bHVkZSAiSlNET01Db252ZXJ0TnVtYmVycy5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9t
LmgiCiAjaW5jbHVkZSAiSlNIVE1MRG9jdW1lbnQuaCIKICNpbmNsdWRlICJKU0xvY2F0aW9uLmgi
CiAjaW5jbHVkZSAiSlNYTUxEb2N1bWVudC5oIgotI2luY2x1ZGUgIkxvY2F0aW9uLmgiCiAjaW5j
bHVkZSAiTm9kZVRyYXZlcnNhbC5oIgogI2luY2x1ZGUgIlNWR0RvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiU2NyaXB0Q29udHJvbGxlci5oIgotI2luY2x1ZGUgIlRvdWNoTGlzdC5oIgogI2luY2x1ZGUg
IlhNTERvY3VtZW50LmgiCiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwCShyZXZpc2lvbiAyMTgz
MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDggQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2lu
Y2x1ZGUgIkVycm9yRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgotI2luY2x1ZGUgIkpTRE9N
Q29udmVydC5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bWJlcnMuaCIKKyNpbmNsdWRlICJK
U0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNFdmVudC5oIgogI2luY2x1ZGUgIkpT
TWFpblRocmVhZEV4ZWNTdGF0ZS5oIgogI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZUlu
c3RydW1lbnRhdGlvbi5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVu
dExpc3RlbmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0V2ZW50TGlzdGVuZXIuY3BwCShyZXZpc2lvbiAyMTgzMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiwxMCAr
MjIsMTAgQEAKIAogI2luY2x1ZGUgIkJlZm9yZVVubG9hZEV2ZW50LmgiCiAjaW5jbHVkZSAiQ29u
dGVudFNlY3VyaXR5UG9saWN5LmgiCi0jaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJGcmFt
ZS5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0Lmgi
CisjaW5jbHVkZSAiSlNET01Db252ZXJ0TnVsbGFibGUuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZl
cnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNEb2N1bWVudC5oIgogI2luY2x1ZGUgIkpTRXZlbnQu
aCIKICNpbmNsdWRlICJKU0V2ZW50VGFyZ2V0LmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0hUTUxDYW52YXNFbGVtZW50Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxDYW52YXNFbGVtZW50Q3VzdG9tLmNwcAkocmV2
aXNpb24gMjE4MzE0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQ2FudmFz
RWxlbWVudEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDggKzI5LDkgQEAKIAogI2lu
Y2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuaCIKLSNpbmNsdWRlIDxiaW5kaW5ncy9TY3JpcHRPYmplY3QuaD4KLSNpbmNsdWRl
IDx3dGYvR2V0UHRyLmg+CisjaW5jbHVkZSAiSlNET01Db252ZXJ0RGljdGlvbmFyeS5oIgorI2lu
Y2x1ZGUgIkpTRE9NQ29udmVydE51bGxhYmxlLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3Ry
aW5ncy5oIgogCiAjaWYgRU5BQkxFKFdFQkdMKQogI2luY2x1ZGUgIkpTV2ViR0xDb250ZXh0QXR0
cmlidXRlcy5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRG9jdW1l
bnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
SFRNTERvY3VtZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gMjE4MzE0KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNIVE1MRG9jdW1lbnRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNyw2ICsyNyw4IEBACiAjaW5jbHVkZSAiSlNIVE1MRG9jdW1lbnQuaCIKIAogI2luY2x1ZGUg
IkpTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0SW50ZXJm
YWNlLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0VW5pb24uaCIKICNpbmNsdWRlICJKU0RPTVdp
bmRvd0N1c3RvbS5oIgogI2luY2x1ZGUgIkpTSFRNTENvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJT
ZWdtZW50ZWRTdHJpbmcuaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSGlz
dG9yeUN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNIaXN0b3J5Q3VzdG9tLmNwcAkocmV2aXNpb24gMjE4MzE0KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNIaXN0b3J5Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyAr
MzEsOCBAQAogCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
Ci0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0TnVsbGFi
bGUuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0Z1bmN0aW9uLmg+CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1
c3RvbS5jcHAJKHJldmlzaW9uIDIxODMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTEgKzMzLDEy
IEBACiAKICNpbmNsdWRlICJKU0Jsb2IuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKLSNp
bmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRCdWZmZXJTb3Vy
Y2UuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRJbnRlcmZhY2UuaCIKKyNpbmNsdWRlICJKU0RP
TUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3cuaCIKICNpbmNsdWRlICJK
U0V2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiSlNNZXNzYWdlUG9ydC5oIgotI2luY2x1ZGUgIk1l
c3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNBcnJheS5oPgogI2luY2x1ZGUgPHJ1
bnRpbWUvSlNBcnJheUJ1ZmZlci5oPgogCkBAIC04NiwxNSArODcsMTUgQEAgSlNWYWx1ZSBKU01l
c3NhZ2VFdmVudDo6ZGF0YShFeGVjU3RhdGUmIAogICAgICAgICBicmVhazsKIAogICAgIGNhc2Ug
TWVzc2FnZUV2ZW50OjpEYXRhVHlwZVN0cmluZzoKLSAgICAgICAgcmVzdWx0ID0ganNTdHJpbmdX
aXRoQ2FjaGUoJnN0YXRlLCBldmVudC5kYXRhQXNTdHJpbmcoKSk7CisgICAgICAgIHJlc3VsdCA9
IHRvSlM8SURMRE9NU3RyaW5nPihzdGF0ZSwgZXZlbnQuZGF0YUFzU3RyaW5nKCkpOwogICAgICAg
ICBicmVhazsKIAogICAgIGNhc2UgTWVzc2FnZUV2ZW50OjpEYXRhVHlwZUJsb2I6Ci0gICAgICAg
IHJlc3VsdCA9IHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgZXZlbnQuZGF0YUFzQmxvYigp
KTsKKyAgICAgICAgcmVzdWx0ID0gdG9KUzxJRExJbnRlcmZhY2U8QmxvYj4+KHN0YXRlLCAqZ2xv
YmFsT2JqZWN0KCksIGV2ZW50LmRhdGFBc0Jsb2IoKSk7CiAgICAgICAgIGJyZWFrOwogCiAgICAg
Y2FzZSBNZXNzYWdlRXZlbnQ6OkRhdGFUeXBlQXJyYXlCdWZmZXI6Ci0gICAgICAgIHJlc3VsdCA9
IHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgZXZlbnQuZGF0YUFzQXJyYXlCdWZmZXIoKSk7
CisgICAgICAgIHJlc3VsdCA9IHRvSlM8SURMSW50ZXJmYWNlPEFycmF5QnVmZmVyPj4oc3RhdGUs
ICpnbG9iYWxPYmplY3QoKSwgZXZlbnQuZGF0YUFzQXJyYXlCdWZmZXIoKSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNb2NrQ29u
dGVudEZpbHRlclNldHRpbmdzQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3NDdXN0b20uY3BwCShyZXZp
c2lvbiAyMTgzMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01vY2tDb250ZW50
RmlsdGVyU2V0dGluZ3NDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBA
CiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQogCiAjaW5jbHVkZSAiSlNET01CaW5kaW5n
LmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0TnVt
YmVycy5oIgogI2luY2x1ZGUgIk1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaCIKIAogdXNpbmcg
bmFtZXNwYWNlIEpTQzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRp
b25DYWxsYmFjay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNNdXRhdGlvbkNhbGxiYWNrLmNwcAkocmV2aXNpb24gMjE4MzE0KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjcsNiArMjcsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTTXV0YXRpb25D
YWxsYmFjay5oIgogCisjaW5jbHVkZSAiSlNET01Db252ZXJ0SW50ZXJmYWNlLmgiCisjaW5jbHVk
ZSAiSlNET01Db252ZXJ0U2VxdWVuY2VzLmgiCiAjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3Qu
aCIKICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKICNpbmNsdWRlICJKU01haW5U
aHJlYWRFeGVjU3RhdGVJbnN0cnVtZW50YXRpb24uaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCShyZXZpc2lv
biAyMTgzMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0
Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksMjggKzI5LDE0IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVzdC5oIgogCi0jaW5jbHVkZSAiQmxv
Yi5oIgotI2luY2x1ZGUgIkRPTUZvcm1EYXRhLmgiCi0jaW5jbHVkZSAiRE9NV2luZG93LmgiCi0j
aW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJFdmVudC5oIgotI2luY2x1ZGUgIkZyYW1l
LmgiCi0jaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKLSNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIK
LSNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJKU0Jsb2Iu
aCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKLSNpbmNsdWRlICJKU0RPTUZvcm1EYXRhLmgi
Ci0jaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRC
dWZmZXJTb3VyY2UuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRJbnRlcmZhY2UuaCIKKyNpbmNs
dWRlICJKU0RPTUNvbnZlcnRKU09OLmgiCiAjaW5jbHVkZSAiSlNEb2N1bWVudC5oIgotI2luY2x1
ZGUgIkpTRXZlbnQuaCIKLSNpbmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuaCIKLSNpbmNsdWRlICJY
TUxIdHRwUmVxdWVzdC5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvQXJyYXlCdWZmZXIuaD4KLSNpbmNs
dWRlIDxydW50aW1lL0Vycm9yLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0FycmF5QnVmZmVyLmg+
CiAjaW5jbHVkZSA8cnVudGltZS9KU0FycmF5QnVmZmVyVmlldy5oPgotI2luY2x1ZGUgPHJ1bnRp
bWUvSlNPTk9iamVjdC5oPgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCkBAIC0xMDgsNyArOTQs
NyBAQCBKU1ZhbHVlIEpTWE1MSHR0cFJlcXVlc3Q6OnJldHJpZXZlUmVzcG9uCiAgICAgICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOwogCiAgICAgY2FzZSBYTUxIdHRwUmVxdWVzdDo6UmVzcG9uc2VU
eXBlOjpKc29uOgotICAgICAgICB2YWx1ZSA9IEpTT05QYXJzZSgmc3RhdGUsIHdyYXBwZWQoKS5y
ZXNwb25zZVRleHRJZ25vcmluZ1Jlc3BvbnNlVHlwZSgpKTsKKyAgICAgICAgdmFsdWUgPSB0b0pT
PElETEpTT04+KHN0YXRlLCB3cmFwcGVkKCkucmVzcG9uc2VUZXh0SWdub3JpbmdSZXNwb25zZVR5
cGUoKSk7CiAgICAgICAgIGlmICghdmFsdWUpCiAgICAgICAgICAgICB2YWx1ZSA9IGpzTnVsbCgp
OwogICAgICAgICBicmVhazsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dEdsb2JhbE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0R2xvYmFsT2JqZWN0LmNwcAkocmV2aXNpb24gMjE4MzE0KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0R2xvYmFsT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzEsOCArMzEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNjcmlwdEds
b2JhbE9iamVjdC5oIgogCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCi0jaW5jbHVkZSAiSlNE
T01FeGNlcHRpb25IYW5kbGluZy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEludGVyZmFjZS5o
IgogI2luY2x1ZGUgIkpTSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgiCiAjaW5jbHVkZSA8cnVudGlt
ZS9JZGVudGlmaWVySW5saW5lcy5oPgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAJKHJldmlzaW9uIDIxODMxNCkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJKU0Jsb2IuaCIKICNp
bmNsdWRlICJKU0NyeXB0b0tleS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1
ZGUgIkpTRE9NQ29udmVydEJ1ZmZlclNvdXJjZS5oIgogI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiSlNGaWxlLmgiCiAjaW5jbHVkZSAiSlNGaWxlTGlzdC5oIgpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0JKHJldmlzaW9uIDIxODMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0yOTAsNDkgKzI5MCwxNDUg
QEAgc3ViIEFkZFRvSW1wbEluY2x1ZGVzRm9ySURMVHlwZQogc3ViIEFkZFRvSW5jbHVkZXNGb3JJ
RExUeXBlCiB7CiAgICAgbXkgKCR0eXBlLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCkgPSBA
XzsKLSAgICAKLSAgICByZXR1cm4gaWYgJGNvZGVHZW5lcmF0b3ItPklzUHJpbWl0aXZlVHlwZSgk
dHlwZSk7Ci0gICAgcmV0dXJuIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJHR5cGUp
OwotICAgIHJldHVybiBpZiAkY29kZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkdHlwZSk7
Ci0gICAgcmV0dXJuIGlmICR0eXBlLT5uYW1lIGVxICJhbnkiOwotICAgIHJldHVybiBpZiAkdHlw
ZS0+bmFtZSBlcSAib2JqZWN0IjsKLSAgICAKLSAgICBpZiAoJHR5cGUtPmlzVW5pb24pIHsKLSAg
ICAgICAgQWRkVG9JbmNsdWRlcygiPHd0Zi9WYXJpYW50Lmg+IiwgJGluY2x1ZGVzUmVmLCAkY29u
ZGl0aW9uYWwpOwogCi0gICAgICAgIGZvcmVhY2ggbXkgJG1lbWJlclR5cGUgKEB7JHR5cGUtPnN1
YnR5cGVzfSkgewotICAgICAgICAgICAgQWRkVG9JbmNsdWRlc0ZvcklETFR5cGUoJG1lbWJlclR5
cGUsICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKKyAgICBpZiAoJHR5cGUtPmlzTnVsbGFi
bGUpIHsKKyAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNET01Db252ZXJ0TnVsbGFibGUuaCIsICRp
bmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKKyAgICB9CisKKyAgICBpZiAoJHR5cGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+e092ZXJyaWRlSURMVHlwZX0pIHsKKyAgICAgICAgbXkgJG92ZXJyaWRl
VHlwZU5hbWUgPSAkdHlwZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57T3ZlcnJpZGVJRExUeXBlfTsK
KyAgICAgICAgaWYgKCRvdmVycmlkZVR5cGVOYW1lIGVxICJJRExJREJLZXkiKSB7CisgICAgICAg
ICAgICBBZGRUb0luY2x1ZGVzKCJKU0RPTUNvbnZlcnRJbmRleGVkREIuaCIsICRpbmNsdWRlc1Jl
ZiwgJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAg
ICAgIGlmICgkb3ZlcnJpZGVUeXBlTmFtZSBlcSAiSURMV2ViR0xBbnkiKSB7CisgICAgICAgICAg
ICBBZGRUb0luY2x1ZGVzKCJKU0RPTUNvbnZlcnRXZWJHTC5oIiwgJGluY2x1ZGVzUmVmLCAkY29u
ZGl0aW9uYWwpOworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisgICAgfQogCisgICAg
aWYgKCR0eXBlLT5uYW1lIGVxICJhbnkiKSB7CisgICAgICAgIEFkZFRvSW5jbHVkZXMoIkpTRE9N
Q29udmVydEFueS5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NlcXVlbmNlT3JGcm96ZW5B
cnJheVR5cGUoJHR5cGUpKSB7Ci0gICAgICAgIEFkZFRvSW5jbHVkZXMoIjxydW50aW1lL0pTQXJy
YXkuaD4iLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7CisgICAgaWYgKCR0eXBlLT5uYW1l
IGVxICJib29sZWFuIikgeworICAgICAgICBBZGRUb0luY2x1ZGVzKCJKU0RPTUNvbnZlcnRCb29s
ZWFuLmgiLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzVHlwZWRBcnJheVR5cGUoJHR5cGUpKSB7
CisgICAgICAgIEFkZFRvSW5jbHVkZXMoIkpTRE9NQ29udmVydEJ1ZmZlclNvdXJjZS5oIiwgJGlu
Y2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aWYgKCR0eXBlLT5uYW1lIGVxICJCdWZmZXJTb3VyY2UiKSB7CisgICAgICAgIEFkZFRvSW5jbHVk
ZXMoIkpTRE9NQ29udmVydEJ1ZmZlclNvdXJjZS5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9u
YWwpOworICAgICAgICBBZGRUb0luY2x1ZGVzKCJKU0RPTUNvbnZlcnRVbmlvbi5oIiwgJGluY2x1
ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYg
KCRjb2RlR2VuZXJhdG9yLT5Jc0NhbGxiYWNrRnVuY3Rpb24oJHR5cGUpIHx8ICRjb2RlR2VuZXJh
dG9yLT5Jc0NhbGxiYWNrSW50ZXJmYWNlKCR0eXBlKSkgeworICAgICAgICBBZGRUb0luY2x1ZGVz
KCJKUyIgLiAkdHlwZS0+bmFtZSAuICIuaCIsICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsK
KyAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNET01Db252ZXJ0Q2FsbGJhY2tzLmgiLCAkaW5jbHVk
ZXNSZWYsICRjb25kaXRpb25hbCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAo
JHR5cGUtPm5hbWUgZXEgIkRhdGUiKSB7CisgICAgICAgIEFkZFRvSW5jbHVkZXMoIkpTRE9NQ29u
dmVydERhdGUuaCIsICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNFeHRlcm5hbERpY3Rpb25hcnlU
eXBlKCR0eXBlKSkgeworICAgICAgICBBZGRUb0luY2x1ZGVzKCJKUyIgLiAkdHlwZS0+bmFtZSAu
ICIuaCIsICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgQWRkVG9JbmNsdWRl
cygiSlNET01Db252ZXJ0RGljdGlvbmFyeS5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc0V4
dGVybmFsRW51bVR5cGUoJHR5cGUpKSB7CisgICAgICAgIEFkZFRvSW5jbHVkZXMoIkpTIiAuICR0
eXBlLT5uYW1lIC4gIi5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworICAgICAgICBB
ZGRUb0luY2x1ZGVzKCJKU0RPTUNvbnZlcnRFbnVtZXJhdGlvbi5oIiwgJGluY2x1ZGVzUmVmLCAk
Y29uZGl0aW9uYWwpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCR0eXBlLT5u
YW1lIGVxICJFdmVudExpc3RlbmVyIikgeworICAgICAgICBBZGRUb0luY2x1ZGVzKCJKU0V2ZW50
TGlzdGVuZXIuaCIsICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgQWRkVG9J
bmNsdWRlcygiSlNET01Db252ZXJ0RXZlbnRMaXN0ZW5lci5oIiwgJGluY2x1ZGVzUmVmLCAkY29u
ZGl0aW9uYWwpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCRjb2RlR2VuZXJh
dG9yLT5Jc0ludGVyZmFjZVR5cGUoJHR5cGUpKSB7CisgICAgICAgIEFkZFRvSW5jbHVkZXMoIkpT
IiAuICR0eXBlLT5uYW1lIC4gIi5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworICAg
ICAgICBBZGRUb0luY2x1ZGVzKCJKU0RPTUNvbnZlcnRJbnRlcmZhY2UuaCIsICRpbmNsdWRlc1Jl
ZiwgJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICgkdHlw
ZS0+bmFtZSBlcSAiSlNPTiIpIHsKKyAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNET01Db252ZXJ0
SlNPTi5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc051bWVyaWNUeXBlKCR0eXBlKSkgewor
ICAgICAgICBBZGRUb0luY2x1ZGVzKCJKU0RPTUNvbnZlcnROdW1iZXJzLmgiLCAkaW5jbHVkZXNS
ZWYsICRjb25kaXRpb25hbCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoJHR5
cGUtPm5hbWUgZXEgIm9iamVjdCIpIHsKKyAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNET01Db252
ZXJ0T2JqZWN0LmgiLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzUHJvbWlzZVR5cGUoJHR5cGUp
KSB7CisgICAgICAgIEFkZFRvSW5jbHVkZXMoIkpTRE9NUHJvbWlzZS5oIiwgJGluY2x1ZGVzUmVm
LCAkY29uZGl0aW9uYWwpOworICAgICAgICBBZGRUb0luY2x1ZGVzKCJKU0RPTUNvbnZlcnRQcm9t
aXNlLmgiLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7CisKICAgICAgICAgQWRkVG9JbmNs
dWRlc0ZvcklETFR5cGUoQHskdHlwZS0+c3VidHlwZXN9WzBdLCAkaW5jbHVkZXNSZWYsICRjb25k
aXRpb25hbCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoJGNvZGVHZW5lcmF0
b3ItPklzUmVjb3JkVHlwZSgkdHlwZSkpIHsKICAgICAgICAgQWRkVG9JbmNsdWRlcygiPHd0Zi9W
ZWN0b3IuaD4iLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7CisgICAgICAgIEFkZFRvSW5j
bHVkZXMoIkpTRE9NQ29udmVydFJlY29yZC5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwp
OworCiAgICAgICAgIEFkZFRvSW5jbHVkZXNGb3JJRExUeXBlKEB7JHR5cGUtPnN1YnR5cGVzfVsw
XSwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOwogICAgICAgICBBZGRUb0luY2x1ZGVzRm9y
SURMVHlwZShAeyR0eXBlLT5zdWJ0eXBlc31bMV0sICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFs
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNQ
cm9taXNlVHlwZSgkdHlwZSkpIHsKLSAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNET01Qcm9taXNl
LmgiLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7CisgICAgaWYgKCRjb2RlR2VuZXJhdG9y
LT5Jc1NlcXVlbmNlT3JGcm96ZW5BcnJheVR5cGUoJHR5cGUpKSB7CisgICAgICAgIEFkZFRvSW5j
bHVkZXMoIjxydW50aW1lL0pTQXJyYXkuaD4iLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7
CisgICAgICAgIEFkZFRvSW5jbHVkZXMoIkpTRE9NQ29udmVydFNlcXVlbmNlcy5oIiwgJGluY2x1
ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworCiAgICAgICAgIEFkZFRvSW5jbHVkZXNGb3JJRExUeXBl
KEB7JHR5cGUtPnN1YnR5cGVzfVswXSwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1dyYXBwZXJU
eXBlKCR0eXBlKSB8fCAkY29kZUdlbmVyYXRvci0+SXNFeHRlcm5hbERpY3Rpb25hcnlUeXBlKCR0
eXBlKSB8fCAkY29kZUdlbmVyYXRvci0+SXNFeHRlcm5hbEVudW1UeXBlKCR0eXBlKSB8fCAkdHlw
ZS0+bmFtZSBlcSAiRXZlbnRMaXN0ZW5lciIpIHsKLSAgICAgICAgQWRkVG9JbmNsdWRlcygiSlMi
IC4gJHR5cGUtPm5hbWUgLiAiLmgiLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7CisgICAg
aWYgKCR0eXBlLT5uYW1lIGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiKSB7CisgICAgICAgIEFk
ZFRvSW5jbHVkZXMoIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIiwgJGluY2x1ZGVzUmVmLCAkY29u
ZGl0aW9uYWwpOworICAgICAgICBBZGRUb0luY2x1ZGVzKCJKU0RPTUNvbnZlcnRTZXJpYWxpemVk
U2NyaXB0VmFsdWUuaCIsICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KLSAgICAKLSAgICBpZiAoJHR5cGUtPm5hbWUgZXEgIlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSIpIHsKLSAgICAgICAgQWRkVG9JbmNsdWRlcygkdHlwZS0+bmFtZSAuICIuaCIsICRp
bmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKKworICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNT
dHJpbmdUeXBlKCR0eXBlKSkgeworICAgICAgICBBZGRUb0luY2x1ZGVzKCJKU0RPTUNvbnZlcnRT
dHJpbmdzLmgiLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBpZiAoJHR5cGUtPmlzVW5pb24pIHsKKyAgICAgICAgQWRkVG9JbmNsdWRl
cygiPHd0Zi9WYXJpYW50Lmg+IiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworICAgICAg
ICBBZGRUb0luY2x1ZGVzKCJKU0RPTUNvbnZlcnRVbmlvbi5oIiwgJGluY2x1ZGVzUmVmLCAkY29u
ZGl0aW9uYWwpOworCisgICAgICAgIGZvcmVhY2ggbXkgJG1lbWJlclR5cGUgKEB7JHR5cGUtPnN1
YnR5cGVzfSkgeworICAgICAgICAgICAgQWRkVG9JbmNsdWRlc0ZvcklETFR5cGUoJG1lbWJlclR5
cGUsICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgfQorCisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBpZiAoJHR5cGUtPm5hbWUgZXEgIlhQYXRoTlNSZXNvbHZlciIp
IHsKKyAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNYUGF0aE5TUmVzb2x2ZXIuaCIsICRpbmNsdWRl
c1JlZiwgJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNET01Db252ZXJ0
WFBhdGhOU1Jlc29sdmVyLmgiLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiB9CkBAIC0xNTg3LDcgKzE2ODMsNyBAQCBzdWIgR2V0SlNDQXR0cmli
dXRlc0ZvckF0dHJpYnV0ZQogICAgIHB1c2goQHNwZWNpYWxzLCAiRG9udEVudW0iKSBpZiAoJGF0
dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Tm90RW51bWVyYWJsZX0gfHwgJGlzR2xvYmFs
Q29uc3RydWN0b3IpOwogICAgIHB1c2goQHNwZWNpYWxzLCAiUmVhZE9ubHkiKSBpZiBJc1JlYWRv
bmx5KCRhdHRyaWJ1dGUpOwogICAgIHB1c2goQHNwZWNpYWxzLCAiQ3VzdG9tQWNjZXNzb3IiKSB1
bmxlc3MgJGlzR2xvYmFsQ29uc3RydWN0b3Igb3IgSXNKU0J1aWx0aW4oJGludGVyZmFjZSwgJGF0
dHJpYnV0ZSk7Ci0gICAgcHVzaChAc3BlY2lhbHMsICJET01KSVRBdHRyaWJ1dGUiKSBpZiAkYXR0
cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRE9NSklUIn07CisgICAgcHVzaChAc3BlY2lh
bHMsICJET01KSVRBdHRyaWJ1dGUiKSBpZiAkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PntET01KSVR9OwogICAgIHB1c2goQHNwZWNpYWxzLCAiQWNjZXNzb3IgfCBCdWlsdGluIikgaWYg
IElzSlNCdWlsdGluKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOwogICAgIHJldHVybiAoQHNwZWNp
YWxzID4gMCkgPyBqb2luKCIgfCAiLCBAc3BlY2lhbHMpIDogIjAiOwogfQpAQCAtMTgyOSwxMCAr
MTkyNSw5IEBAIHN1YiBHZW5lcmF0ZUVudW1lcmF0aW9uSGVhZGVyCiAgCiAgICAgIyAtIEFkZCBk
ZWZhdWx0IGhlYWRlciB0ZW1wbGF0ZSBhbmQgaGVhZGVyIHByb3RlY3Rpb24uCiAgICAgcHVzaChA
aGVhZGVyQ29udGVudEhlYWRlciwgR2VuZXJhdGVIZWFkZXJDb250ZW50SGVhZGVyKCRlbnVtZXJh
dGlvbikpOwotIAotICAgICRoZWFkZXJJbmNsdWRlc3siJGNsYXNzTmFtZS5oIn0gPSAxOwotICAg
ICRoZWFkZXJJbmNsdWRlc3siSlNET01Db252ZXJ0LmgifSA9IDE7Ci0gCisKKyAgICAkaGVhZGVy
SW5jbHVkZXN7IiR7Y2xhc3NOYW1lfS5oIn0gPSAxOworCiAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIlxubmFtZXNwYWNlIFdlYkNvcmUge1xuXG4iKTsKICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCBHZW5lcmF0ZUVudW1lcmF0aW9uSGVhZGVyQ29udGVudCgkZW51bWVyYXRpb24sICRjbGFzc05h
bWUpKTsKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAifSAvLyBuYW1lc3BhY2UgV2ViQ29yZVxu
Iik7CkBAIC0xODQ3LDExICsxOTQyLDcgQEAgc3ViIEdlbmVyYXRlRW51bWVyYXRpb25JbXBsZW1l
bnRhdGlvbgogIAogICAgICMgLSBBZGQgZGVmYXVsdCBoZWFkZXIgdGVtcGxhdGUKICAgICBwdXNo
KEBpbXBsQ29udGVudEhlYWRlciwgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbkNvbnRlbnRIZWFkZXIo
JGVudW1lcmF0aW9uKSk7Ci0gICAgCi0gICAgIyBGSVhNRTogQSBsaXR0bGUgdWdseSB0byBoYXZl
IHRoaXMgYmUgYSBzaWRlIGVmZmVjdCBpbnN0ZWFkIG9mIGEgcmV0dXJuIHZhbHVlLgotICAgIEFk
ZFRvSW1wbEluY2x1ZGVzKCI8cnVudGltZS9KU1N0cmluZy5oPiIpOwotICAgIEFkZFRvSW1wbElu
Y2x1ZGVzKCJKU0RPTUNvbnZlcnQuaCIpOwotIAorCiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJc
bnVzaW5nIG5hbWVzcGFjZSBKU0M7XG5cbiIpOwogICAgIHB1c2goQGltcGxDb250ZW50LCAibmFt
ZXNwYWNlIFdlYkNvcmUge1xuXG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgR2VuZXJhdGVF
bnVtZXJhdGlvbkltcGxlbWVudGF0aW9uQ29udGVudCgkZW51bWVyYXRpb24sICRjbGFzc05hbWUp
KTsKQEAgLTE4NjQsNyArMTk1NSwxMiBAQCBzdWIgR2VuZXJhdGVFbnVtZXJhdGlvbkltcGxlbWVu
dGF0aW9uCiBzdWIgR2VuZXJhdGVFbnVtZXJhdGlvbkltcGxlbWVudGF0aW9uQ29udGVudAogewog
ICAgIG15ICgkZW51bWVyYXRpb24sICRjbGFzc05hbWUsICRpbnRlcmZhY2UsICRjb25kaXRpb25h
bFN0cmluZykgPSBAXzsKLSAgICAKKworICAgICMgRklYTUU6IEEgbGl0dGxlIHVnbHkgdG8gaGF2
ZSB0aGlzIGJlIGEgc2lkZSBlZmZlY3QgaW5zdGVhZCBvZiBhIHJldHVybiB2YWx1ZS4KKyAgICBB
ZGRUb0ltcGxJbmNsdWRlcygiPHJ1bnRpbWUvSlNTdHJpbmcuaD4iKTsKKyAgICBBZGRUb0ltcGxJ
bmNsdWRlcygiPHJ1bnRpbWUvSlNDSW5saW5lcy5oPiIpOworICAgIEFkZFRvSW1wbEluY2x1ZGVz
KCJKU0RPTUNvbnZlcnRFbnVtZXJhdGlvbi5oIik7CisKICAgICBteSAkcmVzdWx0ID0gIiI7CiAg
ICAgJHJlc3VsdCAuPSAiI2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG5cbiIgaWYgJGNvbmRpdGlv
bmFsU3RyaW5nOwogCkBAIC0xOTI2LDEwICsyMDIyLDYgQEAgc3ViIEdlbmVyYXRlRW51bWVyYXRp
b25zSW1wbGVtZW50YXRpb25DbwogICAgIG15ICgkaW50ZXJmYWNlLCAkZW51bWVyYXRpb25zKSA9
IEBfOwogCiAgICAgcmV0dXJuICIiIHVubGVzcyBAJGVudW1lcmF0aW9uczsKLSAgICAKLSAgICAj
IEZJWE1FOiBBIGxpdHRsZSB1Z2x5IHRvIGhhdmUgdGhpcyBiZSBhIHNpZGUgZWZmZWN0IGluc3Rl
YWQgb2YgYSByZXR1cm4gdmFsdWUuCi0gICAgQWRkVG9JbXBsSW5jbHVkZXMoIjxydW50aW1lL0pT
U3RyaW5nLmg+Iik7Ci0gICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTRE9NQ29udmVydC5oIik7CiAK
ICAgICBteSAkcmVzdWx0ID0gIiI7CiAgICAgZm9yZWFjaCBteSAkZW51bWVyYXRpb24gKEAkZW51
bWVyYXRpb25zKSB7CkBAIC0xOTQ0LDYgKzIwMzYsOCBAQCBzdWIgR2VuZXJhdGVFbnVtZXJhdGlv
bkhlYWRlckNvbnRlbnQKIHsKICAgICBteSAoJGVudW1lcmF0aW9uLCAkY2xhc3NOYW1lLCAkY29u
ZGl0aW9uYWxTdHJpbmcpID0gQF87CiAKKyAgICAkaGVhZGVySW5jbHVkZXN7IkpTRE9NQ29udmVy
dEVudW1lcmF0aW9uLmgifSA9IDE7CisKICAgICBteSAkcmVzdWx0ID0gIiI7CiAgICAgJHJlc3Vs
dCAuPSAiI2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG5cbiIgaWYgJGNvbmRpdGlvbmFsU3RyaW5n
OwogCkBAIC0xOTY2LDggKzIwNjAsNiBAQCBzdWIgR2VuZXJhdGVFbnVtZXJhdGlvbnNIZWFkZXJD
b250ZW50CiAgICAgIyBGSVhNRTogQ291bGQgb3B0aW1pemUgdGhpcyB0byBvbmx5IGdlbmVyYXRl
IHRoZSBwYXJ0cyBvZiBlYWNoIGVudW1lcmF0aW9uIHRoYXQgYXJlIGFjdHVhbGx5CiAgICAgIyB1
c2VkLCB3aGljaCB3b3VsZCByZXF1aXJlIGl0ZXJhdGluZyBvdmVyIGV2ZXJ5dGhpbmcgaW4gdGhl
IGludGVyZmFjZS4KIAotICAgICRoZWFkZXJJbmNsdWRlc3siSlNET01Db252ZXJ0LmgifSA9IDE7
Ci0KICAgICBteSAkcmVzdWx0ID0gIiI7CiAgICAgZm9yZWFjaCBteSAkZW51bWVyYXRpb24gKEAk
ZW51bWVyYXRpb25zKSB7CiAgICAgICAgIG15ICRjbGFzc05hbWUgPSBHZXRFbnVtZXJhdGlvbkNs
YXNzTmFtZSgkZW51bWVyYXRpb24tPnR5cGUsICRpbnRlcmZhY2UpOwpAQCAtMjA0Miw5ICsyMTM0
LDExIEBAIHN1YiBHZW5lcmF0ZURpY3Rpb25hcnlIZWFkZXJDb250ZW50CiB7CiAgICAgbXkgKCRk
aWN0aW9uYXJ5LCAkY2xhc3NOYW1lLCAkY29uZGl0aW9uYWxTdHJpbmcpID0gQF87CiAKKyAgICAk
aGVhZGVySW5jbHVkZXN7IkpTRE9NQ29udmVydERpY3Rpb25hcnkuaCJ9ID0gMTsKKwogICAgIG15
ICRyZXN1bHQgPSAiIjsKICAgICAkcmVzdWx0IC49ICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31c
blxuIiBpZiAkY29uZGl0aW9uYWxTdHJpbmc7Ci0gICAgJHJlc3VsdCAuPSAidGVtcGxhdGU8PiAk
e2NsYXNzTmFtZX0gY29udmVydERpY3Rpb25hcnk8JGNsYXNzTmFtZT4oSlNDOjpFeGVjU3RhdGUm
LCBKU0M6OkpTVmFsdWUpO1xuXG4iOworICAgICRyZXN1bHQgLj0gInRlbXBsYXRlPD4gJHtjbGFz
c05hbWV9IGNvbnZlcnREaWN0aW9uYXJ5PCR7Y2xhc3NOYW1lfT4oSlNDOjpFeGVjU3RhdGUmLCBK
U0M6OkpTVmFsdWUpO1xuXG4iOwogCiAgICAgaWYgKCRkaWN0aW9uYXJ5LT5leHRlbmRlZEF0dHJp
YnV0ZXMtPntKU0dlbmVyYXRlVG9KU09iamVjdH0pIHsKICAgICAgICAgJHJlc3VsdCAuPSAiSlND
OjpKU09iamVjdCogY29udmVydERpY3Rpb25hcnlUb0pTKEpTQzo6RXhlY1N0YXRlJiwgSlNET01H
bG9iYWxPYmplY3QmLCBjb25zdCAke2NsYXNzTmFtZX0mKTtcblxuIjsKQEAgLTIwNjAsOCArMjE1
NCw2IEBAIHN1YiBHZW5lcmF0ZURpY3Rpb25hcmllc0hlYWRlckNvbnRlbnQKIAogICAgIHJldHVy
biAiIiB1bmxlc3MgQCRhbGxEaWN0aW9uYXJpZXM7CiAKLSAgICAkaGVhZGVySW5jbHVkZXN7IkpT
RE9NQ29udmVydC5oIn0gPSAxOwotCiAgICAgbXkgJHJlc3VsdCA9ICIiOwogICAgIGZvcmVhY2gg
bXkgJGRpY3Rpb25hcnkgKEAkYWxsRGljdGlvbmFyaWVzKSB7CiAgICAgICAgICRoZWFkZXJJbmNs
dWRlc3skdHlwZVNjb3BlLT50eXBlLT5uYW1lIC4gIi5oIn0gPSAxIGlmICR0eXBlU2NvcGU7CkBA
IC0yMDc0LDE3ICsyMTY2LDIyIEBAIHN1YiBHZW5lcmF0ZURpY3Rpb25hcmllc0hlYWRlckNvbnRl
bnQKIAogc3ViIEdlbmVyYXRlRGljdGlvbmFyeUltcGxlbWVudGF0aW9uQ29udGVudAogewotICAg
IG15ICgkZGljdGlvbmFyeSwgJGNsYXNzTmFtZSwgJGludGVyZmFjZSwgJGNvbmRpdGlvbmFsU3Ry
aW5nKSA9IEBfOworICAgIG15ICgkZGljdGlvbmFyeSwgJGNsYXNzTmFtZSwgJGludGVyZmFjZSkg
PSBAXzsKIAogICAgIG15ICRyZXN1bHQgPSAiIjsKIAogICAgIG15ICRuYW1lID0gJGRpY3Rpb25h
cnktPnR5cGUtPm5hbWU7CiAgICAgbXkgJHR5cGVTY29wZSA9ICRpbnRlcmZhY2UgfHwgJGRpY3Rp
b25hcnk7CiAKLSAgICAkcmVzdWx0IC49ICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31cblxuIiBp
ZiAkY29uZGl0aW9uYWxTdHJpbmc7CisgICAgbXkgJGNvbmRpdGlvbmFsID0gJGRpY3Rpb25hcnkt
PmV4dGVuZGVkQXR0cmlidXRlcy0+e0NvbmRpdGlvbmFsfTsKKyAgICBpZiAoJGNvbmRpdGlvbmFs
KSB7CisgICAgICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5l
cmF0ZUNvbmRpdGlvbmFsU3RyaW5nRnJvbUF0dHJpYnV0ZVZhbHVlKCRjb25kaXRpb25hbCk7Cisg
ICAgICAgICRyZXN1bHQgLj0gIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuXG4iOworICAgIH0K
IAogICAgICMgRklYTUU6IEEgbGl0dGxlIHVnbHkgdG8gaGF2ZSB0aGlzIGJlIGEgc2lkZSBlZmZl
Y3QgaW5zdGVhZCBvZiBhIHJldHVybiB2YWx1ZS4KLSAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlNE
T01Db252ZXJ0LmgiKTsKKyAgICBBZGRUb0ltcGxJbmNsdWRlcygiPHJ1bnRpbWUvSlNDSW5saW5l
cy5oPiIpOworICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKU0RPTUNvbnZlcnREaWN0aW9uYXJ5Lmgi
KTsKIAogICAgICMgaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jZXMtZGljdGlvbmFy
eQogICAgICRyZXN1bHQgLj0gInRlbXBsYXRlPD4gJGNsYXNzTmFtZSBjb252ZXJ0RGljdGlvbmFy
eTwkY2xhc3NOYW1lPihFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKVxuIjsKQEAgLTIx
MzcsNyArMjIzNCw3IEBAIHN1YiBHZW5lcmF0ZURpY3Rpb25hcnlJbXBsZW1lbnRhdGlvbkNvbnQK
IAogICAgICAgICAgICAgIyA1LjEuIExldCBrZXkgYmUgdGhlIGlkZW50aWZpZXIgb2YgbWVtYmVy
LgogICAgICAgICAgICAgbXkgJGtleSA9ICRtZW1iZXItPm5hbWU7Ci0gICAgICAgICAgICBteSAk
aW1wbGVtZW50ZWRBc0tleSA9ICRtZW1iZXItPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBsZW1l
bnRlZEFzIn0gPyAkbWVtYmVyLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVtZW50ZWRBcyJ9
IDogJGtleTsKKyAgICAgICAgICAgIG15ICRpbXBsZW1lbnRlZEFzS2V5ID0gJG1lbWJlci0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57SW1wbGVtZW50ZWRBc30gfHwgJGtleTsKIAogICAgICAgICAgICAg
IyA1LjIuIExldCB2YWx1ZSBiZSBhbiBFQ01BU2NyaXB0IHZhbHVlLCBkZXBlbmRpbmcgb24gVHlw
ZShWKToKICAgICAgICAgICAgICRyZXN1bHQgLj0gIiAgICBKU1ZhbHVlICR7a2V5fVZhbHVlID0g
aXNOdWxsT3JVbmRlZmluZWQgPyBqc1VuZGVmaW5lZCgpIDogb2JqZWN0LT5nZXQoJnN0YXRlLCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZzdGF0ZSwgXCIke2tleX1cIikpO1xuIjsKQEAgLTIxNzIs
MTIgKzIyNjksMTUgQEAgc3ViIEdlbmVyYXRlRGljdGlvbmFyeUltcGxlbWVudGF0aW9uQ29udAog
ICAgICRyZXN1bHQgLj0gIn1cblxuIjsKIAogICAgIGlmICgkZGljdGlvbmFyeS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57SlNHZW5lcmF0ZVRvSlNPYmplY3R9KSB7CisgICAgICAgIEFkZFRvSW1wbElu
Y2x1ZGVzKCJKU0RPTUdsb2JhbE9iamVjdC5oIik7CisgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVz
KCI8cnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oPiIpOworCiAgICAgICAgICRyZXN1bHQgLj0g
IkpTQzo6SlNPYmplY3QqIGNvbnZlcnREaWN0aW9uYXJ5VG9KUyhKU0M6OkV4ZWNTdGF0ZSYgc3Rh
dGUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIGNvbnN0ICR7Y2xhc3NOYW1lfSYg
ZGljdGlvbmFyeSlcbiI7CiAgICAgICAgICRyZXN1bHQgLj0gIntcbiI7CiAgICAgICAgICRyZXN1
bHQgLj0gIiAgICBhdXRvJiB2bSA9IHN0YXRlLnZtKCk7XG5cbiI7CiAKICAgICAgICAgIyAxLiBM
ZXQgTyBiZSAhIE9iamVjdENyZWF0ZSglT2JqZWN0UHJvdG90eXBlJSkuCi0gICAgICAgICRyZXN1
bHQgLj0gIiAgICBhdXRvIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KCZzdGF0ZSk7XG5c
biI7CisgICAgICAgICRyZXN1bHQgLj0gIiAgICBhdXRvIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5
T2JqZWN0KCZzdGF0ZSwgZ2xvYmFsT2JqZWN0Lm9iamVjdFByb3RvdHlwZSgpKTtcblxuIjsKIAog
ICAgICAgICAjIDIuIExldCBkaWN0aW9uYXJpZXMgYmUgYSBsaXN0IGNvbnNpc3Rpbmcgb2YgRCBh
bmQgYWxsIG9mIETigJlzIGluaGVyaXRlZCBkaWN0aW9uYXJpZXMsCiAgICAgICAgICMgICAgaW4g
b3JkZXIgZnJvbSBsZWFzdCB0byBtb3N0IGRlcml2ZWQuCkBAIC0yMTg5LDIxICsyMjg5LDI3IEBA
IHN1YiBHZW5lcmF0ZURpY3Rpb25hcnlJbXBsZW1lbnRhdGlvbkNvbnQKICAgICAgICAgICAgIG15
IEBzb3J0ZWRNZW1iZXJzID0gc29ydCB7ICRhLT5uYW1lIGNtcCAkYi0+bmFtZSB9IEB7JGRpY3Rp
b25hcnktPm1lbWJlcnN9OwogICAgICAgICAgICAgZm9yZWFjaCBteSAkbWVtYmVyIChAc29ydGVk
TWVtYmVycykgewogICAgICAgICAgICAgICAgIG15ICRrZXkgPSAkbWVtYmVyLT5uYW1lOwotICAg
ICAgICAgICAgICAgIG15ICRpbXBsZW1lbnRlZEFzS2V5ID0gJG1lbWJlci0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkltcGxlbWVudGVkQXMifSA/ICRtZW1iZXItPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJJbXBsZW1lbnRlZEFzIn0gOiAka2V5OworICAgICAgICAgICAgICAgIG15ICRpbXBsZW1lbnRl
ZEFzS2V5ID0gJG1lbWJlci0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57SW1wbGVtZW50ZWRBc30gfHwg
JGtleTsKKyAgICAgICAgICAgICAgICBteSAkdmFsdWVFeHByZXNzaW9uID0gImRpY3Rpb25hcnku
JHtpbXBsZW1lbnRlZEFzS2V5fSI7CiAKICAgICAgICAgICAgICAgICAjIDEuIExldCBrZXkgYmUg
dGhlIGlkZW50aWZpZXIgb2YgbWVtYmVyLgogICAgICAgICAgICAgICAgICMgMi4gSWYgdGhlIGRp
Y3Rpb25hcnkgbWVtYmVyIG5hbWVkIGtleSBpcyBwcmVzZW50IGluIFYsIHRoZW46CiAgICAgICAg
ICAgICAgICAgICAgICMgMS4gTGV0IGlkbFZhbHVlIGJlIHRoZSB2YWx1ZSBvZiBtZW1iZXIgb24g
Vi4KICAgICAgICAgICAgICAgICAgICAgIyAyLiBMZXQgdmFsdWUgYmUgdGhlIHJlc3VsdCBvZiBj
b252ZXJ0aW5nIGlkbFZhbHVlIHRvIGFuIEVDTUFTY3JpcHQgdmFsdWUuCiAgICAgICAgICAgICAg
ICAgICAgICMgMy4gUGVyZm9ybSAhIENyZWF0ZURhdGFQcm9wZXJ0eShPLCBrZXksIHZhbHVlKS4K
LSAgICAgICAgICAgICAgICBteSAkSURMVHlwZSA9IEdldElETFR5cGUoJHR5cGVTY29wZSwgJG1l
bWJlci0+dHlwZSk7CisKICAgICAgICAgICAgICAgICBpZiAoISRtZW1iZXItPmlzUmVxdWlyZWQg
JiYgbm90IGRlZmluZWQgJG1lbWJlci0+ZGVmYXVsdCkgewotICAgICAgICAgICAgICAgICAgICAk
cmVzdWx0IC49ICIgICAgaWYgKCEke0lETFR5cGV9Ojppc051bGxWYWx1ZShkaWN0aW9uYXJ5LiR7
aW1wbGVtZW50ZWRBc0tleX0pKSB7XG4iOwotICAgICAgICAgICAgICAgICAgICAkcmVzdWx0IC49
ICIgICAgICAgIGF1dG8gJHtrZXl9VmFsdWUgPSB0b0pTPCRJRExUeXBlPihzdGF0ZSwgZ2xvYmFs
T2JqZWN0LCAke0lETFR5cGV9OjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUoZGljdGlvbmFyeS4k
e2ltcGxlbWVudGVkQXNLZXl9KSk7XG4iOworICAgICAgICAgICAgICAgICAgICBteSAkSURMVHlw
ZSA9IEdldElETFR5cGUoJHR5cGVTY29wZSwgJG1lbWJlci0+dHlwZSk7CisgICAgICAgICAgICAg
ICAgICAgIG15ICRjb252ZXJzaW9uRXhwcmVzc2lvbiA9IE5hdGl2ZVRvSlNWYWx1ZVVzaW5nUmVm
ZXJlbmNlcygkbWVtYmVyLCAkdHlwZVNjb3BlLCAiJHtJRExUeXBlfTo6ZXh0cmFjdFZhbHVlRnJv
bU51bGxhYmxlKCR7dmFsdWVFeHByZXNzaW9ufSkiLCAiZ2xvYmFsT2JqZWN0Iik7CisKKyAgICAg
ICAgICAgICAgICAgICAgJHJlc3VsdCAuPSAiICAgIGlmICghJHtJRExUeXBlfTo6aXNOdWxsVmFs
dWUoJHt2YWx1ZUV4cHJlc3Npb259KSkge1xuIjsKKyAgICAgICAgICAgICAgICAgICAgJHJlc3Vs
dCAuPSAiICAgICAgICBhdXRvICR7a2V5fVZhbHVlID0gJHtjb252ZXJzaW9uRXhwcmVzc2lvbn07
XG4iOwogICAgICAgICAgICAgICAgICAgICAkcmVzdWx0IC49ICIgICAgICAgIHJlc3VsdC0+cHV0
RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCBcIiR7a2V5fVwiKSwg
JHtrZXl9VmFsdWUpO1xuIjsKICAgICAgICAgICAgICAgICAgICAgJHJlc3VsdCAuPSAiICAgIH1c
biI7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgJHJlc3Vs
dCAuPSAiICAgIGF1dG8gJHtrZXl9VmFsdWUgPSB0b0pTPCRJRExUeXBlPihzdGF0ZSwgZ2xvYmFs
T2JqZWN0LCBkaWN0aW9uYXJ5LiR7aW1wbGVtZW50ZWRBc0tleX0pO1xuIjsKKyAgICAgICAgICAg
ICAgICAgICAgbXkgJGNvbnZlcnNpb25FeHByZXNzaW9uID0gTmF0aXZlVG9KU1ZhbHVlVXNpbmdS
ZWZlcmVuY2VzKCRtZW1iZXIsICR0eXBlU2NvcGUsICR2YWx1ZUV4cHJlc3Npb24sICJnbG9iYWxP
YmplY3QiKTsKKworICAgICAgICAgICAgICAgICAgICAkcmVzdWx0IC49ICIgICAgYXV0byAke2tl
eX1WYWx1ZSA9ICR7Y29udmVyc2lvbkV4cHJlc3Npb259O1xuIjsKICAgICAgICAgICAgICAgICAg
ICAgJHJlc3VsdCAuPSAiICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6
OmZyb21TdHJpbmcoJnZtLCBcIiR7a2V5fVwiKSwgJHtrZXl9VmFsdWUpO1xuIjsKICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC0yMjEzLDcgKzIzMTksNyBAQCBzdWIgR2VuZXJh
dGVEaWN0aW9uYXJ5SW1wbGVtZW50YXRpb25Db250CiAgICAgICAgICRyZXN1bHQgLj0gIn1cblxu
IjsKICAgICB9CiAKLSAgICAkcmVzdWx0IC49ICIjZW5kaWZcblxuIiBpZiAkY29uZGl0aW9uYWxT
dHJpbmc7CisgICAgJHJlc3VsdCAuPSAiI2VuZGlmXG5cbiIgaWYgJGNvbmRpdGlvbmFsOwogCiAg
ICAgcmV0dXJuICRyZXN1bHQ7CiB9CkBAIC0yMjI1LDggKzIzMzEsNyBAQCBzdWIgR2VuZXJhdGVE
aWN0aW9uYXJpZXNJbXBsZW1lbnRhdGlvbkNvCiAgICAgbXkgJHJlc3VsdCA9ICIiOwogICAgIGZv
cmVhY2ggbXkgJGRpY3Rpb25hcnkgKEAkYWxsRGljdGlvbmFyaWVzKSB7CiAgICAgICAgIG15ICRj
bGFzc05hbWUgPSBHZXREaWN0aW9uYXJ5Q2xhc3NOYW1lKCRkaWN0aW9uYXJ5LT50eXBlLCAkdHlw
ZVNjb3BlKTsKLSAgICAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3It
PkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGRpY3Rpb25hcnkpOwotICAgICAgICAkcmVzdWx0
IC49IEdlbmVyYXRlRGljdGlvbmFyeUltcGxlbWVudGF0aW9uQ29udGVudCgkZGljdGlvbmFyeSwg
JGNsYXNzTmFtZSwgJHR5cGVTY29wZSwgJGNvbmRpdGlvbmFsU3RyaW5nKTsKKyAgICAgICAgJHJl
c3VsdCAuPSBHZW5lcmF0ZURpY3Rpb25hcnlJbXBsZW1lbnRhdGlvbkNvbnRlbnQoJGRpY3Rpb25h
cnksICRjbGFzc05hbWUsICR0eXBlU2NvcGUpOwogICAgIH0KICAgICByZXR1cm4gJHJlc3VsdDsK
IH0KQEAgLTI1MDksNyArMjYxNCw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogCiAgICAgIyBTZXJp
YWxpemVyIGZ1bmN0aW9uLgogICAgIGlmICgkaW50ZXJmYWNlLT5zZXJpYWxpemFibGUpIHsKLSAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogc2Vy
aWFsaXplKEpTQzo6RXhlY1N0YXRlKiwgJHtjbGFzc05hbWV9KiB0aGlzT2JqZWN0LCBKU0M6OlRo
cm93U2NvcGUmKTtcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRp
YyBKU0M6OkpTT2JqZWN0KiBzZXJpYWxpemUoSlNDOjpFeGVjU3RhdGUmLCAke2NsYXNzTmFtZX0m
IHRoaXNPYmplY3QsIEpTRE9NR2xvYmFsT2JqZWN0JiwgSlNDOjpUaHJvd1Njb3BlJik7XG4iKTsK
ICAgICB9CiAgICAgCiAgICAgbXkgJG51bUN1c3RvbU9wZXJhdGlvbnMgPSAwOwpAQCAtMjUzMiw3
ICsyNjM3LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgICAgICAgICAgJG51bUNhY2hl
ZEF0dHJpYnV0ZXMrKzsKICAgICAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiI2Vu
ZGlmXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAkaGFzRE9NSklUQXR0cmlidXRlcyA9IDEgaWYgJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkRPTUpJVCJ9OworICAgICAgICAgICAgJGhhc0RPTUpJVEF0dHJpYnV0ZXMgPSAxIGlm
ICRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0RPTUpJVH07CiAKICAgICAgICAgICAg
ICRoYXNGb3J3YXJkRGVjbGFyaW5nQXR0cmlidXRlcyA9IDEgaWYgJGF0dHJpYnV0ZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Rm9yd2FyZERlY2xhcmVJbkhlYWRlcn07CiAgICAgICAgIH0KQEAgLTI3
NzAsNyArMjg3NSw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICAkaGVhZGVySW5jbHVk
ZXN7Ijxkb21qaXQvRE9NSklUR2V0dGVyU2V0dGVyLmg+In0gPSAxOwogICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCIvLyBET01KSVQgZW1pdHRlcnMgZm9yIGF0dHJpYnV0ZXNcblxuIik7CiAg
ICAgICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskaW50ZXJmYWNlLT5hdHRyaWJ1dGVzfSkg
ewotICAgICAgICAgICAgbmV4dCB1bmxlc3MgJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkRPTUpJVCJ9OworICAgICAgICAgICAgbmV4dCB1bmxlc3MgJGF0dHJpYnV0ZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57RE9NSklUfTsKICAgICAgICAgICAgIGFzc2VydCgiT25seSBET01KSVQ9
R2V0dGVyIGlzIHN1cHBvcnRlZCBmb3IgYXR0cmlidXRlcyIpIHVubGVzcyAkY29kZUdlbmVyYXRv
ci0+RXh0ZW5kZWRBdHRyaWJ1dGVDb250YWlucygkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPntET01KSVR9LCAiR2V0dGVyIik7CiAKICAgICAgICAgICAgIG15ICRpbnRlcmZhY2VOYW1l
ID0gJGludGVyZmFjZS0+dHlwZS0+bmFtZTsKQEAgLTI4NzksNyArMjk4NCw3IEBAIHN1YiBHZW5l
cmF0ZVByb3BlcnRpZXNIYXNoVGFibGUKICAgICAgICAgbXkgJHNwZWNpYWwgPSBHZXRKU0NBdHRy
aWJ1dGVzRm9yQXR0cmlidXRlKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOwogICAgICAgICBwdXNo
KEAkaGFzaFNwZWNpYWxzLCAkc3BlY2lhbCk7CiAKLSAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJET01KSVQifSkgeworICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RE9NSklUfSkgewogICAgICAgICAgICAgcHVzaChAJGhhc2hW
YWx1ZTEsICJkb21KSVRHZXR0ZXJTZXR0ZXJGb3IiIC4gJGludGVyZmFjZS0+dHlwZS0+bmFtZSAu
ICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRyaWJ1dGUtPm5hbWUpKTsKICAgICAgICAg
ICAgIHB1c2goQCRoYXNoVmFsdWUyLCAiMCIpOwogICAgICAgICB9IGVsc2UgewpAQCAtMzE0Myw3
ICszMjQ4LDcgQEAgc3ViIEdlbmVyYXRlT3ZlcmxvYWREaXNwYXRjaGVyCiAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICAgICBpZiAoJGNvbmRpdGlvbilcbiAgICAiKSBpZiAkY29uZGl0
aW9uOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuICIgLiAkb3Zl
cmxvYWRGdW5jdGlvblByZWZpeCAuICRvdmVybG9hZC0+e292ZXJsb2FkSW5kZXh9IC4gJG92ZXJs
b2FkRnVuY3Rpb25TdWZmaXggLiAiKCR7cGFyYW1ldGVyc1RvRm9yd2FyZH0pO1xuIik7CiAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiI2VuZGlmXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7
Ci0gICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCRpbmNsdWRlLCAkb3ZlcmxvYWQtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDb25kaXRpb25hbCJ9KSBpZiAkaW5jbHVkZTsKKyAgICAgICAgQWRkVG9J
bXBsSW5jbHVkZXMoJGluY2x1ZGUsICRvdmVybG9hZC0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q29u
ZGl0aW9uYWx9KSBpZiAkaW5jbHVkZTsKICAgICB9OwogICAgIG15ICRpc09wdGlvbmFsUGFyYW1l
dGVyID0gc3ViIHsKICAgICAgICAgbXkgKCR0eXBlLCAkb3B0aW9uYWxpdHkpID0gQF87CkBAIC0z
NTg2LDYgKzM2OTEsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICMgLSBBZGQg
ZGVmYXVsdCBoZWFkZXIgdGVtcGxhdGUKICAgICBwdXNoKEBpbXBsQ29udGVudEhlYWRlciwgR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbkNvbnRlbnRIZWFkZXIoJGludGVyZmFjZSkpOwogCisgICAgQWRk
VG9JbXBsSW5jbHVkZXMoIjxydW50aW1lL0pTQ0lubGluZXMuaD4iKTsKICAgICBBZGRUb0ltcGxJ
bmNsdWRlcygiSlNET01CaW5kaW5nLmgiKTsKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlNET01F
eGNlcHRpb25IYW5kbGluZy5oIik7CiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTRE9NV3JhcHBl
ckNhY2hlLmgiKTsKQEAgLTM3ODMsMTEgKzM4ODksMTEgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb24KICAgICAgICAgICAgIG15IEBzcGVjaWFscyA9ICgpOwogICAgICAgICAgICAgcHVzaChA
c3BlY2lhbHMsICJEb250RGVsZXRlIikgaWYgSXNVbmZvcmdlYWJsZSgkaW50ZXJmYWNlLCAkYXR0
cmlidXRlKTsKICAgICAgICAgICAgIHB1c2goQHNwZWNpYWxzLCAiUmVhZE9ubHkiKSBpZiBJc1Jl
YWRvbmx5KCRhdHRyaWJ1dGUpOwotICAgICAgICAgICAgcHVzaChAc3BlY2lhbHMsICJET01KSVRB
dHRyaWJ1dGUiKSBpZiAkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRE9NSklUIn07
CisgICAgICAgICAgICBwdXNoKEBzcGVjaWFscywgIkRPTUpJVEF0dHJpYnV0ZSIpIGlmICRhdHRy
aWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0RPTUpJVH07CiAgICAgICAgICAgICBteSAkc3Bl
Y2lhbCA9IChAc3BlY2lhbHMgPiAwKSA/IGpvaW4oIiB8ICIsIEBzcGVjaWFscykgOiAiMCI7CiAg
ICAgICAgICAgICBwdXNoKEBoYXNoU3BlY2lhbHMsICRzcGVjaWFsKTsKIAotICAgICAgICAgICAg
aWYgKCRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJET01KSVQifSkgeworICAgICAg
ICAgICAgaWYgKCRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0RPTUpJVH0pIHsKICAg
ICAgICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUxLCAiZG9tSklUR2V0dGVyU2V0dGVyRm9yIiAu
ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0
cmlidXRlLT5uYW1lKSk7CiAgICAgICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVlMiwgIjAiKTsK
ICAgICAgICAgICAgIH0gZWxzZSB7CkBAIC0zOTYyLDYgKzQwNjgsNyBAQCBzdWIgR2VuZXJhdGVJ
bXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgaWYgKElzS2V5VmFsdWVJdGVyYWJsZUludGVyZmFj
ZSgkaW50ZXJmYWNlKSBvciAkaW50ZXJmYWNlLT5tYXBMaWtlKSB7CiAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5p
dGVyYXRvclN5bWJvbCwgZ2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5lbnRyaWVzUHVibGljTmFtZSgpKSwgRG9udEVudW0pO1xuIik7CiAgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCI8cnVudGltZS9BcnJh
eVByb3RvdHlwZS5oPiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0b3JTeW1ib2wsIGdsb2JhbE9i
amVjdCgpLT5hcnJheVByb3RvdHlwZSgpLT5nZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLnZhbHVlc1ByaXZhdGVOYW1lKCkpLCBEb250RW51bSk7XG4iKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNDE4MCw5ICs0Mjg3LDkgQEAgc3ViIEdlbmVyYXRl
SW1wbGVtZW50YXRpb24KICAgICBpZiAoJG51bUF0dHJpYnV0ZXMgPiAwKSB7CiAgICAgICAgIEFk
ZFRvSW1wbEluY2x1ZGVzKCJKU0RPTUF0dHJpYnV0ZS5oIik7CiAKLSAgICAgICAgbXkgJGNhc3Rp
bmdGdW5jdGlvbiA9ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Qcm94
eVRvSlNPYmplY3QifSA/ICJ0byR7Y2xhc3NOYW1lfSIgOiBHZXRDYXN0aW5nSGVscGVyRm9yVGhp
c09iamVjdCgkaW50ZXJmYWNlKTsKKyAgICAgICAgbXkgJGNhc3RpbmdGdW5jdGlvbiA9ICRpbnRl
cmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbVByb3h5VG9KU09iamVjdH0gPyAidG8k
e2NsYXNzTmFtZX0iIDogR2V0Q2FzdGluZ0hlbHBlckZvclRoaXNPYmplY3QoJGludGVyZmFjZSk7
CiAgICAgICAgICMgRklYTUU6IFJlbW92ZSBJbXBsaWNpdFRoaXMga2V5d29yZCBhcyBpdCBpcyBu
byBsb25nZXIgZGVmaW5lZCBieSBXZWJJREwgc3BlYyBhbmQgaXMgb25seSB1c2VkIGluIERPTVdp
bmRvdy4KLSAgICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBs
aWNpdFRoaXMifSkgeworICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57SW1wbGljaXRUaGlzfSkgewogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ0ZW1w
bGF0ZTw+IGlubGluZSAke2NsYXNzTmFtZX0qIElETEF0dHJpYnV0ZTwke2NsYXNzTmFtZX0+Ojpj
YXN0KEV4ZWNTdGF0ZSYgc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSlcbiIpOwogICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIGF1dG8gZGVjb2RlZFRoaXNWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpO1xuIik7CkBAIC00MjAyLDggKzQzMDksOCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbgogICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlNET01PcGVyYXRpb24uaCIpOwog
CiAgICAgICAgICMgRklYTUU6IE1ha2UgY29uc2lzdGVudCBJRExBdHRyaWJ1dGU8Pjo6Y2FzdCBh
bmQgSURMT3BlcmF0aW9uPD46OmNhc3QgaW4gY2FzZSBvZiBDdXN0b21Qcm94eVRvSlNPYmplY3Qu
Ci0gICAgICAgIG15ICRjYXN0aW5nRnVuY3Rpb24gPSAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQ3VzdG9tUHJveHlUb0pTT2JqZWN0In0gPyAidG8ke2NsYXNzTmFtZX0iIDogR2V0
Q2FzdGluZ0hlbHBlckZvclRoaXNPYmplY3QoJGludGVyZmFjZSk7Ci0gICAgICAgIG15ICR0aGlz
VmFsdWUgPSAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tUHJveHlUb0pT
T2JqZWN0In0gPyAic3RhdGUudGhpc1ZhbHVlKCkudG9UaGlzKCZzdGF0ZSwgTm90U3RyaWN0TW9k
ZSkiIDogInN0YXRlLnRoaXNWYWx1ZSgpIjsKKyAgICAgICAgbXkgJGNhc3RpbmdGdW5jdGlvbiA9
ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbVByb3h5VG9KU09iamVjdH0g
PyAidG8ke2NsYXNzTmFtZX0iIDogR2V0Q2FzdGluZ0hlbHBlckZvclRoaXNPYmplY3QoJGludGVy
ZmFjZSk7CisgICAgICAgIG15ICR0aGlzVmFsdWUgPSAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPntDdXN0b21Qcm94eVRvSlNPYmplY3R9ID8gInN0YXRlLnRoaXNWYWx1ZSgpLnRvVGhp
cygmc3RhdGUsIE5vdFN0cmljdE1vZGUpIiA6ICJzdGF0ZS50aGlzVmFsdWUoKSI7CiAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAidGVtcGxhdGU8PiBpbmxpbmUgJHtjbGFzc05hbWV9KiBJRExP
cGVyYXRpb248JHtjbGFzc05hbWV9Pjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlKVxuIik7CiAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIHJldHVybiAkY2FzdGluZ0Z1bmN0aW9uKHN0YXRlLnZtKCksICR0aGlzVmFsdWUpO1xu
Iik7CkBAIC00NjE0LDcgKzQ3MjEsNyBAQCBzdWIgR2VuZXJhdGVBdHRyaWJ1dGVHZXR0ZXJEZWZp
bml0aW9uCiAgICAgR2VuZXJhdGVBdHRyaWJ1dGVHZXR0ZXJCb2R5RGVmaW5pdGlvbigkb3V0cHV0
QXJyYXksICRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUsICRhdHRyaWJ1dGVHZXR0
ZXJCb2R5TmFtZSwgJGNvbmRpdGlvbmFsKTsKICAgICBHZW5lcmF0ZUF0dHJpYnV0ZUdldHRlclRy
YW1wb2xpbmVEZWZpbml0aW9uKCRvdXRwdXRBcnJheSwgJGludGVyZmFjZSwgJGNsYXNzTmFtZSwg
JGF0dHJpYnV0ZSwgJGF0dHJpYnV0ZUdldHRlck5hbWUsICRhdHRyaWJ1dGVHZXR0ZXJCb2R5TmFt
ZSwgJGNvbmRpdGlvbmFsKTsKICAgICAKLSAgICBpZiAoJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkRPTUpJVCJ9KSB7CisgICAgaWYgKCRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+e0RPTUpJVH0pIHsKICAgICAgICAgYXNzZXJ0KCJPbmx5IERPTUpJVD1HZXR0ZXIgaXMg
c3VwcG9ydGVkIGZvciBhdHRyaWJ1dGVzIikgdW5sZXNzICRjb2RlR2VuZXJhdG9yLT5FeHRlbmRl
ZEF0dHJpYnV0ZUNvbnRhaW5zKCRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0RPTUpJ
VH0sICJHZXR0ZXIiKTsKIAogICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPiIsICRjb25kaXRpb25hbCk7CkBAIC01MDcwLDIyICs1MTc3LDIyIEBAIHN1YiBH
ZW5lcmF0ZVNlcmlhbGl6ZXJEZWZpbml0aW9uCiAKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiPHJ1
bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaD4iKTsKIAotICAgIHB1c2goQGltcGxDb250ZW50LCAi
SlNDOjpKU09iamVjdCogSlMke2ludGVyZmFjZU5hbWV9OjpzZXJpYWxpemUoRXhlY1N0YXRlKiBz
dGF0ZSwgSlMke2ludGVyZmFjZU5hbWV9KiB0aGlzT2JqZWN0LCBUaHJvd1Njb3BlJiB0aHJvd1Nj
b3BlKVxuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0M6OkpTT2JqZWN0KiBKUyR7aW50
ZXJmYWNlTmFtZX06OnNlcmlhbGl6ZShFeGVjU3RhdGUmIHN0YXRlLCAke2NsYXNzTmFtZX0mIHRo
aXNPYmplY3QsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIFRocm93U2NvcGUmIHRo
cm93U2NvcGUpXG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwotICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIGF1dG8mIHZtID0gc3RhdGUtPnZtKCk7XG4iKTsKKyAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICBhdXRvJiB2bSA9IHN0YXRlLnZtKCk7XG4iKTsKIAogICAgIGlm
ICgkaW50ZXJmYWNlLT5zZXJpYWxpemFibGUtPmhhc0luaGVyaXQpIHsKICAgICAgICAgbXkgJHBh
cmVudFNlcmlhbGl6ZXJJbnRlcmZhY2VOYW1lID0gJHBhcmVudFNlcmlhbGl6ZXJJbnRlcmZhY2Ut
PnR5cGUtPm5hbWU7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGF1dG8qIHJlc3Vs
dCA9IEpTJHtwYXJlbnRTZXJpYWxpemVySW50ZXJmYWNlTmFtZX06OnNlcmlhbGl6ZShzdGF0ZSwg
dGhpc09iamVjdCwgdGhyb3dTY29wZSk7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgYXV0byogcmVzdWx0ID0gSlMke3BhcmVudFNlcmlhbGl6ZXJJbnRlcmZhY2VOYW1lfTo6
c2VyaWFsaXplKHN0YXRlLCB0aGlzT2JqZWN0LCBnbG9iYWxPYmplY3QsIHRocm93U2NvcGUpO1xu
Iik7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgYXV0byog
cmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmplY3Qoc3RhdGUpO1xuIik7CisgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIGF1dG8qIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KCZz
dGF0ZSwgZ2xvYmFsT2JqZWN0Lm9iamVjdFByb3RvdHlwZSgpKTtcbiIpOwogICAgIH0KICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIlxuIik7CiAKICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEBz
ZXJpYWxpemVkQXR0cmlidXRlcykgewogICAgICAgICBteSAkbmFtZSA9ICRhdHRyaWJ1dGUtPm5h
bWU7CiAgICAgICAgIG15ICRnZXRGdW5jdGlvbk5hbWUgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1l
KCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwotICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICBhdXRvICR7bmFtZX1WYWx1ZSA9ICR7Z2V0RnVuY3Rpb25OYW1lfUdldHRl
cigqc3RhdGUsICp0aGlzT2JqZWN0LCB0aHJvd1Njb3BlKTtcbiIpOworICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBhdXRvICR7bmFtZX1WYWx1ZSA9ICR7Z2V0RnVuY3Rpb25OYW1lfUdl
dHRlcihzdGF0ZSwgdGhpc09iamVjdCwgdGhyb3dTY29wZSk7XG4iKTsKICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgdGhyb3dTY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpO1xuIik7CiAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgXCIke25hbWV9XCIpLCAke25hbWV9VmFsdWUpO1xuIik7
CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4iKTsKQEAgLTUwOTUsMTQgKzUyMDIsMTQg
QEAgc3ViIEdlbmVyYXRlU2VyaWFsaXplckRlZmluaXRpb24KICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIn1cbiIpOwogICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4iKTsKIAotICAgIHB1c2goQGlt
cGxDb250ZW50LCAic3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSAke3NlcmlhbGl6ZXJOYXRp
dmVGdW5jdGlvbk5hbWV9Qm9keShFeGVjU3RhdGUqIHN0YXRlLCBKUyR7aW50ZXJmYWNlTmFtZX0q
IHRoaXNPYmplY3QsIEpTQzo6VGhyb3dTY29wZSYgdGhyb3dTY29wZSlcbiIpOworICAgIHB1c2go
QGltcGxDb250ZW50LCAic3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSAke3NlcmlhbGl6ZXJO
YXRpdmVGdW5jdGlvbk5hbWV9Qm9keShFeGVjU3RhdGUqIHN0YXRlLCAke2NsYXNzTmFtZX0qIHRo
aXNPYmplY3QsIEpTQzo6VGhyb3dTY29wZSYgdGhyb3dTY29wZSlcbiIpOwogICAgIHB1c2goQGlt
cGxDb250ZW50LCAie1xuIik7Ci0gICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKUyR7aW50ZXJmYWNlTmFtZX06OnNlcmlhbGl6ZShzdGF0ZSwgdGhpc09i
amVjdCwgdGhyb3dTY29wZSkpO1xuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShKUyR7aW50ZXJmYWNlTmFtZX06OnNlcmlhbGl6ZSgqc3RhdGUs
ICp0aGlzT2JqZWN0LCAqdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUpKTtc
biIpOwogICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuIik7CiAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJcbiIpOwogICAgIHB1c2goQGltcGxDb250ZW50LCAiRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCAke3NlcmlhbGl6ZXJOYXRpdmVGdW5jdGlvbk5hbWV9KEV4ZWNTdGF0ZSogc3RhdGUp
XG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwotICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIHJldHVybiBJRExPcGVyYXRpb248SlMke2ludGVyZmFjZU5hbWV9Pjo6Y2FsbDwk
e3NlcmlhbGl6ZXJOYXRpdmVGdW5jdGlvbk5hbWV9Qm9keT4oKnN0YXRlLCBcIiRzZXJpYWxpemVy
RnVuY3Rpb25OYW1lXCIpO1xuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKUyR7aW50ZXJmYWNlTmFtZX0+OjpjYWxsPCR7c2VyaWFsaXplck5hdGl2
ZUZ1bmN0aW9uTmFtZX1Cb2R5Pigqc3RhdGUsIFwiJHtzZXJpYWxpemVyRnVuY3Rpb25OYW1lfVwi
KTtcbiIpOwogICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuIik7CiAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJcbiIpOwogfQpAQCAtNTQ2Myw4ICs1NTcwLDcgQEAgc3ViIEdlbmVyYXRlRGljdGlv
bmFyeUhlYWRlcgogICAgICMgLSBBZGQgZGVmYXVsdCBoZWFkZXIgdGVtcGxhdGUgYW5kIGhlYWRl
ciBwcm90ZWN0aW9uLgogICAgIHB1c2goQGhlYWRlckNvbnRlbnRIZWFkZXIsIEdlbmVyYXRlSGVh
ZGVyQ29udGVudEhlYWRlcigkZGljdGlvbmFyeSkpOwogCi0gICAgJGhlYWRlckluY2x1ZGVzeyIk
Y2xhc3NOYW1lLmgifSA9IDE7Ci0gICAgJGhlYWRlckluY2x1ZGVzeyJKU0RPTUNvbnZlcnQuaCJ9
ID0gMTsKKyAgICAkaGVhZGVySW5jbHVkZXN7IiR7Y2xhc3NOYW1lfS5oIn0gPSAxOwogCiAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIlxubmFtZXNwYWNlIFdlYkNvcmUge1xuXG4iKTsKICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCBHZW5lcmF0ZURpY3Rpb25hcnlIZWFkZXJDb250ZW50KCRkaWN0
aW9uYXJ5LCAkY2xhc3NOYW1lKSk7CkBAIC02MTY0LDggKzYyNzAsNyBAQCBzdWIgSlNWYWx1ZVRv
TmF0aXZlCiAgICAgJHRoaXNPYmplY3RSZWZlcmVuY2UgPSAiKmNhc3RlZFRoaXMiIHVubGVzcyAk
dGhpc09iamVjdFJlZmVyZW5jZTsKIAogICAgIEFkZFRvSW1wbEluY2x1ZGVzRm9ySURMVHlwZSgk
dHlwZSwgJGNvbmRpdGlvbmFsKTsKLQotICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKU0RPTUNvbnZl
cnQuaCIpOworICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKU0RPTUdsb2JhbE9iamVjdC5oIiwgJGNv
bmRpdGlvbmFsKSBpZiBKU1ZhbHVlVG9OYXRpdmVET01Db252ZXJ0TmVlZHNHbG9iYWxPYmplY3Qo
JHR5cGUpOwogCiAgICAgbXkgJElETFR5cGUgPSBHZXRJRExUeXBlKCRpbnRlcmZhY2UsICR0eXBl
KTsKIApAQCAtNjI2OSwyOSArNjM3NCwyOSBAQCBzdWIgTmF0aXZlVG9KU1ZhbHVlRE9NQ29udmVy
dE5lZWRzR2xvYmFsCiAKIHN1YiBOYXRpdmVUb0pTVmFsdWVVc2luZ1JlZmVyZW5jZXMKIHsKLSAg
ICBteSAoJGNvbnRleHQsICRpbnRlcmZhY2UsICR2YWx1ZSwgJGdsb2JhbE9iamVjdFJlZmVyZW5j
ZSwgJHN1cHByZXNzRXhjZXB0aW9uQ2hlY2spID0gQF87CisgICAgbXkgKCRjb250ZXh0LCAkaW50
ZXJmYWNlLCAkdmFsdWUsICRnbG9iYWxPYmplY3RSZWZlcmVuY2UsICRzdXBwcmVzc0V4Y2VwdGlv
bkNoZWNrLCAkZXhjbHVkZU51bGxhYmlsaXR5KSA9IEBfOwogCi0gICAgcmV0dXJuIE5hdGl2ZVRv
SlNWYWx1ZSgkY29udGV4dCwgJGludGVyZmFjZSwgJHZhbHVlLCAic3RhdGUiLCAkZ2xvYmFsT2Jq
ZWN0UmVmZXJlbmNlLCAkc3VwcHJlc3NFeGNlcHRpb25DaGVjayk7CisgICAgcmV0dXJuIE5hdGl2
ZVRvSlNWYWx1ZSgkY29udGV4dCwgJGludGVyZmFjZSwgJHZhbHVlLCAic3RhdGUiLCAkZ2xvYmFs
T2JqZWN0UmVmZXJlbmNlLCAkc3VwcHJlc3NFeGNlcHRpb25DaGVjaywgJGV4Y2x1ZGVOdWxsYWJp
bGl0eSk7CiB9CiAKICMgRklYTUU6IFdlIHNob3VsZCByZW1vdmUgTmF0aXZlVG9KU1ZhbHVlVXNp
bmdQb2ludGVycyBhbmQgY29tYmluZSBOYXRpdmVUb0pTVmFsdWVVc2luZ1JlZmVyZW5jZXMgYW5k
IE5hdGl2ZVRvSlNWYWx1ZQogc3ViIE5hdGl2ZVRvSlNWYWx1ZVVzaW5nUG9pbnRlcnMKIHsKLSAg
ICBteSAoJGNvbnRleHQsICRpbnRlcmZhY2UsICR2YWx1ZSwgJGdsb2JhbE9iamVjdFJlZmVyZW5j
ZSwgJHN1cHByZXNzRXhjZXB0aW9uQ2hlY2spID0gQF87CisgICAgbXkgKCRjb250ZXh0LCAkaW50
ZXJmYWNlLCAkdmFsdWUsICRnbG9iYWxPYmplY3RSZWZlcmVuY2UsICRzdXBwcmVzc0V4Y2VwdGlv
bkNoZWNrLCAkZXhjbHVkZU51bGxhYmlsaXR5KSA9IEBfOwogCi0gICAgcmV0dXJuIE5hdGl2ZVRv
SlNWYWx1ZSgkY29udGV4dCwgJGludGVyZmFjZSwgJHZhbHVlLCAiKnN0YXRlIiwgJGdsb2JhbE9i
amVjdFJlZmVyZW5jZSwgJHN1cHByZXNzRXhjZXB0aW9uQ2hlY2spOworICAgIHJldHVybiBOYXRp
dmVUb0pTVmFsdWUoJGNvbnRleHQsICRpbnRlcmZhY2UsICR2YWx1ZSwgIipzdGF0ZSIsICRnbG9i
YWxPYmplY3RSZWZlcmVuY2UsICRzdXBwcmVzc0V4Y2VwdGlvbkNoZWNrLCAkZXhjbHVkZU51bGxh
YmlsaXR5KTsKIH0KIAogc3ViIElzVmFsaWRDb250ZXh0Rm9yTmF0aXZlVG9KU1ZhbHVlCiB7CiAg
ICAgbXkgJGNvbnRleHQgPSBzaGlmdDsKICAgICAKLSAgICByZXR1cm4gcmVmKCRjb250ZXh0KSBl
cSAiSURMQXR0cmlidXRlIiB8fCByZWYoJGNvbnRleHQpIGVxICJJRExPcGVyYXRpb24iIHx8IHJl
ZigkY29udGV4dCkgZXEgIklETEFyZ3VtZW50IjsKKyAgICByZXR1cm4gcmVmKCRjb250ZXh0KSBl
cSAiSURMQXR0cmlidXRlIiB8fCByZWYoJGNvbnRleHQpIGVxICJJRExBcmd1bWVudCIgfHwgcmVm
KCRjb250ZXh0KSBlcSAiSURMRGljdGlvbmFyeU1lbWJlciIgfHwgcmVmKCRjb250ZXh0KSBlcSAi
SURMT3BlcmF0aW9uIjsKIH0KIAogc3ViIE5hdGl2ZVRvSlNWYWx1ZQogewotICAgIG15ICgkY29u
dGV4dCwgJGludGVyZmFjZSwgJHZhbHVlLCAkc3RhdGVSZWZlcmVuY2UsICRnbG9iYWxPYmplY3RS
ZWZlcmVuY2UsICRzdXBwcmVzc0V4Y2VwdGlvbkNoZWNrKSA9IEBfOworICAgIG15ICgkY29udGV4
dCwgJGludGVyZmFjZSwgJHZhbHVlLCAkc3RhdGVSZWZlcmVuY2UsICRnbG9iYWxPYmplY3RSZWZl
cmVuY2UsICRzdXBwcmVzc0V4Y2VwdGlvbkNoZWNrLCAkZXhjbHVkZU51bGxhYmlsaXR5KSA9IEBf
OwogCiAgICAgYXNzZXJ0KCJJbnZhbGlkIGNvbnRleHQgdHlwZSIpIGlmICFJc1ZhbGlkQ29udGV4
dEZvck5hdGl2ZVRvSlNWYWx1ZSgkY29udGV4dCk7CiAKQEAgLTYzMDcsMTQgKzY0MTIsMTQgQEAg
c3ViIE5hdGl2ZVRvSlNWYWx1ZQogICAgIH0KIAogICAgIEFkZFRvSW1wbEluY2x1ZGVzRm9ySURM
VHlwZSgkdHlwZSwgJGNvbmRpdGlvbmFsKTsKLSAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlNET01D
b252ZXJ0LmgiLCAkY29uZGl0aW9uYWwpOworICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKU0RPTUds
b2JhbE9iamVjdC5oIiwgJGNvbmRpdGlvbmFsKSBpZiBOYXRpdmVUb0pTVmFsdWVET01Db252ZXJ0
TmVlZHNHbG9iYWxPYmplY3QoJHR5cGUpOwogCiAgICAgaWYgKCRjb250ZXh0LT5leHRlbmRlZEF0
dHJpYnV0ZXMtPntDaGVja1NlY3VyaXR5Rm9yTm9kZX0pIHsKICAgICAgICAgQWRkVG9JbXBsSW5j
bHVkZXMoIkpTRE9NQmluZGluZ1NlY3VyaXR5LmgiLCAkY29uZGl0aW9uYWwpOwogICAgICAgICAk
dmFsdWUgPSAiQmluZGluZ1NlY3VyaXR5OjpjaGVja1NlY3VyaXR5Rm9yTm9kZSgkc3RhdGVSZWZl
cmVuY2UsICR2YWx1ZSkiOwogICAgIH0KIAotICAgIG15ICRJRExUeXBlID0gR2V0SURMVHlwZSgk
aW50ZXJmYWNlLCAkdHlwZSk7CisgICAgbXkgJElETFR5cGUgPSAkZXhjbHVkZU51bGxhYmlsaXR5
ID8gR2V0SURMVHlwZUV4Y2x1ZGluZ051bGxhYmlsaXR5KCRpbnRlcmZhY2UsICR0eXBlKSA6IEdl
dElETFR5cGUoJGludGVyZmFjZSwgJHR5cGUpOwogCiAgICAgbXkgQGNvbnZlcnNpb25Bcmd1bWVu
dHMgPSAoKTsKICAgICBwdXNoKEBjb252ZXJzaW9uQXJndW1lbnRzLCAkc3RhdGVSZWZlcmVuY2Up
IGlmIE5hdGl2ZVRvSlNWYWx1ZURPTUNvbnZlcnROZWVkc1N0YXRlKCR0eXBlKSB8fCAkbWF5VGhy
b3dFeGNlcHRpb247CkBAIC02NzU0LDggKzY4NTksNiBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3Rv
ckRlZmluaXRpb24KICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBhdXRvKiBj
YXN0ZWRUaGlzID0ganNDYXN0PCR7Y29uc3RydWN0b3JDbGFzc05hbWV9Kj4oc3RhdGUtPmpzQ2Fs
bGVlKCkpO1xuIik7CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgQVNTRVJU
KGNhc3RlZFRoaXMpO1xuIik7CiAKLSAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCI8cnVu
dGltZS9FcnJvci5oPiIpOwotCiAgICAgICAgICAgICBHZW5lcmF0ZUFyZ3VtZW50c0NvdW50Q2hl
Y2soJG91dHB1dEFycmF5LCAkb3BlcmF0aW9uLCAkaW50ZXJmYWNlLCAiICAgICIpOwogCiAgICAg
ICAgICAgICBteSAkZnVuY3Rpb25JbXBsZW1lbnRhdGlvbk5hbWUgPSAkZ2VuZXJhdGluZ05hbWVk
Q29uc3RydWN0b3IgPyAiY3JlYXRlRm9ySlNDb25zdHJ1Y3RvciIgOiAiY3JlYXRlIjsKQEAgLTY3
NjYsNiArNjg2OSw4IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbgogCiAgICAg
ICAgICAgICBteSAkSURMVHlwZSA9IEdldElETFR5cGUoJGludGVyZmFjZSwgJGludGVyZmFjZS0+
dHlwZSk7CiAKKyAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKU0RPTUNvbnZlcnRJbnRl
cmZhY2UuaCIpOworCiAgICAgICAgICAgICBteSBAY29uc3RydWN0aW9uQ29udmVyc2lvbkFyZ3Vt
ZW50cyA9ICgpOwogICAgICAgICAgICAgcHVzaChAY29uc3RydWN0aW9uQ29udmVyc2lvbkFyZ3Vt
ZW50cywgIipzdGF0ZSIpOwogICAgICAgICAgICAgcHVzaChAY29uc3RydWN0aW9uQ29udmVyc2lv
bkFyZ3VtZW50cywgIipjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSIpOwpAQCAtNjk0MCw3ICs3
MDQ1LDcgQEAgc3ViIENvbXB1dGVGdW5jdGlvblNwZWNpYWwKICAgICB9IGVsc2UgewogICAgICAg
ICBwdXNoKEBzcGVjaWFscywgIkpTQzo6RnVuY3Rpb24iKTsKICAgICB9Ci0gICAgaWYgKCRvcGVy
YXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJET01KSVQifSkgeworICAgIGlmICgkb3BlcmF0
aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntET01KSVR9KSB7CiAgICAgICAgIHB1c2goQHNwZWNp
YWxzLCAiRE9NSklURnVuY3Rpb24iKSBpZiAkb3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PntET01KSVR9OwogICAgIH0KICAgICByZXR1cm4gKEBzcGVjaWFscyA+IDApID8gam9pbigiIHwg
IiwgQHNwZWNpYWxzKSA6ICIwIjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU0ludGVyZmFjZU5hbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0ludGVyZmFjZU5hbWUuY3BwCShyZXZpc2lv
biAyMTgzMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNJ
bnRlcmZhY2VOYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1
ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNo
ZS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxy
dW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKIHVzaW5nIG5h
bWVzcGFjZSBKU0M7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNNYXBMaWtlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNNYXBMaWtlLmNwcAkocmV2aXNpb24gMjE4MzE0KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTTWFwTGlrZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI0LDEzICsyNCwxNSBAQAogI2luY2x1ZGUgIkpTRE9NQXR0cmlidXRlLmgiCiAj
aW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENv
bnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RP
TUNvbnZlcnRBbnkuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVk
ZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NTWFwTGlrZS5oIgog
I2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUu
aCIKICNpbmNsdWRlIDxidWlsdGlucy9CdWlsdGluTmFtZXMuaD4KICNpbmNsdWRlIDxydW50aW1l
L0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAj
aW5jbHVkZSA8d3RmL0dldFB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlNYXBMaWtlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNSZWFkT25seU1hcExpa2UuY3BwCShyZXZpc2lvbiAyMTgzMTQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seU1hcExpa2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNCwxMyArMjQsMTUgQEAKICNpbmNsdWRlICJKU0RPTUF0dHJpYnV0ZS5oIgog
I2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RD
b25zdHJ1Y3RhYmxlLmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNE
T01Db252ZXJ0QW55LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1
ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTU1hcExpa2UuaCIK
ICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hl
LmgiCiAjaW5jbHVkZSA8YnVpbHRpbnMvQnVpbHRpbk5hbWVzLmg+CiAjaW5jbHVkZSA8cnVudGlt
ZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgog
I2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmpl
Y3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCShyZXZpc2lvbiAyMTgzMTQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTIgKzI1LDE1IEBACiAjaW5jbHVkZSAiSlNET01C
aW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nU2VjdXJpdHkuaCIKICNpbmNsdWRlICJK
U0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVy
dC5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEludGVyZmFjZS5oIgorI2luY2x1ZGUgIkpTRE9N
Q29udmVydE51bWJlcnMuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5j
bHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9u
LmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJKU05vZGUuaCIK
ICNpbmNsdWRlIDxydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8cnVudGlt
ZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogCiB1c2luZyBuYW1lc3Bh
Y2UgSlNDOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdENFUmVhY3Rpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnMuY3BwCShyZXZpc2lvbiAyMTgzMTQp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFj
dGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMiArMjYsMTUgQEAKICNpbmNsdWRlICJK
U0RPTUF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpT
RE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0
LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0SW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiSlNET01D
b252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKKyNp
bmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgi
CiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJKU1Rlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyLmgiCiAjaW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5o
PgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIu
aD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VS
ZWFjdGlvbnNTdHJpbmdpZmllci5jcHAJKHJldmlzaW9uIDIxODMxNCkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTEgKzI1LDEyIEBACiAjaW5jbHVkZSAiSlNET01B
dHRyaWJ1dGUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNv
bnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgor
I2luY2x1ZGUgIkpTRE9NQ29udmVydFN0cmluZ3MuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlv
bkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNET01PcGVyYXRpb24uaCIKICNpbmNsdWRlICJKU0RP
TVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4K
KyNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVu
Y3Rpb24uY3BwCShyZXZpc2lvbiAyMTgzMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTIxLDcgKzIxLDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1Rlc3RD
YWxsYmFja0Z1bmN0aW9uLmgiCiAKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRl
ICJKU0RPTUNvbnZlcnROdW1iZXJzLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5o
IgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0
aW9uUmV0aHJvdy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rpb25SZXRocm93LmNwcAkocmV2aXNpb24g
MjE4MzE0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dENhbGxiYWNrRnVuY3Rpb25SZXRocm93LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEsOCArMjEs
MTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1Rlc3RDYWxsYmFja0Z1bmN0
aW9uUmV0aHJvdy5oIgogCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNE
T01Db252ZXJ0TnVtYmVycy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFNlcXVlbmNlcy5oIgor
I2luY2x1ZGUgIkpTRE9NQ29udmVydFN0cmluZ3MuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlv
bkhhbmRsaW5nLmgiCisjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0FycmF5Lmg+CiAj
aW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uV2l0aFR5cGVkZWZzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Q2FsbGJhY2tGdW5jdGlvbldpdGhUeXBlZGVmcy5jcHAJKHJldmlzaW9uIDIxODMxNCkKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1
bmN0aW9uV2l0aFR5cGVkZWZzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEsOCArMjEsMTEgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1Rlc3RDYWxsYmFja0Z1bmN0aW9uV2l0
aFR5cGVkZWZzLmgiCiAKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RP
TUNvbnZlcnROdWxsYWJsZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bWJlcnMuaCIKKyNp
bmNsdWRlICJKU0RPTUNvbnZlcnRTZXF1ZW5jZXMuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlv
bkhhbmRsaW5nLmgiCisjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0FycmF5Lmg+CiAj
aW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0ludGVyZmFjZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNr
SW50ZXJmYWNlLmNwcAkocmV2aXNpb24gMjE4MzE0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrSW50ZXJmYWNlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjUsMTIgKzI1LDIwIEBACiAjaW5jbHVkZSAiSlNUZXN0Q2FsbGJhY2tJbnRlcmZh
Y2UuaCIKIAogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCisj
aW5jbHVkZSAiSlNET01Db252ZXJ0Qm9vbGVhbi5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEJ1
ZmZlclNvdXJjZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEludGVyZmFjZS5oIgorI2luY2x1
ZGUgIkpTRE9NQ29udmVydE51bWJlcnMuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTZXJpYWxp
emVkU2NyaXB0VmFsdWUuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5j
bHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgorI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiSlNET01TdHJpbmdMaXN0LmgiCiAjaW5jbHVkZSAiSlNUZXN0Tm9k
ZS5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTZXJp
YWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlIDxydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBl
Lmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9K
U0xvY2suaD4KICNpbmNsdWRlIDxydW50aW1lL0pTU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Q2FsbGJhY2tJbnRlcmZhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tJbnRlcmZhY2UuaAko
cmV2aXNpb24gMjE4MzE0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdENhbGxiYWNrSW50ZXJmYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1
LDggQEAKICNpbmNsdWRlICJBY3RpdmVET01DYWxsYmFjay5oIgogI2luY2x1ZGUgIklETFR5cGVz
LmgiCiAjaW5jbHVkZSAiSlNDYWxsYmFja0RhdGEuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQu
aCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnREaWN0aW9uYXJ5LmgiCisjaW5jbHVkZSAiSlNET01D
b252ZXJ0RW51bWVyYXRpb24uaCIKICNpbmNsdWRlICJUZXN0Q2FsbGJhY2tJbnRlcmZhY2UuaCIK
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDIxODMxNCkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dp
dGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcg
QEAKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgIlRlc3RDbGFzc1dp
dGhKU0J1aWx0aW5Db25zdHJ1Y3RvckJ1aWx0aW5zLmgiCiAjaW5jbHVkZSA8cnVudGltZS9GdW5j
dGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1
ZGUgPHd0Zi9HZXRQdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3Rvcldp
dGhOb0ludGVyZmFjZU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJm
YWNlT2JqZWN0LmNwcAkocmV2aXNpb24gMjE4MzE0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNl
T2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkpT
RE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgog
I2luY2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxydW50aW1l
L0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBKU0M7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RE9NSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RE9NSklULmNwcAkocmV2aXNpb24gMjE4MzE0KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDEzICsyOCwyMCBAQAogI2luY2x1ZGUgIkpTRE9NQXR0cmlidXRlLmgi
CiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5v
dENvbnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJK
U0RPTUNvbnZlcnRBbnkuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRCb29sZWFuLmgiCisjaW5j
bHVkZSAiSlNET01Db252ZXJ0SW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0TnVs
bGFibGUuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnROdW1iZXJzLmgiCisjaW5jbHVkZSAiSlNE
T01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIK
KyNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9u
LmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJKU0VsZW1lbnQu
aCIKICNpbmNsdWRlICJKU05vZGVMaXN0LmgiCiAjaW5jbHVkZSA8aW50ZXJwcmV0ZXIvRnJhbWVU
cmFjZXJzLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3Rm
L0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rv
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAyMTgzMTQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDkgKzI0LDEyIEBACiAjaW5jbHVkZSAiSlNET01B
dHRyaWJ1dGUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNv
bnN0cnVjdG9yLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0Qm9vbGVhbi5oIgorI2luY2x1ZGUg
IkpTRE9NQ29udmVydEludGVyZmFjZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFN0cmluZ3Mu
aCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNET01X
cmFwcGVyQ2FjaGUuaCIKLSNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CisjaW5jbHVkZSA8cnVu
dGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogCiB1c2luZyBuYW1l
c3BhY2UgSlNDOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCShyZXZpc2lv
biAyMTgzMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMCw3ICsyMCw3IEBACiAK
ICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNE
T01Db252ZXJ0RGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIkpTRXZlbnQuaCIKICNpbmNsdWRlICJU
ZXN0RXZlbnRDb25zdHJ1Y3Rvci5oIgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAJ
KHJldmlzaW9uIDIxODMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDExICsyNCwx
NCBAQAogI2luY2x1ZGUgIkpTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNE
T01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUu
aCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRJbnRl
cmZhY2UuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnROdW1iZXJzLmgiCiAjaW5jbHVkZSAiSlNE
T01FeGNlcHRpb25IYW5kbGluZy5oIgorI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmgiCiAj
aW5jbHVkZSAiSlNET01PcGVyYXRpb24uaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5o
IgogI2luY2x1ZGUgIkpTTm9kZS5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgog
I2luY2x1ZGUgPHJ1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvR2V0
UHRyLmg+CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFeGNlcHRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCShyZXZpc2lvbiAyMTgzMTQpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9u
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsMTAgKzI0LDExIEBACiAjaW5jbHVkZSAiSlNET01B
dHRyaWJ1dGUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNv
bnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgor
I2luY2x1ZGUgIkpTRE9NQ29udmVydFN0cmluZ3MuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlv
bkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlIDxy
dW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVz
Lmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRl
SXNSZWFjaGFibGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAkocmV2aXNpb24gMjE4
MzE0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdl
bmVyYXRlSXNSZWFjaGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxMiArMjQsMTMgQEAK
ICNpbmNsdWRlICJKU0RPTUF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgog
I2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCi0jaW5jbHVkZSAi
SlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1
ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNo
ZS5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblByb3RvdHlw
ZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQ
dHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmpl
Y3QuY3BwCShyZXZpc2lvbiAyMTgzMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQs
NyArMjQsOSBAQAogI2luY2x1ZGUgIkpTRE9NQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiSlNET01C
aW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIK
LSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRCb29sZWFu
LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0TnVtYmVycy5oIgorI2luY2x1ZGUgIkpTRE9NQ29u
dmVydFN0cmluZ3MuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5j
bHVkZSAiSlNET01PcGVyYXRpb24uaCIKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvblJldHVybmlu
Z1Byb21pc2UuaCIKQEAgLTMzLDYgKzM1LDcgQEAKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25D
b250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUgPHJ1
bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMu
aD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNw
cAkocmV2aXNpb24gMjE4MzE0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMywxMSArMjMsMTIgQEAKIAogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1
ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCi0jaW5jbHVkZSAiSlNET01D
b252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpT
RE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgog
I2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4K
KyNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL1Byb3Bl
cnR5TmFtZUFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93
aW5nRXhjZXB0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAko
cmV2aXNpb24gMjE4MzE0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIzLDExICsyMywxMiBAQAogCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5j
bHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RP
TUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAi
SlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgi
CiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5o
PgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvUHJv
cGVydHlOYW1lQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0
aElkZW50aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCShyZXZp
c2lvbiAyMTgzMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjMsMTIgKzIzLDE0IEBACiAKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJK
U0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVy
dC5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bWJlcnMuaCIKKyNpbmNsdWRlICJKU0RPTUNv
bnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2lu
Y2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIK
ICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDxydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmg+
CisjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Qcm9w
ZXJ0eU5hbWVBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KIApJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZS5jcHAJKHJldmlzaW9uIDIxODMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNywyMCArMjcsMjYgQEAKICNpbmNsdWRlICJKU0RPTUF0dHJpYnV0ZS5oIgogI2luY2x1ZGUg
IkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3IuaCIKLSNpbmNsdWRl
ICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRJbnRlcmZhY2UuaCIKICNp
bmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNET01PcGVyYXRp
b24uaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgIlRlc3RTdXBw
bGVtZW50YWwuaCIKLSNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CiAjaW5jbHVkZSA8cnVudGlt
ZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgog
I2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KIAorI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFC
TEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikgfHwgRU5BQkxFKENvbmRpdGlv
bjIpIHx8IEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQorI2luY2x1
ZGUgIkpTRE9NQ29udmVydFN0cmluZ3MuaCIKKyNlbmRpZgorCiAjaWYgRU5BQkxFKENvbmRpdGlv
bjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCiAjaW5jbHVkZSAiVGVzdFN1cHBsZW1lbnRhbEJ1
aWx0aW5zLmgiCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENv
bmRpdGlvbjEyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykK
KyNpbmNsdWRlICJKU0RPTUNvbnZlcnROdW1iZXJzLmgiCisjaW5jbHVkZSAiSlNET01HbG9iYWxP
YmplY3QuaCIKICNpbmNsdWRlICJKU05vZGUuaCIKICNpbmNsdWRlICJKU1Rlc3RPYmouaCIKICNl
bmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVy
c2NvcmUuY3BwCShyZXZpc2lvbiAyMTgzMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNCwxMCArMjQsMTEgQEAKICNpbmNsdWRlICJKU0RPTUF0dHJpYnV0ZS5o
IgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JO
b3RDb25zdHJ1Y3RhYmxlLmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAi
SlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcu
aCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRnVu
Y3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNs
dWRlIDx3dGYvR2V0UHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
dGVyYWJsZS5jcHAJKHJldmlzaW9uIDIxODMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJdGVyYWJsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDYgKzI5LDcgQEAKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgPGJ1
aWx0aW5zL0J1aWx0aW5OYW1lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5
cGUuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0
UHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RK
U0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDIxODMxNCkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJKU0RPTVdyYXBw
ZXJDYWNoZS5oIgogI2luY2x1ZGUgIlRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckJ1aWx0aW5zLmgi
CiAjaW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPHJ1bnRp
bWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIEpTQzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5jcHAJKHJldmlzaW9uIDIxODMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjMsMTIgKzIzLDE0IEBACiAKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNs
dWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9N
Q29udmVydC5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydENhbGxiYWNrcy5oIgogI2luY2x1ZGUg
IkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKKyNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5o
IgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2Fj
aGUuaCIKICNpbmNsdWRlICJKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCIKICNpbmNsdWRlIDxy
dW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVz
Lmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5v
SWRlbnRpZmllci5jcHAJKHJldmlzaW9uIDIxODMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZp
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxMSArMjQsMTIgQEAKICNpbmNsdWRlICJKU0RP
TUFic3RyYWN0T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1
ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCi0jaW5jbHVkZSAiSlNET01D
b252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpT
RE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgog
I2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4K
KyNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL1Byb3Bl
cnR5TmFtZUFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0
dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbi5jcHAJKHJldmlzaW9uIDIxODMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4
Y2VwdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDExICsyNCwxMiBAQAogI2luY2x1ZGUg
IkpTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAj
aW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJK
U0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVk
ZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hl
LmgiCiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblByb3RvdHlw
ZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUv
UHJvcGVydHlOYW1lQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJ
ZGVudGlmaWVyLmNwcAkocmV2aXNpb24gMjE4MzE0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsMTIgKzI0LDE0IEBACiAjaW5jbHVkZSAiSlNE
T01BYnN0cmFjdE9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNs
dWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9N
Q29udmVydC5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bWJlcnMuaCIKKyNpbmNsdWRlICJK
U0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5o
IgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2Fj
aGUuaCIKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDxydW50aW1lL0Z1bmN0aW9uUHJvdG90
eXBlLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cnVudGlt
ZS9Qcm9wZXJ0eU5hbWVBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KIApJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3Ry
dWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMjE4MzE0KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3Ry
dWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMywxMiArMjMsMTMgQEAKIAogI2luY2x1ZGUg
IkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3Rh
YmxlLmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0
SW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUg
IkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTU5hbWVkQ29uc3RydWN0
b3IuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgotI2luY2x1ZGUgPHJ1bnRpbWUv
RXJyb3IuaD4KICNpbmNsdWRlIDxydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVk
ZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogCiB1c2lu
ZyBuYW1lc3BhY2UgSlNDOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRl
ck5vSWRlbnRpZmllci5jcHAJKHJldmlzaW9uIDIxODMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxMCArMjQsMTEgQEAKICNpbmNsdWRlICJKU0RPTUFic3Ry
YWN0T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpT
RE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0
LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NRXhj
ZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1
ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTQ0lu
bGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4
Y2VwdGlvbi5jcHAJKHJldmlzaW9uIDIxODMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI0LDEwICsyNCwxMSBAQAogI2luY2x1ZGUgIkpTRE9NQWJzdHJh
Y3RPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNE
T01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQu
aCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNl
cHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVk
ZSA8cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5s
aW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZERlbGV0ZXJXaXRoSWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVy
LmNwcAkocmV2aXNpb24gMjE4MzE0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjQsMTEgKzI0LDEyIEBACiAjaW5jbHVkZSAiSlNET01BYnN0cmFjdE9wZXJhdGlv
bnMuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVj
dG9yTm90Q29uc3RydWN0YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgorI2luY2x1
ZGUgIkpTRE9NQ29udmVydFN0cmluZ3MuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRs
aW5nLmgiCiAjaW5jbHVkZSAiSlNET01PcGVyYXRpb24uaCIKICNpbmNsdWRlICJKU0RPTVdyYXBw
ZXJDYWNoZS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNs
dWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBKU0M7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAJKHJldmlzaW9uIDIxODMxNCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRo
SW5kZXhlZEdldHRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDExICsyNCwxMiBAQAogI2lu
Y2x1ZGUgIkpTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5n
LmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKLSNpbmNs
dWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAj
aW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBl
ckNhY2hlLmgiCiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblBy
b3RvdHlwZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1
bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNl
dHRlck5vSWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAkocmV2
aXNpb24gMjE4MzE0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQs
MTAgKzI0LDExIEBACiAjaW5jbHVkZSAiSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaCIKICNpbmNs
dWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3Ry
dWN0YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgorI2luY2x1ZGUgIkpTRE9NQ29u
dmVydFN0cmluZ3MuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5j
bHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlIDxydW50aW1lL0Z1bmN0aW9uUHJv
dG90eXBlLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3Rm
L0dldFB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwpJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAkocmV2aXNpb24gMjE4
MzE0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxMCAr
MjQsMTEgQEAKICNpbmNsdWRlICJKU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUg
IkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3Rh
YmxlLmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0
U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRl
ICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5
cGUuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0
UHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCShyZXZpc2lvbiAyMTgzMTQpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoSWRlbnRpZmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDExICsyNCwxMiBAQAogI2lu
Y2x1ZGUgIkpTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5n
LmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKLSNpbmNs
dWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAj
aW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0
aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlIDxydW50aW1l
L0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAj
aW5jbHVkZSA8d3RmL0dldFB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0
aE92ZXJyaWRlQnVpbHRpbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5z
LmNwcAkocmV2aXNpb24gMjE4MzE0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNCwxMCArMjQsMTEgQEAKICNpbmNsdWRlICJKU0RPTUFic3RyYWN0T3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29u
c3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisj
aW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9u
SGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgPHJ1
bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMu
aD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdh
YmxlUHJvcGVydGllcy5jcHAJKHJldmlzaW9uIDIxODMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJv
cGVydGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDExICsyNSwxMiBAQAogI2luY2x1ZGUg
IkpTRE9NQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAi
SlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZl
cnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01F
eGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVk
ZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlIDxydW50aW1lL0Z1bmN0aW9uUHJvdG90
eXBlLmg+CisjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dl
dFB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9w
ZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2Fi
bGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5jcHAJKHJldmlzaW9uIDIxODMxNCkKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRl
cldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNSwxMSArMjUsMTIgQEAKICNpbmNsdWRlICJKU0RPTUF0dHJpYnV0ZS5oIgog
I2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RD
b25zdHJ1Y3RhYmxlLmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNE
T01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIK
ICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hl
LmgiCiAjaW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPHJ1
bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIEpTQzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAJKHJldmlzaW9uIDIxODMxNCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjQsNyArMjQsOSBAQAogI2luY2x1ZGUgIkpTRE9NQXR0cmlidXRlLmgiCiAj
aW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvci5oIgot
I2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEJvb2xlYW4u
aCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRJbnRlcmZhY2UuaCIKKyNpbmNsdWRlICJKU0RPTUNv
bnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2lu
Y2x1ZGUgIkpTRE9NSXRlcmF0b3IuaCIKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgpAQCAt
MzMsNyArMzUsNyBAQAogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNs
dWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSA8YnVpbHRpbnMvQnVpbHRp
bk5hbWVzLmg+Ci0jaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgorI2luY2x1ZGUgPHJ1bnRpbWUv
SlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaD4KICNp
bmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKQEAgLTM4NiwxMiArMzg4LDEyIEBAIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3QKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdE5vZGU+OjpjYWxsPGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkZvckVhY2hDYWxsZXI+
KCpzdGF0ZSwgImZvckVhY2giKTsKIH0KIAotSlNDOjpKU09iamVjdCogSlNUZXN0Tm9kZTo6c2Vy
aWFsaXplKEV4ZWNTdGF0ZSogc3RhdGUsIEpTVGVzdE5vZGUqIHRoaXNPYmplY3QsIFRocm93U2Nv
cGUmIHRocm93U2NvcGUpCitKU0M6OkpTT2JqZWN0KiBKU1Rlc3ROb2RlOjpzZXJpYWxpemUoRXhl
Y1N0YXRlJiBzdGF0ZSwgSlNUZXN0Tm9kZSYgdGhpc09iamVjdCwgSlNET01HbG9iYWxPYmplY3Qm
IGdsb2JhbE9iamVjdCwgVGhyb3dTY29wZSYgdGhyb3dTY29wZSkKIHsKLSAgICBhdXRvJiB2bSA9
IHN0YXRlLT52bSgpOwotICAgIGF1dG8qIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KHN0
YXRlKTsKKyAgICBhdXRvJiB2bSA9IHN0YXRlLnZtKCk7CisgICAgYXV0byogcmVzdWx0ID0gY29u
c3RydWN0RW1wdHlPYmplY3QoJnN0YXRlLCBnbG9iYWxPYmplY3Qub2JqZWN0UHJvdG90eXBlKCkp
OwogCi0gICAgYXV0byBuYW1lVmFsdWUgPSBqc1Rlc3ROb2RlTmFtZUdldHRlcigqc3RhdGUsICp0
aGlzT2JqZWN0LCB0aHJvd1Njb3BlKTsKKyAgICBhdXRvIG5hbWVWYWx1ZSA9IGpzVGVzdE5vZGVO
YW1lR2V0dGVyKHN0YXRlLCB0aGlzT2JqZWN0LCB0aHJvd1Njb3BlKTsKICAgICB0aHJvd1Njb3Bl
LmFzc2VydE5vRXhjZXB0aW9uKCk7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoJnZtLCAibmFtZSIpLCBuYW1lVmFsdWUpOwogCkBAIC00MDAsNyArNDAy
LDcgQEAgSlNDOjpKU09iamVjdCogSlNUZXN0Tm9kZTo6c2VyaWFsaXplKEV4ZQogCiBzdGF0aWMg
aW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblRvSlNPTkJv
ZHkoRXhlY1N0YXRlKiBzdGF0ZSwgSlNUZXN0Tm9kZSogdGhpc09iamVjdCwgSlNDOjpUaHJvd1Nj
b3BlJiB0aHJvd1Njb3BlKQogewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0Tm9k
ZTo6c2VyaWFsaXplKHN0YXRlLCB0aGlzT2JqZWN0LCB0aHJvd1Njb3BlKSk7CisgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROb2RlOjpzZXJpYWxpemUoKnN0YXRlLCAqdGhpc09iamVj
dCwgKnRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlKSk7CiB9CiAKIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVG9KU09O
KEV4ZWNTdGF0ZSogc3RhdGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Tm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmgJKHJldmlzaW9uIDIxODMxNCkKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBK
U0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxP
YmplY3QqKTsKLSAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogc2VyaWFsaXplKEpTQzo6RXhlY1N0
YXRlKiwgSlNUZXN0Tm9kZSogdGhpc09iamVjdCwgSlNDOjpUaHJvd1Njb3BlJik7CisgICAgc3Rh
dGljIEpTQzo6SlNPYmplY3QqIHNlcmlhbGl6ZShKU0M6OkV4ZWNTdGF0ZSYsIEpTVGVzdE5vZGUm
IHRoaXNPYmplY3QsIEpTRE9NR2xvYmFsT2JqZWN0JiwgSlNDOjpUaHJvd1Njb3BlJik7CiAgICAg
VGVzdE5vZGUmIHdyYXBwZWQoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PFRlc3ROb2RlJj4oQmFzZTo6d3JhcHBlZCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCShyZXZpc2lv
biAyMTgzMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsOCArMzAsMjQgQEAKICNpbmNsdWRlICJK
U0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmdTZWN1cml0eS5oIgogI2luY2x1
ZGUgIkpTRE9NQ29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRBbnkuaCIKKyNp
bmNsdWRlICJKU0RPTUNvbnZlcnRCb29sZWFuLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0QnVm
ZmVyU291cmNlLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0Q2FsbGJhY2tzLmgiCisjaW5jbHVk
ZSAiSlNET01Db252ZXJ0RXZlbnRMaXN0ZW5lci5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydElu
dGVyZmFjZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bGxhYmxlLmgiCisjaW5jbHVkZSAi
SlNET01Db252ZXJ0TnVtYmVycy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydE9iamVjdC5oIgor
I2luY2x1ZGUgIkpTRE9NQ29udmVydFJlY29yZC5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFNl
cXVlbmNlcy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5o
IgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFN0cmluZ3MuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZl
cnRVbmlvbi5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydFZhcmlhZGljLmgiCisjaW5jbHVkZSAi
SlNET01Db252ZXJ0WFBhdGhOU1Jlc29sdmVyLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25I
YW5kbGluZy5oIgorI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNE
T01JdGVyYXRvci5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNE
T01PcGVyYXRpb25SZXR1cm5pbmdQcm9taXNlLmgiCkBAIC02NSwxMCArODEsMTEgQEAKICNpbmNs
dWRlIDxidWlsdGlucy9CdWlsdGluTmFtZXMuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0
QXJndW1lbnRzLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFja0ZhY3Rvcnku
aD4KLSNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CisjaW5jbHVkZSA8cnVudGltZS9BcnJheVBy
b3RvdHlwZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KICNpbmNs
dWRlIDxydW50aW1lL0l0ZXJhdG9yT3BlcmF0aW9ucy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNB
cnJheS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRp
bWUvSlNTdHJpbmcuaD4KICNpbmNsdWRlIDxydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmg+CiAj
aW5jbHVkZSA8cnVudGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5oPgpAQCAtNjE0LDcgKzYzMSw3IEBA
IEpTQzo6SlNPYmplY3QqIGNvbnZlcnREaWN0aW9uYXJ5VG9KUyhKU0MKIHsKICAgICBhdXRvJiB2
bSA9IHN0YXRlLnZtKCk7CiAKLSAgICBhdXRvIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0
KCZzdGF0ZSk7CisgICAgYXV0byByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdCgmc3RhdGUs
IGdsb2JhbE9iamVjdC5vYmplY3RQcm90b3R5cGUoKSk7CiAKICAgICBpZiAoIUlETFNlcXVlbmNl
PElETENsYW1wQWRhcHRvcjxJRExMb25nPj46OmlzTnVsbFZhbHVlKGRpY3Rpb25hcnkuYW5ub3Rh
dGVkVHlwZUluU2VxdWVuY2VNZW1iZXIpKSB7CiAgICAgICAgIGF1dG8gYW5ub3RhdGVkVHlwZUlu
U2VxdWVuY2VNZW1iZXJWYWx1ZSA9IHRvSlM8SURMU2VxdWVuY2U8SURMQ2xhbXBBZGFwdG9yPElE
TExvbmc+Pj4oc3RhdGUsIGdsb2JhbE9iamVjdCwgSURMU2VxdWVuY2U8SURMQ2xhbXBBZGFwdG9y
PElETExvbmc+Pjo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRpY3Rpb25hcnkuYW5ub3RhdGVk
VHlwZUluU2VxdWVuY2VNZW1iZXIpKTsKQEAgLTYyNCw5NiArNjQxLDk2IEBAIEpTQzo6SlNPYmpl
Y3QqIGNvbnZlcnREaWN0aW9uYXJ5VG9KUyhKU0MKICAgICAgICAgYXV0byBhbm5vdGF0ZWRUeXBl
SW5Vbmlvbk1lbWJlclZhbHVlID0gdG9KUzxJRExVbmlvbjxJRExET01TdHJpbmcsIElETENsYW1w
QWRhcHRvcjxJRExMb25nPj4+KHN0YXRlLCBnbG9iYWxPYmplY3QsIElETFVuaW9uPElETERPTVN0
cmluZywgSURMQ2xhbXBBZGFwdG9yPElETExvbmc+Pjo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxl
KGRpY3Rpb25hcnkuYW5ub3RhdGVkVHlwZUluVW5pb25NZW1iZXIpKTsKICAgICAgICAgcmVzdWx0
LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJhbm5vdGF0
ZWRUeXBlSW5Vbmlvbk1lbWJlciIpLCBhbm5vdGF0ZWRUeXBlSW5Vbmlvbk1lbWJlclZhbHVlKTsK
ICAgICB9Ci0gICAgYXV0byBhbnlUeXBlZGVmVmFsdWVWYWx1ZSA9IHRvSlM8SURMQW55PihzdGF0
ZSwgZ2xvYmFsT2JqZWN0LCBkaWN0aW9uYXJ5LmFueVR5cGVkZWZWYWx1ZSk7CisgICAgYXV0byBh
bnlUeXBlZGVmVmFsdWVWYWx1ZSA9IHRvSlM8SURMQW55PihkaWN0aW9uYXJ5LmFueVR5cGVkZWZW
YWx1ZSk7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0
cmluZygmdm0sICJhbnlUeXBlZGVmVmFsdWUiKSwgYW55VHlwZWRlZlZhbHVlVmFsdWUpOwotICAg
IGF1dG8gYW55VmFsdWVWYWx1ZSA9IHRvSlM8SURMQW55PihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBk
aWN0aW9uYXJ5LmFueVZhbHVlKTsKKyAgICBhdXRvIGFueVZhbHVlVmFsdWUgPSB0b0pTPElETEFu
eT4oZGljdGlvbmFyeS5hbnlWYWx1ZSk7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6
SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJhbnlWYWx1ZSIpLCBhbnlWYWx1ZVZhbHVlKTsK
LSAgICBhdXRvIGFueVZhbHVlV2l0aE51bGxEZWZhdWx0VmFsdWUgPSB0b0pTPElETEFueT4oc3Rh
dGUsIGdsb2JhbE9iamVjdCwgZGljdGlvbmFyeS5hbnlWYWx1ZVdpdGhOdWxsRGVmYXVsdCk7Cisg
ICAgYXV0byBhbnlWYWx1ZVdpdGhOdWxsRGVmYXVsdFZhbHVlID0gdG9KUzxJRExBbnk+KGRpY3Rp
b25hcnkuYW55VmFsdWVXaXRoTnVsbERlZmF1bHQpOwogICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZt
LCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiYW55VmFsdWVXaXRoTnVsbERlZmF1
bHQiKSwgYW55VmFsdWVXaXRoTnVsbERlZmF1bHRWYWx1ZSk7Ci0gICAgYXV0byBib29sZWFuV2l0
aERlZmF1bHRWYWx1ZSA9IHRvSlM8SURMQm9vbGVhbj4oc3RhdGUsIGdsb2JhbE9iamVjdCwgZGlj
dGlvbmFyeS5ib29sZWFuV2l0aERlZmF1bHQpOworICAgIGF1dG8gYm9vbGVhbldpdGhEZWZhdWx0
VmFsdWUgPSB0b0pTPElETEJvb2xlYW4+KGRpY3Rpb25hcnkuYm9vbGVhbldpdGhEZWZhdWx0KTsK
ICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2
bSwgImJvb2xlYW5XaXRoRGVmYXVsdCIpLCBib29sZWFuV2l0aERlZmF1bHRWYWx1ZSk7CiAgICAg
aWYgKCFJRExCb29sZWFuOjppc051bGxWYWx1ZShkaWN0aW9uYXJ5LmJvb2xlYW5XaXRob3V0RGVm
YXVsdCkpIHsKLSAgICAgICAgYXV0byBib29sZWFuV2l0aG91dERlZmF1bHRWYWx1ZSA9IHRvSlM8
SURMQm9vbGVhbj4oc3RhdGUsIGdsb2JhbE9iamVjdCwgSURMQm9vbGVhbjo6ZXh0cmFjdFZhbHVl
RnJvbU51bGxhYmxlKGRpY3Rpb25hcnkuYm9vbGVhbldpdGhvdXREZWZhdWx0KSk7CisgICAgICAg
IGF1dG8gYm9vbGVhbldpdGhvdXREZWZhdWx0VmFsdWUgPSB0b0pTPElETEJvb2xlYW4+KElETEJv
b2xlYW46OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LmJvb2xlYW5XaXRob3V0
RGVmYXVsdCkpOwogICAgICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKCZ2bSwgImJvb2xlYW5XaXRob3V0RGVmYXVsdCIpLCBib29sZWFuV2l0aG91
dERlZmF1bHRWYWx1ZSk7CiAgICAgfQogICAgIGlmICghSURMQnVmZmVyU291cmNlOjppc051bGxW
YWx1ZShkaWN0aW9uYXJ5LmJ1ZmZlclNvdXJjZVZhbHVlKSkgewotICAgICAgICBhdXRvIGJ1ZmZl
clNvdXJjZVZhbHVlVmFsdWUgPSB0b0pTPElETEJ1ZmZlclNvdXJjZT4oc3RhdGUsIGdsb2JhbE9i
amVjdCwgSURMQnVmZmVyU291cmNlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUoZGljdGlvbmFy
eS5idWZmZXJTb3VyY2VWYWx1ZSkpOworICAgICAgICBhdXRvIGJ1ZmZlclNvdXJjZVZhbHVlVmFs
dWUgPSB0b0pTPElETEJ1ZmZlclNvdXJjZT4oSURMQnVmZmVyU291cmNlOjpleHRyYWN0VmFsdWVG
cm9tTnVsbGFibGUoZGljdGlvbmFyeS5idWZmZXJTb3VyY2VWYWx1ZSkpOwogICAgICAgICByZXN1
bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImJ1ZmZl
clNvdXJjZVZhbHVlIiksIGJ1ZmZlclNvdXJjZVZhbHVlVmFsdWUpOwogICAgIH0KICAgICBpZiAo
IUlETERpY3Rpb25hcnk8VGVzdE9iajo6RGljdGlvbmFyeVRoYXRTaG91bGRUb2xlcmF0ZU51bGw+
Ojppc051bGxWYWx1ZShkaWN0aW9uYXJ5LmRpY3Rpb25hcnlNZW1iZXIpKSB7CiAgICAgICAgIGF1
dG8gZGljdGlvbmFyeU1lbWJlclZhbHVlID0gdG9KUzxJRExEaWN0aW9uYXJ5PFRlc3RPYmo6OkRp
Y3Rpb25hcnlUaGF0U2hvdWxkVG9sZXJhdGVOdWxsPj4oc3RhdGUsIGdsb2JhbE9iamVjdCwgSURM
RGljdGlvbmFyeTxUZXN0T2JqOjpEaWN0aW9uYXJ5VGhhdFNob3VsZFRvbGVyYXRlTnVsbD46OmV4
dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LmRpY3Rpb25hcnlNZW1iZXIpKTsKICAg
ICAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygm
dm0sICJkaWN0aW9uYXJ5TWVtYmVyIiksIGRpY3Rpb25hcnlNZW1iZXJWYWx1ZSk7CiAgICAgfQot
ICAgIGF1dG8gZW51bWVyYXRpb25WYWx1ZVdpdGhEZWZhdWx0VmFsdWUgPSB0b0pTPElETEVudW1l
cmF0aW9uPFRlc3RPYmo6OkVudW1UeXBlPj4oc3RhdGUsIGdsb2JhbE9iamVjdCwgZGljdGlvbmFy
eS5lbnVtZXJhdGlvblZhbHVlV2l0aERlZmF1bHQpOworICAgIGF1dG8gZW51bWVyYXRpb25WYWx1
ZVdpdGhEZWZhdWx0VmFsdWUgPSB0b0pTPElETEVudW1lcmF0aW9uPFRlc3RPYmo6OkVudW1UeXBl
Pj4oc3RhdGUsIGRpY3Rpb25hcnkuZW51bWVyYXRpb25WYWx1ZVdpdGhEZWZhdWx0KTsKICAgICBy
ZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImVu
dW1lcmF0aW9uVmFsdWVXaXRoRGVmYXVsdCIpLCBlbnVtZXJhdGlvblZhbHVlV2l0aERlZmF1bHRW
YWx1ZSk7Ci0gICAgYXV0byBlbnVtZXJhdGlvblZhbHVlV2l0aEVtcHR5U3RyaW5nRGVmYXVsdFZh
bHVlID0gdG9KUzxJRExFbnVtZXJhdGlvbjxUZXN0T2JqOjpFbnVtVHlwZT4+KHN0YXRlLCBnbG9i
YWxPYmplY3QsIGRpY3Rpb25hcnkuZW51bWVyYXRpb25WYWx1ZVdpdGhFbXB0eVN0cmluZ0RlZmF1
bHQpOworICAgIGF1dG8gZW51bWVyYXRpb25WYWx1ZVdpdGhFbXB0eVN0cmluZ0RlZmF1bHRWYWx1
ZSA9IHRvSlM8SURMRW51bWVyYXRpb248VGVzdE9iajo6RW51bVR5cGU+PihzdGF0ZSwgZGljdGlv
bmFyeS5lbnVtZXJhdGlvblZhbHVlV2l0aEVtcHR5U3RyaW5nRGVmYXVsdCk7CiAgICAgcmVzdWx0
LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJlbnVtZXJh
dGlvblZhbHVlV2l0aEVtcHR5U3RyaW5nRGVmYXVsdCIpLCBlbnVtZXJhdGlvblZhbHVlV2l0aEVt
cHR5U3RyaW5nRGVmYXVsdFZhbHVlKTsKICAgICBpZiAoIUlETEVudW1lcmF0aW9uPFRlc3RPYmo6
OkVudW1UeXBlPjo6aXNOdWxsVmFsdWUoZGljdGlvbmFyeS5lbnVtZXJhdGlvblZhbHVlV2l0aG91
dERlZmF1bHQpKSB7Ci0gICAgICAgIGF1dG8gZW51bWVyYXRpb25WYWx1ZVdpdGhvdXREZWZhdWx0
VmFsdWUgPSB0b0pTPElETEVudW1lcmF0aW9uPFRlc3RPYmo6OkVudW1UeXBlPj4oc3RhdGUsIGds
b2JhbE9iamVjdCwgSURMRW51bWVyYXRpb248VGVzdE9iajo6RW51bVR5cGU+OjpleHRyYWN0VmFs
dWVGcm9tTnVsbGFibGUoZGljdGlvbmFyeS5lbnVtZXJhdGlvblZhbHVlV2l0aG91dERlZmF1bHQp
KTsKKyAgICAgICAgYXV0byBlbnVtZXJhdGlvblZhbHVlV2l0aG91dERlZmF1bHRWYWx1ZSA9IHRv
SlM8SURMRW51bWVyYXRpb248VGVzdE9iajo6RW51bVR5cGU+PihzdGF0ZSwgSURMRW51bWVyYXRp
b248VGVzdE9iajo6RW51bVR5cGU+OjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUoZGljdGlvbmFy
eS5lbnVtZXJhdGlvblZhbHVlV2l0aG91dERlZmF1bHQpKTsKICAgICAgICAgcmVzdWx0LT5wdXRE
aXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJlbnVtZXJhdGlvblZh
bHVlV2l0aG91dERlZmF1bHQiKSwgZW51bWVyYXRpb25WYWx1ZVdpdGhvdXREZWZhdWx0VmFsdWUp
OwogICAgIH0KLSAgICBhdXRvIGZvb0FsaWFzVmFsdWUgPSB0b0pTPElETEFueT4oc3RhdGUsIGds
b2JhbE9iamVjdCwgZGljdGlvbmFyeS5mb28pOworICAgIGF1dG8gZm9vQWxpYXNWYWx1ZSA9IHRv
SlM8SURMQW55PihkaWN0aW9uYXJ5LmZvbyk7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpT
Qzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJmb29BbGlhcyIpLCBmb29BbGlhc1ZhbHVl
KTsKLSAgICBhdXRvIGZvb1dpdGhEZWZhdWx0QWxpYXNWYWx1ZSA9IHRvSlM8SURMQW55PihzdGF0
ZSwgZ2xvYmFsT2JqZWN0LCBkaWN0aW9uYXJ5LmZvb1dpdGhEZWZhdWx0KTsKKyAgICBhdXRvIGZv
b1dpdGhEZWZhdWx0QWxpYXNWYWx1ZSA9IHRvSlM8SURMQW55PihkaWN0aW9uYXJ5LmZvb1dpdGhE
ZWZhdWx0KTsKICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKCZ2bSwgImZvb1dpdGhEZWZhdWx0QWxpYXMiKSwgZm9vV2l0aERlZmF1bHRBbGlhc1Zh
bHVlKTsKICAgICBpZiAoIUlETExvbmc6OmlzTnVsbFZhbHVlKGRpY3Rpb25hcnkuaW50ZWdlcikp
IHsKLSAgICAgICAgYXV0byBpbnRlZ2VyVmFsdWUgPSB0b0pTPElETExvbmc+KHN0YXRlLCBnbG9i
YWxPYmplY3QsIElETExvbmc6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5Lmlu
dGVnZXIpKTsKKyAgICAgICAgYXV0byBpbnRlZ2VyVmFsdWUgPSB0b0pTPElETExvbmc+KElETExv
bmc6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LmludGVnZXIpKTsKICAgICAg
ICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0s
ICJpbnRlZ2VyIiksIGludGVnZXJWYWx1ZSk7CiAgICAgfQotICAgIGF1dG8gaW50ZWdlcldpdGhE
ZWZhdWx0VmFsdWUgPSB0b0pTPElETExvbmc+KHN0YXRlLCBnbG9iYWxPYmplY3QsIGRpY3Rpb25h
cnkuaW50ZWdlcldpdGhEZWZhdWx0KTsKKyAgICBhdXRvIGludGVnZXJXaXRoRGVmYXVsdFZhbHVl
ID0gdG9KUzxJRExMb25nPihkaWN0aW9uYXJ5LmludGVnZXJXaXRoRGVmYXVsdCk7CiAgICAgcmVz
dWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJpbnRl
Z2VyV2l0aERlZmF1bHQiKSwgaW50ZWdlcldpdGhEZWZhdWx0VmFsdWUpOwogICAgIGlmICghSURM
TG9uZ0xvbmc6OmlzTnVsbFZhbHVlKGRpY3Rpb25hcnkubGFyZ2VJbnRlZ2VyKSkgewotICAgICAg
ICBhdXRvIGxhcmdlSW50ZWdlclZhbHVlID0gdG9KUzxJRExMb25nTG9uZz4oc3RhdGUsIGdsb2Jh
bE9iamVjdCwgSURMTG9uZ0xvbmc6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5
LmxhcmdlSW50ZWdlcikpOworICAgICAgICBhdXRvIGxhcmdlSW50ZWdlclZhbHVlID0gdG9KUzxJ
RExMb25nTG9uZz4oSURMTG9uZ0xvbmc6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9u
YXJ5LmxhcmdlSW50ZWdlcikpOwogICAgICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImxhcmdlSW50ZWdlciIpLCBsYXJnZUludGVnZXJW
YWx1ZSk7CiAgICAgfQotICAgIGF1dG8gbGFyZ2VJbnRlZ2VyV2l0aERlZmF1bHRWYWx1ZSA9IHRv
SlM8SURMTG9uZ0xvbmc+KHN0YXRlLCBnbG9iYWxPYmplY3QsIGRpY3Rpb25hcnkubGFyZ2VJbnRl
Z2VyV2l0aERlZmF1bHQpOworICAgIGF1dG8gbGFyZ2VJbnRlZ2VyV2l0aERlZmF1bHRWYWx1ZSA9
IHRvSlM8SURMTG9uZ0xvbmc+KGRpY3Rpb25hcnkubGFyZ2VJbnRlZ2VyV2l0aERlZmF1bHQpOwog
ICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZt
LCAibGFyZ2VJbnRlZ2VyV2l0aERlZmF1bHQiKSwgbGFyZ2VJbnRlZ2VyV2l0aERlZmF1bHRWYWx1
ZSk7Ci0gICAgYXV0byBudWxsYWJsZUludGVnZXJXaXRoRGVmYXVsdFZhbHVlID0gdG9KUzxJRExO
dWxsYWJsZTxJRExMb25nPj4oc3RhdGUsIGdsb2JhbE9iamVjdCwgZGljdGlvbmFyeS5udWxsYWJs
ZUludGVnZXJXaXRoRGVmYXVsdCk7CisgICAgYXV0byBudWxsYWJsZUludGVnZXJXaXRoRGVmYXVs
dFZhbHVlID0gdG9KUzxJRExOdWxsYWJsZTxJRExMb25nPj4oZGljdGlvbmFyeS5udWxsYWJsZUlu
dGVnZXJXaXRoRGVmYXVsdCk7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRp
Zmllcjo6ZnJvbVN0cmluZygmdm0sICJudWxsYWJsZUludGVnZXJXaXRoRGVmYXVsdCIpLCBudWxs
YWJsZUludGVnZXJXaXRoRGVmYXVsdFZhbHVlKTsKICAgICBhdXRvIG51bGxhYmxlTm9kZVZhbHVl
ID0gdG9KUzxJRExOdWxsYWJsZTxJRExJbnRlcmZhY2U8Tm9kZT4+PihzdGF0ZSwgZ2xvYmFsT2Jq
ZWN0LCBkaWN0aW9uYXJ5Lm51bGxhYmxlTm9kZSk7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0s
IEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJudWxsYWJsZU5vZGUiKSwgbnVsbGFi
bGVOb2RlVmFsdWUpOwotICAgIGF1dG8gbnVsbGFibGVTdHJpbmdXaXRoRGVmYXVsdFZhbHVlID0g
dG9KUzxJRExOdWxsYWJsZTxJRExET01TdHJpbmc+PihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBkaWN0
aW9uYXJ5Lm51bGxhYmxlU3RyaW5nV2l0aERlZmF1bHQpOworICAgIGF1dG8gbnVsbGFibGVTdHJp
bmdXaXRoRGVmYXVsdFZhbHVlID0gdG9KUzxJRExOdWxsYWJsZTxJRExET01TdHJpbmc+PihzdGF0
ZSwgZGljdGlvbmFyeS5udWxsYWJsZVN0cmluZ1dpdGhEZWZhdWx0KTsKICAgICByZXN1bHQtPnB1
dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgIm51bGxhYmxlU3Ry
aW5nV2l0aERlZmF1bHQiKSwgbnVsbGFibGVTdHJpbmdXaXRoRGVmYXVsdFZhbHVlKTsKICAgICBh
dXRvIG51bGxhYmxlVW5pb25NZW1iZXJWYWx1ZSA9IHRvSlM8SURMTnVsbGFibGU8SURMVW5pb248
SURMTG9uZywgSURMSW50ZXJmYWNlPE5vZGU+Pj4+KHN0YXRlLCBnbG9iYWxPYmplY3QsIGRpY3Rp
b25hcnkubnVsbGFibGVVbmlvbk1lbWJlcik7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpT
Qzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJudWxsYWJsZVVuaW9uTWVtYmVyIiksIG51
bGxhYmxlVW5pb25NZW1iZXJWYWx1ZSk7CiAgICAgaWYgKCFJRExEb3VibGU6OmlzTnVsbFZhbHVl
KGRpY3Rpb25hcnkucmVzdHJpY3RlZERvdWJsZSkpIHsKLSAgICAgICAgYXV0byByZXN0cmljdGVk
RG91YmxlVmFsdWUgPSB0b0pTPElETERvdWJsZT4oc3RhdGUsIGdsb2JhbE9iamVjdCwgSURMRG91
YmxlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUoZGljdGlvbmFyeS5yZXN0cmljdGVkRG91Ymxl
KSk7CisgICAgICAgIGF1dG8gcmVzdHJpY3RlZERvdWJsZVZhbHVlID0gdG9KUzxJRExEb3VibGU+
KElETERvdWJsZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRpY3Rpb25hcnkucmVzdHJpY3Rl
ZERvdWJsZSkpOwogICAgICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKCZ2bSwgInJlc3RyaWN0ZWREb3VibGUiKSwgcmVzdHJpY3RlZERvdWJsZVZh
bHVlKTsKICAgICB9Ci0gICAgYXV0byByZXN0cmljdGVkRG91YmxlV2l0aERlZmF1bHRWYWx1ZSA9
IHRvSlM8SURMRG91YmxlPihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBkaWN0aW9uYXJ5LnJlc3RyaWN0
ZWREb3VibGVXaXRoRGVmYXVsdCk7CisgICAgYXV0byByZXN0cmljdGVkRG91YmxlV2l0aERlZmF1
bHRWYWx1ZSA9IHRvSlM8SURMRG91YmxlPihkaWN0aW9uYXJ5LnJlc3RyaWN0ZWREb3VibGVXaXRo
RGVmYXVsdCk7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJv
bVN0cmluZygmdm0sICJyZXN0cmljdGVkRG91YmxlV2l0aERlZmF1bHQiKSwgcmVzdHJpY3RlZERv
dWJsZVdpdGhEZWZhdWx0VmFsdWUpOwogICAgIGlmICghSURMRmxvYXQ6OmlzTnVsbFZhbHVlKGRp
Y3Rpb25hcnkucmVzdHJpY3RlZEZsb2F0KSkgewotICAgICAgICBhdXRvIHJlc3RyaWN0ZWRGbG9h
dFZhbHVlID0gdG9KUzxJRExGbG9hdD4oc3RhdGUsIGdsb2JhbE9iamVjdCwgSURMRmxvYXQ6OmV4
dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LnJlc3RyaWN0ZWRGbG9hdCkpOworICAg
ICAgICBhdXRvIHJlc3RyaWN0ZWRGbG9hdFZhbHVlID0gdG9KUzxJRExGbG9hdD4oSURMRmxvYXQ6
OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LnJlc3RyaWN0ZWRGbG9hdCkpOwog
ICAgICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KCZ2bSwgInJlc3RyaWN0ZWRGbG9hdCIpLCByZXN0cmljdGVkRmxvYXRWYWx1ZSk7CiAgICAgfQot
ICAgIGF1dG8gcmVzdHJpY3RlZEZsb2F0V2l0aERlZmF1bHRWYWx1ZSA9IHRvSlM8SURMRmxvYXQ+
KHN0YXRlLCBnbG9iYWxPYmplY3QsIGRpY3Rpb25hcnkucmVzdHJpY3RlZEZsb2F0V2l0aERlZmF1
bHQpOworICAgIGF1dG8gcmVzdHJpY3RlZEZsb2F0V2l0aERlZmF1bHRWYWx1ZSA9IHRvSlM8SURM
RmxvYXQ+KGRpY3Rpb25hcnkucmVzdHJpY3RlZEZsb2F0V2l0aERlZmF1bHQpOwogICAgIHJlc3Vs
dC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAicmVzdHJp
Y3RlZEZsb2F0V2l0aERlZmF1bHQiKSwgcmVzdHJpY3RlZEZsb2F0V2l0aERlZmF1bHRWYWx1ZSk7
CiAgICAgaWYgKCFJRExTZXF1ZW5jZTxJRExET01TdHJpbmc+Ojppc051bGxWYWx1ZShkaWN0aW9u
YXJ5LnNlcXVlbmNlT2ZTdHJpbmdzKSkgewogICAgICAgICBhdXRvIHNlcXVlbmNlT2ZTdHJpbmdz
VmFsdWUgPSB0b0pTPElETFNlcXVlbmNlPElETERPTVN0cmluZz4+KHN0YXRlLCBnbG9iYWxPYmpl
Y3QsIElETFNlcXVlbmNlPElETERPTVN0cmluZz46OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShk
aWN0aW9uYXJ5LnNlcXVlbmNlT2ZTdHJpbmdzKSk7CiAgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0
KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAic2VxdWVuY2VPZlN0cmluZ3Mi
KSwgc2VxdWVuY2VPZlN0cmluZ3NWYWx1ZSk7CiAgICAgfQogICAgIGlmICghSURMQ2xhbXBBZGFw
dG9yPElETEJ5dGU+Ojppc051bGxWYWx1ZShkaWN0aW9uYXJ5LnNtYWxsSW50ZWdlckNsYW1wZWQp
KSB7Ci0gICAgICAgIGF1dG8gc21hbGxJbnRlZ2VyQ2xhbXBlZFZhbHVlID0gdG9KUzxJRExDbGFt
cEFkYXB0b3I8SURMQnl0ZT4+KHN0YXRlLCBnbG9iYWxPYmplY3QsIElETENsYW1wQWRhcHRvcjxJ
RExCeXRlPjo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRpY3Rpb25hcnkuc21hbGxJbnRlZ2Vy
Q2xhbXBlZCkpOworICAgICAgICBhdXRvIHNtYWxsSW50ZWdlckNsYW1wZWRWYWx1ZSA9IHRvSlM8
SURMQ2xhbXBBZGFwdG9yPElETEJ5dGU+PihJRExDbGFtcEFkYXB0b3I8SURMQnl0ZT46OmV4dHJh
Y3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LnNtYWxsSW50ZWdlckNsYW1wZWQpKTsKICAg
ICAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygm
dm0sICJzbWFsbEludGVnZXJDbGFtcGVkIiksIHNtYWxsSW50ZWdlckNsYW1wZWRWYWx1ZSk7CiAg
ICAgfQogICAgIGlmICghSURMQnl0ZTo6aXNOdWxsVmFsdWUoZGljdGlvbmFyeS5zbWFsbEludGVn
ZXJXaXRoRGVmYXVsdCkpIHsKLSAgICAgICAgYXV0byBzbWFsbEludGVnZXJXaXRoRGVmYXVsdFZh
bHVlID0gdG9KUzxJRExCeXRlPihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBJRExCeXRlOjpleHRyYWN0
VmFsdWVGcm9tTnVsbGFibGUoZGljdGlvbmFyeS5zbWFsbEludGVnZXJXaXRoRGVmYXVsdCkpOwor
ICAgICAgICBhdXRvIHNtYWxsSW50ZWdlcldpdGhEZWZhdWx0VmFsdWUgPSB0b0pTPElETEJ5dGU+
KElETEJ5dGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LnNtYWxsSW50ZWdl
cldpdGhEZWZhdWx0KSk7CiAgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50
aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAic21hbGxJbnRlZ2VyV2l0aERlZmF1bHQiKSwgc21hbGxJ
bnRlZ2VyV2l0aERlZmF1bHRWYWx1ZSk7CiAgICAgfQogICAgIGlmICghSURMRW5mb3JjZVJhbmdl
QWRhcHRvcjxJRExPY3RldD46OmlzTnVsbFZhbHVlKGRpY3Rpb25hcnkuc21hbGxVbnNpZ25lZElu
dGVnZXJFbmZvcmNlZFJhbmdlKSkgewotICAgICAgICBhdXRvIHNtYWxsVW5zaWduZWRJbnRlZ2Vy
RW5mb3JjZWRSYW5nZVZhbHVlID0gdG9KUzxJRExFbmZvcmNlUmFuZ2VBZGFwdG9yPElETE9jdGV0
Pj4oc3RhdGUsIGdsb2JhbE9iamVjdCwgSURMRW5mb3JjZVJhbmdlQWRhcHRvcjxJRExPY3RldD46
OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LnNtYWxsVW5zaWduZWRJbnRlZ2Vy
RW5mb3JjZWRSYW5nZSkpOworICAgICAgICBhdXRvIHNtYWxsVW5zaWduZWRJbnRlZ2VyRW5mb3Jj
ZWRSYW5nZVZhbHVlID0gdG9KUzxJRExFbmZvcmNlUmFuZ2VBZGFwdG9yPElETE9jdGV0Pj4oSURM
RW5mb3JjZVJhbmdlQWRhcHRvcjxJRExPY3RldD46OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShk
aWN0aW9uYXJ5LnNtYWxsVW5zaWduZWRJbnRlZ2VyRW5mb3JjZWRSYW5nZSkpOwogICAgICAgICBy
ZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgInNt
YWxsVW5zaWduZWRJbnRlZ2VyRW5mb3JjZWRSYW5nZSIpLCBzbWFsbFVuc2lnbmVkSW50ZWdlckVu
Zm9yY2VkUmFuZ2VWYWx1ZSk7CiAgICAgfQotICAgIGF1dG8gc21hbGxVbnNpZ25lZEludGVnZXJX
aXRoRGVmYXVsdFZhbHVlID0gdG9KUzxJRExPY3RldD4oc3RhdGUsIGdsb2JhbE9iamVjdCwgZGlj
dGlvbmFyeS5zbWFsbFVuc2lnbmVkSW50ZWdlcldpdGhEZWZhdWx0KTsKKyAgICBhdXRvIHNtYWxs
VW5zaWduZWRJbnRlZ2VyV2l0aERlZmF1bHRWYWx1ZSA9IHRvSlM8SURMT2N0ZXQ+KGRpY3Rpb25h
cnkuc21hbGxVbnNpZ25lZEludGVnZXJXaXRoRGVmYXVsdCk7CiAgICAgcmVzdWx0LT5wdXREaXJl
Y3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJzbWFsbFVuc2lnbmVkSW50
ZWdlcldpdGhEZWZhdWx0IiksIHNtYWxsVW5zaWduZWRJbnRlZ2VyV2l0aERlZmF1bHRWYWx1ZSk7
CiAgICAgaWYgKCFJRExUcmVhdE51bGxBc0VtcHR5QWRhcHRvcjxJRExET01TdHJpbmc+Ojppc051
bGxWYWx1ZShkaWN0aW9uYXJ5LnN0cmluZ1RyZWF0TnVsbEFzRW1wdHlTdHJpbmcpKSB7Ci0gICAg
ICAgIGF1dG8gc3RyaW5nVHJlYXROdWxsQXNFbXB0eVN0cmluZ1ZhbHVlID0gdG9KUzxJRExUcmVh
dE51bGxBc0VtcHR5QWRhcHRvcjxJRExET01TdHJpbmc+PihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBJ
RExUcmVhdE51bGxBc0VtcHR5QWRhcHRvcjxJRExET01TdHJpbmc+OjpleHRyYWN0VmFsdWVGcm9t
TnVsbGFibGUoZGljdGlvbmFyeS5zdHJpbmdUcmVhdE51bGxBc0VtcHR5U3RyaW5nKSk7CisgICAg
ICAgIGF1dG8gc3RyaW5nVHJlYXROdWxsQXNFbXB0eVN0cmluZ1ZhbHVlID0gdG9KUzxJRExUcmVh
dE51bGxBc0VtcHR5QWRhcHRvcjxJRExET01TdHJpbmc+PihzdGF0ZSwgSURMVHJlYXROdWxsQXNF
bXB0eUFkYXB0b3I8SURMRE9NU3RyaW5nPjo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRpY3Rp
b25hcnkuc3RyaW5nVHJlYXROdWxsQXNFbXB0eVN0cmluZykpOwogICAgICAgICByZXN1bHQtPnB1
dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgInN0cmluZ1RyZWF0
TnVsbEFzRW1wdHlTdHJpbmciKSwgc3RyaW5nVHJlYXROdWxsQXNFbXB0eVN0cmluZ1ZhbHVlKTsK
ICAgICB9Ci0gICAgYXV0byBzdHJpbmdXaXRoRGVmYXVsdFZhbHVlID0gdG9KUzxJRExET01TdHJp
bmc+KHN0YXRlLCBnbG9iYWxPYmplY3QsIGRpY3Rpb25hcnkuc3RyaW5nV2l0aERlZmF1bHQpOwor
ICAgIGF1dG8gc3RyaW5nV2l0aERlZmF1bHRWYWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPihzdGF0
ZSwgZGljdGlvbmFyeS5zdHJpbmdXaXRoRGVmYXVsdCk7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qo
dm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJzdHJpbmdXaXRoRGVmYXVsdCIp
LCBzdHJpbmdXaXRoRGVmYXVsdFZhbHVlKTsKICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxs
VmFsdWUoZGljdGlvbmFyeS5zdHJpbmdXaXRob3V0RGVmYXVsdCkpIHsKLSAgICAgICAgYXV0byBz
dHJpbmdXaXRob3V0RGVmYXVsdFZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KHN0YXRlLCBnbG9i
YWxPYmplY3QsIElETERPTVN0cmluZzo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRpY3Rpb25h
cnkuc3RyaW5nV2l0aG91dERlZmF1bHQpKTsKKyAgICAgICAgYXV0byBzdHJpbmdXaXRob3V0RGVm
YXVsdFZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KHN0YXRlLCBJRExET01TdHJpbmc6OmV4dHJh
Y3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LnN0cmluZ1dpdGhvdXREZWZhdWx0KSk7CiAg
ICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmco
JnZtLCAic3RyaW5nV2l0aG91dERlZmF1bHQiKSwgc3RyaW5nV2l0aG91dERlZmF1bHRWYWx1ZSk7
CiAgICAgfQogICAgIGlmICghSURMVW5pb248SURMTG9uZywgSURMSW50ZXJmYWNlPE5vZGU+Pjo6
aXNOdWxsVmFsdWUoZGljdGlvbmFyeS51bmlvbk1lbWJlcikpIHsKQEAgLTcyMSwyOCArNzM4LDI4
IEBAIEpTQzo6SlNPYmplY3QqIGNvbnZlcnREaWN0aW9uYXJ5VG9KUyhKU0MKICAgICAgICAgcmVz
dWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJ1bmlv
bk1lbWJlciIpLCB1bmlvbk1lbWJlclZhbHVlKTsKICAgICB9CiAgICAgaWYgKCFJRExVbnJlc3Ry
aWN0ZWREb3VibGU6OmlzTnVsbFZhbHVlKGRpY3Rpb25hcnkudW5yZXN0cmljdGVkRG91YmxlKSkg
ewotICAgICAgICBhdXRvIHVucmVzdHJpY3RlZERvdWJsZVZhbHVlID0gdG9KUzxJRExVbnJlc3Ry
aWN0ZWREb3VibGU+KHN0YXRlLCBnbG9iYWxPYmplY3QsIElETFVucmVzdHJpY3RlZERvdWJsZTo6
ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRpY3Rpb25hcnkudW5yZXN0cmljdGVkRG91YmxlKSk7
CisgICAgICAgIGF1dG8gdW5yZXN0cmljdGVkRG91YmxlVmFsdWUgPSB0b0pTPElETFVucmVzdHJp
Y3RlZERvdWJsZT4oSURMVW5yZXN0cmljdGVkRG91YmxlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFi
bGUoZGljdGlvbmFyeS51bnJlc3RyaWN0ZWREb3VibGUpKTsKICAgICAgICAgcmVzdWx0LT5wdXRE
aXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJ1bnJlc3RyaWN0ZWRE
b3VibGUiKSwgdW5yZXN0cmljdGVkRG91YmxlVmFsdWUpOwogICAgIH0KLSAgICBhdXRvIHVucmVz
dHJpY3RlZERvdWJsZVdpdGhEZWZhdWx0VmFsdWUgPSB0b0pTPElETFVucmVzdHJpY3RlZERvdWJs
ZT4oc3RhdGUsIGdsb2JhbE9iamVjdCwgZGljdGlvbmFyeS51bnJlc3RyaWN0ZWREb3VibGVXaXRo
RGVmYXVsdCk7CisgICAgYXV0byB1bnJlc3RyaWN0ZWREb3VibGVXaXRoRGVmYXVsdFZhbHVlID0g
dG9KUzxJRExVbnJlc3RyaWN0ZWREb3VibGU+KGRpY3Rpb25hcnkudW5yZXN0cmljdGVkRG91Ymxl
V2l0aERlZmF1bHQpOwogICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6
OmZyb21TdHJpbmcoJnZtLCAidW5yZXN0cmljdGVkRG91YmxlV2l0aERlZmF1bHQiKSwgdW5yZXN0
cmljdGVkRG91YmxlV2l0aERlZmF1bHRWYWx1ZSk7CiAgICAgaWYgKCFJRExVbnJlc3RyaWN0ZWRG
bG9hdDo6aXNOdWxsVmFsdWUoZGljdGlvbmFyeS51bnJlc3RyaWN0ZWRGbG9hdCkpIHsKLSAgICAg
ICAgYXV0byB1bnJlc3RyaWN0ZWRGbG9hdFZhbHVlID0gdG9KUzxJRExVbnJlc3RyaWN0ZWRGbG9h
dD4oc3RhdGUsIGdsb2JhbE9iamVjdCwgSURMVW5yZXN0cmljdGVkRmxvYXQ6OmV4dHJhY3RWYWx1
ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LnVucmVzdHJpY3RlZEZsb2F0KSk7CisgICAgICAgIGF1
dG8gdW5yZXN0cmljdGVkRmxvYXRWYWx1ZSA9IHRvSlM8SURMVW5yZXN0cmljdGVkRmxvYXQ+KElE
TFVucmVzdHJpY3RlZEZsb2F0OjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUoZGljdGlvbmFyeS51
bnJlc3RyaWN0ZWRGbG9hdCkpOwogICAgICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgInVucmVzdHJpY3RlZEZsb2F0IiksIHVucmVzdHJp
Y3RlZEZsb2F0VmFsdWUpOwogICAgIH0KLSAgICBhdXRvIHVucmVzdHJpY3RlZEZsb2F0V2l0aERl
ZmF1bHRWYWx1ZSA9IHRvSlM8SURMVW5yZXN0cmljdGVkRmxvYXQ+KHN0YXRlLCBnbG9iYWxPYmpl
Y3QsIGRpY3Rpb25hcnkudW5yZXN0cmljdGVkRmxvYXRXaXRoRGVmYXVsdCk7CisgICAgYXV0byB1
bnJlc3RyaWN0ZWRGbG9hdFdpdGhEZWZhdWx0VmFsdWUgPSB0b0pTPElETFVucmVzdHJpY3RlZEZs
b2F0PihkaWN0aW9uYXJ5LnVucmVzdHJpY3RlZEZsb2F0V2l0aERlZmF1bHQpOwogICAgIHJlc3Vs
dC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAidW5yZXN0
cmljdGVkRmxvYXRXaXRoRGVmYXVsdCIpLCB1bnJlc3RyaWN0ZWRGbG9hdFdpdGhEZWZhdWx0VmFs
dWUpOwogICAgIGlmICghSURMVW5zaWduZWRMb25nOjppc051bGxWYWx1ZShkaWN0aW9uYXJ5LnVu
c2lnbmVkSW50ZWdlcikpIHsKLSAgICAgICAgYXV0byB1bnNpZ25lZEludGVnZXJWYWx1ZSA9IHRv
SlM8SURMVW5zaWduZWRMb25nPihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBJRExVbnNpZ25lZExvbmc6
OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LnVuc2lnbmVkSW50ZWdlcikpOwor
ICAgICAgICBhdXRvIHVuc2lnbmVkSW50ZWdlclZhbHVlID0gdG9KUzxJRExVbnNpZ25lZExvbmc+
KElETFVuc2lnbmVkTG9uZzo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRpY3Rpb25hcnkudW5z
aWduZWRJbnRlZ2VyKSk7CiAgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50
aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAidW5zaWduZWRJbnRlZ2VyIiksIHVuc2lnbmVkSW50ZWdl
clZhbHVlKTsKICAgICB9Ci0gICAgYXV0byB1bnNpZ25lZEludGVnZXJXaXRoRGVmYXVsdFZhbHVl
ID0gdG9KUzxJRExVbnNpZ25lZExvbmc+KHN0YXRlLCBnbG9iYWxPYmplY3QsIGRpY3Rpb25hcnku
dW5zaWduZWRJbnRlZ2VyV2l0aERlZmF1bHQpOworICAgIGF1dG8gdW5zaWduZWRJbnRlZ2VyV2l0
aERlZmF1bHRWYWx1ZSA9IHRvSlM8SURMVW5zaWduZWRMb25nPihkaWN0aW9uYXJ5LnVuc2lnbmVk
SW50ZWdlcldpdGhEZWZhdWx0KTsKICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgInVuc2lnbmVkSW50ZWdlcldpdGhEZWZhdWx0IiksIHVu
c2lnbmVkSW50ZWdlcldpdGhEZWZhdWx0VmFsdWUpOwogICAgIGlmICghSURMVW5zaWduZWRMb25n
TG9uZzo6aXNOdWxsVmFsdWUoZGljdGlvbmFyeS51bnNpZ25lZExhcmdlSW50ZWdlcikpIHsKLSAg
ICAgICAgYXV0byB1bnNpZ25lZExhcmdlSW50ZWdlclZhbHVlID0gdG9KUzxJRExVbnNpZ25lZExv
bmdMb25nPihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBJRExVbnNpZ25lZExvbmdMb25nOjpleHRyYWN0
VmFsdWVGcm9tTnVsbGFibGUoZGljdGlvbmFyeS51bnNpZ25lZExhcmdlSW50ZWdlcikpOworICAg
ICAgICBhdXRvIHVuc2lnbmVkTGFyZ2VJbnRlZ2VyVmFsdWUgPSB0b0pTPElETFVuc2lnbmVkTG9u
Z0xvbmc+KElETFVuc2lnbmVkTG9uZ0xvbmc6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0
aW9uYXJ5LnVuc2lnbmVkTGFyZ2VJbnRlZ2VyKSk7CiAgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0
KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAidW5zaWduZWRMYXJnZUludGVn
ZXIiKSwgdW5zaWduZWRMYXJnZUludGVnZXJWYWx1ZSk7CiAgICAgfQotICAgIGF1dG8gdW5zaWdu
ZWRMYXJnZUludGVnZXJXaXRoRGVmYXVsdFZhbHVlID0gdG9KUzxJRExVbnNpZ25lZExvbmdMb25n
PihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBkaWN0aW9uYXJ5LnVuc2lnbmVkTGFyZ2VJbnRlZ2VyV2l0
aERlZmF1bHQpOworICAgIGF1dG8gdW5zaWduZWRMYXJnZUludGVnZXJXaXRoRGVmYXVsdFZhbHVl
ID0gdG9KUzxJRExVbnNpZ25lZExvbmdMb25nPihkaWN0aW9uYXJ5LnVuc2lnbmVkTGFyZ2VJbnRl
Z2VyV2l0aERlZmF1bHQpOwogICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZp
ZXI6OmZyb21TdHJpbmcoJnZtLCAidW5zaWduZWRMYXJnZUludGVnZXJXaXRoRGVmYXVsdCIpLCB1
bnNpZ25lZExhcmdlSW50ZWdlcldpdGhEZWZhdWx0VmFsdWUpOwogICAgIHJldHVybiByZXN1bHQ7
CiB9CkBAIC03OTQ3LDI0ICs3OTY0LDI0IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHIKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZ0JvZHk+KCpzdGF0ZSwgInRvU3RyaW5nIik7
CiB9CiAKLUpTQzo6SlNPYmplY3QqIEpTVGVzdE9iajo6c2VyaWFsaXplKEV4ZWNTdGF0ZSogc3Rh
dGUsIEpTVGVzdE9iaiogdGhpc09iamVjdCwgVGhyb3dTY29wZSYgdGhyb3dTY29wZSkKK0pTQzo6
SlNPYmplY3QqIEpTVGVzdE9iajo6c2VyaWFsaXplKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVGVzdE9i
aiYgdGhpc09iamVjdCwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgVGhyb3dTY29w
ZSYgdGhyb3dTY29wZSkKIHsKLSAgICBhdXRvJiB2bSA9IHN0YXRlLT52bSgpOwotICAgIGF1dG8q
IHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KHN0YXRlKTsKKyAgICBhdXRvJiB2bSA9IHN0
YXRlLnZtKCk7CisgICAgYXV0byogcmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoJnN0YXRl
LCBnbG9iYWxPYmplY3Qub2JqZWN0UHJvdG90eXBlKCkpOwogCi0gICAgYXV0byBjcmVhdGVWYWx1
ZSA9IGpzVGVzdE9iakNyZWF0ZUdldHRlcigqc3RhdGUsICp0aGlzT2JqZWN0LCB0aHJvd1Njb3Bl
KTsKKyAgICBhdXRvIGNyZWF0ZVZhbHVlID0ganNUZXN0T2JqQ3JlYXRlR2V0dGVyKHN0YXRlLCB0
aGlzT2JqZWN0LCB0aHJvd1Njb3BlKTsKICAgICB0aHJvd1Njb3BlLmFzc2VydE5vRXhjZXB0aW9u
KCk7CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZt
LCAiY3JlYXRlIiksIGNyZWF0ZVZhbHVlKTsKIAotICAgIGF1dG8gcmVhZE9ubHlTdHJpbmdBdHRy
VmFsdWUgPSBqc1Rlc3RPYmpSZWFkT25seVN0cmluZ0F0dHJHZXR0ZXIoKnN0YXRlLCAqdGhpc09i
amVjdCwgdGhyb3dTY29wZSk7CisgICAgYXV0byByZWFkT25seVN0cmluZ0F0dHJWYWx1ZSA9IGpz
VGVzdE9ialJlYWRPbmx5U3RyaW5nQXR0ckdldHRlcihzdGF0ZSwgdGhpc09iamVjdCwgdGhyb3dT
Y29wZSk7CiAgICAgdGhyb3dTY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwogICAgIHJlc3VsdC0+
cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgInJlYWRPbmx5U3RyaW5n
QXR0ciIpLCByZWFkT25seVN0cmluZ0F0dHJWYWx1ZSk7CiAKLSAgICBhdXRvIGVudW1BdHRyVmFs
dWUgPSBqc1Rlc3RPYmpFbnVtQXR0ckdldHRlcigqc3RhdGUsICp0aGlzT2JqZWN0LCB0aHJvd1Nj
b3BlKTsKKyAgICBhdXRvIGVudW1BdHRyVmFsdWUgPSBqc1Rlc3RPYmpFbnVtQXR0ckdldHRlcihz
dGF0ZSwgdGhpc09iamVjdCwgdGhyb3dTY29wZSk7CiAgICAgdGhyb3dTY29wZS5hc3NlcnROb0V4
Y2VwdGlvbigpOwogICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKCZ2bSwgImVudW1BdHRyIiksIGVudW1BdHRyVmFsdWUpOwogCi0gICAgYXV0byBsb25nQXR0
clZhbHVlID0ganNUZXN0T2JqTG9uZ0F0dHJHZXR0ZXIoKnN0YXRlLCAqdGhpc09iamVjdCwgdGhy
b3dTY29wZSk7CisgICAgYXV0byBsb25nQXR0clZhbHVlID0ganNUZXN0T2JqTG9uZ0F0dHJHZXR0
ZXIoc3RhdGUsIHRoaXNPYmplY3QsIHRocm93U2NvcGUpOwogICAgIHRocm93U2NvcGUuYXNzZXJ0
Tm9FeGNlcHRpb24oKTsKICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZygmdm0sICJsb25nQXR0ciIpLCBsb25nQXR0clZhbHVlKTsKIApAQCAtNzk3Myw3ICs3
OTkwLDcgQEAgSlNDOjpKU09iamVjdCogSlNUZXN0T2JqOjpzZXJpYWxpemUoRXhlYwogCiBzdGF0
aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVG9KU09O
Qm9keShFeGVjU3RhdGUqIHN0YXRlLCBKU1Rlc3RPYmoqIHRoaXNPYmplY3QsIEpTQzo6VGhyb3dT
Y29wZSYgdGhyb3dTY29wZSkKIHsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE9i
ajo6c2VyaWFsaXplKHN0YXRlLCB0aGlzT2JqZWN0LCB0aHJvd1Njb3BlKSk7CisgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShKU1Rlc3RPYmo6OnNlcmlhbGl6ZSgqc3RhdGUsICp0aGlzT2JqZWN0
LCAqdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUpKTsKIH0KIAogRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRvSlNPTihF
eGVjU3RhdGUqIHN0YXRlKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9iai5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAkocmV2aXNpb24gMjE4MzE0KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yMCw3ICsyMCw4IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiSlNET01D
b252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0RGljdGlvbmFyeS5oIgorI2luY2x1ZGUg
IkpTRE9NQ29udmVydEVudW1lcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyLmgiCiAj
aW5jbHVkZSAiVGVzdE9iai5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvQ2FsbERhdGEuaD4KQEAgLTU2
LDcgKzU3LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0
Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICBz
dGF0aWMgSlNDOjpKU09iamVjdCogc2VyaWFsaXplKEpTQzo6RXhlY1N0YXRlKiwgSlNUZXN0T2Jq
KiB0aGlzT2JqZWN0LCBKU0M6OlRocm93U2NvcGUmKTsKKyAgICBzdGF0aWMgSlNDOjpKU09iamVj
dCogc2VyaWFsaXplKEpTQzo6RXhlY1N0YXRlJiwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU0RP
TUdsb2JhbE9iamVjdCYsIEpTQzo6VGhyb3dTY29wZSYpOwogICAgIG11dGFibGUgSlNDOjpXcml0
ZUJhcnJpZXI8SlNDOjpVbmtub3duPiBtX2NhY2hlZEF0dHJpYnV0ZTE7CiAgICAgbXV0YWJsZSBK
U0M6OldyaXRlQmFycmllcjxKU0M6OlVua25vd24+IG1fY2FjaGVkQXR0cmlidXRlMjsKICAgICBz
dGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIEpTQzo6U2xvdFZpc2l0b3ImKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9h
ZGVkQ29uc3RydWN0b3JzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAJKHJldmlz
aW9uIDIxODMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsMTIg
KzI0LDE1IEBACiAjaW5jbHVkZSAiSlNCbG9iLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgi
CiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvci5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5o
IgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEJ1ZmZlclNvdXJjZS5oIgorI2luY2x1ZGUgIkpTRE9N
Q29udmVydEludGVyZmFjZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bWJlcnMuaCIKKyNp
bmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0VmFy
aWFkaWMuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAi
SlNET01XcmFwcGVyQ2FjaGUuaCIKLSNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CiAjaW5jbHVk
ZSA8cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5s
aW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9yc1dpdGhTZXF1ZW5jZS5jcHAJKHJldmlzaW9uIDIxODMxNCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0
aFNlcXVlbmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTMgKzIzLDE1IEBACiAKICNpbmNs
dWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yLmgiCi0jaW5j
bHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0SW50ZXJmYWNlLmgi
CisjaW5jbHVkZSAiSlNET01Db252ZXJ0U2VxdWVuY2VzLmgiCisjaW5jbHVkZSAiSlNET01Db252
ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNs
dWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KICNp
bmNsdWRlIDxydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9J
dGVyYXRvck9wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQXJyYXkuaD4KKyNpbmNs
dWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBKU0M7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMu
Y3BwCShyZXZpc2lvbiAyMTgzMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0
LDEyICsyNCwxNSBAQAogI2luY2x1ZGUgIkpTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgiCiAjaW5j
bHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0
cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNv
bnZlcnRJbnRlcmZhY2UuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5j
bHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgorI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiSlNET01PcGVyYXRpb24uaCIKICNpbmNsdWRlICJKU0RPTVdyYXBw
ZXJDYWNoZS5oIgogI2luY2x1ZGUgIkpTTm9kZS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRnVuY3Rp
b25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRl
IDx3dGYvR2V0UHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50LmNwcAkocmV2aXNpb24gMjE4MzE0KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VSZWpl
Y3Rpb25FdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDEwICsyNCwxNSBAQAogI2luY2x1
ZGUgIkpTRE9NQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVk
ZSAiSlNET01Db25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEFueS5oIgorI2lu
Y2x1ZGUgIkpTRE9NQ29udmVydEJvb2xlYW4uaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRJbnRl
cmZhY2UuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRQcm9taXNlLmgiCisjaW5jbHVkZSAiSlNE
T01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIK
ICNpbmNsdWRlICJKU0RPTVByb21pc2UuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5o
IgotI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGlu
ZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlz
ZVJlamVjdGlvbkV2ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5oCShyZXZpc2lvbiAy
MTgzMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
UHJvbWlzZVJlamVjdGlvbkV2ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIwLDcgKzIwLDcgQEAK
IAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJK
U0RPTUNvbnZlcnREaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiSlNFdmVudC5oIgogI2luY2x1ZGUg
IlRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQuaCIKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxp
emF0aW9uLmNwcAkocmV2aXNpb24gMjE4MzE0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNCwxMiArMjQsMTYgQEAKICNpbmNsdWRlICJKU0RPTUF0dHJpYnV0ZS5oIgogI2luY2x1ZGUg
IkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3Rh
YmxlLmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0
SW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0TnVtYmVycy5oIgorI2luY2x1ZGUg
IkpTRE9NQ29udmVydFN0cmluZ3MuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5n
LmgiCisjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU0RPTU9wZXJh
dGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSAiSlNUZXN0
RXhjZXB0aW9uLmgiCiAjaW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvT2JqZWN0Q29u
c3RydWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAKQEAgLTM3MCwyOCArMzc0LDI4
IEBAIGJvb2wgc2V0SlNUZXN0U2VyaWFsaXphdGlvblNpeHRoVHlwZWRlZkEKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdFNlcmlhbGl6YXRpb24+OjpzZXQ8c2V0SlNUZXN0U2VyaWFsaXph
dGlvblNpeHRoVHlwZWRlZkF0dHJpYnV0ZVNldHRlcj4oKnN0YXRlLCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgInNpeHRoVHlwZWRlZkF0dHJpYnV0ZSIpOwogfQogCi1KU0M6OkpTT2JqZWN0KiBK
U1Rlc3RTZXJpYWxpemF0aW9uOjpzZXJpYWxpemUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNUZXN0U2Vy
aWFsaXphdGlvbiogdGhpc09iamVjdCwgVGhyb3dTY29wZSYgdGhyb3dTY29wZSkKK0pTQzo6SlNP
YmplY3QqIEpTVGVzdFNlcmlhbGl6YXRpb246OnNlcmlhbGl6ZShFeGVjU3RhdGUmIHN0YXRlLCBK
U1Rlc3RTZXJpYWxpemF0aW9uJiB0aGlzT2JqZWN0LCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFs
T2JqZWN0LCBUaHJvd1Njb3BlJiB0aHJvd1Njb3BlKQogewotICAgIGF1dG8mIHZtID0gc3RhdGUt
PnZtKCk7Ci0gICAgYXV0byogcmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmplY3Qoc3RhdGUpOwor
ICAgIGF1dG8mIHZtID0gc3RhdGUudm0oKTsKKyAgICBhdXRvKiByZXN1bHQgPSBjb25zdHJ1Y3RF
bXB0eU9iamVjdCgmc3RhdGUsIGdsb2JhbE9iamVjdC5vYmplY3RQcm90b3R5cGUoKSk7CiAKLSAg
ICBhdXRvIGZpcnN0U3RyaW5nQXR0cmlidXRlVmFsdWUgPSBqc1Rlc3RTZXJpYWxpemF0aW9uRmly
c3RTdHJpbmdBdHRyaWJ1dGVHZXR0ZXIoKnN0YXRlLCAqdGhpc09iamVjdCwgdGhyb3dTY29wZSk7
CisgICAgYXV0byBmaXJzdFN0cmluZ0F0dHJpYnV0ZVZhbHVlID0ganNUZXN0U2VyaWFsaXphdGlv
bkZpcnN0U3RyaW5nQXR0cmlidXRlR2V0dGVyKHN0YXRlLCB0aGlzT2JqZWN0LCB0aHJvd1Njb3Bl
KTsKICAgICB0aHJvd1Njb3BlLmFzc2VydE5vRXhjZXB0aW9uKCk7CiAgICAgcmVzdWx0LT5wdXRE
aXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiZmlyc3RTdHJpbmdBdHRyaWJ1
dGUiKSwgZmlyc3RTdHJpbmdBdHRyaWJ1dGVWYWx1ZSk7CiAKLSAgICBhdXRvIHNlY29uZExvbmdB
dHRyaWJ1dGVWYWx1ZSA9IGpzVGVzdFNlcmlhbGl6YXRpb25TZWNvbmRMb25nQXR0cmlidXRlR2V0
dGVyKCpzdGF0ZSwgKnRoaXNPYmplY3QsIHRocm93U2NvcGUpOworICAgIGF1dG8gc2Vjb25kTG9u
Z0F0dHJpYnV0ZVZhbHVlID0ganNUZXN0U2VyaWFsaXphdGlvblNlY29uZExvbmdBdHRyaWJ1dGVH
ZXR0ZXIoc3RhdGUsIHRoaXNPYmplY3QsIHRocm93U2NvcGUpOwogICAgIHRocm93U2NvcGUuYXNz
ZXJ0Tm9FeGNlcHRpb24oKTsKICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZygmdm0sICJzZWNvbmRMb25nQXR0cmlidXRlIiksIHNlY29uZExvbmdBdHRyaWJ1
dGVWYWx1ZSk7CiAKLSAgICBhdXRvIGZvdXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0ZVZh
bHVlID0ganNUZXN0U2VyaWFsaXphdGlvbkZvdXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0
ZUdldHRlcigqc3RhdGUsICp0aGlzT2JqZWN0LCB0aHJvd1Njb3BlKTsKKyAgICBhdXRvIGZvdXJ0
aFVucmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0ZVZhbHVlID0ganNUZXN0U2VyaWFsaXphdGlvbkZv
dXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0ZUdldHRlcihzdGF0ZSwgdGhpc09iamVjdCwg
dGhyb3dTY29wZSk7CiAgICAgdGhyb3dTY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwogICAgIHJl
c3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImZvdXJ0aFVu
cmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0ZSIpLCBmb3VydGhVbnJlc3RyaWN0ZWREb3VibGVBdHRy
aWJ1dGVWYWx1ZSk7CiAKLSAgICBhdXRvIGZpZnRoTG9uZ0F0dHJpYnV0ZVZhbHVlID0ganNUZXN0
U2VyaWFsaXphdGlvbkZpZnRoTG9uZ0F0dHJpYnV0ZUdldHRlcigqc3RhdGUsICp0aGlzT2JqZWN0
LCB0aHJvd1Njb3BlKTsKKyAgICBhdXRvIGZpZnRoTG9uZ0F0dHJpYnV0ZVZhbHVlID0ganNUZXN0
U2VyaWFsaXphdGlvbkZpZnRoTG9uZ0F0dHJpYnV0ZUdldHRlcihzdGF0ZSwgdGhpc09iamVjdCwg
dGhyb3dTY29wZSk7CiAgICAgdGhyb3dTY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwogICAgIHJl
c3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImZpZnRoTG9u
Z0F0dHJpYnV0ZSIpLCBmaWZ0aExvbmdBdHRyaWJ1dGVWYWx1ZSk7CiAKLSAgICBhdXRvIHNpeHRo
VHlwZWRlZkF0dHJpYnV0ZVZhbHVlID0ganNUZXN0U2VyaWFsaXphdGlvblNpeHRoVHlwZWRlZkF0
dHJpYnV0ZUdldHRlcigqc3RhdGUsICp0aGlzT2JqZWN0LCB0aHJvd1Njb3BlKTsKKyAgICBhdXRv
IHNpeHRoVHlwZWRlZkF0dHJpYnV0ZVZhbHVlID0ganNUZXN0U2VyaWFsaXphdGlvblNpeHRoVHlw
ZWRlZkF0dHJpYnV0ZUdldHRlcihzdGF0ZSwgdGhpc09iamVjdCwgdGhyb3dTY29wZSk7CiAgICAg
dGhyb3dTY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwogICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZt
LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgInNpeHRoVHlwZWRlZkF0dHJpYnV0ZSIpLCBz
aXh0aFR5cGVkZWZBdHRyaWJ1dGVWYWx1ZSk7CiAKQEAgLTQwMCw3ICs0MDQsNyBAQCBKU0M6OkpT
T2JqZWN0KiBKU1Rlc3RTZXJpYWxpemF0aW9uOjpzZXJpCiAKIHN0YXRpYyBpbmxpbmUgRW5jb2Rl
ZEpTVmFsdWUganNUZXN0U2VyaWFsaXphdGlvblByb3RvdHlwZUZ1bmN0aW9uVG9KU09OQm9keShF
eGVjU3RhdGUqIHN0YXRlLCBKU1Rlc3RTZXJpYWxpemF0aW9uKiB0aGlzT2JqZWN0LCBKU0M6OlRo
cm93U2NvcGUmIHRocm93U2NvcGUpCiB7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rl
c3RTZXJpYWxpemF0aW9uOjpzZXJpYWxpemUoc3RhdGUsIHRoaXNPYmplY3QsIHRocm93U2NvcGUp
KTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFNlcmlhbGl6YXRpb246OnNlcmlh
bGl6ZSgqc3RhdGUsICp0aGlzT2JqZWN0LCAqdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIHRo
cm93U2NvcGUpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXJp
YWxpemF0aW9uUHJvdG90eXBlRnVuY3Rpb25Ub0pTT04oRXhlY1N0YXRlKiBzdGF0ZSkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0
aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFNlcmlhbGl6YXRpb24uaAkocmV2aXNpb24gMjE4MzE0KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb24uaAkod29y
a2luZyBjb3B5KQpAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGlj
IEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2Jh
bE9iamVjdCopOwotICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBzZXJpYWxpemUoSlNDOjpFeGVj
U3RhdGUqLCBKU1Rlc3RTZXJpYWxpemF0aW9uKiB0aGlzT2JqZWN0LCBKU0M6OlRocm93U2NvcGUm
KTsKKyAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogc2VyaWFsaXplKEpTQzo6RXhlY1N0YXRlJiwg
SlNUZXN0U2VyaWFsaXphdGlvbiYgdGhpc09iamVjdCwgSlNET01HbG9iYWxPYmplY3QmLCBKU0M6
OlRocm93U2NvcGUmKTsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RTZXJpYWxpemF0aW9uKEpTQzo6
U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdFNlcmlhbGl6YXRpb24+JiYp
OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U2VyaWFsaXphdGlvbkluaGVyaXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdC5jcHAJKHJl
dmlzaW9uIDIxODMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDEw
ICsyNCwxMSBAQAogI2luY2x1ZGUgIkpTRE9NQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiSlNET01C
aW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIK
LSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnROdW1iZXJz
LmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9N
T3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKKyNpbmNsdWRlIDxy
dW50aW1lL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL09iamVjdENvbnN0cnVjdG9y
Lmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogCkBAIC0xOTYsMTIgKzE5NywxMiBAQCBib29s
IHNldEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0SW5oZXJpCiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdD46OnNldDxzZXRKU1Rlc3RTZXJpYWxpemF0
aW9uSW5oZXJpdEluaGVyaXRMb25nQXR0cmlidXRlU2V0dGVyPigqc3RhdGUsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAiaW5oZXJpdExvbmdBdHRyaWJ1dGUiKTsKIH0KIAotSlNDOjpKU09iamVj
dCogSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXQ6OnNlcmlhbGl6ZShFeGVjU3RhdGUqIHN0YXRl
LCBKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdCogdGhpc09iamVjdCwgVGhyb3dTY29wZSYgdGhy
b3dTY29wZSkKK0pTQzo6SlNPYmplY3QqIEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0OjpzZXJp
YWxpemUoRXhlY1N0YXRlJiBzdGF0ZSwgSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXQmIHRoaXNP
YmplY3QsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIFRocm93U2NvcGUmIHRocm93
U2NvcGUpCiB7Ci0gICAgYXV0byYgdm0gPSBzdGF0ZS0+dm0oKTsKLSAgICBhdXRvKiByZXN1bHQg
PSBKU1Rlc3RTZXJpYWxpemF0aW9uOjpzZXJpYWxpemUoc3RhdGUsIHRoaXNPYmplY3QsIHRocm93
U2NvcGUpOworICAgIGF1dG8mIHZtID0gc3RhdGUudm0oKTsKKyAgICBhdXRvKiByZXN1bHQgPSBK
U1Rlc3RTZXJpYWxpemF0aW9uOjpzZXJpYWxpemUoc3RhdGUsIHRoaXNPYmplY3QsIGdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSk7CiAKLSAgICBhdXRvIGluaGVyaXRMb25nQXR0cmlidXRlVmFsdWUg
PSBqc1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEluaGVyaXRMb25nQXR0cmlidXRlR2V0dGVyKCpz
dGF0ZSwgKnRoaXNPYmplY3QsIHRocm93U2NvcGUpOworICAgIGF1dG8gaW5oZXJpdExvbmdBdHRy
aWJ1dGVWYWx1ZSA9IGpzVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0SW5oZXJpdExvbmdBdHRyaWJ1
dGVHZXR0ZXIoc3RhdGUsIHRoaXNPYmplY3QsIHRocm93U2NvcGUpOwogICAgIHRocm93U2NvcGUu
YXNzZXJ0Tm9FeGNlcHRpb24oKTsKICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmll
cjo6ZnJvbVN0cmluZygmdm0sICJpbmhlcml0TG9uZ0F0dHJpYnV0ZSIpLCBpbmhlcml0TG9uZ0F0
dHJpYnV0ZVZhbHVlKTsKIApAQCAtMjEwLDcgKzIxMSw3IEBAIEpTQzo6SlNPYmplY3QqIEpTVGVz
dFNlcmlhbGl6YXRpb25JbmhlcmkKIAogc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RTZXJpYWxpemF0aW9uSW5oZXJpdFByb3RvdHlwZUZ1bmN0aW9uVG9KU09OQm9keShFeGVjU3Rh
dGUqIHN0YXRlLCBKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdCogdGhpc09iamVjdCwgSlNDOjpU
aHJvd1Njb3BlJiB0aHJvd1Njb3BlKQogewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNU
ZXN0U2VyaWFsaXphdGlvbkluaGVyaXQ6OnNlcmlhbGl6ZShzdGF0ZSwgdGhpc09iamVjdCwgdGhy
b3dTY29wZSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0U2VyaWFsaXphdGlv
bkluaGVyaXQ6OnNlcmlhbGl6ZSgqc3RhdGUsICp0aGlzT2JqZWN0LCAqdGhpc09iamVjdC0+Z2xv
YmFsT2JqZWN0KCksIHRocm93U2NvcGUpKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdFByb3RvdHlwZUZ1bmN0aW9uVG9KU09OKEV4
ZWNTdGF0ZSogc3RhdGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVy
aXQuaAkocmV2aXNpb24gMjE4MzE0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUg
Z2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAg
ICBzdGF0aWMgSlNDOjpKU09iamVjdCogc2VyaWFsaXplKEpTQzo6RXhlY1N0YXRlKiwgSlNUZXN0
U2VyaWFsaXphdGlvbkluaGVyaXQqIHRoaXNPYmplY3QsIEpTQzo6VGhyb3dTY29wZSYpOworICAg
IHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBzZXJpYWxpemUoSlNDOjpFeGVjU3RhdGUmLCBKU1Rlc3RT
ZXJpYWxpemF0aW9uSW5oZXJpdCYgdGhpc09iamVjdCwgSlNET01HbG9iYWxPYmplY3QmLCBKU0M6
OlRocm93U2NvcGUmKTsKICAgICBUZXN0U2VyaWFsaXphdGlvbkluaGVyaXQmIHdyYXBwZWQoKSBj
b25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRlc3RTZXJpYWxpemF0aW9u
SW5oZXJpdCY+KEJhc2U6OndyYXBwZWQoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwuY3BwCShyZXZpc2lvbiAyMTgzMTQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbklu
aGVyaXRGaW5hbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDEwICsyNCwxMSBAQAogI2luY2x1
ZGUgIkpTRE9NQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVk
ZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RPTUNv
bnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnROdW1iZXJzLmgiCiAjaW5jbHVkZSAiSlNE
T01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5j
bHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKKyNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMu
aD4KICNpbmNsdWRlIDxydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L0dldFB0ci5oPgogCkBAIC0yMjksMTIgKzIzMCwxMiBAQCBib29sIHNldEpTVGVzdFNlcmlhbGl6
YXRpb25Jbmhlcml0RmluYWxGCiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXJpYWxp
emF0aW9uSW5oZXJpdEZpbmFsPjo6c2V0PHNldEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0Rmlu
YWxGaW5hbExvbmdBdHRyaWJ1dGVCYXJTZXR0ZXI+KCpzdGF0ZSwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJmaW5hbExvbmdBdHRyaWJ1dGVCYXIiKTsKIH0KIAotSlNDOjpKU09iamVjdCogSlNU
ZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbDo6c2VyaWFsaXplKEV4ZWNTdGF0ZSogc3RhdGUs
IEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwqIHRoaXNPYmplY3QsIFRocm93U2NvcGUm
IHRocm93U2NvcGUpCitKU0M6OkpTT2JqZWN0KiBKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZp
bmFsOjpzZXJpYWxpemUoRXhlY1N0YXRlJiBzdGF0ZSwgSlNUZXN0U2VyaWFsaXphdGlvbkluaGVy
aXRGaW5hbCYgdGhpc09iamVjdCwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgVGhy
b3dTY29wZSYgdGhyb3dTY29wZSkKIHsKLSAgICBhdXRvJiB2bSA9IHN0YXRlLT52bSgpOwotICAg
IGF1dG8qIHJlc3VsdCA9IEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0OjpzZXJpYWxpemUoc3Rh
dGUsIHRoaXNPYmplY3QsIHRocm93U2NvcGUpOworICAgIGF1dG8mIHZtID0gc3RhdGUudm0oKTsK
KyAgICBhdXRvKiByZXN1bHQgPSBKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdDo6c2VyaWFsaXpl
KHN0YXRlLCB0aGlzT2JqZWN0LCBnbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOwogCi0gICAgYXV0
byBmaW5hbExvbmdBdHRyaWJ1dGVCYXJWYWx1ZSA9IGpzVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0
RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVCYXJHZXR0ZXIoKnN0YXRlLCAqdGhpc09iamVjdCwgdGhy
b3dTY29wZSk7CisgICAgYXV0byBmaW5hbExvbmdBdHRyaWJ1dGVCYXJWYWx1ZSA9IGpzVGVzdFNl
cmlhbGl6YXRpb25Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVCYXJHZXR0ZXIoc3RhdGUs
IHRoaXNPYmplY3QsIHRocm93U2NvcGUpOwogICAgIHRocm93U2NvcGUuYXNzZXJ0Tm9FeGNlcHRp
b24oKTsKICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygm
dm0sICJmaW5hbExvbmdBdHRyaWJ1dGVCYXIiKSwgZmluYWxMb25nQXR0cmlidXRlQmFyVmFsdWUp
OwogCkBAIC0yNDMsNyArMjQ0LDcgQEAgSlNDOjpKU09iamVjdCogSlNUZXN0U2VyaWFsaXphdGlv
bkluaGVyaQogCiBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6YXRp
b25Jbmhlcml0RmluYWxQcm90b3R5cGVGdW5jdGlvblRvSlNPTkJvZHkoRXhlY1N0YXRlKiBzdGF0
ZSwgSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbCogdGhpc09iamVjdCwgSlNDOjpUaHJv
d1Njb3BlJiB0aHJvd1Njb3BlKQogewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0
U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbDo6c2VyaWFsaXplKHN0YXRlLCB0aGlzT2JqZWN0LCB0
aHJvd1Njb3BlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RTZXJpYWxpemF0
aW9uSW5oZXJpdEZpbmFsOjpzZXJpYWxpemUoKnN0YXRlLCAqdGhpc09iamVjdCwgKnRoaXNPYmpl
Y3QtPmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbFByb3RvdHlwZUZ1bmN0
aW9uVG9KU09OKEV4ZWNTdGF0ZSogc3RhdGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RT
ZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsLmgJKHJldmlzaW9uIDIxODMxNCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJp
dEZpbmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIH0K
IAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0
IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogc2VyaWFs
aXplKEpTQzo6RXhlY1N0YXRlKiwgSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbCogdGhp
c09iamVjdCwgSlNDOjpUaHJvd1Njb3BlJik7CisgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIHNl
cmlhbGl6ZShKU0M6OkV4ZWNTdGF0ZSYsIEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwm
IHRoaXNPYmplY3QsIEpTRE9NR2xvYmFsT2JqZWN0JiwgSlNDOjpUaHJvd1Njb3BlJik7CiAgICAg
VGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwmIHdyYXBwZWQoKSBjb25zdAogICAgIHsKICAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsJj4o
QmFzZTo6d3JhcHBlZCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCShyZXZpc2lvbiAyMTgzMTQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTQgKzI3LDE4IEBACiAj
aW5jbHVkZSAiSlNET01BdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNp
bmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgotI2luY2x1ZGUgIkpT
RE9NQ29udmVydC5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEludGVyZmFjZS5oIgorI2luY2x1
ZGUgIkpTRE9NQ29udmVydFNlcXVlbmNlcy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIK
KyNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9u
LmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJKU01lc3NhZ2VQ
b3J0LmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSA8cnVu
dGltZS9GdW5jdGlvblByb3RvdHlwZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNBcnJheS5oPgor
I2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTdGFuZGFsb25lRGljdGlvbmFyeS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0YW5kYWxv
bmVEaWN0aW9uYXJ5LmNwcAkocmV2aXNpb24gMjE4MzE0KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0YW5kYWxvbmVEaWN0aW9uYXJ5LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjQsNiArMjQsOSBAQAogCiAjaW5jbHVkZSAiSlNUZXN0U3RhbmRhbG9u
ZURpY3Rpb25hcnkuaCIKIAorI2luY2x1ZGUgIkpTRE9NQ29udmVydEJvb2xlYW4uaCIKKyNpbmNs
dWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVz
Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgogCkBAIC0zMSw2ICszNCw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorI2lmIEVOQUJMRShDb25kaXRpb24xKQorCiB0ZW1wbGF0ZTw+
IERpY3Rpb25hcnlJbXBsTmFtZSBjb252ZXJ0RGljdGlvbmFyeTxEaWN0aW9uYXJ5SW1wbE5hbWU+
KEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUu
dm0oKTsKQEAgLTY0LDYgKzY5LDggQEAgdGVtcGxhdGU8PiBEaWN0aW9uYXJ5SW1wbE5hbWUgY29u
dmVydERpYwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKKyNlbmRpZgorCiB0ZW1wbGF0ZTw+IEpT
U3RyaW5nKiBjb252ZXJ0RW51bWVyYXRpb25Ub0pTKEV4ZWNTdGF0ZSYgc3RhdGUsIFRlc3RTdGFu
ZGFsb25lRGljdGlvbmFyeTo6RW51bUluU3RhbmRhbG9uZURpY3Rpb25hcnlGaWxlIGVudW1lcmF0
aW9uVmFsdWUpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IFN0cmluZz4gdmFs
dWVzW10gPSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U3RhbmRhbG9uZURpY3Rpb25hcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RhbmRhbG9uZURpY3Rpb25hcnkuaAko
cmV2aXNpb24gMjE4MzE0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFN0YW5kYWxvbmVEaWN0aW9uYXJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDcg
KzIzLDggQEAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKIAogI2luY2x1ZGUgIkRpY3Rpb25hcnlJ
bXBsTmFtZS5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgorI2luY2x1ZGUgIkpTRE9NQ29u
dmVydERpY3Rpb25hcnkuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRFbnVtZXJhdGlvbi5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTdGFuZGFsb25lRW51bWVyYXRpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdGFuZGFs
b25lRW51bWVyYXRpb24uY3BwCShyZXZpc2lvbiAyMTgzMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RhbmRhbG9uZUVudW1lcmF0aW9uLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogCiAjaW5jbHVkZSAiSlNUZXN0U3RhbmRh
bG9uZUVudW1lcmF0aW9uLmgiCiAKKyNpbmNsdWRlIDxydW50aW1lL0pTQ0lubGluZXMuaD4KICNp
bmNsdWRlIDxydW50aW1lL0pTU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVk
Lmg+CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTdGFuZGFsb25lRW51bWVyYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RhbmRhbG9uZUVudW1lcmF0aW9uLmgJKHJl
dmlzaW9uIDIxODMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTdGFuZGFsb25lRW51bWVyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyAr
MjIsNyBAQAogCiAjaWYgRU5BQkxFKENPTkRJVElPTikKIAotI2luY2x1ZGUgIkpTRE9NQ29udmVy
dC5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEVudW1lcmF0aW9uLmgiCiAjaW5jbHVkZSAiVGVz
dFN0YW5kYWxvbmVFbnVtZXJhdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RUeXBlZGVmcy5jcHAJKHJldmlzaW9uIDIxODMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI0LDggKzI0LDE3IEBACiAjaW5jbHVkZSAiSlNET01BdHRyaWJ1dGUuaCIKICNpbmNsdWRl
ICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yLmgiCi0jaW5jbHVk
ZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0Qm9vbGVhbi5oIgorI2lu
Y2x1ZGUgIkpTRE9NQ29udmVydENhbGxiYWNrcy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydElu
dGVyZmFjZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bGxhYmxlLmgiCisjaW5jbHVkZSAi
SlNET01Db252ZXJ0TnVtYmVycy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFNlcXVlbmNlcy5o
IgorI2luY2x1ZGUgIkpTRE9NQ29udmVydFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorI2luY2x1
ZGUgIkpTRE9NQ29udmVydFN0cmluZ3MuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRVbmlvbi5o
IgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKKyNpbmNsdWRlICJKU0RPTUds
b2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNE
T01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJKU1NWR1BvaW50LmgiCkBAIC0zNCw5ICs0Myw5
IEBACiAjaW5jbHVkZSAiSlNUZXN0RXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJKU1Rlc3RTdWJP
YmouaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKLSNpbmNsdWRlIDxydW50
aW1lL0Vycm9yLmg+CiAjaW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oPgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNBcnJheS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSW5saW5lcy5o
PgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Vm9pZENh
bGxiYWNrRnVuY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RWb2lkQ2FsbGJhY2tGdW5jdGlvbi5jcHAJKHJldmlzaW9u
IDIxODMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RWb2lkQ2FsbGJhY2tGdW5jdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDggKzI0LDE0
IEBACiAKICNpbmNsdWRlICJKU1Rlc3RWb2lkQ2FsbGJhY2tGdW5jdGlvbi5oIgogCi0jaW5jbHVk
ZSAiSlNET01Db252ZXJ0LmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0Qm9vbGVhbi5oIgorI2lu
Y2x1ZGUgIkpTRE9NQ29udmVydEJ1ZmZlclNvdXJjZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVy
dEludGVyZmFjZS5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bWJlcnMuaCIKKyNpbmNsdWRl
ICJKU0RPTUNvbnZlcnRTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKKyNpbmNsdWRlICJKU0RPTUNv
bnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgorI2lu
Y2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNUZXN0Tm9kZS5oIgogI2lu
Y2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAJKHJldmlzaW9uIDIx
ODMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjgsNyArMjgsOCBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCiAjaW5jbHVkZSAiSFRNTElGcmFtZUVsZW1lbnQuaCIKLSNpbmNsdWRlICJKU0RPTUNv
bnZlcnQuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRJbnRlcmZhY2UuaCIKKyNpbmNsdWRlICJK
U0RPTUNvbnZlcnROdWxsYWJsZS5oIgogI2luY2x1ZGUgIkpTRXZlbnRUYXJnZXQuaCIKICNpbmNs
dWRlICJKU0V2ZW50VGFyZ2V0Q3VzdG9tLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50
LmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDIxODMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJ
bkltYWdlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDkgQEAKICNpbmNs
dWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNs
dWRlICJIVE1MSW1hZ2VMb2FkZXIuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRCb29sZWFuLmgi
CisjaW5jbHVkZSAiSlNET01Db252ZXJ0SW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiSlNET01Db252
ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIkxvY2Fs
aXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>