<?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>149838</bug_id>
          
          <creation_ts>2015-10-06 05:08:05 -0700</creation_ts>
          <short_desc>Binding generator XXConstructor::finishCreation should take references as parameters</short_desc>
          <delta_ts>2015-10-06 13:14:45 -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>WebCore Misc.</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>
          <dependson>149849</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1130932</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-10-06 05:08:05 -0700</bug_when>
    <thetext>It might be better to move from pointers to references in the code generated by the binding generator.
This may also help aligning generated code with templates that might simplify the binding generator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130935</commentid>
    <comment_count>1</comment_count>
      <attachid>262510</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-10-06 05:22:33 -0700</bug_when>
    <thetext>Created attachment 262510
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130993</commentid>
    <comment_count>2</comment_count>
      <attachid>262510</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-06 09:38:02 -0700</bug_when>
    <thetext>Comment on attachment 262510
Patch

Clearing flags on attachment: 262510

Committed r190619: &lt;http://trac.webkit.org/changeset/190619&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130994</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-06 09:38:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131017</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-06 10:29:52 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 149849</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131065</commentid>
    <comment_count>5</comment_count>
      <attachid>262533</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-10-06 12:08:03 -0700</bug_when>
    <thetext>Created attachment 262533
Resetting binding tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131070</commentid>
    <comment_count>6</comment_count>
      <attachid>262533</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-06 12:15:29 -0700</bug_when>
    <thetext>Comment on attachment 262533
Resetting binding tests

Rejecting attachment 262533 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 262533, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Source/WebCore/ChangeLog contains OOPS!.

Full output: http://webkit-queues.webkit.org/results/251358</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131078</commentid>
    <comment_count>7</comment_count>
      <attachid>262535</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-10-06 12:18:12 -0700</bug_when>
    <thetext>Created attachment 262535
Fixing OOPS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131096</commentid>
    <comment_count>8</comment_count>
      <attachid>262535</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-06 13:14:39 -0700</bug_when>
    <thetext>Comment on attachment 262535
Fixing OOPS

Clearing flags on attachment: 262535

Committed r190637: &lt;http://trac.webkit.org/changeset/190637&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131097</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-06 13:14:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262510</attachid>
            <date>2015-10-06 05:22:33 -0700</date>
            <delta_ts>2015-10-06 12:07:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149838-20151006142202.patch</filename>
            <type>text/plain</type>
            <size>44296</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwNjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjMzYzJiYTAwYjM1YTIz
MDI4YTJlOGRkNmJjMjNkYzUwOWFkOGQ1ZS4uOWI4NzU2NTllZjQxZjU4NjBmZWZmNThmZmI3NWUx
N2FiODFkNDRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg0IEBACisyMDE1LTEwLTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgQmluZGlu
ZyBnZW5lcmF0b3IgWFhDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24gc2hvdWxkIHRha2UgcmVm
ZXJlbmNlcyBhcyBwYXJhbWV0ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDk4MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBVcGRhdGVkIHRoZSBiaW5kaW5nIGdlbmVyYXRvciBzbyB0aGF0IFhYQ29u
c3RydWN0b3I6OmZpbmlzaENyZWF0aW9uCisgICAgICAgIHRha2VzIGEgSlNET01HbG9iYWxPYmpl
Y3QmIGluIGxpZXUgb2YgYSBKU0RPTUdsb2JhbE9iamVjdCouCisKKyAgICAgICAgQ292ZXJlZCBi
eSByZWJhc2VkIGJpbmRpbmcgdGVzdHMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlQ29uc3RydWN0b3JEZWNsYXJhdGlv
bik6CisgICAgICAgIChHZW5lcmF0ZUNvbnN0cnVjdG9ySGVscGVyTWV0aG9kcyk6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1Rlc3RBY3RpdmVET01PYmplY3RDb25zdHJ1Y3Rvcjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEFjdGl2ZURPTU9iamVjdENvbnN0cnVjdG9yOjpm
aW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dENhbGxiYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdENhbGxiYWNrQ29uc3RydWN0
b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDYWxsYmFja0NvbnN0cnVjdG9y
OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Q29u
c3RydWN0b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDdXN0b21Db25zdHJ1
Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0
b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3I6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yOjpmaW5pc2hD
cmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2Vw
dGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3Rvcjo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yOjpm
aW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0R2VuZXJh
dGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEpTQnVpbHRpbkNvbnN0
cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9y
Q29uc3RydWN0b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RKU0J1aWx0aW5D
b25zdHJ1Y3RvckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvck5hbWVkQ29uc3RydWN0b3I6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3I6OmZpbmlzaENy
ZWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVkQ29uc3RydWN0b3JOYW1lZENv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0Tm9kZUNvbnN0
cnVjdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0Tm9kZUNvbnN0cnVjdG9y
OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5vbmRldGVybWluaXN0aWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0Tm9uZGV0
ZXJtaW5pc3RpY0NvbnN0cnVjdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
Tm9uZGV0ZXJtaW5pc3RpY0NvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVz
dE9iakNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVj
dG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T3Zl
cnJpZGVCdWlsdGluc0NvbnN0cnVjdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0T3ZlcnJpZGVCdWlsdGluc0NvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlv
bik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3I6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yOjpmaW5pc2hDcmVh
dGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTYXR0cmlidXRlQ29uc3RydWN0b3I6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU2F0dHJpYnV0ZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNyZWFkb25seUNvbnN0cnVjdG9yOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6SlNyZWFkb25seUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisKIDIwMTUt
MTAtMDUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KIAogICAg
ICAgICBNaWdyYXRlIHN0cmVhbXMgQVBJIHRvIEpTIEJ1aWx0aW5zCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDc5NWE0ZjI1
NDI4NjA0MGQxNDRlY2IxZGRlNWEzN2FmYWZmMmI4NTkuLmE2ZGIxODE1OGRkMTRlZGI4OTZkZjg0
YTg0YzE3ZDBlOTdjYzYzMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC00NjA3LDE0ICs0NjA3LDE0IEBAIHN1YiBHZW5l
cmF0ZUNvbnN0cnVjdG9yRGVjbGFyYXRpb24KICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJjbGFz
cyAke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfSA6IHB1YmxpYyAiIC4gJHBhcmVudENsYXNzTmFtZSAu
ICIge1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAicHJpdmF0ZTpcbiIpOwogICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICAke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfShKU0M6OlN0cnVj
dHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7XG4iKTsKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QqKTtc
blxuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
SlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7XG5cbiIpOwogCiAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAicHVibGljOlxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHR5cGVk
ZWYgIiAuICRwYXJlbnRDbGFzc05hbWUgLiAiIEJhc2U7XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgc3RhdGljICRjb25zdHJ1Y3RvckNsYXNzTmFtZSogY3JlYXRlKEpTQzo6Vk0m
IHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHtcbiIpOwogICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgJGNvbnN0cnVjdG9yQ2xhc3NOYW1lKiBwdHIgPSBu
ZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPCRjb25zdHJ1Y3RvckNsYXNzTmFtZT4odm0u
aGVhcCkpICRjb25zdHJ1Y3RvckNsYXNzTmFtZShzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCk7XG4i
KTsKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24o
dm0sIGdsb2JhbE9iamVjdCk7XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAg
IHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sICpnbG9iYWxPYmplY3QpO1xuIik7CiAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gcHRyO1xuIik7CiAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgIH1cblxuIik7CiAKQEAgLTQ2NTQsNyArNDY1NCw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgSlMke2ludGVyZmFjZU5hbWV9TmFtZWRDb25zdHJ1Y3RvciogY3JlYXRlKEpTQzo6
Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQogICAgIHsKICAgICAgICAgSlMke2ludGVyZmFjZU5hbWV9TmFtZWRDb25zdHJ1
Y3RvciogY29uc3RydWN0b3IgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTJHtp
bnRlcmZhY2VOYW1lfU5hbWVkQ29uc3RydWN0b3I+KHZtLmhlYXApKSBKUyR7aW50ZXJmYWNlTmFt
ZX1OYW1lZENvbnN0cnVjdG9yKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgY29u
c3RydWN0b3ItPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmplY3QpOworICAgICAgICBjb25z
dHJ1Y3Rvci0+ZmluaXNoQ3JlYXRpb24odm0sICpnbG9iYWxPYmplY3QpOwogICAgICAgICByZXR1
cm4gY29uc3RydWN0b3I7CiAgICAgfQogCkBAIC00NjY5LDcgKzQ2NjksNyBAQCBwcml2YXRlOgog
ICAgIEpTJHtpbnRlcmZhY2VOYW1lfU5hbWVkQ29uc3RydWN0b3IoSlNDOjpTdHJ1Y3R1cmUqLCBK
U0RPTUdsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY29uc3RydWN0SlMke2ludGVyZmFjZU5hbWV9KEpTQzo6RXhlY1N0YXRlKik7CiAg
ICAgc3RhdGljIEpTQzo6Q29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQzo6SlNDZWxs
KiwgSlNDOjpDb25zdHJ1Y3REYXRhJik7Ci0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZN
JiwgSlNET01HbG9iYWxPYmplY3QqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0m
LCBKU0RPTUdsb2JhbE9iamVjdCYpOwogfTsKIAogRU5ECkBAIC00OTc2LDExICs0OTc2LDExIEBA
IHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9ySGVscGVyTWV0aG9kcwogICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIntcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxuIik7CiAKLSAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICJ2b2lkICR7Y29uc3RydWN0b3JDbGFzc05hbWV9OjpmaW5pc2hD
cmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpXG4iKTsKKyAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICJ2b2lkICR7Y29uc3RydWN0b3JDbGFzc05hbWV9OjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpXG4iKTsK
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7XG4iKTsKIAogICAgIGlmICgkZ2VuZXJhdGluZ05h
bWVkQ29uc3RydWN0b3IpIHsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEJhc2U6
OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKCZnbG9iYWxPYmplY3QpO1xuIik7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEJhc2U6OmZpbmlz
aENyZWF0aW9uKHZtKTtcbiIpOwogICAgIH0KQEAgLTQ5OTAsMTEgKzQ5OTAsMTEgQEAgc3ViIEdl
bmVyYXRlQ29uc3RydWN0b3JIZWxwZXJNZXRob2RzCiAgICAgIyBvZiB3aGV0aGVyIHRoZSBpbnRl
cmZhY2Ugd2FzIGRlY2xhcmVkIHdpdGggdGhlIFtOb0ludGVyZmFjZU9iamVjdF0gZXh0ZW5kZWQg
YXR0cmlidXRlLgogICAgICMgaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jaW50ZXJm
YWNlLXByb3RvdHlwZS1vYmplY3QKICAgICBpZiAoSXNET01HbG9iYWxPYmplY3QoJGludGVyZmFj
ZSkpIHsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHB1dERpcmVjdCh2bSwgdm0u
cHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBnbG9iYWxPYmplY3QtPnByb3RvdHlwZSgpLCBEb250
RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBn
bG9iYWxPYmplY3QucHJvdG90eXBlKCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVt
KTtcbiIpOwogICAgIH0gZWxzaWYgKCRpbnRlcmZhY2UtPmlzQ2FsbGJhY2spIHsKICAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgIFVOVVNFRF9QQVJBTShnbG9iYWxPYmplY3QpO1xuIik7
CiAgICAgfSBlbHNlIHsKLSAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcHV0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsICR7Y2xhc3NOYW1lfTo6Z2V0UHJvdG90
eXBlKHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7
XG4iKTsKKyAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcHV0RGlyZWN0KHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsICR7Y2xhc3NOYW1lfTo6Z2V0UHJvdG90eXBlKHZtLCAm
Z2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pO1xuIik7CiAg
ICAgfQogCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHB1dERpcmVjdCh2bSwgdm0ucHJv
cGVydHlOYW1lcy0+bmFtZSwganNOb250cml2aWFsU3RyaW5nKCZ2bSwgU3RyaW5nKEFTQ0lJTGl0
ZXJhbChcIiR2aXNpYmxlSW50ZXJmYWNlTmFtZVwiKSkpLCBSZWFkT25seSB8IERvbnRFbnVtKTtc
biIpOwpAQCAtNTAwOSw3ICs1MDA5LDcgQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0b3JIZWxwZXJN
ZXRob2RzCiAKICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQnVp
bHRpbkNvbnN0cnVjdG9yIn0pIHsKICAgICAgICAgbXkgJGluaXRpYWxpemVGdW5jdGlvbk5hbWUg
PSBHZXRKU0J1aWx0aW5GdW5jdGlvbk5hbWUoJHtjbGFzc05hbWV9LCAiaW5pdGlhbGl6ZSIgLiAk
e2ludGVyZmFjZU5hbWV9KTsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHNldElu
aXRpYWxpemVGdW5jdGlvbih2bSwgKkpTQzo6SlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0
aW9uKHZtLCAke2luaXRpYWxpemVGdW5jdGlvbk5hbWV9KHZtKSwgZ2xvYmFsT2JqZWN0KSk7XG4i
KTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHNldEluaXRpYWxpemVGdW5jdGlv
bih2bSwgKkpTQzo6SlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCAke2luaXRp
YWxpemVGdW5jdGlvbk5hbWV9KHZtKSwgJmdsb2JhbE9iamVjdCkpO1xuIik7CiAgICAgfQogCiAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9i
amVjdC5jcHAKaW5kZXggYTE2ODA4ODhjOWNmNjk0NWZmMmMyZDc1OTNmMmZkYjE3MjBmNTEzNi4u
ODE2NTUxM2U5YzE0NjI3YzdkYzI0MWQyYmM3YjhmZWIwZDc0NjJjYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEFjdGl2ZURPTU9iamVjdC5jcHAKQEAgLTY5LDE0ICs2OSwxNCBAQCBwcml2YXRlOgogY2xhc3Mg
SlNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0b3JP
YmplY3QgewogcHJpdmF0ZToKICAgICBKU1Rlc3RBY3RpdmVET01PYmplY3RDb25zdHJ1Y3RvcihK
U0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7Ci0gICAgdm9pZCBmaW5pc2hDcmVh
dGlvbihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOwogCiBwdWJsaWM6CiAgICAgdHlwZWRl
ZiBET01Db25zdHJ1Y3Rvck9iamVjdCBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3RBY3RpdmVET01P
YmplY3RDb25zdHJ1Y3RvciogY3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHsKICAgICAgICAg
SlNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3IqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlND
OjphbGxvY2F0ZUNlbGw8SlNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3I+KHZtLmhlYXAp
KSBKU1Rlc3RBY3RpdmVET01PYmplY3RDb25zdHJ1Y3RvcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVj
dCk7Ci0gICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCk7CisgICAg
ICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sICpnbG9iYWxPYmplY3QpOwogICAgICAgICByZXR1
cm4gcHRyOwogICAgIH0KIApAQCAtMTExLDcgKzExMSw3IEBAIEpTVGVzdEFjdGl2ZURPTU9iamVj
dENvbnN0cnVjdG9yOjpKU1Rlc3RBY3RpdmVET01PYmplY3RDb25zdHJ1Y3RvcihTdHJ1Y3R1cmUq
IHN0CiB7CiB9CiAKLXZvaWQgSlNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3I6OmZpbmlz
aENyZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQg
SlNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
SlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVh
dGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFjay5j
cHAKaW5kZXggN2I3NTcxY2JlYTVmZjM5YTYzYWI2NzMwYmQ5ZGQyNDZmNzg0ZmRkOC4uODgwZDIx
NzBhMjQ3Mzc3NzA1ZDI5YTYxZjM4NTU5ODE3ZWMxM2EyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2suY3Bw
CkBAIC02MiwxNCArNjIsMTQgQEAgSlNUZXN0Q2FsbGJhY2s6On5KU1Rlc3RDYWxsYmFjaygpCiBj
bGFzcyBKU1Rlc3RDYWxsYmFja0NvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9yT2Jq
ZWN0IHsKIHByaXZhdGU6CiAgICAgSlNUZXN0Q2FsbGJhY2tDb25zdHJ1Y3RvcihKU0M6OlN0cnVj
dHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7Ci0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6
OlZNJiwgSlNET01HbG9iYWxPYmplY3QqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6
Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOwogCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBET01Db25z
dHJ1Y3Rvck9iamVjdCBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3RDYWxsYmFja0NvbnN0cnVjdG9y
KiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgewogICAgICAgICBKU1Rlc3RDYWxsYmFja0Nv
bnN0cnVjdG9yKiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdENh
bGxiYWNrQ29uc3RydWN0b3I+KHZtLmhlYXApKSBKU1Rlc3RDYWxsYmFja0NvbnN0cnVjdG9yKHN0
cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwg
Z2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwgKmdsb2JhbE9i
amVjdCk7CiAgICAgICAgIHJldHVybiBwdHI7CiAgICAgfQogCkBAIC05OSw3ICs5OSw3IEBAIEpT
VGVzdENhbGxiYWNrQ29uc3RydWN0b3I6OkpTVGVzdENhbGxiYWNrQ29uc3RydWN0b3IoU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NCiB7CiB9CiAKLXZvaWQgSlNUZXN0Q2FsbGJhY2tDb25zdHJ1
Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQordm9pZCBKU1Rlc3RDYWxsYmFja0NvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgQmFzZTo6ZmluaXNo
Q3JlYXRpb24odm0pOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21Db25z
dHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VP
YmplY3QuY3BwCmluZGV4IDNjMWU4ODM5NjBlODAyZjkzMjI2NDY5YTIyZWM2ZjExN2EwMWI1MDAu
LmZkNWJkOGU5NWE1MWJjYjJhYmEwODIyZjQ3ZDJjZThjNzIyZjgwZDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1
Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNl
T2JqZWN0LmNwcApAQCAtNjAsMTQgKzYwLDE0IEBAIHByaXZhdGU6CiBjbGFzcyBKU1Rlc3RDdXN0
b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yIDogcHVibGljIERP
TUNvbnN0cnVjdG9yT2JqZWN0IHsKIHByaXZhdGU6CiAgICAgSlNUZXN0Q3VzdG9tQ29uc3RydWN0
b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvcihKU0M6OlN0cnVjdHVyZSosIEpTRE9N
R2xvYmFsT2JqZWN0Kik7Ci0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01H
bG9iYWxPYmplY3QqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RPTUds
b2JhbE9iamVjdCYpOwogCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBET01Db25zdHJ1Y3Rvck9iamVj
dCBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFj
ZU9iamVjdENvbnN0cnVjdG9yKiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgewogICAgICAg
ICBKU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9y
KiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdEN1c3RvbUNvbnN0
cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3I+KHZtLmhlYXApKSBKU1Rlc3RD
dXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yKHN0cnVjdHVy
ZSwgZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFs
T2JqZWN0KTsKKyAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwgKmdsb2JhbE9iamVjdCk7
CiAgICAgICAgIHJldHVybiBwdHI7CiAgICAgfQogCkBAIC04Niw3ICs4Niw3IEBAIEpTVGVzdEN1
c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3I6OkpTVGVzdEN1
c3RvbUNvbnN0cnVjdG9yCiB7CiB9CiAKLXZvaWQgSlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRo
Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQordm9pZCBKU1Rlc3RDdXN0b21Db25zdHJ1Y3Rv
cldpdGhOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0s
IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3Jl
YXRpb24odm0pOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdl
dHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCmluZGV4IDZkMjUzMzgxOGI3NjQxNTAzZmY4ZTY5YjRmMDg5
NDllMzc2Y2IwMzUuLjhjMjU3MjI0NjMzY2M2MmZjOTM4ZDNjNTg0YTNiMzkxMTU2MDM4OWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
dXN0b21OYW1lZEdldHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcApAQCAtNjcsMTQgKzY3LDE0IEBA
IHByaXZhdGU6CiBjbGFzcyBKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9yIDogcHVi
bGljIERPTUNvbnN0cnVjdG9yT2JqZWN0IHsKIHByaXZhdGU6CiAgICAgSlNUZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7
Ci0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QqKTsK
KyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOwog
CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBET01Db25zdHJ1Y3Rvck9iamVjdCBCYXNlOwogICAgIHN0
YXRpYyBKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9yKiBjcmVhdGUoSlNDOjpWTSYg
dm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpCiAgICAgewogICAgICAgICBKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9y
KiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdEN1c3RvbU5hbWVk
R2V0dGVyQ29uc3RydWN0b3I+KHZtLmhlYXApKSBKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0
cnVjdG9yKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgcHRyLT5maW5pc2hDcmVh
dGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwg
Kmdsb2JhbE9iamVjdCk7CiAgICAgICAgIHJldHVybiBwdHI7CiAgICAgfQogCkBAIC0xMDYsNyAr
MTA2LDcgQEAgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3Rvcjo6SlNUZXN0Q3VzdG9t
TmFtZWRHZXR0ZXJDb25zdHJ1Y3RvcihTdHJ1Y3R1cmUKIHsKIH0KIAotdm9pZCBKU1Rlc3RDdXN0
b21OYW1lZEdldHRlckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29u
c3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2Jh
bE9iamVjdCkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGlu
aGVyaXRzKGluZm8oKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCmluZGV4
IGY2YTNjNjFiNzc1Y2MzMjQyNzk2MWU4Yjc5MzJiOTVlNmY0NjM4NGEuLmJjYTkyMjVmZDI1ZDc1
OTM5MjA1MTBmNWZhM2E1M2ExMGU1NjM5Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1
Y3Rvci5jcHAKQEAgLTY2LDE0ICs2NiwxNCBAQCBwcml2YXRlOgogY2xhc3MgSlNUZXN0RXZlbnRD
b25zdHJ1Y3RvckNvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9yT2JqZWN0IHsKIHBy
aXZhdGU6CiAgICAgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6U3RydWN0
dXJlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6
Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpW
TSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7CiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIERPTUNvbnN0
cnVjdG9yT2JqZWN0IEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdEV2ZW50Q29uc3RydWN0b3JDb25z
dHJ1Y3RvciogY3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHsKICAgICAgICAgSlNUZXN0RXZl
bnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2Nh
dGVDZWxsPEpTVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3Rvcj4odm0uaGVhcCkpIEpTVGVz
dEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCk7Ci0g
ICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCk7CisgICAgICAgIHB0
ci0+ZmluaXNoQ3JlYXRpb24odm0sICpnbG9iYWxPYmplY3QpOwogICAgICAgICByZXR1cm4gcHRy
OwogICAgIH0KIApAQCAtMTM1LDcgKzEzNSw3IEBAIEpTVGVzdEV2ZW50Q29uc3RydWN0b3JDb25z
dHJ1Y3Rvcjo6SlNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKFN0cnVjdHVyZSoKIHsK
IH0KIAotdm9pZCBKU1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgSlNUZXN0
RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9N
R2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24o
dm0pOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQu
Y3BwCmluZGV4IDgzYjMwY2Q0MGJkODJmOGY5YTljOTRkYTUzMGFiNGYzMmJhMTRhMGIuLjNiNDkw
NzNhNzc3ODdjY2ZiNDhiMzg0NDI0MDg3ZjU0MDdmZjhkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFy
Z2V0LmNwcApAQCAtNzYsMTQgKzc2LDE0IEBAIHByaXZhdGU6CiBjbGFzcyBKU1Rlc3RFdmVudFRh
cmdldENvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9yT2JqZWN0IHsKIHByaXZhdGU6
CiAgICAgSlNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihKU0M6OlN0cnVjdHVyZSosIEpTRE9N
R2xvYmFsT2JqZWN0Kik7Ci0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01H
bG9iYWxPYmplY3QqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RPTUds
b2JhbE9iamVjdCYpOwogCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBET01Db25zdHJ1Y3Rvck9iamVj
dCBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKiBjcmVhdGUo
SlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpCiAgICAgewogICAgICAgICBKU1Rlc3RFdmVudFRhcmdldENvbnN0cnVj
dG9yKiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdEV2ZW50VGFy
Z2V0Q29uc3RydWN0b3I+KHZtLmhlYXApKSBKU1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKHN0
cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwg
Z2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwgKmdsb2JhbE9i
amVjdCk7CiAgICAgICAgIHJldHVybiBwdHI7CiAgICAgfQogCkBAIC0xMTUsNyArMTE1LDcgQEAg
SlNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3Rvcjo6SlNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3Rv
cihTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwKIHsKIH0KIAotdm9pZCBKU1Rlc3RFdmVudFRhcmdldENv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCit2b2lkIEpTVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBCYXNl
OjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4
Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RXhjZXB0aW9uLmNwcAppbmRleCA0NGI2NzExYmU5MWFiNzg5ZWEyMTlhZDk1NjA1MjQ5YTBl
OTRmMDU0Li4xYWM2NDM5MzhiNWZhODgyMGNlMjFkNWM5OGFhN2I0NWYyYjlmNDE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RXhjZXB0aW9uLmNwcApAQCAtNjMsMTQgKzYzLDE0IEBAIHByaXZhdGU6CiBjbGFzcyBKU1Rl
c3RFeGNlcHRpb25Db25zdHJ1Y3RvciA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7CiBw
cml2YXRlOgogICAgIEpTVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6U3RydWN0dXJlKiwg
SlNET01HbG9iYWxPYmplY3QqKTsKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBK
U0RPTUdsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpT
RE9NR2xvYmFsT2JqZWN0Jik7CiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIERPTUNvbnN0cnVjdG9y
T2JqZWN0IEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKiBjcmVh
dGUoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgewogICAgICAgICBKU1Rlc3RFeGNlcHRpb25Db25zdHJ1
Y3RvciogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3RFeGNlcHRp
b25Db25zdHJ1Y3Rvcj4odm0uaGVhcCkpIEpTVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKHN0cnVj
dHVyZSwgZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xv
YmFsT2JqZWN0KTsKKyAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwgKmdsb2JhbE9iamVj
dCk7CiAgICAgICAgIHJldHVybiBwdHI7CiAgICAgfQogCkBAIC0xMDIsNyArMTAyLDcgQEAgSlNU
ZXN0RXhjZXB0aW9uQ29uc3RydWN0b3I6OkpTVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKFN0cnVj
dHVyZSogc3RydWN0dXJlLCBKU0QKIHsKIH0KIAotdm9pZCBKU1Rlc3RFeGNlcHRpb25Db25zdHJ1
Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQordm9pZCBKU1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0m
IHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIEJhc2U6OmZpbmlz
aENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJ
c1JlYWNoYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKaW5kZXggOTE3YjM4ZDc2MDBhZDM5ODU4YTFl
YWUxYTAxNThmYjI4NDFhNzZkMy4uZDQ0Y2U3MTA1ZjA1MDJmZTBlMTAzZDkxNDhkYmQ3NjJjMmM1
NTVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcApAQCAtNjAs
MTQgKzYwLDE0IEBAIHByaXZhdGU6CiBjbGFzcyBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29u
c3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0b3JPYmplY3QgewogcHJpdmF0ZToKICAgICBK
U1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RP
TUdsb2JhbE9iamVjdCopOwotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9N
R2xvYmFsT2JqZWN0Kik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01H
bG9iYWxPYmplY3QmKTsKIAogcHVibGljOgogICAgIHR5cGVkZWYgRE9NQ29uc3RydWN0b3JPYmpl
Y3QgQmFzZTsKICAgICBzdGF0aWMgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9y
KiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgewogICAgICAgICBKU1Rlc3RHZW5lcmF0ZUlz
UmVhY2hhYmxlQ29uc3RydWN0b3IqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNl
bGw8SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yPih2bS5oZWFwKSkgSlNUZXN0
R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsK
LSAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAg
cHRyLT5maW5pc2hDcmVhdGlvbih2bSwgKmdsb2JhbE9iamVjdCk7CiAgICAgICAgIHJldHVybiBw
dHI7CiAgICAgfQogCkBAIC04NSw3ICs4NSw3IEBAIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVD
b25zdHJ1Y3Rvcjo6SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKFN0cnVjCiB7
CiB9CiAKLXZvaWQgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yOjpmaW5pc2hD
cmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIEpT
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
LCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIEJhc2U6OmZpbmlzaENy
ZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZh
Y2UuY3BwCmluZGV4IDQ5OGM3M2ZjNzk0YWNiNWY0NjBlOTg0M2EyZTY4MDAxNjNhYTY0MDMuLjdk
Yzc4MjZkOWY3OWEyYzQ3ZjdjNTc4ZDdjYzYwYTk3NjRiOWIwMzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZh
Y2UuY3BwCkBAIC0xNDYsMTQgKzE0NiwxNCBAQCBwcml2YXRlOgogY2xhc3MgSlNUZXN0SW50ZXJm
YWNlQ29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0b3JPYmplY3QgewogcHJpdmF0ZToK
ICAgICBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xv
YmFsT2JqZWN0Kik7Ci0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01HbG9i
YWxPYmplY3QqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RPTUdsb2Jh
bE9iamVjdCYpOwogCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBET01Db25zdHJ1Y3Rvck9iamVjdCBC
YXNlOwogICAgIHN0YXRpYyBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvciogY3JlYXRlKEpTQzo6
Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQogICAgIHsKICAgICAgICAgSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IqIHB0
ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0SW50ZXJmYWNlQ29uc3Ry
dWN0b3I+KHZtLmhlYXApKSBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihzdHJ1Y3R1cmUsIGds
b2JhbE9iamVjdCk7Ci0gICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVj
dCk7CisgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sICpnbG9iYWxPYmplY3QpOwogICAg
ICAgICByZXR1cm4gcHRyOwogICAgIH0KIApAQCAtMjk0LDcgKzI5NCw3IEBAIEpTVGVzdEludGVy
ZmFjZUNvbnN0cnVjdG9yOjpKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgSlNECiB7CiB9CiAKLXZvaWQgSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3Zv
aWQgSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNE
T01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlv
bih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEpTQnVpbHRpbkNvbnN0cnVj
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RK
U0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAKaW5kZXggMzY1OWIyNGY3N2MxZTZiYTQyZWVkYTIwNTYy
NDFiY2NjZTFkZDA4Ni4uNDQ3NDlmYjA5OGYxZTM1YTM1MjkwYTc5MGRiZTg3ZDAzNjAzZmU2ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCkBAIC02MCwxNCAr
NjAsMTQgQEAgcHJpdmF0ZToKIGNsYXNzIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3Ry
dWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0b3JKU0J1aWx0aW5PYmplY3QgewogcHJpdmF0ZToK
ICAgICBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6U3RydWN0dXJl
KiwgSlNET01HbG9iYWxPYmplY3QqKTsKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0m
LCBKU0RPTUdsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYs
IEpTRE9NR2xvYmFsT2JqZWN0Jik7CiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIERPTUNvbnN0cnVj
dG9ySlNCdWlsdGluT2JqZWN0IEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdEpTQnVpbHRpbkNvbnN0
cnVjdG9yQ29uc3RydWN0b3IqIGNyZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICB7CiAgICAgICAg
IEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IqIHB0ciA9IG5ldyAoTm90TnVs
bCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3Rv
cj4odm0uaGVhcCkpIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3Ioc3RydWN0
dXJlLCBnbG9iYWxPYmplY3QpOwotICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9i
YWxPYmplY3QpOworICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCAqZ2xvYmFsT2JqZWN0
KTsKICAgICAgICAgcmV0dXJuIHB0cjsKICAgICB9CiAKQEAgLTk0LDcgKzk0LDcgQEAgSlNUZXN0
SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcjo6SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0
b3JDb25zdHJ1Y3RvcihTdHIKIHsKIH0KIAotdm9pZCBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rv
ckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCit2b2lkIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3I6
OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkK
IHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGlu
Zm8oKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCmlu
ZGV4IGJkZmYxNzYxZGE5ZmVlNDQ1MmE5MWJiNzRjY2ZkYmYzNDliMjZjYjAuLjI3ZTUxMWExMGIz
MDFhYzY2ZmQ3N2I0YzE5ZGIzYzEyYTQzZDY5Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKQEAgLTY3LDE0ICs2NywxNCBAQCBwcml2YXRlOgogY2xh
c3MgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yIDogcHVibGljIERPTUNv
bnN0cnVjdG9yT2JqZWN0IHsKIHByaXZhdGU6CiAgICAgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lckNvbnN0cnVjdG9yKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKLSAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCopOworICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7CiAKIHB1
YmxpYzoKICAgICB0eXBlZGVmIERPTUNvbnN0cnVjdG9yT2JqZWN0IEJhc2U7CiAgICAgc3RhdGlj
IEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3RvciogY3JlYXRlKEpTQzo6Vk0m
IHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KQogICAgIHsKICAgICAgICAgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0
cnVjdG9yKiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rvcj4odm0uaGVhcCkpIEpTVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXJDb25zdHJ1Y3RvcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCk7Ci0gICAgICAg
IHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCk7CisgICAgICAgIHB0ci0+Zmlu
aXNoQ3JlYXRpb24odm0sICpnbG9iYWxPYmplY3QpOwogICAgICAgICByZXR1cm4gcHRyOwogICAg
IH0KIApAQCAtOTIsNyArOTIsNyBAQCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3Ry
dWN0b3I6OkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3RvcgogewogfQogCi12
b2lkIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQordm9pZCBKU1Rlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
SlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVh
dGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkQ29uc3RydWN0b3IuY3BwCmluZGV4IGIxY2NlYmU0YWViNTQzNWU3M2I5YjIxYWU5MTMzYTc3
NGY2NjU3ZjYuLjYwOWY3ODUxYmM1MWI1N2ZkMGZlNzBlZTE0ZTM0MzUwZGVlZmY4OGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKQEAgLTYzLDE0ICs2MywxNCBAQCBwcml2
YXRlOgogY2xhc3MgSlNUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yIDogcHVibGljIERP
TUNvbnN0cnVjdG9yT2JqZWN0IHsKIHByaXZhdGU6CiAgICAgSlNUZXN0TmFtZWRDb25zdHJ1Y3Rv
ckNvbnN0cnVjdG9yKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKLSAgICB2
b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCopOworICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7CiAKIHB1Ymxp
YzoKICAgICB0eXBlZGVmIERPTUNvbnN0cnVjdG9yT2JqZWN0IEJhc2U7CiAgICAgc3RhdGljIEpT
VGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3RvciogY3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0M6
OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQog
ICAgIHsKICAgICAgICAgSlNUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKiBwdHIgPSBu
ZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdE5hbWVkQ29uc3RydWN0b3JDb25z
dHJ1Y3Rvcj4odm0uaGVhcCkpIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihzdHJ1
Y3R1cmUsIGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sIGds
b2JhbE9iamVjdCk7CisgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sICpnbG9iYWxPYmpl
Y3QpOwogICAgICAgICByZXR1cm4gcHRyOwogICAgIH0KIApAQCAtODgsNyArODgsNyBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JOYW1lZENvbnN0cnVjdG9yKiBj
cmVhdGUoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgewogICAgICAgICBKU1Rlc3ROYW1lZENvbnN0cnVj
dG9yTmFtZWRDb25zdHJ1Y3RvciogY29uc3RydWN0b3IgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxs
b2NhdGVDZWxsPEpTVGVzdE5hbWVkQ29uc3RydWN0b3JOYW1lZENvbnN0cnVjdG9yPih2bS5oZWFw
KSkgSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvck5hbWVkQ29uc3RydWN0b3Ioc3RydWN0dXJlLCBnbG9i
YWxPYmplY3QpOwotICAgICAgICBjb25zdHJ1Y3Rvci0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2Jh
bE9iamVjdCk7CisgICAgICAgIGNvbnN0cnVjdG9yLT5maW5pc2hDcmVhdGlvbih2bSwgKmdsb2Jh
bE9iamVjdCk7CiAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RvcjsKICAgICB9CiAKQEAgLTEwMyw3
ICsxMDMsNyBAQCBwcml2YXRlOgogICAgIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JOYW1lZENvbnN0
cnVjdG9yKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTVGVzdE5hbWVkQ29u
c3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqKTsKICAgICBzdGF0aWMgSlNDOjpDb25zdHJ1Y3RUeXBl
IGdldENvbnN0cnVjdERhdGEoSlNDOjpKU0NlbGwqLCBKU0M6OkNvbnN0cnVjdERhdGEmKTsKLSAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCopOworICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7CiB9Owog
CiBjb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yOjpzX2lu
Zm8gPSB7ICJUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yIiwgJkJhc2U6OnNfaW5mbywg
MCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3Ip
IH07CkBAIC0xMTMsNyArMTEzLDcgQEAgSlNUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9y
OjpKU1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3IoU3RydWN0dXJlKgogewogfQogCi12
b2lkIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0m
IHZtLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQordm9pZCBKU1Rlc3ROYW1lZENv
bnN0cnVjdG9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWxP
YmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAg
ICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwpAQCAtMTUyLDkgKzE1Miw5IEBAIEpTVGVzdE5h
bWVkQ29uc3RydWN0b3JOYW1lZENvbnN0cnVjdG9yOjpKU1Rlc3ROYW1lZENvbnN0cnVjdG9yTmFt
ZWRDb25zdHJ1Y3RvcihTCiB7CiB9CiAKLXZvaWQgSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvck5hbWVk
Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKK3ZvaWQgSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvck5hbWVkQ29uc3RydWN0b3I6
OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkK
IHsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QpOworICAgIEJhc2U6OmZp
bmlzaENyZWF0aW9uKCZnbG9iYWxPYmplY3QpOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkp
KTsKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNUZXN0
TmFtZWRDb25zdHJ1Y3Rvcjo6Z2V0UHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5uYW1lLCBqc05vbnRyaXZpYWxTdHJpbmcoJnZtLCBTdHJpbmcoQVNDSUlMaXRlcmFs
KCJBdWRpbyIpKSksIFJlYWRPbmx5IHwgRG9udEVudW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCmluZGV4IDBlOTBh
ZDA5NTA1ZWRiOWYyNDFjYWFiNzc3NzU5ZTlmYTRlMTU1YTIuLjRkNjc2ZDlkY2ZhNTg2NTA1NTNh
NGM3MGQzNDdhM2MyYmRlY2UwNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKQEAgLTY2LDE0ICs2NiwxNCBAQCBw
cml2YXRlOgogY2xhc3MgSlNUZXN0Tm9kZUNvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVj
dG9yT2JqZWN0IHsKIHByaXZhdGU6CiAgICAgSlNUZXN0Tm9kZUNvbnN0cnVjdG9yKEpTQzo6U3Ry
dWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpT
Qzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlND
OjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7CiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIERPTUNv
bnN0cnVjdG9yT2JqZWN0IEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdE5vZGVDb25zdHJ1Y3Rvciog
Y3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHsKICAgICAgICAgSlNUZXN0Tm9kZUNvbnN0cnVj
dG9yKiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdE5vZGVDb25z
dHJ1Y3Rvcj4odm0uaGVhcCkpIEpTVGVzdE5vZGVDb25zdHJ1Y3RvcihzdHJ1Y3R1cmUsIGdsb2Jh
bE9iamVjdCk7Ci0gICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCk7
CisgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sICpnbG9iYWxPYmplY3QpOwogICAgICAg
ICByZXR1cm4gcHRyOwogICAgIH0KIApAQCAtMTAxLDcgKzEwMSw3IEBAIEpTVGVzdE5vZGVDb25z
dHJ1Y3Rvcjo6SlNUZXN0Tm9kZUNvbnN0cnVjdG9yKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RP
TUdsb2JhbE9iCiB7CiB9CiAKLXZvaWQgSlNUZXN0Tm9kZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIEpTVGVz
dE5vZGVDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVj
dCYgZ2xvYmFsT2JqZWN0KQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBB
U1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5j
cHAKaW5kZXggYThjYTRlMTc5YjYyNDNiYmQ4NWEyNGMxNmIzZGQwNDNjMzI3ZWU4Yi4uODMzYWEz
OTJhZDk4YWZkYmFmODQ2YmZjZDBmMmMyOTBmOWU5ODg2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25k
ZXRlcm1pbmlzdGljLmNwcApAQCAtODMsMTQgKzgzLDE0IEBAIHByaXZhdGU6CiBjbGFzcyBKU1Rl
c3ROb25kZXRlcm1pbmlzdGljQ29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0b3JPYmpl
Y3QgewogcHJpdmF0ZToKICAgICBKU1Rlc3ROb25kZXRlcm1pbmlzdGljQ29uc3RydWN0b3IoSlND
OjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCopOwotICAgIHZvaWQgZmluaXNoQ3JlYXRp
b24oSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Kik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlv
bihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTsKIAogcHVibGljOgogICAgIHR5cGVkZWYg
RE9NQ29uc3RydWN0b3JPYmplY3QgQmFzZTsKICAgICBzdGF0aWMgSlNUZXN0Tm9uZGV0ZXJtaW5p
c3RpY0NvbnN0cnVjdG9yKiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgewogICAgICAgICBK
U1Rlc3ROb25kZXRlcm1pbmlzdGljQ29uc3RydWN0b3IqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlND
OjphbGxvY2F0ZUNlbGw8SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY0NvbnN0cnVjdG9yPih2bS5oZWFw
KSkgSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY0NvbnN0cnVjdG9yKHN0cnVjdHVyZSwgZ2xvYmFsT2Jq
ZWN0KTsKLSAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsKKyAg
ICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwgKmdsb2JhbE9iamVjdCk7CiAgICAgICAgIHJl
dHVybiBwdHI7CiAgICAgfQogCkBAIC0xMDgsNyArMTA4LDcgQEAgSlNUZXN0Tm9uZGV0ZXJtaW5p
c3RpY0NvbnN0cnVjdG9yOjpKU1Rlc3ROb25kZXRlcm1pbmlzdGljQ29uc3RydWN0b3IoU3RydWN0
dXJlKgogewogfQogCi12b2lkIEpTVGVzdE5vbmRldGVybWluaXN0aWNDb25zdHJ1Y3Rvcjo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQordm9p
ZCBKU1Rlc3ROb25kZXRlcm1pbmlzdGljQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBCYXNlOjpmaW5pc2hD
cmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRl
eCA4NzIzMzZlMTVjN2RmZTgxOTNmODk4NjlmM2YzMDg2ODRiNjY0ZmY2Li40MzVkZmE2MTM2ZDU5
YjczYzdhM2Q4Y2YzOThkMGViNTc4ODAxZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMzQ1LDE0ICszNDUs
MTQgQEAgcHJpdmF0ZToKIGNsYXNzIEpTVGVzdE9iakNvbnN0cnVjdG9yIDogcHVibGljIERPTUNv
bnN0cnVjdG9yT2JqZWN0IHsKIHByaXZhdGU6CiAgICAgSlNUZXN0T2JqQ29uc3RydWN0b3IoSlND
OjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCopOwotICAgIHZvaWQgZmluaXNoQ3JlYXRp
b24oSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Kik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlv
bihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTsKIAogcHVibGljOgogICAgIHR5cGVkZWYg
RE9NQ29uc3RydWN0b3JPYmplY3QgQmFzZTsKICAgICBzdGF0aWMgSlNUZXN0T2JqQ29uc3RydWN0
b3IqIGNyZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICB7CiAgICAgICAgIEpTVGVzdE9iakNvbnN0
cnVjdG9yKiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdE9iakNv
bnN0cnVjdG9yPih2bS5oZWFwKSkgSlNUZXN0T2JqQ29uc3RydWN0b3Ioc3RydWN0dXJlLCBnbG9i
YWxPYmplY3QpOwotICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmplY3Qp
OworICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCAqZ2xvYmFsT2JqZWN0KTsKICAgICAg
ICAgcmV0dXJuIHB0cjsKICAgICB9CiAKQEAgLTQ4Nyw3ICs0ODcsNyBAQCBKU1Rlc3RPYmpDb25z
dHJ1Y3Rvcjo6SlNUZXN0T2JqQ29uc3RydWN0b3IoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9N
R2xvYmFsT2JqZQogewogfQogCi12b2lkIEpTVGVzdE9iakNvbnN0cnVjdG9yOjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIEpTVGVz
dE9iakNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0
JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIEFT
U0VSVChpbmhlcml0cyhpbmZvKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzLmNwcAppbmRleCBlMWQxMzMxOTQwN2ZhYjFkOTk0MjM4NzliOTJkNmNiNmM1MDc5
M2E2Li5hZDM0NTlmMDE1NGY0MmY2NGM4Mjg2OTBhNDhhM2FkNjI3ZjRmYzYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9ycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCkBAIC02MywxNCArNjMsMTQg
QEAgcHJpdmF0ZToKIGNsYXNzIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rv
ciA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7CiBwcml2YXRlOgogICAgIEpTVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvcihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xv
YmFsT2JqZWN0Kik7Ci0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01HbG9i
YWxPYmplY3QqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RPTUdsb2Jh
bE9iamVjdCYpOwogCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBET01Db25zdHJ1Y3Rvck9iamVjdCBC
YXNlOwogICAgIHN0YXRpYyBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3Iq
IGNyZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICB7CiAgICAgICAgIEpTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnNDb25zdHJ1Y3RvciogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRl
Q2VsbDxKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3I+KHZtLmhlYXApKSBK
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3Ioc3RydWN0dXJlLCBnbG9iYWxP
YmplY3QpOwotICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmplY3QpOwor
ICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCAqZ2xvYmFsT2JqZWN0KTsKICAgICAgICAg
cmV0dXJuIHB0cjsKICAgICB9CiAKQEAgLTE3Myw3ICsxNzMsNyBAQCBKU1Rlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzQ29uc3RydWN0b3I6OkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25z
dHJ1Y3RvcgogewogfQogCi12b2lkIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1
Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQordm9pZCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3I6OmZpbmlz
aENyZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE92ZXJyaWRlQnVpbHRpbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuY3BwCmluZGV4IGRmMWM5NjU5M2IzMzFm
ZTE4MjAxZTA1YTBmN2U2YTRiZDY4NDQ2MGEuLjlhYTVhODdhY2U0Mjc0ZjYxYTc1Y2QyNGRhNjgz
MTU0ODg3Y2RmOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHAKQEAgLTY5
LDE0ICs2OSwxNCBAQCBwcml2YXRlOgogY2xhc3MgSlNUZXN0T3ZlcnJpZGVCdWlsdGluc0NvbnN0
cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9yT2JqZWN0IHsKIHByaXZhdGU6CiAgICAgSlNU
ZXN0T3ZlcnJpZGVCdWlsdGluc0NvbnN0cnVjdG9yKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9i
YWxPYmplY3QqKTsKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RPTUdsb2Jh
bE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9NR2xvYmFs
T2JqZWN0Jik7CiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIERPTUNvbnN0cnVjdG9yT2JqZWN0IEJh
c2U7CiAgICAgc3RhdGljIEpTVGVzdE92ZXJyaWRlQnVpbHRpbnNDb25zdHJ1Y3RvciogY3JlYXRl
KEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQogICAgIHsKICAgICAgICAgSlNUZXN0T3ZlcnJpZGVCdWlsdGluc0Nv
bnN0cnVjdG9yKiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdE92
ZXJyaWRlQnVpbHRpbnNDb25zdHJ1Y3Rvcj4odm0uaGVhcCkpIEpTVGVzdE92ZXJyaWRlQnVpbHRp
bnNDb25zdHJ1Y3RvcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIHB0ci0+Zmlu
aXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCk7CisgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRp
b24odm0sICpnbG9iYWxPYmplY3QpOwogICAgICAgICByZXR1cm4gcHRyOwogICAgIH0KIApAQCAt
MTA4LDcgKzEwOCw3IEBAIEpTVGVzdE92ZXJyaWRlQnVpbHRpbnNDb25zdHJ1Y3Rvcjo6SlNUZXN0
T3ZlcnJpZGVCdWlsdGluc0NvbnN0cnVjdG9yKFN0cnVjdHVyZSoKIHsKIH0KIAotdm9pZCBKU1Rl
c3RPdmVycmlkZUJ1aWx0aW5zQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgSlNUZXN0T3ZlcnJpZGVCdWlsdGlu
c0NvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBn
bG9iYWxPYmplY3QpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIEFTU0VS
VChpbmhlcml0cyhpbmZvKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKaW5kZXggYmFkZWEwY2EzNjdhZDEzYTgwYzlkN2Iz
MDA2NzIzOGVmZjRlNDNlYS4uNDY4MTJmZmE5NzBjMDM1MzhkNzUyNzExMDVkOTlhNjU4MGI3ZWUy
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZS5jcHAKQEAgLTc0LDE0ICs3NCwxNCBAQCBwcml2YXRlOgogY2xhc3MgSlNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3Ry
dWN0b3JPYmplY3QgewogcHJpdmF0ZToKICAgICBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7
Ci0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QqKTsK
KyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOwog
CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBET01Db25zdHJ1Y3Rvck9iamVjdCBCYXNlOwogICAgIHN0
YXRpYyBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvciogY3Jl
YXRlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHsKICAgICAgICAgSlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxv
Y2F0ZUNlbGw8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3I+
KHZtLmhlYXApKSBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rv
cihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24o
dm0sIGdsb2JhbE9iamVjdCk7CisgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sICpnbG9i
YWxPYmplY3QpOwogICAgICAgICByZXR1cm4gcHRyOwogICAgIH0KIApAQCAtOTksNyArOTksNyBA
QCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6SlNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZQogewogfQogCi12b2lkIEpTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIEpTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9N
R2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24o
dm0pOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCmlu
ZGV4IGM5ZWFlNDdlYzM4NTlkMjk0ODZjNzUxMDA2MzFiMTM2ZTc0ZjMwODEuLmU2YjJmYzBiYWZm
NDE4NzdmYTg2YTM0Mjg2ZGM4MzZlYjcyMzVmMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcApAQCAt
MTAwLDE0ICsxMDAsMTQgQEAgcHJpdmF0ZToKIGNsYXNzIEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0
b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0b3JPYmplY3QgewogcHJpdmF0ZToKICAgICBKU1Rlc3RU
eXBlZGVmc0NvbnN0cnVjdG9yKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QqKTsK
LSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCopOwor
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7CiAK
IHB1YmxpYzoKICAgICB0eXBlZGVmIERPTUNvbnN0cnVjdG9yT2JqZWN0IEJhc2U7CiAgICAgc3Rh
dGljIEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IqIGNyZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAg
ICB7CiAgICAgICAgIEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IqIHB0ciA9IG5ldyAoTm90TnVs
bCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0VHlwZWRlZnNDb25zdHJ1Y3Rvcj4odm0uaGVhcCkp
IEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3Ioc3RydWN0dXJlLCBnbG9iYWxPYmplY3QpOwotICAg
ICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmplY3QpOworICAgICAgICBwdHIt
PmZpbmlzaENyZWF0aW9uKHZtLCAqZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgcmV0dXJuIHB0cjsK
ICAgICB9CiAKQEAgLTE2NCw3ICsxNjQsNyBAQCBKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yOjpK
U1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTQogewog
fQogCi12b2lkIEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgSlNUZXN0VHlwZWRlZnND
b25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xv
YmFsT2JqZWN0KQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQo
aW5oZXJpdHMoaW5mbygpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcAppbmRleCA4OWM2ZDFhNTQ2NzgzOWY1YmUy
NWE0ZDdmNzk5NzZiMWE2YmE4NTE1Li5mMmM1NzMxZWZlYzZjODNiOTYwMzY5NWEzNTEyZTQ2MTQ4
NGYxYjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNhdHRyaWJ1dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHAKQEAgLTYzLDE0ICs2MywxNCBAQCBwcml2YXRlOgogY2xh
c3MgSlNhdHRyaWJ1dGVDb25zdHJ1Y3RvciA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7
CiBwcml2YXRlOgogICAgIEpTYXR0cmlidXRlQ29uc3RydWN0b3IoSlNDOjpTdHJ1Y3R1cmUqLCBK
U0RPTUdsb2JhbE9iamVjdCopOwotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpT
RE9NR2xvYmFsT2JqZWN0Kik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNE
T01HbG9iYWxPYmplY3QmKTsKIAogcHVibGljOgogICAgIHR5cGVkZWYgRE9NQ29uc3RydWN0b3JP
YmplY3QgQmFzZTsKICAgICBzdGF0aWMgSlNhdHRyaWJ1dGVDb25zdHJ1Y3RvciogY3JlYXRlKEpT
Qzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQogICAgIHsKICAgICAgICAgSlNhdHRyaWJ1dGVDb25zdHJ1Y3RvciogcHRy
ID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU2F0dHJpYnV0ZUNvbnN0cnVjdG9y
Pih2bS5oZWFwKSkgSlNhdHRyaWJ1dGVDb25zdHJ1Y3RvcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVj
dCk7Ci0gICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCk7CisgICAg
ICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sICpnbG9iYWxPYmplY3QpOwogICAgICAgICByZXR1
cm4gcHRyOwogICAgIH0KIApAQCAtODgsNyArODgsNyBAQCBKU2F0dHJpYnV0ZUNvbnN0cnVjdG9y
OjpKU2F0dHJpYnV0ZUNvbnN0cnVjdG9yKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2Jh
bAogewogfQogCi12b2lkIEpTYXR0cmlidXRlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgSlNhdHRyaWJ1dGVD
b25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xv
YmFsT2JqZWN0KQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQo
aW5oZXJpdHMoaW5mbygpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAKaW5kZXggNjczZDNjZjljYjZmZWIxMjVhODli
YTBjMWU5ODJjZjY1MWFhMWY1MC4uZjQ0OGY1NTMyNzkyODE1NWNhMGQ2ZGFjNGJmY2M5NDEzZThj
MzI5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTcmVhZG9ubHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU3JlYWRvbmx5LmNwcApAQCAtNjAsMTQgKzYwLDE0IEBAIHByaXZhdGU6CiBjbGFzcyBK
U3JlYWRvbmx5Q29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0b3JPYmplY3QgewogcHJp
dmF0ZToKICAgICBKU3JlYWRvbmx5Q29uc3RydWN0b3IoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUds
b2JhbE9iamVjdCopOwotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9NR2xv
YmFsT2JqZWN0Kik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01HbG9i
YWxPYmplY3QmKTsKIAogcHVibGljOgogICAgIHR5cGVkZWYgRE9NQ29uc3RydWN0b3JPYmplY3Qg
QmFzZTsKICAgICBzdGF0aWMgSlNyZWFkb25seUNvbnN0cnVjdG9yKiBjcmVhdGUoSlNDOjpWTSYg
dm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpCiAgICAgewogICAgICAgICBKU3JlYWRvbmx5Q29uc3RydWN0b3IqIHB0ciA9IG5ldyAo
Tm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNyZWFkb25seUNvbnN0cnVjdG9yPih2bS5oZWFw
KSkgSlNyZWFkb25seUNvbnN0cnVjdG9yKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsKLSAgICAg
ICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcHRyLT5m
aW5pc2hDcmVhdGlvbih2bSwgKmdsb2JhbE9iamVjdCk7CiAgICAgICAgIHJldHVybiBwdHI7CiAg
ICAgfQogCkBAIC04NSw3ICs4NSw3IEBAIEpTcmVhZG9ubHlDb25zdHJ1Y3Rvcjo6SlNyZWFkb25s
eUNvbnN0cnVjdG9yKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iCiB7CiB9CiAK
LXZvaWQgSlNyZWFkb25seUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIEpTcmVhZG9ubHlDb25zdHJ1Y3Rvcjo6
ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQog
ewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoaW5m
bygpKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262533</attachid>
            <date>2015-10-06 12:08:03 -0700</date>
            <delta_ts>2015-10-06 12:18:05 -0700</delta_ts>
            <desc>Resetting binding tests</desc>
            <filename>bug-149838-20151006210730.patch</filename>
            <type>text/plain</type>
            <size>55152</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwNjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmI3MzM4OGM5MmM4ZDRi
NWQ1YzhmODhkY2Y0ZjRjOTY2MjVhNWUwMy4uMjE0NGI4MmZkOTVhNGE4N2QzOGVjYjdkM2Q2N2Uy
ZDRmZGFmNjQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg0IEBACisyMDE1LTEwLTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgQmluZGlu
ZyBnZW5lcmF0b3IgWFhDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24gc2hvdWxkIHRha2UgcmVm
ZXJlbmNlcyBhcyBwYXJhbWV0ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDk4MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBVcGRhdGVkIHRoZSBiaW5kaW5nIGdlbmVyYXRvciBzbyB0aGF0IFhYQ29u
c3RydWN0b3I6OmZpbmlzaENyZWF0aW9uCisgICAgICAgIHRha2VzIGEgSlNET01HbG9iYWxPYmpl
Y3QmIGluIGxpZXUgb2YgYSBKU0RPTUdsb2JhbE9iamVjdCouCisKKyAgICAgICAgQ292ZXJlZCBi
eSByZWJhc2VkIGJpbmRpbmcgdGVzdHMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlQ29uc3RydWN0b3JEZWNsYXJhdGlv
bik6CisgICAgICAgIChHZW5lcmF0ZUNvbnN0cnVjdG9ySGVscGVyTWV0aG9kcyk6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1Rlc3RBY3RpdmVET01PYmplY3RDb25zdHJ1Y3Rvcjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEFjdGl2ZURPTU9iamVjdENvbnN0cnVjdG9yOjpm
aW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dENhbGxiYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdENhbGxiYWNrQ29uc3RydWN0
b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDYWxsYmFja0NvbnN0cnVjdG9y
OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Q29u
c3RydWN0b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDdXN0b21Db25zdHJ1
Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0
b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3I6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yOjpmaW5pc2hD
cmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2Vw
dGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3Rvcjo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yOjpm
aW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0R2VuZXJh
dGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEpTQnVpbHRpbkNvbnN0
cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9y
Q29uc3RydWN0b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RKU0J1aWx0aW5D
b25zdHJ1Y3RvckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvck5hbWVkQ29uc3RydWN0b3I6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3I6OmZpbmlzaENy
ZWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVkQ29uc3RydWN0b3JOYW1lZENv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0Tm9kZUNvbnN0
cnVjdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0Tm9kZUNvbnN0cnVjdG9y
OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5vbmRldGVybWluaXN0aWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0Tm9uZGV0
ZXJtaW5pc3RpY0NvbnN0cnVjdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
Tm9uZGV0ZXJtaW5pc3RpY0NvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVz
dE9iakNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVj
dG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T3Zl
cnJpZGVCdWlsdGluc0NvbnN0cnVjdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0T3ZlcnJpZGVCdWlsdGluc0NvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlv
bik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3I6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yOjpmaW5pc2hDcmVh
dGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTYXR0cmlidXRlQ29uc3RydWN0b3I6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU2F0dHJpYnV0ZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNyZWFkb25seUNvbnN0cnVjdG9yOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6SlNyZWFkb25seUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisKIDIwMTUt
MTAtMDYgIERhbmllbCBCYXRlcyAgPGRiYXRlc0B3ZWJraXQub3JnPgogCiAgICAgICAgIEVuYWJs
ZSBYU0xUIHdoZW4gYnVpbGRpbmcgV2ViS2l0IGZvciBpT1MgdXNpbmcgdGhlIHB1YmxpYyBpT1Mg
U0RLCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCmluZGV4IDhjODA3N2VlMzFiNDlmZjQwODBiNWYyM2RjNGVmNWUxZWNmOTVjNmMuLmJk
YTY2OWE1MDE5ZmFlZTVlOTk0ZWQ4MDY1ZmRlOWI4NWI0NTlkYmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC00NjA3LDE0
ICs0NjA3LDE0IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVjbGFyYXRpb24KICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICJjbGFzcyAke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfSA6IHB1YmxpYyAi
IC4gJHBhcmVudENsYXNzTmFtZSAuICIge1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
cHJpdmF0ZTpcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAke2NvbnN0cnVjdG9y
Q2xhc3NOYW1lfShKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7XG4iKTsKLSAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwg
SlNET01HbG9iYWxPYmplY3QqKTtcblxuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7XG5cbiIp
OwogCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAicHVibGljOlxuIik7CiAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIHR5cGVkZWYgIiAuICRwYXJlbnRDbGFzc05hbWUgLiAiIEJhc2U7XG4i
KTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgc3RhdGljICRjb25zdHJ1Y3RvckNsYXNz
TmFtZSogY3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiICAgIHtcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgJGNvbnN0cnVj
dG9yQ2xhc3NOYW1lKiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPCRjb25z
dHJ1Y3RvckNsYXNzTmFtZT4odm0uaGVhcCkpICRjb25zdHJ1Y3RvckNsYXNzTmFtZShzdHJ1Y3R1
cmUsIGdsb2JhbE9iamVjdCk7XG4iKTsKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAg
IHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCk7XG4iKTsKKyAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sICpnbG9iYWxPYmpl
Y3QpO1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gcHRyO1xu
Iik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIH1cblxuIik7CiAKQEAgLTQ2NTQsNyAr
NDY1NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSlMke2ludGVyZmFjZU5hbWV9TmFtZWRDb25z
dHJ1Y3RvciogY3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHsKICAgICAgICAgSlMke2ludGVy
ZmFjZU5hbWV9TmFtZWRDb25zdHJ1Y3RvciogY29uc3RydWN0b3IgPSBuZXcgKE5vdE51bGwsIEpT
Qzo6YWxsb2NhdGVDZWxsPEpTJHtpbnRlcmZhY2VOYW1lfU5hbWVkQ29uc3RydWN0b3I+KHZtLmhl
YXApKSBKUyR7aW50ZXJmYWNlTmFtZX1OYW1lZENvbnN0cnVjdG9yKHN0cnVjdHVyZSwgZ2xvYmFs
T2JqZWN0KTsKLSAgICAgICAgY29uc3RydWN0b3ItPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxP
YmplY3QpOworICAgICAgICBjb25zdHJ1Y3Rvci0+ZmluaXNoQ3JlYXRpb24odm0sICpnbG9iYWxP
YmplY3QpOwogICAgICAgICByZXR1cm4gY29uc3RydWN0b3I7CiAgICAgfQogCkBAIC00NjY5LDcg
KzQ2NjksNyBAQCBwcml2YXRlOgogICAgIEpTJHtpbnRlcmZhY2VOYW1lfU5hbWVkQ29uc3RydWN0
b3IoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlMke2ludGVyZmFjZU5hbWV9
KEpTQzo6RXhlY1N0YXRlKik7CiAgICAgc3RhdGljIEpTQzo6Q29uc3RydWN0VHlwZSBnZXRDb25z
dHJ1Y3REYXRhKEpTQzo6SlNDZWxsKiwgSlNDOjpDb25zdHJ1Y3REYXRhJik7Ci0gICAgdm9pZCBm
aW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QqKTsKKyAgICB2b2lkIGZp
bmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOwogfTsKIAogRU5ECkBA
IC00OTc2LDExICs0OTc2LDExIEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9ySGVscGVyTWV0aG9k
cwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIn1cblxuIik7CiAKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ2b2lkICR7Y29uc3RydWN0
b3JDbGFzc05hbWV9OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpXG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ2b2lkICR7Y29uc3Ry
dWN0b3JDbGFzc05hbWV9OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0
JiBnbG9iYWxPYmplY3QpXG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7XG4iKTsKIAog
ICAgIGlmICgkZ2VuZXJhdGluZ05hbWVkQ29uc3RydWN0b3IpIHsKLSAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7XG4iKTsK
KyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKCZn
bG9iYWxPYmplY3QpO1xuIik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTtcbiIpOwogICAgIH0KQEAgLTQ5OTAs
MTEgKzQ5OTAsMTEgQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0b3JIZWxwZXJNZXRob2RzCiAgICAg
IyBvZiB3aGV0aGVyIHRoZSBpbnRlcmZhY2Ugd2FzIGRlY2xhcmVkIHdpdGggdGhlIFtOb0ludGVy
ZmFjZU9iamVjdF0gZXh0ZW5kZWQgYXR0cmlidXRlLgogICAgICMgaHR0cHM6Ly9oZXljYW0uZ2l0
aHViLmlvL3dlYmlkbC8jaW50ZXJmYWNlLXByb3RvdHlwZS1vYmplY3QKICAgICBpZiAoSXNET01H
bG9iYWxPYmplY3QoJGludGVyZmFjZSkpIHsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBnbG9iYWxPYmpl
Y3QtPnByb3RvdHlwZSgpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7XG4iKTsK
KyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+cHJvdG90eXBlLCBnbG9iYWxPYmplY3QucHJvdG90eXBlKCksIERvbnREZWxldGUg
fCBSZWFkT25seSB8IERvbnRFbnVtKTtcbiIpOwogICAgIH0gZWxzaWYgKCRpbnRlcmZhY2UtPmlz
Q2FsbGJhY2spIHsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFVOVVNFRF9QQVJB
TShnbG9iYWxPYmplY3QpO1xuIik7CiAgICAgfSBlbHNlIHsKLSAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsICR7
Y2xhc3NOYW1lfTo6Z2V0UHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwg
UmVhZE9ubHkgfCBEb250RW51bSk7XG4iKTsKKyAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIg
ICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsICR7Y2xhc3NOYW1l
fTo6Z2V0UHJvdG90eXBlKHZtLCAmZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
IHwgRG9udEVudW0pO1xuIik7CiAgICAgfQogCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bmFtZSwganNOb250cml2aWFsU3RyaW5n
KCZ2bSwgU3RyaW5nKEFTQ0lJTGl0ZXJhbChcIiR2aXNpYmxlSW50ZXJmYWNlTmFtZVwiKSkpLCBS
ZWFkT25seSB8IERvbnRFbnVtKTtcbiIpOwpAQCAtNTAwOSw3ICs1MDA5LDcgQEAgc3ViIEdlbmVy
YXRlQ29uc3RydWN0b3JIZWxwZXJNZXRob2RzCiAKICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkpTQnVpbHRpbkNvbnN0cnVjdG9yIn0pIHsKICAgICAgICAgbXkgJGlu
aXRpYWxpemVGdW5jdGlvbk5hbWUgPSBHZXRKU0J1aWx0aW5GdW5jdGlvbk5hbWUoJHtjbGFzc05h
bWV9LCAiaW5pdGlhbGl6ZSIgLiAke2ludGVyZmFjZU5hbWV9KTsKLSAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIHNldEluaXRpYWxpemVGdW5jdGlvbih2bSwgKkpTQzo6SlNGdW5jdGlv
bjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCAke2luaXRpYWxpemVGdW5jdGlvbk5hbWV9KHZt
KSwgZ2xvYmFsT2JqZWN0KSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IHNldEluaXRpYWxpemVGdW5jdGlvbih2bSwgKkpTQzo6SlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRp
bkZ1bmN0aW9uKHZtLCAke2luaXRpYWxpemVGdW5jdGlvbk5hbWV9KHZtKSwgJmdsb2JhbE9iamVj
dCkpO1xuIik7CiAgICAgfQogCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RB
Y3RpdmVET01PYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKaW5kZXggYTE2ODA4ODhjOWNmNjk0NWZmMmMy
ZDc1OTNmMmZkYjE3MjBmNTEzNi4uMDI1ODQ0YmJkZjVlYTExYjE0OGNiMjM4ZmIyM2RkYzk1ZmI0
M2NlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKQEAgLTY5LDE0ICs2OSwx
NCBAQCBwcml2YXRlOgogY2xhc3MgSlNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3IgOiBw
dWJsaWMgRE9NQ29uc3RydWN0b3JPYmplY3QgewogcHJpdmF0ZToKICAgICBKU1Rlc3RBY3RpdmVE
T01PYmplY3RDb25zdHJ1Y3RvcihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7
Ci0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QqKTsK
KyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOwog
CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBET01Db25zdHJ1Y3Rvck9iamVjdCBCYXNlOwogICAgIHN0
YXRpYyBKU1Rlc3RBY3RpdmVET01PYmplY3RDb25zdHJ1Y3RvciogY3JlYXRlKEpTQzo6Vk0mIHZt
LCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQogICAgIHsKICAgICAgICAgSlNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3IqIHB0
ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0QWN0aXZlRE9NT2JqZWN0
Q29uc3RydWN0b3I+KHZtLmhlYXApKSBKU1Rlc3RBY3RpdmVET01PYmplY3RDb25zdHJ1Y3Rvcihz
dHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0s
IGdsb2JhbE9iamVjdCk7CisgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sICpnbG9iYWxP
YmplY3QpOwogICAgICAgICByZXR1cm4gcHRyOwogICAgIH0KIApAQCAtMTExLDExICsxMTEsMTEg
QEAgSlNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3I6OkpTVGVzdEFjdGl2ZURPTU9iamVj
dENvbnN0cnVjdG9yKFN0cnVjdHVyZSogc3QKIHsKIH0KIAotdm9pZCBKU1Rlc3RBY3RpdmVET01P
YmplY3RDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQordm9pZCBKU1Rlc3RBY3RpdmVET01PYmplY3RDb25zdHJ1Y3Rvcjo6
ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQog
ewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoaW5m
bygpKSk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpT
VGVzdEFjdGl2ZURPTU9iamVjdDo6Z2V0UHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QpLCBEb250
RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdEFjdGl2ZURPTU9iamVjdDo6Z2V0UHJvdG90eXBl
KHZtLCAmZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwog
ICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bmFtZSwganNOb250cml2aWFsU3Ry
aW5nKCZ2bSwgU3RyaW5nKEFTQ0lJTGl0ZXJhbCgiVGVzdEFjdGl2ZURPTU9iamVjdCIpKSksIFJl
YWRPbmx5IHwgRG9udEVudW0pOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+
bGVuZ3RoLCBqc051bWJlcigwKSwgUmVhZE9ubHkgfCBEb250RW51bSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2su
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxi
YWNrLmNwcAppbmRleCA3Yjc1NzFjYmVhNWZmMzlhNjNhYjY3MzBiZDlkZDI0NmY3ODRmZGQ4Li44
ODBkMjE3MGEyNDczNzc3MDVkMjlhNjFmMzg1NTk4MTdlYzEzYTI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2suY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFj
ay5jcHAKQEAgLTYyLDE0ICs2MiwxNCBAQCBKU1Rlc3RDYWxsYmFjazo6fkpTVGVzdENhbGxiYWNr
KCkKIGNsYXNzIEpTVGVzdENhbGxiYWNrQ29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0
b3JPYmplY3QgewogcHJpdmF0ZToKICAgICBKU1Rlc3RDYWxsYmFja0NvbnN0cnVjdG9yKEpTQzo6
U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9u
KEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
SlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7CiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIERP
TUNvbnN0cnVjdG9yT2JqZWN0IEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdENhbGxiYWNrQ29uc3Ry
dWN0b3IqIGNyZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICB7CiAgICAgICAgIEpTVGVzdENhbGxi
YWNrQ29uc3RydWN0b3IqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNU
ZXN0Q2FsbGJhY2tDb25zdHJ1Y3Rvcj4odm0uaGVhcCkpIEpTVGVzdENhbGxiYWNrQ29uc3RydWN0
b3Ioc3RydWN0dXJlLCBnbG9iYWxPYmplY3QpOwotICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9u
KHZtLCBnbG9iYWxPYmplY3QpOworICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCAqZ2xv
YmFsT2JqZWN0KTsKICAgICAgICAgcmV0dXJuIHB0cjsKICAgICB9CiAKQEAgLTk5LDcgKzk5LDcg
QEAgSlNUZXN0Q2FsbGJhY2tDb25zdHJ1Y3Rvcjo6SlNUZXN0Q2FsbGJhY2tDb25zdHJ1Y3RvcihT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET00KIHsKIH0KIAotdm9pZCBKU1Rlc3RDYWxsYmFja0Nv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCit2b2lkIEpTVGVzdENhbGxiYWNrQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9u
KFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBCYXNlOjpm
aW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3Rv
bUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVy
ZmFjZU9iamVjdC5jcHAKaW5kZXggM2MxZTg4Mzk2MGU4MDJmOTMyMjY0NjlhMjJlYzZmMTE3YTAx
YjUwMC4uODlhOGVhMzJkZGRkZmY1OWFkM2Q1ZDIwZmQ4NmVjMjczNjAwMzU1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNv
bnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRl
cmZhY2VPYmplY3QuY3BwCkBAIC02MCwxNCArNjAsMTQgQEAgcHJpdmF0ZToKIGNsYXNzIEpTVGVz
dEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3IgOiBwdWJs
aWMgRE9NQ29uc3RydWN0b3JPYmplY3QgewogcHJpdmF0ZToKICAgICBKU1Rlc3RDdXN0b21Db25z
dHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yKEpTQzo6U3RydWN0dXJlKiwg
SlNET01HbG9iYWxPYmplY3QqKTsKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBK
U0RPTUdsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpT
RE9NR2xvYmFsT2JqZWN0Jik7CiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIERPTUNvbnN0cnVjdG9y
T2JqZWN0IEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50
ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3IqIGNyZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICB7CiAg
ICAgICAgIEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Q29uc3Ry
dWN0b3IqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0Q3VzdG9t
Q29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3Rvcj4odm0uaGVhcCkpIEpT
VGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3Ioc3Ry
dWN0dXJlLCBnbG9iYWxPYmplY3QpOwotICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCBn
bG9iYWxPYmplY3QpOworICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCAqZ2xvYmFsT2Jq
ZWN0KTsKICAgICAgICAgcmV0dXJuIHB0cjsKICAgICB9CiAKQEAgLTg2LDExICs4NiwxMSBAQCBK
U1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yOjpK
U1Rlc3RDdXN0b21Db25zdHJ1Y3RvcgogewogfQogCi12b2lkIEpTVGVzdEN1c3RvbUNvbnN0cnVj
dG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgSlNUZXN0Q3VzdG9tQ29u
c3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIEJhc2U6OmZp
bmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgcHV0
RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdEN1c3RvbUNvbnN0
cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0OjpnZXRQcm90b3R5cGUodm0sIGdsb2JhbE9iamVj
dCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3Qodm0s
IHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRo
Tm9JbnRlcmZhY2VPYmplY3Q6OmdldFByb3RvdHlwZSh2bSwgJmdsb2JhbE9iamVjdCksIERvbnRE
ZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPm5hbWUsIGpzTm9udHJpdmlhbFN0cmluZygmdm0sIFN0cmluZyhBU0NJSUxpdGVy
YWwoIlRlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdCIpKSksIFJlYWRP
bmx5IHwgRG9udEVudW0pOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVu
Z3RoLCBqc051bWJlcigwKSwgUmVhZE9ubHkgfCBEb250RW51bSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEN1c3RvbU5hbWVkR2V0dGVyLmNwcAppbmRleCA2ZDI1MzM4MThiNzY0MTUwM2ZmOGU2OWI0ZjA4
OTQ5ZTM3NmNiMDM1Li5iNjI2ZTQxOTE5MmE1NGVlMTFjZTNhNDM1OGVjOWEyOWY2MTJmOWUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKQEAgLTY3LDE0ICs2NywxNCBA
QCBwcml2YXRlOgogY2xhc3MgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3RvciA6IHB1
YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7CiBwcml2YXRlOgogICAgIEpTVGVzdEN1c3RvbU5h
bWVkR2V0dGVyQ29uc3RydWN0b3IoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCop
OwotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Kik7
CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTsK
IAogcHVibGljOgogICAgIHR5cGVkZWYgRE9NQ29uc3RydWN0b3JPYmplY3QgQmFzZTsKICAgICBz
dGF0aWMgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3RvciogY3JlYXRlKEpTQzo6Vk0m
IHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KQogICAgIHsKICAgICAgICAgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3Rv
ciogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3RDdXN0b21OYW1l
ZEdldHRlckNvbnN0cnVjdG9yPih2bS5oZWFwKSkgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25z
dHJ1Y3RvcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIHB0ci0+ZmluaXNoQ3Jl
YXRpb24odm0sIGdsb2JhbE9iamVjdCk7CisgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0s
ICpnbG9iYWxPYmplY3QpOwogICAgICAgICByZXR1cm4gcHRyOwogICAgIH0KIApAQCAtMTA2LDEx
ICsxMDYsMTEgQEAgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3Rvcjo6SlNUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3RvcihTdHJ1Y3R1cmUKIHsKIH0KIAotdm9pZCBKU1Rlc3RD
dXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVy
Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QmIGds
b2JhbE9iamVjdCkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJU
KGluaGVyaXRzKGluZm8oKSkpOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+
cHJvdG90eXBlLCBKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6Z2V0UHJvdG90eXBlKHZtLCBnbG9i
YWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CisgICAgcHV0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdEN1c3RvbU5hbWVkR2V0
dGVyOjpnZXRQcm90b3R5cGUodm0sICZnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9u
bHkgfCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5uYW1l
LCBqc05vbnRyaXZpYWxTdHJpbmcoJnZtLCBTdHJpbmcoQVNDSUlMaXRlcmFsKCJUZXN0Q3VzdG9t
TmFtZWRHZXR0ZXIiKSkpLCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAgICBwdXREaXJlY3Qodm0s
IHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIFJlYWRPbmx5IHwgRG9udEVu
dW0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCmluZGV4IGY2YTNjNjFi
Nzc1Y2MzMjQyNzk2MWU4Yjc5MzJiOTVlNmY0NjM4NGEuLjlkZTUxN2RmNWZhMjNlMTk1MmIyZTAz
ZDlmMzUwYTk5NWJiNzczNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAK
QEAgLTY2LDE0ICs2NiwxNCBAQCBwcml2YXRlOgogY2xhc3MgSlNUZXN0RXZlbnRDb25zdHJ1Y3Rv
ckNvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9yT2JqZWN0IHsKIHByaXZhdGU6CiAg
ICAgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6U3RydWN0dXJlKiwgSlNE
T01HbG9iYWxPYmplY3QqKTsKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RP
TUdsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9N
R2xvYmFsT2JqZWN0Jik7CiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIERPTUNvbnN0cnVjdG9yT2Jq
ZWN0IEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3Rvciog
Y3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHsKICAgICAgICAgSlNUZXN0RXZlbnRDb25zdHJ1
Y3RvckNvbnN0cnVjdG9yKiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpT
VGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3Rvcj4odm0uaGVhcCkpIEpTVGVzdEV2ZW50Q29u
c3RydWN0b3JDb25zdHJ1Y3RvcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIHB0
ci0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCk7CisgICAgICAgIHB0ci0+ZmluaXNo
Q3JlYXRpb24odm0sICpnbG9iYWxPYmplY3QpOwogICAgICAgICByZXR1cm4gcHRyOwogICAgIH0K
IApAQCAtMTM1LDExICsxMzUsMTEgQEAgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9y
OjpKU1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoU3RydWN0dXJlKgogewogfQogCi12
b2lkIEpTVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0m
IHZtLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQordm9pZCBKU1Rlc3RFdmVudENv
bnN0cnVjdG9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWxP
YmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAg
ICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RFdmVudENvbnN0cnVjdG9yOjpnZXRQcm90b3R5cGUo
dm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKKyAg
ICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNUZXN0RXZlbnRD
b25zdHJ1Y3Rvcjo6Z2V0UHJvdG90eXBlKHZtLCAmZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5IHwgRG9udEVudW0pOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+bmFtZSwganNOb250cml2aWFsU3RyaW5nKCZ2bSwgU3RyaW5nKEFTQ0lJTGl0ZXJhbCgiVGVz
dEV2ZW50Q29uc3RydWN0b3IiKSkpLCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAgICBwdXREaXJl
Y3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFJlYWRPbmx5IHwg
RG9udEVudW0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKaW5kZXggODNiMzBjZDQwYmQ4
MmY4ZjlhOWM5NGRhNTMwYWI0ZjMyYmExNGEwYi4uNWQ5MTJmMzFmMWFlNGZiM2U4NzM4YjdjOGIx
OGRjYTY0NGUwNWE2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCkBAIC03NiwxNCArNzYs
MTQgQEAgcHJpdmF0ZToKIGNsYXNzIEpTVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IgOiBwdWJs
aWMgRE9NQ29uc3RydWN0b3JPYmplY3QgewogcHJpdmF0ZToKICAgICBKU1Rlc3RFdmVudFRhcmdl
dENvbnN0cnVjdG9yKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKLSAgICB2
b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCopOworICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7CiAKIHB1Ymxp
YzoKICAgICB0eXBlZGVmIERPTUNvbnN0cnVjdG9yT2JqZWN0IEJhc2U7CiAgICAgc3RhdGljIEpT
VGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IqIGNyZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICB7
CiAgICAgICAgIEpTVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IqIHB0ciA9IG5ldyAoTm90TnVs
bCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3Rvcj4odm0uaGVh
cCkpIEpTVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3Ioc3RydWN0dXJlLCBnbG9iYWxPYmplY3Qp
OwotICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmplY3QpOworICAgICAg
ICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCAqZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgcmV0dXJu
IHB0cjsKICAgICB9CiAKQEAgLTExNSwxMSArMTE1LDExIEBAIEpTVGVzdEV2ZW50VGFyZ2V0Q29u
c3RydWN0b3I6OkpTVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IoU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsCiB7CiB9CiAKLXZvaWQgSlNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQordm9pZCBKU1Rl
c3RFdmVudFRhcmdldENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xv
YmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0p
OwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnBy
b3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNUZXN0RXZlbnRUYXJnZXQ6OmdldFByb3RvdHlwZSh2
bSwgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOworICAg
IHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RFdmVudFRh
cmdldDo6Z2V0UHJvdG90eXBlKHZtLCAmZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5IHwgRG9udEVudW0pOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bmFt
ZSwganNOb250cml2aWFsU3RyaW5nKCZ2bSwgU3RyaW5nKEFTQ0lJTGl0ZXJhbCgiVGVzdEV2ZW50
VGFyZ2V0IikpKSwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBSZWFkT25seSB8IERvbnRFbnVtKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFeGNlcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKaW5kZXggNDRiNjcxMWJlOTFhYjc4OWVhMjE5YWQ5NTYw
NTI0OWEwZTk0ZjA1NC4uMDBmMDIyZDI4NTQxZmZlMzg1M2Q3NDBjNzE4MGU2YzIxYWY5YjYwMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEV4Y2VwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKQEAgLTYzLDE0ICs2MywxNCBAQCBwcml2YXRlOgogY2xh
c3MgSlNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0b3JPYmpl
Y3QgewogcHJpdmF0ZToKICAgICBKU1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OlN0cnVj
dHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7Ci0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6
OlZNJiwgSlNET01HbG9iYWxPYmplY3QqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6
Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOwogCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBET01Db25z
dHJ1Y3Rvck9iamVjdCBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3Rv
ciogY3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHsKICAgICAgICAgSlNUZXN0RXhjZXB0aW9u
Q29uc3RydWN0b3IqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0
RXhjZXB0aW9uQ29uc3RydWN0b3I+KHZtLmhlYXApKSBKU1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3Rv
cihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24o
dm0sIGdsb2JhbE9iamVjdCk7CisgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sICpnbG9i
YWxPYmplY3QpOwogICAgICAgICByZXR1cm4gcHRyOwogICAgIH0KIApAQCAtMTAyLDExICsxMDIs
MTEgQEAgSlNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3I6OkpTVGVzdEV4Y2VwdGlvbkNvbnN0cnVj
dG9yKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0QKIHsKIH0KIAotdm9pZCBKU1Rlc3RFeGNlcHRp
b25Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQordm9pZCBKU1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIEJh
c2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0g
ICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdEV4Y2Vw
dGlvbjo6Z2V0UHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9u
bHkgfCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90
b3R5cGUsIEpTVGVzdEV4Y2VwdGlvbjo6Z2V0UHJvdG90eXBlKHZtLCAmZ2xvYmFsT2JqZWN0KSwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogICAgIHB1dERpcmVjdCh2bSwgdm0u
cHJvcGVydHlOYW1lcy0+bmFtZSwganNOb250cml2aWFsU3RyaW5nKCZ2bSwgU3RyaW5nKEFTQ0lJ
TGl0ZXJhbCgiVGVzdEV4Y2VwdGlvbiIpKSksIFJlYWRPbmx5IHwgRG9udEVudW0pOwogICAgIHB1
dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgUmVhZE9u
bHkgfCBEb250RW51bSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5j
cHAKaW5kZXggOTE3YjM4ZDc2MDBhZDM5ODU4YTFlYWUxYTAxNThmYjI4NDFhNzZkMy4uOTAxY2Nj
MGEzYWY1OTY1N2Q5YmVhZDZhM2IxY2YyYzc4NTE5YTYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RH
ZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcApAQCAtNjAsMTQgKzYwLDE0IEBAIHByaXZhdGU6CiBjbGFz
cyBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3Ry
dWN0b3JPYmplY3QgewogcHJpdmF0ZToKICAgICBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29u
c3RydWN0b3IoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCopOwotICAgIHZvaWQg
ZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Kik7CisgICAgdm9pZCBm
aW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTsKIAogcHVibGljOgog
ICAgIHR5cGVkZWYgRE9NQ29uc3RydWN0b3JPYmplY3QgQmFzZTsKICAgICBzdGF0aWMgSlNUZXN0
R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpTQzo6
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAg
ICAgewogICAgICAgICBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IqIHB0ciA9
IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJs
ZUNvbnN0cnVjdG9yPih2bS5oZWFwKSkgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVj
dG9yKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlv
bih2bSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwgKmds
b2JhbE9iamVjdCk7CiAgICAgICAgIHJldHVybiBwdHI7CiAgICAgfQogCkBAIC04NSwxMSArODUs
MTEgQEAgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yOjpKU1Rlc3RHZW5lcmF0
ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IoU3RydWMKIHsKIH0KIAotdm9pZCBKU1Rlc3RHZW5lcmF0
ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9i
YWxPYmplY3QpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIEFTU0VSVChp
bmhlcml0cyhpbmZvKCkpKTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnBy
b3RvdHlwZSwgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZTo6Z2V0UHJvdG90eXBlKHZtLCBnbG9i
YWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CisgICAgcHV0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdEdlbmVyYXRlSXNSZWFj
aGFibGU6OmdldFByb3RvdHlwZSh2bSwgJmdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFk
T25seSB8IERvbnRFbnVtKTsKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPm5h
bWUsIGpzTm9udHJpdmlhbFN0cmluZygmdm0sIFN0cmluZyhBU0NJSUxpdGVyYWwoIlRlc3RHZW5l
cmF0ZUlzUmVhY2hhYmxlIikpKSwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBSZWFkT25seSB8IERv
bnRFbnVtKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKaW5kZXggNDk4YzczZmM3OTRhY2I1ZjQ2
MGU5ODQzYTJlNjgwMDE2M2FhNjQwMy4uOTdiYTU2ZDAyNGU3ZTZlZTVlZTIyZTU2OGQ5OWY0ZmQ1
NzZlNWE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKQEAgLTE0NiwxNCArMTQ2LDE0IEBAIHBy
aXZhdGU6CiBjbGFzcyBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvciA6IHB1YmxpYyBET01Db25z
dHJ1Y3Rvck9iamVjdCB7CiBwcml2YXRlOgogICAgIEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9y
KEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKLSAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7CiAKIHB1YmxpYzoKICAgICB0eXBl
ZGVmIERPTUNvbnN0cnVjdG9yT2JqZWN0IEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdEludGVyZmFj
ZUNvbnN0cnVjdG9yKiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgewogICAgICAgICBKU1Rl
c3RJbnRlcmZhY2VDb25zdHJ1Y3RvciogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRl
Q2VsbDxKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcj4odm0uaGVhcCkpIEpTVGVzdEludGVyZmFj
ZUNvbnN0cnVjdG9yKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgcHRyLT5maW5p
c2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlv
bih2bSwgKmdsb2JhbE9iamVjdCk7CiAgICAgICAgIHJldHVybiBwdHI7CiAgICAgfQogCkBAIC0y
OTQsMTEgKzI5NCwxMSBAQCBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6SlNUZXN0SW50ZXJm
YWNlQ29uc3RydWN0b3IoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRAogewogfQogCi12b2lkIEpT
VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9y
OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3Qp
CiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIEFTU0VSVChpbmhlcml0cyhp
bmZvKCkpKTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwg
SlNUZXN0SW50ZXJmYWNlOjpnZXRQcm90b3R5cGUodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxl
dGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5
TmFtZXMtPnByb3RvdHlwZSwgSlNUZXN0SW50ZXJmYWNlOjpnZXRQcm90b3R5cGUodm0sICZnbG9i
YWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAgICAgcHV0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBqc05vbnRyaXZpYWxTdHJpbmcoJnZtLCBT
dHJpbmcoQVNDSUlMaXRlcmFsKCJUZXN0SW50ZXJmYWNlIikpKSwgUmVhZE9ubHkgfCBEb250RW51
bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVy
KDEpLCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0s
IEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yVGFibGVWYWx1ZXMsICp0aGlzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RKU0J1aWx0
aW5Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCmluZGV4IDFiN2FmMmRhYzFmODJkN2E5
NjRkMmZmNjQwMDI5ZGU1Mjc3NDk4ZTUuLmZkNzA5YmZlNDg3NTIwZTUxY2YzOTJhZDk2NjUxOTVh
ZTFkNjZmZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcApA
QCAtNjEsMTQgKzYxLDE0IEBAIHByaXZhdGU6CiBjbGFzcyBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1
Y3RvckNvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9ySlNCdWlsdGluT2JqZWN0IHsK
IHByaXZhdGU6CiAgICAgSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6
OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7Ci0gICAgdm9pZCBmaW5pc2hDcmVhdGlv
bihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9u
KEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOwogCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBE
T01Db25zdHJ1Y3RvckpTQnVpbHRpbk9iamVjdCBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3RKU0J1
aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpTQzo6U3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAg
ewogICAgICAgICBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKiBwdHIgPSBu
ZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9y
Q29uc3RydWN0b3I+KHZtLmhlYXApKSBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVj
dG9yKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlv
bih2bSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwgKmds
b2JhbE9iamVjdCk7CiAgICAgICAgIHJldHVybiBwdHI7CiAgICAgfQogCkBAIC05NSwxNCArOTUs
MTQgQEAgSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcjo6SlNUZXN0SlNCdWls
dGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihTdHIKIHsKIH0KIAotdm9pZCBKU1Rlc3RKU0J1aWx0
aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9y
Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QmIGds
b2JhbE9iamVjdCkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJU
KGluaGVyaXRzKGluZm8oKSkpOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+
cHJvdG90eXBlLCBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvcjo6Z2V0UHJvdG90eXBlKHZtLCBn
bG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CisgICAgcHV0
RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdEpTQnVpbHRpbkNv
bnN0cnVjdG9yOjpnZXRQcm90b3R5cGUodm0sICZnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwg
UmVhZE9ubHkgfCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5uYW1lLCBqc05vbnRyaXZpYWxTdHJpbmcoJnZtLCBTdHJpbmcoQVNDSUlMaXRlcmFsKCJUZXN0
SlNCdWlsdGluQ29uc3RydWN0b3IiKSkpLCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAgICBwdXRE
aXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIFJlYWRPbmx5
IHwgRG9udEVudW0pOwotICAgIHNldEluaXRpYWxpemVGdW5jdGlvbih2bSwgKkpTQzo6SlNGdW5j
dGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCB0ZXN0SlNCdWlsdGluQ29uc3RydWN0b3JJ
bml0aWFsaXplVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29kZUdlbmVyYXRvcih2bSksIGdsb2Jh
bE9iamVjdCkpOworICAgIHNldEluaXRpYWxpemVGdW5jdGlvbih2bSwgKkpTQzo6SlNGdW5jdGlv
bjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCB0ZXN0SlNCdWlsdGluQ29uc3RydWN0b3JJbml0
aWFsaXplVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29kZUdlbmVyYXRvcih2bSksICZnbG9iYWxP
YmplY3QpKTsKIH0KIAogQ29uc3RydWN0VHlwZSBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNv
bnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0
cnVjdERhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAK
aW5kZXggYmRmZjE3NjFkYTlmZWU0NDUyYTkxYmI3NGNjZmRiZjM0OWIyNmNiMC4uOGQxNzU5ZGIy
MjMxMzk0OWFlOTQwZDY3NmE3YjQ4ZTdlYzEwMzRhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcApAQCAtNjcsMTQgKzY3LDE0IEBAIHByaXZhdGU6CiBj
bGFzcyBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3IgOiBwdWJsaWMgRE9N
Q29uc3RydWN0b3JPYmplY3QgewogcHJpdmF0ZToKICAgICBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyQ29uc3RydWN0b3IoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCopOwot
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Kik7Cisg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTsKIAog
cHVibGljOgogICAgIHR5cGVkZWYgRE9NQ29uc3RydWN0b3JPYmplY3QgQmFzZTsKICAgICBzdGF0
aWMgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yKiBjcmVhdGUoSlNDOjpW
TSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCiAgICAgewogICAgICAgICBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29u
c3RydWN0b3IqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yPih2bS5oZWFwKSkgSlNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsKLSAgICAg
ICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcHRyLT5m
aW5pc2hDcmVhdGlvbih2bSwgKmdsb2JhbE9iamVjdCk7CiAgICAgICAgIHJldHVybiBwdHI7CiAg
ICAgfQogCkBAIC05MiwxMSArOTIsMTEgQEAgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNv
bnN0cnVjdG9yOjpKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3IKIHsKIH0K
IAotdm9pZCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3I6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgSlNU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgQmFzZTo6ZmluaXNo
Q3JlYXRpb24odm0pOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICBwdXREaXJl
Y3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lcjo6Z2V0UHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkgfCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5w
cm90b3R5cGUsIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmdldFByb3RvdHlwZSh2bSwg
Jmdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAgICBw
dXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPm5hbWUsIGpzTm9udHJpdmlhbFN0cmluZygm
dm0sIFN0cmluZyhBU0NJSUxpdGVyYWwoIlRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIikpKSwg
UmVhZE9ubHkgfCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5sZW5ndGgsIGpzTnVtYmVyKDApLCBSZWFkT25seSB8IERvbnRFbnVtKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcAppbmRleCBiMWNjZWJlNGFlYjU0MzVlNzNiOWIyMWFl
OTEzM2E3NzRmNjY1N2Y2Li4xODFlNDFiNWI1MmM0ZmU1YWJmMWJmZGFlMjlhYTE1MjhkYmUyMjky
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCkBAIC02MywxNCArNjMsMTQg
QEAgcHJpdmF0ZToKIGNsYXNzIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3RvciA6IHB1
YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7CiBwcml2YXRlOgogICAgIEpTVGVzdE5hbWVkQ29u
c3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7
Ci0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QqKTsK
KyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOwog
CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBET01Db25zdHJ1Y3Rvck9iamVjdCBCYXNlOwogICAgIHN0
YXRpYyBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3IqIGNyZWF0ZShKU0M6OlZNJiB2
bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCkKICAgICB7CiAgICAgICAgIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3Rvciog
cHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3ROYW1lZENvbnN0cnVj
dG9yQ29uc3RydWN0b3I+KHZtLmhlYXApKSBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0
b3Ioc3RydWN0dXJlLCBnbG9iYWxPYmplY3QpOwotICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9u
KHZtLCBnbG9iYWxPYmplY3QpOworICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCAqZ2xv
YmFsT2JqZWN0KTsKICAgICAgICAgcmV0dXJuIHB0cjsKICAgICB9CiAKQEAgLTg4LDcgKzg4LDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yTmFtZWRDb25zdHJ1
Y3RvciogY3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHsKICAgICAgICAgSlNUZXN0TmFtZWRD
b25zdHJ1Y3Rvck5hbWVkQ29uc3RydWN0b3IqIGNvbnN0cnVjdG9yID0gbmV3IChOb3ROdWxsLCBK
U0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3ROYW1lZENvbnN0cnVjdG9yTmFtZWRDb25zdHJ1Y3Rvcj4o
dm0uaGVhcCkpIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JOYW1lZENvbnN0cnVjdG9yKHN0cnVjdHVy
ZSwgZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgY29uc3RydWN0b3ItPmZpbmlzaENyZWF0aW9uKHZt
LCBnbG9iYWxPYmplY3QpOworICAgICAgICBjb25zdHJ1Y3Rvci0+ZmluaXNoQ3JlYXRpb24odm0s
ICpnbG9iYWxPYmplY3QpOwogICAgICAgICByZXR1cm4gY29uc3RydWN0b3I7CiAgICAgfQogCkBA
IC0xMDMsNyArMTAzLDcgQEAgcHJpdmF0ZToKICAgICBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yTmFt
ZWRDb25zdHJ1Y3RvcihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7CiAgICAg
c3RhdGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1Rlc3RO
YW1lZENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKik7CiAgICAgc3RhdGljIEpTQzo6Q29uc3Ry
dWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQzo6SlNDZWxsKiwgSlNDOjpDb25zdHJ1Y3REYXRh
Jik7Ci0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3Qq
KTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYp
OwogfTsKIAogY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3Rv
cjo6c19pbmZvID0geyAiVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3RvciIsICZCYXNlOjpz
X2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0
cnVjdG9yKSB9OwpAQCAtMTEzLDExICsxMTMsMTEgQEAgSlNUZXN0TmFtZWRDb25zdHJ1Y3RvckNv
bnN0cnVjdG9yOjpKU1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3IoU3RydWN0dXJlKgog
ewogfQogCi12b2lkIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQordm9pZCBKU1Rl
c3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNE
T01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlv
bih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotICAgIHB1dERpcmVjdCh2bSwg
dm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yOjpnZXRQ
cm90b3R5cGUodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRF
bnVtKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNU
ZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6Z2V0UHJvdG90eXBlKHZtLCAmZ2xvYmFsT2JqZWN0KSwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJv
cGVydHlOYW1lcy0+bmFtZSwganNOb250cml2aWFsU3RyaW5nKCZ2bSwgU3RyaW5nKEFTQ0lJTGl0
ZXJhbCgiVGVzdE5hbWVkQ29uc3RydWN0b3IiKSkpLCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAg
ICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIFJl
YWRPbmx5IHwgRG9udEVudW0pOwogfQpAQCAtMTUyLDExICsxNTIsMTEgQEAgSlNUZXN0TmFtZWRD
b25zdHJ1Y3Rvck5hbWVkQ29uc3RydWN0b3I6OkpTVGVzdE5hbWVkQ29uc3RydWN0b3JOYW1lZENv
bnN0cnVjdG9yKFMKIHsKIH0KIAotdm9pZCBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yTmFtZWRDb25z
dHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KQordm9pZCBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yTmFtZWRDb25zdHJ1Y3Rvcjo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewot
ICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7CisgICAgQmFzZTo6ZmluaXNo
Q3JlYXRpb24oJmdsb2JhbE9iamVjdCk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwot
ICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3ROYW1l
ZENvbnN0cnVjdG9yOjpnZXRQcm90b3R5cGUodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUg
fCBSZWFkT25seSB8IERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFt
ZXMtPnByb3RvdHlwZSwgSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6Z2V0UHJvdG90eXBlKHZtLCAm
Z2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogICAgIHB1
dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bmFtZSwganNOb250cml2aWFsU3RyaW5nKCZ2
bSwgU3RyaW5nKEFTQ0lJTGl0ZXJhbCgiQXVkaW8iKSkpLCBSZWFkT25seSB8IERvbnRFbnVtKTsK
ICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCks
IFJlYWRPbmx5IHwgRG9udEVudW0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCmluZGV4IDBlOTBhZDA5NTA1ZWRi
OWYyNDFjYWFiNzc3NzU5ZTlmYTRlMTU1YTIuLjYxMjVlZGQ4Njc3MDg2NzJiNGU5N2E5YWQ1NGJi
ZWYxOTY4MTcyMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKQEAgLTY2LDE0ICs2NiwxNCBAQCBwcml2YXRlOgog
Y2xhc3MgSlNUZXN0Tm9kZUNvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9yT2JqZWN0
IHsKIHByaXZhdGU6CiAgICAgSlNUZXN0Tm9kZUNvbnN0cnVjdG9yKEpTQzo6U3RydWN0dXJlKiwg
SlNET01HbG9iYWxPYmplY3QqKTsKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBK
U0RPTUdsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpT
RE9NR2xvYmFsT2JqZWN0Jik7CiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIERPTUNvbnN0cnVjdG9y
T2JqZWN0IEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdE5vZGVDb25zdHJ1Y3RvciogY3JlYXRlKEpT
Qzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQogICAgIHsKICAgICAgICAgSlNUZXN0Tm9kZUNvbnN0cnVjdG9yKiBwdHIg
PSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdE5vZGVDb25zdHJ1Y3Rvcj4o
dm0uaGVhcCkpIEpTVGVzdE5vZGVDb25zdHJ1Y3RvcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCk7
Ci0gICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCk7CisgICAgICAg
IHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sICpnbG9iYWxPYmplY3QpOwogICAgICAgICByZXR1cm4g
cHRyOwogICAgIH0KIApAQCAtMTAxLDExICsxMDEsMTEgQEAgSlNUZXN0Tm9kZUNvbnN0cnVjdG9y
OjpKU1Rlc3ROb2RlQ29uc3RydWN0b3IoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFs
T2IKIHsKIH0KIAotdm9pZCBKU1Rlc3ROb2RlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgSlNUZXN0Tm9kZUNv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9i
YWxPYmplY3QpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIEFTU0VSVChp
bmhlcml0cyhpbmZvKCkpKTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnBy
b3RvdHlwZSwgSlNUZXN0Tm9kZTo6Z2V0UHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QpLCBEb250
RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdE5vZGU6OmdldFByb3RvdHlwZSh2bSwgJmdsb2Jh
bE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAgICBwdXREaXJl
Y3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPm5hbWUsIGpzTm9udHJpdmlhbFN0cmluZygmdm0sIFN0
cmluZyhBU0NJSUxpdGVyYWwoIlRlc3ROb2RlIikpKSwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAg
ICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBS
ZWFkT25seSB8IERvbnRFbnVtKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmNw
cAppbmRleCBhOGNhNGUxNzliNjI0M2JiZDg1YTI0YzE2YjNkZDA0M2MzMjdlZThiLi4yMGE4YjZh
NTRlZmI4OWFmY2U0NGIzN2ZiZTQ2NzQ1NTZkMDBmN2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRl
dGVybWluaXN0aWMuY3BwCkBAIC04MywxNCArODMsMTQgQEAgcHJpdmF0ZToKIGNsYXNzIEpTVGVz
dE5vbmRldGVybWluaXN0aWNDb25zdHJ1Y3RvciA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVj
dCB7CiBwcml2YXRlOgogICAgIEpTVGVzdE5vbmRldGVybWluaXN0aWNDb25zdHJ1Y3RvcihKU0M6
OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7Ci0gICAgdm9pZCBmaW5pc2hDcmVhdGlv
bihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9u
KEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOwogCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBE
T01Db25zdHJ1Y3Rvck9iamVjdCBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3ROb25kZXRlcm1pbmlz
dGljQ29uc3RydWN0b3IqIGNyZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICB7CiAgICAgICAgIEpT
VGVzdE5vbmRldGVybWluaXN0aWNDb25zdHJ1Y3RvciogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6
OmFsbG9jYXRlQ2VsbDxKU1Rlc3ROb25kZXRlcm1pbmlzdGljQ29uc3RydWN0b3I+KHZtLmhlYXAp
KSBKU1Rlc3ROb25kZXRlcm1pbmlzdGljQ29uc3RydWN0b3Ioc3RydWN0dXJlLCBnbG9iYWxPYmpl
Y3QpOwotICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmplY3QpOworICAg
ICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCAqZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgcmV0
dXJuIHB0cjsKICAgICB9CiAKQEAgLTEwOCwxMSArMTA4LDExIEBAIEpTVGVzdE5vbmRldGVybWlu
aXN0aWNDb25zdHJ1Y3Rvcjo6SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY0NvbnN0cnVjdG9yKFN0cnVj
dHVyZSoKIHsKIH0KIAotdm9pZCBKU1Rlc3ROb25kZXRlcm1pbmlzdGljQ29uc3RydWN0b3I6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3Zv
aWQgSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY0NvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgQmFzZTo6ZmluaXNo
Q3JlYXRpb24odm0pOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICBwdXREaXJl
Y3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNUZXN0Tm9uZGV0ZXJtaW5pc3Rp
Yzo6Z2V0UHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkg
fCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5
cGUsIEpTVGVzdE5vbmRldGVybWluaXN0aWM6OmdldFByb3RvdHlwZSh2bSwgJmdsb2JhbE9iamVj
dCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAgICBwdXREaXJlY3Qodm0s
IHZtLnByb3BlcnR5TmFtZXMtPm5hbWUsIGpzTm9udHJpdmlhbFN0cmluZygmdm0sIFN0cmluZyhB
U0NJSUxpdGVyYWwoIlRlc3ROb25kZXRlcm1pbmlzdGljIikpKSwgUmVhZE9ubHkgfCBEb250RW51
bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVy
KDApLCBSZWFkT25seSB8IERvbnRFbnVtKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggODcyMzM2ZTE1Yzdk
ZmU4MTkzZjg5ODY5ZjNmMzA4Njg0YjY2NGZmNi4uNTUwOGYzMzMyODc4ODAyYzUzMGY2NWJkYzA0
MTBiZGVlNzA2YzdhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTM0NSwxNCArMzQ1LDE0IEBAIHByaXZhdGU6
CiBjbGFzcyBKU1Rlc3RPYmpDb25zdHJ1Y3RvciA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVj
dCB7CiBwcml2YXRlOgogICAgIEpTVGVzdE9iakNvbnN0cnVjdG9yKEpTQzo6U3RydWN0dXJlKiwg
SlNET01HbG9iYWxPYmplY3QqKTsKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBK
U0RPTUdsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpT
RE9NR2xvYmFsT2JqZWN0Jik7CiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIERPTUNvbnN0cnVjdG9y
T2JqZWN0IEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdE9iakNvbnN0cnVjdG9yKiBjcmVhdGUoSlND
OjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCiAgICAgewogICAgICAgICBKU1Rlc3RPYmpDb25zdHJ1Y3RvciogcHRyID0g
bmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3RPYmpDb25zdHJ1Y3Rvcj4odm0u
aGVhcCkpIEpTVGVzdE9iakNvbnN0cnVjdG9yKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsKLSAg
ICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcHRy
LT5maW5pc2hDcmVhdGlvbih2bSwgKmdsb2JhbE9iamVjdCk7CiAgICAgICAgIHJldHVybiBwdHI7
CiAgICAgfQogCkBAIC00ODcsMTEgKzQ4NywxMSBAQCBKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6SlNU
ZXN0T2JqQ29uc3RydWN0b3IoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZQog
ewogfQogCi12b2lkIEpTVGVzdE9iakNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0s
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIEpTVGVzdE9iakNvbnN0cnVj
dG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmpl
Y3QpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIEFTU0VSVChpbmhlcml0
cyhpbmZvKCkpKTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlw
ZSwgSlNUZXN0T2JqOjpnZXRQcm90b3R5cGUodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUg
fCBSZWFkT25seSB8IERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFt
ZXMtPnByb3RvdHlwZSwgSlNUZXN0T2JqOjpnZXRQcm90b3R5cGUodm0sICZnbG9iYWxPYmplY3Qp
LCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBqc05vbnRyaXZpYWxTdHJpbmcoJnZtLCBTdHJpbmcoQVND
SUlMaXRlcmFsKCJUZXN0T2JqZWN0IikpKSwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAgICAgcHV0
RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDIpLCBSZWFkT25s
eSB8IERvbnRFbnVtKTsKICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdE9iakNv
bnN0cnVjdG9yVGFibGVWYWx1ZXMsICp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9h
ZGVkQ29uc3RydWN0b3JzLmNwcAppbmRleCBlMWQxMzMxOTQwN2ZhYjFkOTk0MjM4NzliOTJkNmNi
NmM1MDc5M2E2Li42ZmU4Y2Y1MzJiYzQ5Y2RlOTU5NmJlNzcwOTllOTU1ODA5MjEyYmQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCkBAIC02MywxNCAr
NjMsMTQgQEAgcHJpdmF0ZToKIGNsYXNzIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25z
dHJ1Y3RvciA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7CiBwcml2YXRlOgogICAgIEpT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvcihKU0M6OlN0cnVjdHVyZSosIEpT
RE9NR2xvYmFsT2JqZWN0Kik7Ci0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNE
T01HbG9iYWxPYmplY3QqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RP
TUdsb2JhbE9iamVjdCYpOwogCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBET01Db25zdHJ1Y3Rvck9i
amVjdCBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3Ry
dWN0b3IqIGNyZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICB7CiAgICAgICAgIEpTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvciogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFs
bG9jYXRlQ2VsbDxKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3I+KHZtLmhl
YXApKSBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3Ioc3RydWN0dXJlLCBn
bG9iYWxPYmplY3QpOwotICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmpl
Y3QpOworICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCAqZ2xvYmFsT2JqZWN0KTsKICAg
ICAgICAgcmV0dXJuIHB0cjsKICAgICB9CiAKQEAgLTE3MywxMSArMTczLDExIEBAIEpTVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcjo6SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9yc0NvbnN0cnVjdG9yCiB7CiB9CiAKLXZvaWQgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
c0NvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCit2b2lkIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rv
cjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0
KQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHMo
aW5mbygpKSk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUs
IEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6OmdldFByb3RvdHlwZSh2bSwgZ2xvYmFsT2Jq
ZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOworICAgIHB1dERpcmVjdCh2
bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzOjpnZXRQcm90b3R5cGUodm0sICZnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9u
bHkgfCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5uYW1l
LCBqc05vbnRyaXZpYWxTdHJpbmcoJnZtLCBTdHJpbmcoQVNDSUlMaXRlcmFsKCJUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9ycyIpKSksIFJlYWRPbmx5IHwgRG9udEVudW0pOwogICAgIHB1dERpcmVj
dCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUmVhZE9ubHkgfCBE
b250RW51bSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHAKaW5kZXggZGYx
Yzk2NTkzYjMzMWZlMTgyMDFlMDVhMGY3ZTZhNGJkNjg0NDYwYS4uMWRjOTlhNTVjOGViMjlmMjFj
YWVjMGMzMzUyMmQ3MWVlZGU1OGI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5z
LmNwcApAQCAtNjksMTQgKzY5LDE0IEBAIHByaXZhdGU6CiBjbGFzcyBKU1Rlc3RPdmVycmlkZUJ1
aWx0aW5zQ29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0b3JPYmplY3QgewogcHJpdmF0
ZToKICAgICBKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zQ29uc3RydWN0b3IoSlNDOjpTdHJ1Y3R1cmUq
LCBKU0RPTUdsb2JhbE9iamVjdCopOwotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYs
IEpTRE9NR2xvYmFsT2JqZWN0Kik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwg
SlNET01HbG9iYWxPYmplY3QmKTsKIAogcHVibGljOgogICAgIHR5cGVkZWYgRE9NQ29uc3RydWN0
b3JPYmplY3QgQmFzZTsKICAgICBzdGF0aWMgSlNUZXN0T3ZlcnJpZGVCdWlsdGluc0NvbnN0cnVj
dG9yKiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgewogICAgICAgICBKU1Rlc3RPdmVycmlk
ZUJ1aWx0aW5zQ29uc3RydWN0b3IqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNl
bGw8SlNUZXN0T3ZlcnJpZGVCdWlsdGluc0NvbnN0cnVjdG9yPih2bS5oZWFwKSkgSlNUZXN0T3Zl
cnJpZGVCdWlsdGluc0NvbnN0cnVjdG9yKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsKLSAgICAg
ICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcHRyLT5m
aW5pc2hDcmVhdGlvbih2bSwgKmdsb2JhbE9iamVjdCk7CiAgICAgICAgIHJldHVybiBwdHI7CiAg
ICAgfQogCkBAIC0xMDgsMTEgKzEwOCwxMSBAQCBKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zQ29uc3Ry
dWN0b3I6OkpTVGVzdE92ZXJyaWRlQnVpbHRpbnNDb25zdHJ1Y3RvcihTdHJ1Y3R1cmUqCiB7CiB9
CiAKLXZvaWQgSlNUZXN0T3ZlcnJpZGVCdWlsdGluc0NvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIEpTVGVzdE92
ZXJyaWRlQnVpbHRpbnNDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUds
b2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZt
KTsKICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdE92ZXJyaWRlQnVpbHRpbnM6OmdldFByb3Rv
dHlwZSh2bSwgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0p
OworICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RP
dmVycmlkZUJ1aWx0aW5zOjpnZXRQcm90b3R5cGUodm0sICZnbG9iYWxPYmplY3QpLCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5uYW1lLCBqc05vbnRyaXZpYWxTdHJpbmcoJnZtLCBTdHJpbmcoQVNDSUlMaXRlcmFs
KCJUZXN0T3ZlcnJpZGVCdWlsdGlucyIpKSksIFJlYWRPbmx5IHwgRG9udEVudW0pOwogICAgIHB1
dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgUmVhZE9u
bHkgfCBEb250RW51bSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCmluZGV4IGJhZGVhMGNhMzY3YWQxM2E4MGM5ZDdiMzAw
NjcyMzhlZmY0ZTQzZWEuLjIxNGRkZjgwOTRiYjhiMDI0MTU0N2FiMjZlMTBjNDYwMTgyMTgyYmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2UuY3BwCkBAIC03NCwxNCArNzQsMTQgQEAgcHJpdmF0ZToKIGNsYXNzIEpTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVj
dG9yT2JqZWN0IHsKIHByaXZhdGU6CiAgICAgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCopOwot
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Kik7Cisg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTsKIAog
cHVibGljOgogICAgIHR5cGVkZWYgRE9NQ29uc3RydWN0b3JPYmplY3QgQmFzZTsKICAgICBzdGF0
aWMgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IqIGNyZWF0
ZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKICAgICB7CiAgICAgICAgIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2Nh
dGVDZWxsPEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yPih2
bS5oZWFwKSkgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3Io
c3RydWN0dXJlLCBnbG9iYWxPYmplY3QpOwotICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZt
LCBnbG9iYWxPYmplY3QpOworICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCAqZ2xvYmFs
T2JqZWN0KTsKICAgICAgICAgcmV0dXJuIHB0cjsKICAgICB9CiAKQEAgLTk5LDExICs5OSwxMSBA
QCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6SlNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZQogewogfQogCi12b2lkIEpTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIEpTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9N
R2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24o
dm0pOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICBwdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlOjpnZXRQcm90b3R5cGUodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFk
T25seSB8IERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnBy
b3RvdHlwZSwgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpnZXRQcm90b3R5
cGUodm0sICZnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7
CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBqc05vbnRyaXZpYWxT
dHJpbmcoJnZtLCBTdHJpbmcoQVNDSUlMaXRlcmFsKCJUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlIikpKSwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBSZWFkT25seSB8IERvbnRFbnVt
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RUeXBlZGVmcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCmluZGV4IGM5ZWFlNDdlYzM4NTlkMjk0ODZjNzUxMDA2
MzFiMTM2ZTc0ZjMwODEuLmQ4MDAzYzRlYTY0MTkwOGMxY2NhYmU5N2RmMTBjNjcyMjVhZjkwOTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RUeXBlZGVmcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFR5cGVkZWZzLmNwcApAQCAtMTAwLDE0ICsxMDAsMTQgQEAgcHJpdmF0ZToKIGNs
YXNzIEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0b3JPYmpl
Y3QgewogcHJpdmF0ZToKICAgICBKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTQzo6U3RydWN0
dXJlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6
Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpW
TSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7CiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIERPTUNvbnN0
cnVjdG9yT2JqZWN0IEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3Iq
IGNyZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICB7CiAgICAgICAgIEpTVGVzdFR5cGVkZWZzQ29u
c3RydWN0b3IqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0VHlw
ZWRlZnNDb25zdHJ1Y3Rvcj4odm0uaGVhcCkpIEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3Ioc3Ry
dWN0dXJlLCBnbG9iYWxPYmplY3QpOwotICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCBn
bG9iYWxPYmplY3QpOworICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCAqZ2xvYmFsT2Jq
ZWN0KTsKICAgICAgICAgcmV0dXJuIHB0cjsKICAgICB9CiAKQEAgLTE2NCwxMSArMTY0LDExIEBA
IEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3I6OkpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IoU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NCiB7CiB9CiAKLXZvaWQgSlNUZXN0VHlwZWRlZnNDb25z
dHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KQordm9pZCBKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgQmFzZTo6Zmlu
aXNoQ3JlYXRpb24odm0pOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICBwdXRE
aXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNUZXN0VHlwZWRlZnM6Omdl
dFByb3RvdHlwZSh2bSwgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9u
dEVudW0pOworICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBK
U1Rlc3RUeXBlZGVmczo6Z2V0UHJvdG90eXBlKHZtLCAmZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlO
YW1lcy0+bmFtZSwganNOb250cml2aWFsU3RyaW5nKCZ2bSwgU3RyaW5nKEFTQ0lJTGl0ZXJhbCgi
VGVzdFR5cGVkZWZzIikpKSwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KHZt
LCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDIpLCBSZWFkT25seSB8IERvbnRF
bnVtKTsKICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdFR5cGVkZWZzQ29uc3Ry
dWN0b3JUYWJsZVZhbHVlcywgKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHAKaW5kZXggODljNmQxYTU0Njc4
MzlmNWJlMjVhNGQ3Zjc5OTc2YjFhNmJhODUxNS4uNmQxNTAwY2YyYzA3YWQyZGFlNWU3YTIxODQ1
YzU3N2ZiM2Y2Njk1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwCkBAIC02MywxNCArNjMsMTQgQEAgcHJpdmF0
ZToKIGNsYXNzIEpTYXR0cmlidXRlQ29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0b3JP
YmplY3QgewogcHJpdmF0ZToKICAgICBKU2F0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTQzo6U3RydWN0
dXJlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6
Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpW
TSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7CiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIERPTUNvbnN0
cnVjdG9yT2JqZWN0IEJhc2U7CiAgICAgc3RhdGljIEpTYXR0cmlidXRlQ29uc3RydWN0b3IqIGNy
ZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKICAgICB7CiAgICAgICAgIEpTYXR0cmlidXRlQ29uc3RydWN0
b3IqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNhdHRyaWJ1dGVDb25z
dHJ1Y3Rvcj4odm0uaGVhcCkpIEpTYXR0cmlidXRlQ29uc3RydWN0b3Ioc3RydWN0dXJlLCBnbG9i
YWxPYmplY3QpOwotICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmplY3Qp
OworICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCAqZ2xvYmFsT2JqZWN0KTsKICAgICAg
ICAgcmV0dXJuIHB0cjsKICAgICB9CiAKQEAgLTg4LDExICs4OCwxMSBAQCBKU2F0dHJpYnV0ZUNv
bnN0cnVjdG9yOjpKU2F0dHJpYnV0ZUNvbnN0cnVjdG9yKFN0cnVjdHVyZSogc3RydWN0dXJlLCBK
U0RPTUdsb2JhbAogewogfQogCi12b2lkIEpTYXR0cmlidXRlQ29uc3RydWN0b3I6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgSlNh
dHRyaWJ1dGVDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9i
amVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAg
ICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5wcm90b3R5cGUsIEpTYXR0cmlidXRlOjpnZXRQcm90b3R5cGUodm0sIGdsb2JhbE9i
amVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNhdHRyaWJ1dGU6OmdldFByb3RvdHlw
ZSh2bSwgJmdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsK
ICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPm5hbWUsIGpzTm9udHJpdmlhbFN0
cmluZygmdm0sIFN0cmluZyhBU0NJSUxpdGVyYWwoImF0dHJpYnV0ZSIpKSksIFJlYWRPbmx5IHwg
RG9udEVudW0pOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBq
c051bWJlcigwKSwgUmVhZE9ubHkgfCBEb250RW51bSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAKaW5kZXggNjcz
ZDNjZjljYjZmZWIxMjVhODliYTBjMWU5ODJjZjY1MWFhMWY1MC4uNjcwMzk3MTljZDUzZWI0ZWM5
NjhlYjZjZTg4NDQ0NDE4OTFlNTk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNwcApAQCAtNjAsMTQgKzYwLDE0IEBA
IHByaXZhdGU6CiBjbGFzcyBKU3JlYWRvbmx5Q29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3Ry
dWN0b3JPYmplY3QgewogcHJpdmF0ZToKICAgICBKU3JlYWRvbmx5Q29uc3RydWN0b3IoSlNDOjpT
dHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCopOwotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
SlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Kik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihK
U0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTsKIAogcHVibGljOgogICAgIHR5cGVkZWYgRE9N
Q29uc3RydWN0b3JPYmplY3QgQmFzZTsKICAgICBzdGF0aWMgSlNyZWFkb25seUNvbnN0cnVjdG9y
KiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgewogICAgICAgICBKU3JlYWRvbmx5Q29uc3Ry
dWN0b3IqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNyZWFkb25seUNv
bnN0cnVjdG9yPih2bS5oZWFwKSkgSlNyZWFkb25seUNvbnN0cnVjdG9yKHN0cnVjdHVyZSwgZ2xv
YmFsT2JqZWN0KTsKLSAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0
KTsKKyAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwgKmdsb2JhbE9iamVjdCk7CiAgICAg
ICAgIHJldHVybiBwdHI7CiAgICAgfQogCkBAIC04NSwxMSArODUsMTEgQEAgSlNyZWFkb25seUNv
bnN0cnVjdG9yOjpKU3JlYWRvbmx5Q29uc3RydWN0b3IoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpT
RE9NR2xvYmFsT2IKIHsKIH0KIAotdm9pZCBKU3JlYWRvbmx5Q29uc3RydWN0b3I6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgSlNy
ZWFkb25seUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2Jq
ZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAg
IEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5
TmFtZXMtPnByb3RvdHlwZSwgSlNyZWFkb25seTo6Z2V0UHJvdG90eXBlKHZtLCBnbG9iYWxPYmpl
Y3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0KHZt
LCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTcmVhZG9ubHk6OmdldFByb3RvdHlwZSh2
bSwgJmdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAg
ICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPm5hbWUsIGpzTm9udHJpdmlhbFN0cmlu
Zygmdm0sIFN0cmluZyhBU0NJSUxpdGVyYWwoInJlYWRvbmx5IikpKSwgUmVhZE9ubHkgfCBEb250
RW51bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVt
YmVyKDApLCBSZWFkT25seSB8IERvbnRFbnVtKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262535</attachid>
            <date>2015-10-06 12:18:12 -0700</date>
            <delta_ts>2015-10-06 13:14:39 -0700</delta_ts>
            <desc>Fixing OOPS</desc>
            <filename>bug-149838-20151006211739.patch</filename>
            <type>text/plain</type>
            <size>55149</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwNjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmI3MzM4OGM5MmM4ZDRi
NWQ1YzhmODhkY2Y0ZjRjOTY2MjVhNWUwMy4uM2NkNWUwM2NmMzgxMWEzNmMyODdhNzBmMTRmYjNk
OWFiNzVjODhiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg0IEBACisyMDE1LTEwLTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgQmluZGlu
ZyBnZW5lcmF0b3IgWFhDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24gc2hvdWxkIHRha2UgcmVm
ZXJlbmNlcyBhcyBwYXJhbWV0ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDk4MzgKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
KworICAgICAgICBVcGRhdGVkIHRoZSBiaW5kaW5nIGdlbmVyYXRvciBzbyB0aGF0IFhYQ29uc3Ry
dWN0b3I6OmZpbmlzaENyZWF0aW9uCisgICAgICAgIHRha2VzIGEgSlNET01HbG9iYWxPYmplY3Qm
IGluIGxpZXUgb2YgYSBKU0RPTUdsb2JhbE9iamVjdCouCisKKyAgICAgICAgQ292ZXJlZCBieSBy
ZWJhc2VkIGJpbmRpbmcgdGVzdHMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlQ29uc3RydWN0b3JEZWNsYXJhdGlvbik6
CisgICAgICAgIChHZW5lcmF0ZUNvbnN0cnVjdG9ySGVscGVyTWV0aG9kcyk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU1Rlc3RBY3RpdmVET01PYmplY3RDb25zdHJ1Y3Rvcjo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEFjdGl2ZURPTU9iamVjdENvbnN0cnVjdG9yOjpmaW5p
c2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENh
bGxiYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdENhbGxiYWNrQ29uc3RydWN0b3I6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDYWxsYmFja0NvbnN0cnVjdG9yOjpm
aW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Q29uc3Ry
dWN0b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDdXN0b21Db25zdHJ1Y3Rv
cldpdGhOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0b3I6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0
cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
SlNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3I6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yOjpmaW5pc2hDcmVh
dGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3Rvcjo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yOjpmaW5p
c2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdl
bmVyYXRlSXNSZWFjaGFibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0R2VuZXJhdGVJ
c1JlYWNoYWJsZUNvbnN0cnVjdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEpTQnVpbHRpbkNvbnN0cnVj
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29u
c3RydWN0b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RKU0J1aWx0aW5Db25z
dHJ1Y3RvckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0
cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvck5hbWVkQ29uc3RydWN0b3I6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpKU1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVkQ29uc3RydWN0b3JOYW1lZENvbnN0
cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0Tm9kZUNvbnN0cnVj
dG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0Tm9kZUNvbnN0cnVjdG9yOjpm
aW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5vbmRldGVybWluaXN0aWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0Tm9uZGV0ZXJt
aW5pc3RpY0NvbnN0cnVjdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0Tm9u
ZGV0ZXJtaW5pc3RpY0NvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpK
U1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE9i
akNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9y
OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE92ZXJyaWRlQnVpbHRpbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T3ZlcnJp
ZGVCdWlsdGluc0NvbnN0cnVjdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
T3ZlcnJpZGVCdWlsdGluc0NvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VDb25zdHJ1Y3Rvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3I6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlv
bik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkpTYXR0cmlidXRlQ29uc3RydWN0b3I6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpKU2F0dHJpYnV0ZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNyZWFkb25seUNvbnN0cnVjdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNyZWFkb25seUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisKIDIwMTUtMTAt
MDYgIERhbmllbCBCYXRlcyAgPGRiYXRlc0B3ZWJraXQub3JnPgogCiAgICAgICAgIEVuYWJsZSBY
U0xUIHdoZW4gYnVpbGRpbmcgV2ViS2l0IGZvciBpT1MgdXNpbmcgdGhlIHB1YmxpYyBpT1MgU0RL
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCmluZGV4IDhjODA3N2VlMzFiNDlmZjQwODBiNWYyM2RjNGVmNWUxZWNmOTVjNmMuLmJkYTY2
OWE1MDE5ZmFlZTVlOTk0ZWQ4MDY1ZmRlOWI4NWI0NTlkYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC00NjA3LDE0ICs0
NjA3LDE0IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVjbGFyYXRpb24KICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICJjbGFzcyAke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfSA6IHB1YmxpYyAiIC4g
JHBhcmVudENsYXNzTmFtZSAuICIge1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAicHJp
dmF0ZTpcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAke2NvbnN0cnVjdG9yQ2xh
c3NOYW1lfShKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7XG4iKTsKLSAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICIgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNE
T01HbG9iYWxPYmplY3QqKTtcblxuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7XG5cbiIpOwog
CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAicHVibGljOlxuIik7CiAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgIHR5cGVkZWYgIiAuICRwYXJlbnRDbGFzc05hbWUgLiAiIEJhc2U7XG4iKTsK
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgc3RhdGljICRjb25zdHJ1Y3RvckNsYXNzTmFt
ZSogY3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgIHtcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgJGNvbnN0cnVjdG9y
Q2xhc3NOYW1lKiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPCRjb25zdHJ1
Y3RvckNsYXNzTmFtZT4odm0uaGVhcCkpICRjb25zdHJ1Y3RvckNsYXNzTmFtZShzdHJ1Y3R1cmUs
IGdsb2JhbE9iamVjdCk7XG4iKTsKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHB0
ci0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCk7XG4iKTsKKyAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sICpnbG9iYWxPYmplY3Qp
O1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gcHRyO1xuIik7
CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIH1cblxuIik7CiAKQEAgLTQ2NTQsNyArNDY1
NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSlMke2ludGVyZmFjZU5hbWV9TmFtZWRDb25zdHJ1
Y3RvciogY3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHsKICAgICAgICAgSlMke2ludGVyZmFj
ZU5hbWV9TmFtZWRDb25zdHJ1Y3RvciogY29uc3RydWN0b3IgPSBuZXcgKE5vdE51bGwsIEpTQzo6
YWxsb2NhdGVDZWxsPEpTJHtpbnRlcmZhY2VOYW1lfU5hbWVkQ29uc3RydWN0b3I+KHZtLmhlYXAp
KSBKUyR7aW50ZXJmYWNlTmFtZX1OYW1lZENvbnN0cnVjdG9yKHN0cnVjdHVyZSwgZ2xvYmFsT2Jq
ZWN0KTsKLSAgICAgICAgY29uc3RydWN0b3ItPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmpl
Y3QpOworICAgICAgICBjb25zdHJ1Y3Rvci0+ZmluaXNoQ3JlYXRpb24odm0sICpnbG9iYWxPYmpl
Y3QpOwogICAgICAgICByZXR1cm4gY29uc3RydWN0b3I7CiAgICAgfQogCkBAIC00NjY5LDcgKzQ2
NjksNyBAQCBwcml2YXRlOgogICAgIEpTJHtpbnRlcmZhY2VOYW1lfU5hbWVkQ29uc3RydWN0b3Io
SlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlMke2ludGVyZmFjZU5hbWV9KEpT
Qzo6RXhlY1N0YXRlKik7CiAgICAgc3RhdGljIEpTQzo6Q29uc3RydWN0VHlwZSBnZXRDb25zdHJ1
Y3REYXRhKEpTQzo6SlNDZWxsKiwgSlNDOjpDb25zdHJ1Y3REYXRhJik7Ci0gICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QqKTsKKyAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOwogfTsKIAogRU5ECkBAIC00
OTc2LDExICs0OTc2LDExIEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9ySGVscGVyTWV0aG9kcwog
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
In1cblxuIik7CiAKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ2b2lkICR7Y29uc3RydWN0b3JD
bGFzc05hbWV9OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpXG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ2b2lkICR7Y29uc3RydWN0
b3JDbGFzc05hbWV9OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBn
bG9iYWxPYmplY3QpXG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7XG4iKTsKIAogICAg
IGlmICgkZ2VuZXJhdGluZ05hbWVkQ29uc3RydWN0b3IpIHsKLSAgICAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7XG4iKTsKKyAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKCZnbG9i
YWxPYmplY3QpO1xuIik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTtcbiIpOwogICAgIH0KQEAgLTQ5OTAsMTEg
KzQ5OTAsMTEgQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0b3JIZWxwZXJNZXRob2RzCiAgICAgIyBv
ZiB3aGV0aGVyIHRoZSBpbnRlcmZhY2Ugd2FzIGRlY2xhcmVkIHdpdGggdGhlIFtOb0ludGVyZmFj
ZU9iamVjdF0gZXh0ZW5kZWQgYXR0cmlidXRlLgogICAgICMgaHR0cHM6Ly9oZXljYW0uZ2l0aHVi
LmlvL3dlYmlkbC8jaW50ZXJmYWNlLXByb3RvdHlwZS1vYmplY3QKICAgICBpZiAoSXNET01HbG9i
YWxPYmplY3QoJGludGVyZmFjZSkpIHsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBnbG9iYWxPYmplY3Qt
PnByb3RvdHlwZSgpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7XG4iKTsKKyAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlO
YW1lcy0+cHJvdG90eXBlLCBnbG9iYWxPYmplY3QucHJvdG90eXBlKCksIERvbnREZWxldGUgfCBS
ZWFkT25seSB8IERvbnRFbnVtKTtcbiIpOwogICAgIH0gZWxzaWYgKCRpbnRlcmZhY2UtPmlzQ2Fs
bGJhY2spIHsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFVOVVNFRF9QQVJBTShn
bG9iYWxPYmplY3QpO1xuIik7CiAgICAgfSBlbHNlIHsKLSAgICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsICR7Y2xh
c3NOYW1lfTo6Z2V0UHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkgfCBEb250RW51bSk7XG4iKTsKKyAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsICR7Y2xhc3NOYW1lfTo6
Z2V0UHJvdG90eXBlKHZtLCAmZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwg
RG9udEVudW0pO1xuIik7CiAgICAgfQogCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHB1
dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bmFtZSwganNOb250cml2aWFsU3RyaW5nKCZ2
bSwgU3RyaW5nKEFTQ0lJTGl0ZXJhbChcIiR2aXNpYmxlSW50ZXJmYWNlTmFtZVwiKSkpLCBSZWFk
T25seSB8IERvbnRFbnVtKTtcbiIpOwpAQCAtNTAwOSw3ICs1MDA5LDcgQEAgc3ViIEdlbmVyYXRl
Q29uc3RydWN0b3JIZWxwZXJNZXRob2RzCiAKICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkpTQnVpbHRpbkNvbnN0cnVjdG9yIn0pIHsKICAgICAgICAgbXkgJGluaXRp
YWxpemVGdW5jdGlvbk5hbWUgPSBHZXRKU0J1aWx0aW5GdW5jdGlvbk5hbWUoJHtjbGFzc05hbWV9
LCAiaW5pdGlhbGl6ZSIgLiAke2ludGVyZmFjZU5hbWV9KTsKLSAgICAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgIHNldEluaXRpYWxpemVGdW5jdGlvbih2bSwgKkpTQzo6SlNGdW5jdGlvbjo6
Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCAke2luaXRpYWxpemVGdW5jdGlvbk5hbWV9KHZtKSwg
Z2xvYmFsT2JqZWN0KSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHNl
dEluaXRpYWxpemVGdW5jdGlvbih2bSwgKkpTQzo6SlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1
bmN0aW9uKHZtLCAke2luaXRpYWxpemVGdW5jdGlvbk5hbWV9KHZtKSwgJmdsb2JhbE9iamVjdCkp
O1xuIik7CiAgICAgfQogCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3Rp
dmVET01PYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKaW5kZXggYTE2ODA4ODhjOWNmNjk0NWZmMmMyZDc1
OTNmMmZkYjE3MjBmNTEzNi4uMDI1ODQ0YmJkZjVlYTExYjE0OGNiMjM4ZmIyM2RkYzk1ZmI0M2Nl
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKQEAgLTY5LDE0ICs2OSwxNCBA
QCBwcml2YXRlOgogY2xhc3MgSlNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3IgOiBwdWJs
aWMgRE9NQ29uc3RydWN0b3JPYmplY3QgewogcHJpdmF0ZToKICAgICBKU1Rlc3RBY3RpdmVET01P
YmplY3RDb25zdHJ1Y3RvcihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7Ci0g
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QqKTsKKyAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOwogCiBw
dWJsaWM6CiAgICAgdHlwZWRlZiBET01Db25zdHJ1Y3Rvck9iamVjdCBCYXNlOwogICAgIHN0YXRp
YyBKU1Rlc3RBY3RpdmVET01PYmplY3RDb25zdHJ1Y3RvciogY3JlYXRlKEpTQzo6Vk0mIHZtLCBK
U0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQogICAgIHsKICAgICAgICAgSlNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3IqIHB0ciA9
IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0QWN0aXZlRE9NT2JqZWN0Q29u
c3RydWN0b3I+KHZtLmhlYXApKSBKU1Rlc3RBY3RpdmVET01PYmplY3RDb25zdHJ1Y3RvcihzdHJ1
Y3R1cmUsIGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sIGds
b2JhbE9iamVjdCk7CisgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sICpnbG9iYWxPYmpl
Y3QpOwogICAgICAgICByZXR1cm4gcHRyOwogICAgIH0KIApAQCAtMTExLDExICsxMTEsMTEgQEAg
SlNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3I6OkpTVGVzdEFjdGl2ZURPTU9iamVjdENv
bnN0cnVjdG9yKFN0cnVjdHVyZSogc3QKIHsKIH0KIAotdm9pZCBKU1Rlc3RBY3RpdmVET01PYmpl
Y3RDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQordm9pZCBKU1Rlc3RBY3RpdmVET01PYmplY3RDb25zdHJ1Y3Rvcjo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewog
ICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygp
KSk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVz
dEFjdGl2ZURPTU9iamVjdDo6Z2V0UHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdEFjdGl2ZURPTU9iamVjdDo6Z2V0UHJvdG90eXBlKHZt
LCAmZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogICAg
IHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bmFtZSwganNOb250cml2aWFsU3RyaW5n
KCZ2bSwgU3RyaW5nKEFTQ0lJTGl0ZXJhbCgiVGVzdEFjdGl2ZURPTU9iamVjdCIpKSksIFJlYWRP
bmx5IHwgRG9udEVudW0pOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVu
Z3RoLCBqc051bWJlcigwKSwgUmVhZE9ubHkgfCBEb250RW51bSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2suY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNr
LmNwcAppbmRleCA3Yjc1NzFjYmVhNWZmMzlhNjNhYjY3MzBiZDlkZDI0NmY3ODRmZGQ4Li44ODBk
MjE3MGEyNDczNzc3MDVkMjlhNjFmMzg1NTk4MTdlYzEzYTI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2suY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFjay5j
cHAKQEAgLTYyLDE0ICs2MiwxNCBAQCBKU1Rlc3RDYWxsYmFjazo6fkpTVGVzdENhbGxiYWNrKCkK
IGNsYXNzIEpTVGVzdENhbGxiYWNrQ29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0b3JP
YmplY3QgewogcHJpdmF0ZToKICAgICBKU1Rlc3RDYWxsYmFja0NvbnN0cnVjdG9yKEpTQzo6U3Ry
dWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpT
Qzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlND
OjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7CiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIERPTUNv
bnN0cnVjdG9yT2JqZWN0IEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdENhbGxiYWNrQ29uc3RydWN0
b3IqIGNyZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICB7CiAgICAgICAgIEpTVGVzdENhbGxiYWNr
Q29uc3RydWN0b3IqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0
Q2FsbGJhY2tDb25zdHJ1Y3Rvcj4odm0uaGVhcCkpIEpTVGVzdENhbGxiYWNrQ29uc3RydWN0b3Io
c3RydWN0dXJlLCBnbG9iYWxPYmplY3QpOwotICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZt
LCBnbG9iYWxPYmplY3QpOworICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCAqZ2xvYmFs
T2JqZWN0KTsKICAgICAgICAgcmV0dXJuIHB0cjsKICAgICB9CiAKQEAgLTk5LDcgKzk5LDcgQEAg
SlNUZXN0Q2FsbGJhY2tDb25zdHJ1Y3Rvcjo6SlNUZXN0Q2FsbGJhY2tDb25zdHJ1Y3RvcihTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgSlNET00KIHsKIH0KIAotdm9pZCBKU1Rlc3RDYWxsYmFja0NvbnN0
cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpCit2b2lkIEpTVGVzdENhbGxiYWNrQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBCYXNlOjpmaW5p
c2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNv
bnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFj
ZU9iamVjdC5jcHAKaW5kZXggM2MxZTg4Mzk2MGU4MDJmOTMyMjY0NjlhMjJlYzZmMTE3YTAxYjUw
MC4uODlhOGVhMzJkZGRkZmY1OWFkM2Q1ZDIwZmQ4NmVjMjczNjAwMzU1ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0
cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZh
Y2VPYmplY3QuY3BwCkBAIC02MCwxNCArNjAsMTQgQEAgcHJpdmF0ZToKIGNsYXNzIEpTVGVzdEN1
c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3IgOiBwdWJsaWMg
RE9NQ29uc3RydWN0b3JPYmplY3QgewogcHJpdmF0ZToKICAgICBKU1Rlc3RDdXN0b21Db25zdHJ1
Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yKEpTQzo6U3RydWN0dXJlKiwgSlNE
T01HbG9iYWxPYmplY3QqKTsKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RP
TUdsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9N
R2xvYmFsT2JqZWN0Jik7CiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIERPTUNvbnN0cnVjdG9yT2Jq
ZWN0IEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJm
YWNlT2JqZWN0Q29uc3RydWN0b3IqIGNyZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICB7CiAgICAg
ICAgIEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0
b3IqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0Q3VzdG9tQ29u
c3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3Rvcj4odm0uaGVhcCkpIEpTVGVz
dEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3Ioc3RydWN0
dXJlLCBnbG9iYWxPYmplY3QpOwotICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9i
YWxPYmplY3QpOworICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCAqZ2xvYmFsT2JqZWN0
KTsKICAgICAgICAgcmV0dXJuIHB0cjsKICAgICB9CiAKQEAgLTg2LDExICs4NiwxMSBAQCBKU1Rl
c3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yOjpKU1Rl
c3RDdXN0b21Db25zdHJ1Y3RvcgogewogfQogCi12b2lkIEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9y
V2l0aE5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgSlNUZXN0Q3VzdG9tQ29uc3Ry
dWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0m
IHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIEJhc2U6OmZpbmlz
aENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgcHV0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdEN1c3RvbUNvbnN0cnVj
dG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0OjpnZXRQcm90b3R5cGUodm0sIGdsb2JhbE9iamVjdCks
IERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9J
bnRlcmZhY2VPYmplY3Q6OmdldFByb3RvdHlwZSh2bSwgJmdsb2JhbE9iamVjdCksIERvbnREZWxl
dGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5
TmFtZXMtPm5hbWUsIGpzTm9udHJpdmlhbFN0cmluZygmdm0sIFN0cmluZyhBU0NJSUxpdGVyYWwo
IlRlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdCIpKSksIFJlYWRPbmx5
IHwgRG9udEVudW0pOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3Ro
LCBqc051bWJlcigwKSwgUmVhZE9ubHkgfCBEb250RW51bSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1
c3RvbU5hbWVkR2V0dGVyLmNwcAppbmRleCA2ZDI1MzM4MThiNzY0MTUwM2ZmOGU2OWI0ZjA4OTQ5
ZTM3NmNiMDM1Li5iNjI2ZTQxOTE5MmE1NGVlMTFjZTNhNDM1OGVjOWEyOWY2MTJmOWUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKQEAgLTY3LDE0ICs2NywxNCBAQCBw
cml2YXRlOgogY2xhc3MgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3RvciA6IHB1Ymxp
YyBET01Db25zdHJ1Y3Rvck9iamVjdCB7CiBwcml2YXRlOgogICAgIEpTVGVzdEN1c3RvbU5hbWVk
R2V0dGVyQ29uc3RydWN0b3IoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCopOwot
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Kik7Cisg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTsKIAog
cHVibGljOgogICAgIHR5cGVkZWYgRE9NQ29uc3RydWN0b3JPYmplY3QgQmFzZTsKICAgICBzdGF0
aWMgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3RvciogY3JlYXRlKEpTQzo6Vk0mIHZt
LCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQogICAgIHsKICAgICAgICAgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3Rvciog
cHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3RDdXN0b21OYW1lZEdl
dHRlckNvbnN0cnVjdG9yPih2bS5oZWFwKSkgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1
Y3RvcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRp
b24odm0sIGdsb2JhbE9iamVjdCk7CisgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sICpn
bG9iYWxPYmplY3QpOwogICAgICAgICByZXR1cm4gcHRyOwogICAgIH0KIApAQCAtMTA2LDExICsx
MDYsMTEgQEAgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3Rvcjo6SlNUZXN0Q3VzdG9t
TmFtZWRHZXR0ZXJDb25zdHJ1Y3RvcihTdHJ1Y3R1cmUKIHsKIH0KIAotdm9pZCBKU1Rlc3RDdXN0
b21OYW1lZEdldHRlckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29u
c3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2Jh
bE9iamVjdCkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGlu
aGVyaXRzKGluZm8oKSkpOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJv
dG90eXBlLCBKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6Z2V0UHJvdG90eXBlKHZtLCBnbG9iYWxP
YmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVy
OjpnZXRQcm90b3R5cGUodm0sICZnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkg
fCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBq
c05vbnRyaXZpYWxTdHJpbmcoJnZtLCBTdHJpbmcoQVNDSUlMaXRlcmFsKCJUZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXIiKSkpLCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAgICBwdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIFJlYWRPbmx5IHwgRG9udEVudW0p
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCmluZGV4IGY2YTNjNjFiNzc1
Y2MzMjQyNzk2MWU4Yjc5MzJiOTVlNmY0NjM4NGEuLjlkZTUxN2RmNWZhMjNlMTk1MmIyZTAzZDlm
MzUwYTk5NWJiNzczNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKQEAg
LTY2LDE0ICs2NiwxNCBAQCBwcml2YXRlOgogY2xhc3MgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvckNv
bnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9yT2JqZWN0IHsKIHByaXZhdGU6CiAgICAg
SlNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6U3RydWN0dXJlKiwgSlNET01H
bG9iYWxPYmplY3QqKTsKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RPTUds
b2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9NR2xv
YmFsT2JqZWN0Jik7CiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIERPTUNvbnN0cnVjdG9yT2JqZWN0
IEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvciogY3Jl
YXRlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHsKICAgICAgICAgSlNUZXN0RXZlbnRDb25zdHJ1Y3Rv
ckNvbnN0cnVjdG9yKiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVz
dEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3Rvcj4odm0uaGVhcCkpIEpTVGVzdEV2ZW50Q29uc3Ry
dWN0b3JDb25zdHJ1Y3RvcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIHB0ci0+
ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCk7CisgICAgICAgIHB0ci0+ZmluaXNoQ3Jl
YXRpb24odm0sICpnbG9iYWxPYmplY3QpOwogICAgICAgICByZXR1cm4gcHRyOwogICAgIH0KIApA
QCAtMTM1LDExICsxMzUsMTEgQEAgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yOjpK
U1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoU3RydWN0dXJlKgogewogfQogCi12b2lk
IEpTVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQordm9pZCBKU1Rlc3RFdmVudENvbnN0
cnVjdG9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmpl
Y3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAg
QVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlO
YW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RFdmVudENvbnN0cnVjdG9yOjpnZXRQcm90b3R5cGUodm0s
IGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKKyAgICBw
dXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNUZXN0RXZlbnRDb25z
dHJ1Y3Rvcjo6Z2V0UHJvdG90eXBlKHZtLCAmZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5IHwgRG9udEVudW0pOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+
bmFtZSwganNOb250cml2aWFsU3RyaW5nKCZ2bSwgU3RyaW5nKEFTQ0lJTGl0ZXJhbCgiVGVzdEV2
ZW50Q29uc3RydWN0b3IiKSkpLCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAgICBwdXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFJlYWRPbmx5IHwgRG9u
dEVudW0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKaW5kZXggODNiMzBjZDQwYmQ4MmY4
ZjlhOWM5NGRhNTMwYWI0ZjMyYmExNGEwYi4uNWQ5MTJmMzFmMWFlNGZiM2U4NzM4YjdjOGIxOGRj
YTY0NGUwNWE2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCkBAIC03NiwxNCArNzYsMTQg
QEAgcHJpdmF0ZToKIGNsYXNzIEpTVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IgOiBwdWJsaWMg
RE9NQ29uc3RydWN0b3JPYmplY3QgewogcHJpdmF0ZToKICAgICBKU1Rlc3RFdmVudFRhcmdldENv
bnN0cnVjdG9yKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKLSAgICB2b2lk
IGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCopOworICAgIHZvaWQg
ZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7CiAKIHB1YmxpYzoK
ICAgICB0eXBlZGVmIERPTUNvbnN0cnVjdG9yT2JqZWN0IEJhc2U7CiAgICAgc3RhdGljIEpTVGVz
dEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IqIGNyZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICB7CiAg
ICAgICAgIEpTVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IqIHB0ciA9IG5ldyAoTm90TnVsbCwg
SlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3Rvcj4odm0uaGVhcCkp
IEpTVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3Ioc3RydWN0dXJlLCBnbG9iYWxPYmplY3QpOwot
ICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmplY3QpOworICAgICAgICBw
dHItPmZpbmlzaENyZWF0aW9uKHZtLCAqZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgcmV0dXJuIHB0
cjsKICAgICB9CiAKQEAgLTExNSwxMSArMTE1LDExIEBAIEpTVGVzdEV2ZW50VGFyZ2V0Q29uc3Ry
dWN0b3I6OkpTVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IoU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
CiB7CiB9CiAKLXZvaWQgSlNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQordm9pZCBKU1Rlc3RF
dmVudFRhcmdldENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFs
T2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwog
ICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPnByb3RvdHlwZSwgSlNUZXN0RXZlbnRUYXJnZXQ6OmdldFByb3RvdHlwZSh2bSwg
Z2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOworICAgIHB1
dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RFdmVudFRhcmdl
dDo6Z2V0UHJvdG90eXBlKHZtLCAmZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
IHwgRG9udEVudW0pOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bmFtZSwg
anNOb250cml2aWFsU3RyaW5nKCZ2bSwgU3RyaW5nKEFTQ0lJTGl0ZXJhbCgiVGVzdEV2ZW50VGFy
Z2V0IikpKSwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBSZWFkT25seSB8IERvbnRFbnVtKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFeGNlcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEV4Y2VwdGlvbi5jcHAKaW5kZXggNDRiNjcxMWJlOTFhYjc4OWVhMjE5YWQ5NTYwNTI0
OWEwZTk0ZjA1NC4uMDBmMDIyZDI4NTQxZmZlMzg1M2Q3NDBjNzE4MGU2YzIxYWY5YjYwMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4
Y2VwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEV4Y2VwdGlvbi5jcHAKQEAgLTYzLDE0ICs2MywxNCBAQCBwcml2YXRlOgogY2xhc3Mg
SlNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0b3JPYmplY3Qg
ewogcHJpdmF0ZToKICAgICBKU1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OlN0cnVjdHVy
ZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7Ci0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZN
JiwgSlNET01HbG9iYWxPYmplY3QqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0m
LCBKU0RPTUdsb2JhbE9iamVjdCYpOwogCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBET01Db25zdHJ1
Y3Rvck9iamVjdCBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3Rvciog
Y3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHsKICAgICAgICAgSlNUZXN0RXhjZXB0aW9uQ29u
c3RydWN0b3IqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0RXhj
ZXB0aW9uQ29uc3RydWN0b3I+KHZtLmhlYXApKSBKU1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3Rvcihz
dHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0s
IGdsb2JhbE9iamVjdCk7CisgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sICpnbG9iYWxP
YmplY3QpOwogICAgICAgICByZXR1cm4gcHRyOwogICAgIH0KIApAQCAtMTAyLDExICsxMDIsMTEg
QEAgSlNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3I6OkpTVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9y
KFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0QKIHsKIH0KIAotdm9pZCBKU1Rlc3RFeGNlcHRpb25D
b25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQordm9pZCBKU1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIEJhc2U6
OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAg
cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdEV4Y2VwdGlv
bjo6Z2V0UHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkg
fCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5
cGUsIEpTVGVzdEV4Y2VwdGlvbjo6Z2V0UHJvdG90eXBlKHZtLCAmZ2xvYmFsT2JqZWN0KSwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJv
cGVydHlOYW1lcy0+bmFtZSwganNOb250cml2aWFsU3RyaW5nKCZ2bSwgU3RyaW5nKEFTQ0lJTGl0
ZXJhbCgiVGVzdEV4Y2VwdGlvbiIpKSksIFJlYWRPbmx5IHwgRG9udEVudW0pOwogICAgIHB1dERp
cmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgUmVhZE9ubHkg
fCBEb250RW51bSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAK
aW5kZXggOTE3YjM4ZDc2MDBhZDM5ODU4YTFlYWUxYTAxNThmYjI4NDFhNzZkMy4uOTAxY2NjMGEz
YWY1OTY1N2Q5YmVhZDZhM2IxY2YyYzc4NTE5YTYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5l
cmF0ZUlzUmVhY2hhYmxlLmNwcApAQCAtNjAsMTQgKzYwLDE0IEBAIHByaXZhdGU6CiBjbGFzcyBK
U1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0
b3JPYmplY3QgewogcHJpdmF0ZToKICAgICBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3Ry
dWN0b3IoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCopOwotICAgIHZvaWQgZmlu
aXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Kik7CisgICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTsKIAogcHVibGljOgogICAg
IHR5cGVkZWYgRE9NQ29uc3RydWN0b3JPYmplY3QgQmFzZTsKICAgICBzdGF0aWMgSlNUZXN0R2Vu
ZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpTQzo6U3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAg
ewogICAgICAgICBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IqIHB0ciA9IG5l
dyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNv
bnN0cnVjdG9yPih2bS5oZWFwKSkgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9y
KHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2
bSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwgKmdsb2Jh
bE9iamVjdCk7CiAgICAgICAgIHJldHVybiBwdHI7CiAgICAgfQogCkBAIC04NSwxMSArODUsMTEg
QEAgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yOjpKU1Rlc3RHZW5lcmF0ZUlz
UmVhY2hhYmxlQ29uc3RydWN0b3IoU3RydWMKIHsKIH0KIAotdm9pZCBKU1Rlc3RHZW5lcmF0ZUlz
UmVhY2hhYmxlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0
cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxP
YmplY3QpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIEFTU0VSVChpbmhl
cml0cyhpbmZvKCkpKTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3Rv
dHlwZSwgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZTo6Z2V0UHJvdG90eXBlKHZtLCBnbG9iYWxP
YmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFi
bGU6OmdldFByb3RvdHlwZSh2bSwgJmdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25s
eSB8IERvbnRFbnVtKTsKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPm5hbWUs
IGpzTm9udHJpdmlhbFN0cmluZygmdm0sIFN0cmluZyhBU0NJSUxpdGVyYWwoIlRlc3RHZW5lcmF0
ZUlzUmVhY2hhYmxlIikpKSwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KHZt
LCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBSZWFkT25seSB8IERvbnRF
bnVtKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKaW5kZXggNDk4YzczZmM3OTRhY2I1ZjQ2MGU5
ODQzYTJlNjgwMDE2M2FhNjQwMy4uOTdiYTU2ZDAyNGU3ZTZlZTVlZTIyZTU2OGQ5OWY0ZmQ1NzZl
NWE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKQEAgLTE0NiwxNCArMTQ2LDE0IEBAIHByaXZh
dGU6CiBjbGFzcyBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvciA6IHB1YmxpYyBET01Db25zdHJ1
Y3Rvck9iamVjdCB7CiBwcml2YXRlOgogICAgIEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEpT
Qzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKLSAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3JlYXRp
b24oSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7CiAKIHB1YmxpYzoKICAgICB0eXBlZGVm
IERPTUNvbnN0cnVjdG9yT2JqZWN0IEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdEludGVyZmFjZUNv
bnN0cnVjdG9yKiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgewogICAgICAgICBKU1Rlc3RJ
bnRlcmZhY2VDb25zdHJ1Y3RvciogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2Vs
bDxKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcj4odm0uaGVhcCkpIEpTVGVzdEludGVyZmFjZUNv
bnN0cnVjdG9yKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgcHRyLT5maW5pc2hD
cmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2
bSwgKmdsb2JhbE9iamVjdCk7CiAgICAgICAgIHJldHVybiBwdHI7CiAgICAgfQogCkBAIC0yOTQs
MTEgKzI5NCwxMSBAQCBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6SlNUZXN0SW50ZXJmYWNl
Q29uc3RydWN0b3IoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRAogewogfQogCi12b2lkIEpTVGVz
dEludGVyZmFjZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7
CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZv
KCkpKTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNU
ZXN0SW50ZXJmYWNlOjpnZXRQcm90b3R5cGUodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUg
fCBSZWFkT25seSB8IERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFt
ZXMtPnByb3RvdHlwZSwgSlNUZXN0SW50ZXJmYWNlOjpnZXRQcm90b3R5cGUodm0sICZnbG9iYWxP
YmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBqc05vbnRyaXZpYWxTdHJpbmcoJnZtLCBTdHJp
bmcoQVNDSUlMaXRlcmFsKCJUZXN0SW50ZXJmYWNlIikpKSwgUmVhZE9ubHkgfCBEb250RW51bSk7
CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDEp
LCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpT
VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yVGFibGVWYWx1ZXMsICp0aGlzKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RKU0J1aWx0aW5D
b25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCmluZGV4IDFiN2FmMmRhYzFmODJkN2E5NjRk
MmZmNjQwMDI5ZGU1Mjc3NDk4ZTUuLmZkNzA5YmZlNDg3NTIwZTUxY2YzOTJhZDk2NjUxOTVhZTFk
NjZmZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcApAQCAt
NjEsMTQgKzYxLDE0IEBAIHByaXZhdGU6CiBjbGFzcyBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rv
ckNvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9ySlNCdWlsdGluT2JqZWN0IHsKIHBy
aXZhdGU6CiAgICAgSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OlN0
cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7Ci0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihK
U0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpT
Qzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOwogCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBET01D
b25zdHJ1Y3RvckpTQnVpbHRpbk9iamVjdCBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3RKU0J1aWx0
aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgewog
ICAgICAgICBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKiBwdHIgPSBuZXcg
KE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29u
c3RydWN0b3I+KHZtLmhlYXApKSBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9y
KHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2
bSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwgKmdsb2Jh
bE9iamVjdCk7CiAgICAgICAgIHJldHVybiBwdHI7CiAgICAgfQogCkBAIC05NSwxNCArOTUsMTQg
QEAgSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcjo6SlNUZXN0SlNCdWlsdGlu
Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihTdHIKIHsKIH0KIAotdm9pZCBKU1Rlc3RKU0J1aWx0aW5D
b25zdHJ1Y3RvckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29u
c3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2Jh
bE9iamVjdCkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGlu
aGVyaXRzKGluZm8oKSkpOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJv
dG90eXBlLCBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvcjo6Z2V0UHJvdG90eXBlKHZtLCBnbG9i
YWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CisgICAgcHV0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdEpTQnVpbHRpbkNvbnN0
cnVjdG9yOjpnZXRQcm90b3R5cGUodm0sICZnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkgfCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5u
YW1lLCBqc05vbnRyaXZpYWxTdHJpbmcoJnZtLCBTdHJpbmcoQVNDSUlMaXRlcmFsKCJUZXN0SlNC
dWlsdGluQ29uc3RydWN0b3IiKSkpLCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAgICBwdXREaXJl
Y3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIFJlYWRPbmx5IHwg
RG9udEVudW0pOwotICAgIHNldEluaXRpYWxpemVGdW5jdGlvbih2bSwgKkpTQzo6SlNGdW5jdGlv
bjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCB0ZXN0SlNCdWlsdGluQ29uc3RydWN0b3JJbml0
aWFsaXplVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29kZUdlbmVyYXRvcih2bSksIGdsb2JhbE9i
amVjdCkpOworICAgIHNldEluaXRpYWxpemVGdW5jdGlvbih2bSwgKkpTQzo6SlNGdW5jdGlvbjo6
Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCB0ZXN0SlNCdWlsdGluQ29uc3RydWN0b3JJbml0aWFs
aXplVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29kZUdlbmVyYXRvcih2bSksICZnbG9iYWxPYmpl
Y3QpKTsKIH0KIAogQ29uc3RydWN0VHlwZSBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0
cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVj
dERhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKaW5k
ZXggYmRmZjE3NjFkYTlmZWU0NDUyYTkxYmI3NGNjZmRiZjM0OWIyNmNiMC4uOGQxNzU5ZGIyMjMx
Mzk0OWFlOTQwZDY3NmE3YjQ4ZTdlYzEwMzRhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmNwcApAQCAtNjcsMTQgKzY3LDE0IEBAIHByaXZhdGU6CiBjbGFz
cyBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29u
c3RydWN0b3JPYmplY3QgewogcHJpdmF0ZToKICAgICBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyQ29uc3RydWN0b3IoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCopOwotICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Kik7CisgICAg
dm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTsKIAogcHVi
bGljOgogICAgIHR5cGVkZWYgRE9NQ29uc3RydWN0b3JPYmplY3QgQmFzZTsKICAgICBzdGF0aWMg
SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yKiBjcmVhdGUoSlNDOjpWTSYg
dm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpCiAgICAgewogICAgICAgICBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3Ry
dWN0b3IqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yPih2bS5oZWFwKSkgSlNUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lckNvbnN0cnVjdG9yKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAg
cHRyLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcHRyLT5maW5p
c2hDcmVhdGlvbih2bSwgKmdsb2JhbE9iamVjdCk7CiAgICAgICAgIHJldHVybiBwdHI7CiAgICAg
fQogCkBAIC05MiwxMSArOTIsMTEgQEAgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0
cnVjdG9yOjpKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3IKIHsKIH0KIAot
dm9pZCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgSlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0s
IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3Jl
YXRpb24odm0pOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICBwdXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lcjo6Z2V0UHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9u
bHkgfCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90
b3R5cGUsIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmdldFByb3RvdHlwZSh2bSwgJmds
b2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAgICBwdXRE
aXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPm5hbWUsIGpzTm9udHJpdmlhbFN0cmluZygmdm0s
IFN0cmluZyhBU0NJSUxpdGVyYWwoIlRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIikpKSwgUmVh
ZE9ubHkgfCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5s
ZW5ndGgsIGpzTnVtYmVyKDApLCBSZWFkT25seSB8IERvbnRFbnVtKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0
cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZENvbnN0cnVjdG9yLmNwcAppbmRleCBiMWNjZWJlNGFlYjU0MzVlNzNiOWIyMWFlOTEz
M2E3NzRmNjY1N2Y2Li4xODFlNDFiNWI1MmM0ZmU1YWJmMWJmZGFlMjlhYTE1MjhkYmUyMjkyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCkBAIC02MywxNCArNjMsMTQgQEAg
cHJpdmF0ZToKIGNsYXNzIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3RvciA6IHB1Ymxp
YyBET01Db25zdHJ1Y3Rvck9iamVjdCB7CiBwcml2YXRlOgogICAgIEpTVGVzdE5hbWVkQ29uc3Ry
dWN0b3JDb25zdHJ1Y3RvcihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7Ci0g
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QqKTsKKyAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOwogCiBw
dWJsaWM6CiAgICAgdHlwZWRlZiBET01Db25zdHJ1Y3Rvck9iamVjdCBCYXNlOwogICAgIHN0YXRp
YyBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3IqIGNyZWF0ZShKU0M6OlZNJiB2bSwg
SlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKICAgICB7CiAgICAgICAgIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3RvciogcHRy
ID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3ROYW1lZENvbnN0cnVjdG9y
Q29uc3RydWN0b3I+KHZtLmhlYXApKSBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3Io
c3RydWN0dXJlLCBnbG9iYWxPYmplY3QpOwotICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZt
LCBnbG9iYWxPYmplY3QpOworICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCAqZ2xvYmFs
T2JqZWN0KTsKICAgICAgICAgcmV0dXJuIHB0cjsKICAgICB9CiAKQEAgLTg4LDcgKzg4LDcgQEAg
cHVibGljOgogICAgIHN0YXRpYyBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yTmFtZWRDb25zdHJ1Y3Rv
ciogY3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHsKICAgICAgICAgSlNUZXN0TmFtZWRDb25z
dHJ1Y3Rvck5hbWVkQ29uc3RydWN0b3IqIGNvbnN0cnVjdG9yID0gbmV3IChOb3ROdWxsLCBKU0M6
OmFsbG9jYXRlQ2VsbDxKU1Rlc3ROYW1lZENvbnN0cnVjdG9yTmFtZWRDb25zdHJ1Y3Rvcj4odm0u
aGVhcCkpIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JOYW1lZENvbnN0cnVjdG9yKHN0cnVjdHVyZSwg
Z2xvYmFsT2JqZWN0KTsKLSAgICAgICAgY29uc3RydWN0b3ItPmZpbmlzaENyZWF0aW9uKHZtLCBn
bG9iYWxPYmplY3QpOworICAgICAgICBjb25zdHJ1Y3Rvci0+ZmluaXNoQ3JlYXRpb24odm0sICpn
bG9iYWxPYmplY3QpOwogICAgICAgICByZXR1cm4gY29uc3RydWN0b3I7CiAgICAgfQogCkBAIC0x
MDMsNyArMTAzLDcgQEAgcHJpdmF0ZToKICAgICBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yTmFtZWRD
b25zdHJ1Y3RvcihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7CiAgICAgc3Rh
dGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1Rlc3ROYW1l
ZENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKik7CiAgICAgc3RhdGljIEpTQzo6Q29uc3RydWN0
VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQzo6SlNDZWxsKiwgSlNDOjpDb25zdHJ1Y3REYXRhJik7
Ci0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QqKTsK
KyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOwog
fTsKIAogY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcjo6
c19pbmZvID0geyAiVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3RvciIsICZCYXNlOjpzX2lu
Zm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVj
dG9yKSB9OwpAQCAtMTEzLDExICsxMTMsMTEgQEAgSlNUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0
cnVjdG9yOjpKU1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3IoU3RydWN0dXJlKgogewog
fQogCi12b2lkIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQordm9pZCBKU1Rlc3RO
YW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01H
bG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2
bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotICAgIHB1dERpcmVjdCh2bSwgdm0u
cHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yOjpnZXRQcm90
b3R5cGUodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVt
KTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNUZXN0
TmFtZWRDb25zdHJ1Y3Rvcjo6Z2V0UHJvdG90eXBlKHZtLCAmZ2xvYmFsT2JqZWN0KSwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+bmFtZSwganNOb250cml2aWFsU3RyaW5nKCZ2bSwgU3RyaW5nKEFTQ0lJTGl0ZXJh
bCgiVGVzdE5hbWVkQ29uc3RydWN0b3IiKSkpLCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAgICBw
dXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIFJlYWRP
bmx5IHwgRG9udEVudW0pOwogfQpAQCAtMTUyLDExICsxNTIsMTEgQEAgSlNUZXN0TmFtZWRDb25z
dHJ1Y3Rvck5hbWVkQ29uc3RydWN0b3I6OkpTVGVzdE5hbWVkQ29uc3RydWN0b3JOYW1lZENvbnN0
cnVjdG9yKFMKIHsKIH0KIAotdm9pZCBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yTmFtZWRDb25zdHJ1
Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQordm9pZCBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yTmFtZWRDb25zdHJ1Y3Rvcjo6ZmluaXNo
Q3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewotICAg
IEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7CisgICAgQmFzZTo6ZmluaXNoQ3Jl
YXRpb24oJmdsb2JhbE9iamVjdCk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotICAg
IHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3ROYW1lZENv
bnN0cnVjdG9yOjpnZXRQcm90b3R5cGUodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBS
ZWFkT25seSB8IERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMt
PnByb3RvdHlwZSwgSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6Z2V0UHJvdG90eXBlKHZtLCAmZ2xv
YmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogICAgIHB1dERp
cmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bmFtZSwganNOb250cml2aWFsU3RyaW5nKCZ2bSwg
U3RyaW5nKEFTQ0lJTGl0ZXJhbCgiQXVkaW8iKSkpLCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAg
ICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIFJl
YWRPbmx5IHwgRG9udEVudW0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCmluZGV4IDBlOTBhZDA5NTA1ZWRiOWYy
NDFjYWFiNzc3NzU5ZTlmYTRlMTU1YTIuLjYxMjVlZGQ4Njc3MDg2NzJiNGU5N2E5YWQ1NGJiZWYx
OTY4MTcyMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKQEAgLTY2LDE0ICs2NiwxNCBAQCBwcml2YXRlOgogY2xh
c3MgSlNUZXN0Tm9kZUNvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9yT2JqZWN0IHsK
IHByaXZhdGU6CiAgICAgSlNUZXN0Tm9kZUNvbnN0cnVjdG9yKEpTQzo6U3RydWN0dXJlKiwgSlNE
T01HbG9iYWxPYmplY3QqKTsKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RP
TUdsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9N
R2xvYmFsT2JqZWN0Jik7CiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIERPTUNvbnN0cnVjdG9yT2Jq
ZWN0IEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdE5vZGVDb25zdHJ1Y3RvciogY3JlYXRlKEpTQzo6
Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQogICAgIHsKICAgICAgICAgSlNUZXN0Tm9kZUNvbnN0cnVjdG9yKiBwdHIgPSBu
ZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdE5vZGVDb25zdHJ1Y3Rvcj4odm0u
aGVhcCkpIEpTVGVzdE5vZGVDb25zdHJ1Y3RvcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCk7Ci0g
ICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCk7CisgICAgICAgIHB0
ci0+ZmluaXNoQ3JlYXRpb24odm0sICpnbG9iYWxPYmplY3QpOwogICAgICAgICByZXR1cm4gcHRy
OwogICAgIH0KIApAQCAtMTAxLDExICsxMDEsMTEgQEAgSlNUZXN0Tm9kZUNvbnN0cnVjdG9yOjpK
U1Rlc3ROb2RlQ29uc3RydWN0b3IoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2IK
IHsKIH0KIAotdm9pZCBKU1Rlc3ROb2RlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgSlNUZXN0Tm9kZUNvbnN0
cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxP
YmplY3QpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIEFTU0VSVChpbmhl
cml0cyhpbmZvKCkpKTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3Rv
dHlwZSwgSlNUZXN0Tm9kZTo6Z2V0UHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdE5vZGU6OmdldFByb3RvdHlwZSh2bSwgJmdsb2JhbE9i
amVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAgICBwdXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPm5hbWUsIGpzTm9udHJpdmlhbFN0cmluZygmdm0sIFN0cmlu
ZyhBU0NJSUxpdGVyYWwoIlRlc3ROb2RlIikpKSwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAgICAg
cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBSZWFk
T25seSB8IERvbnRFbnVtKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmNwcApp
bmRleCBhOGNhNGUxNzliNjI0M2JiZDg1YTI0YzE2YjNkZDA0M2MzMjdlZThiLi4yMGE4YjZhNTRl
ZmI4OWFmY2U0NGIzN2ZiZTQ2NzQ1NTZkMDBmN2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVy
bWluaXN0aWMuY3BwCkBAIC04MywxNCArODMsMTQgQEAgcHJpdmF0ZToKIGNsYXNzIEpTVGVzdE5v
bmRldGVybWluaXN0aWNDb25zdHJ1Y3RvciA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7
CiBwcml2YXRlOgogICAgIEpTVGVzdE5vbmRldGVybWluaXN0aWNDb25zdHJ1Y3RvcihKU0M6OlN0
cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7Ci0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihK
U0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpT
Qzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOwogCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBET01D
b25zdHJ1Y3Rvck9iamVjdCBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3ROb25kZXRlcm1pbmlzdGlj
Q29uc3RydWN0b3IqIGNyZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICB7CiAgICAgICAgIEpTVGVz
dE5vbmRldGVybWluaXN0aWNDb25zdHJ1Y3RvciogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFs
bG9jYXRlQ2VsbDxKU1Rlc3ROb25kZXRlcm1pbmlzdGljQ29uc3RydWN0b3I+KHZtLmhlYXApKSBK
U1Rlc3ROb25kZXRlcm1pbmlzdGljQ29uc3RydWN0b3Ioc3RydWN0dXJlLCBnbG9iYWxPYmplY3Qp
OwotICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmplY3QpOworICAgICAg
ICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCAqZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgcmV0dXJu
IHB0cjsKICAgICB9CiAKQEAgLTEwOCwxMSArMTA4LDExIEBAIEpTVGVzdE5vbmRldGVybWluaXN0
aWNDb25zdHJ1Y3Rvcjo6SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY0NvbnN0cnVjdG9yKFN0cnVjdHVy
ZSoKIHsKIH0KIAotdm9pZCBKU1Rlc3ROb25kZXRlcm1pbmlzdGljQ29uc3RydWN0b3I6OmZpbmlz
aENyZWF0aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQg
SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY0NvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0s
IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3Jl
YXRpb24odm0pOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICBwdXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYzo6
Z2V0UHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBE
b250RW51bSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUs
IEpTVGVzdE5vbmRldGVybWluaXN0aWM6OmdldFByb3RvdHlwZSh2bSwgJmdsb2JhbE9iamVjdCks
IERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAgICBwdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPm5hbWUsIGpzTm9udHJpdmlhbFN0cmluZygmdm0sIFN0cmluZyhBU0NJ
SUxpdGVyYWwoIlRlc3ROb25kZXRlcm1pbmlzdGljIikpKSwgUmVhZE9ubHkgfCBEb250RW51bSk7
CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDAp
LCBSZWFkT25seSB8IERvbnRFbnVtKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggODcyMzM2ZTE1YzdkZmU4
MTkzZjg5ODY5ZjNmMzA4Njg0YjY2NGZmNi4uNTUwOGYzMzMyODc4ODAyYzUzMGY2NWJkYzA0MTBi
ZGVlNzA2YzdhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTM0NSwxNCArMzQ1LDE0IEBAIHByaXZhdGU6CiBj
bGFzcyBKU1Rlc3RPYmpDb25zdHJ1Y3RvciA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7
CiBwcml2YXRlOgogICAgIEpTVGVzdE9iakNvbnN0cnVjdG9yKEpTQzo6U3RydWN0dXJlKiwgSlNE
T01HbG9iYWxPYmplY3QqKTsKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RP
TUdsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9N
R2xvYmFsT2JqZWN0Jik7CiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIERPTUNvbnN0cnVjdG9yT2Jq
ZWN0IEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdE9iakNvbnN0cnVjdG9yKiBjcmVhdGUoSlNDOjpW
TSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCiAgICAgewogICAgICAgICBKU1Rlc3RPYmpDb25zdHJ1Y3RvciogcHRyID0gbmV3
IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3RPYmpDb25zdHJ1Y3Rvcj4odm0uaGVh
cCkpIEpTVGVzdE9iakNvbnN0cnVjdG9yKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsKLSAgICAg
ICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcHRyLT5m
aW5pc2hDcmVhdGlvbih2bSwgKmdsb2JhbE9iamVjdCk7CiAgICAgICAgIHJldHVybiBwdHI7CiAg
ICAgfQogCkBAIC00ODcsMTEgKzQ4NywxMSBAQCBKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6SlNUZXN0
T2JqQ29uc3RydWN0b3IoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZQogewog
fQogCi12b2lkIEpTVGVzdE9iakNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIEpTVGVzdE9iakNvbnN0cnVjdG9y
OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3Qp
CiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIEFTU0VSVChpbmhlcml0cyhp
bmZvKCkpKTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwg
SlNUZXN0T2JqOjpnZXRQcm90b3R5cGUodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBS
ZWFkT25seSB8IERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMt
PnByb3RvdHlwZSwgSlNUZXN0T2JqOjpnZXRQcm90b3R5cGUodm0sICZnbG9iYWxPYmplY3QpLCBE
b250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5uYW1lLCBqc05vbnRyaXZpYWxTdHJpbmcoJnZtLCBTdHJpbmcoQVNDSUlM
aXRlcmFsKCJUZXN0T2JqZWN0IikpKSwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAgICAgcHV0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDIpLCBSZWFkT25seSB8
IERvbnRFbnVtKTsKICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdE9iakNvbnN0
cnVjdG9yVGFibGVWYWx1ZXMsICp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzLmNwcAppbmRleCBlMWQxMzMxOTQwN2ZhYjFkOTk0MjM4NzliOTJkNmNiNmM1
MDc5M2E2Li42ZmU4Y2Y1MzJiYzQ5Y2RlOTU5NmJlNzcwOTllOTU1ODA5MjEyYmQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9ycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCkBAIC02MywxNCArNjMs
MTQgQEAgcHJpdmF0ZToKIGNsYXNzIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1
Y3RvciA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7CiBwcml2YXRlOgogICAgIEpTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvcihKU0M6OlN0cnVjdHVyZSosIEpTRE9N
R2xvYmFsT2JqZWN0Kik7Ci0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01H
bG9iYWxPYmplY3QqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RPTUds
b2JhbE9iamVjdCYpOwogCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBET01Db25zdHJ1Y3Rvck9iamVj
dCBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0
b3IqIGNyZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICB7CiAgICAgICAgIEpTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvciogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9j
YXRlQ2VsbDxKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3I+KHZtLmhlYXAp
KSBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3Ioc3RydWN0dXJlLCBnbG9i
YWxPYmplY3QpOwotICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmplY3Qp
OworICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCAqZ2xvYmFsT2JqZWN0KTsKICAgICAg
ICAgcmV0dXJuIHB0cjsKICAgICB9CiAKQEAgLTE3MywxMSArMTczLDExIEBAIEpTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcjo6SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
c0NvbnN0cnVjdG9yCiB7CiB9CiAKLXZvaWQgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0Nv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCit2b2lkIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcjo6
ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQog
ewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoaW5m
bygpKSk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6OmdldFByb3RvdHlwZSh2bSwgZ2xvYmFsT2JqZWN0
KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOworICAgIHB1dERpcmVjdCh2bSwg
dm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
OjpnZXRQcm90b3R5cGUodm0sICZnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkg
fCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBq
c05vbnRyaXZpYWxTdHJpbmcoJnZtLCBTdHJpbmcoQVNDSUlMaXRlcmFsKCJUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9ycyIpKSksIFJlYWRPbmx5IHwgRG9udEVudW0pOwogICAgIHB1dERpcmVjdCh2
bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgUmVhZE9ubHkgfCBEb250
RW51bSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHAKaW5kZXggZGYxYzk2
NTkzYjMzMWZlMTgyMDFlMDVhMGY3ZTZhNGJkNjg0NDYwYS4uMWRjOTlhNTVjOGViMjlmMjFjYWVj
MGMzMzUyMmQ3MWVlZGU1OGI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNw
cApAQCAtNjksMTQgKzY5LDE0IEBAIHByaXZhdGU6CiBjbGFzcyBKU1Rlc3RPdmVycmlkZUJ1aWx0
aW5zQ29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0b3JPYmplY3QgewogcHJpdmF0ZToK
ICAgICBKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zQ29uc3RydWN0b3IoSlNDOjpTdHJ1Y3R1cmUqLCBK
U0RPTUdsb2JhbE9iamVjdCopOwotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpT
RE9NR2xvYmFsT2JqZWN0Kik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNE
T01HbG9iYWxPYmplY3QmKTsKIAogcHVibGljOgogICAgIHR5cGVkZWYgRE9NQ29uc3RydWN0b3JP
YmplY3QgQmFzZTsKICAgICBzdGF0aWMgSlNUZXN0T3ZlcnJpZGVCdWlsdGluc0NvbnN0cnVjdG9y
KiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgewogICAgICAgICBKU1Rlc3RPdmVycmlkZUJ1
aWx0aW5zQ29uc3RydWN0b3IqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8
SlNUZXN0T3ZlcnJpZGVCdWlsdGluc0NvbnN0cnVjdG9yPih2bS5oZWFwKSkgSlNUZXN0T3ZlcnJp
ZGVCdWlsdGluc0NvbnN0cnVjdG9yKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAg
cHRyLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcHRyLT5maW5p
c2hDcmVhdGlvbih2bSwgKmdsb2JhbE9iamVjdCk7CiAgICAgICAgIHJldHVybiBwdHI7CiAgICAg
fQogCkBAIC0xMDgsMTEgKzEwOCwxMSBAQCBKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zQ29uc3RydWN0
b3I6OkpTVGVzdE92ZXJyaWRlQnVpbHRpbnNDb25zdHJ1Y3RvcihTdHJ1Y3R1cmUqCiB7CiB9CiAK
LXZvaWQgSlNUZXN0T3ZlcnJpZGVCdWlsdGluc0NvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIEpTVGVzdE92ZXJy
aWRlQnVpbHRpbnNDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2Jh
bE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsK
ICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdE92ZXJyaWRlQnVpbHRpbnM6OmdldFByb3RvdHlw
ZSh2bSwgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwor
ICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RPdmVy
cmlkZUJ1aWx0aW5zOjpnZXRQcm90b3R5cGUodm0sICZnbG9iYWxPYmplY3QpLCBEb250RGVsZXRl
IHwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5uYW1lLCBqc05vbnRyaXZpYWxTdHJpbmcoJnZtLCBTdHJpbmcoQVNDSUlMaXRlcmFsKCJU
ZXN0T3ZlcnJpZGVCdWlsdGlucyIpKSksIFJlYWRPbmx5IHwgRG9udEVudW0pOwogICAgIHB1dERp
cmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgUmVhZE9ubHkg
fCBEb250RW51bSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2UuY3BwCmluZGV4IGJhZGVhMGNhMzY3YWQxM2E4MGM5ZDdiMzAwNjcy
MzhlZmY0ZTQzZWEuLjIxNGRkZjgwOTRiYjhiMDI0MTU0N2FiMjZlMTBjNDYwMTgyMTgyYmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UuY3BwCkBAIC03NCwxNCArNzQsMTQgQEAgcHJpdmF0ZToKIGNsYXNzIEpTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9y
T2JqZWN0IHsKIHByaXZhdGU6CiAgICAgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlQ29uc3RydWN0b3IoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCopOwotICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Kik7CisgICAg
dm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTsKIAogcHVi
bGljOgogICAgIHR5cGVkZWYgRE9NQ29uc3RydWN0b3JPYmplY3QgQmFzZTsKICAgICBzdGF0aWMg
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IqIGNyZWF0ZShK
U0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKICAgICB7CiAgICAgICAgIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZUNvbnN0cnVjdG9yKiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVD
ZWxsPEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yPih2bS5o
ZWFwKSkgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3Ioc3Ry
dWN0dXJlLCBnbG9iYWxPYmplY3QpOwotICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCBn
bG9iYWxPYmplY3QpOworICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCAqZ2xvYmFsT2Jq
ZWN0KTsKICAgICAgICAgcmV0dXJuIHB0cjsKICAgICB9CiAKQEAgLTk5LDExICs5OSwxMSBAQCBK
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6SlNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZQogewogfQogCi12b2lkIEpTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xv
YmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0p
OwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnBy
b3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlOjpnZXRQcm90b3R5cGUodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25s
eSB8IERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3Rv
dHlwZSwgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpnZXRQcm90b3R5cGUo
dm0sICZnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAg
ICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBqc05vbnRyaXZpYWxTdHJp
bmcoJnZtLCBTdHJpbmcoQVNDSUlMaXRlcmFsKCJUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlIikpKSwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBSZWFkT25seSB8IERvbnRFbnVtKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RUeXBlZGVmcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0VHlwZWRlZnMuY3BwCmluZGV4IGM5ZWFlNDdlYzM4NTlkMjk0ODZjNzUxMDA2MzFi
MTM2ZTc0ZjMwODEuLmQ4MDAzYzRlYTY0MTkwOGMxY2NhYmU5N2RmMTBjNjcyMjVhZjkwOTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RU
eXBlZGVmcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFR5cGVkZWZzLmNwcApAQCAtMTAwLDE0ICsxMDAsMTQgQEAgcHJpdmF0ZToKIGNsYXNz
IEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0b3JPYmplY3Qg
ewogcHJpdmF0ZToKICAgICBKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTQzo6U3RydWN0dXJl
KiwgSlNET01HbG9iYWxPYmplY3QqKTsKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0m
LCBKU0RPTUdsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYs
IEpTRE9NR2xvYmFsT2JqZWN0Jik7CiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIERPTUNvbnN0cnVj
dG9yT2JqZWN0IEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IqIGNy
ZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKICAgICB7CiAgICAgICAgIEpTVGVzdFR5cGVkZWZzQ29uc3Ry
dWN0b3IqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0VHlwZWRl
ZnNDb25zdHJ1Y3Rvcj4odm0uaGVhcCkpIEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3Ioc3RydWN0
dXJlLCBnbG9iYWxPYmplY3QpOwotICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9i
YWxPYmplY3QpOworICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCAqZ2xvYmFsT2JqZWN0
KTsKICAgICAgICAgcmV0dXJuIHB0cjsKICAgICB9CiAKQEAgLTE2NCwxMSArMTY0LDExIEBAIEpT
VGVzdFR5cGVkZWZzQ29uc3RydWN0b3I6OkpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IoU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NCiB7CiB9CiAKLXZvaWQgSlNUZXN0VHlwZWRlZnNDb25zdHJ1
Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQordm9pZCBKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgQmFzZTo6ZmluaXNo
Q3JlYXRpb24odm0pOwogICAgIEFTU0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICBwdXREaXJl
Y3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNUZXN0VHlwZWRlZnM6OmdldFBy
b3RvdHlwZSh2bSwgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVu
dW0pOworICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rl
c3RUeXBlZGVmczo6Z2V0UHJvdG90eXBlKHZtLCAmZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5IHwgRG9udEVudW0pOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+bmFtZSwganNOb250cml2aWFsU3RyaW5nKCZ2bSwgU3RyaW5nKEFTQ0lJTGl0ZXJhbCgiVGVz
dFR5cGVkZWZzIikpKSwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDIpLCBSZWFkT25seSB8IERvbnRFbnVt
KTsKICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0
b3JUYWJsZVZhbHVlcywgKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHAKaW5kZXggODljNmQxYTU0Njc4Mzlm
NWJlMjVhNGQ3Zjc5OTc2YjFhNmJhODUxNS4uNmQxNTAwY2YyYzA3YWQyZGFlNWU3YTIxODQ1YzU3
N2ZiM2Y2Njk1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTYXR0cmlidXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwCkBAIC02MywxNCArNjMsMTQgQEAgcHJpdmF0ZToK
IGNsYXNzIEpTYXR0cmlidXRlQ29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0b3JPYmpl
Y3QgewogcHJpdmF0ZToKICAgICBKU2F0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTQzo6U3RydWN0dXJl
KiwgSlNET01HbG9iYWxPYmplY3QqKTsKLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0m
LCBKU0RPTUdsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYs
IEpTRE9NR2xvYmFsT2JqZWN0Jik7CiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIERPTUNvbnN0cnVj
dG9yT2JqZWN0IEJhc2U7CiAgICAgc3RhdGljIEpTYXR0cmlidXRlQ29uc3RydWN0b3IqIGNyZWF0
ZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKICAgICB7CiAgICAgICAgIEpTYXR0cmlidXRlQ29uc3RydWN0b3Iq
IHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNhdHRyaWJ1dGVDb25zdHJ1
Y3Rvcj4odm0uaGVhcCkpIEpTYXR0cmlidXRlQ29uc3RydWN0b3Ioc3RydWN0dXJlLCBnbG9iYWxP
YmplY3QpOwotICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmplY3QpOwor
ICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtLCAqZ2xvYmFsT2JqZWN0KTsKICAgICAgICAg
cmV0dXJuIHB0cjsKICAgICB9CiAKQEAgLTg4LDExICs4OCwxMSBAQCBKU2F0dHJpYnV0ZUNvbnN0
cnVjdG9yOjpKU2F0dHJpYnV0ZUNvbnN0cnVjdG9yKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RP
TUdsb2JhbAogewogfQogCi12b2lkIEpTYXR0cmlidXRlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgSlNhdHRy
aWJ1dGVDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVj
dCYgZ2xvYmFsT2JqZWN0KQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBB
U1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5wcm90b3R5cGUsIEpTYXR0cmlidXRlOjpnZXRQcm90b3R5cGUodm0sIGdsb2JhbE9iamVj
dCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3Qodm0s
IHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNhdHRyaWJ1dGU6OmdldFByb3RvdHlwZSh2
bSwgJmdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAg
ICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPm5hbWUsIGpzTm9udHJpdmlhbFN0cmlu
Zygmdm0sIFN0cmluZyhBU0NJSUxpdGVyYWwoImF0dHJpYnV0ZSIpKSksIFJlYWRPbmx5IHwgRG9u
dEVudW0pOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051
bWJlcigwKSwgUmVhZE9ubHkgfCBEb250RW51bSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAKaW5kZXggNjczZDNj
ZjljYjZmZWIxMjVhODliYTBjMWU5ODJjZjY1MWFhMWY1MC4uNjcwMzk3MTljZDUzZWI0ZWM5Njhl
YjZjZTg4NDQ0NDE4OTFlNTk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNwcApAQCAtNjAsMTQgKzYwLDE0IEBAIHBy
aXZhdGU6CiBjbGFzcyBKU3JlYWRvbmx5Q29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0
b3JPYmplY3QgewogcHJpdmF0ZToKICAgICBKU3JlYWRvbmx5Q29uc3RydWN0b3IoSlNDOjpTdHJ1
Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCopOwotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlND
OjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Kik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6
OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTsKIAogcHVibGljOgogICAgIHR5cGVkZWYgRE9NQ29u
c3RydWN0b3JPYmplY3QgQmFzZTsKICAgICBzdGF0aWMgSlNyZWFkb25seUNvbnN0cnVjdG9yKiBj
cmVhdGUoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgewogICAgICAgICBKU3JlYWRvbmx5Q29uc3RydWN0
b3IqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNyZWFkb25seUNvbnN0
cnVjdG9yPih2bS5oZWFwKSkgSlNyZWFkb25seUNvbnN0cnVjdG9yKHN0cnVjdHVyZSwgZ2xvYmFs
T2JqZWN0KTsKLSAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsK
KyAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwgKmdsb2JhbE9iamVjdCk7CiAgICAgICAg
IHJldHVybiBwdHI7CiAgICAgfQogCkBAIC04NSwxMSArODUsMTEgQEAgSlNyZWFkb25seUNvbnN0
cnVjdG9yOjpKU3JlYWRvbmx5Q29uc3RydWN0b3IoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9N
R2xvYmFsT2IKIHsKIH0KIAotdm9pZCBKU3JlYWRvbmx5Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgSlNyZWFk
b25seUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0
JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIEFT
U0VSVChpbmhlcml0cyhpbmZvKCkpKTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFt
ZXMtPnByb3RvdHlwZSwgSlNyZWFkb25seTo6Z2V0UHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3Qp
LCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0KHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTcmVhZG9ubHk6OmdldFByb3RvdHlwZSh2bSwg
Jmdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAgICBw
dXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPm5hbWUsIGpzTm9udHJpdmlhbFN0cmluZygm
dm0sIFN0cmluZyhBU0NJSUxpdGVyYWwoInJlYWRvbmx5IikpKSwgUmVhZE9ubHkgfCBEb250RW51
bSk7CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVy
KDApLCBSZWFkT25seSB8IERvbnRFbnVtKTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>