<?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>121372</bug_id>
          
          <creation_ts>2013-09-14 15:51:55 -0700</creation_ts>
          <short_desc>[CTTE] Node subclasses should take a Document by reference in their constructor (Part 4)</short_desc>
          <delta_ts>2013-09-14 17:38:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>gtk-ews</cc>
    
    <cc>rego+ews</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>929311</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-09-14 15:51:55 -0700</bug_when>
    <thetext>[CTTE] Node subclasses should take a Document by reference in their constructor (Part 4)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929314</commentid>
    <comment_count>1</comment_count>
      <attachid>211673</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-09-14 15:53:47 -0700</bug_when>
    <thetext>Created attachment 211673
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929323</commentid>
    <comment_count>2</comment_count>
      <attachid>211673</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-09-14 16:19:45 -0700</bug_when>
    <thetext>Comment on attachment 211673
Patch

Attachment 211673 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/1861522</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929327</commentid>
    <comment_count>3</comment_count>
      <attachid>211676</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-09-14 16:46:18 -0700</bug_when>
    <thetext>Created attachment 211676
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929335</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-09-14 17:38:23 -0700</bug_when>
    <thetext>Committed r155791: &lt;http://trac.webkit.org/changeset/155791&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211673</attachid>
            <date>2013-09-14 15:53:47 -0700</date>
            <delta_ts>2013-09-14 16:46:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121372-20130914155346.patch</filename>
            <type>text/plain</type>
            <size>144046</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBACisyMDEzLTA5LTE0ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0NUVEVdIE5vZGUgc3ViY2xhc3NlcyBz
aG91bGQgdGFrZSBhIERvY3VtZW50IGJ5IHJlZmVyZW5jZSBpbiB0aGVpciBjb25zdHJ1Y3RvciAo
UGFydCA0KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTIxMzcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q29udmVydHMgdGhlIGZvbGxvd2luZyB0byB0YWtlIGEgRG9jdW1lbnQgcmVmZXJlbmNlOgorICAg
ICAgICAgICAgLSBIVE1MRm9ybUNvbnRyb2xFbGVtZW50CisgICAgICAgICAgICAtIEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnRXaXRoU3RhdGUKKyAgICAgICAgICAgIC0gSFRNTE1hcEVsZW1lbnQKKyAg
ICAgICAgICAgIC0gSFRNTE1hcnF1ZWVFbGVtZW50CisgICAgICAgICAgICAtIEhUTUxNZWRpYUVs
ZW1lbnQKKyAgICAgICAgICAgIC0gSFRNTE1lbnVFbGVtZW50CisgICAgICAgICAgICAtIEhUTUxN
ZXRhRWxlbWVudAorICAgICAgICAgICAgLSBIVE1MTWV0ZXJFbGVtZW50CisgICAgICAgICAgICAt
IEhUTUxPTGlzdEVsZW1lbnQKKyAgICAgICAgICAgIC0gSFRNTE9iamVjdEVsZW1lbnQKKyAgICAg
ICAgICAgIC0gSFRNTE9wdEdyb3VwRWxlbWVudAorICAgICAgICAgICAgLSBIVE1MT3B0aW9uRWxl
bWVudAorICAgICAgICAgICAgLSBIVE1MT3V0cHV0RWxlbWVudAorICAgICAgICAgICAgLSBIVE1M
UGFyYWdyYXBoRWxlbWVudAorICAgICAgICAgICAgLSBIVE1MUGFyYW1FbGVtZW50CisgICAgICAg
ICAgICAtIEhUTUxQcm9ncmVzc0VsZW1lbnQKKyAgICAgICAgICAgIC0gSFRNTFNjcmlwdEVsZW1l
bnQKKyAgICAgICAgICAgIC0gSFRNTFNlbGVjdEVsZW1lbnQKKyAgICAgICAgICAgIC0gSFRNTFNv
dXJjZUVsZW1lbnQKKyAgICAgICAgICAgIC0gSFRNTFNwYW5FbGVtZW50CisgICAgICAgICAgICAt
IEhUTUxTdHlsZUVsZW1lbnQKKyAgICAgICAgICAgIC0gSFRNTFN1bW1hcnlFbGVtZW50CisgICAg
ICAgICAgICAtIEhUTUxUYWJsZUNlbGxFbGVtZW50CisgICAgICAgICAgICAtIEhUTUxUYWJsZUVs
ZW1lbnQKKyAgICAgICAgICAgIC0gSFRNTFRhYmxlUm93RWxlbWVudAorICAgICAgICAgICAgLSBI
VE1MVGFibGVTZWN0aW9uRWxlbWVudAorICAgICAgICAgICAgLSBIVE1MVGVtcGxhdGVFbGVtZW50
CisgICAgICAgICAgICAtIEhUTUxUZXh0QXJlYUVsZW1lbnQKKyAgICAgICAgICAgIC0gSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQKKyAgICAgICAgICAgIC0gSFRNTFRpdGxlRWxlbWVudAorICAg
ICAgICAgICAgLSBIVE1MVHJhY2tFbGVtZW50CisgICAgICAgICAgICAtIEhUTUxVTGlzdEVsZW1l
bnQKKyAgICAgICAgICAgIC0gSW5saW5lU3R5bGVTaGVldE93bmVyCisgICAgICAgICAgICAtIExh
YmVsYWJsZUVsZW1lbnQKKyAgICAgICAgICAgIC0gQWxsIHRoZSBNZWRpYUNvbnRyb2wgZWxlbWVu
dHMKKwogMjAxMy0wOS0xNCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFtDVFRFXSBOb2RlIHN1YmNsYXNzZXMgc2hvdWxkIHRha2UgYSBEb2N1bWVudCBieSByZWZlcmVu
Y2UgaW4gdGhlaXIgY29uc3RydWN0b3IgKFBhcnQgMykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Rv
bS9JbmxpbmVTdHlsZVNoZWV0T3duZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9JbmxpbmVTdHlsZVNoZWV0T3duZXIuY3BwCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9kb20vSW5saW5lU3R5bGVTaGVldE93bmVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzYsMTMgKzM2LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSW5saW5lU3R5bGVT
aGVldE93bmVyOjpJbmxpbmVTdHlsZVNoZWV0T3duZXIoRG9jdW1lbnQqIGRvY3VtZW50LCBib29s
IGNyZWF0ZWRCeVBhcnNlcikKK0lubGluZVN0eWxlU2hlZXRPd25lcjo6SW5saW5lU3R5bGVTaGVl
dE93bmVyKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCiAgICAgOiBt
X2lzUGFyc2luZ0NoaWxkcmVuKGNyZWF0ZWRCeVBhcnNlcikKICAgICAsIG1fbG9hZGluZyhmYWxz
ZSkKICAgICAsIG1fc3RhcnRMaW5lTnVtYmVyKFdURjo6T3JkaW5hbE51bWJlcjo6YmVmb3JlRmly
c3QoKSkKIHsKLSAgICBpZiAoY3JlYXRlZEJ5UGFyc2VyICYmIGRvY3VtZW50ICYmIGRvY3VtZW50
LT5zY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIoKSAmJiAhZG9jdW1lbnQtPmlzSW5Eb2N1bWVudFdy
aXRlKCkpCi0gICAgICAgIG1fc3RhcnRMaW5lTnVtYmVyID0gZG9jdW1lbnQtPnNjcmlwdGFibGVE
b2N1bWVudFBhcnNlcigpLT5saW5lTnVtYmVyKCk7CisgICAgaWYgKGNyZWF0ZWRCeVBhcnNlciAm
JiBkb2N1bWVudC5zY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIoKSAmJiAhZG9jdW1lbnQuaXNJbkRv
Y3VtZW50V3JpdGUoKSkKKyAgICAgICAgbV9zdGFydExpbmVOdW1iZXIgPSBkb2N1bWVudC5zY3Jp
cHRhYmxlRG9jdW1lbnRQYXJzZXIoKS0+bGluZU51bWJlcigpOwogfQogCiBJbmxpbmVTdHlsZVNo
ZWV0T3duZXI6On5JbmxpbmVTdHlsZVNoZWV0T3duZXIoKQpJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL0lubGluZVN0eWxlU2hlZXRPd25lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9JbmxpbmVTdHlsZVNoZWV0T3duZXIuaAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0lubGluZVN0eWxlU2hlZXRPd25lci5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
Miw3ICszMiw3IEBAIGNsYXNzIEVsZW1lbnQ7CiAKIGNsYXNzIElubGluZVN0eWxlU2hlZXRPd25l
ciB7CiBwdWJsaWM6Ci0gICAgSW5saW5lU3R5bGVTaGVldE93bmVyKERvY3VtZW50KiwgYm9vbCBj
cmVhdGVkQnlQYXJzZXIpOworICAgIElubGluZVN0eWxlU2hlZXRPd25lcihEb2N1bWVudCYsIGJv
b2wgY3JlYXRlZEJ5UGFyc2VyKTsKICAgICB+SW5saW5lU3R5bGVTaGVldE93bmVyKCk7CiAKICAg
ICB2b2lkIHNldENvbnRlbnRUeXBlKGNvbnN0IEF0b21pY1N0cmluZyYgY29udGVudFR5cGUpIHsg
bV9jb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2h0bWxlZGl0aW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L2h0bWxlZGl0aW5nLmNwcAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUvZWRp
dGluZy9odG1sZWRpdGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkxMCw3ICs5MTAsNyBAQCBQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVEZWZhdWx0UGFyCiAgICAgY2FzZSBFZGl0b3JQ
YXJhZ3JhcGhTZXBhcmF0b3JJc0RpdjoKICAgICAgICAgcmV0dXJuIEhUTUxEaXZFbGVtZW50Ojpj
cmVhdGUoKmRvY3VtZW50KTsKICAgICBjYXNlIEVkaXRvclBhcmFncmFwaFNlcGFyYXRvcklzUDoK
LSAgICAgICAgcmV0dXJuIEhUTUxQYXJhZ3JhcGhFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwor
ICAgICAgICByZXR1cm4gSFRNTFBhcmFncmFwaEVsZW1lbnQ6OmNyZWF0ZSgqZG9jdW1lbnQpOwog
ICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtOTI0LDEyICs5MjQsMTIgQEAg
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlQnJlYWtFbGVtZQogCiBQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBjcmVhdGVPcmRlcmVkTGlzdEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQog
ewotICAgIHJldHVybiBIVE1MT0xpc3RFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIHJl
dHVybiBIVE1MT0xpc3RFbGVtZW50OjpjcmVhdGUoKmRvY3VtZW50KTsKIH0KIAogUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gY3JlYXRlVW5vcmRlcmVkTGlzdEVsZW1lbnQoRG9jdW1lbnQqIGRvY3Vt
ZW50KQogewotICAgIHJldHVybiBIVE1MVUxpc3RFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwor
ICAgIHJldHVybiBIVE1MVUxpc3RFbGVtZW50OjpjcmVhdGUoKmRvY3VtZW50KTsKIH0KIAogUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlTGlzdEl0ZW1FbGVtZW50KERvY3VtZW50KiBkb2N1
bWVudCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF1ZGlvRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXVkaW9FbGVtZW50LmNwcAkocmV2
aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXVkaW9FbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1
c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBIVE1MQXVkaW9FbGVtZW50OjpIVE1MQXVkaW9F
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwg
Ym9vbCBjcmVhdGVkQnlQYXJzZXIpCi0gICAgOiBIVE1MTWVkaWFFbGVtZW50KHRhZ05hbWUsICZk
b2N1bWVudCwgY3JlYXRlZEJ5UGFyc2VyKQorICAgIDogSFRNTE1lZGlhRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCwgY3JlYXRlZEJ5UGFyc2VyKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKGF1
ZGlvVGFnKSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50
LmNwcAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9u
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogaW5saW5lIEhUTUxCdXR0b25F
bGVtZW50OjpIVE1MQnV0dG9uRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKLSAgICA6IEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQodGFnTmFtZSwgJmRvY3VtZW50LCBmb3JtKQorICAgIDogSFRNTEZvcm1D
b250cm9sRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSkKICAgICAsIG1fdHlwZShTVUJN
SVQpCiAgICAgLCBtX2lzQWN0aXZhdGVkU3VibWl0KGZhbHNlKQogewpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1Nzg4KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC05MCw3ICs5MCw3IEBAIHByaXZhdGU6CiAKIFBhc3NSZWZQdHI8RGV0YWlsc1N1bW1hcnlF
bGVtZW50PiBEZXRhaWxzU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQp
CiB7Ci0gICAgUmVmUHRyPEhUTUxTdW1tYXJ5RWxlbWVudD4gc3VtbWFyeSA9IEhUTUxTdW1tYXJ5
RWxlbWVudDo6Y3JlYXRlKHN1bW1hcnlUYWcsICZkb2N1bWVudCk7CisgICAgUmVmUHRyPEhUTUxT
dW1tYXJ5RWxlbWVudD4gc3VtbWFyeSA9IEhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlKHN1bW1h
cnlUYWcsIGRvY3VtZW50KTsKICAgICBzdW1tYXJ5LT5hcHBlbmRDaGlsZChUZXh0OjpjcmVhdGUo
JmRvY3VtZW50LCBkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCkpLCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKIAogICAgIFJlZlB0cjxEZXRhaWxzU3VtbWFyeUVsZW1lbnQ+IGRldGFpbHNTdW1tYXJ5
ID0gYWRvcHRSZWYobmV3IERldGFpbHNTdW1tYXJ5RWxlbWVudChkb2N1bWVudCkpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCShyZXZpc2lvbiAx
NTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIGlubGluZSBIVE1MRmllbGRTZXRFbGVtZW50OjpIVE1M
RmllbGRTZXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBk
b2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQotICAgIDogSFRNTEZvcm1Db250cm9sRWxl
bWVudCh0YWdOYW1lLCAmZG9jdW1lbnQsIGZvcm0pCisgICAgOiBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50LCBmb3JtKQogICAgICwgbV9kb2N1bWVudFZlcnNpb24oMCkK
IHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShmaWVsZHNldFRhZykpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU3
ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCi1IVE1MRm9ybUNv
bnRyb2xFbGVtZW50OjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQorSFRN
TEZvcm1Db250cm9sRWxlbWVudDo6SFRNTEZvcm1Db250cm9sRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9y
bSkKICAgICA6IExhYmVsYWJsZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX2Rp
c2FibGVkKGZhbHNlKQogICAgICwgbV9pc1JlYWRPbmx5KGZhbHNlKQpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgJKHJldmlzaW9uIDE1NTc4OCkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDYsNyArMTA2LDcgQEAgcHVibGljOgogICAgIHVzaW5nIE5vZGU6OmRlcmVm
OwogCiBwcm90ZWN0ZWQ6Ci0gICAgSFRNTEZvcm1Db250cm9sRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCopOworICAgIEhUTUxG
b3JtQ29udHJvbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQm
LCBIVE1MRm9ybUVsZW1lbnQqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIHJlcXVpcmVkQXR0cmlidXRlQ2hhbmdlZCgpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUu
Y3BwCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29u
dHJvbEVsZW1lbnRXaXRoU3RhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw4ICszNCw4IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0
ZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCogZG9jLCBIVE1MRm9ybUVsZW1lbnQqIGYpCi0gICAgOiBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50KHRhZ05hbWUsIGRvYywgZikKK0hUTUxGb3JtQ29udHJvbEVsZW1lbnRX
aXRoU3RhdGU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0p
CisgICAgOiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBmb3JtKQog
ewogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnRX
aXRoU3RhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29u
dHJvbEVsZW1lbnRXaXRoU3RhdGUuaAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogICAgIHZvaWQgbm90aWZ5Rm9ybVN0YXRlQ2hhbmdl
ZCgpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCop
OworICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqKTsKIAogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRBdXRvY29tcGxldGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNo
UGFyc2luZ0NoaWxkcmVuKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5jcHAJKHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMSw3ICsxMTEsNyBAQCBjb25zdCBp
bnQgZGVmYXVsdFNpemUgPSAyMDsKIGNvbnN0IGludCBtYXhTYXZlZFJlc3VsdHMgPSAyNTY7CiAK
IEhUTUxJbnB1dEVsZW1lbnQ6OkhUTUxJbnB1dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0sIGJvb2wg
Y3JlYXRlZEJ5UGFyc2VyKQotICAgIDogSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQodGFnTmFt
ZSwgJmRvY3VtZW50LCBmb3JtKQorICAgIDogSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQodGFn
TmFtZSwgZG9jdW1lbnQsIGZvcm0pCiAgICAgLCBtX3NpemUoZGVmYXVsdFNpemUpCiAgICAgLCBt
X21heExlbmd0aChtYXhpbXVtTGVuZ3RoKQogICAgICwgbV9tYXhSZXN1bHRzKC0xKQpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTc4
OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIEtleWdl
blNlbGVjdEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQotICAgICAgICA6IEhUTUxTZWxlY3RF
bGVtZW50KHNlbGVjdFRhZywgJmRvY3VtZW50LCAwKQorICAgICAgICA6IEhUTUxTZWxlY3RFbGVt
ZW50KHNlbGVjdFRhZywgZG9jdW1lbnQsIDApCiAgICAgewogICAgICAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRvSWQsICgiLXdlYmtpdC1rZXlnZW4tc2VsZWN0Iiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICBzZXRQc2V1ZG8o
cHNldWRvSWQpOwpAQCAtNjUsNyArNjUsNyBAQCBwcml2YXRlOgogfTsKIAogaW5saW5lIEhUTUxL
ZXlnZW5FbGVtZW50OjpIVE1MS2V5Z2VuRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKLSAgICA6IEhU
TUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUodGFnTmFtZSwgJmRvY3VtZW50LCBmb3JtKQor
ICAgIDogSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSh0YWdOYW1lLCBkb2N1bWVudCwg
Zm9ybSkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShrZXlnZW5UYWcpKTsKIApAQCAtNzUsNyAr
NzUsNyBAQCBpbmxpbmUgSFRNTEtleWdlbkVsZW1lbnQ6OkhUTUxLZXlnZW5FbGVtCiAKICAgICBS
ZWZQdHI8SFRNTFNlbGVjdEVsZW1lbnQ+IHNlbGVjdCA9IEtleWdlblNlbGVjdEVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBrZXlzLnNpemUoKTsg
KytpKSB7Ci0gICAgICAgIFJlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gb3B0aW9uID0gSFRNTE9w
dGlvbkVsZW1lbnQ6OmNyZWF0ZSgmZG9jdW1lbnQpOworICAgICAgICBSZWZQdHI8SFRNTE9wdGlv
bkVsZW1lbnQ+IG9wdGlvbiA9IEhUTUxPcHRpb25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwog
ICAgICAgICBzZWxlY3QtPmFwcGVuZENoaWxkKG9wdGlvbiwgSUdOT1JFX0VYQ0VQVElPTik7CiAg
ICAgICAgIG9wdGlvbi0+YXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKCZkb2N1bWVudCwga2V5c1tp
XSksIElHTk9SRV9FWENFUFRJT04pOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1hcEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1hcEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNYXBFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksMTggKzM5LDE4IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotSFRNTE1h
cEVsZW1lbnQ6OkhUTUxNYXBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50KiBkb2N1bWVudCkKLSAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQor
SFRNTE1hcEVsZW1lbnQ6OkhUTUxNYXBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsICZkb2N1
bWVudCkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShtYXBUYWcpKTsKIH0KIAotUGFzc1JlZlB0
cjxIVE1MTWFwRWxlbWVudD4gSFRNTE1hcEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1l
bnQpCitQYXNzUmVmUHRyPEhUTUxNYXBFbGVtZW50PiBIVE1MTWFwRWxlbWVudDo6Y3JlYXRlKERv
Y3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxNYXBFbGVt
ZW50KG1hcFRhZywgZG9jdW1lbnQpKTsKIH0KIAotUGFzc1JlZlB0cjxIVE1MTWFwRWxlbWVudD4g
SFRNTE1hcEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxNYXBFbGVtZW50PiBIVE1MTWFwRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxNYXBFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5oCShyZXZp
c2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDggKzMyLDggQEAgY2xhc3MgSFRNTEltYWdlRWxlbWVudDsKICAg
ICAKIGNsYXNzIEhUTUxNYXBFbGVtZW50IEZJTkFMIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MTWFwRWxlbWVudD4gY3JlYXRlKERvY3Vt
ZW50Kik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTE1hcEVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1M
TWFwRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRN
TE1hcEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKICAg
ICB2aXJ0dWFsIH5IVE1MTWFwRWxlbWVudCgpOwogCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBn
ZXROYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CkBAIC00NCw3ICs0NCw3IEBAIHB1Ymxp
YzoKICAgICBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBhcmVhcygpOwogCiBwcml2YXRlOgot
ICAgIEhUTUxNYXBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAg
IEhUTUxNYXBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAg
dmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9taWNTdHJpbmcmKSBPVkVSUklERTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWFycXVlZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1hcnF1ZWVFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwxNCArMzUs
MTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwog
Ci1pbmxpbmUgSFRNTE1hcnF1ZWVFbGVtZW50OjpIVE1MTWFycXVlZUVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQotICAgIDogSFRNTEVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQpCitp
bmxpbmUgSFRNTE1hcnF1ZWVFbGVtZW50OjpIVE1MTWFycXVlZUVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogSFRNTEVsZW1lbnQo
dGFnTmFtZSwgJmRvY3VtZW50KQorICAgICwgQWN0aXZlRE9NT2JqZWN0KCZkb2N1bWVudCkKIHsK
ICAgICBBU1NFUlQoaGFzVGFnTmFtZShtYXJxdWVlVGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8SFRN
TE1hcnF1ZWVFbGVtZW50PiBIVE1MTWFycXVlZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxNYXJx
dWVlRWxlbWVudD4gSFRNTE1hcnF1ZWVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxIVE1MTWFycXVl
ZUVsZW1lbnQ+IG1hcnF1ZWVFbGVtZW50KGFkb3B0UmVmKG5ldyBIVE1MTWFycXVlZUVsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQpKSk7CiAgICAgbWFycXVlZUVsZW1lbnQtPnN1c3BlbmRJZk5lZWRl
ZCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5oCShyZXZp
c2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBAIGNsYXNzIFJlbmRlck1hcnF1ZWU7CiAK
IGNsYXNzIEhUTUxNYXJxdWVlRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBIVE1MRWxlbWVudCwgcHJp
dmF0ZSBBY3RpdmVET01PYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhU
TUxNYXJxdWVlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCop
OworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxNYXJxdWVlRWxlbWVudD4gY3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgaW50IG1pbmltdW1EZWxheSgpIGNv
bnN0OwogCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldExvb3AoaW50LCBF
eGNlcHRpb25Db2RlJik7CiAgICAgCiBwcml2YXRlOgotICAgIEhUTUxNYXJxdWVlRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBIVE1MTWFycXVlZUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNQ
cmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVBy
b3BlcnR5U2V0KikgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1MSw5ICsyNTEsOSBAQCBwcml2
YXRlOgogfTsKICNlbmRpZgogCi1IVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBjcmVh
dGVkQnlQYXJzZXIpCi0gICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAs
IEFjdGl2ZURPTU9iamVjdChkb2N1bWVudCkKK0hUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBi
b29sIGNyZWF0ZWRCeVBhcnNlcikKKyAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsICZkb2N1bWVu
dCkKKyAgICAsIEFjdGl2ZURPTU9iamVjdCgmZG9jdW1lbnQpCiAgICAgLCBtX2xvYWRUaW1lcih0
aGlzLCAmSFRNTE1lZGlhRWxlbWVudDo6bG9hZFRpbWVyRmlyZWQpCiAgICAgLCBtX3Byb2dyZXNz
RXZlbnRUaW1lcih0aGlzLCAmSFRNTE1lZGlhRWxlbWVudDo6cHJvZ3Jlc3NFdmVudFRpbWVyRmly
ZWQpCiAgICAgLCBtX3BsYXliYWNrUHJvZ3Jlc3NUaW1lcih0aGlzLCAmSFRNTE1lZGlhRWxlbWVu
dDo6cGxheWJhY2tQcm9ncmVzc1RpbWVyRmlyZWQpCkBAIC0zMzEsMjAgKzMzMSwyMCBAQCBIVE1M
TWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KGNvbnN0CiAgICAgTE9HKE1lZGlhLCAiSFRN
TE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudCIpOwogICAgIHNldEhhc0N1c3RvbVN0eWxl
UmVzb2x2ZUNhbGxiYWNrcygpOwogCi0gICAgZG9jdW1lbnQtPnJlZ2lzdGVyRm9yTWVkaWFWb2x1
bWVDYWxsYmFja3ModGhpcyk7Ci0gICAgZG9jdW1lbnQtPnJlZ2lzdGVyRm9yUHJpdmF0ZUJyb3dz
aW5nU3RhdGVDaGFuZ2VkQ2FsbGJhY2tzKHRoaXMpOworICAgIGRvY3VtZW50LnJlZ2lzdGVyRm9y
TWVkaWFWb2x1bWVDYWxsYmFja3ModGhpcyk7CisgICAgZG9jdW1lbnQucmVnaXN0ZXJGb3JQcml2
YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWRDYWxsYmFja3ModGhpcyk7CiAKLSAgICBpZiAoZG9jdW1l
bnQtPnNldHRpbmdzKCkgJiYgZG9jdW1lbnQtPnNldHRpbmdzKCktPm1lZGlhUGxheWJhY2tSZXF1
aXJlc1VzZXJHZXN0dXJlKCkpIHsKKyAgICBpZiAoZG9jdW1lbnQuc2V0dGluZ3MoKSAmJiBkb2N1
bWVudC5zZXR0aW5ncygpLT5tZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSgpKSB7CiAg
ICAgICAgIGFkZEJlaGF2aW9yUmVzdHJpY3Rpb24oUmVxdWlyZVVzZXJHZXN0dXJlRm9yUmF0ZUNo
YW5nZVJlc3RyaWN0aW9uKTsKICAgICAgICAgYWRkQmVoYXZpb3JSZXN0cmljdGlvbihSZXF1aXJl
VXNlckdlc3R1cmVGb3JMb2FkUmVzdHJpY3Rpb24pOwogICAgIH0KIAotICAgIGFkZEVsZW1lbnRU
b0RvY3VtZW50TWFwKHRoaXMsIGRvY3VtZW50KTsKKyAgICBhZGRFbGVtZW50VG9Eb2N1bWVudE1h
cCh0aGlzLCAmZG9jdW1lbnQpOwogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgIGRvY3Vt
ZW50LT5yZWdpc3RlckZvckNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFja3ModGhpcyk7
Ci0gICAgaWYgKGRvY3VtZW50LT5wYWdlKCkpCi0gICAgICAgIG1fY2FwdGlvbkRpc3BsYXlNb2Rl
ID0gZG9jdW1lbnQtPnBhZ2UoKS0+Z3JvdXAoKS5jYXB0aW9uUHJlZmVyZW5jZXMoKS0+Y2FwdGlv
bkRpc3BsYXlNb2RlKCk7CisgICAgZG9jdW1lbnQucmVnaXN0ZXJGb3JDYXB0aW9uUHJlZmVyZW5j
ZXNDaGFuZ2VkQ2FsbGJhY2tzKHRoaXMpOworICAgIGlmIChkb2N1bWVudC5wYWdlKCkpCisgICAg
ICAgIG1fY2FwdGlvbkRpc3BsYXlNb2RlID0gZG9jdW1lbnQucGFnZSgpLT5ncm91cCgpLmNhcHRp
b25QcmVmZXJlbmNlcygpLT5jYXB0aW9uRGlzcGxheU1vZGUoKTsKICNlbmRpZgogfQogCkBAIC00
NjQ3LDcgKzQ2NDcsNyBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmNyZWF0ZU1lZGlhQ29udHJv
CiAgICAgaWYgKGhhc01lZGlhQ29udHJvbHMoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAg
ICBSZWZQdHI8TWVkaWFDb250cm9scz4gbWVkaWFDb250cm9scyA9IE1lZGlhQ29udHJvbHM6OmNy
ZWF0ZSgmZG9jdW1lbnQoKSk7CisgICAgUmVmUHRyPE1lZGlhQ29udHJvbHM+IG1lZGlhQ29udHJv
bHMgPSBNZWRpYUNvbnRyb2xzOjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgaWYgKCFtZWRpYUNv
bnRyb2xzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzgxLDcgKzM4MSw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMo
KSBPVkVSUklERTsKIAogcHJvdGVjdGVkOgotICAgIEhUTUxNZWRpYUVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50KiwgYm9vbCk7CisgICAgSFRNTE1lZGlhRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sKTsKICAgICB2aXJ0dWFsIH5IVE1MTWVk
aWFFbGVtZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lbnVFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
OSwxMyArMjksMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRN
TE5hbWVzOwogCi1pbmxpbmUgSFRNTE1lbnVFbGVtZW50OjpIVE1MTWVudUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQotICAgIDogSFRNTEVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCitpbmxpbmUgSFRNTE1lbnVFbGVtZW50OjpIVE1MTWVu
dUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50
KQorICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgJmRvY3VtZW50KQogewogICAgIEFTU0VSVCho
YXNUYWdOYW1lKG1lbnVUYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxIVE1MTWVudUVsZW1lbnQ+IEhU
TUxNZW51RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8SFRNTE1lbnVFbGVtZW50PiBIVE1MTWVudUVsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1l
bnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MTWVudUVsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lbnVFbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuaAko
cmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMjksMTAgKzI5LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgSFRNTE1lbnVFbGVtZW50IEZJTkFMIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MTWVudUVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1M
TWVudUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKICAg
ICAKIHByaXZhdGU6Ci0gICAgSFRNTE1lbnVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCopOworICAgIEhUTUxNZW51RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmKTsKIH07CiAKIH0gLy9uYW1lc3BhY2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1ldGFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZXRhRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1ldGFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTMgKzMxLDEzIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotaW5s
aW5lIEhUTUxNZXRhRWxlbWVudDo6SFRNTE1ldGFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKLSAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KQoraW5saW5lIEhUTUxNZXRhRWxlbWVudDo6SFRNTE1ldGFFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IEhUTUxF
bGVtZW50KHRhZ05hbWUsICZkb2N1bWVudCkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShtZXRh
VGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTE1ldGFFbGVtZW50PiBIVE1MTWV0YUVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQp
CitQYXNzUmVmUHRyPEhUTUxNZXRhRWxlbWVudD4gSFRNTE1ldGFFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgSFRNTE1ldGFFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgJKHJldmlzaW9uIDE1NTc4
OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDE0ICsyOSwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxN
ZXRhRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8SFRNTE1ldGFFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTE1ldGFFbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBTdHJpbmcgY29u
dGVudCgpIGNvbnN0OwogICAgIFN0cmluZyBodHRwRXF1aXYoKSBjb25zdDsKICAgICBTdHJpbmcg
bmFtZSgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIEhUTUxNZXRhRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBIVE1MTWV0YUVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFp
bmVyTm9kZSopIE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVs
ZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZXRlckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotSFRNTE1ldGVyRWxl
bWVudDo6SFRNTE1ldGVyRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCogZG9jdW1lbnQpCitIVE1MTWV0ZXJFbGVtZW50OjpIVE1MTWV0ZXJFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IExhYmVs
YWJsZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUo
bWV0ZXJUYWcpKTsKQEAgLTQ5LDcgKzQ5LDcgQEAgSFRNTE1ldGVyRWxlbWVudDo6fkhUTUxNZXRl
ckVsZW1lbnQoKQogewogfQogCi1QYXNzUmVmUHRyPEhUTUxNZXRlckVsZW1lbnQ+IEhUTUxNZXRl
ckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCog
ZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxNZXRlckVsZW1lbnQ+IEhUTUxNZXRlckVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CiB7CiAgICAgUmVmUHRyPEhUTUxNZXRlckVsZW1lbnQ+IG1ldGVyID0gYWRvcHRSZWYobmV3IEhU
TUxNZXRlckVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKICAgICBtZXRlci0+ZW5zdXJlVXNl
ckFnZW50U2hhZG93Um9vdCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVt
ZW50LmgJKHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVy
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBAIGNsYXNzIFJlbmRlck1l
dGVyOwogCiBjbGFzcyBIVE1MTWV0ZXJFbGVtZW50IEZJTkFMIDogcHVibGljIExhYmVsYWJsZUVs
ZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxNZXRlckVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxIVE1MTWV0ZXJFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiAKICAgICBlbnVtIEdhdWdlUmVnaW9uIHsKICAgICAgICAgR2F1Z2VSZWdpb25P
cHRpbXVtLApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYW5Db250YWluUmFu
Z2VFbmRQb2ludCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKIHByaXZhdGU6Ci0gICAgSFRN
TE1ldGVyRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBIVE1M
TWV0ZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAgIHZpcnR1
YWwgfkhUTUxNZXRlckVsZW1lbnQoKTsKIAogICAgIHZpcnR1YWwgYm9vbCBhcmVBdXRob3JTaGFk
b3dzQWxsb3dlZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTc4OCkKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMzLDggKzMzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2Ug
SFRNTE5hbWVzOwogCi1IVE1MT0xpc3RFbGVtZW50OjpIVE1MT0xpc3RFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKLSAgICA6IEhUTUxFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KQorSFRNTE9MaXN0RWxlbWVudDo6SFRNTE9MaXN0RWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAg
OiBIVE1MRWxlbWVudCh0YWdOYW1lLCAmZG9jdW1lbnQpCiAgICAgLCBtX3N0YXJ0KDB4QkFEQkVF
RikKICAgICAsIG1faXRlbUNvdW50KDApCiAgICAgLCBtX2hhc0V4cGxpY2l0U3RhcnQoZmFsc2Up
CkBAIC00NCwxMiArNDQsMTIgQEAgSFRNTE9MaXN0RWxlbWVudDo6SFRNTE9MaXN0RWxlbWVudChj
b25zdAogICAgIEFTU0VSVChoYXNUYWdOYW1lKG9sVGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8SFRN
TE9MaXN0RWxlbWVudD4gSFRNTE9MaXN0RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVu
dCkKK1Bhc3NSZWZQdHI8SFRNTE9MaXN0RWxlbWVudD4gSFRNTE9MaXN0RWxlbWVudDo6Y3JlYXRl
KERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxPTGlz
dEVsZW1lbnQob2xUYWcsIGRvY3VtZW50KSk7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTE9MaXN0RWxl
bWVudD4gSFRNTE9MaXN0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8SFRNTE9MaXN0RWxlbWVudD4gSFRN
TE9MaXN0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxPTGlzdEVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9MaXN0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9M
aXN0RWxlbWVudC5oCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPTGlzdEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksOCArMjksOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxPTGlzdEVsZW1lbnQgRklOQUwgOiBwdWJsaWMgSFRN
TEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxPTGlzdEVsZW1l
bnQ+IGNyZWF0ZShEb2N1bWVudCopOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxPTGlzdEVs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxIVE1MT0xpc3RFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxIVE1MT0xpc3RFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBpbnQgc3RhcnQoKSBjb25zdCB7IHJldHVybiBtX2hh
c0V4cGxpY2l0U3RhcnQgPyBtX3N0YXJ0IDogKG1faXNSZXZlcnNlZCA/IGl0ZW1Db3VudCgpIDog
MSk7IH0KICAgICB2b2lkIHNldFN0YXJ0KGludCk7CkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGl0ZW1Db3VudENoYW5nZWQoKSB7IG1fc2hvdWxkUmVjYWxjdWxhdGVJdGVtQ291
bnQgPSB0cnVlOyB9CiAKIHByaXZhdGU6Ci0gICAgSFRNTE9MaXN0RWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBIVE1MT0xpc3RFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAgICAgICAKICAgICB2b2lkIHVwZGF0ZUl0ZW1WYWx1
ZXMoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAJ
KHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw4ICs1OSw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotaW5saW5lIEhUTUxPYmplY3RFbGVt
ZW50OjpIVE1MT2JqZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCogZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSwgYm9vbCBjcmVhdGVkQnlQYXJz
ZXIpIAotICAgIDogSFRNTFBsdWdJbkltYWdlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgY3Jl
YXRlZEJ5UGFyc2VyLCBTaG91bGROb3RQcmVmZXJQbHVnSW5zRm9ySW1hZ2VzKQoraW5saW5lIEhU
TUxPYmplY3RFbGVtZW50OjpIVE1MT2JqZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSwgYm9vbCBj
cmVhdGVkQnlQYXJzZXIpCisgICAgOiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KHRhZ05hbWUsICZk
b2N1bWVudCwgY3JlYXRlZEJ5UGFyc2VyLCBTaG91bGROb3RQcmVmZXJQbHVnSW5zRm9ySW1hZ2Vz
KQogICAgICwgbV9kb2NOYW1lZEl0ZW0odHJ1ZSkKICAgICAsIG1fdXNlRmFsbGJhY2tDb250ZW50
KGZhbHNlKQogewpAQCAtNzIsNyArNzIsNyBAQCBpbmxpbmUgSFRNTE9iamVjdEVsZW1lbnQ6On5I
VE1MT2JqZWN0RWxlCiB7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTE9iamVjdEVsZW1lbnQ+IEhUTUxP
YmplY3RFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQqIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0sIGJvb2wgY3JlYXRlZEJ5UGFyc2Vy
KQorUGFzc1JlZlB0cjxIVE1MT2JqZWN0RWxlbWVudD4gSFRNTE9iamVjdEVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxG
b3JtRWxlbWVudCogZm9ybSwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCiB7CiAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBIVE1MT2JqZWN0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSwgY3Jl
YXRlZEJ5UGFyc2VyKSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxl
bWVudC5oCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmpl
Y3RFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgY2xhc3MgSFRNTEZv
cm1FbGVtZW50OwogCiBjbGFzcyBIVE1MT2JqZWN0RWxlbWVudCBGSU5BTCA6IHB1YmxpYyBIVE1M
UGx1Z0luSW1hZ2VFbGVtZW50LCBwdWJsaWMgRm9ybUFzc29jaWF0ZWRFbGVtZW50IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MT2JqZWN0RWxlbWVudD4gY3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCosIGJvb2wgY3JlYXRl
ZEJ5UGFyc2VyKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MT2JqZWN0RWxlbWVudD4gY3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVudCosIGJv
b2wgY3JlYXRlZEJ5UGFyc2VyKTsKICAgICB2aXJ0dWFsIH5IVE1MT2JqZWN0RWxlbWVudCgpOwog
CiAgICAgYm9vbCBpc0RvY05hbWVkSXRlbSgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jTmFtZWRJdGVt
OyB9CkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ29udGFp
blJhbmdlRW5kUG9pbnQoKSBjb25zdCB7IHJldHVybiB1c2VGYWxsYmFja0NvbnRlbnQoKTsgfQog
CiBwcml2YXRlOgotICAgIEhUTUxPYmplY3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCosIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKKyAgICBI
VE1MT2JqZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBIVE1MRm9y
bUVsZW1lbnQqLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJikgY29uc3QgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3
LDE0ICszNywxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1M
TmFtZXM7CiAKLWlubGluZSBIVE1MT3B0R3JvdXBFbGVtZW50OjpIVE1MT3B0R3JvdXBFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKLSAgICA6
IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQoraW5saW5lIEhUTUxPcHRHcm91cEVsZW1l
bnQ6OkhUTUxPcHRHcm91cEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQorICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgJmRvY3VtZW50KQog
ewogICAgIEFTU0VSVChoYXNUYWdOYW1lKG9wdGdyb3VwVGFnKSk7CiAgICAgc2V0SGFzQ3VzdG9t
U3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTE9wdEdyb3VwRWxl
bWVudD4gSFRNTE9wdEdyb3VwRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8SFRNTE9wdEdyb3VwRWxlbWVu
dD4gSFRNTE9wdEdyb3VwRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxP
cHRHcm91cEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzIsNyArMzIsNyBAQCBjbGFzcyBIVE1MU2VsZWN0RWxlbWVudDsKIAogY2xhc3MgSFRNTE9wdEdy
b3VwRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8SFRNTE9wdEdyb3VwRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxPcHRHcm91cEVs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZp
cnR1YWwgYm9vbCBpc0Rpc2FibGVkRm9ybUNvbnRyb2woKSBjb25zdCBPVkVSUklERTsKICAgICBI
VE1MU2VsZWN0RWxlbWVudCogb3duZXJTZWxlY3RFbGVtZW50KCkgY29uc3Q7CkBAIC00MCw3ICs0
MCw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgZ3JvdXBMYWJlbFRleHQoKSBjb25zdDsKIAogcHJp
dmF0ZToKLSAgICBIVE1MT3B0R3JvdXBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCopOworICAgIEhUTUxPcHRHcm91cEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xU
eXBlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzRm9jdXNhYmxlKCkgY29uc3QgT1ZFUlJJ
REU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAkocmV2
aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTUwLDggKzUwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1IVE1MT3B0aW9uRWxlbWVudDo6SFRNTE9w
dGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3Vt
ZW50KQotICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCitIVE1MT3B0aW9uRWxl
bWVudDo6SFRNTE9wdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQorICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgJmRvY3VtZW50KQog
ICAgICwgbV9kaXNhYmxlZChmYWxzZSkKICAgICAsIG1faXNTZWxlY3RlZChmYWxzZSkKIHsKQEAg
LTU5LDEyICs1OSwxMiBAQCBIVE1MT3B0aW9uRWxlbWVudDo6SFRNTE9wdGlvbkVsZW1lbnQoY29u
CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9CiAKLVBhc3NSZWZQ
dHI8SFRNTE9wdGlvbkVsZW1lbnQ+IEhUTUxPcHRpb25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQq
IGRvY3VtZW50KQorUGFzc1JlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gSFRNTE9wdGlvbkVsZW1l
bnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBIVE1MT3B0aW9uRWxlbWVudChvcHRpb25UYWcsIGRvY3VtZW50KSk7CiB9CiAKLVBhc3NSZWZQ
dHI8SFRNTE9wdGlvbkVsZW1lbnQ+IEhUTUxPcHRpb25FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxIVE1M
T3B0aW9uRWxlbWVudD4gSFRNTE9wdGlvbkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBIVE1MT3B0aW9uRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQpAQCAtNzIsNyAr
NzIsNyBAQCBQYXNzUmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiBIVE1MT3B0aW9uCiBQYXNzUmVm
UHRyPEhUTUxPcHRpb25FbGVtZW50PiBIVE1MT3B0aW9uRWxlbWVudDo6Y3JlYXRlRm9ySlNDb25z
dHJ1Y3RvcihEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3Ry
aW5nJiB2YWx1ZSwKICAgICAgICAgYm9vbCBkZWZhdWx0U2VsZWN0ZWQsIGJvb2wgc2VsZWN0ZWQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIFJlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gZWxl
bWVudCA9IGFkb3B0UmVmKG5ldyBIVE1MT3B0aW9uRWxlbWVudChvcHRpb25UYWcsIGRvY3VtZW50
KSk7CisgICAgUmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiBlbGVtZW50ID0gYWRvcHRSZWYobmV3
IEhUTUxPcHRpb25FbGVtZW50KG9wdGlvblRhZywgKmRvY3VtZW50KSk7CiAKICAgICBSZWZQdHI8
VGV4dD4gdGV4dCA9IFRleHQ6OmNyZWF0ZShkb2N1bWVudCwgZGF0YS5pc051bGwoKSA/ICIiIDog
ZGF0YSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmgJKHJl
dmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMzQsOCArMzQsMTAgQEAgY2xhc3MgSFRNTFNlbGVjdEVsZW1l
bnQ7CiAKIGNsYXNzIEhUTUxPcHRpb25FbGVtZW50IEZJTkFMIDogcHVibGljIEhUTUxFbGVtZW50
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gY3Jl
YXRlKERvY3VtZW50Kik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmKTsKKworICAgIC8vIEZJWE1FOiBGaXggdGhlIGJpbmRpbmRzIHRvIHBhc3Mg
YSBEb2N1bWVudCYuCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+IGNy
ZWF0ZUZvckpTQ29uc3RydWN0b3IoRG9jdW1lbnQqLCBjb25zdCBTdHJpbmcmIGRhdGEsIGNvbnN0
IFN0cmluZyYgdmFsdWUsCiAgICAgICAgYm9vbCBkZWZhdWx0U2VsZWN0ZWQsIGJvb2wgc2VsZWN0
ZWQsIEV4Y2VwdGlvbkNvZGUmKTsKIApAQCAtNjcsNyArNjksNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRTZWxlY3RlZFN0YXRlKGJvb2wpOwogCiBwcml2YXRlOgotICAgIEhUTUxPcHRpb25FbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIEhUTUxPcHRpb25FbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCBib29s
IGlzRm9jdXNhYmxlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVy
SXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSB7IHJldHVybiBmYWxzZTsgfQpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTc4OCkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNyw3ICszNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotaW5saW5lIEhU
TUxPdXRwdXRFbGVtZW50OjpIVE1MT3V0cHV0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKK2lubGlu
ZSBIVE1MT3V0cHV0RWxlbWVudDo6SFRNTE91dHB1dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0pCiAg
ICAgOiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBmb3JtKQogICAg
ICwgbV9pc0RlZmF1bHRWYWx1ZU1vZGUodHJ1ZSkKICAgICAsIG1faXNTZXRUZXh0Q29udGVudElu
UHJvZ3Jlc3MoZmFsc2UpCkBAIC00Niw3ICs0Niw3IEBAIGlubGluZSBIVE1MT3V0cHV0RWxlbWVu
dDo6SFRNTE91dHB1dEVsZW0KIHsKIH0KIAotUGFzc1JlZlB0cjxIVE1MT3V0cHV0RWxlbWVudD4g
SFRNTE91dHB1dEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCogZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKK1Bhc3NSZWZQdHI8SFRN
TE91dHB1dEVsZW1lbnQ+IEhUTUxPdXRwdXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0p
CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MT3V0cHV0RWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCwgZm9ybSkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVs
ZW1lbnQuaAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0
cHV0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgSFRNTE91dHB1dEVsZW1lbnQgRklOQUwgOiBwdWJsaWMgSFRNTEZv
cm1Db250cm9sRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTE91
dHB1dEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBIVE1M
Rm9ybUVsZW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MT3V0cHV0RWxlbWVudD4g
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVudCop
OwogCiAgICAgdmlydHVhbCBib29sIHdpbGxWYWxpZGF0ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBjYW5Db250
YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKIHByaXZhdGU6Ci0g
ICAgSFRNTE91dHB1dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgSFRN
TEZvcm1FbGVtZW50Kik7CisgICAgSFRNTE91dHB1dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50JiwgSFRNTEZvcm1FbGVtZW50Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUo
KSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVsZW1l
bnQuY3BwCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJh
Z3JhcGhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTggKzMzLDE4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotaW5saW5lIEhU
TUxQYXJhZ3JhcGhFbGVtZW50OjpIVE1MUGFyYWdyYXBoRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBIVE1MRWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCkKK2lubGluZSBIVE1MUGFyYWdyYXBoRWxlbWVudDo6SFRNTFBhcmFncmFw
aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50
KQorICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgJmRvY3VtZW50KQogewogICAgIEFTU0VSVCho
YXNUYWdOYW1lKHBUYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxIVE1MUGFyYWdyYXBoRWxlbWVudD4g
SFRNTFBhcmFncmFwaEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVm
UHRyPEhUTUxQYXJhZ3JhcGhFbGVtZW50PiBIVE1MUGFyYWdyYXBoRWxlbWVudDo6Y3JlYXRlKERv
Y3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxQYXJhZ3Jh
cGhFbGVtZW50KHBUYWcsIGRvY3VtZW50KSk7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTFBhcmFncmFw
aEVsZW1lbnQ+IEhUTUxQYXJhZ3JhcGhFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxIVE1MUGFyYWdyYXBo
RWxlbWVudD4gSFRNTFBhcmFncmFwaEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBIVE1MUGFyYWdyYXBoRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYWdyYXBoRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQuaAkocmV2aXNpb24gMTU1Nzg4
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYWdyYXBoRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSwxMSArMjksMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBI
VE1MUGFyYWdyYXBoRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFBhcmFncmFwaEVsZW1lbnQ+IGNyZWF0ZShEb2N1
bWVudCopOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxQYXJhZ3JhcGhFbGVtZW50PiBjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8SFRNTFBhcmFncmFwaEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEhUTUxQYXJhZ3JhcGhFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAgSFRNTFBhcmFncmFwaEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgSFRNTFBhcmFncmFwaEVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNQ
cmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVBy
b3BlcnR5U2V0KikgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJh
bUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFt
RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFBhcmFtRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDEzICszMSwxMyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLWlubGluZSBI
VE1MUGFyYW1FbGVtZW50OjpIVE1MUGFyYW1FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKLSAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KQoraW5saW5lIEhUTUxQYXJhbUVsZW1lbnQ6OkhUTUxQYXJhbUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogSFRNTEVs
ZW1lbnQodGFnTmFtZSwgJmRvY3VtZW50KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKHBhcmFt
VGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTFBhcmFtRWxlbWVudD4gSFRNTFBhcmFtRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVu
dCkKK1Bhc3NSZWZQdHI8SFRNTFBhcmFtRWxlbWVudD4gSFRNTFBhcmFtRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxQYXJhbUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5oCShyZXZpc2lv
biAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhbUVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IEhUTUxQYXJhbUVsZW1lbnQgRklOQUwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxQYXJhbUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MUGFyYW1F
bGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBT
dHJpbmcgbmFtZSgpIGNvbnN0OwogICAgIFN0cmluZyB2YWx1ZSgpIGNvbnN0OwpAQCAtMzcsNyAr
MzcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgaXNVUkxQYXJhbWV0ZXIoY29uc3QgU3Ry
aW5nJik7CiAKIHByaXZhdGU6Ci0gICAgSFRNTFBhcmFtRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQqKTsKKyAgICBIVE1MUGFyYW1FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0
IEF0dHJpYnV0ZSYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNv
dXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8S1VSTD4mKSBjb25zdDsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1Nzg4
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogY29u
c3QgZG91YmxlIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OkluZGV0ZXJtaW5hdGVQb3NpdGlvbiA9IC0x
OwogY29uc3QgZG91YmxlIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OkludmFsaWRQb3NpdGlvbiA9IC0y
OwogCi1IVE1MUHJvZ3Jlc3NFbGVtZW50OjpIVE1MUHJvZ3Jlc3NFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK0hUTUxQcm9ncmVzc0VsZW1l
bnQ6OkhUTUxQcm9ncmVzc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQogICAgIDogTGFiZWxhYmxlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVu
dCkKICAgICAsIG1fdmFsdWUoMCkKIHsKQEAgLTUxLDcgKzUxLDcgQEAgSFRNTFByb2dyZXNzRWxl
bWVudDo6fkhUTUxQcm9ncmVzc0VsZW1lbgogewogfQogCi1QYXNzUmVmUHRyPEhUTUxQcm9ncmVz
c0VsZW1lbnQ+IEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxQcm9ncmVzc0Vs
ZW1lbnQ+IEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgUmVmUHRyPEhUTUxQcm9ncmVzc0Vs
ZW1lbnQ+IHByb2dyZXNzID0gYWRvcHRSZWYobmV3IEhUTUxQcm9ncmVzc0VsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpKTsKICAgICBwcm9ncmVzcy0+ZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgJKHJldmlz
aW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29u
c3QgZG91YmxlIEluZGV0ZXJtaW5hdGVQb3NpdGlvbjsKICAgICBzdGF0aWMgY29uc3QgZG91Ymxl
IEludmFsaWRQb3NpdGlvbjsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxQcm9ncmVzc0Vs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxIVE1MUHJvZ3Jlc3NFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBkb3VibGUgdmFsdWUoKSBjb25zdDsKICAgICB2b2lk
IHNldFZhbHVlKGRvdWJsZSwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtNDcsNyArNDcsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBib29sIGNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KIAogcHJpdmF0ZToKLSAgICBIVE1MUHJvZ3Jlc3NFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIEhUTUxQcm9ncmVzc0VsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAgICAgdmlydHVhbCB+SFRNTFByb2dyZXNz
RWxlbWVudCgpOwogCiAgICAgdmlydHVhbCBib29sIGFyZUF1dGhvclNoYWRvd3NBbGxvd2VkKCkg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTQg
KzM2LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1l
czsKIAotaW5saW5lIEhUTUxTY3JpcHRFbGVtZW50OjpIVE1MU2NyaXB0RWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgd2FzSW5zZXJ0
ZWRCeVBhcnNlciwgYm9vbCBhbHJlYWR5U3RhcnRlZCkKLSAgICA6IEhUTUxFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KQoraW5saW5lIEhUTUxTY3JpcHRFbGVtZW50OjpIVE1MU2NyaXB0RWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wg
d2FzSW5zZXJ0ZWRCeVBhcnNlciwgYm9vbCBhbHJlYWR5U3RhcnRlZCkKKyAgICA6IEhUTUxFbGVt
ZW50KHRhZ05hbWUsICZkb2N1bWVudCkKICAgICAsIFNjcmlwdEVsZW1lbnQodGhpcywgd2FzSW5z
ZXJ0ZWRCeVBhcnNlciwgYWxyZWFkeVN0YXJ0ZWQpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUo
c2NyaXB0VGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTFNjcmlwdEVsZW1lbnQ+IEhUTUxTY3Jp
cHRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQq
IGRvY3VtZW50LCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIsIGJvb2wgYWxyZWFkeVN0YXJ0ZWQp
CitQYXNzUmVmUHRyPEhUTUxTY3JpcHRFbGVtZW50PiBIVE1MU2NyaXB0RWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCB3
YXNJbnNlcnRlZEJ5UGFyc2VyLCBib29sIGFscmVhZHlTdGFydGVkKQogewogICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgSFRNTFNjcmlwdEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIHdhc0luc2Vy
dGVkQnlQYXJzZXIsIGFscmVhZHlTdGFydGVkKSk7CiB9CkBAIC0xNzMsNyArMTczLDcgQEAgdm9p
ZCBIVE1MU2NyaXB0RWxlbWVudDo6ZGlzcGF0Y2hMb2FkRXZlbgogCiBQYXNzUmVmUHRyPEVsZW1l
bnQ+IEhUTUxTY3JpcHRFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENo
aWxkcmVuKCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxTY3JpcHRFbGVtZW50KHRh
Z1FOYW1lKCksICZkb2N1bWVudCgpLCBmYWxzZSwgYWxyZWFkeVN0YXJ0ZWQoKSkpOworICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgSFRNTFNjcmlwdEVsZW1lbnQodGFnUU5hbWUoKSwgZG9jdW1lbnQo
KSwgZmFsc2UsIGFscmVhZHlTdGFydGVkKCkpKTsKIH0KIAogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICsz
MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTFNjcmlwdEVsZW1lbnQgRklO
QUwgOiBwdWJsaWMgSFRNTEVsZW1lbnQsIHB1YmxpYyBTY3JpcHRFbGVtZW50IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MU2NyaXB0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIGJvb2wgd2FzSW5zZXJ0ZWRCeVBhcnNlciwgYm9vbCBh
bHJlYWR5U3RhcnRlZCA9IGZhbHNlKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MU2NyaXB0
RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgd2Fz
SW5zZXJ0ZWRCeVBhcnNlciwgYm9vbCBhbHJlYWR5U3RhcnRlZCA9IGZhbHNlKTsKIAogICAgIFN0
cmluZyB0ZXh0KCkgY29uc3QgeyByZXR1cm4gc2NyaXB0Q29udGVudCgpOyB9CiAgICAgdm9pZCBz
ZXRUZXh0KGNvbnN0IFN0cmluZyYpOwpAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgYm9v
bCBhc3luYygpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIEhUTUxTY3JpcHRFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIGJvb2wgd2FzSW5zZXJ0ZWRCeVBhcnNlciwgYm9v
bCBhbHJlYWR5U3RhcnRlZCk7CisgICAgSFRNTFNjcmlwdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50JiwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyLCBib29sIGFscmVhZHlT
dGFydGVkKTsKIAogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBJbnNl
cnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlKikgT1ZF
UlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAko
cmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2LDcgKzY2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhU
TUxOYW1lczsKIC8vIFVwcGVyIGxpbWl0IGFncmVlZCB1cG9uIHdpdGggcmVwcmVzZW50YXRpdmVz
IG9mIE9wZXJhIGFuZCBNb3ppbGxhLgogc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heFNlbGVjdEl0
ZW1zID0gMTAwMDA7CiAKLUhUTUxTZWxlY3RFbGVtZW50OjpIVE1MU2VsZWN0RWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIEhUTUxGb3JtRWxl
bWVudCogZm9ybSkKK0hUTUxTZWxlY3RFbGVtZW50OjpIVE1MU2VsZWN0RWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVu
dCogZm9ybSkKICAgICA6IEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUodGFnTmFtZSwg
ZG9jdW1lbnQsIGZvcm0pCiAgICAgLCBtX3R5cGVBaGVhZCh0aGlzKQogICAgICwgbV9zaXplKDAp
CkBAIC04MSw3ICs4MSw3IEBAIEhUTUxTZWxlY3RFbGVtZW50OjpIVE1MU2VsZWN0RWxlbWVudChj
b24KICAgICBBU1NFUlQoaGFzVGFnTmFtZShzZWxlY3RUYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxI
VE1MU2VsZWN0RWxlbWVudD4gSFRNTFNlbGVjdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9y
bSkKK1Bhc3NSZWZQdHI8SFRNTFNlbGVjdEVsZW1lbnQ+IEhUTUxTZWxlY3RFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1M
Rm9ybUVsZW1lbnQqIGZvcm0pCiB7CiAgICAgQVNTRVJUKHRhZ05hbWUubWF0Y2hlcyhzZWxlY3RU
YWcpKTsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxTZWxlY3RFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50LCBmb3JtKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5oCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgSFRNTE9w
dGlvbkVsZW1lbnQ7CiAKIGNsYXNzIEhUTUxTZWxlY3RFbGVtZW50IDogcHVibGljIEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnRXaXRoU3RhdGUsIHB1YmxpYyBUeXBlQWhlYWREYXRhU291cmNlIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MU2VsZWN0RWxlbWVudD4gY3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCopOworICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEhUTUxTZWxlY3RFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50JiwgSFRNTEZvcm1FbGVtZW50Kik7CiAKICAgICBpbnQgc2VsZWN0ZWRJ
bmRleCgpIGNvbnN0OwogICAgIHZvaWQgc2V0U2VsZWN0ZWRJbmRleChpbnQpOwpAQCAtMTA2LDcg
KzEwNiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG9wdGlvblNlbGVjdGlvblN0YXRlQ2hhbmdlZChI
VE1MT3B0aW9uRWxlbWVudCosIGJvb2wgb3B0aW9uSXNTZWxlY3RlZCk7CiAKIHByb3RlY3RlZDoK
LSAgICBIVE1MU2VsZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBI
VE1MRm9ybUVsZW1lbnQqKTsKKyAgICBIVE1MU2VsZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqKTsKIAogcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Q7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1Nzg4
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQwLDE1ICs0MCwxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5h
bWVzcGFjZSBIVE1MTmFtZXM7CiAKLWlubGluZSBIVE1MU291cmNlRWxlbWVudDo6SFRNTFNvdXJj
ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50
KQotICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCitpbmxpbmUgSFRNTFNvdXJj
ZUVsZW1lbnQ6OkhUTUxTb3VyY2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsICZkb2N1bWVu
dCkKICAgICAsIG1fZXJyb3JFdmVudFRpbWVyKHRoaXMsICZIVE1MU291cmNlRWxlbWVudDo6ZXJy
b3JFdmVudFRpbWVyRmlyZWQpCiB7CiAgICAgTE9HKE1lZGlhLCAiSFRNTFNvdXJjZUVsZW1lbnQ6
OkhUTUxTb3VyY2VFbGVtZW50IC0gJXAiLCB0aGlzKTsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShz
b3VyY2VUYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxIVE1MU291cmNlRWxlbWVudD4gSFRNTFNvdXJj
ZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCog
ZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxTb3VyY2VFbGVtZW50PiBIVE1MU291cmNlRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxTb3VyY2VFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVu
dC5oCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VF
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBIVE1MU291cmNlRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBIVE1MRWxlbWVu
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFNvdXJjZUVsZW1lbnQ+IGNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxIVE1MU291cmNlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOwogCiAgICAgU3RyaW5nIG1lZGlhKCkgY29uc3Q7CiAgICAgU3RyaW5nIHR5cGUoKSBj
b25zdDsKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2FuY2VsUGVuZGluZ0Vy
cm9yRXZlbnQoKTsKIAogcHJpdmF0ZToKLSAgICBIVE1MU291cmNlRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBIVE1MU291cmNlRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKICAgICAKICAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlm
aWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUqKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSopIE9WRVJSSURFOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3BhbkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNwYW5FbGVtZW50LmNwcAkocmV2aXNpb24gMTU1Nzg4
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3BhbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMiwxMyArMzIsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1l
c3BhY2UgSFRNTE5hbWVzOwogCi1IVE1MU3BhbkVsZW1lbnQ6OkhUTUxTcGFuRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBIVE1M
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKK0hUTUxTcGFuRWxlbWVudDo6SFRNTFNwYW5FbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKKyAg
ICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsICZkb2N1bWVudCkKIHsKICAgICBBU1NFUlQoaGFzVGFn
TmFtZShzcGFuVGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTFNwYW5FbGVtZW50PiBIVE1MU3Bh
bkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCog
ZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxTcGFuRWxlbWVudD4gSFRNTFNwYW5FbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQog
ewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTFNwYW5FbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTcGFuRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNwYW5FbGVtZW50LmgJKHJldmlz
aW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNwYW5FbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDEwICszMiwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEhUTUxTcGFuRWxlbWVudCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8SFRNTFNwYW5FbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFNwYW5FbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0g
ICAgSFRNTFNwYW5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAg
IEhUTUxTcGFuRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIH07CiAK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcAkocmV2aXNp
b24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDYsOCArNDYsOCBAQCBzdGF0aWMgU3R5bGVFdmVudFNlbmRlciYg
c3R5bGVMb2FkRXZlbnRTCiAgICAgcmV0dXJuIHNoYXJlZExvYWRFdmVudFNlbmRlcjsKIH0KIAot
aW5saW5lIEhUTUxTdHlsZUVsZW1lbnQ6OkhUTUxTdHlsZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGNyZWF0ZWRCeVBhcnNlcikK
LSAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQoraW5saW5lIEhUTUxTdHlsZUVs
ZW1lbnQ6OkhUTUxTdHlsZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50LCBib29sIGNyZWF0ZWRCeVBhcnNlcikKKyAgICA6IEhUTUxFbGVtZW50
KHRhZ05hbWUsICZkb2N1bWVudCkKICAgICAsIG1fc3R5bGVTaGVldE93bmVyKGRvY3VtZW50LCBj
cmVhdGVkQnlQYXJzZXIpCiAgICAgLCBtX2ZpcmVkTG9hZChmYWxzZSkKICAgICAsIG1fbG9hZGVk
U2hlZXQoZmFsc2UpCkBAIC02NSw3ICs2NSw3IEBAIEhUTUxTdHlsZUVsZW1lbnQ6On5IVE1MU3R5
bGVFbGVtZW50KCkKICAgICBzdHlsZUxvYWRFdmVudFNlbmRlcigpLmNhbmNlbEV2ZW50KHRoaXMp
OwogfQogCi1QYXNzUmVmUHRyPEhUTUxTdHlsZUVsZW1lbnQ+IEhUTUxTdHlsZUVsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIGJv
b2wgY3JlYXRlZEJ5UGFyc2VyKQorUGFzc1JlZlB0cjxIVE1MU3R5bGVFbGVtZW50PiBIVE1MU3R5
bGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQm
IGRvY3VtZW50LCBib29sIGNyZWF0ZWRCeVBhcnNlcikKIHsKICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEhUTUxTdHlsZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGNyZWF0ZWRCeVBhcnNlcikp
OwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmgJKHJldmlzaW9u
IDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBAIHR5cGVkZWYgRXZlbnRTZW5kZXI8SFRNTFN0eWxl
RWxlbWVudD4gU3QKIAogY2xhc3MgSFRNTFN0eWxlRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBIVE1M
RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFN0eWxlRWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIGJvb2wgY3JlYXRlZEJ5
UGFyc2VyKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MU3R5bGVFbGVtZW50PiBjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwog
ICAgIHZpcnR1YWwgfkhUTUxTdHlsZUVsZW1lbnQoKTsKIAogICAgIGJvb2wgc2NvcGVkKCkgY29u
c3Q7CkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaFBl
bmRpbmdMb2FkRXZlbnRzKCk7CiAKIHByaXZhdGU6Ci0gICAgSFRNTFN0eWxlRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CisgICAg
SFRNTFN0eWxlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIGNy
ZWF0ZWRCeVBhcnNlcik7CiAKICAgICAvLyBvdmVybG9hZCBmcm9tIEhUTUxFbGVtZW50CiAgICAg
dmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9taWNTdHJpbmcmKSBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1
bW1hcnlFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
dW1tYXJ5RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsMTUgKzUzLDE1
IEBAIFBhc3NSZWZQdHI8U3VtbWFyeUNvbnRlbnRFbGVtZW50PiBTdW1tYXIKICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFN1bW1hcnlDb250ZW50RWxlbWVudChkb2N1bWVudCkpOwogfQogCi1QYXNz
UmVmUHRyPEhUTUxTdW1tYXJ5RWxlbWVudD4gSFRNTFN1bW1hcnlFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0
cjxIVE1MU3VtbWFyeUVsZW1lbnQ+IEhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBSZWZQdHI8
SFRNTFN1bW1hcnlFbGVtZW50PiBzdW1tYXJ5ID0gYWRvcHRSZWYobmV3IEhUTUxTdW1tYXJ5RWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogICAgIHN1bW1hcnktPmVuc3VyZVVzZXJBZ2VudFNo
YWRvd1Jvb3QoKTsKICAgICByZXR1cm4gc3VtbWFyeS5yZWxlYXNlKCk7CiB9CiAKLUhUTUxTdW1t
YXJ5RWxlbWVudDo6SFRNTFN1bW1hcnlFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50KiBkb2N1bWVudCkKLSAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KQorSFRNTFN1bW1hcnlFbGVtZW50OjpIVE1MU3VtbWFyeUVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogSFRNTEVsZW1lbnQo
dGFnTmFtZSwgJmRvY3VtZW50KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKHN1bW1hcnlUYWcp
KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuaAkocmV2
aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMjksMTIgKzI5LDEyIEBAIGNsYXNzIEhUTUxEZXRhaWxzRWxl
bWVudDsKIAogY2xhc3MgSFRNTFN1bW1hcnlFbGVtZW50IEZJTkFMIDogcHVibGljIEhUTUxFbGVt
ZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MU3VtbWFyeUVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxIVE1MU3VtbWFyeUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmKTsKICAgICBib29sIGlzTWFpblN1bW1hcnkoKSBjb25zdDsKICAgICB2aXJ0dWFs
IGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBPVkVSUklERTsKIAogcHJpdmF0
ZToKLSAgICBIVE1MU3VtbWFyeUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Kik7CisgICAgSFRNTFN1bW1hcnlFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogCiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFy
ZW5hKiwgUmVuZGVyU3R5bGUqKTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVS
ZW5kZXJlcihjb25zdCBOb2RlKikgY29uc3QgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1Nzg4KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQyLDEyICs0MiwxMiBAQCBzdGF0aWMgY29uc3QgaW50IG1heFJvd3NwYW4gPSA4MTkw
OwogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1pbmxpbmUgSFRNTFRhYmxlQ2VsbEVs
ZW1lbnQ6OkhUTUxUYWJsZUNlbGxFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50KiBkb2N1bWVudCkKK2lubGluZSBIVE1MVGFibGVDZWxsRWxlbWVudDo6SFRNTFRh
YmxlQ2VsbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQogICAgIDogSFRNTFRhYmxlUGFydEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiB7
CiB9CiAKLVBhc3NSZWZQdHI8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+IEhUTUxUYWJsZUNlbGxFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3Vt
ZW50KQorUGFzc1JlZlB0cjxIVE1MVGFibGVDZWxsRWxlbWVudD4gSFRNTFRhYmxlQ2VsbEVsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1l
bnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MVGFibGVDZWxsRWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVD
ZWxsRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
Q2VsbEVsZW1lbnQuaAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVDZWxsRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTFRhYmxlQ2VsbEVsZW1lbnQgRklOQUwgOiBw
dWJsaWMgSFRNTFRhYmxlUGFydEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEhUTUxUYWJsZUNlbGxFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+IGNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGludCBjZWxsSW5k
ZXgoKSBjb25zdDsKIApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgSFRNTFRhYmxlQ2Vs
bEVsZW1lbnQqIGNlbGxBYm92ZSgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIEhUTUxUYWJsZUNl
bGxFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIEhUTUxUYWJs
ZUNlbGxFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdmly
dHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
aWNTdHJpbmcmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50YXRpb25BdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJSSURFOwpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU3ODgp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVz
cGFjZSBIVE1MTmFtZXM7CiAKIGlubGluZSBIVE1MVGFibGVDb2xFbGVtZW50OjpIVE1MVGFibGVD
b2xFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCkKLSAgICA6IEhUTUxUYWJsZVBhcnRFbGVtZW50KHRhZ05hbWUsICZkb2N1bWVudCkKKyAgICA6
IEhUTUxUYWJsZVBhcnRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogICAgICwgbV9zcGFuKDEp
CiB7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDggKzQ2LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1IVE1MVGFibGVFbGVtZW50OjpIVE1MVGFi
bGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVu
dCkKLSAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQorSFRNTFRhYmxlRWxlbWVu
dDo6SFRNTFRhYmxlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCYgZG9jdW1lbnQpCisgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCAmZG9jdW1lbnQpCiAgICAg
LCBtX2JvcmRlckF0dHIoZmFsc2UpCiAgICAgLCBtX2JvcmRlckNvbG9yQXR0cihmYWxzZSkKICAg
ICAsIG1fZnJhbWVBdHRyKGZhbHNlKQpAQCAtNTcsMTIgKzU3LDEyIEBAIEhUTUxUYWJsZUVsZW1l
bnQ6OkhUTUxUYWJsZUVsZW1lbnQoY29uc3QKICAgICBBU1NFUlQoaGFzVGFnTmFtZSh0YWJsZVRh
ZykpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxUYWJsZUVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6
OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxUYWJsZUVsZW1lbnQ+
IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBIVE1MVGFibGVFbGVtZW50KHRhYmxlVGFnLCBkb2N1bWVudCkpOwog
fQogCi1QYXNzUmVmUHRyPEhUTUxUYWJsZUVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQYXNz
UmVmUHRyPEhUTUxUYWJsZUVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBIVE1MVGFibGVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CkBA
IC0xMjgsNyArMTI4LDcgQEAgUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlRWxlbWVu
dAogewogICAgIGlmIChIVE1MVGFibGVTZWN0aW9uRWxlbWVudCogZXhpc3RpbmdIZWFkID0gdEhl
YWQoKSkKICAgICAgICAgcmV0dXJuIGV4aXN0aW5nSGVhZDsKLSAgICBSZWZQdHI8SFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQ+IGhlYWQgPSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6Y3JlYXRlKHRo
ZWFkVGFnLCAmZG9jdW1lbnQoKSk7CisgICAgUmVmUHRyPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
PiBoZWFkID0gSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmNyZWF0ZSh0aGVhZFRhZywgZG9jdW1l
bnQoKSk7CiAgICAgc2V0VEhlYWQoaGVhZCwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgcmV0dXJu
IGhlYWQucmVsZWFzZSgpOwogfQpAQCAtMTQyLDcgKzE0Miw3IEBAIFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQKIHsKICAgICBpZiAoSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQqIGV4aXN0aW5nRm9vdCA9IHRGb290KCkpCiAgICAgICAgIHJldHVybiBleGlzdGluZ0Zvb3Q7
Ci0gICAgUmVmUHRyPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBmb290ID0gSFRNTFRhYmxlU2Vj
dGlvbkVsZW1lbnQ6OmNyZWF0ZSh0Zm9vdFRhZywgJmRvY3VtZW50KCkpOworICAgIFJlZlB0cjxI
VE1MVGFibGVTZWN0aW9uRWxlbWVudD4gZm9vdCA9IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Ojpj
cmVhdGUodGZvb3RUYWcsIGRvY3VtZW50KCkpOwogICAgIHNldFRGb290KGZvb3QsIElHTk9SRV9F
WENFUFRJT04pOwogICAgIHJldHVybiBmb290LnJlbGVhc2UoKTsKIH0KQEAgLTE1NCw3ICsxNTQs
NyBAQCB2b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OmRlbGV0ZVRGb290KCkKIAogUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gSFRNTFRhYmxlRWxlbWVudDo6Y3JlYXRlVEJvZHkoKQogewotICAgIFJlZlB0
cjxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4gYm9keSA9IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
OjpjcmVhdGUodGJvZHlUYWcsICZkb2N1bWVudCgpKTsKKyAgICBSZWZQdHI8SFRNTFRhYmxlU2Vj
dGlvbkVsZW1lbnQ+IGJvZHkgPSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6Y3JlYXRlKHRib2R5
VGFnLCBkb2N1bWVudCgpKTsKICAgICBOb2RlKiByZWZlcmVuY2VFbGVtZW50ID0gbGFzdEJvZHko
KSA/IGxhc3RCb2R5KCktPm5leHRTaWJsaW5nKCkgOiAwOwogICAgIGluc2VydEJlZm9yZShib2R5
LCByZWZlcmVuY2VFbGVtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICByZXR1cm4gYm9k
eS5yZWxlYXNlKCk7CkBAIC0yMTYsMTUgKzIxNiwxNSBAQCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBIVE1MVGFibGVFbGVtZW50CiAgICAgZWxzZSB7CiAgICAgICAgIHBhcmVudCA9IGxhc3RCb2R5
KCk7CiAgICAgICAgIGlmICghcGFyZW50KSB7Ci0gICAgICAgICAgICBSZWZQdHI8SFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQ+IG5ld0JvZHkgPSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6Y3JlYXRl
KHRib2R5VGFnLCAmZG9jdW1lbnQoKSk7Ci0gICAgICAgICAgICBSZWZQdHI8SFRNTFRhYmxlUm93
RWxlbWVudD4gbmV3Um93ID0gSFRNTFRhYmxlUm93RWxlbWVudDo6Y3JlYXRlKCZkb2N1bWVudCgp
KTsKKyAgICAgICAgICAgIFJlZlB0cjxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4gbmV3Qm9keSA9
IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OjpjcmVhdGUodGJvZHlUYWcsIGRvY3VtZW50KCkpOwor
ICAgICAgICAgICAgUmVmUHRyPEhUTUxUYWJsZVJvd0VsZW1lbnQ+IG5ld1JvdyA9IEhUTUxUYWJs
ZVJvd0VsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKICAgICAgICAgICAgIG5ld0JvZHktPmFw
cGVuZENoaWxkKG5ld1JvdywgZWMpOwogICAgICAgICAgICAgYXBwZW5kQ2hpbGQobmV3Qm9keS5y
ZWxlYXNlKCksIGVjKTsKICAgICAgICAgICAgIHJldHVybiBuZXdSb3cucmVsZWFzZSgpOwogICAg
ICAgICB9CiAgICAgfQogCi0gICAgUmVmUHRyPEhUTUxUYWJsZVJvd0VsZW1lbnQ+IG5ld1JvdyA9
IEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmNyZWF0ZSgmZG9jdW1lbnQoKSk7CisgICAgUmVmUHRyPEhU
TUxUYWJsZVJvd0VsZW1lbnQ+IG5ld1JvdyA9IEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCgpKTsKICAgICBwYXJlbnQtPmluc2VydEJlZm9yZShuZXdSb3csIHJvdy5nZXQoKSwg
ZWMpOwogICAgIHJldHVybiBuZXdSb3cucmVsZWFzZSgpOwogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGFibGVFbGVtZW50LmgJKHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw4ICszNyw4
IEBAIGNsYXNzIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OwogCiBjbGFzcyBIVE1MVGFibGVFbGVt
ZW50IEZJTkFMIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxIVE1MVGFibGVFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxIVE1MVGFibGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFRhYmxlRWxlbWVudD4gY3Jl
YXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFRhYmxlRWxlbWVudD4g
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgSFRNTFRhYmxl
Q2FwdGlvbkVsZW1lbnQqIGNhcHRpb24oKSBjb25zdDsKICAgICB2b2lkIHNldENhcHRpb24oUGFz
c1JlZlB0cjxIVE1MVGFibGVDYXB0aW9uRWxlbWVudD4sIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTY5
LDcgKzY5LDcgQEAgcHVibGljOgogICAgIGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIGFkZGl0aW9u
YWxHcm91cFN0eWxlKGJvb2wgcm93cyk7CiAKIHByaXZhdGU6Ci0gICAgSFRNTFRhYmxlRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBIVE1MVGFibGVFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGFibGVQYXJ0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRhYmxlUGFydEVsZW1lbnQuaAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGFibGVQYXJ0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw4
ICszNCw4IEBAIGNsYXNzIEhUTUxUYWJsZUVsZW1lbnQ7CiAKIGNsYXNzIEhUTUxUYWJsZVBhcnRF
bGVtZW50IDogcHVibGljIEhUTUxFbGVtZW50IHsKIHByb3RlY3RlZDoKLSAgICBIVE1MVGFibGVQ
YXJ0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1l
bnQpCi0gICAgICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCisgICAgSFRNTFRh
YmxlUGFydEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQorICAgICAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsICZkb2N1bWVudCkKICAgICB7
CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVu
dC5jcHAJKHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
Um93RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDE4ICszOCwxOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLUhUTUxUYWJsZVJv
d0VsZW1lbnQ6OkhUTUxUYWJsZVJvd0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorSFRNTFRhYmxlUm93RWxlbWVudDo6SFRNTFRhYmxlUm93
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgOiBIVE1MVGFibGVQYXJ0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKIHsKICAgICBB
U1NFUlQoaGFzVGFnTmFtZSh0clRhZykpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxUYWJsZVJvd0Vs
ZW1lbnQ+IEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCitQ
YXNzUmVmUHRyPEhUTUxUYWJsZVJvd0VsZW1lbnQ+IEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MVGFi
bGVSb3dFbGVtZW50KHRyVGFnLCBkb2N1bWVudCkpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxUYWJs
ZVJvd0VsZW1lbnQ+IEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxUYWJsZVJv
d0VsZW1lbnQ+IEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBIVE1MVGFibGVSb3dFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CkBAIC0xMjcsNyAr
MTI3LDcgQEAgUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlUm93RWxlbQogICAgICAg
ICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBSZWZQdHI8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+IGNl
bGwgPSBIVE1MVGFibGVDZWxsRWxlbWVudDo6Y3JlYXRlKHRkVGFnLCAmZG9jdW1lbnQoKSk7Cisg
ICAgUmVmUHRyPEhUTUxUYWJsZUNlbGxFbGVtZW50PiBjZWxsID0gSFRNTFRhYmxlQ2VsbEVsZW1l
bnQ6OmNyZWF0ZSh0ZFRhZywgZG9jdW1lbnQoKSk7CiAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRl
eCA+PSBudW1DZWxscykKICAgICAgICAgYXBwZW5kQ2hpbGQoY2VsbCwgZWMpOwogICAgIGVsc2Ug
ewpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmgJKHJldmlz
aW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMiw4ICszMiw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgSFRNTFRhYmxlUm93RWxlbWVudCBGSU5BTCA6IHB1YmxpYyBIVE1MVGFibGVQYXJ0RWxl
bWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFRhYmxlUm93RWxlbWVu
dD4gY3JlYXRlKERvY3VtZW50Kik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFRhYmxlUm93
RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEhUTUxUYWJsZVJvd0VsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxUYWJsZVJvd0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGludCByb3dJbmRleCgpIGNvbnN0Owog
ICAgIHZvaWQgc2V0Um93SW5kZXgoaW50KTsKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0Q2VsbHMoSFRNTENvbGxlY3Rpb24gKiwgRXhjZXB0aW9uQ29kZSYpOwogCiBwcml2
YXRlOgotICAgIEhUTUxUYWJsZVJvd0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Kik7CisgICAgSFRNTFRhYmxlUm93RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmKTsKIH07CiAKIEVMRU1FTlRfVFlQRV9DQVNUUyhIVE1MVGFibGVSb3dFbGVtZW50KQpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5j
cHAJKHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2Vj
dGlvbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMiArMzcsMTIgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1pbmxpbmUgSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQ6OkhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK2lubGluZSBIVE1MVGFibGVT
ZWN0aW9uRWxlbWVudDo6SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogSFRNTFRhYmxlUGFydEVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpCiB7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQ+IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxIVE1MVGFibGVT
ZWN0aW9uRWxlbWVudD4gSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwog
fQpAQCAtNjQsNyArNjQsNyBAQCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBIVE1MVGFibGVTZWN0
aW9uCiAgICAgaWYgKGluZGV4IDwgLTEgfHwgaW5kZXggPiBudW1Sb3dzKQogICAgICAgICBlYyA9
IElOREVYX1NJWkVfRVJSOyAvLyBwZXIgdGhlIERPTQogICAgIGVsc2UgewotICAgICAgICByb3cg
PSBIVE1MVGFibGVSb3dFbGVtZW50OjpjcmVhdGUodHJUYWcsICZkb2N1bWVudCgpKTsKKyAgICAg
ICAgcm93ID0gSFRNTFRhYmxlUm93RWxlbWVudDo6Y3JlYXRlKHRyVGFnLCBkb2N1bWVudCgpKTsK
ICAgICAgICAgaWYgKG51bVJvd3MgPT0gaW5kZXggfHwgaW5kZXggPT0gLTEpCiAgICAgICAgICAg
ICBhcHBlbmRDaGlsZChyb3csIGVjKTsKICAgICAgICAgZWxzZSB7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oCShyZXZpc2lvbiAxNTU3ODgp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBI
VE1MVGFibGVTZWN0aW9uRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBIVE1MVGFibGVQYXJ0RWxlbWVu
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gaW5zZXJ0
Um93KGludCBpbmRleCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgZGVsZXRlUm93KGludCBp
bmRleCwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgUGFz
c1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gcm93cygpOwogCiBwcml2YXRlOgotICAgIEhUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Kik7
CisgICAgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgY29uc3QgU3R5bGVQcm9wZXJ0eVNldCogYWRk
aXRpb25hbFByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKCkgT1ZFUlJJREU7CiB9OwpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4JKHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCSh3b3JraW5nIGNvcHkpCkBAIC03OSw2MSAr
NzksNjEgQEAgbGkgaW50ZXJmYWNlTmFtZT1IVE1MTElFbGVtZW50LCBjb25zdHJ1YwogbGluayBj
b25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyLCBjb25zdHJ1Y3RvclRha2VzRG9jdW1lbnRS
ZWZlcmVuY2UKIGxpc3RpbmcgaW50ZXJmYWNlTmFtZT1IVE1MUHJlRWxlbWVudCwgY29uc3RydWN0
b3JUYWtlc0RvY3VtZW50UmVmZXJlbmNlCiBtYWluIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQK
LW1hcCBnZW5lcmF0ZVR5cGVIZWxwZXJzLCAKK21hcCBnZW5lcmF0ZVR5cGVIZWxwZXJzLCBjb25z
dHJ1Y3RvclRha2VzRG9jdW1lbnRSZWZlcmVuY2UKIG1hcmsgaW50ZXJmYWNlTmFtZT1IVE1MRWxl
bWVudAotbWFycXVlZQotbWVudQotbWV0YQotbWV0ZXIgaW50ZXJmYWNlTmFtZT1IVE1MTWV0ZXJF
bGVtZW50LCBjb25kaXRpb25hbD1NRVRFUl9FTEVNRU5ULCBnZW5lcmF0ZVR5cGVIZWxwZXJzCitt
YXJxdWVlIGNvbnN0cnVjdG9yVGFrZXNEb2N1bWVudFJlZmVyZW5jZQorbWVudSBjb25zdHJ1Y3Rv
clRha2VzRG9jdW1lbnRSZWZlcmVuY2UKK21ldGEgY29uc3RydWN0b3JUYWtlc0RvY3VtZW50UmVm
ZXJlbmNlCittZXRlciBpbnRlcmZhY2VOYW1lPUhUTUxNZXRlckVsZW1lbnQsIGNvbmRpdGlvbmFs
PU1FVEVSX0VMRU1FTlQsIGdlbmVyYXRlVHlwZUhlbHBlcnMsIGNvbnN0cnVjdG9yVGFrZXNEb2N1
bWVudFJlZmVyZW5jZQogbmF2IGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIG5vYnIgaW50ZXJm
YWNlTmFtZT1IVE1MRWxlbWVudAogbm9lbWJlZCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBu
b2ZyYW1lcyBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBub2xheWVyIGludGVyZmFjZU5hbWU9
SFRNTEVsZW1lbnQKLW9iamVjdCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQsIGNvbnN0cnVj
dG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIsIGdlbmVyYXRlVHlwZUhlbHBlcnMKLW9sIGludGVyZmFj
ZU5hbWU9SFRNTE9MaXN0RWxlbWVudAotb3B0Z3JvdXAgaW50ZXJmYWNlTmFtZT1IVE1MT3B0R3Jv
dXBFbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1vcHRpb24gZ2VuZXJhdGVUeXBlSGVscGVy
cwotb3V0cHV0IGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudAotcCBpbnRlcmZhY2VOYW1lPUhU
TUxQYXJhZ3JhcGhFbGVtZW50Ci1wYXJhbSBnZW5lcmF0ZVR5cGVIZWxwZXJzCitvYmplY3QgY29u
c3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50LCBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2Vy
LCBnZW5lcmF0ZVR5cGVIZWxwZXJzLCBjb25zdHJ1Y3RvclRha2VzRG9jdW1lbnRSZWZlcmVuY2UK
K29sIGludGVyZmFjZU5hbWU9SFRNTE9MaXN0RWxlbWVudCwgY29uc3RydWN0b3JUYWtlc0RvY3Vt
ZW50UmVmZXJlbmNlCitvcHRncm91cCBpbnRlcmZhY2VOYW1lPUhUTUxPcHRHcm91cEVsZW1lbnQs
IGdlbmVyYXRlVHlwZUhlbHBlcnMsIGNvbnN0cnVjdG9yVGFrZXNEb2N1bWVudFJlZmVyZW5jZQor
b3B0aW9uIGdlbmVyYXRlVHlwZUhlbHBlcnMsIGNvbnN0cnVjdG9yVGFrZXNEb2N1bWVudFJlZmVy
ZW5jZQorb3V0cHV0IGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudCwgY29uc3RydWN0b3JUYWtl
c0RvY3VtZW50UmVmZXJlbmNlCitwIGludGVyZmFjZU5hbWU9SFRNTFBhcmFncmFwaEVsZW1lbnQs
IGNvbnN0cnVjdG9yVGFrZXNEb2N1bWVudFJlZmVyZW5jZQorcGFyYW0gZ2VuZXJhdGVUeXBlSGVs
cGVycywgY29uc3RydWN0b3JUYWtlc0RvY3VtZW50UmVmZXJlbmNlCiBwbGFpbnRleHQgaW50ZXJm
YWNlTmFtZT1IVE1MRWxlbWVudAogcHJlIGNvbnN0cnVjdG9yVGFrZXNEb2N1bWVudFJlZmVyZW5j
ZQotcHJvZ3Jlc3MgaW50ZXJmYWNlTmFtZT1IVE1MUHJvZ3Jlc3NFbGVtZW50LCBjb25kaXRpb25h
bD1QUk9HUkVTU19FTEVNRU5ULCBnZW5lcmF0ZVR5cGVIZWxwZXJzCitwcm9ncmVzcyBpbnRlcmZh
Y2VOYW1lPUhUTUxQcm9ncmVzc0VsZW1lbnQsIGNvbmRpdGlvbmFsPVBST0dSRVNTX0VMRU1FTlQs
IGdlbmVyYXRlVHlwZUhlbHBlcnMsIGNvbnN0cnVjdG9yVGFrZXNEb2N1bWVudFJlZmVyZW5jZQog
cSBpbnRlcmZhY2VOYW1lPUhUTUxRdW90ZUVsZW1lbnQsIGNvbnN0cnVjdG9yVGFrZXNEb2N1bWVu
dFJlZmVyZW5jZQogcnAgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogcnQgaW50ZXJmYWNlTmFt
ZT1IVE1MRWxlbWVudAogcnVieSBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBzIGludGVyZmFj
ZU5hbWU9SFRNTEVsZW1lbnQKIHNhbXAgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotc2NyaXB0
IGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIsIGdlbmVyYXRlVHlwZUhlbHBlcnMKK3Nj
cmlwdCBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyLCBnZW5lcmF0ZVR5cGVIZWxwZXJz
LCBjb25zdHJ1Y3RvclRha2VzRG9jdW1lbnRSZWZlcmVuY2UKIHNlY3Rpb24gaW50ZXJmYWNlTmFt
ZT1IVE1MRWxlbWVudAotc2VsZWN0IGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudCwgZ2VuZXJh
dGVUeXBlSGVscGVycworc2VsZWN0IGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudCwgZ2VuZXJh
dGVUeXBlSGVscGVycywgY29uc3RydWN0b3JUYWtlc0RvY3VtZW50UmVmZXJlbmNlCiBzbWFsbCBp
bnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci1zb3VyY2Ugd3JhcHBlck9ubHlJZk1lZGlhSXNBdmFp
bGFibGUsIGNvbmRpdGlvbmFsPVZJREVPLCBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1zcGFuCitzb3Vy
Y2Ugd3JhcHBlck9ubHlJZk1lZGlhSXNBdmFpbGFibGUsIGNvbmRpdGlvbmFsPVZJREVPLCBnZW5l
cmF0ZVR5cGVIZWxwZXJzLCBjb25zdHJ1Y3RvclRha2VzRG9jdW1lbnRSZWZlcmVuY2UKK3NwYW4g
Y29uc3RydWN0b3JUYWtlc0RvY3VtZW50UmVmZXJlbmNlCiBzdHJpa2UgaW50ZXJmYWNlTmFtZT1I
VE1MRWxlbWVudAogc3Ryb25nIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKLXN0eWxlIGNvbnN0
cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIsIGdlbmVyYXRlVHlwZUhlbHBlcnMKK3N0eWxlIGNv
bnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIsIGdlbmVyYXRlVHlwZUhlbHBlcnMsIGNvbnN0
cnVjdG9yVGFrZXNEb2N1bWVudFJlZmVyZW5jZQogc3ViIGludGVyZmFjZU5hbWU9SFRNTEVsZW1l
bnQKLXN1bW1hcnkgaW50ZXJmYWNlTmFtZT1IVE1MU3VtbWFyeUVsZW1lbnQsIEpTSW50ZXJmYWNl
TmFtZT1IVE1MRWxlbWVudCwgY29uZGl0aW9uYWw9REVUQUlMU19FTEVNRU5UCitzdW1tYXJ5IGlu
dGVyZmFjZU5hbWU9SFRNTFN1bW1hcnlFbGVtZW50LCBKU0ludGVyZmFjZU5hbWU9SFRNTEVsZW1l
bnQsIGNvbmRpdGlvbmFsPURFVEFJTFNfRUxFTUVOVCwgY29uc3RydWN0b3JUYWtlc0RvY3VtZW50
UmVmZXJlbmNlCiBzdXAgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotdGFibGUgZ2VuZXJhdGVU
eXBlSGVscGVycwotdGJvZHkgaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVTZWN0aW9uRWxlbWVudAot
dGQgaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVDZWxsRWxlbWVudAotdGVtcGxhdGUgY29uZGl0aW9u
YWw9VEVNUExBVEVfRUxFTUVOVAotdGV4dGFyZWEgaW50ZXJmYWNlTmFtZT1IVE1MVGV4dEFyZWFF
bGVtZW50LCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQsIGdlbmVyYXRlVHlwZUhlbHBlcnMK
LXRmb290IGludGVyZmFjZU5hbWU9SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQKLXRoIGludGVyZmFj
ZU5hbWU9SFRNTFRhYmxlQ2VsbEVsZW1lbnQKLXRoZWFkIGludGVyZmFjZU5hbWU9SFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQKLXRpdGxlIGdlbmVyYXRlVHlwZUhlbHBlcnMKLXRyIGludGVyZmFjZU5h
bWU9SFRNTFRhYmxlUm93RWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVycwotdHJhY2sgd3JhcHBl
ck9ubHlJZk1lZGlhSXNBdmFpbGFibGUsIGNvbmRpdGlvbmFsPVZJREVPX1RSQUNLLCBnZW5lcmF0
ZVR5cGVIZWxwZXJzCit0YWJsZSBnZW5lcmF0ZVR5cGVIZWxwZXJzLCBjb25zdHJ1Y3RvclRha2Vz
RG9jdW1lbnRSZWZlcmVuY2UKK3Rib2R5IGludGVyZmFjZU5hbWU9SFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQsIGNvbnN0cnVjdG9yVGFrZXNEb2N1bWVudFJlZmVyZW5jZQordGQgaW50ZXJmYWNlTmFt
ZT1IVE1MVGFibGVDZWxsRWxlbWVudCwgY29uc3RydWN0b3JUYWtlc0RvY3VtZW50UmVmZXJlbmNl
Cit0ZW1wbGF0ZSBjb25kaXRpb25hbD1URU1QTEFURV9FTEVNRU5ULCBjb25zdHJ1Y3RvclRha2Vz
RG9jdW1lbnRSZWZlcmVuY2UKK3RleHRhcmVhIGludGVyZmFjZU5hbWU9SFRNTFRleHRBcmVhRWxl
bWVudCwgY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzLCBj
b25zdHJ1Y3RvclRha2VzRG9jdW1lbnRSZWZlcmVuY2UKK3Rmb290IGludGVyZmFjZU5hbWU9SFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQsIGNvbnN0cnVjdG9yVGFrZXNEb2N1bWVudFJlZmVyZW5jZQor
dGggaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVDZWxsRWxlbWVudCwgY29uc3RydWN0b3JUYWtlc0Rv
Y3VtZW50UmVmZXJlbmNlCit0aGVhZCBpbnRlcmZhY2VOYW1lPUhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50LCBjb25zdHJ1Y3RvclRha2VzRG9jdW1lbnRSZWZlcmVuY2UKK3RpdGxlIGdlbmVyYXRlVHlw
ZUhlbHBlcnMsIGNvbnN0cnVjdG9yVGFrZXNEb2N1bWVudFJlZmVyZW5jZQordHIgaW50ZXJmYWNl
TmFtZT1IVE1MVGFibGVSb3dFbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzLCBjb25zdHJ1Y3Rv
clRha2VzRG9jdW1lbnRSZWZlcmVuY2UKK3RyYWNrIHdyYXBwZXJPbmx5SWZNZWRpYUlzQXZhaWxh
YmxlLCBjb25kaXRpb25hbD1WSURFT19UUkFDSywgZ2VuZXJhdGVUeXBlSGVscGVycywgY29uc3Ry
dWN0b3JUYWtlc0RvY3VtZW50UmVmZXJlbmNlCiB0dCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50
CiB1IGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKLXVsIGludGVyZmFjZU5hbWU9SFRNTFVMaXN0
RWxlbWVudAordWwgaW50ZXJmYWNlTmFtZT1IVE1MVUxpc3RFbGVtZW50LCBjb25zdHJ1Y3RvclRh
a2VzRG9jdW1lbnRSZWZlcmVuY2UKIHZhciBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci12aWRl
byB3cmFwcGVyT25seUlmTWVkaWFJc0F2YWlsYWJsZSwgY29uZGl0aW9uYWw9VklERU8sIGNvbnN0
cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIsIGdlbmVyYXRlVHlwZUhlbHBlcnMKK3ZpZGVvIHdy
YXBwZXJPbmx5SWZNZWRpYUlzQXZhaWxhYmxlLCBjb25kaXRpb25hbD1WSURFTywgY29uc3RydWN0
b3JOZWVkc0NyZWF0ZWRCeVBhcnNlciwgZ2VuZXJhdGVUeXBlSGVscGVycywgY29uc3RydWN0b3JU
YWtlc0RvY3VtZW50UmVmZXJlbmNlCiB3YnIgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogeG1w
IGludGVyZmFjZU5hbWU9SFRNTFByZUVsZW1lbnQsIGNvbnN0cnVjdG9yVGFrZXNEb2N1bWVudFJl
ZmVyZW5jZQogbm9zY3JpcHQgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudApJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU3ODgp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00NCw4ICs0NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFt
ZXNwYWNlIEhUTUxOYW1lczsKIAotaW5saW5lIEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OkhUTUxUZW1w
bGF0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3Vt
ZW50KQotICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCitpbmxpbmUgSFRNTFRl
bXBsYXRlRWxlbWVudDo6SFRNTFRlbXBsYXRlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCAm
ZG9jdW1lbnQpCiB7CiB9CiAKQEAgLTUzLDcgKzUzLDcgQEAgSFRNTFRlbXBsYXRlRWxlbWVudDo6
fkhUTUxUZW1wbGF0ZUVsZW1lbgogewogfQogCi1QYXNzUmVmUHRyPEhUTUxUZW1wbGF0ZUVsZW1l
bnQ+IEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxUZW1wbGF0ZUVsZW1lbnQ+
IEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MVGVt
cGxhdGVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQw
LDE3ICs0MCwxNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxUZW1wbGF0ZUVs
ZW1lbnQgRklOQUwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEhUTUxUZW1wbGF0ZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MVGVtcGxhdGVFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAgICAgdmlydHVhbCB+
SFRNTFRlbXBsYXRlRWxlbWVudCgpOwogCiAgICAgRG9jdW1lbnRGcmFnbWVudCogY29udGVudCgp
IGNvbnN0OwogCiBwcml2YXRlOgorICAgIEhUTUxUZW1wbGF0ZUVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CisKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Tm9kZT4gY2xv
bmVOb2RlKGJvb2wgZGVlcCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZE1vdmVUb05l
d0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkgT1ZFUlJJREU7CiAKLSAgICBIVE1MVGVt
cGxhdGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwotCiAgICAgbXV0
YWJsZSBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gbV9jb250ZW50OwogfTsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU3
ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC04Nyw3ICs4Nyw3IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgdXBwZXJC
b3VuZEZvckxlbmcKICAgICByZXR1cm4gdGV4dC5sZW5ndGgoKSArIG51bWJlck9mTGluZUJyZWFr
czsKIH0KIAotSFRNTFRleHRBcmVhRWxlbWVudDo6SFRNTFRleHRBcmVhRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVu
dCogZm9ybSkKK0hUTUxUZXh0QXJlYUVsZW1lbnQ6OkhUTUxUZXh0QXJlYUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1l
bnQqIGZvcm0pCiAgICAgOiBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCwgZm9ybSkKICAgICAsIG1fcm93cyhkZWZhdWx0Um93cykKICAgICAsIG1fY29scyhkZWZh
dWx0Q29scykKQEAgLTEwMCw3ICsxMDAsNyBAQCBIVE1MVGV4dEFyZWFFbGVtZW50OjpIVE1MVGV4
dEFyZWFFbGVtZW50CiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVl
KTsKIH0KIAotUGFzc1JlZlB0cjxIVE1MVGV4dEFyZWFFbGVtZW50PiBIVE1MVGV4dEFyZWFFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3Vt
ZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0pCitQYXNzUmVmUHRyPEhUTUxUZXh0QXJlYUVsZW1l
bnQ+IEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKIHsKICAgICBS
ZWZQdHI8SFRNTFRleHRBcmVhRWxlbWVudD4gdGV4dEFyZWEgPSBhZG9wdFJlZihuZXcgSFRNTFRl
eHRBcmVhRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSkpOwogICAgIHRleHRBcmVhLT5l
bnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZXh0QXJlYUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZXh0QXJlYUVsZW1lbnQuaAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcg
QEAgY2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsKIAogY2xhc3MgSFRNTFRleHRBcmVhRWxlbWVudCBG
SU5BTCA6IHB1YmxpYyBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8SFRNTFRleHRBcmVhRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCopOworICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqKTsKIAogICAgIGludCBjb2xzKCkgY29uc3QgeyBy
ZXR1cm4gbV9jb2xzOyB9CiAgICAgaW50IHJvd3MoKSBjb25zdCB7IHJldHVybiBtX3Jvd3M7IH0K
QEAgLTYxLDcgKzYxLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Um93cyhpbnQpOwogCiBwcml2
YXRlOgotICAgIEhUTUxUZXh0QXJlYUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50KiwgSFRNTEZvcm1FbGVtZW50Kik7CisgICAgSFRNTFRleHRBcmVhRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqKTsKIAogICAgIGVudW0g
V3JhcE1ldGhvZCB7IE5vV3JhcCwgU29mdFdyYXAsIEhhcmRXcmFwIH07CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCShy
ZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIsOCArNTIsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogdXNpbmcgbmFtZXNwYWNlIHN0
ZDsKIAotSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2MsIEhUTUxGb3Jt
RWxlbWVudCogZm9ybSkKLSAgICA6IEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUodGFn
TmFtZSwgZG9jLCBmb3JtKQorSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OkhUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBk
b2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQorICAgIDogSFRNTEZvcm1Db250cm9sRWxl
bWVudFdpdGhTdGF0ZSh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSkKICAgICAsIG1fbGFzdENoYW5n
ZVdhc1VzZXJFZGl0KGZhbHNlKQogICAgICwgbV9jYWNoZWRTZWxlY3Rpb25TdGFydCgtMSkKICAg
ICAsIG1fY2FjaGVkU2VsZWN0aW9uRW5kKC0xKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaAkocmV2aXNpb24gMTU1Nzg4KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC04OCw3ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFRleHRBc09mTGFz
dEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoY29uc3QgU3RyaW5nJiB0ZXh0KSB7IG1fdGV4dEFzT2ZM
YXN0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudCA9IHRleHQ7IH0KIAogcHJvdGVjdGVkOgotICAgIEhU
TUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCos
IEhUTUxGb3JtRWxlbWVudCopOworICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVudCopOwogICAgIGJvb2wg
aXNQbGFjZWhvbGRlckVtcHR5KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVBsYWNl
aG9sZGVyVGV4dCgpID0gMDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGl0bGVF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRsZUVs
ZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
aXRsZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxMyArMzYsMTMgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1pbmxpbmUgSFRN
TFRpdGxlRWxlbWVudDo6SFRNTFRpdGxlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkKK2lubGluZSBIVE1MVGl0bGVFbGVtZW50OjpIVE1MVGl0bGVFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IEhUTUxFbGVt
ZW50KHRhZ05hbWUsICZkb2N1bWVudCkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZSh0aXRsZVRh
ZykpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxUaXRsZUVsZW1lbnQ+IEhUTUxUaXRsZUVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQp
CitQYXNzUmVmUHRyPEhUTUxUaXRsZUVsZW1lbnQ+IEhUTUxUaXRsZUVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MVGl0bGVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7
CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaAkocmV2aXNpb24g
MTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGl0bGVFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBI
VE1MVGl0bGVFbGVtZW50IEZJTkFMIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MVGl0bGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFRpdGxlRWxl
bWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgU3Ry
aW5nIHRleHQoKSBjb25zdDsKICAgICB2b2lkIHNldFRleHQoY29uc3QgU3RyaW5nJik7CkBAIC0z
Nyw3ICszNyw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmdXaXRoRGlyZWN0aW9uIHRleHRXaXRoRGly
ZWN0aW9uKCk7CiAKIHByaXZhdGU6Ci0gICAgSFRNTFRpdGxlRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBIVE1MVGl0bGVFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25S
ZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlKikgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUqKSBPVkVSUklERTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1Nzg4KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTIsOCArNTIsOCBAQCBzdGF0aWMgU3RyaW5nIHVybEZvckxvZ2dpbmdUcmFjayhjb25zdCBL
CiB9CiAjZW5kaWYKICAgICAKLWlubGluZSBIVE1MVHJhY2tFbGVtZW50OjpIVE1MVHJhY2tFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKLSAg
ICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQoraW5saW5lIEhUTUxUcmFja0VsZW1l
bnQ6OkhUTUxUcmFja0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmIGRvY3VtZW50KQorICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgJmRvY3VtZW50KQogICAg
ICwgbV9sb2FkVGltZXIodGhpcywgJkhUTUxUcmFja0VsZW1lbnQ6OmxvYWRUaW1lckZpcmVkKQog
ewogICAgIExPRyhNZWRpYSwgIkhUTUxUcmFja0VsZW1lbnQ6OkhUTUxUcmFja0VsZW1lbnQgLSAl
cCIsIHRoaXMpOwpAQCAtNjYsNyArNjYsNyBAQCBIVE1MVHJhY2tFbGVtZW50Ojp+SFRNTFRyYWNr
RWxlbWVudCgpCiAgICAgICAgIG1fdHJhY2stPmNsZWFyQ2xpZW50KCk7CiB9CiAKLVBhc3NSZWZQ
dHI8SFRNTFRyYWNrRWxlbWVudD4gSFRNTFRyYWNrRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8SFRNTFRy
YWNrRWxlbWVudD4gSFRNTFRyYWNrRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEhUTUxUcmFja0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyAr
MzcsNyBAQCBjbGFzcyBIVE1MTWVkaWFFbGVtZW50OwogCiBjbGFzcyBIVE1MVHJhY2tFbGVtZW50
IEZJTkFMIDogcHVibGljIEhUTUxFbGVtZW50LCBwdWJsaWMgVGV4dFRyYWNrQ2xpZW50IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MVHJhY2tFbGVtZW50PiBjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRN
TFRyYWNrRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwog
CiAgICAgS1VSTCBzcmMoKSBjb25zdDsKICAgICB2b2lkIHNldFNyYyhjb25zdCBTdHJpbmcmKTsK
QEAgLTY4LDcgKzY4LDcgQEAgcHVibGljOgogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFF
bGVtZW50Q3Jvc3NPcmlnaW5BdHRyaWJ1dGUoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBIVE1M
VHJhY2tFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIEhUTUxU
cmFja0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAgICAgdmlydHVh
bCB+SFRNTFRyYWNrRWxlbWVudCgpOwogCiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFVMaXN0RWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1
Nzg4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsMTggKzMxLDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcg
bmFtZXNwYWNlIEhUTUxOYW1lczsKIAotSFRNTFVMaXN0RWxlbWVudDo6SFRNTFVMaXN0RWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCi0gICAg
OiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKK0hUTUxVTGlzdEVsZW1lbnQ6OkhUTUxV
TGlzdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3Vt
ZW50KQorICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgJmRvY3VtZW50KQogewogICAgIEFTU0VS
VChoYXNUYWdOYW1lKHVsVGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTFVMaXN0RWxlbWVudD4g
SFRNTFVMaXN0RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8
SFRNTFVMaXN0RWxlbWVudD4gSFRNTFVMaXN0RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1
bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxVTGlzdEVsZW1lbnQodWxUYWcs
IGRvY3VtZW50KSk7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTFVMaXN0RWxlbWVudD4gSFRNTFVMaXN0
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBk
b2N1bWVudCkKK1Bhc3NSZWZQdHI8SFRNTFVMaXN0RWxlbWVudD4gSFRNTFVMaXN0RWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkK
IHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxVTGlzdEVsZW1lbnQodGFnTmFtZSwgZG9j
dW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFVMaXN0RWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFVMaXN0RWxlbWVudC5oCShy
ZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxVTGlzdEVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMjksMTEgKzI5LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgSFRNTFVMaXN0RWxlbWVudCBGSU5BTCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFVMaXN0RWxlbWVudD4gY3JlYXRlKERv
Y3VtZW50Kik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFVMaXN0RWxlbWVudD4gY3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEhUTUxVTGlzdEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEhUTUxVTGlzdEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKIAogcHJpdmF0ZToKLSAgICBIVE1MVUxpc3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCopOworICAgIEhUTUxVTGlzdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0KikgT1ZFUlJJ
REU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAJKHJldmlz
aW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ3LDE2ICs0NywxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLWlubGluZSBIVE1MVmlkZW9FbGVtZW50OjpI
VE1MVmlkZW9FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBk
b2N1bWVudCwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCitpbmxpbmUgSFRNTFZpZGVvRWxlbWVudDo6
SFRNTFZpZGVvRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYg
ZG9jdW1lbnQsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQogICAgIDogSFRNTE1lZGlhRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCwgY3JlYXRlZEJ5UGFyc2VyKQogewogICAgIEFTU0VSVChoYXNUYWdO
YW1lKHZpZGVvVGFnKSk7CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7
Ci0gICAgaWYgKGRvY3VtZW50LT5zZXR0aW5ncygpKQotICAgICAgICBtX2RlZmF1bHRQb3N0ZXJV
UkwgPSBkb2N1bWVudC0+c2V0dGluZ3MoKS0+ZGVmYXVsdFZpZGVvUG9zdGVyVVJMKCk7CisgICAg
aWYgKGRvY3VtZW50LnNldHRpbmdzKCkpCisgICAgICAgIG1fZGVmYXVsdFBvc3RlclVSTCA9IGRv
Y3VtZW50LnNldHRpbmdzKCktPmRlZmF1bHRWaWRlb1Bvc3RlclVSTCgpOwogfQogCi1QYXNzUmVm
UHRyPEhUTUxWaWRlb0VsZW1lbnQ+IEhUTUxWaWRlb0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgY3JlYXRlZEJ5UGFy
c2VyKQorUGFzc1JlZlB0cjxIVE1MVmlkZW9FbGVtZW50PiBIVE1MVmlkZW9FbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBib29s
IGNyZWF0ZWRCeVBhcnNlcikKIHsKICAgICBSZWZQdHI8SFRNTFZpZGVvRWxlbWVudD4gdmlkZW9F
bGVtZW50KGFkb3B0UmVmKG5ldyBIVE1MVmlkZW9FbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBj
cmVhdGVkQnlQYXJzZXIpKSk7CiAgICAgdmlkZW9FbGVtZW50LT5zdXNwZW5kSWZOZWVkZWQoKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCShyZXZpc2lvbiAxNTU3
ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBIVE1MSW1hZ2VMb2FkZXI7CiAKIGNsYXNzIEhU
TUxWaWRlb0VsZW1lbnQgRklOQUwgOiBwdWJsaWMgSFRNTE1lZGlhRWxlbWVudCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFZpZGVvRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIGJvb2wpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhU
TUxWaWRlb0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBi
b29sKTsKIAogICAgIHVuc2lnbmVkIHdpZHRoKCkgY29uc3Q7CiAgICAgdW5zaWduZWQgaGVpZ2h0
KCkgY29uc3Q7CkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICBLVVJMIHBvc3RlckltYWdl
VVJMKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgSFRNTFZpZGVvRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqLCBib29sKTsKKyAgICBIVE1MVmlkZW9FbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wpOwogCiAgICAgdmlydHVhbCBib29sIHJl
bmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKTsKICNpZiAhRU5BQkxFKFBMVUdJTl9Q
Uk9YWV9GT1JfVklERU8pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWV3U291cmNl
RG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZXdT
b3VyY2VEb2N1bWVudC5jcHAJKHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgwLDkgKzgw
LDkgQEAgdm9pZCBIVE1MVmlld1NvdXJjZURvY3VtZW50OjpjcmVhdGVDb250YQogICAgIGRpdi0+
c2V0QXR0cmlidXRlKGNsYXNzQXR0ciwgIndlYmtpdC1saW5lLWd1dHRlci1iYWNrZHJvcCIpOwog
ICAgIGJvZHktPnBhcnNlckFwcGVuZENoaWxkKGRpdik7CiAKLSAgICBSZWZQdHI8SFRNTFRhYmxl
RWxlbWVudD4gdGFibGUgPSBIVE1MVGFibGVFbGVtZW50OjpjcmVhdGUodGhpcyk7CisgICAgUmVm
UHRyPEhUTUxUYWJsZUVsZW1lbnQ+IHRhYmxlID0gSFRNTFRhYmxlRWxlbWVudDo6Y3JlYXRlKCp0
aGlzKTsKICAgICBib2R5LT5wYXJzZXJBcHBlbmRDaGlsZCh0YWJsZSk7Ci0gICAgbV90Ym9keSA9
IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OjpjcmVhdGUodGJvZHlUYWcsIHRoaXMpOworICAgIG1f
dGJvZHkgPSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6Y3JlYXRlKHRib2R5VGFnLCAqdGhpcyk7
CiAgICAgdGFibGUtPnBhcnNlckFwcGVuZENoaWxkKG1fdGJvZHkpOwogICAgIG1fY3VycmVudCA9
IG1fdGJvZHk7CiAKQEAgLTE5MSwxOCArMTkxLDE4IEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gSFRN
TFZpZXdTb3VyY2VEb2N1bWUKIHZvaWQgSFRNTFZpZXdTb3VyY2VEb2N1bWVudDo6YWRkTGluZShj
b25zdCBBdG9taWNTdHJpbmcmIGNsYXNzTmFtZSkKIHsKICAgICAvLyBDcmVhdGUgYSB0YWJsZSBy
b3cuCi0gICAgUmVmUHRyPEhUTUxUYWJsZVJvd0VsZW1lbnQ+IHRyb3cgPSBIVE1MVGFibGVSb3dF
bGVtZW50OjpjcmVhdGUodGhpcyk7CisgICAgUmVmUHRyPEhUTUxUYWJsZVJvd0VsZW1lbnQ+IHRy
b3cgPSBIVE1MVGFibGVSb3dFbGVtZW50OjpjcmVhdGUoKnRoaXMpOwogICAgIG1fdGJvZHktPnBh
cnNlckFwcGVuZENoaWxkKHRyb3cpOwogICAgIFN0eWxlOjpyZWF0dGFjaFJlbmRlclRyZWUoKnRy
b3cpOwogCiAgICAgLy8gQ3JlYXRlIGEgY2VsbCB0aGF0IHdpbGwgaG9sZCB0aGUgbGluZSBudW1i
ZXIgKGl0IGlzIGdlbmVyYXRlZCBpbiB0aGUgc3R5bGVzaGVldCB1c2luZyBjb3VudGVycykuCi0g
ICAgUmVmUHRyPEhUTUxUYWJsZUNlbGxFbGVtZW50PiB0ZCA9IEhUTUxUYWJsZUNlbGxFbGVtZW50
OjpjcmVhdGUodGRUYWcsIHRoaXMpOworICAgIFJlZlB0cjxIVE1MVGFibGVDZWxsRWxlbWVudD4g
dGQgPSBIVE1MVGFibGVDZWxsRWxlbWVudDo6Y3JlYXRlKHRkVGFnLCAqdGhpcyk7CiAgICAgdGQt
PnNldEF0dHJpYnV0ZShjbGFzc0F0dHIsICJ3ZWJraXQtbGluZS1udW1iZXIiKTsKICAgICB0cm93
LT5wYXJzZXJBcHBlbmRDaGlsZCh0ZCk7CiAgICAgU3R5bGU6OmF0dGFjaFJlbmRlclRyZWUoKnRk
KTsKIAogICAgIC8vIENyZWF0ZSBhIHNlY29uZCBjZWxsIGZvciB0aGUgbGluZSBjb250ZW50cwot
ICAgIHRkID0gSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OmNyZWF0ZSh0ZFRhZywgdGhpcyk7CisgICAg
dGQgPSBIVE1MVGFibGVDZWxsRWxlbWVudDo6Y3JlYXRlKHRkVGFnLCAqdGhpcyk7CiAgICAgdGQt
PnNldEF0dHJpYnV0ZShjbGFzc0F0dHIsICJ3ZWJraXQtbGluZS1jb250ZW50Iik7CiAgICAgdHJv
dy0+cGFyc2VyQXBwZW5kQ2hpbGQodGQpOwogICAgIFN0eWxlOjphdHRhY2hSZW5kZXJUcmVlKCp0
ZCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0xhYmVsYWJsZUVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvTGFiZWxhYmxlRWxlbWVudC5jcHAJKHJldmlz
aW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvTGFiZWxhYmxlRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMxLDggKzMxLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1MYWJlbGFibGVFbGVtZW50OjpMYWJlbGFibGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKLSAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KQorTGFiZWxhYmxlRWxlbWVudDo6TGFiZWxhYmxlRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBIVE1MRWxlbWVu
dCh0YWdOYW1lLCAmZG9jdW1lbnQpCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
TGFiZWxhYmxlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvTGFi
ZWxhYmxlRWxlbWVudC5oCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L0xhYmVsYWJsZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRMYWJlbHMoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgTGFiZWxhYmxlRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOworICAgIExhYmVsYWJsZUVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFs
IGJvb2wgaXNMYWJlbGFibGUoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiB0cnVlOyB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVj
dGlvblNpdGUuY3BwCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4MCw3ICsz
ODAsNyBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnREb2N0eXBlCiB2b2lkIEhU
TUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRDb21tZW50KEF0b21pY0hUTUxUb2tlbiogdG9rZW4p
CiB7CiAgICAgQVNTRVJUKHRva2VuLT50eXBlKCkgPT0gSFRNTFRva2VuOjpDb21tZW50KTsKLSAg
ICBhdHRhY2hMYXRlcihjdXJyZW50Tm9kZSgpLCBDb21tZW50OjpjcmVhdGUob3duZXJEb2N1bWVu
dEZvckN1cnJlbnROb2RlKCksIHRva2VuLT5jb21tZW50KCkpKTsKKyAgICBhdHRhY2hMYXRlcihj
dXJyZW50Tm9kZSgpLCBDb21tZW50OjpjcmVhdGUoJm93bmVyRG9jdW1lbnRGb3JDdXJyZW50Tm9k
ZSgpLCB0b2tlbi0+Y29tbWVudCgpKSk7CiB9CiAKIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6
Omluc2VydENvbW1lbnRPbkRvY3VtZW50KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCkBAIC01MzAs
MTggKzUzMCwxOCBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRUZXh0Tm9kCiBQ
YXNzUmVmUHRyPEVsZW1lbnQ+IEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpjcmVhdGVFbGVtZW50KEF0
b21pY0hUTUxUb2tlbiogdG9rZW4sIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJKQog
ewogICAgIFF1YWxpZmllZE5hbWUgdGFnTmFtZShudWxsQXRvbSwgdG9rZW4tPm5hbWUoKSwgbmFt
ZXNwYWNlVVJJKTsKLSAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IG93bmVyRG9jdW1lbnRG
b3JDdXJyZW50Tm9kZSgpLT5jcmVhdGVFbGVtZW50KHRhZ05hbWUsIHRydWUpOworICAgIFJlZlB0
cjxFbGVtZW50PiBlbGVtZW50ID0gb3duZXJEb2N1bWVudEZvckN1cnJlbnROb2RlKCkuY3JlYXRl
RWxlbWVudCh0YWdOYW1lLCB0cnVlKTsKICAgICBzZXRBdHRyaWJ1dGVzKGVsZW1lbnQuZ2V0KCks
IHRva2VuLCBtX3BhcnNlckNvbnRlbnRQb2xpY3kpOwogICAgIHJldHVybiBlbGVtZW50LnJlbGVh
c2UoKTsKIH0KIAotaW5saW5lIERvY3VtZW50KiBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6b3duZXJE
b2N1bWVudEZvckN1cnJlbnROb2RlKCkKK2lubGluZSBEb2N1bWVudCYgSFRNTENvbnN0cnVjdGlv
blNpdGU6Om93bmVyRG9jdW1lbnRGb3JDdXJyZW50Tm9kZSgpCiB7CiAjaWYgRU5BQkxFKFRFTVBM
QVRFX0VMRU1FTlQpCiAgICAgaWYgKGN1cnJlbnROb2RlKCktPmhhc1RhZ05hbWUodGVtcGxhdGVU
YWcpKQotICAgICAgICByZXR1cm4gJnRvSFRNTFRlbXBsYXRlRWxlbWVudChjdXJyZW50RWxlbWVu
dCgpKS0+Y29udGVudCgpLT5kb2N1bWVudCgpOworICAgICAgICByZXR1cm4gdG9IVE1MVGVtcGxh
dGVFbGVtZW50KGN1cnJlbnRFbGVtZW50KCkpLT5jb250ZW50KCktPmRvY3VtZW50KCk7CiAjZW5k
aWYKLSAgICByZXR1cm4gJmN1cnJlbnROb2RlKCktPmRvY3VtZW50KCk7CisgICAgcmV0dXJuIGN1
cnJlbnROb2RlKCktPmRvY3VtZW50KCk7CiB9CiAKIFBhc3NSZWZQdHI8RWxlbWVudD4gSFRNTENv
bnN0cnVjdGlvblNpdGU6OmNyZWF0ZUhUTUxFbGVtZW50KEF0b21pY0hUTUxUb2tlbiogdG9rZW4p
CkBAIC01NTAsNyArNTUwLDcgQEAgUGFzc1JlZlB0cjxFbGVtZW50PiBIVE1MQ29uc3RydWN0aW9u
U2l0ZQogICAgIC8vIEZJWE1FOiBUaGlzIGNhbid0IHVzZSBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6
Y3JlYXRlRWxlbWVudCBiZWNhdXNlIHdlCiAgICAgLy8gaGF2ZSB0byBwYXNzIHRoZSBjdXJyZW50
IGZvcm0gZWxlbWVudC4gIFdlIHNob3VsZCByZXdvcmsgZm9ybSBhc3NvY2lhdGlvbgogICAgIC8v
IHRvIG9jY3VyIGFmdGVyIGNvbnN0cnVjdGlvbiB0byBhbGxvdyBiZXR0ZXIgY29kZSBzaGFyaW5n
IGhlcmUuCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBIVE1MRWxlbWVudEZhY3Rvcnk6
OmNyZWF0ZUhUTUxFbGVtZW50KHRhZ05hbWUsIG93bmVyRG9jdW1lbnRGb3JDdXJyZW50Tm9kZSgp
LCBmb3JtKCksIHRydWUpOworICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gSFRNTEVsZW1l
bnRGYWN0b3J5OjpjcmVhdGVIVE1MRWxlbWVudCh0YWdOYW1lLCAmb3duZXJEb2N1bWVudEZvckN1
cnJlbnROb2RlKCksIGZvcm0oKSwgdHJ1ZSk7CiAgICAgc2V0QXR0cmlidXRlcyhlbGVtZW50Lmdl
dCgpLCB0b2tlbiwgbV9wYXJzZXJDb250ZW50UG9saWN5KTsKICAgICBBU1NFUlQoZWxlbWVudC0+
aXNIVE1MRWxlbWVudCgpKTsKICAgICByZXR1cm4gZWxlbWVudC5yZWxlYXNlKCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmgJ
KHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25z
dHJ1Y3Rpb25TaXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTExOCw3ICsxMTgsNyBAQCBwdWJsaWM6
CiAgICAgQ29udGFpbmVyTm9kZSogY3VycmVudE5vZGUoKSBjb25zdCB7IHJldHVybiBtX29wZW5F
bGVtZW50cy50b3BOb2RlKCk7IH0KICAgICBIVE1MU3RhY2tJdGVtKiBjdXJyZW50U3RhY2tJdGVt
KCkgY29uc3QgeyByZXR1cm4gbV9vcGVuRWxlbWVudHMudG9wU3RhY2tJdGVtKCk7IH0KICAgICBI
VE1MU3RhY2tJdGVtKiBvbmVCZWxvd1RvcCgpIGNvbnN0IHsgcmV0dXJuIG1fb3BlbkVsZW1lbnRz
Lm9uZUJlbG93VG9wKCk7IH0KLSAgICBEb2N1bWVudCogb3duZXJEb2N1bWVudEZvckN1cnJlbnRO
b2RlKCk7CisgICAgRG9jdW1lbnQmIG93bmVyRG9jdW1lbnRGb3JDdXJyZW50Tm9kZSgpOwogICAg
IEhUTUxFbGVtZW50U3RhY2sqIG9wZW5FbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuICZtX29wZW5F
bGVtZW50czsgfQogICAgIEhUTUxGb3JtYXR0aW5nRWxlbWVudExpc3QqIGFjdGl2ZUZvcm1hdHRp
bmdFbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuICZtX2FjdGl2ZUZvcm1hdHRpbmdFbGVtZW50czsg
fQogICAgIGJvb2wgY3VycmVudElzUm9vdE5vZGUoKSB7IHJldHVybiBtX29wZW5FbGVtZW50cy50
b3BOb2RlKCkgPT0gbV9vcGVuRWxlbWVudHMucm9vdE5vZGUoKTsgfQpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudFR5cGVzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50VHlwZXMu
Y3BwCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50VHlwZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsMjMgKzExMSwy
MyBAQCB2b2lkIE1lZGlhQ29udHJvbEVsZW1lbnQ6OnNldERpc3BsYXlUeXBlCiAKIC8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotTWVkaWFDb250cm9sRGl2RWxlbWVudDo6TWVkaWFD
b250cm9sRGl2RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIE1lZGlhQ29udHJvbEVsZW1lbnRU
eXBlIGRpc3BsYXlUeXBlKQotICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFnLCAqZG9jdW1lbnQp
CitNZWRpYUNvbnRyb2xEaXZFbGVtZW50OjpNZWRpYUNvbnRyb2xEaXZFbGVtZW50KERvY3VtZW50
JiBkb2N1bWVudCwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgZGlzcGxheVR5cGUpCisgICAgOiBI
VE1MRGl2RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQogICAgICwgTWVkaWFDb250cm9sRWxlbWVu
dChkaXNwbGF5VHlwZSwgdGhpcykKIHsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogCi1NZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6Ok1lZGlhQ29udHJvbElucHV0RWxlbWVu
dChEb2N1bWVudCogZG9jdW1lbnQsIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIGRpc3BsYXlUeXBl
KQotICAgIDogSFRNTElucHV0RWxlbWVudChpbnB1dFRhZywgKmRvY3VtZW50LCAwLCBmYWxzZSkK
K01lZGlhQ29udHJvbElucHV0RWxlbWVudDo6TWVkaWFDb250cm9sSW5wdXRFbGVtZW50KERvY3Vt
ZW50JiBkb2N1bWVudCwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgZGlzcGxheVR5cGUpCisgICAg
OiBIVE1MSW5wdXRFbGVtZW50KGlucHV0VGFnLCBkb2N1bWVudCwgMCwgZmFsc2UpCiAgICAgLCBN
ZWRpYUNvbnRyb2xFbGVtZW50KGRpc3BsYXlUeXBlLCB0aGlzKQogewogfQogCiAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLU1lZGlhQ29udHJvbFRpbWVEaXNwbGF5RWxlbWVudDo6
TWVkaWFDb250cm9sVGltZURpc3BsYXlFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgTWVkaWFD
b250cm9sRWxlbWVudFR5cGUgZGlzcGxheVR5cGUpCitNZWRpYUNvbnRyb2xUaW1lRGlzcGxheUVs
ZW1lbnQ6Ok1lZGlhQ29udHJvbFRpbWVEaXNwbGF5RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQs
IE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIGRpc3BsYXlUeXBlKQogICAgIDogTWVkaWFDb250cm9s
RGl2RWxlbWVudChkb2N1bWVudCwgZGlzcGxheVR5cGUpCiAgICAgLCBtX2N1cnJlbnRWYWx1ZSgw
KQogewpAQCAtMTQwLDcgKzE0MCw3IEBAIHZvaWQgTWVkaWFDb250cm9sVGltZURpc3BsYXlFbGVt
ZW50OjpzZXQKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1NZWRpYUNvbnRy
b2xNdXRlQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sTXV0ZUJ1dHRvbkVsZW1lbnQoRG9jdW1l
bnQqIGRvY3VtZW50LCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBkaXNwbGF5VHlwZSkKK01lZGlh
Q29udHJvbE11dGVCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xNdXRlQnV0dG9uRWxlbWVudChE
b2N1bWVudCYgZG9jdW1lbnQsIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIGRpc3BsYXlUeXBlKQog
ICAgIDogTWVkaWFDb250cm9sSW5wdXRFbGVtZW50KGRvY3VtZW50LCBkaXNwbGF5VHlwZSkKIHsK
IH0KQEAgLTE2Nyw3ICsxNjcsNyBAQCB2b2lkIE1lZGlhQ29udHJvbE11dGVCdXR0b25FbGVtZW50
Ojp1cGRhCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotTWVkaWFDb250cm9s
U2Vla0J1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbFNlZWtCdXR0b25FbGVtZW50KERvY3VtZW50
KiBkb2N1bWVudCwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgZGlzcGxheVR5cGUpCitNZWRpYUNv
bnRyb2xTZWVrQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sU2Vla0J1dHRvbkVsZW1lbnQoRG9j
dW1lbnQmIGRvY3VtZW50LCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBkaXNwbGF5VHlwZSkKICAg
ICA6IE1lZGlhQ29udHJvbElucHV0RWxlbWVudChkb2N1bWVudCwgZGlzcGxheVR5cGUpCiAgICAg
LCBtX2FjdGlvbk9uU3RvcChOb3RoaW5nKQogICAgICwgbV9zZWVrVHlwZShTa2lwKQpAQCAtMjQ3
LDcgKzI0Nyw3IEBAIHZvaWQgTWVkaWFDb250cm9sU2Vla0J1dHRvbkVsZW1lbnQ6OnNlZWsKIAog
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1NZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJFbGVtZW50OjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50KERvY3VtZW50KiBkb2N1
bWVudCkKK01lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFZvbHVt
ZVNsaWRlckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogTWVkaWFDb250cm9sSW5w
dXRFbGVtZW50KGRvY3VtZW50LCBNZWRpYVZvbHVtZVNsaWRlcikKICAgICAsIG1fY2xlYXJNdXRl
ZE9uVXNlckludGVyYWN0aW9uKGZhbHNlKQogewpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sRWxlbWVudFR5cGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudFR5cGVzLmgJKHJldmlzaW9uIDE1
NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRU
eXBlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsNyArMTExLDcgQEAgcHJpdmF0ZToKIGNsYXNz
IE1lZGlhQ29udHJvbERpdkVsZW1lbnQgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQsIHB1YmxpYyBN
ZWRpYUNvbnRyb2xFbGVtZW50IHsKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgaXNNZWRp
YUNvbnRyb2xFbGVtZW50KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gTWVkaWFDb250cm9sRWxl
bWVudDo6aXNNZWRpYUNvbnRyb2xFbGVtZW50KCk7IH0KLSAgICBleHBsaWNpdCBNZWRpYUNvbnRy
b2xEaXZFbGVtZW50KERvY3VtZW50KiwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUpOworICAgIGV4
cGxpY2l0IE1lZGlhQ29udHJvbERpdkVsZW1lbnQoRG9jdW1lbnQmLCBNZWRpYUNvbnRyb2xFbGVt
ZW50VHlwZSk7CiB9OwogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMTks
NyArMTE5LDcgQEAgcHJvdGVjdGVkOgogY2xhc3MgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50IDog
cHVibGljIEhUTUxJbnB1dEVsZW1lbnQsIHB1YmxpYyBNZWRpYUNvbnRyb2xFbGVtZW50IHsKIHBy
b3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgaXNNZWRpYUNvbnRyb2xFbGVtZW50KCkgY29uc3Qg
T1ZFUlJJREUgeyByZXR1cm4gTWVkaWFDb250cm9sRWxlbWVudDo6aXNNZWRpYUNvbnRyb2xFbGVt
ZW50KCk7IH0KLSAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQoRG9jdW1lbnQq
LCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSk7CisgICAgZXhwbGljaXQgTWVkaWFDb250cm9sSW5w
dXRFbGVtZW50KERvY3VtZW50JiwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUpOwogCiBwcml2YXRl
OgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVEaXNwbGF5VHlwZSgpIHsgfQpAQCAtMTMzLDcgKzEz
Myw3IEBAIHB1YmxpYzoKICAgICBkb3VibGUgY3VycmVudFZhbHVlKCkgY29uc3QgeyByZXR1cm4g
bV9jdXJyZW50VmFsdWU7IH0KIAogcHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IE1lZGlhQ29udHJv
bFRpbWVEaXNwbGF5RWxlbWVudChEb2N1bWVudCosIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlKTsK
KyAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xUaW1lRGlzcGxheUVsZW1lbnQoRG9jdW1lbnQmLCBN
ZWRpYUNvbnRyb2xFbGVtZW50VHlwZSk7CiAKIHByaXZhdGU6CiAgICAgZG91YmxlIG1fY3VycmVu
dFZhbHVlOwpAQCAtMTQ4LDcgKzE0OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgd2ls
bFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAK
IHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xNdXRlQnV0dG9uRWxlbWVudChE
b2N1bWVudCosIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlKTsKKyAgICBleHBsaWNpdCBNZWRpYUNv
bnRyb2xNdXRlQnV0dG9uRWxlbWVudChEb2N1bWVudCYsIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBl
KTsKIAogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KikgT1ZFUlJJ
REU7CiAKQEAgLTE2Myw3ICsxNjMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHdpbGxS
ZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogCiBw
cm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgTWVkaWFDb250cm9sU2Vla0J1dHRvbkVsZW1lbnQoRG9j
dW1lbnQqLCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSk7CisgICAgZXhwbGljaXQgTWVkaWFDb250
cm9sU2Vla0J1dHRvbkVsZW1lbnQoRG9jdW1lbnQmLCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCBpc0ZvcndhcmRCdXR0b24oKSBjb25zdCA9IDA7CkBAIC0xOTMs
NyArMTkzLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q2xlYXJNdXRlZE9uVXNlckludGVyYWN0
aW9uKGJvb2wpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgTWVkaWFDb250cm9sVm9sdW1l
U2xpZGVyRWxlbWVudChEb2N1bWVudCopOworICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFZvbHVt
ZVNsaWRlckVsZW1lbnQoRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZl
bnRIYW5kbGVyKEV2ZW50KikgT1ZFUlJJREU7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAJKHJldmlzaW9uIDE1NTc4
OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNzEsNyArNzEsNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5h
bWVzOwogc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgZ2V0TWVkaWFDb250cm9sQ3VycmVudFRp
bWVEaXNwbGF5RWxlbWVudFNoYWRvd1BzZXVkb0lkKCk7CiBzdGF0aWMgY29uc3QgQXRvbWljU3Ry
aW5nJiBnZXRNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnRTaGFkb3dQc2V1
ZG9JZCgpOwogCi1NZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6Ok1lZGlhQ29udHJvbFBhbmVsRWxl
bWVudChEb2N1bWVudCogZG9jdW1lbnQpCitNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6Ok1lZGlh
Q29udHJvbFBhbmVsRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBNZWRpYUNvbnRy
b2xEaXZFbGVtZW50KGRvY3VtZW50LCBNZWRpYUNvbnRyb2xzUGFuZWwpCiAgICAgLCBtX2NhbkJl
RHJhZ2dlZChmYWxzZSkKICAgICAsIG1faXNCZWluZ0RyYWdnZWQoZmFsc2UpCkBAIC04MSw3ICs4
MSw3IEBAIE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6TWVkaWFDb250cm9sUGEKIHsKIH0KIAot
UGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ+IE1lZGlhQ29udHJvbFBhbmVsRWxl
bWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8TWVkaWFDb250cm9s
UGFuZWxFbGVtZW50PiBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xQYW5lbEVs
ZW1lbnQoZG9jdW1lbnQpKTsKIH0KQEAgLTI2MiwxMyArMjYyLDEzIEBAIHZvaWQgTWVkaWFDb250
cm9sUGFuZWxFbGVtZW50OjpzZXRJc0Rpc3AKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogCi1NZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ6Ok1lZGlhQ29udHJvbFBh
bmVsRW5jbG9zdXJlRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCitNZWRpYUNvbnRyb2xQYW5l
bEVuY2xvc3VyZUVsZW1lbnQ6Ok1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudChEb2N1
bWVudCYgZG9jdW1lbnQpCiAgICAgLy8gTWFwcGluZyBvbnRvIHNhbWUgTWVkaWFDb250cm9sRWxl
bWVudFR5cGUgYXMgcGFuZWwgZWxlbWVudCwgc2luY2UgaXQgaGFzIHNpbWlsYXIgcHJvcGVydGll
cy4KICAgICA6IE1lZGlhQ29udHJvbERpdkVsZW1lbnQoZG9jdW1lbnQsIE1lZGlhQ29udHJvbHNQ
YW5lbCkKIHsKIH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1l
bnQ+IE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBk
b2N1bWVudCkKK1Bhc3NSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50PiBN
ZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3Vy
ZUVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KQEAgLTI4MSwxMyArMjgxLDEzIEBAIGNvbnN0IEF0b21p
Y1N0cmluZyYgTWVkaWFDb250cm9sUGFuZWxFbmMKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogCi1NZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudDo6TWVkaWFDb250
cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQorTWVkaWFDb250
cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQ6Ok1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVF
bGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICAvLyBNYXBwaW5nIG9udG8gc2FtZSBNZWRp
YUNvbnRyb2xFbGVtZW50VHlwZSBhcyBwYW5lbCBlbGVtZW50LCBzaW5jZSBpdCBoYXMgc2ltaWxh
ciBwcm9wZXJ0aWVzLgogICAgIDogTWVkaWFDb250cm9sRGl2RWxlbWVudChkb2N1bWVudCwgTWVk
aWFDb250cm9sc1BhbmVsKQogewogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbE92ZXJsYXlF
bmNsb3N1cmVFbGVtZW50PiBNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudDo6Y3Jl
YXRlKERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8TWVkaWFDb250cm9sT3ZlcmxheUVu
Y2xvc3VyZUVsZW1lbnQ+IE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50OjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFD
b250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KQEAgLTMwMCwxMiAr
MzAwLDEyIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sT3ZlcmxheUUKIAogLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1NZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRh
aW5lckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudChEb2N1bWVu
dCogZG9jdW1lbnQpCitNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6Ok1lZGlh
Q29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAg
OiBNZWRpYUNvbnRyb2xEaXZFbGVtZW50KGRvY3VtZW50LCBNZWRpYVRpbWVsaW5lQ29udGFpbmVy
KQogewogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVu
dD4gTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQq
IGRvY3VtZW50KQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1l
bnQ+IE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCkKIHsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJF
bGVtZW50PiBlbGVtZW50ID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFp
bmVyRWxlbWVudChkb2N1bWVudCkpOwogICAgIGVsZW1lbnQtPmhpZGUoKTsKQEAgLTM0NCwxMiAr
MzQ0LDEyIEBAIFJlbmRlck9iamVjdCogTWVkaWFDb250cm9sVGltZWxpbmVDb250YWkKIAogLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1NZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJD
b250YWluZXJFbGVtZW50OjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50
KERvY3VtZW50KiBkb2N1bWVudCkKK01lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVs
ZW1lbnQ6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQoRG9jdW1lbnQm
IGRvY3VtZW50KQogICAgIDogTWVkaWFDb250cm9sRGl2RWxlbWVudChkb2N1bWVudCwgTWVkaWFW
b2x1bWVTbGlkZXJDb250YWluZXIpCiB7CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFDb250cm9sVm9s
dW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudD4gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFp
bmVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8TWVkaWFD
b250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudD4gTWVkaWFDb250cm9sVm9sdW1lU2xp
ZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBS
ZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudD4gZWxlbWVudCA9
IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50KGRv
Y3VtZW50KSk7CiAgICAgZWxlbWVudC0+aGlkZSgpOwpAQCAtMzg1LDEzICszODUsMTMgQEAgY29u
c3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xWb2x1bWVTbAogCiAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAKLU1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50OjpNZWRp
YUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCitNZWRpYUNv
bnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudDo6TWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1l
bnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogTWVkaWFDb250cm9sRGl2RWxlbWVudChkb2N1
bWVudCwgTWVkaWFTdGF0dXNEaXNwbGF5KQogICAgICwgbV9zdGF0ZUJlaW5nRGlzcGxheWVkKE5v
dGhpbmcpCiB7CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1l
bnQ+IE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRv
Y3VtZW50KQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudD4gTWVk
aWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQp
CiB7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50PiBlbGVtZW50
ID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50KGRvY3VtZW50
KSk7CiAgICAgZWxlbWVudC0+aGlkZSgpOwpAQCAtNDQwLDEzICs0NDAsMTMgQEAgY29uc3QgQXRv
bWljU3RyaW5nJiBNZWRpYUNvbnRyb2xTdGF0dXNEaQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAKLU1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29u
dHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBNZWRpYUNvbnRy
b2xzKiBjb250cm9scykKK01lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6Ok1lZGlh
Q29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBNZWRpYUNv
bnRyb2xzKiBjb250cm9scykKICAgICA6IE1lZGlhQ29udHJvbE11dGVCdXR0b25FbGVtZW50KGRv
Y3VtZW50LCBNZWRpYU11dGVCdXR0b24pCiAgICAgLCBtX2NvbnRyb2xzKGNvbnRyb2xzKQogewog
fQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+IE1lZGlh
Q29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQs
IE1lZGlhQ29udHJvbHMqIGNvbnRyb2xzKQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbE11
dGVCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50OjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50LCBNZWRpYUNvbnRyb2xzKiBjb250cm9scykKIHsKICAgICBB
U1NFUlQoY29udHJvbHMpOwogCkBAIC00NzIsMTIgKzQ3MiwxMiBAQCBjb25zdCBBdG9taWNTdHJp
bmcmIE1lZGlhQ29udHJvbFBhbmVsTXV0CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIAotTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29u
dHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKK01l
ZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xWb2x1
bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBNZWRp
YUNvbnRyb2xNdXRlQnV0dG9uRWxlbWVudChkb2N1bWVudCwgTWVkaWFNdXRlQnV0dG9uKQogewog
fQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50
PiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3Vt
ZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1
dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50Ojpj
cmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1
bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29u
dHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50KGRvY3VtZW50KSk7CiAgICAgYnV0dG9u
LT5lbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCk7CkBAIC00OTMsMTIgKzQ5MywxMiBAQCBjb25z
dCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFZvbHVtZVNsCiAKIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIAotTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29u
dHJvbFBsYXlCdXR0b25FbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKK01lZGlhQ29udHJvbFBs
YXlCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudChEb2N1bWVudCYg
ZG9jdW1lbnQpCiAgICAgOiBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQoZG9jdW1lbnQsIE1lZGlh
UGxheUJ1dHRvbikKIHsKIH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxl
bWVudD4gTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9j
dW1lbnQpCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50PiBNZWRpYUNv
bnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAg
ICBSZWZQdHI8TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVm
KG5ldyBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudChkb2N1bWVudCkpOwogICAgIGJ1dHRv
bi0+ZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpOwpAQCAtNTMyLDEyICs1MzIsMTIgQEAgY29u
c3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xQbGF5QnV0dAogCiAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAKLU1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudDo6
TWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkK
K01lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sT3Zlcmxh
eVBsYXlCdXR0b25FbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IE1lZGlhQ29udHJv
bElucHV0RWxlbWVudChkb2N1bWVudCwgTWVkaWFPdmVybGF5UGxheUJ1dHRvbikKIHsKIH0KIAot
UGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29u
dHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkK
K1Bhc3NSZWZQdHI8TWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50PiBNZWRpYUNv
bnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQp
CiB7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudD4gYnV0
dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudChk
b2N1bWVudCkpOwogICAgIGJ1dHRvbi0+ZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpOwpAQCAt
NTcyLDEyICs1NzIsMTIgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xPdmVybGF5
UAogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLU1lZGlhQ29udHJvbFNlZWtG
b3J3YXJkQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50
KERvY3VtZW50KiBkb2N1bWVudCkKK01lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVu
dDo6TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50KERvY3VtZW50JiBkb2N1bWVu
dCkKICAgICA6IE1lZGlhQ29udHJvbFNlZWtCdXR0b25FbGVtZW50KGRvY3VtZW50LCBNZWRpYVNl
ZWtGb3J3YXJkQnV0dG9uKQogewogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbFNlZWtGb3J3
YXJkQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50Ojpj
cmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xTZWVrRm9y
d2FyZEJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudDo6
Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sU2Vl
a0ZvcndhcmRCdXR0b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9s
U2Vla0ZvcndhcmRCdXR0b25FbGVtZW50KGRvY3VtZW50KSk7CiAgICAgYnV0dG9uLT5lbnN1cmVV
c2VyQWdlbnRTaGFkb3dSb290KCk7CkBAIC01OTMsMTIgKzU5MywxMiBAQCBjb25zdCBBdG9taWNT
dHJpbmcmIE1lZGlhQ29udHJvbFNlZWtGb3J3CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KIAotTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xT
ZWVrQmFja0J1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQorTWVkaWFDb250cm9sU2Vl
a0JhY2tCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQoRG9j
dW1lbnQmIGRvY3VtZW50KQogICAgIDogTWVkaWFDb250cm9sU2Vla0J1dHRvbkVsZW1lbnQoZG9j
dW1lbnQsIE1lZGlhU2Vla0JhY2tCdXR0b24pCiB7CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFDb250
cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1l
bnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFNl
ZWtCYWNrQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50Ojpj
cmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xTZWVr
QmFja0J1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xTZWVr
QmFja0J1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKICAgICBidXR0b24tPmVuc3VyZVVzZXJBZ2Vu
dFNoYWRvd1Jvb3QoKTsKQEAgLTYxNCwxMiArNjE0LDEyIEBAIGNvbnN0IEF0b21pY1N0cmluZyYg
TWVkaWFDb250cm9sU2Vla0JhY2sKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
Ci1NZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xSZXdpbmRCdXR0
b25FbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKK01lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVs
ZW1lbnQ6Ok1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50
KQogICAgIDogTWVkaWFDb250cm9sSW5wdXRFbGVtZW50KGRvY3VtZW50LCBNZWRpYVJld2luZEJ1
dHRvbikKIHsKIH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50
PiBNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3Vt
ZW50KQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50PiBNZWRpYUNv
bnRyb2xSZXdpbmRCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewog
ICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50PiBidXR0b24gPSBhZG9w
dFJlZihuZXcgTWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudChkb2N1bWVudCkpOwogICAg
IGJ1dHRvbi0+ZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpOwpAQCAtNjQ0LDEyICs2NDQsMTIg
QEAgY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xSZXdpbmRCdQogCiAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLU1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0
b25FbGVtZW50OjpNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudChEb2N1
bWVudCogZG9jdW1lbnQpCitNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVu
dDo6TWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQmIGRv
Y3VtZW50KQogICAgIDogTWVkaWFDb250cm9sSW5wdXRFbGVtZW50KGRvY3VtZW50LCBNZWRpYVJl
dHVyblRvUmVhbHRpbWVCdXR0b24pCiB7CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFDb250cm9sUmV0
dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVC
dXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxNZWRp
YUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sUmV0dXJu
VG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAg
ICAgUmVmUHRyPE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50PiBidXR0
b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1l
bnQoZG9jdW1lbnQpKTsKICAgICBidXR0b24tPmVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsK
QEAgLTY3NSw3ICs2NzUsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFJldHVy
blRvCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotTWVkaWFDb250cm9sVG9n
Z2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRD
YXB0aW9uc0J1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBNZWRpYUNvbnRyb2xzKiBj
b250cm9scykKK01lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6
TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50KERvY3VtZW50JiBk
b2N1bWVudCwgTWVkaWFDb250cm9scyogY29udHJvbHMpCiAgICAgOiBNZWRpYUNvbnRyb2xJbnB1
dEVsZW1lbnQoZG9jdW1lbnQsIE1lZGlhU2hvd0Nsb3NlZENhcHRpb25zQnV0dG9uKQogI2lmIFBM
QVRGT1JNKE1BQykgfHwgUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShHVEspCiAgICAgLCBtX2Nv
bnRyb2xzKGNvbnRyb2xzKQpAQCAtNjg2LDcgKzY4Niw3IEBAIE1lZGlhQ29udHJvbFRvZ2dsZUNs
b3NlZENhcHRpb25zQnV0dG9uRWwKICNlbmRpZgogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJv
bFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sVG9nZ2xlQ2xv
c2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBNZWRp
YUNvbnRyb2xzKiBjb250cm9scykKK1Bhc3NSZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2Vk
Q2FwdGlvbnNCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1
dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIE1lZGlhQ29udHJvbHMqIGNv
bnRyb2xzKQogewogICAgIEFTU0VSVChjb250cm9scyk7CiAKQEAgLTczMiwxMiArNzMyLDEyIEBA
IGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sVG9nZ2xlQ2wKIAogLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogCi1NZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5l
ckVsZW1lbnQ6Ok1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudChEb2N1
bWVudCogZG9jdW1lbnQpCitNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1l
bnQ6Ok1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCYg
ZG9jdW1lbnQpCiAgICAgOiBNZWRpYUNvbnRyb2xEaXZFbGVtZW50KGRvY3VtZW50LCBNZWRpYUNs
b3NlZENhcHRpb25zQ29udGFpbmVyKQogewogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbENs
b3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudD4gTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnND
b250YWluZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxN
ZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ+IE1lZGlhQ29udHJvbENs
b3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkK
IHsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50
PiBlbGVtZW50ID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFp
bmVyRWxlbWVudChkb2N1bWVudCkpOwogICAgIGVsZW1lbnQtPnNldEF0dHJpYnV0ZShkaXJBdHRy
LCAiYXV0byIpOwpAQCAtNzUzLDEzICs3NTMsMTMgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBNZWRp
YUNvbnRyb2xDbG9zZWRDYQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLU1l
ZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6TWVkaWFDb250cm9sQ2xv
c2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgTWVkaWFDb250
cm9scyogY29udHJvbHMpCitNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1l
bnQ6Ok1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudChEb2N1bWVudCYg
ZG9jdW1lbnQsIE1lZGlhQ29udHJvbHMqIGNvbnRyb2xzKQogICAgIDogTWVkaWFDb250cm9sRGl2
RWxlbWVudChkb2N1bWVudCwgTWVkaWFDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdCkKICAgICAsIG1f
Y29udHJvbHMoY29udHJvbHMpCiB7CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFDb250cm9sQ2xvc2Vk
Q2FwdGlvbnNUcmFja0xpc3RFbGVtZW50PiBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNr
TGlzdEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQsIE1lZGlhQ29udHJvbHMqIGNv
bnRyb2xzKQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVs
ZW1lbnQ+IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6Y3JlYXRl
KERvY3VtZW50JiBkb2N1bWVudCwgTWVkaWFDb250cm9scyogY29udHJvbHMpCiB7CiAgICAgQVNT
RVJUKGNvbnRyb2xzKTsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFj
a0xpc3RFbGVtZW50PiBlbGVtZW50ID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbENsb3NlZENh
cHRpb25zVHJhY2tMaXN0RWxlbWVudChkb2N1bWVudCwgY29udHJvbHMpKTsKQEAgLTkxNiwxMyAr
OTE2LDEzIEBAIHZvaWQgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QKIAogLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1NZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1l
bnQ6Ok1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIE1lZGlh
Q29udHJvbHMqIGNvbnRyb2xzKQorTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50OjpNZWRpYUNv
bnRyb2xUaW1lbGluZUVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBNZWRpYUNvbnRyb2xzKiBj
b250cm9scykKICAgICA6IE1lZGlhQ29udHJvbElucHV0RWxlbWVudChkb2N1bWVudCwgTWVkaWFT
bGlkZXIpCiAgICAgLCBtX2NvbnRyb2xzKGNvbnRyb2xzKQogewogfQogCi1QYXNzUmVmUHRyPE1l
ZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudD4gTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50Ojpj
cmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBNZWRpYUNvbnRyb2xzKiBjb250cm9scykKK1Bhc3NS
ZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50PiBNZWRpYUNvbnRyb2xUaW1lbGluZUVs
ZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIE1lZGlhQ29udHJvbHMqIGNvbnRyb2xz
KQogewogICAgIEFTU0VSVChjb250cm9scyk7CiAKQEAgLTk4OSwxMiArOTg5LDEyIEBAIGNvbnN0
IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sVGltZWxpbmUKIAogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCi1NZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ6Ok1l
ZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCitN
ZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFBhbmVsVm9s
dW1lU2xpZGVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBNZWRpYUNvbnRyb2xW
b2x1bWVTbGlkZXJFbGVtZW50KGRvY3VtZW50KQogewogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29u
dHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudD4gTWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlk
ZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxNZWRpYUNv
bnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ+IE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xp
ZGVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBSZWZQdHI8TWVk
aWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50PiBzbGlkZXIgPSBhZG9wdFJlZihuZXcg
TWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50KGRvY3VtZW50KSk7CiAgICAgc2xp
ZGVyLT5lbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCk7CkBAIC0xMDEyLDEyICsxMDEyLDEyIEBA
IGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sUGFuZWxWb2wKIAogLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogCi1NZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVy
RWxlbWVudDo6TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQoRG9jdW1l
bnQqIGRvY3VtZW50KQorTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ6
Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50KERvY3VtZW50JiBkb2N1
bWVudCkKICAgICA6IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQoZG9jdW1lbnQpCiB7
CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1l
bnQ+IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoRG9j
dW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1l
U2xpZGVyRWxlbWVudD4gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ6
OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1
bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50PiBzbGlkZXIgPSBhZG9wdFJlZihuZXcgTWVkaWFD
b250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQoZG9jdW1lbnQpKTsKICAgICBzbGlk
ZXItPmVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKQEAgLTEwMzUsMTIgKzEwMzUsMTIgQEAg
Y29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xGdWxsc2NyZQogCiAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAKLU1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50
OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQp
CitNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sRnVsbHNj
cmVlbkJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogTWVkaWFDb250cm9s
SW5wdXRFbGVtZW50KGRvY3VtZW50LCBNZWRpYUVudGVyRnVsbHNjcmVlbkJ1dHRvbikKIHsKIH0K
IAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudD4gTWVkaWFD
b250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQp
CitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBNZWRpYUNv
bnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkK
IHsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ+IGJ1dHRv
biA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudChkb2N1
bWVudCkpOwogICAgIGJ1dHRvbi0+ZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpOwpAQCAtMTA4
NCwxMiArMTA4NCwxMiBAQCB2b2lkIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50
CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotTWVkaWFDb250cm9sRnVsbHNj
cmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVN
aW5CdXR0b25FbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKK01lZGlhQ29udHJvbEZ1bGxzY3Jl
ZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWlu
QnV0dG9uRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBNZWRpYUNvbnRyb2xJbnB1
dEVsZW1lbnQoZG9jdW1lbnQsIE1lZGlhVW5NdXRlQnV0dG9uKQogewogfQogCi1QYXNzUmVmUHRy
PE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50PiBNZWRpYUNvbnRy
b2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1
bWVudCkKK1Bhc3NSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVs
ZW1lbnQ+IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50OjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2Ny
ZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29u
dHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50KGRvY3VtZW50KSk7CiAgICAgYnV0
dG9uLT5lbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCk7CkBAIC0xMTE1LDEyICsxMTE1LDEyIEBA
IGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sRnVsbHNjcmUKIAogLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogCi1NZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0
dG9uRWxlbWVudDo6TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQo
RG9jdW1lbnQqIGRvY3VtZW50KQorTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRv
bkVsZW1lbnQ6Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50KERv
Y3VtZW50JiBkb2N1bWVudCkKIDogTWVkaWFDb250cm9sSW5wdXRFbGVtZW50KGRvY3VtZW50LCBN
ZWRpYU11dGVCdXR0b24pCiB7CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVl
blZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhC
dXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxNZWRp
YUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sRnVs
bHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQp
CiB7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVt
ZW50PiBidXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1h
eEJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKICAgICBidXR0b24tPmVuc3VyZVVzZXJBZ2VudFNo
YWRvd1Jvb3QoKTsKQEAgLTExNDYsMTIgKzExNDYsMTIgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBN
ZWRpYUNvbnRyb2xGdWxsc2NyZQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAK
LU1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6TWVkaWFDb250cm9sVGlt
ZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKK01lZGlhQ29udHJv
bFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rp
c3BsYXlFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IE1lZGlhQ29udHJvbFRpbWVE
aXNwbGF5RWxlbWVudChkb2N1bWVudCwgTWVkaWFUaW1lUmVtYWluaW5nRGlzcGxheSkKIHsKIH0K
IAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ+IE1l
ZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBk
b2N1bWVudCkKK1Bhc3NSZWZQdHI8TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVt
ZW50PiBNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xU
aW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KQEAgLTExNjksMTIgKzEx
NjksMTIgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xUaW1lUmVtYQogCiAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLU1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlz
cGxheUVsZW1lbnQ6Ok1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQoRG9jdW1l
bnQqIGRvY3VtZW50KQorTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDo6TWVk
aWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAg
ICAgOiBNZWRpYUNvbnRyb2xUaW1lRGlzcGxheUVsZW1lbnQoZG9jdW1lbnQsIE1lZGlhQ3VycmVu
dFRpbWVEaXNwbGF5KQogewogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbEN1cnJlbnRUaW1l
RGlzcGxheUVsZW1lbnQ+IE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6OmNy
ZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbEN1cnJlbnRU
aW1lRGlzcGxheUVsZW1lbnQ+IE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6
OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBN
ZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50KGRvY3VtZW50KSk7CiB9CkBAIC0x
MTk0LDcgKzExOTQsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbEN1cnJlbnRU
CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKLU1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRh
aW5lckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQoRG9jdW1l
bnQqIGRvY3VtZW50KQorTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6TWVk
aWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAg
ICAgOiBNZWRpYUNvbnRyb2xEaXZFbGVtZW50KGRvY3VtZW50LCBNZWRpYVRleHRUcmFja0Rpc3Bs
YXlDb250YWluZXIpCiAgICAgLCBtX3VwZGF0ZVRpbWVyKHRoaXMsICZNZWRpYUNvbnRyb2xUZXh0
VHJhY2tDb250YWluZXJFbGVtZW50Ojp1cGRhdGVUaW1lckZpcmVkKQogICAgICwgbV9mb250U2l6
ZSgwKQpAQCAtMTIwMiw3ICsxMjAyLDcgQEAgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVy
RWxlbWVudDo6TQogewogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRh
aW5lckVsZW1lbnQ+IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OmNyZWF0
ZShEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRleHRUcmFja0Nv
bnRhaW5lckVsZW1lbnQ+IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OmNy
ZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRleHRU
cmFja0NvbnRhaW5lckVsZW1lbnQ+IGVsZW1lbnQgPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9s
VGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudChkb2N1bWVudCkpOwogICAgIGVsZW1lbnQtPmhpZGUo
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
RWxlbWVudHMuaAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sRWxlbWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudCBG
SU5BTCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xEaXZFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCop
OworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudD4gY3JlYXRl
KERvY3VtZW50Jik7CiAKICAgICB2b2lkIHNldENhbkJlRHJhZ2dlZChib29sKTsKICAgICB2b2lk
IHNldElzRGlzcGxheWVkKGJvb2wpOwpAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgT1ZFUlJJREUgeyByZXR1
cm4gdHJ1ZTsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFBhbmVsRWxl
bWVudChEb2N1bWVudCopOworICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudChE
b2N1bWVudCYpOwogCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVk
b0lkKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRs
ZXIoRXZlbnQqKSBPVkVSUklERTsKQEAgLTgyLDEwICs4MiwxMCBAQCBwcml2YXRlOgogCiBjbGFz
cyBNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQgRklOQUwgOiBwdWJsaWMgTWVkaWFD
b250cm9sRGl2RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFD
b250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ+IGNyZWF0ZShE
b2N1bWVudCYpOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFBhbmVsRW5j
bG9zdXJlRWxlbWVudChEb2N1bWVudCopOworICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFBhbmVs
RW5jbG9zdXJlRWxlbWVudChEb2N1bWVudCYpOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3Ry
aW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0IE9WRVJSSURFOwogfTsKIApAQCAtOTMsMTAgKzkz
LDEwIEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVt
ZW50IEZJTkFMIDogcHVibGljIE1lZGlhQ29udHJvbERpdkVsZW1lbnQgewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50PiBj
cmVhdGUoRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xPdmVy
bGF5RW5jbG9zdXJlRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAg
ZXhwbGljaXQgTWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQoRG9jdW1lbnQqKTsK
KyAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudChEb2N1bWVu
dCYpOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNv
bnN0IE9WRVJSSURFOwogfTsKIApAQCAtMTA0LDEyICsxMDQsMTIgQEAgcHJpdmF0ZToKIAogY2xh
c3MgTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50IDogcHVibGljIE1lZGlhQ29u
dHJvbERpdkVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29u
dHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50PiBjcmVh
dGUoRG9jdW1lbnQmKTsKIAogICAgIHZvaWQgc2V0VGltZURpc3BsYXlzSGlkZGVuKGJvb2wpOwog
CiBwcml2YXRlOgotICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxl
bWVudChEb2N1bWVudCopOworICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFp
bmVyRWxlbWVudChEb2N1bWVudCYpOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBz
aGFkb3dQc2V1ZG9JZCgpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBSZW5kZXJPYmpl
Y3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKSBPVkVSUklERTsK
QEAgLTExOSwxMiArMTE5LDEyIEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbFZvbHVt
ZVNsaWRlckNvbnRhaW5lckVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sRGl2RWxlbWVudCB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVy
Q29udGFpbmVyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudD4gY3JlYXRlKERvY3Vt
ZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlTW92ZUV2ZW50cygp
IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBNZWRp
YUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50KERvY3VtZW50Kik7CisgICAgZXhw
bGljaXQgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCYp
OwogCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQq
KSBPVkVSUklERTsKQEAgLTEzNiwxMiArMTM2LDEyIEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlh
Q29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50IDogcHVibGljIE1lZGlhQ29udHJvbERpdkVsZW1l
bnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFN0YXR1c0Rp
c3BsYXlFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxN
ZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKICAg
ICB2b2lkIHVwZGF0ZSgpOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFN0
YXR1c0Rpc3BsYXlFbGVtZW50KERvY3VtZW50Kik7CisgICAgZXhwbGljaXQgTWVkaWFDb250cm9s
U3RhdHVzRGlzcGxheUVsZW1lbnQoRG9jdW1lbnQmKTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21p
Y1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdCBPVkVSUklERTsKIAogICAgIGVudW0gU3Rh
dGVCZWluZ0Rpc3BsYXllZCB7IE5vdGhpbmcsIExvYWRpbmcsIExpdmVCcm9hZGNhc3QgfTsKQEAg
LTE1MiwxMiArMTUyLDEyIEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbFBhbmVsTXV0
ZUJ1dHRvbkVsZW1lbnQgRklOQUwgOiBwdWJsaWMgTWVkaWFDb250cm9sTXV0ZUJ1dHRvbkVsZW1l
bnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsTXV0
ZUJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCosIE1lZGlhQ29udHJvbHMqKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50PiBjcmVh
dGUoRG9jdW1lbnQmLCBNZWRpYUNvbnRyb2xzKik7CiAKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFJl
c3BvbmRUb01vdXNlTW92ZUV2ZW50cygpIE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAogcHJp
dmF0ZToKLSAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50KERv
Y3VtZW50KiwgTWVkaWFDb250cm9scyopOworICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFBhbmVs
TXV0ZUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQmLCBNZWRpYUNvbnRyb2xzKik7CiAKICAgICB2aXJ0
dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdCBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIE9WRVJSSURFOwpA
QCAtMTY5LDEwICsxNjksMTAgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWVkaWFDb250cm9sVm9sdW1l
U2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQgRklOQUwgOiBwdWJsaWMgTWVkaWFDb250cm9sTXV0ZUJ1
dHRvbkVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJv
bFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVu
dD4gY3JlYXRlKERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgTWVkaWFDb250
cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqKTsKKyAgICBleHBsaWNp
dCBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudChEb2N1bWVudCYpOwog
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0IE9W
RVJSSURFOwogfTsKIApAQCAtMTgxLDEzICsxODEsMTMgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWVk
aWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQgRklOQUwgOiBwdWJsaWMgTWVkaWFDb250cm9sSW5w
dXRFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQ
bGF5QnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCiAg
ICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgT1ZFUlJJREUg
eyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVEaXNwbGF5VHlwZSgpIE9W
RVJSSURFOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFBsYXlCdXR0b25F
bGVtZW50KERvY3VtZW50Kik7CisgICAgZXhwbGljaXQgTWVkaWFDb250cm9sUGxheUJ1dHRvbkVs
ZW1lbnQoRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFk
b3dQc2V1ZG9JZCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZl
bnRIYW5kbGVyKEV2ZW50KikgT1ZFUlJJREU7CkBAIC0xOTcsMTIgKzE5NywxMiBAQCBwcml2YXRl
OgogCiBjbGFzcyBNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQgRklOQUwgOiBw
dWJsaWMgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1
bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0
dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
RGlzcGxheVR5cGUoKSBPVkVSUklERTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBNZWRpYUNv
bnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqKTsKKyAgICBleHBsaWNpdCBN
ZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQmKTsKIAogICAgIHZp
cnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KikgT1ZFUlJJREU7
CkBAIC0yMTIsMTAgKzIxMiwxMCBAQCBwcml2YXRlOgogCiBjbGFzcyBNZWRpYUNvbnRyb2xTZWVr
Rm9yd2FyZEJ1dHRvbkVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sU2Vla0J1dHRvbkVsZW1l
bnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFNlZWtGb3J3
YXJkQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQm
KTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRv
bkVsZW1lbnQoRG9jdW1lbnQqKTsKKyAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xTZWVrRm9yd2Fy
ZEJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQmKTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgYm9vbCBp
c0ZvcndhcmRCdXR0b24oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CkBAIC0yMjUs
MTAgKzIyNSwxMCBAQCBwcml2YXRlOgogCiBjbGFzcyBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRv
bkVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sU2Vla0J1dHRvbkVsZW1lbnQgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVu
dD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9s
U2Vla0JhY2tCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKLSAg
ICBleHBsaWNpdCBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQoRG9jdW1lbnQqKTsK
KyAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQoRG9jdW1lbnQm
KTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25z
dCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0ZvcndhcmRCdXR0b24oKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBmYWxzZTsgfQpAQCAtMjM4LDEyICsyMzgsMTIgQEAgcHJpdmF0ZToK
IAogY2xhc3MgTWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNv
bnRyb2xJbnB1dEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlh
Q29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworICAgIHN0YXRp
YyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1
bWVudCYpOwogCiAgICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRz
KCkgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IE1l
ZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqKTsKKyAgICBleHBsaWNpdCBN
ZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50KERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFs
IGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIE9WRVJSSURFOwpAQCAt
MjUzLDEyICsyNTMsMTIgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWVkaWFDb250cm9sUmV0dXJuVG9S
ZWFsdGltZUJ1dHRvbkVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0
aW1lQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8TWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1
bWVudCYpOwogCiAgICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRz
KCkgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IE1l
ZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50KERvY3VtZW50Kik7CisgICAg
ZXhwbGljaXQgTWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQoRG9jdW1l
bnQmKTsKIAogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgp
IGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2
ZW50KikgT1ZFUlJJREU7CkBAIC0yNjgsMTQgKzI2OCwxNCBAQCBwcml2YXRlOgogCiBjbGFzcyBN
ZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQgRklOQUwgOiBwdWJs
aWMgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+IGNyZWF0
ZShEb2N1bWVudCosIE1lZGlhQ29udHJvbHMqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRp
YUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVu
dCYsIE1lZGlhQ29udHJvbHMqKTsKIAogICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91
c2VDbGlja0V2ZW50cygpIE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVEaXNwbGF5VHlwZSgpIE9WRVJSSURFOwogCiBwcml2YXRlOgotICAgIGV4cGxp
Y2l0IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudChEb2N1bWVu
dCosIE1lZGlhQ29udHJvbHMqKTsKKyAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xUb2dnbGVDbG9z
ZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQoRG9jdW1lbnQmLCBNZWRpYUNvbnRyb2xzKik7CiAKICAg
ICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIE9WRVJS
SURFOwpAQCAtMjg5LDEyICsyODksMTIgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWVkaWFDb250cm9s
Q2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50IEZJTkFMIDogcHVibGljIE1lZGlhQ29udHJv
bERpdkVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJv
bENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAg
c3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVt
ZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRv
TW91c2VDbGlja0V2ZW50cygpIE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAogcHJpdmF0ZToK
LSAgICBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQoRG9jdW1lbnQq
KTsKKyAgICBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQoRG9jdW1l
bnQmKTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBj
b25zdCBPVkVSUklERTsKIH07CiAKQEAgLTMwMiwxNCArMzAyLDE0IEBAIHByaXZhdGU6CiAKIGNs
YXNzIE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudCBGSU5BTCA6IHB1
YmxpYyBNZWRpYUNvbnRyb2xEaXZFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ+IGNyZWF0ZShE
b2N1bWVudCosIE1lZGlhQ29udHJvbHMqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNv
bnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYsIE1l
ZGlhQ29udHJvbHMqKTsKIAogICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlj
a0V2ZW50cygpIE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZvaWQgdXBkYXRlRGlz
cGxheSgpOwogCiBwcml2YXRlOgotICAgIE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tM
aXN0RWxlbWVudChEb2N1bWVudCosIE1lZGlhQ29udHJvbHMqKTsKKyAgICBNZWRpYUNvbnRyb2xD
bG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQoRG9jdW1lbnQmLCBNZWRpYUNvbnRyb2xzKik7
CiAKICAgICB2b2lkIHJlYnVpbGRUcmFja0xpc3RNZW51KCk7CiAKQEAgLTMyOSw3ICszMjksNyBA
QCBwcml2YXRlOgogCiBjbGFzcyBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQgRklOQUwgOiBw
dWJsaWMgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCosIE1l
ZGlhQ29udHJvbHMqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGlu
ZUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYsIE1lZGlhQ29udHJvbHMqKTsKIAogICAgIHZpcnR1
YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpIE9WRVJSSURFOwogCkBAIC0z
MzcsNyArMzM3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RHVyYXRpb24oZG91YmxlKTsKIAog
cHJpdmF0ZToKLSAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQoRG9jdW1l
bnQqLCBNZWRpYUNvbnRyb2xzKik7CisgICAgZXhwbGljaXQgTWVkaWFDb250cm9sVGltZWxpbmVF
bGVtZW50KERvY3VtZW50JiwgTWVkaWFDb250cm9scyopOwogCiAgICAgdmlydHVhbCBjb25zdCBB
dG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBPVkVSUklERTsKQEAgLTM0OSwxNCAr
MzQ5LDE0IEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25F
bGVtZW50IEZJTkFMIDogcHVibGljIE1lZGlhQ29udHJvbElucHV0RWxlbWVudCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1l
bnQ+IGNyZWF0ZShEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJv
bEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1
YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpIE9WRVJSSURFIHsgcmV0dXJu
IHRydWU7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBzZXRJc0Z1bGxzY3JlZW4oYm9vbCk7CiAKIHBy
aXZhdGU6Ci0gICAgZXhwbGljaXQgTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQo
RG9jdW1lbnQqKTsKKyAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxl
bWVudChEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRv
d1BzZXVkb0lkKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVu
dEhhbmRsZXIoRXZlbnQqKSBPVkVSUklERTsKQEAgLTM2NiwyMCArMzY2LDIwIEBAIHByaXZhdGU6
CiAKIGNsYXNzIE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudCBGSU5BTCA6IHB1
YmxpYyBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ+IGNyZWF0
ZShEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsVm9s
dW1lU2xpZGVyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAgZXhw
bGljaXQgTWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50KERvY3VtZW50Kik7Cisg
ICAgZXhwbGljaXQgTWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50KERvY3VtZW50
Jik7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29u
c3QgT1ZFUlJJREU7CiB9OwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBjbGFz
cyBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudCA6IHB1YmxpYyBNZWRp
YUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudD4gY3JlYXRlKERv
Y3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZv
bHVtZVNsaWRlckVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCiBwcml2YXRlOgotICAgIGV4
cGxpY2l0IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50KERvY3VtZW50
Kik7CisgICAgZXhwbGljaXQgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1l
bnQoRG9jdW1lbnQmKTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNl
dWRvSWQoKSBjb25zdCBPVkVSUklERTsKIH07CiAKQEAgLTM4NywxMiArMzg3LDEyIEBAIHByaXZh
dGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50
IDogcHVibGljIE1lZGlhQ29udHJvbElucHV0RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ+
IGNyZWF0ZShEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbEZ1
bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKIAogICAg
IHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpIE9WRVJSSURFIHsg
cmV0dXJuIHRydWU7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xGdWxs
c2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudChEb2N1bWVudCopOworICAgIGV4cGxpY2l0IE1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50KERvY3VtZW50Jik7CiAg
ICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3QgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBPVkVS
UklERTsKIH07CkBAIC00MDEsMTIgKzQwMSwxMiBAQCBwcml2YXRlOgogCiBjbGFzcyBNZWRpYUNv
bnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRy
b2xJbnB1dEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29u
dHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0
dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFJl
c3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAKIHBy
aXZhdGU6Ci0gICAgZXhwbGljaXQgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRv
bkVsZW1lbnQoRG9jdW1lbnQqKTsKKyAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xGdWxsc2NyZWVu
Vm9sdW1lTWF4QnV0dG9uRWxlbWVudChEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCBjb25zdCBB
dG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBPVkVSUklERTsKQEAgLTQxNywxMCAr
NDE3LDEwIEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNw
bGF5RWxlbWVudCBGSU5BTCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xUaW1lRGlzcGxheUVsZW1lbnQg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVSZW1haW5p
bmdEaXNwbGF5RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50PiBjcmVhdGUoRG9jdW1l
bnQmKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5n
RGlzcGxheUVsZW1lbnQoRG9jdW1lbnQqKTsKKyAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xUaW1l
UmVtYWluaW5nRGlzcGxheUVsZW1lbnQoRG9jdW1lbnQmKTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0
b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdCBPVkVSUklERTsKIH07CiAKQEAgLTQy
OCwxMCArNDI4LDEwIEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbEN1cnJlbnRUaW1l
RGlzcGxheUVsZW1lbnQgRklOQUwgOiBwdWJsaWMgTWVkaWFDb250cm9sVGltZURpc3BsYXlFbGVt
ZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xDdXJyZW50
VGltZURpc3BsYXlFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50PiBjcmVhdGUoRG9jdW1l
bnQmKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xDdXJyZW50VGltZURp
c3BsYXlFbGVtZW50KERvY3VtZW50Kik7CisgICAgZXhwbGljaXQgTWVkaWFDb250cm9sQ3VycmVu
dFRpbWVEaXNwbGF5RWxlbWVudChEb2N1bWVudCYpOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWlj
U3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0IE9WRVJSSURFOwogfTsKIApAQCAtNDQxLDcg
KzQ0MSw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5l
ckVsZW1lbnQgRklOQUwgOiBwdWJsaWMgTWVkaWFDb250cm9sRGl2RWxlbWVudCwgcHVibGljIFRl
eHRUcmFja1JlcHJlc2VudGF0aW9uQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50PiBjcmVhdGUoRG9jdW1l
bnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWlu
ZXJFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKIAogICAgIHZvaWQgdXBkYXRlRGlzcGxheSgp
OwogICAgIHZvaWQgdXBkYXRlU2l6ZXMoYm9vbCBmb3JjZVVwZGF0ZSA9IGZhbHNlKTsKQEAgLTQ1
Miw3ICs0NTIsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlVGltZXJGaXJl
ZChUaW1lcjxNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50PiopOwogCi0gICAg
ZXhwbGljaXQgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCop
OworICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQoRG9j
dW1lbnQmKTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQo
KSBjb25zdCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5k
ZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM0LDggKzM0LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1NZWRpYUNvbnRyb2xz
OjpNZWRpYUNvbnRyb2xzKERvY3VtZW50KiBkb2N1bWVudCkKLSAgICA6IEhUTUxEaXZFbGVtZW50
KEhUTUxOYW1lczo6ZGl2VGFnLCAqZG9jdW1lbnQpCitNZWRpYUNvbnRyb2xzOjpNZWRpYUNvbnRy
b2xzKERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IEhUTUxEaXZFbGVtZW50KEhUTUxOYW1lczo6
ZGl2VGFnLCBkb2N1bWVudCkKICAgICAsIG1fbWVkaWFDb250cm9sbGVyKDApCiAgICAgLCBtX3Bh
bmVsKDApCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpAQCAtMzg1LDcgKzM4NSw3IEBAIHZvaWQg
TWVkaWFDb250cm9sczo6Y3JlYXRlVGV4dFRyYWNrRGlzcGwKICAgICBpZiAobV90ZXh0RGlzcGxh
eUNvbnRhaW5lcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFRl
eHRUcmFja0NvbnRhaW5lckVsZW1lbnQ+IHRleHREaXNwbGF5Q29udGFpbmVyID0gTWVkaWFDb250
cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKCZkb2N1bWVudCgpKTsKKyAgICBS
ZWZQdHI8TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudD4gdGV4dERpc3BsYXlD
b250YWluZXIgPSBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQoKSk7CiAgICAgbV90ZXh0RGlzcGxheUNvbnRhaW5lciA9IHRleHREaXNwbGF5Q29u
dGFpbmVyLmdldCgpOwogCiAgICAgaWYgKG1fbWVkaWFDb250cm9sbGVyKQpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuaAkocmV2aXNpb24gMTU1Nzg4KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5oCSh3b3JraW5nIGNv
cHkpCkBAIC01OSw3ICs1OSw3IEBAIGNsYXNzIE1lZGlhQ29udHJvbHMgOiBwdWJsaWMgSFRNTERp
dkVsZW0KIAogICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgdG8gYmUgaW1wbGVtZW50ZWQgaW4geW91
ciBwb3J0LXNwZWNpZmljIG1lZGlhCiAgICAgLy8gY29udHJvbHMgaW1wbGVtZW50YXRpb24gc2lu
Y2UgaXQgd2lsbCByZXR1cm4gYSBjaGlsZCBpbnN0YW5jZS4KLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxNZWRpYUNvbnRyb2xzPiBjcmVhdGUoRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxNZWRpYUNvbnRyb2xzPiBjcmVhdGUoRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBz
ZXRNZWRpYUNvbnRyb2xsZXIoTWVkaWFDb250cm9sbGVySW50ZXJmYWNlKik7CiAKQEAgLTEwOCw3
ICsxMDgsNyBAQCBjbGFzcyBNZWRpYUNvbnRyb2xzIDogcHVibGljIEhUTUxEaXZFbGVtCiAjZW5k
aWYKIAogcHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbHMoRG9jdW1lbnQqKTsK
KyAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xzKERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIHZv
aWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5jcHAJKHJldmlzaW9uIDE1NTc4
OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDcgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1NZWRpYUNvbnRyb2xzQXBwbGU6Ok1lZGlhQ29udHJvbHNB
cHBsZShEb2N1bWVudCogZG9jdW1lbnQpCitNZWRpYUNvbnRyb2xzQXBwbGU6Ok1lZGlhQ29udHJv
bHNBcHBsZShEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBNZWRpYUNvbnRyb2xzKGRvY3VtZW50
KQogICAgICwgbV9yZXdpbmRCdXR0b24oMCkKICAgICAsIG1fcmV0dXJuVG9SZWFsVGltZUJ1dHRv
bigwKQpAQCAtNjgsMTQgKzY4LDE0IEBAIE1lZGlhQ29udHJvbHNBcHBsZTo6TWVkaWFDb250cm9s
c0FwcGxlKEQKIHsKIH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzPiBNZWRpYUNvbnRyb2xz
OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzPiBN
ZWRpYUNvbnRyb2xzOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBN
ZWRpYUNvbnRyb2xzQXBwbGU6OmNyZWF0ZUNvbnRyb2xzKGRvY3VtZW50KTsKIH0KIAotUGFzc1Jl
ZlB0cjxNZWRpYUNvbnRyb2xzQXBwbGU+IE1lZGlhQ29udHJvbHNBcHBsZTo6Y3JlYXRlQ29udHJv
bHMoRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzQXBwbGU+IE1l
ZGlhQ29udHJvbHNBcHBsZTo6Y3JlYXRlQ29udHJvbHMoRG9jdW1lbnQmIGRvY3VtZW50KQogewot
ICAgIGlmICghZG9jdW1lbnQtPnBhZ2UoKSkKKyAgICBpZiAoIWRvY3VtZW50LnBhZ2UoKSkKICAg
ICAgICAgcmV0dXJuIDA7CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sc0FwcGxlPiBjb250cm9s
cyA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xzQXBwbGUoZG9jdW1lbnQpKTsKQEAgLTEwMiw3
ICsxMDIsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNBcHBsZT4gTWVkaWFDb250CiAgICAg
aWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIGlmIChkb2N1bWVudC0+cGFnZSgpLT50
aGVtZSgpLT51c2VzTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheSgpKSB7CisgICAgaWYgKGRvY3Vt
ZW50LnBhZ2UoKS0+dGhlbWUoKS0+dXNlc01lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXkoKSkgewog
ICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ+IHN0YXR1c0Rp
c3BsYXkgPSBNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKICAgICAgICAgY29udHJvbHMtPm1fc3RhdHVzRGlzcGxheSA9IHN0YXR1c0Rpc3BsYXkuZ2V0
KCk7CiAgICAgICAgIHBhbmVsLT5hcHBlbmRDaGlsZChzdGF0dXNEaXNwbGF5LnJlbGVhc2UoKSwg
ZWMsIEF0dGFjaExhemlseSk7CkBAIC0xNDksNyArMTQ5LDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNv
bnRyb2xzQXBwbGU+IE1lZGlhQ29udAogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAK
LSAgICBpZiAoZG9jdW1lbnQtPnBhZ2UoKS0+dGhlbWUoKS0+c3VwcG9ydHNDbG9zZWRDYXB0aW9u
aW5nKCkpIHsKKyAgICBpZiAoZG9jdW1lbnQucGFnZSgpLT50aGVtZSgpLT5zdXBwb3J0c0Nsb3Nl
ZENhcHRpb25pbmcoKSkgewogICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlv
bnNDb250YWluZXJFbGVtZW50PiBjbG9zZWRDYXB0aW9uc0NvbnRhaW5lciA9IE1lZGlhQ29udHJv
bENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIAogICAg
ICAgICBSZWZQdHI8TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50PiBj
bG9zZWRDYXB0aW9uc1RyYWNrTGlzdCA9IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tM
aXN0RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7CkBAIC0xNzYsOSAr
MTc2LDkgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzQXBwbGU+IE1lZGlhQ29udAogICAgIHBh
bmVsLT5hcHBlbmRDaGlsZChmdWxsU2NyZWVuQnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExh
emlseSk7CiAKICAgICAvLyBUaGUgbXV0ZSBidXR0b24gYW5kIHRoZSBzbGlkZXIgZWxlbWVudCBz
aG91bGQgYmUgaW4gdGhlIHNhbWUgZGl2LgotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gcGFu
ZWxWb2x1bWVDb250cm9sQ29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZSgqZG9jdW1l
bnQpOworICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gcGFuZWxWb2x1bWVDb250cm9sQ29udGFp
bmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAKLSAgICBpZiAoZG9jdW1l
bnQtPnBhZ2UoKS0+dGhlbWUoKS0+dXNlc01lZGlhQ29udHJvbFZvbHVtZVNsaWRlcigpKSB7Cisg
ICAgaWYgKGRvY3VtZW50LnBhZ2UoKS0+dGhlbWUoKS0+dXNlc01lZGlhQ29udHJvbFZvbHVtZVNs
aWRlcigpKSB7CiAgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWlu
ZXJFbGVtZW50PiB2b2x1bWVTbGlkZXJDb250YWluZXIgPSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogCiAgICAgICAgIFJlZlB0cjxN
ZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ+IHNsaWRlciA9IE1lZGlhQ29udHJv
bFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5oCShyZXZpc2lv
biAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBw
bGUuaAkod29ya2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNyBAQCBwcml2YXRlOgogCiBjbGFzcyBN
ZWRpYUNvbnRyb2xzQXBwbGUgOiBwdWJsaWMgTWVkaWFDb250cm9scyB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sc0FwcGxlPiBjcmVhdGVDb250cm9scyhEb2N1
bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNBcHBsZT4gY3JlYXRl
Q29udHJvbHMoRG9jdW1lbnQmKTsKIAogICAgIC8vIE1lZGlhQ29udHJvbHMgaW1wbGVtZW50YXRp
b24uCiAgICAgdmlydHVhbCB2b2lkIHNldE1lZGlhQ29udHJvbGxlcihNZWRpYUNvbnRyb2xsZXJJ
bnRlcmZhY2UqKSBPVkVSUklERTsKQEAgLTkyLDcgKzkyLDcgQEAgcHVibGljOgogICAgIHZvaWQg
aGFuZGxlQ2xpY2tFdmVudChFdmVudCopOwogCiBwcml2YXRlOgotICAgIE1lZGlhQ29udHJvbHNB
cHBsZShEb2N1bWVudCopOworICAgIE1lZGlhQ29udHJvbHNBcHBsZShEb2N1bWVudCYpOwogCiAg
ICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBPVkVSUklERTsKICAg
ICBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNBcHBsZUV2ZW50TGlzdGVuZXI+IGV2ZW50TGlzdGVu
ZXIoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNHdGsu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJv
bHNHdGsuY3BwCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xzR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjAsNyArNjAsNyBAQCBw
cml2YXRlOgogICAgIE1lZGlhQ29udHJvbHNHdGsqIG1fbWVkaWFDb250cm9sczsKIH07CiAKLU1l
ZGlhQ29udHJvbHNHdGs6Ok1lZGlhQ29udHJvbHNHdGsoRG9jdW1lbnQqIGRvY3VtZW50KQorTWVk
aWFDb250cm9sc0d0azo6TWVkaWFDb250cm9sc0d0ayhEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAg
OiBNZWRpYUNvbnRyb2xzKGRvY3VtZW50KQogICAgICwgbV9kdXJhdGlvbkRpc3BsYXkoMCkKICAg
ICAsIG1fZW5jbG9zdXJlKDApCkBAIC03MCwxNCArNzAsMTQgQEAgTWVkaWFDb250cm9sc0d0azo6
TWVkaWFDb250cm9sc0d0ayhEb2N1bQogewogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbHM+
IE1lZGlhQ29udHJvbHM6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPE1l
ZGlhQ29udHJvbHM+IE1lZGlhQ29udHJvbHM6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7
CiAgICAgcmV0dXJuIE1lZGlhQ29udHJvbHNHdGs6OmNyZWF0ZUNvbnRyb2xzKGRvY3VtZW50KTsK
IH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzR3RrPiBNZWRpYUNvbnRyb2xzR3RrOjpjcmVh
dGVDb250cm9scyhEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNH
dGs+IE1lZGlhQ29udHJvbHNHdGs6OmNyZWF0ZUNvbnRyb2xzKERvY3VtZW50JiBkb2N1bWVudCkK
IHsKLSAgICBpZiAoIWRvY3VtZW50LT5wYWdlKCkpCisgICAgaWYgKCFkb2N1bWVudC5wYWdlKCkp
CiAgICAgICAgIHJldHVybiAwOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbHNHdGs+IGNvbnRy
b2xzID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbHNHdGsoZG9jdW1lbnQpKTsKQEAgLTg4LDcg
Kzg4LDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzR3RrPiBNZWRpYUNvbnRybwogICAgIHJl
dHVybiAwOwogfQogCi1ib29sIE1lZGlhQ29udHJvbHNHdGs6OmluaXRpYWxpemVDb250cm9scyhE
b2N1bWVudCogZG9jdW1lbnQpCitib29sIE1lZGlhQ29udHJvbHNHdGs6OmluaXRpYWxpemVDb250
cm9scyhEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgLy8gQ3JlYXRlIGFuIGVuY2xvc2luZyBl
bGVtZW50IGZvciB0aGUgcGFuZWwgc28gd2UgY2FuIHZpc3VhbGx5IG9mZnNldCB0aGUgY29udHJv
bHMgY29ycmVjdGx5LgogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1l
bnQ+IGVuY2xvc3VyZSA9IE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKQEAgLTEyMCw3ICsxMjAsNyBAQCBib29sIE1lZGlhQ29udHJvbHNHdGs6Omlu
aXRpYWxpemVDb250cm9sCiAgICAgaWYgKGV4Y2VwdGlvbkNvZGUpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIGlmIChkb2N1bWVudC0+cGFnZSgpLT50aGVtZSgpLT5zdXBwb3J0c0Nsb3Nl
ZENhcHRpb25pbmcoKSkgeworICAgIGlmIChkb2N1bWVudC5wYWdlKCktPnRoZW1lKCktPnN1cHBv
cnRzQ2xvc2VkQ2FwdGlvbmluZygpKSB7CiAgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDbG9z
ZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ+IGNsb3NlZENhcHRpb25zQ29udGFpbmVyID0gTWVk
aWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQp
OwogCiAgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVs
ZW1lbnQ+IGNsb3NlZENhcHRpb25zVHJhY2tMaXN0ID0gTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlv
bnNUcmFja0xpc3RFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIHRoaXMpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0d0ay5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNHdGsuaAkocmV2aXNpb24gMTU1
Nzg4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0d0ay5oCSh3
b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIE1lZGlhQ29udHJvbHNHdGtFdmVu
dExpc3RlbmVyOwogY2xhc3MgTWVkaWFDb250cm9sc0d0ayA6IHB1YmxpYyBNZWRpYUNvbnRyb2xz
IHsKIHB1YmxpYzoKICAgICAvLyBDYWxsZWQgZnJvbSBwb3J0LXNwZWNpZmljIHBhcmVudCBjcmVh
dGUgZnVuY3Rpb24gdG8gY3JlYXRlIGN1c3RvbSBjb250cm9scy4KLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnRyb2xzR3RrPiBjcmVhdGVDb250cm9scyhEb2N1bWVudCopOworICAgIHN0
YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNHdGs+IGNyZWF0ZUNvbnRyb2xzKERvY3VtZW50
Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0TWVkaWFDb250cm9sbGVyKE1lZGlhQ29udHJvbGxl
ckludGVyZmFjZSopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZXNldCgpIE9WRVJSSURF
OwpAQCAtNTgsOCArNTgsOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJvdGVjdGVkOgotICAgIGV4
cGxpY2l0IE1lZGlhQ29udHJvbHNHdGsoRG9jdW1lbnQqKTsKLSAgICBib29sIGluaXRpYWxpemVD
b250cm9scyhEb2N1bWVudCopOworICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbHNHdGsoRG9jdW1l
bnQmKTsKKyAgICBib29sIGluaXRpYWxpemVDb250cm9scyhEb2N1bWVudCYpOwogCiBwcml2YXRl
OgogICAgIHZvaWQgc2hvd0Nsb3NlZENhcHRpb25UcmFja0xpc3QoKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAJKHJldmlzaW9uIDE1NTc4OCkKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjAyLDcgKzIwMiw3IEBAIFRleHRUcmFja0N1ZTo6VGV4dFRyYWNrQ3VlKFNjcmlwdEV4
ZWN1dGkKICAgICAsIG1faXNBY3RpdmUoZmFsc2UpCiAgICAgLCBtX3BhdXNlT25FeGl0KGZhbHNl
KQogICAgICwgbV9zbmFwVG9MaW5lcyh0cnVlKQotICAgICwgbV9jdWVCYWNrZ3JvdW5kQm94KEhU
TUxTcGFuRWxlbWVudDo6Y3JlYXRlKHNwYW5UYWcsIHRvRG9jdW1lbnQoY29udGV4dCkpKQorICAg
ICwgbV9jdWVCYWNrZ3JvdW5kQm94KEhUTUxTcGFuRWxlbWVudDo6Y3JlYXRlKHNwYW5UYWcsICp0
b0RvY3VtZW50KGNvbnRleHQpKSkKICAgICAsIG1fZGlzcGxheVRyZWVTaG91bGRDaGFuZ2UodHJ1
ZSkKICAgICAsIG1fZGlzcGxheURpcmVjdGlvbihDU1NWYWx1ZUx0cikKIHsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYs
NyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGlubGluZSBTVkdTdHlsZUVsZW1lbnQ6
OlNWR1N0eWxlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCog
ZG9jdW1lbnQsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQogICAgIDogU1ZHRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkKLSAgICAsIG1fc3R5bGVTaGVldE93bmVyKGRvY3VtZW50LCBjcmVhdGVkQnlQ
YXJzZXIpCisgICAgLCBtX3N0eWxlU2hlZXRPd25lcigqZG9jdW1lbnQsIGNyZWF0ZWRCeVBhcnNl
cikKICAgICAsIG1fc3ZnTG9hZEV2ZW50VGltZXIodGhpcywgJlNWR0VsZW1lbnQ6OnN2Z0xvYWRF
dmVudFRpbWVyRmlyZWQpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OnN0eWxl
VGFnKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211676</attachid>
            <date>2013-09-14 16:46:18 -0700</date>
            <delta_ts>2013-09-14 17:35:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121372-20130914164618.patch</filename>
            <type>text/plain</type>
            <size>144514</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBACisyMDEzLTA5LTE0ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0NUVEVdIE5vZGUgc3ViY2xhc3NlcyBz
aG91bGQgdGFrZSBhIERvY3VtZW50IGJ5IHJlZmVyZW5jZSBpbiB0aGVpciBjb25zdHJ1Y3RvciAo
UGFydCA0KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTIxMzcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q29udmVydHMgdGhlIGZvbGxvd2luZyB0byB0YWtlIGEgRG9jdW1lbnQgcmVmZXJlbmNlOgorICAg
ICAgICAgICAgLSBIVE1MRm9ybUNvbnRyb2xFbGVtZW50CisgICAgICAgICAgICAtIEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnRXaXRoU3RhdGUKKyAgICAgICAgICAgIC0gSFRNTE1hcEVsZW1lbnQKKyAg
ICAgICAgICAgIC0gSFRNTE1hcnF1ZWVFbGVtZW50CisgICAgICAgICAgICAtIEhUTUxNZWRpYUVs
ZW1lbnQKKyAgICAgICAgICAgIC0gSFRNTE1lbnVFbGVtZW50CisgICAgICAgICAgICAtIEhUTUxN
ZXRhRWxlbWVudAorICAgICAgICAgICAgLSBIVE1MTWV0ZXJFbGVtZW50CisgICAgICAgICAgICAt
IEhUTUxPTGlzdEVsZW1lbnQKKyAgICAgICAgICAgIC0gSFRNTE9iamVjdEVsZW1lbnQKKyAgICAg
ICAgICAgIC0gSFRNTE9wdEdyb3VwRWxlbWVudAorICAgICAgICAgICAgLSBIVE1MT3B0aW9uRWxl
bWVudAorICAgICAgICAgICAgLSBIVE1MT3V0cHV0RWxlbWVudAorICAgICAgICAgICAgLSBIVE1M
UGFyYWdyYXBoRWxlbWVudAorICAgICAgICAgICAgLSBIVE1MUGFyYW1FbGVtZW50CisgICAgICAg
ICAgICAtIEhUTUxQcm9ncmVzc0VsZW1lbnQKKyAgICAgICAgICAgIC0gSFRNTFNjcmlwdEVsZW1l
bnQKKyAgICAgICAgICAgIC0gSFRNTFNlbGVjdEVsZW1lbnQKKyAgICAgICAgICAgIC0gSFRNTFNv
dXJjZUVsZW1lbnQKKyAgICAgICAgICAgIC0gSFRNTFNwYW5FbGVtZW50CisgICAgICAgICAgICAt
IEhUTUxTdHlsZUVsZW1lbnQKKyAgICAgICAgICAgIC0gSFRNTFN1bW1hcnlFbGVtZW50CisgICAg
ICAgICAgICAtIEhUTUxUYWJsZUNlbGxFbGVtZW50CisgICAgICAgICAgICAtIEhUTUxUYWJsZUVs
ZW1lbnQKKyAgICAgICAgICAgIC0gSFRNTFRhYmxlUm93RWxlbWVudAorICAgICAgICAgICAgLSBI
VE1MVGFibGVTZWN0aW9uRWxlbWVudAorICAgICAgICAgICAgLSBIVE1MVGVtcGxhdGVFbGVtZW50
CisgICAgICAgICAgICAtIEhUTUxUZXh0QXJlYUVsZW1lbnQKKyAgICAgICAgICAgIC0gSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQKKyAgICAgICAgICAgIC0gSFRNTFRpdGxlRWxlbWVudAorICAg
ICAgICAgICAgLSBIVE1MVHJhY2tFbGVtZW50CisgICAgICAgICAgICAtIEhUTUxVTGlzdEVsZW1l
bnQKKyAgICAgICAgICAgIC0gSW5saW5lU3R5bGVTaGVldE93bmVyCisgICAgICAgICAgICAtIExh
YmVsYWJsZUVsZW1lbnQKKyAgICAgICAgICAgIC0gQWxsIHRoZSBNZWRpYUNvbnRyb2wgZWxlbWVu
dHMKKwogMjAxMy0wOS0xNCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFtDVFRFXSBOb2RlIHN1YmNsYXNzZXMgc2hvdWxkIHRha2UgYSBEb2N1bWVudCBieSByZWZlcmVu
Y2UgaW4gdGhlaXIgY29uc3RydWN0b3IgKFBhcnQgMykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Rv
bS9JbmxpbmVTdHlsZVNoZWV0T3duZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9JbmxpbmVTdHlsZVNoZWV0T3duZXIuY3BwCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9kb20vSW5saW5lU3R5bGVTaGVldE93bmVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzYsMTMgKzM2LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSW5saW5lU3R5bGVT
aGVldE93bmVyOjpJbmxpbmVTdHlsZVNoZWV0T3duZXIoRG9jdW1lbnQqIGRvY3VtZW50LCBib29s
IGNyZWF0ZWRCeVBhcnNlcikKK0lubGluZVN0eWxlU2hlZXRPd25lcjo6SW5saW5lU3R5bGVTaGVl
dE93bmVyKERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCiAgICAgOiBt
X2lzUGFyc2luZ0NoaWxkcmVuKGNyZWF0ZWRCeVBhcnNlcikKICAgICAsIG1fbG9hZGluZyhmYWxz
ZSkKICAgICAsIG1fc3RhcnRMaW5lTnVtYmVyKFdURjo6T3JkaW5hbE51bWJlcjo6YmVmb3JlRmly
c3QoKSkKIHsKLSAgICBpZiAoY3JlYXRlZEJ5UGFyc2VyICYmIGRvY3VtZW50ICYmIGRvY3VtZW50
LT5zY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIoKSAmJiAhZG9jdW1lbnQtPmlzSW5Eb2N1bWVudFdy
aXRlKCkpCi0gICAgICAgIG1fc3RhcnRMaW5lTnVtYmVyID0gZG9jdW1lbnQtPnNjcmlwdGFibGVE
b2N1bWVudFBhcnNlcigpLT5saW5lTnVtYmVyKCk7CisgICAgaWYgKGNyZWF0ZWRCeVBhcnNlciAm
JiBkb2N1bWVudC5zY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIoKSAmJiAhZG9jdW1lbnQuaXNJbkRv
Y3VtZW50V3JpdGUoKSkKKyAgICAgICAgbV9zdGFydExpbmVOdW1iZXIgPSBkb2N1bWVudC5zY3Jp
cHRhYmxlRG9jdW1lbnRQYXJzZXIoKS0+bGluZU51bWJlcigpOwogfQogCiBJbmxpbmVTdHlsZVNo
ZWV0T3duZXI6On5JbmxpbmVTdHlsZVNoZWV0T3duZXIoKQpJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL0lubGluZVN0eWxlU2hlZXRPd25lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9JbmxpbmVTdHlsZVNoZWV0T3duZXIuaAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0lubGluZVN0eWxlU2hlZXRPd25lci5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
Miw3ICszMiw3IEBAIGNsYXNzIEVsZW1lbnQ7CiAKIGNsYXNzIElubGluZVN0eWxlU2hlZXRPd25l
ciB7CiBwdWJsaWM6Ci0gICAgSW5saW5lU3R5bGVTaGVldE93bmVyKERvY3VtZW50KiwgYm9vbCBj
cmVhdGVkQnlQYXJzZXIpOworICAgIElubGluZVN0eWxlU2hlZXRPd25lcihEb2N1bWVudCYsIGJv
b2wgY3JlYXRlZEJ5UGFyc2VyKTsKICAgICB+SW5saW5lU3R5bGVTaGVldE93bmVyKCk7CiAKICAg
ICB2b2lkIHNldENvbnRlbnRUeXBlKGNvbnN0IEF0b21pY1N0cmluZyYgY29udGVudFR5cGUpIHsg
bV9jb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2h0bWxlZGl0aW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L2h0bWxlZGl0aW5nLmNwcAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUvZWRp
dGluZy9odG1sZWRpdGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkxMCw3ICs5MTAsNyBAQCBQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVEZWZhdWx0UGFyCiAgICAgY2FzZSBFZGl0b3JQ
YXJhZ3JhcGhTZXBhcmF0b3JJc0RpdjoKICAgICAgICAgcmV0dXJuIEhUTUxEaXZFbGVtZW50Ojpj
cmVhdGUoKmRvY3VtZW50KTsKICAgICBjYXNlIEVkaXRvclBhcmFncmFwaFNlcGFyYXRvcklzUDoK
LSAgICAgICAgcmV0dXJuIEhUTUxQYXJhZ3JhcGhFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwor
ICAgICAgICByZXR1cm4gSFRNTFBhcmFncmFwaEVsZW1lbnQ6OmNyZWF0ZSgqZG9jdW1lbnQpOwog
ICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtOTI0LDEyICs5MjQsMTIgQEAg
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlQnJlYWtFbGVtZQogCiBQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBjcmVhdGVPcmRlcmVkTGlzdEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQog
ewotICAgIHJldHVybiBIVE1MT0xpc3RFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIHJl
dHVybiBIVE1MT0xpc3RFbGVtZW50OjpjcmVhdGUoKmRvY3VtZW50KTsKIH0KIAogUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gY3JlYXRlVW5vcmRlcmVkTGlzdEVsZW1lbnQoRG9jdW1lbnQqIGRvY3Vt
ZW50KQogewotICAgIHJldHVybiBIVE1MVUxpc3RFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwor
ICAgIHJldHVybiBIVE1MVUxpc3RFbGVtZW50OjpjcmVhdGUoKmRvY3VtZW50KTsKIH0KIAogUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlTGlzdEl0ZW1FbGVtZW50KERvY3VtZW50KiBkb2N1
bWVudCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF1ZGlvRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXVkaW9FbGVtZW50LmNwcAkocmV2
aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXVkaW9FbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1
c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBIVE1MQXVkaW9FbGVtZW50OjpIVE1MQXVkaW9F
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwg
Ym9vbCBjcmVhdGVkQnlQYXJzZXIpCi0gICAgOiBIVE1MTWVkaWFFbGVtZW50KHRhZ05hbWUsICZk
b2N1bWVudCwgY3JlYXRlZEJ5UGFyc2VyKQorICAgIDogSFRNTE1lZGlhRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCwgY3JlYXRlZEJ5UGFyc2VyKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKGF1
ZGlvVGFnKSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50
LmNwcAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9u
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogaW5saW5lIEhUTUxCdXR0b25F
bGVtZW50OjpIVE1MQnV0dG9uRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKLSAgICA6IEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQodGFnTmFtZSwgJmRvY3VtZW50LCBmb3JtKQorICAgIDogSFRNTEZvcm1D
b250cm9sRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSkKICAgICAsIG1fdHlwZShTVUJN
SVQpCiAgICAgLCBtX2lzQWN0aXZhdGVkU3VibWl0KGZhbHNlKQogewpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1Nzg4KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC05MCw3ICs5MCw3IEBAIHByaXZhdGU6CiAKIFBhc3NSZWZQdHI8RGV0YWlsc1N1bW1hcnlF
bGVtZW50PiBEZXRhaWxzU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQp
CiB7Ci0gICAgUmVmUHRyPEhUTUxTdW1tYXJ5RWxlbWVudD4gc3VtbWFyeSA9IEhUTUxTdW1tYXJ5
RWxlbWVudDo6Y3JlYXRlKHN1bW1hcnlUYWcsICZkb2N1bWVudCk7CisgICAgUmVmUHRyPEhUTUxT
dW1tYXJ5RWxlbWVudD4gc3VtbWFyeSA9IEhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlKHN1bW1h
cnlUYWcsIGRvY3VtZW50KTsKICAgICBzdW1tYXJ5LT5hcHBlbmRDaGlsZChUZXh0OjpjcmVhdGUo
JmRvY3VtZW50LCBkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCkpLCBBU1NFUlRfTk9fRVhDRVBU
SU9OKTsKIAogICAgIFJlZlB0cjxEZXRhaWxzU3VtbWFyeUVsZW1lbnQ+IGRldGFpbHNTdW1tYXJ5
ID0gYWRvcHRSZWYobmV3IERldGFpbHNTdW1tYXJ5RWxlbWVudChkb2N1bWVudCkpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCShyZXZpc2lvbiAx
NTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIGlubGluZSBIVE1MRmllbGRTZXRFbGVtZW50OjpIVE1M
RmllbGRTZXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBk
b2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQotICAgIDogSFRNTEZvcm1Db250cm9sRWxl
bWVudCh0YWdOYW1lLCAmZG9jdW1lbnQsIGZvcm0pCisgICAgOiBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50LCBmb3JtKQogICAgICwgbV9kb2N1bWVudFZlcnNpb24oMCkK
IHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShmaWVsZHNldFRhZykpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU3
ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCi1IVE1MRm9ybUNv
bnRyb2xFbGVtZW50OjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQorSFRN
TEZvcm1Db250cm9sRWxlbWVudDo6SFRNTEZvcm1Db250cm9sRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9y
bSkKICAgICA6IExhYmVsYWJsZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBtX2Rp
c2FibGVkKGZhbHNlKQogICAgICwgbV9pc1JlYWRPbmx5KGZhbHNlKQpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgJKHJldmlzaW9uIDE1NTc4OCkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDYsNyArMTA2LDcgQEAgcHVibGljOgogICAgIHVzaW5nIE5vZGU6OmRlcmVm
OwogCiBwcm90ZWN0ZWQ6Ci0gICAgSFRNTEZvcm1Db250cm9sRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCopOworICAgIEhUTUxG
b3JtQ29udHJvbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQm
LCBIVE1MRm9ybUVsZW1lbnQqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIHJlcXVpcmVkQXR0cmlidXRlQ2hhbmdlZCgpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUu
Y3BwCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29u
dHJvbEVsZW1lbnRXaXRoU3RhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw4ICszNCw4IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0
ZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCogZG9jLCBIVE1MRm9ybUVsZW1lbnQqIGYpCi0gICAgOiBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50KHRhZ05hbWUsIGRvYywgZikKK0hUTUxGb3JtQ29udHJvbEVsZW1lbnRX
aXRoU3RhdGU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0p
CisgICAgOiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBmb3JtKQog
ewogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnRX
aXRoU3RhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29u
dHJvbEVsZW1lbnRXaXRoU3RhdGUuaAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogICAgIHZvaWQgbm90aWZ5Rm9ybVN0YXRlQ2hhbmdl
ZCgpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCop
OworICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqKTsKIAogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRBdXRvY29tcGxldGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNo
UGFyc2luZ0NoaWxkcmVuKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5jcHAJKHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMSw3ICsxMTEsNyBAQCBjb25zdCBp
bnQgZGVmYXVsdFNpemUgPSAyMDsKIGNvbnN0IGludCBtYXhTYXZlZFJlc3VsdHMgPSAyNTY7CiAK
IEhUTUxJbnB1dEVsZW1lbnQ6OkhUTUxJbnB1dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0sIGJvb2wg
Y3JlYXRlZEJ5UGFyc2VyKQotICAgIDogSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQodGFnTmFt
ZSwgJmRvY3VtZW50LCBmb3JtKQorICAgIDogSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQodGFn
TmFtZSwgZG9jdW1lbnQsIGZvcm0pCiAgICAgLCBtX3NpemUoZGVmYXVsdFNpemUpCiAgICAgLCBt
X21heExlbmd0aChtYXhpbXVtTGVuZ3RoKQogICAgICwgbV9tYXhSZXN1bHRzKC0xKQpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTc4
OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIEtleWdl
blNlbGVjdEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQotICAgICAgICA6IEhUTUxTZWxlY3RF
bGVtZW50KHNlbGVjdFRhZywgJmRvY3VtZW50LCAwKQorICAgICAgICA6IEhUTUxTZWxlY3RFbGVt
ZW50KHNlbGVjdFRhZywgZG9jdW1lbnQsIDApCiAgICAgewogICAgICAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEF0b21pY1N0cmluZywgcHNldWRvSWQsICgiLXdlYmtpdC1rZXlnZW4tc2VsZWN0Iiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICBzZXRQc2V1ZG8o
cHNldWRvSWQpOwpAQCAtNjUsNyArNjUsNyBAQCBwcml2YXRlOgogfTsKIAogaW5saW5lIEhUTUxL
ZXlnZW5FbGVtZW50OjpIVE1MS2V5Z2VuRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKLSAgICA6IEhU
TUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUodGFnTmFtZSwgJmRvY3VtZW50LCBmb3JtKQor
ICAgIDogSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSh0YWdOYW1lLCBkb2N1bWVudCwg
Zm9ybSkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShrZXlnZW5UYWcpKTsKIApAQCAtNzUsNyAr
NzUsNyBAQCBpbmxpbmUgSFRNTEtleWdlbkVsZW1lbnQ6OkhUTUxLZXlnZW5FbGVtCiAKICAgICBS
ZWZQdHI8SFRNTFNlbGVjdEVsZW1lbnQ+IHNlbGVjdCA9IEtleWdlblNlbGVjdEVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBrZXlzLnNpemUoKTsg
KytpKSB7Ci0gICAgICAgIFJlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gb3B0aW9uID0gSFRNTE9w
dGlvbkVsZW1lbnQ6OmNyZWF0ZSgmZG9jdW1lbnQpOworICAgICAgICBSZWZQdHI8SFRNTE9wdGlv
bkVsZW1lbnQ+IG9wdGlvbiA9IEhUTUxPcHRpb25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwog
ICAgICAgICBzZWxlY3QtPmFwcGVuZENoaWxkKG9wdGlvbiwgSUdOT1JFX0VYQ0VQVElPTik7CiAg
ICAgICAgIG9wdGlvbi0+YXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKCZkb2N1bWVudCwga2V5c1tp
XSksIElHTk9SRV9FWENFUFRJT04pOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1hcEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1hcEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNYXBFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksMTggKzM5LDE4IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotSFRNTE1h
cEVsZW1lbnQ6OkhUTUxNYXBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50KiBkb2N1bWVudCkKLSAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQor
SFRNTE1hcEVsZW1lbnQ6OkhUTUxNYXBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsICZkb2N1
bWVudCkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShtYXBUYWcpKTsKIH0KIAotUGFzc1JlZlB0
cjxIVE1MTWFwRWxlbWVudD4gSFRNTE1hcEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1l
bnQpCitQYXNzUmVmUHRyPEhUTUxNYXBFbGVtZW50PiBIVE1MTWFwRWxlbWVudDo6Y3JlYXRlKERv
Y3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxNYXBFbGVt
ZW50KG1hcFRhZywgZG9jdW1lbnQpKTsKIH0KIAotUGFzc1JlZlB0cjxIVE1MTWFwRWxlbWVudD4g
SFRNTE1hcEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxNYXBFbGVtZW50PiBIVE1MTWFwRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxNYXBFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5oCShyZXZp
c2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDggKzMyLDggQEAgY2xhc3MgSFRNTEltYWdlRWxlbWVudDsKICAg
ICAKIGNsYXNzIEhUTUxNYXBFbGVtZW50IEZJTkFMIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MTWFwRWxlbWVudD4gY3JlYXRlKERvY3Vt
ZW50Kik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTE1hcEVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1M
TWFwRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRN
TE1hcEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKICAg
ICB2aXJ0dWFsIH5IVE1MTWFwRWxlbWVudCgpOwogCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBn
ZXROYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CkBAIC00NCw3ICs0NCw3IEBAIHB1Ymxp
YzoKICAgICBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBhcmVhcygpOwogCiBwcml2YXRlOgot
ICAgIEhUTUxNYXBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAg
IEhUTUxNYXBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAg
dmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9taWNTdHJpbmcmKSBPVkVSUklERTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWFycXVlZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1hcnF1ZWVFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwxNCArMzUs
MTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwog
Ci1pbmxpbmUgSFRNTE1hcnF1ZWVFbGVtZW50OjpIVE1MTWFycXVlZUVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQotICAgIDogSFRNTEVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpCi0gICAgLCBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQpCitp
bmxpbmUgSFRNTE1hcnF1ZWVFbGVtZW50OjpIVE1MTWFycXVlZUVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogSFRNTEVsZW1lbnQo
dGFnTmFtZSwgJmRvY3VtZW50KQorICAgICwgQWN0aXZlRE9NT2JqZWN0KCZkb2N1bWVudCkKIHsK
ICAgICBBU1NFUlQoaGFzVGFnTmFtZShtYXJxdWVlVGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8SFRN
TE1hcnF1ZWVFbGVtZW50PiBIVE1MTWFycXVlZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxNYXJx
dWVlRWxlbWVudD4gSFRNTE1hcnF1ZWVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxIVE1MTWFycXVl
ZUVsZW1lbnQ+IG1hcnF1ZWVFbGVtZW50KGFkb3B0UmVmKG5ldyBIVE1MTWFycXVlZUVsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQpKSk7CiAgICAgbWFycXVlZUVsZW1lbnQtPnN1c3BlbmRJZk5lZWRl
ZCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5oCShyZXZp
c2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBAIGNsYXNzIFJlbmRlck1hcnF1ZWU7CiAK
IGNsYXNzIEhUTUxNYXJxdWVlRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBIVE1MRWxlbWVudCwgcHJp
dmF0ZSBBY3RpdmVET01PYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhU
TUxNYXJxdWVlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCop
OworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxNYXJxdWVlRWxlbWVudD4gY3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgaW50IG1pbmltdW1EZWxheSgpIGNv
bnN0OwogCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldExvb3AoaW50LCBF
eGNlcHRpb25Db2RlJik7CiAgICAgCiBwcml2YXRlOgotICAgIEhUTUxNYXJxdWVlRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBIVE1MTWFycXVlZUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNQ
cmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVBy
b3BlcnR5U2V0KikgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1MSw5ICsyNTEsOSBAQCBwcml2
YXRlOgogfTsKICNlbmRpZgogCi1IVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBjcmVh
dGVkQnlQYXJzZXIpCi0gICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAs
IEFjdGl2ZURPTU9iamVjdChkb2N1bWVudCkKK0hUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBi
b29sIGNyZWF0ZWRCeVBhcnNlcikKKyAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsICZkb2N1bWVu
dCkKKyAgICAsIEFjdGl2ZURPTU9iamVjdCgmZG9jdW1lbnQpCiAgICAgLCBtX2xvYWRUaW1lcih0
aGlzLCAmSFRNTE1lZGlhRWxlbWVudDo6bG9hZFRpbWVyRmlyZWQpCiAgICAgLCBtX3Byb2dyZXNz
RXZlbnRUaW1lcih0aGlzLCAmSFRNTE1lZGlhRWxlbWVudDo6cHJvZ3Jlc3NFdmVudFRpbWVyRmly
ZWQpCiAgICAgLCBtX3BsYXliYWNrUHJvZ3Jlc3NUaW1lcih0aGlzLCAmSFRNTE1lZGlhRWxlbWVu
dDo6cGxheWJhY2tQcm9ncmVzc1RpbWVyRmlyZWQpCkBAIC0zMzEsMjAgKzMzMSwyMCBAQCBIVE1M
TWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KGNvbnN0CiAgICAgTE9HKE1lZGlhLCAiSFRN
TE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudCIpOwogICAgIHNldEhhc0N1c3RvbVN0eWxl
UmVzb2x2ZUNhbGxiYWNrcygpOwogCi0gICAgZG9jdW1lbnQtPnJlZ2lzdGVyRm9yTWVkaWFWb2x1
bWVDYWxsYmFja3ModGhpcyk7Ci0gICAgZG9jdW1lbnQtPnJlZ2lzdGVyRm9yUHJpdmF0ZUJyb3dz
aW5nU3RhdGVDaGFuZ2VkQ2FsbGJhY2tzKHRoaXMpOworICAgIGRvY3VtZW50LnJlZ2lzdGVyRm9y
TWVkaWFWb2x1bWVDYWxsYmFja3ModGhpcyk7CisgICAgZG9jdW1lbnQucmVnaXN0ZXJGb3JQcml2
YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWRDYWxsYmFja3ModGhpcyk7CiAKLSAgICBpZiAoZG9jdW1l
bnQtPnNldHRpbmdzKCkgJiYgZG9jdW1lbnQtPnNldHRpbmdzKCktPm1lZGlhUGxheWJhY2tSZXF1
aXJlc1VzZXJHZXN0dXJlKCkpIHsKKyAgICBpZiAoZG9jdW1lbnQuc2V0dGluZ3MoKSAmJiBkb2N1
bWVudC5zZXR0aW5ncygpLT5tZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSgpKSB7CiAg
ICAgICAgIGFkZEJlaGF2aW9yUmVzdHJpY3Rpb24oUmVxdWlyZVVzZXJHZXN0dXJlRm9yUmF0ZUNo
YW5nZVJlc3RyaWN0aW9uKTsKICAgICAgICAgYWRkQmVoYXZpb3JSZXN0cmljdGlvbihSZXF1aXJl
VXNlckdlc3R1cmVGb3JMb2FkUmVzdHJpY3Rpb24pOwogICAgIH0KIAotICAgIGFkZEVsZW1lbnRU
b0RvY3VtZW50TWFwKHRoaXMsIGRvY3VtZW50KTsKKyAgICBhZGRFbGVtZW50VG9Eb2N1bWVudE1h
cCh0aGlzLCAmZG9jdW1lbnQpOwogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgIGRvY3Vt
ZW50LT5yZWdpc3RlckZvckNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFja3ModGhpcyk7
Ci0gICAgaWYgKGRvY3VtZW50LT5wYWdlKCkpCi0gICAgICAgIG1fY2FwdGlvbkRpc3BsYXlNb2Rl
ID0gZG9jdW1lbnQtPnBhZ2UoKS0+Z3JvdXAoKS5jYXB0aW9uUHJlZmVyZW5jZXMoKS0+Y2FwdGlv
bkRpc3BsYXlNb2RlKCk7CisgICAgZG9jdW1lbnQucmVnaXN0ZXJGb3JDYXB0aW9uUHJlZmVyZW5j
ZXNDaGFuZ2VkQ2FsbGJhY2tzKHRoaXMpOworICAgIGlmIChkb2N1bWVudC5wYWdlKCkpCisgICAg
ICAgIG1fY2FwdGlvbkRpc3BsYXlNb2RlID0gZG9jdW1lbnQucGFnZSgpLT5ncm91cCgpLmNhcHRp
b25QcmVmZXJlbmNlcygpLT5jYXB0aW9uRGlzcGxheU1vZGUoKTsKICNlbmRpZgogfQogCkBAIC00
NjQ3LDcgKzQ2NDcsNyBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmNyZWF0ZU1lZGlhQ29udHJv
CiAgICAgaWYgKGhhc01lZGlhQ29udHJvbHMoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAg
ICBSZWZQdHI8TWVkaWFDb250cm9scz4gbWVkaWFDb250cm9scyA9IE1lZGlhQ29udHJvbHM6OmNy
ZWF0ZSgmZG9jdW1lbnQoKSk7CisgICAgUmVmUHRyPE1lZGlhQ29udHJvbHM+IG1lZGlhQ29udHJv
bHMgPSBNZWRpYUNvbnRyb2xzOjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgaWYgKCFtZWRpYUNv
bnRyb2xzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzgxLDcgKzM4MSw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMo
KSBPVkVSUklERTsKIAogcHJvdGVjdGVkOgotICAgIEhUTUxNZWRpYUVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50KiwgYm9vbCk7CisgICAgSFRNTE1lZGlhRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sKTsKICAgICB2aXJ0dWFsIH5IVE1MTWVk
aWFFbGVtZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lbnVFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
OSwxMyArMjksMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRN
TE5hbWVzOwogCi1pbmxpbmUgSFRNTE1lbnVFbGVtZW50OjpIVE1MTWVudUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQotICAgIDogSFRNTEVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCitpbmxpbmUgSFRNTE1lbnVFbGVtZW50OjpIVE1MTWVu
dUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50
KQorICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgJmRvY3VtZW50KQogewogICAgIEFTU0VSVCho
YXNUYWdOYW1lKG1lbnVUYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxIVE1MTWVudUVsZW1lbnQ+IEhU
TUxNZW51RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8SFRNTE1lbnVFbGVtZW50PiBIVE1MTWVudUVsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1l
bnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MTWVudUVsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lbnVFbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuaAko
cmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMjksMTAgKzI5LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgSFRNTE1lbnVFbGVtZW50IEZJTkFMIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MTWVudUVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1M
TWVudUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKICAg
ICAKIHByaXZhdGU6Ci0gICAgSFRNTE1lbnVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCopOworICAgIEhUTUxNZW51RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmKTsKIH07CiAKIH0gLy9uYW1lc3BhY2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1ldGFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZXRhRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1ldGFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTMgKzMxLDEzIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotaW5s
aW5lIEhUTUxNZXRhRWxlbWVudDo6SFRNTE1ldGFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKLSAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KQoraW5saW5lIEhUTUxNZXRhRWxlbWVudDo6SFRNTE1ldGFFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IEhUTUxF
bGVtZW50KHRhZ05hbWUsICZkb2N1bWVudCkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShtZXRh
VGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTE1ldGFFbGVtZW50PiBIVE1MTWV0YUVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQp
CitQYXNzUmVmUHRyPEhUTUxNZXRhRWxlbWVudD4gSFRNTE1ldGFFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgSFRNTE1ldGFFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgJKHJldmlzaW9uIDE1NTc4
OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDE0ICsyOSwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxN
ZXRhRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8SFRNTE1ldGFFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTE1ldGFFbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBTdHJpbmcgY29u
dGVudCgpIGNvbnN0OwogICAgIFN0cmluZyBodHRwRXF1aXYoKSBjb25zdDsKICAgICBTdHJpbmcg
bmFtZSgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIEhUTUxNZXRhRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBIVE1MTWV0YUVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFp
bmVyTm9kZSopIE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVs
ZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZXRlckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotSFRNTE1ldGVyRWxl
bWVudDo6SFRNTE1ldGVyRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCogZG9jdW1lbnQpCitIVE1MTWV0ZXJFbGVtZW50OjpIVE1MTWV0ZXJFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IExhYmVs
YWJsZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUo
bWV0ZXJUYWcpKTsKQEAgLTQ5LDcgKzQ5LDcgQEAgSFRNTE1ldGVyRWxlbWVudDo6fkhUTUxNZXRl
ckVsZW1lbnQoKQogewogfQogCi1QYXNzUmVmUHRyPEhUTUxNZXRlckVsZW1lbnQ+IEhUTUxNZXRl
ckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCog
ZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxNZXRlckVsZW1lbnQ+IEhUTUxNZXRlckVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CiB7CiAgICAgUmVmUHRyPEhUTUxNZXRlckVsZW1lbnQ+IG1ldGVyID0gYWRvcHRSZWYobmV3IEhU
TUxNZXRlckVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKICAgICBtZXRlci0+ZW5zdXJlVXNl
ckFnZW50U2hhZG93Um9vdCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVt
ZW50LmgJKHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVy
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBAIGNsYXNzIFJlbmRlck1l
dGVyOwogCiBjbGFzcyBIVE1MTWV0ZXJFbGVtZW50IEZJTkFMIDogcHVibGljIExhYmVsYWJsZUVs
ZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxNZXRlckVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxIVE1MTWV0ZXJFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiAKICAgICBlbnVtIEdhdWdlUmVnaW9uIHsKICAgICAgICAgR2F1Z2VSZWdpb25P
cHRpbXVtLApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYW5Db250YWluUmFu
Z2VFbmRQb2ludCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKIHByaXZhdGU6Ci0gICAgSFRN
TE1ldGVyRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBIVE1M
TWV0ZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAgIHZpcnR1
YWwgfkhUTUxNZXRlckVsZW1lbnQoKTsKIAogICAgIHZpcnR1YWwgYm9vbCBhcmVBdXRob3JTaGFk
b3dzQWxsb3dlZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTc4OCkKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMzLDggKzMzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2Ug
SFRNTE5hbWVzOwogCi1IVE1MT0xpc3RFbGVtZW50OjpIVE1MT0xpc3RFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKLSAgICA6IEhUTUxFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KQorSFRNTE9MaXN0RWxlbWVudDo6SFRNTE9MaXN0RWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAg
OiBIVE1MRWxlbWVudCh0YWdOYW1lLCAmZG9jdW1lbnQpCiAgICAgLCBtX3N0YXJ0KDB4QkFEQkVF
RikKICAgICAsIG1faXRlbUNvdW50KDApCiAgICAgLCBtX2hhc0V4cGxpY2l0U3RhcnQoZmFsc2Up
CkBAIC00NCwxMiArNDQsMTIgQEAgSFRNTE9MaXN0RWxlbWVudDo6SFRNTE9MaXN0RWxlbWVudChj
b25zdAogICAgIEFTU0VSVChoYXNUYWdOYW1lKG9sVGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8SFRN
TE9MaXN0RWxlbWVudD4gSFRNTE9MaXN0RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVu
dCkKK1Bhc3NSZWZQdHI8SFRNTE9MaXN0RWxlbWVudD4gSFRNTE9MaXN0RWxlbWVudDo6Y3JlYXRl
KERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxPTGlz
dEVsZW1lbnQob2xUYWcsIGRvY3VtZW50KSk7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTE9MaXN0RWxl
bWVudD4gSFRNTE9MaXN0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8SFRNTE9MaXN0RWxlbWVudD4gSFRN
TE9MaXN0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxPTGlzdEVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9MaXN0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9M
aXN0RWxlbWVudC5oCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPTGlzdEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksOCArMjksOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxPTGlzdEVsZW1lbnQgRklOQUwgOiBwdWJsaWMgSFRN
TEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxPTGlzdEVsZW1l
bnQ+IGNyZWF0ZShEb2N1bWVudCopOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxPTGlzdEVs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxIVE1MT0xpc3RFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxIVE1MT0xpc3RFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBpbnQgc3RhcnQoKSBjb25zdCB7IHJldHVybiBtX2hh
c0V4cGxpY2l0U3RhcnQgPyBtX3N0YXJ0IDogKG1faXNSZXZlcnNlZCA/IGl0ZW1Db3VudCgpIDog
MSk7IH0KICAgICB2b2lkIHNldFN0YXJ0KGludCk7CkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGl0ZW1Db3VudENoYW5nZWQoKSB7IG1fc2hvdWxkUmVjYWxjdWxhdGVJdGVtQ291
bnQgPSB0cnVlOyB9CiAKIHByaXZhdGU6Ci0gICAgSFRNTE9MaXN0RWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBIVE1MT0xpc3RFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAgICAgICAKICAgICB2b2lkIHVwZGF0ZUl0ZW1WYWx1
ZXMoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAJ
KHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw4ICs1OSw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotaW5saW5lIEhUTUxPYmplY3RFbGVt
ZW50OjpIVE1MT2JqZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCogZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSwgYm9vbCBjcmVhdGVkQnlQYXJz
ZXIpIAotICAgIDogSFRNTFBsdWdJbkltYWdlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgY3Jl
YXRlZEJ5UGFyc2VyLCBTaG91bGROb3RQcmVmZXJQbHVnSW5zRm9ySW1hZ2VzKQoraW5saW5lIEhU
TUxPYmplY3RFbGVtZW50OjpIVE1MT2JqZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSwgYm9vbCBj
cmVhdGVkQnlQYXJzZXIpCisgICAgOiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KHRhZ05hbWUsICZk
b2N1bWVudCwgY3JlYXRlZEJ5UGFyc2VyLCBTaG91bGROb3RQcmVmZXJQbHVnSW5zRm9ySW1hZ2Vz
KQogICAgICwgbV9kb2NOYW1lZEl0ZW0odHJ1ZSkKICAgICAsIG1fdXNlRmFsbGJhY2tDb250ZW50
KGZhbHNlKQogewpAQCAtNzIsNyArNzIsNyBAQCBpbmxpbmUgSFRNTE9iamVjdEVsZW1lbnQ6On5I
VE1MT2JqZWN0RWxlCiB7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTE9iamVjdEVsZW1lbnQ+IEhUTUxP
YmplY3RFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQqIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0sIGJvb2wgY3JlYXRlZEJ5UGFyc2Vy
KQorUGFzc1JlZlB0cjxIVE1MT2JqZWN0RWxlbWVudD4gSFRNTE9iamVjdEVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxG
b3JtRWxlbWVudCogZm9ybSwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCiB7CiAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBIVE1MT2JqZWN0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSwgY3Jl
YXRlZEJ5UGFyc2VyKSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxl
bWVudC5oCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmpl
Y3RFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgY2xhc3MgSFRNTEZv
cm1FbGVtZW50OwogCiBjbGFzcyBIVE1MT2JqZWN0RWxlbWVudCBGSU5BTCA6IHB1YmxpYyBIVE1M
UGx1Z0luSW1hZ2VFbGVtZW50LCBwdWJsaWMgRm9ybUFzc29jaWF0ZWRFbGVtZW50IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MT2JqZWN0RWxlbWVudD4gY3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCosIGJvb2wgY3JlYXRl
ZEJ5UGFyc2VyKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MT2JqZWN0RWxlbWVudD4gY3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVudCosIGJv
b2wgY3JlYXRlZEJ5UGFyc2VyKTsKICAgICB2aXJ0dWFsIH5IVE1MT2JqZWN0RWxlbWVudCgpOwog
CiAgICAgYm9vbCBpc0RvY05hbWVkSXRlbSgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jTmFtZWRJdGVt
OyB9CkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ29udGFp
blJhbmdlRW5kUG9pbnQoKSBjb25zdCB7IHJldHVybiB1c2VGYWxsYmFja0NvbnRlbnQoKTsgfQog
CiBwcml2YXRlOgotICAgIEhUTUxPYmplY3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCosIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKKyAgICBI
VE1MT2JqZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBIVE1MRm9y
bUVsZW1lbnQqLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJikgY29uc3QgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3
LDE0ICszNywxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1M
TmFtZXM7CiAKLWlubGluZSBIVE1MT3B0R3JvdXBFbGVtZW50OjpIVE1MT3B0R3JvdXBFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKLSAgICA6
IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQoraW5saW5lIEhUTUxPcHRHcm91cEVsZW1l
bnQ6OkhUTUxPcHRHcm91cEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQorICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgJmRvY3VtZW50KQog
ewogICAgIEFTU0VSVChoYXNUYWdOYW1lKG9wdGdyb3VwVGFnKSk7CiAgICAgc2V0SGFzQ3VzdG9t
U3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTE9wdEdyb3VwRWxl
bWVudD4gSFRNTE9wdEdyb3VwRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8SFRNTE9wdEdyb3VwRWxlbWVu
dD4gSFRNTE9wdEdyb3VwRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxP
cHRHcm91cEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzIsNyArMzIsNyBAQCBjbGFzcyBIVE1MU2VsZWN0RWxlbWVudDsKIAogY2xhc3MgSFRNTE9wdEdy
b3VwRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8SFRNTE9wdEdyb3VwRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxPcHRHcm91cEVs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZp
cnR1YWwgYm9vbCBpc0Rpc2FibGVkRm9ybUNvbnRyb2woKSBjb25zdCBPVkVSUklERTsKICAgICBI
VE1MU2VsZWN0RWxlbWVudCogb3duZXJTZWxlY3RFbGVtZW50KCkgY29uc3Q7CkBAIC00MCw3ICs0
MCw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgZ3JvdXBMYWJlbFRleHQoKSBjb25zdDsKIAogcHJp
dmF0ZToKLSAgICBIVE1MT3B0R3JvdXBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCopOworICAgIEhUTUxPcHRHcm91cEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xU
eXBlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzRm9jdXNhYmxlKCkgY29uc3QgT1ZFUlJJ
REU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAkocmV2
aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTUwLDggKzUwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1IVE1MT3B0aW9uRWxlbWVudDo6SFRNTE9w
dGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3Vt
ZW50KQotICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCitIVE1MT3B0aW9uRWxl
bWVudDo6SFRNTE9wdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQorICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgJmRvY3VtZW50KQog
ICAgICwgbV9kaXNhYmxlZChmYWxzZSkKICAgICAsIG1faXNTZWxlY3RlZChmYWxzZSkKIHsKQEAg
LTU5LDEyICs1OSwxMiBAQCBIVE1MT3B0aW9uRWxlbWVudDo6SFRNTE9wdGlvbkVsZW1lbnQoY29u
CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9CiAKLVBhc3NSZWZQ
dHI8SFRNTE9wdGlvbkVsZW1lbnQ+IEhUTUxPcHRpb25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQq
IGRvY3VtZW50KQorUGFzc1JlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gSFRNTE9wdGlvbkVsZW1l
bnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBIVE1MT3B0aW9uRWxlbWVudChvcHRpb25UYWcsIGRvY3VtZW50KSk7CiB9CiAKLVBhc3NSZWZQ
dHI8SFRNTE9wdGlvbkVsZW1lbnQ+IEhUTUxPcHRpb25FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxIVE1M
T3B0aW9uRWxlbWVudD4gSFRNTE9wdGlvbkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBIVE1MT3B0aW9uRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQpAQCAtNzIsNyAr
NzIsNyBAQCBQYXNzUmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiBIVE1MT3B0aW9uCiBQYXNzUmVm
UHRyPEhUTUxPcHRpb25FbGVtZW50PiBIVE1MT3B0aW9uRWxlbWVudDo6Y3JlYXRlRm9ySlNDb25z
dHJ1Y3RvcihEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3Ry
aW5nJiB2YWx1ZSwKICAgICAgICAgYm9vbCBkZWZhdWx0U2VsZWN0ZWQsIGJvb2wgc2VsZWN0ZWQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIFJlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gZWxl
bWVudCA9IGFkb3B0UmVmKG5ldyBIVE1MT3B0aW9uRWxlbWVudChvcHRpb25UYWcsIGRvY3VtZW50
KSk7CisgICAgUmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiBlbGVtZW50ID0gYWRvcHRSZWYobmV3
IEhUTUxPcHRpb25FbGVtZW50KG9wdGlvblRhZywgKmRvY3VtZW50KSk7CiAKICAgICBSZWZQdHI8
VGV4dD4gdGV4dCA9IFRleHQ6OmNyZWF0ZShkb2N1bWVudCwgZGF0YS5pc051bGwoKSA/ICIiIDog
ZGF0YSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmgJKHJl
dmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMzQsOCArMzQsMTAgQEAgY2xhc3MgSFRNTFNlbGVjdEVsZW1l
bnQ7CiAKIGNsYXNzIEhUTUxPcHRpb25FbGVtZW50IEZJTkFMIDogcHVibGljIEhUTUxFbGVtZW50
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gY3Jl
YXRlKERvY3VtZW50Kik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmKTsKKworICAgIC8vIEZJWE1FOiBGaXggdGhlIGJpbmRpbmRzIHRvIHBhc3Mg
YSBEb2N1bWVudCYuCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+IGNy
ZWF0ZUZvckpTQ29uc3RydWN0b3IoRG9jdW1lbnQqLCBjb25zdCBTdHJpbmcmIGRhdGEsIGNvbnN0
IFN0cmluZyYgdmFsdWUsCiAgICAgICAgYm9vbCBkZWZhdWx0U2VsZWN0ZWQsIGJvb2wgc2VsZWN0
ZWQsIEV4Y2VwdGlvbkNvZGUmKTsKIApAQCAtNjcsNyArNjksNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRTZWxlY3RlZFN0YXRlKGJvb2wpOwogCiBwcml2YXRlOgotICAgIEhUTUxPcHRpb25FbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIEhUTUxPcHRpb25FbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCBib29s
IGlzRm9jdXNhYmxlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVy
SXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSB7IHJldHVybiBmYWxzZTsgfQpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTc4OCkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNyw3ICszNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotaW5saW5lIEhU
TUxPdXRwdXRFbGVtZW50OjpIVE1MT3V0cHV0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKK2lubGlu
ZSBIVE1MT3V0cHV0RWxlbWVudDo6SFRNTE91dHB1dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0pCiAg
ICAgOiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBmb3JtKQogICAg
ICwgbV9pc0RlZmF1bHRWYWx1ZU1vZGUodHJ1ZSkKICAgICAsIG1faXNTZXRUZXh0Q29udGVudElu
UHJvZ3Jlc3MoZmFsc2UpCkBAIC00Niw3ICs0Niw3IEBAIGlubGluZSBIVE1MT3V0cHV0RWxlbWVu
dDo6SFRNTE91dHB1dEVsZW0KIHsKIH0KIAotUGFzc1JlZlB0cjxIVE1MT3V0cHV0RWxlbWVudD4g
SFRNTE91dHB1dEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCogZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKK1Bhc3NSZWZQdHI8SFRN
TE91dHB1dEVsZW1lbnQ+IEhUTUxPdXRwdXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0p
CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MT3V0cHV0RWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCwgZm9ybSkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVs
ZW1lbnQuaAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0
cHV0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgSFRNTE91dHB1dEVsZW1lbnQgRklOQUwgOiBwdWJsaWMgSFRNTEZv
cm1Db250cm9sRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTE91
dHB1dEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBIVE1M
Rm9ybUVsZW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MT3V0cHV0RWxlbWVudD4g
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVudCop
OwogCiAgICAgdmlydHVhbCBib29sIHdpbGxWYWxpZGF0ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBjYW5Db250
YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKIHByaXZhdGU6Ci0g
ICAgSFRNTE91dHB1dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgSFRN
TEZvcm1FbGVtZW50Kik7CisgICAgSFRNTE91dHB1dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50JiwgSFRNTEZvcm1FbGVtZW50Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUo
KSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVsZW1l
bnQuY3BwCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJh
Z3JhcGhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTggKzMzLDE4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotaW5saW5lIEhU
TUxQYXJhZ3JhcGhFbGVtZW50OjpIVE1MUGFyYWdyYXBoRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBIVE1MRWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCkKK2lubGluZSBIVE1MUGFyYWdyYXBoRWxlbWVudDo6SFRNTFBhcmFncmFw
aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50
KQorICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgJmRvY3VtZW50KQogewogICAgIEFTU0VSVCho
YXNUYWdOYW1lKHBUYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxIVE1MUGFyYWdyYXBoRWxlbWVudD4g
SFRNTFBhcmFncmFwaEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVm
UHRyPEhUTUxQYXJhZ3JhcGhFbGVtZW50PiBIVE1MUGFyYWdyYXBoRWxlbWVudDo6Y3JlYXRlKERv
Y3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxQYXJhZ3Jh
cGhFbGVtZW50KHBUYWcsIGRvY3VtZW50KSk7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTFBhcmFncmFw
aEVsZW1lbnQ+IEhUTUxQYXJhZ3JhcGhFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxIVE1MUGFyYWdyYXBo
RWxlbWVudD4gSFRNTFBhcmFncmFwaEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBIVE1MUGFyYWdyYXBoRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYWdyYXBoRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQuaAkocmV2aXNpb24gMTU1Nzg4
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYWdyYXBoRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSwxMSArMjksMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBI
VE1MUGFyYWdyYXBoRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFBhcmFncmFwaEVsZW1lbnQ+IGNyZWF0ZShEb2N1
bWVudCopOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxQYXJhZ3JhcGhFbGVtZW50PiBjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8SFRNTFBhcmFncmFwaEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEhUTUxQYXJhZ3JhcGhFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAgSFRNTFBhcmFncmFwaEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgSFRNTFBhcmFncmFwaEVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNQ
cmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVBy
b3BlcnR5U2V0KikgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJh
bUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFt
RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFBhcmFtRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDEzICszMSwxMyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLWlubGluZSBI
VE1MUGFyYW1FbGVtZW50OjpIVE1MUGFyYW1FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKLSAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KQoraW5saW5lIEhUTUxQYXJhbUVsZW1lbnQ6OkhUTUxQYXJhbUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogSFRNTEVs
ZW1lbnQodGFnTmFtZSwgJmRvY3VtZW50KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKHBhcmFt
VGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTFBhcmFtRWxlbWVudD4gSFRNTFBhcmFtRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVu
dCkKK1Bhc3NSZWZQdHI8SFRNTFBhcmFtRWxlbWVudD4gSFRNTFBhcmFtRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxQYXJhbUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5oCShyZXZpc2lv
biAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhbUVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IEhUTUxQYXJhbUVsZW1lbnQgRklOQUwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxQYXJhbUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MUGFyYW1F
bGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBT
dHJpbmcgbmFtZSgpIGNvbnN0OwogICAgIFN0cmluZyB2YWx1ZSgpIGNvbnN0OwpAQCAtMzcsNyAr
MzcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgaXNVUkxQYXJhbWV0ZXIoY29uc3QgU3Ry
aW5nJik7CiAKIHByaXZhdGU6Ci0gICAgSFRNTFBhcmFtRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQqKTsKKyAgICBIVE1MUGFyYW1FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0
IEF0dHJpYnV0ZSYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNv
dXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8S1VSTD4mKSBjb25zdDsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1Nzg4
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogY29u
c3QgZG91YmxlIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OkluZGV0ZXJtaW5hdGVQb3NpdGlvbiA9IC0x
OwogY29uc3QgZG91YmxlIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OkludmFsaWRQb3NpdGlvbiA9IC0y
OwogCi1IVE1MUHJvZ3Jlc3NFbGVtZW50OjpIVE1MUHJvZ3Jlc3NFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK0hUTUxQcm9ncmVzc0VsZW1l
bnQ6OkhUTUxQcm9ncmVzc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQogICAgIDogTGFiZWxhYmxlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVu
dCkKICAgICAsIG1fdmFsdWUoMCkKIHsKQEAgLTUxLDcgKzUxLDcgQEAgSFRNTFByb2dyZXNzRWxl
bWVudDo6fkhUTUxQcm9ncmVzc0VsZW1lbgogewogfQogCi1QYXNzUmVmUHRyPEhUTUxQcm9ncmVz
c0VsZW1lbnQ+IEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxQcm9ncmVzc0Vs
ZW1lbnQ+IEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgUmVmUHRyPEhUTUxQcm9ncmVzc0Vs
ZW1lbnQ+IHByb2dyZXNzID0gYWRvcHRSZWYobmV3IEhUTUxQcm9ncmVzc0VsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpKTsKICAgICBwcm9ncmVzcy0+ZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgJKHJldmlz
aW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29u
c3QgZG91YmxlIEluZGV0ZXJtaW5hdGVQb3NpdGlvbjsKICAgICBzdGF0aWMgY29uc3QgZG91Ymxl
IEludmFsaWRQb3NpdGlvbjsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxQcm9ncmVzc0Vs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxIVE1MUHJvZ3Jlc3NFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBkb3VibGUgdmFsdWUoKSBjb25zdDsKICAgICB2b2lk
IHNldFZhbHVlKGRvdWJsZSwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtNDcsNyArNDcsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBib29sIGNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KIAogcHJpdmF0ZToKLSAgICBIVE1MUHJvZ3Jlc3NFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIEhUTUxQcm9ncmVzc0VsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAgICAgdmlydHVhbCB+SFRNTFByb2dyZXNz
RWxlbWVudCgpOwogCiAgICAgdmlydHVhbCBib29sIGFyZUF1dGhvclNoYWRvd3NBbGxvd2VkKCkg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTQg
KzM2LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1l
czsKIAotaW5saW5lIEhUTUxTY3JpcHRFbGVtZW50OjpIVE1MU2NyaXB0RWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgd2FzSW5zZXJ0
ZWRCeVBhcnNlciwgYm9vbCBhbHJlYWR5U3RhcnRlZCkKLSAgICA6IEhUTUxFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KQoraW5saW5lIEhUTUxTY3JpcHRFbGVtZW50OjpIVE1MU2NyaXB0RWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wg
d2FzSW5zZXJ0ZWRCeVBhcnNlciwgYm9vbCBhbHJlYWR5U3RhcnRlZCkKKyAgICA6IEhUTUxFbGVt
ZW50KHRhZ05hbWUsICZkb2N1bWVudCkKICAgICAsIFNjcmlwdEVsZW1lbnQodGhpcywgd2FzSW5z
ZXJ0ZWRCeVBhcnNlciwgYWxyZWFkeVN0YXJ0ZWQpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUo
c2NyaXB0VGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTFNjcmlwdEVsZW1lbnQ+IEhUTUxTY3Jp
cHRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQq
IGRvY3VtZW50LCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIsIGJvb2wgYWxyZWFkeVN0YXJ0ZWQp
CitQYXNzUmVmUHRyPEhUTUxTY3JpcHRFbGVtZW50PiBIVE1MU2NyaXB0RWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCB3
YXNJbnNlcnRlZEJ5UGFyc2VyLCBib29sIGFscmVhZHlTdGFydGVkKQogewogICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgSFRNTFNjcmlwdEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIHdhc0luc2Vy
dGVkQnlQYXJzZXIsIGFscmVhZHlTdGFydGVkKSk7CiB9CkBAIC0xNzMsNyArMTczLDcgQEAgdm9p
ZCBIVE1MU2NyaXB0RWxlbWVudDo6ZGlzcGF0Y2hMb2FkRXZlbgogCiBQYXNzUmVmUHRyPEVsZW1l
bnQ+IEhUTUxTY3JpcHRFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENo
aWxkcmVuKCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxTY3JpcHRFbGVtZW50KHRh
Z1FOYW1lKCksICZkb2N1bWVudCgpLCBmYWxzZSwgYWxyZWFkeVN0YXJ0ZWQoKSkpOworICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgSFRNTFNjcmlwdEVsZW1lbnQodGFnUU5hbWUoKSwgZG9jdW1lbnQo
KSwgZmFsc2UsIGFscmVhZHlTdGFydGVkKCkpKTsKIH0KIAogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICsz
MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTFNjcmlwdEVsZW1lbnQgRklO
QUwgOiBwdWJsaWMgSFRNTEVsZW1lbnQsIHB1YmxpYyBTY3JpcHRFbGVtZW50IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MU2NyaXB0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIGJvb2wgd2FzSW5zZXJ0ZWRCeVBhcnNlciwgYm9vbCBh
bHJlYWR5U3RhcnRlZCA9IGZhbHNlKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MU2NyaXB0
RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgd2Fz
SW5zZXJ0ZWRCeVBhcnNlciwgYm9vbCBhbHJlYWR5U3RhcnRlZCA9IGZhbHNlKTsKIAogICAgIFN0
cmluZyB0ZXh0KCkgY29uc3QgeyByZXR1cm4gc2NyaXB0Q29udGVudCgpOyB9CiAgICAgdm9pZCBz
ZXRUZXh0KGNvbnN0IFN0cmluZyYpOwpAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgYm9v
bCBhc3luYygpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIEhUTUxTY3JpcHRFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIGJvb2wgd2FzSW5zZXJ0ZWRCeVBhcnNlciwgYm9v
bCBhbHJlYWR5U3RhcnRlZCk7CisgICAgSFRNTFNjcmlwdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50JiwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyLCBib29sIGFscmVhZHlT
dGFydGVkKTsKIAogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBJbnNl
cnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlKikgT1ZF
UlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAko
cmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2LDcgKzY2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhU
TUxOYW1lczsKIC8vIFVwcGVyIGxpbWl0IGFncmVlZCB1cG9uIHdpdGggcmVwcmVzZW50YXRpdmVz
IG9mIE9wZXJhIGFuZCBNb3ppbGxhLgogc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heFNlbGVjdEl0
ZW1zID0gMTAwMDA7CiAKLUhUTUxTZWxlY3RFbGVtZW50OjpIVE1MU2VsZWN0RWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIEhUTUxGb3JtRWxl
bWVudCogZm9ybSkKK0hUTUxTZWxlY3RFbGVtZW50OjpIVE1MU2VsZWN0RWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVu
dCogZm9ybSkKICAgICA6IEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUodGFnTmFtZSwg
ZG9jdW1lbnQsIGZvcm0pCiAgICAgLCBtX3R5cGVBaGVhZCh0aGlzKQogICAgICwgbV9zaXplKDAp
CkBAIC04MSw3ICs4MSw3IEBAIEhUTUxTZWxlY3RFbGVtZW50OjpIVE1MU2VsZWN0RWxlbWVudChj
b24KICAgICBBU1NFUlQoaGFzVGFnTmFtZShzZWxlY3RUYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxI
VE1MU2VsZWN0RWxlbWVudD4gSFRNTFNlbGVjdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9y
bSkKK1Bhc3NSZWZQdHI8SFRNTFNlbGVjdEVsZW1lbnQ+IEhUTUxTZWxlY3RFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1M
Rm9ybUVsZW1lbnQqIGZvcm0pCiB7CiAgICAgQVNTRVJUKHRhZ05hbWUubWF0Y2hlcyhzZWxlY3RU
YWcpKTsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxTZWxlY3RFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50LCBmb3JtKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5oCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgSFRNTE9w
dGlvbkVsZW1lbnQ7CiAKIGNsYXNzIEhUTUxTZWxlY3RFbGVtZW50IDogcHVibGljIEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnRXaXRoU3RhdGUsIHB1YmxpYyBUeXBlQWhlYWREYXRhU291cmNlIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MU2VsZWN0RWxlbWVudD4gY3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCopOworICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEhUTUxTZWxlY3RFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50JiwgSFRNTEZvcm1FbGVtZW50Kik7CiAKICAgICBpbnQgc2VsZWN0ZWRJ
bmRleCgpIGNvbnN0OwogICAgIHZvaWQgc2V0U2VsZWN0ZWRJbmRleChpbnQpOwpAQCAtMTA2LDcg
KzEwNiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG9wdGlvblNlbGVjdGlvblN0YXRlQ2hhbmdlZChI
VE1MT3B0aW9uRWxlbWVudCosIGJvb2wgb3B0aW9uSXNTZWxlY3RlZCk7CiAKIHByb3RlY3RlZDoK
LSAgICBIVE1MU2VsZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBI
VE1MRm9ybUVsZW1lbnQqKTsKKyAgICBIVE1MU2VsZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqKTsKIAogcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Q7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1Nzg4
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQwLDE1ICs0MCwxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5h
bWVzcGFjZSBIVE1MTmFtZXM7CiAKLWlubGluZSBIVE1MU291cmNlRWxlbWVudDo6SFRNTFNvdXJj
ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50
KQotICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCitpbmxpbmUgSFRNTFNvdXJj
ZUVsZW1lbnQ6OkhUTUxTb3VyY2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsICZkb2N1bWVu
dCkKICAgICAsIG1fZXJyb3JFdmVudFRpbWVyKHRoaXMsICZIVE1MU291cmNlRWxlbWVudDo6ZXJy
b3JFdmVudFRpbWVyRmlyZWQpCiB7CiAgICAgTE9HKE1lZGlhLCAiSFRNTFNvdXJjZUVsZW1lbnQ6
OkhUTUxTb3VyY2VFbGVtZW50IC0gJXAiLCB0aGlzKTsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShz
b3VyY2VUYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxIVE1MU291cmNlRWxlbWVudD4gSFRNTFNvdXJj
ZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCog
ZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxTb3VyY2VFbGVtZW50PiBIVE1MU291cmNlRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxTb3VyY2VFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVu
dC5oCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VF
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBIVE1MU291cmNlRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBIVE1MRWxlbWVu
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFNvdXJjZUVsZW1lbnQ+IGNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxIVE1MU291cmNlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOwogCiAgICAgU3RyaW5nIG1lZGlhKCkgY29uc3Q7CiAgICAgU3RyaW5nIHR5cGUoKSBj
b25zdDsKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2FuY2VsUGVuZGluZ0Vy
cm9yRXZlbnQoKTsKIAogcHJpdmF0ZToKLSAgICBIVE1MU291cmNlRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBIVE1MU291cmNlRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKICAgICAKICAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlm
aWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUqKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSopIE9WRVJSSURFOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3BhbkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNwYW5FbGVtZW50LmNwcAkocmV2aXNpb24gMTU1Nzg4
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3BhbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMiwxMyArMzIsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1l
c3BhY2UgSFRNTE5hbWVzOwogCi1IVE1MU3BhbkVsZW1lbnQ6OkhUTUxTcGFuRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBIVE1M
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKK0hUTUxTcGFuRWxlbWVudDo6SFRNTFNwYW5FbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKKyAg
ICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsICZkb2N1bWVudCkKIHsKICAgICBBU1NFUlQoaGFzVGFn
TmFtZShzcGFuVGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTFNwYW5FbGVtZW50PiBIVE1MU3Bh
bkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCog
ZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxTcGFuRWxlbWVudD4gSFRNTFNwYW5FbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQog
ewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTFNwYW5FbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTcGFuRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNwYW5FbGVtZW50LmgJKHJldmlz
aW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNwYW5FbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDEwICszMiwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEhUTUxTcGFuRWxlbWVudCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8SFRNTFNwYW5FbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFNwYW5FbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0g
ICAgSFRNTFNwYW5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAg
IEhUTUxTcGFuRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIH07CiAK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcAkocmV2aXNp
b24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDYsOCArNDYsOCBAQCBzdGF0aWMgU3R5bGVFdmVudFNlbmRlciYg
c3R5bGVMb2FkRXZlbnRTCiAgICAgcmV0dXJuIHNoYXJlZExvYWRFdmVudFNlbmRlcjsKIH0KIAot
aW5saW5lIEhUTUxTdHlsZUVsZW1lbnQ6OkhUTUxTdHlsZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGNyZWF0ZWRCeVBhcnNlcikK
LSAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQoraW5saW5lIEhUTUxTdHlsZUVs
ZW1lbnQ6OkhUTUxTdHlsZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50LCBib29sIGNyZWF0ZWRCeVBhcnNlcikKKyAgICA6IEhUTUxFbGVtZW50
KHRhZ05hbWUsICZkb2N1bWVudCkKICAgICAsIG1fc3R5bGVTaGVldE93bmVyKGRvY3VtZW50LCBj
cmVhdGVkQnlQYXJzZXIpCiAgICAgLCBtX2ZpcmVkTG9hZChmYWxzZSkKICAgICAsIG1fbG9hZGVk
U2hlZXQoZmFsc2UpCkBAIC02NSw3ICs2NSw3IEBAIEhUTUxTdHlsZUVsZW1lbnQ6On5IVE1MU3R5
bGVFbGVtZW50KCkKICAgICBzdHlsZUxvYWRFdmVudFNlbmRlcigpLmNhbmNlbEV2ZW50KHRoaXMp
OwogfQogCi1QYXNzUmVmUHRyPEhUTUxTdHlsZUVsZW1lbnQ+IEhUTUxTdHlsZUVsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIGJv
b2wgY3JlYXRlZEJ5UGFyc2VyKQorUGFzc1JlZlB0cjxIVE1MU3R5bGVFbGVtZW50PiBIVE1MU3R5
bGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQm
IGRvY3VtZW50LCBib29sIGNyZWF0ZWRCeVBhcnNlcikKIHsKICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEhUTUxTdHlsZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGNyZWF0ZWRCeVBhcnNlcikp
OwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmgJKHJldmlzaW9u
IDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBAIHR5cGVkZWYgRXZlbnRTZW5kZXI8SFRNTFN0eWxl
RWxlbWVudD4gU3QKIAogY2xhc3MgSFRNTFN0eWxlRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBIVE1M
RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFN0eWxlRWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIGJvb2wgY3JlYXRlZEJ5
UGFyc2VyKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MU3R5bGVFbGVtZW50PiBjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwog
ICAgIHZpcnR1YWwgfkhUTUxTdHlsZUVsZW1lbnQoKTsKIAogICAgIGJvb2wgc2NvcGVkKCkgY29u
c3Q7CkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaFBl
bmRpbmdMb2FkRXZlbnRzKCk7CiAKIHByaXZhdGU6Ci0gICAgSFRNTFN0eWxlRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CisgICAg
SFRNTFN0eWxlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIGNy
ZWF0ZWRCeVBhcnNlcik7CiAKICAgICAvLyBvdmVybG9hZCBmcm9tIEhUTUxFbGVtZW50CiAgICAg
dmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9taWNTdHJpbmcmKSBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1
bW1hcnlFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
dW1tYXJ5RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsMTUgKzUzLDE1
IEBAIFBhc3NSZWZQdHI8U3VtbWFyeUNvbnRlbnRFbGVtZW50PiBTdW1tYXIKICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFN1bW1hcnlDb250ZW50RWxlbWVudChkb2N1bWVudCkpOwogfQogCi1QYXNz
UmVmUHRyPEhUTUxTdW1tYXJ5RWxlbWVudD4gSFRNTFN1bW1hcnlFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0
cjxIVE1MU3VtbWFyeUVsZW1lbnQ+IEhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBSZWZQdHI8
SFRNTFN1bW1hcnlFbGVtZW50PiBzdW1tYXJ5ID0gYWRvcHRSZWYobmV3IEhUTUxTdW1tYXJ5RWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogICAgIHN1bW1hcnktPmVuc3VyZVVzZXJBZ2VudFNo
YWRvd1Jvb3QoKTsKICAgICByZXR1cm4gc3VtbWFyeS5yZWxlYXNlKCk7CiB9CiAKLUhUTUxTdW1t
YXJ5RWxlbWVudDo6SFRNTFN1bW1hcnlFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50KiBkb2N1bWVudCkKLSAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KQorSFRNTFN1bW1hcnlFbGVtZW50OjpIVE1MU3VtbWFyeUVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogSFRNTEVsZW1lbnQo
dGFnTmFtZSwgJmRvY3VtZW50KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKHN1bW1hcnlUYWcp
KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuaAkocmV2
aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMjksMTIgKzI5LDEyIEBAIGNsYXNzIEhUTUxEZXRhaWxzRWxl
bWVudDsKIAogY2xhc3MgSFRNTFN1bW1hcnlFbGVtZW50IEZJTkFMIDogcHVibGljIEhUTUxFbGVt
ZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MU3VtbWFyeUVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxIVE1MU3VtbWFyeUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmKTsKICAgICBib29sIGlzTWFpblN1bW1hcnkoKSBjb25zdDsKICAgICB2aXJ0dWFs
IGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBPVkVSUklERTsKIAogcHJpdmF0
ZToKLSAgICBIVE1MU3VtbWFyeUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Kik7CisgICAgSFRNTFN1bW1hcnlFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogCiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFy
ZW5hKiwgUmVuZGVyU3R5bGUqKTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVS
ZW5kZXJlcihjb25zdCBOb2RlKikgY29uc3QgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1Nzg4KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQyLDEyICs0MiwxMiBAQCBzdGF0aWMgY29uc3QgaW50IG1heFJvd3NwYW4gPSA4MTkw
OwogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1pbmxpbmUgSFRNTFRhYmxlQ2VsbEVs
ZW1lbnQ6OkhUTUxUYWJsZUNlbGxFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50KiBkb2N1bWVudCkKK2lubGluZSBIVE1MVGFibGVDZWxsRWxlbWVudDo6SFRNTFRh
YmxlQ2VsbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQogICAgIDogSFRNTFRhYmxlUGFydEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiB7
CiB9CiAKLVBhc3NSZWZQdHI8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+IEhUTUxUYWJsZUNlbGxFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3Vt
ZW50KQorUGFzc1JlZlB0cjxIVE1MVGFibGVDZWxsRWxlbWVudD4gSFRNTFRhYmxlQ2VsbEVsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1l
bnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MVGFibGVDZWxsRWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVD
ZWxsRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
Q2VsbEVsZW1lbnQuaAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVDZWxsRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTFRhYmxlQ2VsbEVsZW1lbnQgRklOQUwgOiBw
dWJsaWMgSFRNTFRhYmxlUGFydEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEhUTUxUYWJsZUNlbGxFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+IGNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGludCBjZWxsSW5k
ZXgoKSBjb25zdDsKIApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgSFRNTFRhYmxlQ2Vs
bEVsZW1lbnQqIGNlbGxBYm92ZSgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIEhUTUxUYWJsZUNl
bGxFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIEhUTUxUYWJs
ZUNlbGxFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdmly
dHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
aWNTdHJpbmcmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50YXRpb25BdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJSSURFOwpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU3ODgp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVz
cGFjZSBIVE1MTmFtZXM7CiAKIGlubGluZSBIVE1MVGFibGVDb2xFbGVtZW50OjpIVE1MVGFibGVD
b2xFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVu
dCkKLSAgICA6IEhUTUxUYWJsZVBhcnRFbGVtZW50KHRhZ05hbWUsICZkb2N1bWVudCkKKyAgICA6
IEhUTUxUYWJsZVBhcnRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogICAgICwgbV9zcGFuKDEp
CiB7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDggKzQ2LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1IVE1MVGFibGVFbGVtZW50OjpIVE1MVGFi
bGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVu
dCkKLSAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQorSFRNTFRhYmxlRWxlbWVu
dDo6SFRNTFRhYmxlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCYgZG9jdW1lbnQpCisgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCAmZG9jdW1lbnQpCiAgICAg
LCBtX2JvcmRlckF0dHIoZmFsc2UpCiAgICAgLCBtX2JvcmRlckNvbG9yQXR0cihmYWxzZSkKICAg
ICAsIG1fZnJhbWVBdHRyKGZhbHNlKQpAQCAtNTcsMTIgKzU3LDEyIEBAIEhUTUxUYWJsZUVsZW1l
bnQ6OkhUTUxUYWJsZUVsZW1lbnQoY29uc3QKICAgICBBU1NFUlQoaGFzVGFnTmFtZSh0YWJsZVRh
ZykpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxUYWJsZUVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6
OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxUYWJsZUVsZW1lbnQ+
IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBIVE1MVGFibGVFbGVtZW50KHRhYmxlVGFnLCBkb2N1bWVudCkpOwog
fQogCi1QYXNzUmVmUHRyPEhUTUxUYWJsZUVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQYXNz
UmVmUHRyPEhUTUxUYWJsZUVsZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBIVE1MVGFibGVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CkBA
IC0xMjgsNyArMTI4LDcgQEAgUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlRWxlbWVu
dAogewogICAgIGlmIChIVE1MVGFibGVTZWN0aW9uRWxlbWVudCogZXhpc3RpbmdIZWFkID0gdEhl
YWQoKSkKICAgICAgICAgcmV0dXJuIGV4aXN0aW5nSGVhZDsKLSAgICBSZWZQdHI8SFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQ+IGhlYWQgPSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6Y3JlYXRlKHRo
ZWFkVGFnLCAmZG9jdW1lbnQoKSk7CisgICAgUmVmUHRyPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
PiBoZWFkID0gSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmNyZWF0ZSh0aGVhZFRhZywgZG9jdW1l
bnQoKSk7CiAgICAgc2V0VEhlYWQoaGVhZCwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgcmV0dXJu
IGhlYWQucmVsZWFzZSgpOwogfQpAQCAtMTQyLDcgKzE0Miw3IEBAIFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IEhUTUxUYWJsZUVsZW1lbnQKIHsKICAgICBpZiAoSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQqIGV4aXN0aW5nRm9vdCA9IHRGb290KCkpCiAgICAgICAgIHJldHVybiBleGlzdGluZ0Zvb3Q7
Ci0gICAgUmVmUHRyPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PiBmb290ID0gSFRNTFRhYmxlU2Vj
dGlvbkVsZW1lbnQ6OmNyZWF0ZSh0Zm9vdFRhZywgJmRvY3VtZW50KCkpOworICAgIFJlZlB0cjxI
VE1MVGFibGVTZWN0aW9uRWxlbWVudD4gZm9vdCA9IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Ojpj
cmVhdGUodGZvb3RUYWcsIGRvY3VtZW50KCkpOwogICAgIHNldFRGb290KGZvb3QsIElHTk9SRV9F
WENFUFRJT04pOwogICAgIHJldHVybiBmb290LnJlbGVhc2UoKTsKIH0KQEAgLTE1NCw3ICsxNTQs
NyBAQCB2b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OmRlbGV0ZVRGb290KCkKIAogUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gSFRNTFRhYmxlRWxlbWVudDo6Y3JlYXRlVEJvZHkoKQogewotICAgIFJlZlB0
cjxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4gYm9keSA9IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
OjpjcmVhdGUodGJvZHlUYWcsICZkb2N1bWVudCgpKTsKKyAgICBSZWZQdHI8SFRNTFRhYmxlU2Vj
dGlvbkVsZW1lbnQ+IGJvZHkgPSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6Y3JlYXRlKHRib2R5
VGFnLCBkb2N1bWVudCgpKTsKICAgICBOb2RlKiByZWZlcmVuY2VFbGVtZW50ID0gbGFzdEJvZHko
KSA/IGxhc3RCb2R5KCktPm5leHRTaWJsaW5nKCkgOiAwOwogICAgIGluc2VydEJlZm9yZShib2R5
LCByZWZlcmVuY2VFbGVtZW50LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICByZXR1cm4gYm9k
eS5yZWxlYXNlKCk7CkBAIC0yMTYsMTUgKzIxNiwxNSBAQCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBIVE1MVGFibGVFbGVtZW50CiAgICAgZWxzZSB7CiAgICAgICAgIHBhcmVudCA9IGxhc3RCb2R5
KCk7CiAgICAgICAgIGlmICghcGFyZW50KSB7Ci0gICAgICAgICAgICBSZWZQdHI8SFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQ+IG5ld0JvZHkgPSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6Y3JlYXRl
KHRib2R5VGFnLCAmZG9jdW1lbnQoKSk7Ci0gICAgICAgICAgICBSZWZQdHI8SFRNTFRhYmxlUm93
RWxlbWVudD4gbmV3Um93ID0gSFRNTFRhYmxlUm93RWxlbWVudDo6Y3JlYXRlKCZkb2N1bWVudCgp
KTsKKyAgICAgICAgICAgIFJlZlB0cjxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4gbmV3Qm9keSA9
IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OjpjcmVhdGUodGJvZHlUYWcsIGRvY3VtZW50KCkpOwor
ICAgICAgICAgICAgUmVmUHRyPEhUTUxUYWJsZVJvd0VsZW1lbnQ+IG5ld1JvdyA9IEhUTUxUYWJs
ZVJvd0VsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKICAgICAgICAgICAgIG5ld0JvZHktPmFw
cGVuZENoaWxkKG5ld1JvdywgZWMpOwogICAgICAgICAgICAgYXBwZW5kQ2hpbGQobmV3Qm9keS5y
ZWxlYXNlKCksIGVjKTsKICAgICAgICAgICAgIHJldHVybiBuZXdSb3cucmVsZWFzZSgpOwogICAg
ICAgICB9CiAgICAgfQogCi0gICAgUmVmUHRyPEhUTUxUYWJsZVJvd0VsZW1lbnQ+IG5ld1JvdyA9
IEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmNyZWF0ZSgmZG9jdW1lbnQoKSk7CisgICAgUmVmUHRyPEhU
TUxUYWJsZVJvd0VsZW1lbnQ+IG5ld1JvdyA9IEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCgpKTsKICAgICBwYXJlbnQtPmluc2VydEJlZm9yZShuZXdSb3csIHJvdy5nZXQoKSwg
ZWMpOwogICAgIHJldHVybiBuZXdSb3cucmVsZWFzZSgpOwogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGFibGVFbGVtZW50LmgJKHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw4ICszNyw4
IEBAIGNsYXNzIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OwogCiBjbGFzcyBIVE1MVGFibGVFbGVt
ZW50IEZJTkFMIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxIVE1MVGFibGVFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxIVE1MVGFibGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFRhYmxlRWxlbWVudD4gY3Jl
YXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFRhYmxlRWxlbWVudD4g
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgSFRNTFRhYmxl
Q2FwdGlvbkVsZW1lbnQqIGNhcHRpb24oKSBjb25zdDsKICAgICB2b2lkIHNldENhcHRpb24oUGFz
c1JlZlB0cjxIVE1MVGFibGVDYXB0aW9uRWxlbWVudD4sIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTY5
LDcgKzY5LDcgQEAgcHVibGljOgogICAgIGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIGFkZGl0aW9u
YWxHcm91cFN0eWxlKGJvb2wgcm93cyk7CiAKIHByaXZhdGU6Ci0gICAgSFRNTFRhYmxlRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBIVE1MVGFibGVFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGFibGVQYXJ0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRhYmxlUGFydEVsZW1lbnQuaAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGFibGVQYXJ0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw4
ICszNCw4IEBAIGNsYXNzIEhUTUxUYWJsZUVsZW1lbnQ7CiAKIGNsYXNzIEhUTUxUYWJsZVBhcnRF
bGVtZW50IDogcHVibGljIEhUTUxFbGVtZW50IHsKIHByb3RlY3RlZDoKLSAgICBIVE1MVGFibGVQ
YXJ0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1l
bnQpCi0gICAgICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCisgICAgSFRNTFRh
YmxlUGFydEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQorICAgICAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsICZkb2N1bWVudCkKICAgICB7
CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVu
dC5jcHAJKHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
Um93RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDE4ICszOCwxOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLUhUTUxUYWJsZVJv
d0VsZW1lbnQ6OkhUTUxUYWJsZVJvd0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorSFRNTFRhYmxlUm93RWxlbWVudDo6SFRNTFRhYmxlUm93
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgOiBIVE1MVGFibGVQYXJ0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKIHsKICAgICBB
U1NFUlQoaGFzVGFnTmFtZSh0clRhZykpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxUYWJsZVJvd0Vs
ZW1lbnQ+IEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCitQ
YXNzUmVmUHRyPEhUTUxUYWJsZVJvd0VsZW1lbnQ+IEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MVGFi
bGVSb3dFbGVtZW50KHRyVGFnLCBkb2N1bWVudCkpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxUYWJs
ZVJvd0VsZW1lbnQ+IEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxUYWJsZVJv
d0VsZW1lbnQ+IEhUTUxUYWJsZVJvd0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBIVE1MVGFibGVSb3dFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CkBAIC0xMjcsNyAr
MTI3LDcgQEAgUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gSFRNTFRhYmxlUm93RWxlbQogICAgICAg
ICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBSZWZQdHI8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+IGNl
bGwgPSBIVE1MVGFibGVDZWxsRWxlbWVudDo6Y3JlYXRlKHRkVGFnLCAmZG9jdW1lbnQoKSk7Cisg
ICAgUmVmUHRyPEhUTUxUYWJsZUNlbGxFbGVtZW50PiBjZWxsID0gSFRNTFRhYmxlQ2VsbEVsZW1l
bnQ6OmNyZWF0ZSh0ZFRhZywgZG9jdW1lbnQoKSk7CiAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRl
eCA+PSBudW1DZWxscykKICAgICAgICAgYXBwZW5kQ2hpbGQoY2VsbCwgZWMpOwogICAgIGVsc2Ug
ewpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmgJKHJldmlz
aW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMiw4ICszMiw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgSFRNTFRhYmxlUm93RWxlbWVudCBGSU5BTCA6IHB1YmxpYyBIVE1MVGFibGVQYXJ0RWxl
bWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFRhYmxlUm93RWxlbWVu
dD4gY3JlYXRlKERvY3VtZW50Kik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFRhYmxlUm93
RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEhUTUxUYWJsZVJvd0VsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxUYWJsZVJvd0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGludCByb3dJbmRleCgpIGNvbnN0Owog
ICAgIHZvaWQgc2V0Um93SW5kZXgoaW50KTsKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0Q2VsbHMoSFRNTENvbGxlY3Rpb24gKiwgRXhjZXB0aW9uQ29kZSYpOwogCiBwcml2
YXRlOgotICAgIEhUTUxUYWJsZVJvd0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Kik7CisgICAgSFRNTFRhYmxlUm93RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmKTsKIH07CiAKIEVMRU1FTlRfVFlQRV9DQVNUUyhIVE1MVGFibGVSb3dFbGVtZW50KQpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5j
cHAJKHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2Vj
dGlvbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMiArMzcsMTIgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1pbmxpbmUgSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQ6OkhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK2lubGluZSBIVE1MVGFibGVT
ZWN0aW9uRWxlbWVudDo6SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogSFRNTFRhYmxlUGFydEVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpCiB7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQ+IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxIVE1MVGFibGVT
ZWN0aW9uRWxlbWVudD4gSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwog
fQpAQCAtNjQsNyArNjQsNyBAQCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBIVE1MVGFibGVTZWN0
aW9uCiAgICAgaWYgKGluZGV4IDwgLTEgfHwgaW5kZXggPiBudW1Sb3dzKQogICAgICAgICBlYyA9
IElOREVYX1NJWkVfRVJSOyAvLyBwZXIgdGhlIERPTQogICAgIGVsc2UgewotICAgICAgICByb3cg
PSBIVE1MVGFibGVSb3dFbGVtZW50OjpjcmVhdGUodHJUYWcsICZkb2N1bWVudCgpKTsKKyAgICAg
ICAgcm93ID0gSFRNTFRhYmxlUm93RWxlbWVudDo6Y3JlYXRlKHRyVGFnLCBkb2N1bWVudCgpKTsK
ICAgICAgICAgaWYgKG51bVJvd3MgPT0gaW5kZXggfHwgaW5kZXggPT0gLTEpCiAgICAgICAgICAg
ICBhcHBlbmRDaGlsZChyb3csIGVjKTsKICAgICAgICAgZWxzZSB7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oCShyZXZpc2lvbiAxNTU3ODgp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBI
VE1MVGFibGVTZWN0aW9uRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBIVE1MVGFibGVQYXJ0RWxlbWVu
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gaW5zZXJ0
Um93KGludCBpbmRleCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgZGVsZXRlUm93KGludCBp
bmRleCwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgUGFz
c1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gcm93cygpOwogCiBwcml2YXRlOgotICAgIEhUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Kik7
CisgICAgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgY29uc3QgU3R5bGVQcm9wZXJ0eVNldCogYWRk
aXRpb25hbFByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKCkgT1ZFUlJJREU7CiB9OwpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFnTmFtZXMuaW4JKHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVzLmluCSh3b3JraW5nIGNvcHkpCkBAIC03OSw2MSAr
NzksNjEgQEAgbGkgaW50ZXJmYWNlTmFtZT1IVE1MTElFbGVtZW50LCBjb25zdHJ1YwogbGluayBj
b25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyLCBjb25zdHJ1Y3RvclRha2VzRG9jdW1lbnRS
ZWZlcmVuY2UKIGxpc3RpbmcgaW50ZXJmYWNlTmFtZT1IVE1MUHJlRWxlbWVudCwgY29uc3RydWN0
b3JUYWtlc0RvY3VtZW50UmVmZXJlbmNlCiBtYWluIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQK
LW1hcCBnZW5lcmF0ZVR5cGVIZWxwZXJzLCAKK21hcCBnZW5lcmF0ZVR5cGVIZWxwZXJzLCBjb25z
dHJ1Y3RvclRha2VzRG9jdW1lbnRSZWZlcmVuY2UKIG1hcmsgaW50ZXJmYWNlTmFtZT1IVE1MRWxl
bWVudAotbWFycXVlZQotbWVudQotbWV0YQotbWV0ZXIgaW50ZXJmYWNlTmFtZT1IVE1MTWV0ZXJF
bGVtZW50LCBjb25kaXRpb25hbD1NRVRFUl9FTEVNRU5ULCBnZW5lcmF0ZVR5cGVIZWxwZXJzCitt
YXJxdWVlIGNvbnN0cnVjdG9yVGFrZXNEb2N1bWVudFJlZmVyZW5jZQorbWVudSBjb25zdHJ1Y3Rv
clRha2VzRG9jdW1lbnRSZWZlcmVuY2UKK21ldGEgY29uc3RydWN0b3JUYWtlc0RvY3VtZW50UmVm
ZXJlbmNlCittZXRlciBpbnRlcmZhY2VOYW1lPUhUTUxNZXRlckVsZW1lbnQsIGNvbmRpdGlvbmFs
PU1FVEVSX0VMRU1FTlQsIGdlbmVyYXRlVHlwZUhlbHBlcnMsIGNvbnN0cnVjdG9yVGFrZXNEb2N1
bWVudFJlZmVyZW5jZQogbmF2IGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIG5vYnIgaW50ZXJm
YWNlTmFtZT1IVE1MRWxlbWVudAogbm9lbWJlZCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBu
b2ZyYW1lcyBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBub2xheWVyIGludGVyZmFjZU5hbWU9
SFRNTEVsZW1lbnQKLW9iamVjdCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQsIGNvbnN0cnVj
dG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIsIGdlbmVyYXRlVHlwZUhlbHBlcnMKLW9sIGludGVyZmFj
ZU5hbWU9SFRNTE9MaXN0RWxlbWVudAotb3B0Z3JvdXAgaW50ZXJmYWNlTmFtZT1IVE1MT3B0R3Jv
dXBFbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1vcHRpb24gZ2VuZXJhdGVUeXBlSGVscGVy
cwotb3V0cHV0IGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudAotcCBpbnRlcmZhY2VOYW1lPUhU
TUxQYXJhZ3JhcGhFbGVtZW50Ci1wYXJhbSBnZW5lcmF0ZVR5cGVIZWxwZXJzCitvYmplY3QgY29u
c3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50LCBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2Vy
LCBnZW5lcmF0ZVR5cGVIZWxwZXJzLCBjb25zdHJ1Y3RvclRha2VzRG9jdW1lbnRSZWZlcmVuY2UK
K29sIGludGVyZmFjZU5hbWU9SFRNTE9MaXN0RWxlbWVudCwgY29uc3RydWN0b3JUYWtlc0RvY3Vt
ZW50UmVmZXJlbmNlCitvcHRncm91cCBpbnRlcmZhY2VOYW1lPUhUTUxPcHRHcm91cEVsZW1lbnQs
IGdlbmVyYXRlVHlwZUhlbHBlcnMsIGNvbnN0cnVjdG9yVGFrZXNEb2N1bWVudFJlZmVyZW5jZQor
b3B0aW9uIGdlbmVyYXRlVHlwZUhlbHBlcnMsIGNvbnN0cnVjdG9yVGFrZXNEb2N1bWVudFJlZmVy
ZW5jZQorb3V0cHV0IGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudCwgY29uc3RydWN0b3JUYWtl
c0RvY3VtZW50UmVmZXJlbmNlCitwIGludGVyZmFjZU5hbWU9SFRNTFBhcmFncmFwaEVsZW1lbnQs
IGNvbnN0cnVjdG9yVGFrZXNEb2N1bWVudFJlZmVyZW5jZQorcGFyYW0gZ2VuZXJhdGVUeXBlSGVs
cGVycywgY29uc3RydWN0b3JUYWtlc0RvY3VtZW50UmVmZXJlbmNlCiBwbGFpbnRleHQgaW50ZXJm
YWNlTmFtZT1IVE1MRWxlbWVudAogcHJlIGNvbnN0cnVjdG9yVGFrZXNEb2N1bWVudFJlZmVyZW5j
ZQotcHJvZ3Jlc3MgaW50ZXJmYWNlTmFtZT1IVE1MUHJvZ3Jlc3NFbGVtZW50LCBjb25kaXRpb25h
bD1QUk9HUkVTU19FTEVNRU5ULCBnZW5lcmF0ZVR5cGVIZWxwZXJzCitwcm9ncmVzcyBpbnRlcmZh
Y2VOYW1lPUhUTUxQcm9ncmVzc0VsZW1lbnQsIGNvbmRpdGlvbmFsPVBST0dSRVNTX0VMRU1FTlQs
IGdlbmVyYXRlVHlwZUhlbHBlcnMsIGNvbnN0cnVjdG9yVGFrZXNEb2N1bWVudFJlZmVyZW5jZQog
cSBpbnRlcmZhY2VOYW1lPUhUTUxRdW90ZUVsZW1lbnQsIGNvbnN0cnVjdG9yVGFrZXNEb2N1bWVu
dFJlZmVyZW5jZQogcnAgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogcnQgaW50ZXJmYWNlTmFt
ZT1IVE1MRWxlbWVudAogcnVieSBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBzIGludGVyZmFj
ZU5hbWU9SFRNTEVsZW1lbnQKIHNhbXAgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotc2NyaXB0
IGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIsIGdlbmVyYXRlVHlwZUhlbHBlcnMKK3Nj
cmlwdCBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyLCBnZW5lcmF0ZVR5cGVIZWxwZXJz
LCBjb25zdHJ1Y3RvclRha2VzRG9jdW1lbnRSZWZlcmVuY2UKIHNlY3Rpb24gaW50ZXJmYWNlTmFt
ZT1IVE1MRWxlbWVudAotc2VsZWN0IGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudCwgZ2VuZXJh
dGVUeXBlSGVscGVycworc2VsZWN0IGNvbnN0cnVjdG9yTmVlZHNGb3JtRWxlbWVudCwgZ2VuZXJh
dGVUeXBlSGVscGVycywgY29uc3RydWN0b3JUYWtlc0RvY3VtZW50UmVmZXJlbmNlCiBzbWFsbCBp
bnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci1zb3VyY2Ugd3JhcHBlck9ubHlJZk1lZGlhSXNBdmFp
bGFibGUsIGNvbmRpdGlvbmFsPVZJREVPLCBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1zcGFuCitzb3Vy
Y2Ugd3JhcHBlck9ubHlJZk1lZGlhSXNBdmFpbGFibGUsIGNvbmRpdGlvbmFsPVZJREVPLCBnZW5l
cmF0ZVR5cGVIZWxwZXJzLCBjb25zdHJ1Y3RvclRha2VzRG9jdW1lbnRSZWZlcmVuY2UKK3NwYW4g
Y29uc3RydWN0b3JUYWtlc0RvY3VtZW50UmVmZXJlbmNlCiBzdHJpa2UgaW50ZXJmYWNlTmFtZT1I
VE1MRWxlbWVudAogc3Ryb25nIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKLXN0eWxlIGNvbnN0
cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIsIGdlbmVyYXRlVHlwZUhlbHBlcnMKK3N0eWxlIGNv
bnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIsIGdlbmVyYXRlVHlwZUhlbHBlcnMsIGNvbnN0
cnVjdG9yVGFrZXNEb2N1bWVudFJlZmVyZW5jZQogc3ViIGludGVyZmFjZU5hbWU9SFRNTEVsZW1l
bnQKLXN1bW1hcnkgaW50ZXJmYWNlTmFtZT1IVE1MU3VtbWFyeUVsZW1lbnQsIEpTSW50ZXJmYWNl
TmFtZT1IVE1MRWxlbWVudCwgY29uZGl0aW9uYWw9REVUQUlMU19FTEVNRU5UCitzdW1tYXJ5IGlu
dGVyZmFjZU5hbWU9SFRNTFN1bW1hcnlFbGVtZW50LCBKU0ludGVyZmFjZU5hbWU9SFRNTEVsZW1l
bnQsIGNvbmRpdGlvbmFsPURFVEFJTFNfRUxFTUVOVCwgY29uc3RydWN0b3JUYWtlc0RvY3VtZW50
UmVmZXJlbmNlCiBzdXAgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotdGFibGUgZ2VuZXJhdGVU
eXBlSGVscGVycwotdGJvZHkgaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVTZWN0aW9uRWxlbWVudAot
dGQgaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVDZWxsRWxlbWVudAotdGVtcGxhdGUgY29uZGl0aW9u
YWw9VEVNUExBVEVfRUxFTUVOVAotdGV4dGFyZWEgaW50ZXJmYWNlTmFtZT1IVE1MVGV4dEFyZWFF
bGVtZW50LCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQsIGdlbmVyYXRlVHlwZUhlbHBlcnMK
LXRmb290IGludGVyZmFjZU5hbWU9SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQKLXRoIGludGVyZmFj
ZU5hbWU9SFRNTFRhYmxlQ2VsbEVsZW1lbnQKLXRoZWFkIGludGVyZmFjZU5hbWU9SFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQKLXRpdGxlIGdlbmVyYXRlVHlwZUhlbHBlcnMKLXRyIGludGVyZmFjZU5h
bWU9SFRNTFRhYmxlUm93RWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVycwotdHJhY2sgd3JhcHBl
ck9ubHlJZk1lZGlhSXNBdmFpbGFibGUsIGNvbmRpdGlvbmFsPVZJREVPX1RSQUNLLCBnZW5lcmF0
ZVR5cGVIZWxwZXJzCit0YWJsZSBnZW5lcmF0ZVR5cGVIZWxwZXJzLCBjb25zdHJ1Y3RvclRha2Vz
RG9jdW1lbnRSZWZlcmVuY2UKK3Rib2R5IGludGVyZmFjZU5hbWU9SFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQsIGNvbnN0cnVjdG9yVGFrZXNEb2N1bWVudFJlZmVyZW5jZQordGQgaW50ZXJmYWNlTmFt
ZT1IVE1MVGFibGVDZWxsRWxlbWVudCwgY29uc3RydWN0b3JUYWtlc0RvY3VtZW50UmVmZXJlbmNl
Cit0ZW1wbGF0ZSBjb25kaXRpb25hbD1URU1QTEFURV9FTEVNRU5ULCBjb25zdHJ1Y3RvclRha2Vz
RG9jdW1lbnRSZWZlcmVuY2UKK3RleHRhcmVhIGludGVyZmFjZU5hbWU9SFRNTFRleHRBcmVhRWxl
bWVudCwgY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzLCBj
b25zdHJ1Y3RvclRha2VzRG9jdW1lbnRSZWZlcmVuY2UKK3Rmb290IGludGVyZmFjZU5hbWU9SFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQsIGNvbnN0cnVjdG9yVGFrZXNEb2N1bWVudFJlZmVyZW5jZQor
dGggaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVDZWxsRWxlbWVudCwgY29uc3RydWN0b3JUYWtlc0Rv
Y3VtZW50UmVmZXJlbmNlCit0aGVhZCBpbnRlcmZhY2VOYW1lPUhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50LCBjb25zdHJ1Y3RvclRha2VzRG9jdW1lbnRSZWZlcmVuY2UKK3RpdGxlIGdlbmVyYXRlVHlw
ZUhlbHBlcnMsIGNvbnN0cnVjdG9yVGFrZXNEb2N1bWVudFJlZmVyZW5jZQordHIgaW50ZXJmYWNl
TmFtZT1IVE1MVGFibGVSb3dFbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzLCBjb25zdHJ1Y3Rv
clRha2VzRG9jdW1lbnRSZWZlcmVuY2UKK3RyYWNrIHdyYXBwZXJPbmx5SWZNZWRpYUlzQXZhaWxh
YmxlLCBjb25kaXRpb25hbD1WSURFT19UUkFDSywgZ2VuZXJhdGVUeXBlSGVscGVycywgY29uc3Ry
dWN0b3JUYWtlc0RvY3VtZW50UmVmZXJlbmNlCiB0dCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50
CiB1IGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKLXVsIGludGVyZmFjZU5hbWU9SFRNTFVMaXN0
RWxlbWVudAordWwgaW50ZXJmYWNlTmFtZT1IVE1MVUxpc3RFbGVtZW50LCBjb25zdHJ1Y3RvclRh
a2VzRG9jdW1lbnRSZWZlcmVuY2UKIHZhciBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci12aWRl
byB3cmFwcGVyT25seUlmTWVkaWFJc0F2YWlsYWJsZSwgY29uZGl0aW9uYWw9VklERU8sIGNvbnN0
cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIsIGdlbmVyYXRlVHlwZUhlbHBlcnMKK3ZpZGVvIHdy
YXBwZXJPbmx5SWZNZWRpYUlzQXZhaWxhYmxlLCBjb25kaXRpb25hbD1WSURFTywgY29uc3RydWN0
b3JOZWVkc0NyZWF0ZWRCeVBhcnNlciwgZ2VuZXJhdGVUeXBlSGVscGVycywgY29uc3RydWN0b3JU
YWtlc0RvY3VtZW50UmVmZXJlbmNlCiB3YnIgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogeG1w
IGludGVyZmFjZU5hbWU9SFRNTFByZUVsZW1lbnQsIGNvbnN0cnVjdG9yVGFrZXNEb2N1bWVudFJl
ZmVyZW5jZQogbm9zY3JpcHQgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudApJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU3ODgp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00NCw4ICs0NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFt
ZXNwYWNlIEhUTUxOYW1lczsKIAotaW5saW5lIEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OkhUTUxUZW1w
bGF0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3Vt
ZW50KQotICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCitpbmxpbmUgSFRNTFRl
bXBsYXRlRWxlbWVudDo6SFRNTFRlbXBsYXRlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCAm
ZG9jdW1lbnQpCiB7CiB9CiAKQEAgLTUzLDcgKzUzLDcgQEAgSFRNTFRlbXBsYXRlRWxlbWVudDo6
fkhUTUxUZW1wbGF0ZUVsZW1lbgogewogfQogCi1QYXNzUmVmUHRyPEhUTUxUZW1wbGF0ZUVsZW1l
bnQ+IEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxUZW1wbGF0ZUVsZW1lbnQ+
IEhUTUxUZW1wbGF0ZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MVGVt
cGxhdGVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQw
LDE3ICs0MCwxNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxUZW1wbGF0ZUVs
ZW1lbnQgRklOQUwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEhUTUxUZW1wbGF0ZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MVGVtcGxhdGVFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAgICAgdmlydHVhbCB+
SFRNTFRlbXBsYXRlRWxlbWVudCgpOwogCiAgICAgRG9jdW1lbnRGcmFnbWVudCogY29udGVudCgp
IGNvbnN0OwogCiBwcml2YXRlOgorICAgIEhUTUxUZW1wbGF0ZUVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CisKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Tm9kZT4gY2xv
bmVOb2RlKGJvb2wgZGVlcCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZE1vdmVUb05l
d0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkgT1ZFUlJJREU7CiAKLSAgICBIVE1MVGVt
cGxhdGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwotCiAgICAgbXV0
YWJsZSBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gbV9jb250ZW50OwogfTsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU3
ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC04Nyw3ICs4Nyw3IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgdXBwZXJC
b3VuZEZvckxlbmcKICAgICByZXR1cm4gdGV4dC5sZW5ndGgoKSArIG51bWJlck9mTGluZUJyZWFr
czsKIH0KIAotSFRNTFRleHRBcmVhRWxlbWVudDo6SFRNTFRleHRBcmVhRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVu
dCogZm9ybSkKK0hUTUxUZXh0QXJlYUVsZW1lbnQ6OkhUTUxUZXh0QXJlYUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1l
bnQqIGZvcm0pCiAgICAgOiBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCwgZm9ybSkKICAgICAsIG1fcm93cyhkZWZhdWx0Um93cykKICAgICAsIG1fY29scyhkZWZh
dWx0Q29scykKQEAgLTEwMCw3ICsxMDAsNyBAQCBIVE1MVGV4dEFyZWFFbGVtZW50OjpIVE1MVGV4
dEFyZWFFbGVtZW50CiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVl
KTsKIH0KIAotUGFzc1JlZlB0cjxIVE1MVGV4dEFyZWFFbGVtZW50PiBIVE1MVGV4dEFyZWFFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3Vt
ZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0pCitQYXNzUmVmUHRyPEhUTUxUZXh0QXJlYUVsZW1l
bnQ+IEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKIHsKICAgICBS
ZWZQdHI8SFRNTFRleHRBcmVhRWxlbWVudD4gdGV4dEFyZWEgPSBhZG9wdFJlZihuZXcgSFRNTFRl
eHRBcmVhRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSkpOwogICAgIHRleHRBcmVhLT5l
bnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZXh0QXJlYUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZXh0QXJlYUVsZW1lbnQuaAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcg
QEAgY2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsKIAogY2xhc3MgSFRNTFRleHRBcmVhRWxlbWVudCBG
SU5BTCA6IHB1YmxpYyBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8SFRNTFRleHRBcmVhRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCopOworICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqKTsKIAogICAgIGludCBjb2xzKCkgY29uc3QgeyBy
ZXR1cm4gbV9jb2xzOyB9CiAgICAgaW50IHJvd3MoKSBjb25zdCB7IHJldHVybiBtX3Jvd3M7IH0K
QEAgLTYxLDcgKzYxLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Um93cyhpbnQpOwogCiBwcml2
YXRlOgotICAgIEhUTUxUZXh0QXJlYUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50KiwgSFRNTEZvcm1FbGVtZW50Kik7CisgICAgSFRNTFRleHRBcmVhRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqKTsKIAogICAgIGVudW0g
V3JhcE1ldGhvZCB7IE5vV3JhcCwgU29mdFdyYXAsIEhhcmRXcmFwIH07CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCShy
ZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIsOCArNTIsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogdXNpbmcgbmFtZXNwYWNlIHN0
ZDsKIAotSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2MsIEhUTUxGb3Jt
RWxlbWVudCogZm9ybSkKLSAgICA6IEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUodGFn
TmFtZSwgZG9jLCBmb3JtKQorSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OkhUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBk
b2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQorICAgIDogSFRNTEZvcm1Db250cm9sRWxl
bWVudFdpdGhTdGF0ZSh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSkKICAgICAsIG1fbGFzdENoYW5n
ZVdhc1VzZXJFZGl0KGZhbHNlKQogICAgICwgbV9jYWNoZWRTZWxlY3Rpb25TdGFydCgtMSkKICAg
ICAsIG1fY2FjaGVkU2VsZWN0aW9uRW5kKC0xKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaAkocmV2aXNpb24gMTU1Nzg4KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC04OCw3ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFRleHRBc09mTGFz
dEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoY29uc3QgU3RyaW5nJiB0ZXh0KSB7IG1fdGV4dEFzT2ZM
YXN0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudCA9IHRleHQ7IH0KIAogcHJvdGVjdGVkOgotICAgIEhU
TUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCos
IEhUTUxGb3JtRWxlbWVudCopOworICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVudCopOwogICAgIGJvb2wg
aXNQbGFjZWhvbGRlckVtcHR5KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVBsYWNl
aG9sZGVyVGV4dCgpID0gMDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGl0bGVF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRsZUVs
ZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
aXRsZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxMyArMzYsMTMgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1pbmxpbmUgSFRN
TFRpdGxlRWxlbWVudDo6SFRNTFRpdGxlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkKK2lubGluZSBIVE1MVGl0bGVFbGVtZW50OjpIVE1MVGl0bGVFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IEhUTUxFbGVt
ZW50KHRhZ05hbWUsICZkb2N1bWVudCkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZSh0aXRsZVRh
ZykpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxUaXRsZUVsZW1lbnQ+IEhUTUxUaXRsZUVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQp
CitQYXNzUmVmUHRyPEhUTUxUaXRsZUVsZW1lbnQ+IEhUTUxUaXRsZUVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MVGl0bGVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7
CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaAkocmV2aXNpb24g
MTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGl0bGVFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBI
VE1MVGl0bGVFbGVtZW50IEZJTkFMIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MVGl0bGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFRpdGxlRWxl
bWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgU3Ry
aW5nIHRleHQoKSBjb25zdDsKICAgICB2b2lkIHNldFRleHQoY29uc3QgU3RyaW5nJik7CkBAIC0z
Nyw3ICszNyw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmdXaXRoRGlyZWN0aW9uIHRleHRXaXRoRGly
ZWN0aW9uKCk7CiAKIHByaXZhdGU6Ci0gICAgSFRNTFRpdGxlRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBIVE1MVGl0bGVFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25S
ZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlKikgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUqKSBPVkVSUklERTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1Nzg4KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTIsOCArNTIsOCBAQCBzdGF0aWMgU3RyaW5nIHVybEZvckxvZ2dpbmdUcmFjayhjb25zdCBL
CiB9CiAjZW5kaWYKICAgICAKLWlubGluZSBIVE1MVHJhY2tFbGVtZW50OjpIVE1MVHJhY2tFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKLSAg
ICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQoraW5saW5lIEhUTUxUcmFja0VsZW1l
bnQ6OkhUTUxUcmFja0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmIGRvY3VtZW50KQorICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgJmRvY3VtZW50KQogICAg
ICwgbV9sb2FkVGltZXIodGhpcywgJkhUTUxUcmFja0VsZW1lbnQ6OmxvYWRUaW1lckZpcmVkKQog
ewogICAgIExPRyhNZWRpYSwgIkhUTUxUcmFja0VsZW1lbnQ6OkhUTUxUcmFja0VsZW1lbnQgLSAl
cCIsIHRoaXMpOwpAQCAtNjYsNyArNjYsNyBAQCBIVE1MVHJhY2tFbGVtZW50Ojp+SFRNTFRyYWNr
RWxlbWVudCgpCiAgICAgICAgIG1fdHJhY2stPmNsZWFyQ2xpZW50KCk7CiB9CiAKLVBhc3NSZWZQ
dHI8SFRNTFRyYWNrRWxlbWVudD4gSFRNTFRyYWNrRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8SFRNTFRy
YWNrRWxlbWVudD4gSFRNTFRyYWNrRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEhUTUxUcmFja0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyAr
MzcsNyBAQCBjbGFzcyBIVE1MTWVkaWFFbGVtZW50OwogCiBjbGFzcyBIVE1MVHJhY2tFbGVtZW50
IEZJTkFMIDogcHVibGljIEhUTUxFbGVtZW50LCBwdWJsaWMgVGV4dFRyYWNrQ2xpZW50IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MVHJhY2tFbGVtZW50PiBjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRN
TFRyYWNrRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwog
CiAgICAgS1VSTCBzcmMoKSBjb25zdDsKICAgICB2b2lkIHNldFNyYyhjb25zdCBTdHJpbmcmKTsK
QEAgLTY4LDcgKzY4LDcgQEAgcHVibGljOgogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFF
bGVtZW50Q3Jvc3NPcmlnaW5BdHRyaWJ1dGUoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBIVE1M
VHJhY2tFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIEhUTUxU
cmFja0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAgICAgdmlydHVh
bCB+SFRNTFRyYWNrRWxlbWVudCgpOwogCiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFVMaXN0RWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1
Nzg4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsMTggKzMxLDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcg
bmFtZXNwYWNlIEhUTUxOYW1lczsKIAotSFRNTFVMaXN0RWxlbWVudDo6SFRNTFVMaXN0RWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCi0gICAg
OiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKK0hUTUxVTGlzdEVsZW1lbnQ6OkhUTUxV
TGlzdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3Vt
ZW50KQorICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgJmRvY3VtZW50KQogewogICAgIEFTU0VS
VChoYXNUYWdOYW1lKHVsVGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTFVMaXN0RWxlbWVudD4g
SFRNTFVMaXN0RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8
SFRNTFVMaXN0RWxlbWVudD4gSFRNTFVMaXN0RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1
bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxVTGlzdEVsZW1lbnQodWxUYWcs
IGRvY3VtZW50KSk7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTFVMaXN0RWxlbWVudD4gSFRNTFVMaXN0
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBk
b2N1bWVudCkKK1Bhc3NSZWZQdHI8SFRNTFVMaXN0RWxlbWVudD4gSFRNTFVMaXN0RWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkK
IHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxVTGlzdEVsZW1lbnQodGFnTmFtZSwgZG9j
dW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFVMaXN0RWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFVMaXN0RWxlbWVudC5oCShy
ZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxVTGlzdEVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMjksMTEgKzI5LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgSFRNTFVMaXN0RWxlbWVudCBGSU5BTCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFVMaXN0RWxlbWVudD4gY3JlYXRlKERv
Y3VtZW50Kik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFVMaXN0RWxlbWVudD4gY3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEhUTUxVTGlzdEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEhUTUxVTGlzdEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKIAogcHJpdmF0ZToKLSAgICBIVE1MVUxpc3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCopOworICAgIEhUTUxVTGlzdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0KikgT1ZFUlJJ
REU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAJKHJldmlz
aW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ3LDE2ICs0NywxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLWlubGluZSBIVE1MVmlkZW9FbGVtZW50OjpI
VE1MVmlkZW9FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBk
b2N1bWVudCwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCitpbmxpbmUgSFRNTFZpZGVvRWxlbWVudDo6
SFRNTFZpZGVvRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYg
ZG9jdW1lbnQsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQogICAgIDogSFRNTE1lZGlhRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCwgY3JlYXRlZEJ5UGFyc2VyKQogewogICAgIEFTU0VSVChoYXNUYWdO
YW1lKHZpZGVvVGFnKSk7CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7
Ci0gICAgaWYgKGRvY3VtZW50LT5zZXR0aW5ncygpKQotICAgICAgICBtX2RlZmF1bHRQb3N0ZXJV
UkwgPSBkb2N1bWVudC0+c2V0dGluZ3MoKS0+ZGVmYXVsdFZpZGVvUG9zdGVyVVJMKCk7CisgICAg
aWYgKGRvY3VtZW50LnNldHRpbmdzKCkpCisgICAgICAgIG1fZGVmYXVsdFBvc3RlclVSTCA9IGRv
Y3VtZW50LnNldHRpbmdzKCktPmRlZmF1bHRWaWRlb1Bvc3RlclVSTCgpOwogfQogCi1QYXNzUmVm
UHRyPEhUTUxWaWRlb0VsZW1lbnQ+IEhUTUxWaWRlb0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgY3JlYXRlZEJ5UGFy
c2VyKQorUGFzc1JlZlB0cjxIVE1MVmlkZW9FbGVtZW50PiBIVE1MVmlkZW9FbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBib29s
IGNyZWF0ZWRCeVBhcnNlcikKIHsKICAgICBSZWZQdHI8SFRNTFZpZGVvRWxlbWVudD4gdmlkZW9F
bGVtZW50KGFkb3B0UmVmKG5ldyBIVE1MVmlkZW9FbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBj
cmVhdGVkQnlQYXJzZXIpKSk7CiAgICAgdmlkZW9FbGVtZW50LT5zdXNwZW5kSWZOZWVkZWQoKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCShyZXZpc2lvbiAxNTU3
ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBIVE1MSW1hZ2VMb2FkZXI7CiAKIGNsYXNzIEhU
TUxWaWRlb0VsZW1lbnQgRklOQUwgOiBwdWJsaWMgSFRNTE1lZGlhRWxlbWVudCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFZpZGVvRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIGJvb2wpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhU
TUxWaWRlb0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBi
b29sKTsKIAogICAgIHVuc2lnbmVkIHdpZHRoKCkgY29uc3Q7CiAgICAgdW5zaWduZWQgaGVpZ2h0
KCkgY29uc3Q7CkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICBLVVJMIHBvc3RlckltYWdl
VVJMKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgSFRNTFZpZGVvRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqLCBib29sKTsKKyAgICBIVE1MVmlkZW9FbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wpOwogCiAgICAgdmlydHVhbCBib29sIHJl
bmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKTsKICNpZiAhRU5BQkxFKFBMVUdJTl9Q
Uk9YWV9GT1JfVklERU8pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWV3U291cmNl
RG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZXdT
b3VyY2VEb2N1bWVudC5jcHAJKHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgwLDkgKzgw
LDkgQEAgdm9pZCBIVE1MVmlld1NvdXJjZURvY3VtZW50OjpjcmVhdGVDb250YQogICAgIGRpdi0+
c2V0QXR0cmlidXRlKGNsYXNzQXR0ciwgIndlYmtpdC1saW5lLWd1dHRlci1iYWNrZHJvcCIpOwog
ICAgIGJvZHktPnBhcnNlckFwcGVuZENoaWxkKGRpdik7CiAKLSAgICBSZWZQdHI8SFRNTFRhYmxl
RWxlbWVudD4gdGFibGUgPSBIVE1MVGFibGVFbGVtZW50OjpjcmVhdGUodGhpcyk7CisgICAgUmVm
UHRyPEhUTUxUYWJsZUVsZW1lbnQ+IHRhYmxlID0gSFRNTFRhYmxlRWxlbWVudDo6Y3JlYXRlKCp0
aGlzKTsKICAgICBib2R5LT5wYXJzZXJBcHBlbmRDaGlsZCh0YWJsZSk7Ci0gICAgbV90Ym9keSA9
IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OjpjcmVhdGUodGJvZHlUYWcsIHRoaXMpOworICAgIG1f
dGJvZHkgPSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDo6Y3JlYXRlKHRib2R5VGFnLCAqdGhpcyk7
CiAgICAgdGFibGUtPnBhcnNlckFwcGVuZENoaWxkKG1fdGJvZHkpOwogICAgIG1fY3VycmVudCA9
IG1fdGJvZHk7CiAKQEAgLTE5MSwxOCArMTkxLDE4IEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gSFRN
TFZpZXdTb3VyY2VEb2N1bWUKIHZvaWQgSFRNTFZpZXdTb3VyY2VEb2N1bWVudDo6YWRkTGluZShj
b25zdCBBdG9taWNTdHJpbmcmIGNsYXNzTmFtZSkKIHsKICAgICAvLyBDcmVhdGUgYSB0YWJsZSBy
b3cuCi0gICAgUmVmUHRyPEhUTUxUYWJsZVJvd0VsZW1lbnQ+IHRyb3cgPSBIVE1MVGFibGVSb3dF
bGVtZW50OjpjcmVhdGUodGhpcyk7CisgICAgUmVmUHRyPEhUTUxUYWJsZVJvd0VsZW1lbnQ+IHRy
b3cgPSBIVE1MVGFibGVSb3dFbGVtZW50OjpjcmVhdGUoKnRoaXMpOwogICAgIG1fdGJvZHktPnBh
cnNlckFwcGVuZENoaWxkKHRyb3cpOwogICAgIFN0eWxlOjpyZWF0dGFjaFJlbmRlclRyZWUoKnRy
b3cpOwogCiAgICAgLy8gQ3JlYXRlIGEgY2VsbCB0aGF0IHdpbGwgaG9sZCB0aGUgbGluZSBudW1i
ZXIgKGl0IGlzIGdlbmVyYXRlZCBpbiB0aGUgc3R5bGVzaGVldCB1c2luZyBjb3VudGVycykuCi0g
ICAgUmVmUHRyPEhUTUxUYWJsZUNlbGxFbGVtZW50PiB0ZCA9IEhUTUxUYWJsZUNlbGxFbGVtZW50
OjpjcmVhdGUodGRUYWcsIHRoaXMpOworICAgIFJlZlB0cjxIVE1MVGFibGVDZWxsRWxlbWVudD4g
dGQgPSBIVE1MVGFibGVDZWxsRWxlbWVudDo6Y3JlYXRlKHRkVGFnLCAqdGhpcyk7CiAgICAgdGQt
PnNldEF0dHJpYnV0ZShjbGFzc0F0dHIsICJ3ZWJraXQtbGluZS1udW1iZXIiKTsKICAgICB0cm93
LT5wYXJzZXJBcHBlbmRDaGlsZCh0ZCk7CiAgICAgU3R5bGU6OmF0dGFjaFJlbmRlclRyZWUoKnRk
KTsKIAogICAgIC8vIENyZWF0ZSBhIHNlY29uZCBjZWxsIGZvciB0aGUgbGluZSBjb250ZW50cwot
ICAgIHRkID0gSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OmNyZWF0ZSh0ZFRhZywgdGhpcyk7CisgICAg
dGQgPSBIVE1MVGFibGVDZWxsRWxlbWVudDo6Y3JlYXRlKHRkVGFnLCAqdGhpcyk7CiAgICAgdGQt
PnNldEF0dHJpYnV0ZShjbGFzc0F0dHIsICJ3ZWJraXQtbGluZS1jb250ZW50Iik7CiAgICAgdHJv
dy0+cGFyc2VyQXBwZW5kQ2hpbGQodGQpOwogICAgIFN0eWxlOjphdHRhY2hSZW5kZXJUcmVlKCp0
ZCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0xhYmVsYWJsZUVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvTGFiZWxhYmxlRWxlbWVudC5jcHAJKHJldmlz
aW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvTGFiZWxhYmxlRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMxLDggKzMxLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1MYWJlbGFibGVFbGVtZW50OjpMYWJlbGFibGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKLSAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KQorTGFiZWxhYmxlRWxlbWVudDo6TGFiZWxhYmxlRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBIVE1MRWxlbWVu
dCh0YWdOYW1lLCAmZG9jdW1lbnQpCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
TGFiZWxhYmxlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvTGFi
ZWxhYmxlRWxlbWVudC5oCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L0xhYmVsYWJsZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRMYWJlbHMoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgTGFiZWxhYmxlRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOworICAgIExhYmVsYWJsZUVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFs
IGJvb2wgaXNMYWJlbGFibGUoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiB0cnVlOyB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVj
dGlvblNpdGUuY3BwCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4MCw3ICsz
ODAsNyBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnREb2N0eXBlCiB2b2lkIEhU
TUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRDb21tZW50KEF0b21pY0hUTUxUb2tlbiogdG9rZW4p
CiB7CiAgICAgQVNTRVJUKHRva2VuLT50eXBlKCkgPT0gSFRNTFRva2VuOjpDb21tZW50KTsKLSAg
ICBhdHRhY2hMYXRlcihjdXJyZW50Tm9kZSgpLCBDb21tZW50OjpjcmVhdGUob3duZXJEb2N1bWVu
dEZvckN1cnJlbnROb2RlKCksIHRva2VuLT5jb21tZW50KCkpKTsKKyAgICBhdHRhY2hMYXRlcihj
dXJyZW50Tm9kZSgpLCBDb21tZW50OjpjcmVhdGUoJm93bmVyRG9jdW1lbnRGb3JDdXJyZW50Tm9k
ZSgpLCB0b2tlbi0+Y29tbWVudCgpKSk7CiB9CiAKIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6
Omluc2VydENvbW1lbnRPbkRvY3VtZW50KEF0b21pY0hUTUxUb2tlbiogdG9rZW4pCkBAIC01MzAs
MTggKzUzMCwxOCBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRUZXh0Tm9kCiBQ
YXNzUmVmUHRyPEVsZW1lbnQ+IEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpjcmVhdGVFbGVtZW50KEF0
b21pY0hUTUxUb2tlbiogdG9rZW4sIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJKQog
ewogICAgIFF1YWxpZmllZE5hbWUgdGFnTmFtZShudWxsQXRvbSwgdG9rZW4tPm5hbWUoKSwgbmFt
ZXNwYWNlVVJJKTsKLSAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IG93bmVyRG9jdW1lbnRG
b3JDdXJyZW50Tm9kZSgpLT5jcmVhdGVFbGVtZW50KHRhZ05hbWUsIHRydWUpOworICAgIFJlZlB0
cjxFbGVtZW50PiBlbGVtZW50ID0gb3duZXJEb2N1bWVudEZvckN1cnJlbnROb2RlKCkuY3JlYXRl
RWxlbWVudCh0YWdOYW1lLCB0cnVlKTsKICAgICBzZXRBdHRyaWJ1dGVzKGVsZW1lbnQuZ2V0KCks
IHRva2VuLCBtX3BhcnNlckNvbnRlbnRQb2xpY3kpOwogICAgIHJldHVybiBlbGVtZW50LnJlbGVh
c2UoKTsKIH0KIAotaW5saW5lIERvY3VtZW50KiBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6b3duZXJE
b2N1bWVudEZvckN1cnJlbnROb2RlKCkKK2lubGluZSBEb2N1bWVudCYgSFRNTENvbnN0cnVjdGlv
blNpdGU6Om93bmVyRG9jdW1lbnRGb3JDdXJyZW50Tm9kZSgpCiB7CiAjaWYgRU5BQkxFKFRFTVBM
QVRFX0VMRU1FTlQpCiAgICAgaWYgKGN1cnJlbnROb2RlKCktPmhhc1RhZ05hbWUodGVtcGxhdGVU
YWcpKQotICAgICAgICByZXR1cm4gJnRvSFRNTFRlbXBsYXRlRWxlbWVudChjdXJyZW50RWxlbWVu
dCgpKS0+Y29udGVudCgpLT5kb2N1bWVudCgpOworICAgICAgICByZXR1cm4gdG9IVE1MVGVtcGxh
dGVFbGVtZW50KGN1cnJlbnRFbGVtZW50KCkpLT5jb250ZW50KCktPmRvY3VtZW50KCk7CiAjZW5k
aWYKLSAgICByZXR1cm4gJmN1cnJlbnROb2RlKCktPmRvY3VtZW50KCk7CisgICAgcmV0dXJuIGN1
cnJlbnROb2RlKCktPmRvY3VtZW50KCk7CiB9CiAKIFBhc3NSZWZQdHI8RWxlbWVudD4gSFRNTENv
bnN0cnVjdGlvblNpdGU6OmNyZWF0ZUhUTUxFbGVtZW50KEF0b21pY0hUTUxUb2tlbiogdG9rZW4p
CkBAIC01NTAsNyArNTUwLDcgQEAgUGFzc1JlZlB0cjxFbGVtZW50PiBIVE1MQ29uc3RydWN0aW9u
U2l0ZQogICAgIC8vIEZJWE1FOiBUaGlzIGNhbid0IHVzZSBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6
Y3JlYXRlRWxlbWVudCBiZWNhdXNlIHdlCiAgICAgLy8gaGF2ZSB0byBwYXNzIHRoZSBjdXJyZW50
IGZvcm0gZWxlbWVudC4gIFdlIHNob3VsZCByZXdvcmsgZm9ybSBhc3NvY2lhdGlvbgogICAgIC8v
IHRvIG9jY3VyIGFmdGVyIGNvbnN0cnVjdGlvbiB0byBhbGxvdyBiZXR0ZXIgY29kZSBzaGFyaW5n
IGhlcmUuCi0gICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBIVE1MRWxlbWVudEZhY3Rvcnk6
OmNyZWF0ZUhUTUxFbGVtZW50KHRhZ05hbWUsIG93bmVyRG9jdW1lbnRGb3JDdXJyZW50Tm9kZSgp
LCBmb3JtKCksIHRydWUpOworICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gSFRNTEVsZW1l
bnRGYWN0b3J5OjpjcmVhdGVIVE1MRWxlbWVudCh0YWdOYW1lLCAmb3duZXJEb2N1bWVudEZvckN1
cnJlbnROb2RlKCksIGZvcm0oKSwgdHJ1ZSk7CiAgICAgc2V0QXR0cmlidXRlcyhlbGVtZW50Lmdl
dCgpLCB0b2tlbiwgbV9wYXJzZXJDb250ZW50UG9saWN5KTsKICAgICBBU1NFUlQoZWxlbWVudC0+
aXNIVE1MRWxlbWVudCgpKTsKICAgICByZXR1cm4gZWxlbWVudC5yZWxlYXNlKCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmgJ
KHJldmlzaW9uIDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25z
dHJ1Y3Rpb25TaXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTExOCw3ICsxMTgsNyBAQCBwdWJsaWM6
CiAgICAgQ29udGFpbmVyTm9kZSogY3VycmVudE5vZGUoKSBjb25zdCB7IHJldHVybiBtX29wZW5F
bGVtZW50cy50b3BOb2RlKCk7IH0KICAgICBIVE1MU3RhY2tJdGVtKiBjdXJyZW50U3RhY2tJdGVt
KCkgY29uc3QgeyByZXR1cm4gbV9vcGVuRWxlbWVudHMudG9wU3RhY2tJdGVtKCk7IH0KICAgICBI
VE1MU3RhY2tJdGVtKiBvbmVCZWxvd1RvcCgpIGNvbnN0IHsgcmV0dXJuIG1fb3BlbkVsZW1lbnRz
Lm9uZUJlbG93VG9wKCk7IH0KLSAgICBEb2N1bWVudCogb3duZXJEb2N1bWVudEZvckN1cnJlbnRO
b2RlKCk7CisgICAgRG9jdW1lbnQmIG93bmVyRG9jdW1lbnRGb3JDdXJyZW50Tm9kZSgpOwogICAg
IEhUTUxFbGVtZW50U3RhY2sqIG9wZW5FbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuICZtX29wZW5F
bGVtZW50czsgfQogICAgIEhUTUxGb3JtYXR0aW5nRWxlbWVudExpc3QqIGFjdGl2ZUZvcm1hdHRp
bmdFbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuICZtX2FjdGl2ZUZvcm1hdHRpbmdFbGVtZW50czsg
fQogICAgIGJvb2wgY3VycmVudElzUm9vdE5vZGUoKSB7IHJldHVybiBtX29wZW5FbGVtZW50cy50
b3BOb2RlKCkgPT0gbV9vcGVuRWxlbWVudHMucm9vdE5vZGUoKTsgfQpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudFR5cGVzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50VHlwZXMu
Y3BwCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50VHlwZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsMjMgKzExMSwy
MyBAQCB2b2lkIE1lZGlhQ29udHJvbEVsZW1lbnQ6OnNldERpc3BsYXlUeXBlCiAKIC8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotTWVkaWFDb250cm9sRGl2RWxlbWVudDo6TWVkaWFD
b250cm9sRGl2RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIE1lZGlhQ29udHJvbEVsZW1lbnRU
eXBlIGRpc3BsYXlUeXBlKQotICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFnLCAqZG9jdW1lbnQp
CitNZWRpYUNvbnRyb2xEaXZFbGVtZW50OjpNZWRpYUNvbnRyb2xEaXZFbGVtZW50KERvY3VtZW50
JiBkb2N1bWVudCwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgZGlzcGxheVR5cGUpCisgICAgOiBI
VE1MRGl2RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQogICAgICwgTWVkaWFDb250cm9sRWxlbWVu
dChkaXNwbGF5VHlwZSwgdGhpcykKIHsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogCi1NZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6Ok1lZGlhQ29udHJvbElucHV0RWxlbWVu
dChEb2N1bWVudCogZG9jdW1lbnQsIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIGRpc3BsYXlUeXBl
KQotICAgIDogSFRNTElucHV0RWxlbWVudChpbnB1dFRhZywgKmRvY3VtZW50LCAwLCBmYWxzZSkK
K01lZGlhQ29udHJvbElucHV0RWxlbWVudDo6TWVkaWFDb250cm9sSW5wdXRFbGVtZW50KERvY3Vt
ZW50JiBkb2N1bWVudCwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgZGlzcGxheVR5cGUpCisgICAg
OiBIVE1MSW5wdXRFbGVtZW50KGlucHV0VGFnLCBkb2N1bWVudCwgMCwgZmFsc2UpCiAgICAgLCBN
ZWRpYUNvbnRyb2xFbGVtZW50KGRpc3BsYXlUeXBlLCB0aGlzKQogewogfQogCiAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLU1lZGlhQ29udHJvbFRpbWVEaXNwbGF5RWxlbWVudDo6
TWVkaWFDb250cm9sVGltZURpc3BsYXlFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgTWVkaWFD
b250cm9sRWxlbWVudFR5cGUgZGlzcGxheVR5cGUpCitNZWRpYUNvbnRyb2xUaW1lRGlzcGxheUVs
ZW1lbnQ6Ok1lZGlhQ29udHJvbFRpbWVEaXNwbGF5RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQs
IE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIGRpc3BsYXlUeXBlKQogICAgIDogTWVkaWFDb250cm9s
RGl2RWxlbWVudChkb2N1bWVudCwgZGlzcGxheVR5cGUpCiAgICAgLCBtX2N1cnJlbnRWYWx1ZSgw
KQogewpAQCAtMTQwLDcgKzE0MCw3IEBAIHZvaWQgTWVkaWFDb250cm9sVGltZURpc3BsYXlFbGVt
ZW50OjpzZXQKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1NZWRpYUNvbnRy
b2xNdXRlQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sTXV0ZUJ1dHRvbkVsZW1lbnQoRG9jdW1l
bnQqIGRvY3VtZW50LCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBkaXNwbGF5VHlwZSkKK01lZGlh
Q29udHJvbE11dGVCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xNdXRlQnV0dG9uRWxlbWVudChE
b2N1bWVudCYgZG9jdW1lbnQsIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIGRpc3BsYXlUeXBlKQog
ICAgIDogTWVkaWFDb250cm9sSW5wdXRFbGVtZW50KGRvY3VtZW50LCBkaXNwbGF5VHlwZSkKIHsK
IH0KQEAgLTE2Nyw3ICsxNjcsNyBAQCB2b2lkIE1lZGlhQ29udHJvbE11dGVCdXR0b25FbGVtZW50
Ojp1cGRhCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotTWVkaWFDb250cm9s
U2Vla0J1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbFNlZWtCdXR0b25FbGVtZW50KERvY3VtZW50
KiBkb2N1bWVudCwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgZGlzcGxheVR5cGUpCitNZWRpYUNv
bnRyb2xTZWVrQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sU2Vla0J1dHRvbkVsZW1lbnQoRG9j
dW1lbnQmIGRvY3VtZW50LCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBkaXNwbGF5VHlwZSkKICAg
ICA6IE1lZGlhQ29udHJvbElucHV0RWxlbWVudChkb2N1bWVudCwgZGlzcGxheVR5cGUpCiAgICAg
LCBtX2FjdGlvbk9uU3RvcChOb3RoaW5nKQogICAgICwgbV9zZWVrVHlwZShTa2lwKQpAQCAtMjQ3
LDcgKzI0Nyw3IEBAIHZvaWQgTWVkaWFDb250cm9sU2Vla0J1dHRvbkVsZW1lbnQ6OnNlZWsKIAog
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1NZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJFbGVtZW50OjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50KERvY3VtZW50KiBkb2N1
bWVudCkKK01lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFZvbHVt
ZVNsaWRlckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogTWVkaWFDb250cm9sSW5w
dXRFbGVtZW50KGRvY3VtZW50LCBNZWRpYVZvbHVtZVNsaWRlcikKICAgICAsIG1fY2xlYXJNdXRl
ZE9uVXNlckludGVyYWN0aW9uKGZhbHNlKQogewpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sRWxlbWVudFR5cGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudFR5cGVzLmgJKHJldmlzaW9uIDE1
NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRU
eXBlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsNyArMTExLDcgQEAgcHJpdmF0ZToKIGNsYXNz
IE1lZGlhQ29udHJvbERpdkVsZW1lbnQgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQsIHB1YmxpYyBN
ZWRpYUNvbnRyb2xFbGVtZW50IHsKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgaXNNZWRp
YUNvbnRyb2xFbGVtZW50KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gTWVkaWFDb250cm9sRWxl
bWVudDo6aXNNZWRpYUNvbnRyb2xFbGVtZW50KCk7IH0KLSAgICBleHBsaWNpdCBNZWRpYUNvbnRy
b2xEaXZFbGVtZW50KERvY3VtZW50KiwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUpOworICAgIGV4
cGxpY2l0IE1lZGlhQ29udHJvbERpdkVsZW1lbnQoRG9jdW1lbnQmLCBNZWRpYUNvbnRyb2xFbGVt
ZW50VHlwZSk7CiB9OwogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMTks
NyArMTE5LDcgQEAgcHJvdGVjdGVkOgogY2xhc3MgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50IDog
cHVibGljIEhUTUxJbnB1dEVsZW1lbnQsIHB1YmxpYyBNZWRpYUNvbnRyb2xFbGVtZW50IHsKIHBy
b3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgaXNNZWRpYUNvbnRyb2xFbGVtZW50KCkgY29uc3Qg
T1ZFUlJJREUgeyByZXR1cm4gTWVkaWFDb250cm9sRWxlbWVudDo6aXNNZWRpYUNvbnRyb2xFbGVt
ZW50KCk7IH0KLSAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQoRG9jdW1lbnQq
LCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSk7CisgICAgZXhwbGljaXQgTWVkaWFDb250cm9sSW5w
dXRFbGVtZW50KERvY3VtZW50JiwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUpOwogCiBwcml2YXRl
OgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVEaXNwbGF5VHlwZSgpIHsgfQpAQCAtMTMzLDcgKzEz
Myw3IEBAIHB1YmxpYzoKICAgICBkb3VibGUgY3VycmVudFZhbHVlKCkgY29uc3QgeyByZXR1cm4g
bV9jdXJyZW50VmFsdWU7IH0KIAogcHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IE1lZGlhQ29udHJv
bFRpbWVEaXNwbGF5RWxlbWVudChEb2N1bWVudCosIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlKTsK
KyAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xUaW1lRGlzcGxheUVsZW1lbnQoRG9jdW1lbnQmLCBN
ZWRpYUNvbnRyb2xFbGVtZW50VHlwZSk7CiAKIHByaXZhdGU6CiAgICAgZG91YmxlIG1fY3VycmVu
dFZhbHVlOwpAQCAtMTQ4LDcgKzE0OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgd2ls
bFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAK
IHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xNdXRlQnV0dG9uRWxlbWVudChE
b2N1bWVudCosIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlKTsKKyAgICBleHBsaWNpdCBNZWRpYUNv
bnRyb2xNdXRlQnV0dG9uRWxlbWVudChEb2N1bWVudCYsIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBl
KTsKIAogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KikgT1ZFUlJJ
REU7CiAKQEAgLTE2Myw3ICsxNjMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHdpbGxS
ZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogCiBw
cm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgTWVkaWFDb250cm9sU2Vla0J1dHRvbkVsZW1lbnQoRG9j
dW1lbnQqLCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSk7CisgICAgZXhwbGljaXQgTWVkaWFDb250
cm9sU2Vla0J1dHRvbkVsZW1lbnQoRG9jdW1lbnQmLCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCBpc0ZvcndhcmRCdXR0b24oKSBjb25zdCA9IDA7CkBAIC0xOTMs
NyArMTkzLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q2xlYXJNdXRlZE9uVXNlckludGVyYWN0
aW9uKGJvb2wpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgTWVkaWFDb250cm9sVm9sdW1l
U2xpZGVyRWxlbWVudChEb2N1bWVudCopOworICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFZvbHVt
ZVNsaWRlckVsZW1lbnQoRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZl
bnRIYW5kbGVyKEV2ZW50KikgT1ZFUlJJREU7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAJKHJldmlzaW9uIDE1NTc4
OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNzEsNyArNzEsNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5h
bWVzOwogc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgZ2V0TWVkaWFDb250cm9sQ3VycmVudFRp
bWVEaXNwbGF5RWxlbWVudFNoYWRvd1BzZXVkb0lkKCk7CiBzdGF0aWMgY29uc3QgQXRvbWljU3Ry
aW5nJiBnZXRNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnRTaGFkb3dQc2V1
ZG9JZCgpOwogCi1NZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6Ok1lZGlhQ29udHJvbFBhbmVsRWxl
bWVudChEb2N1bWVudCogZG9jdW1lbnQpCitNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6Ok1lZGlh
Q29udHJvbFBhbmVsRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBNZWRpYUNvbnRy
b2xEaXZFbGVtZW50KGRvY3VtZW50LCBNZWRpYUNvbnRyb2xzUGFuZWwpCiAgICAgLCBtX2NhbkJl
RHJhZ2dlZChmYWxzZSkKICAgICAsIG1faXNCZWluZ0RyYWdnZWQoZmFsc2UpCkBAIC04MSw3ICs4
MSw3IEBAIE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6TWVkaWFDb250cm9sUGEKIHsKIH0KIAot
UGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ+IE1lZGlhQ29udHJvbFBhbmVsRWxl
bWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8TWVkaWFDb250cm9s
UGFuZWxFbGVtZW50PiBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xQYW5lbEVs
ZW1lbnQoZG9jdW1lbnQpKTsKIH0KQEAgLTI2MiwxMyArMjYyLDEzIEBAIHZvaWQgTWVkaWFDb250
cm9sUGFuZWxFbGVtZW50OjpzZXRJc0Rpc3AKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogCi1NZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ6Ok1lZGlhQ29udHJvbFBh
bmVsRW5jbG9zdXJlRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCitNZWRpYUNvbnRyb2xQYW5l
bEVuY2xvc3VyZUVsZW1lbnQ6Ok1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudChEb2N1
bWVudCYgZG9jdW1lbnQpCiAgICAgLy8gTWFwcGluZyBvbnRvIHNhbWUgTWVkaWFDb250cm9sRWxl
bWVudFR5cGUgYXMgcGFuZWwgZWxlbWVudCwgc2luY2UgaXQgaGFzIHNpbWlsYXIgcHJvcGVydGll
cy4KICAgICA6IE1lZGlhQ29udHJvbERpdkVsZW1lbnQoZG9jdW1lbnQsIE1lZGlhQ29udHJvbHNQ
YW5lbCkKIHsKIH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1l
bnQ+IE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBk
b2N1bWVudCkKK1Bhc3NSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50PiBN
ZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3Vy
ZUVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KQEAgLTI4MSwxMyArMjgxLDEzIEBAIGNvbnN0IEF0b21p
Y1N0cmluZyYgTWVkaWFDb250cm9sUGFuZWxFbmMKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogCi1NZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudDo6TWVkaWFDb250
cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQorTWVkaWFDb250
cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQ6Ok1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVF
bGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICAvLyBNYXBwaW5nIG9udG8gc2FtZSBNZWRp
YUNvbnRyb2xFbGVtZW50VHlwZSBhcyBwYW5lbCBlbGVtZW50LCBzaW5jZSBpdCBoYXMgc2ltaWxh
ciBwcm9wZXJ0aWVzLgogICAgIDogTWVkaWFDb250cm9sRGl2RWxlbWVudChkb2N1bWVudCwgTWVk
aWFDb250cm9sc1BhbmVsKQogewogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbE92ZXJsYXlF
bmNsb3N1cmVFbGVtZW50PiBNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudDo6Y3Jl
YXRlKERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8TWVkaWFDb250cm9sT3ZlcmxheUVu
Y2xvc3VyZUVsZW1lbnQ+IE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50OjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFD
b250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KQEAgLTMwMCwxMiAr
MzAwLDEyIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sT3ZlcmxheUUKIAogLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1NZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRh
aW5lckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudChEb2N1bWVu
dCogZG9jdW1lbnQpCitNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6Ok1lZGlh
Q29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAg
OiBNZWRpYUNvbnRyb2xEaXZFbGVtZW50KGRvY3VtZW50LCBNZWRpYVRpbWVsaW5lQ29udGFpbmVy
KQogewogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVu
dD4gTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQq
IGRvY3VtZW50KQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1l
bnQ+IE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCkKIHsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJF
bGVtZW50PiBlbGVtZW50ID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFp
bmVyRWxlbWVudChkb2N1bWVudCkpOwogICAgIGVsZW1lbnQtPmhpZGUoKTsKQEAgLTM0NCwxMiAr
MzQ0LDEyIEBAIFJlbmRlck9iamVjdCogTWVkaWFDb250cm9sVGltZWxpbmVDb250YWkKIAogLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1NZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJD
b250YWluZXJFbGVtZW50OjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50
KERvY3VtZW50KiBkb2N1bWVudCkKK01lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVs
ZW1lbnQ6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQoRG9jdW1lbnQm
IGRvY3VtZW50KQogICAgIDogTWVkaWFDb250cm9sRGl2RWxlbWVudChkb2N1bWVudCwgTWVkaWFW
b2x1bWVTbGlkZXJDb250YWluZXIpCiB7CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFDb250cm9sVm9s
dW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudD4gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFp
bmVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8TWVkaWFD
b250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudD4gTWVkaWFDb250cm9sVm9sdW1lU2xp
ZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBS
ZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudD4gZWxlbWVudCA9
IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50KGRv
Y3VtZW50KSk7CiAgICAgZWxlbWVudC0+aGlkZSgpOwpAQCAtMzg1LDEzICszODUsMTMgQEAgY29u
c3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xWb2x1bWVTbAogCiAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAKLU1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50OjpNZWRp
YUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCitNZWRpYUNv
bnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudDo6TWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1l
bnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogTWVkaWFDb250cm9sRGl2RWxlbWVudChkb2N1
bWVudCwgTWVkaWFTdGF0dXNEaXNwbGF5KQogICAgICwgbV9zdGF0ZUJlaW5nRGlzcGxheWVkKE5v
dGhpbmcpCiB7CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1l
bnQ+IE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRv
Y3VtZW50KQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudD4gTWVk
aWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQp
CiB7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50PiBlbGVtZW50
ID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50KGRvY3VtZW50
KSk7CiAgICAgZWxlbWVudC0+aGlkZSgpOwpAQCAtNDQwLDEzICs0NDAsMTMgQEAgY29uc3QgQXRv
bWljU3RyaW5nJiBNZWRpYUNvbnRyb2xTdGF0dXNEaQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAKLU1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29u
dHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBNZWRpYUNvbnRy
b2xzKiBjb250cm9scykKK01lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6Ok1lZGlh
Q29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBNZWRpYUNv
bnRyb2xzKiBjb250cm9scykKICAgICA6IE1lZGlhQ29udHJvbE11dGVCdXR0b25FbGVtZW50KGRv
Y3VtZW50LCBNZWRpYU11dGVCdXR0b24pCiAgICAgLCBtX2NvbnRyb2xzKGNvbnRyb2xzKQogewog
fQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+IE1lZGlh
Q29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQs
IE1lZGlhQ29udHJvbHMqIGNvbnRyb2xzKQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbE11
dGVCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50OjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50LCBNZWRpYUNvbnRyb2xzKiBjb250cm9scykKIHsKICAgICBB
U1NFUlQoY29udHJvbHMpOwogCkBAIC00NzIsMTIgKzQ3MiwxMiBAQCBjb25zdCBBdG9taWNTdHJp
bmcmIE1lZGlhQ29udHJvbFBhbmVsTXV0CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIAotTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29u
dHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKK01l
ZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xWb2x1
bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBNZWRp
YUNvbnRyb2xNdXRlQnV0dG9uRWxlbWVudChkb2N1bWVudCwgTWVkaWFNdXRlQnV0dG9uKQogewog
fQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50
PiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3Vt
ZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1
dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50Ojpj
cmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1
bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29u
dHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50KGRvY3VtZW50KSk7CiAgICAgYnV0dG9u
LT5lbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCk7CkBAIC00OTMsMTIgKzQ5MywxMiBAQCBjb25z
dCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFZvbHVtZVNsCiAKIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIAotTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29u
dHJvbFBsYXlCdXR0b25FbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKK01lZGlhQ29udHJvbFBs
YXlCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudChEb2N1bWVudCYg
ZG9jdW1lbnQpCiAgICAgOiBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQoZG9jdW1lbnQsIE1lZGlh
UGxheUJ1dHRvbikKIHsKIH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxl
bWVudD4gTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9j
dW1lbnQpCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50PiBNZWRpYUNv
bnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAg
ICBSZWZQdHI8TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVm
KG5ldyBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudChkb2N1bWVudCkpOwogICAgIGJ1dHRv
bi0+ZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpOwpAQCAtNTMyLDEyICs1MzIsMTIgQEAgY29u
c3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xQbGF5QnV0dAogCiAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAKLU1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudDo6
TWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkK
K01lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sT3Zlcmxh
eVBsYXlCdXR0b25FbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IE1lZGlhQ29udHJv
bElucHV0RWxlbWVudChkb2N1bWVudCwgTWVkaWFPdmVybGF5UGxheUJ1dHRvbikKIHsKIH0KIAot
UGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29u
dHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkK
K1Bhc3NSZWZQdHI8TWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50PiBNZWRpYUNv
bnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQp
CiB7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudD4gYnV0
dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudChk
b2N1bWVudCkpOwogICAgIGJ1dHRvbi0+ZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpOwpAQCAt
NTcyLDEyICs1NzIsMTIgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xPdmVybGF5
UAogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLU1lZGlhQ29udHJvbFNlZWtG
b3J3YXJkQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50
KERvY3VtZW50KiBkb2N1bWVudCkKK01lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVu
dDo6TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50KERvY3VtZW50JiBkb2N1bWVu
dCkKICAgICA6IE1lZGlhQ29udHJvbFNlZWtCdXR0b25FbGVtZW50KGRvY3VtZW50LCBNZWRpYVNl
ZWtGb3J3YXJkQnV0dG9uKQogewogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbFNlZWtGb3J3
YXJkQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50Ojpj
cmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xTZWVrRm9y
d2FyZEJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudDo6
Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sU2Vl
a0ZvcndhcmRCdXR0b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9s
U2Vla0ZvcndhcmRCdXR0b25FbGVtZW50KGRvY3VtZW50KSk7CiAgICAgYnV0dG9uLT5lbnN1cmVV
c2VyQWdlbnRTaGFkb3dSb290KCk7CkBAIC01OTMsMTIgKzU5MywxMiBAQCBjb25zdCBBdG9taWNT
dHJpbmcmIE1lZGlhQ29udHJvbFNlZWtGb3J3CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KIAotTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xT
ZWVrQmFja0J1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQorTWVkaWFDb250cm9sU2Vl
a0JhY2tCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQoRG9j
dW1lbnQmIGRvY3VtZW50KQogICAgIDogTWVkaWFDb250cm9sU2Vla0J1dHRvbkVsZW1lbnQoZG9j
dW1lbnQsIE1lZGlhU2Vla0JhY2tCdXR0b24pCiB7CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFDb250
cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1l
bnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFNl
ZWtCYWNrQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50Ojpj
cmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xTZWVr
QmFja0J1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xTZWVr
QmFja0J1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKICAgICBidXR0b24tPmVuc3VyZVVzZXJBZ2Vu
dFNoYWRvd1Jvb3QoKTsKQEAgLTYxNCwxMiArNjE0LDEyIEBAIGNvbnN0IEF0b21pY1N0cmluZyYg
TWVkaWFDb250cm9sU2Vla0JhY2sKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
Ci1NZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xSZXdpbmRCdXR0
b25FbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKK01lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVs
ZW1lbnQ6Ok1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50
KQogICAgIDogTWVkaWFDb250cm9sSW5wdXRFbGVtZW50KGRvY3VtZW50LCBNZWRpYVJld2luZEJ1
dHRvbikKIHsKIH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50
PiBNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3Vt
ZW50KQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50PiBNZWRpYUNv
bnRyb2xSZXdpbmRCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewog
ICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50PiBidXR0b24gPSBhZG9w
dFJlZihuZXcgTWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudChkb2N1bWVudCkpOwogICAg
IGJ1dHRvbi0+ZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpOwpAQCAtNjQ0LDEyICs2NDQsMTIg
QEAgY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xSZXdpbmRCdQogCiAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLU1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0
b25FbGVtZW50OjpNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudChEb2N1
bWVudCogZG9jdW1lbnQpCitNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVu
dDo6TWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQmIGRv
Y3VtZW50KQogICAgIDogTWVkaWFDb250cm9sSW5wdXRFbGVtZW50KGRvY3VtZW50LCBNZWRpYVJl
dHVyblRvUmVhbHRpbWVCdXR0b24pCiB7CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFDb250cm9sUmV0
dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVC
dXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxNZWRp
YUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sUmV0dXJu
VG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAg
ICAgUmVmUHRyPE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50PiBidXR0
b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1l
bnQoZG9jdW1lbnQpKTsKICAgICBidXR0b24tPmVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsK
QEAgLTY3NSw3ICs2NzUsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFJldHVy
blRvCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotTWVkaWFDb250cm9sVG9n
Z2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRD
YXB0aW9uc0J1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBNZWRpYUNvbnRyb2xzKiBj
b250cm9scykKK01lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6
TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50KERvY3VtZW50JiBk
b2N1bWVudCwgTWVkaWFDb250cm9scyogY29udHJvbHMpCiAgICAgOiBNZWRpYUNvbnRyb2xJbnB1
dEVsZW1lbnQoZG9jdW1lbnQsIE1lZGlhU2hvd0Nsb3NlZENhcHRpb25zQnV0dG9uKQogI2lmIFBM
QVRGT1JNKE1BQykgfHwgUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShHVEspCiAgICAgLCBtX2Nv
bnRyb2xzKGNvbnRyb2xzKQpAQCAtNjg2LDcgKzY4Niw3IEBAIE1lZGlhQ29udHJvbFRvZ2dsZUNs
b3NlZENhcHRpb25zQnV0dG9uRWwKICNlbmRpZgogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJv
bFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sVG9nZ2xlQ2xv
c2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBNZWRp
YUNvbnRyb2xzKiBjb250cm9scykKK1Bhc3NSZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2Vk
Q2FwdGlvbnNCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1
dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIE1lZGlhQ29udHJvbHMqIGNv
bnRyb2xzKQogewogICAgIEFTU0VSVChjb250cm9scyk7CiAKQEAgLTczMiwxMiArNzMyLDEyIEBA
IGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sVG9nZ2xlQ2wKIAogLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogCi1NZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5l
ckVsZW1lbnQ6Ok1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudChEb2N1
bWVudCogZG9jdW1lbnQpCitNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1l
bnQ6Ok1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCYg
ZG9jdW1lbnQpCiAgICAgOiBNZWRpYUNvbnRyb2xEaXZFbGVtZW50KGRvY3VtZW50LCBNZWRpYUNs
b3NlZENhcHRpb25zQ29udGFpbmVyKQogewogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbENs
b3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudD4gTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnND
b250YWluZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxN
ZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ+IE1lZGlhQ29udHJvbENs
b3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkK
IHsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50
PiBlbGVtZW50ID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFp
bmVyRWxlbWVudChkb2N1bWVudCkpOwogICAgIGVsZW1lbnQtPnNldEF0dHJpYnV0ZShkaXJBdHRy
LCAiYXV0byIpOwpAQCAtNzUzLDEzICs3NTMsMTMgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBNZWRp
YUNvbnRyb2xDbG9zZWRDYQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLU1l
ZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6TWVkaWFDb250cm9sQ2xv
c2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgTWVkaWFDb250
cm9scyogY29udHJvbHMpCitNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1l
bnQ6Ok1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudChEb2N1bWVudCYg
ZG9jdW1lbnQsIE1lZGlhQ29udHJvbHMqIGNvbnRyb2xzKQogICAgIDogTWVkaWFDb250cm9sRGl2
RWxlbWVudChkb2N1bWVudCwgTWVkaWFDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdCkKICAgICAsIG1f
Y29udHJvbHMoY29udHJvbHMpCiB7CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFDb250cm9sQ2xvc2Vk
Q2FwdGlvbnNUcmFja0xpc3RFbGVtZW50PiBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNr
TGlzdEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQsIE1lZGlhQ29udHJvbHMqIGNv
bnRyb2xzKQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVs
ZW1lbnQ+IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudDo6Y3JlYXRl
KERvY3VtZW50JiBkb2N1bWVudCwgTWVkaWFDb250cm9scyogY29udHJvbHMpCiB7CiAgICAgQVNT
RVJUKGNvbnRyb2xzKTsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFj
a0xpc3RFbGVtZW50PiBlbGVtZW50ID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbENsb3NlZENh
cHRpb25zVHJhY2tMaXN0RWxlbWVudChkb2N1bWVudCwgY29udHJvbHMpKTsKQEAgLTkxNiwxMyAr
OTE2LDEzIEBAIHZvaWQgTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QKIAogLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1NZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1l
bnQ6Ok1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIE1lZGlh
Q29udHJvbHMqIGNvbnRyb2xzKQorTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50OjpNZWRpYUNv
bnRyb2xUaW1lbGluZUVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBNZWRpYUNvbnRyb2xzKiBj
b250cm9scykKICAgICA6IE1lZGlhQ29udHJvbElucHV0RWxlbWVudChkb2N1bWVudCwgTWVkaWFT
bGlkZXIpCiAgICAgLCBtX2NvbnRyb2xzKGNvbnRyb2xzKQogewogfQogCi1QYXNzUmVmUHRyPE1l
ZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudD4gTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50Ojpj
cmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBNZWRpYUNvbnRyb2xzKiBjb250cm9scykKK1Bhc3NS
ZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50PiBNZWRpYUNvbnRyb2xUaW1lbGluZUVs
ZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIE1lZGlhQ29udHJvbHMqIGNvbnRyb2xz
KQogewogICAgIEFTU0VSVChjb250cm9scyk7CiAKQEAgLTk4OSwxMiArOTg5LDEyIEBAIGNvbnN0
IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sVGltZWxpbmUKIAogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCi1NZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ6Ok1l
ZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCitN
ZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFBhbmVsVm9s
dW1lU2xpZGVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBNZWRpYUNvbnRyb2xW
b2x1bWVTbGlkZXJFbGVtZW50KGRvY3VtZW50KQogewogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29u
dHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudD4gTWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlk
ZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxNZWRpYUNv
bnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ+IE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xp
ZGVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBSZWZQdHI8TWVk
aWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50PiBzbGlkZXIgPSBhZG9wdFJlZihuZXcg
TWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50KGRvY3VtZW50KSk7CiAgICAgc2xp
ZGVyLT5lbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCk7CkBAIC0xMDEyLDEyICsxMDEyLDEyIEBA
IGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sUGFuZWxWb2wKIAogLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogCi1NZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVy
RWxlbWVudDo6TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQoRG9jdW1l
bnQqIGRvY3VtZW50KQorTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ6
Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50KERvY3VtZW50JiBkb2N1
bWVudCkKICAgICA6IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQoZG9jdW1lbnQpCiB7
CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1l
bnQ+IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoRG9j
dW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1l
U2xpZGVyRWxlbWVudD4gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ6
OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1
bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50PiBzbGlkZXIgPSBhZG9wdFJlZihuZXcgTWVkaWFD
b250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQoZG9jdW1lbnQpKTsKICAgICBzbGlk
ZXItPmVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKQEAgLTEwMzUsMTIgKzEwMzUsMTIgQEAg
Y29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xGdWxsc2NyZQogCiAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAKLU1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50
OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQp
CitNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sRnVsbHNj
cmVlbkJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogTWVkaWFDb250cm9s
SW5wdXRFbGVtZW50KGRvY3VtZW50LCBNZWRpYUVudGVyRnVsbHNjcmVlbkJ1dHRvbikKIHsKIH0K
IAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudD4gTWVkaWFD
b250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQp
CitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBNZWRpYUNv
bnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkK
IHsKICAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ+IGJ1dHRv
biA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudChkb2N1
bWVudCkpOwogICAgIGJ1dHRvbi0+ZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpOwpAQCAtMTA4
NCwxMiArMTA4NCwxMiBAQCB2b2lkIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50
CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotTWVkaWFDb250cm9sRnVsbHNj
cmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVN
aW5CdXR0b25FbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKK01lZGlhQ29udHJvbEZ1bGxzY3Jl
ZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWlu
QnV0dG9uRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBNZWRpYUNvbnRyb2xJbnB1
dEVsZW1lbnQoZG9jdW1lbnQsIE1lZGlhVW5NdXRlQnV0dG9uKQogewogfQogCi1QYXNzUmVmUHRy
PE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50PiBNZWRpYUNvbnRy
b2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1
bWVudCkKK1Bhc3NSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVs
ZW1lbnQ+IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50OjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2Ny
ZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29u
dHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50KGRvY3VtZW50KSk7CiAgICAgYnV0
dG9uLT5lbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCk7CkBAIC0xMTE1LDEyICsxMTE1LDEyIEBA
IGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sRnVsbHNjcmUKIAogLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogCi1NZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0
dG9uRWxlbWVudDo6TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQo
RG9jdW1lbnQqIGRvY3VtZW50KQorTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRv
bkVsZW1lbnQ6Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50KERv
Y3VtZW50JiBkb2N1bWVudCkKIDogTWVkaWFDb250cm9sSW5wdXRFbGVtZW50KGRvY3VtZW50LCBN
ZWRpYU11dGVCdXR0b24pCiB7CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVl
blZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhC
dXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxNZWRp
YUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sRnVs
bHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQp
CiB7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVt
ZW50PiBidXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1h
eEJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKICAgICBidXR0b24tPmVuc3VyZVVzZXJBZ2VudFNo
YWRvd1Jvb3QoKTsKQEAgLTExNDYsMTIgKzExNDYsMTIgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBN
ZWRpYUNvbnRyb2xGdWxsc2NyZQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAK
LU1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6TWVkaWFDb250cm9sVGlt
ZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKK01lZGlhQ29udHJv
bFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rp
c3BsYXlFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IE1lZGlhQ29udHJvbFRpbWVE
aXNwbGF5RWxlbWVudChkb2N1bWVudCwgTWVkaWFUaW1lUmVtYWluaW5nRGlzcGxheSkKIHsKIH0K
IAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ+IE1l
ZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBk
b2N1bWVudCkKK1Bhc3NSZWZQdHI8TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVt
ZW50PiBNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xU
aW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KQEAgLTExNjksMTIgKzEx
NjksMTIgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xUaW1lUmVtYQogCiAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLU1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlz
cGxheUVsZW1lbnQ6Ok1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQoRG9jdW1l
bnQqIGRvY3VtZW50KQorTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDo6TWVk
aWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAg
ICAgOiBNZWRpYUNvbnRyb2xUaW1lRGlzcGxheUVsZW1lbnQoZG9jdW1lbnQsIE1lZGlhQ3VycmVu
dFRpbWVEaXNwbGF5KQogewogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbEN1cnJlbnRUaW1l
RGlzcGxheUVsZW1lbnQ+IE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6OmNy
ZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbEN1cnJlbnRU
aW1lRGlzcGxheUVsZW1lbnQ+IE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6
OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBN
ZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50KGRvY3VtZW50KSk7CiB9CkBAIC0x
MTk0LDcgKzExOTQsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbEN1cnJlbnRU
CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKLU1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRh
aW5lckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQoRG9jdW1l
bnQqIGRvY3VtZW50KQorTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6TWVk
aWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAg
ICAgOiBNZWRpYUNvbnRyb2xEaXZFbGVtZW50KGRvY3VtZW50LCBNZWRpYVRleHRUcmFja0Rpc3Bs
YXlDb250YWluZXIpCiAgICAgLCBtX3VwZGF0ZVRpbWVyKHRoaXMsICZNZWRpYUNvbnRyb2xUZXh0
VHJhY2tDb250YWluZXJFbGVtZW50Ojp1cGRhdGVUaW1lckZpcmVkKQogICAgICwgbV9mb250U2l6
ZSgwKQpAQCAtMTIwMiw3ICsxMjAyLDcgQEAgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVy
RWxlbWVudDo6TQogewogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRh
aW5lckVsZW1lbnQ+IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OmNyZWF0
ZShEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRleHRUcmFja0Nv
bnRhaW5lckVsZW1lbnQ+IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OmNy
ZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRleHRU
cmFja0NvbnRhaW5lckVsZW1lbnQ+IGVsZW1lbnQgPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9s
VGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudChkb2N1bWVudCkpOwogICAgIGVsZW1lbnQtPmhpZGUo
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
RWxlbWVudHMuaAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sRWxlbWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudCBG
SU5BTCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xEaXZFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCop
OworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudD4gY3JlYXRl
KERvY3VtZW50Jik7CiAKICAgICB2b2lkIHNldENhbkJlRHJhZ2dlZChib29sKTsKICAgICB2b2lk
IHNldElzRGlzcGxheWVkKGJvb2wpOwpAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgT1ZFUlJJREUgeyByZXR1
cm4gdHJ1ZTsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFBhbmVsRWxl
bWVudChEb2N1bWVudCopOworICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudChE
b2N1bWVudCYpOwogCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVk
b0lkKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRs
ZXIoRXZlbnQqKSBPVkVSUklERTsKQEAgLTgyLDEwICs4MiwxMCBAQCBwcml2YXRlOgogCiBjbGFz
cyBNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQgRklOQUwgOiBwdWJsaWMgTWVkaWFD
b250cm9sRGl2RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFD
b250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ+IGNyZWF0ZShE
b2N1bWVudCYpOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFBhbmVsRW5j
bG9zdXJlRWxlbWVudChEb2N1bWVudCopOworICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFBhbmVs
RW5jbG9zdXJlRWxlbWVudChEb2N1bWVudCYpOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3Ry
aW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0IE9WRVJSSURFOwogfTsKIApAQCAtOTMsMTAgKzkz
LDEwIEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVt
ZW50IEZJTkFMIDogcHVibGljIE1lZGlhQ29udHJvbERpdkVsZW1lbnQgewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50PiBj
cmVhdGUoRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xPdmVy
bGF5RW5jbG9zdXJlRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAg
ZXhwbGljaXQgTWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQoRG9jdW1lbnQqKTsK
KyAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudChEb2N1bWVu
dCYpOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNv
bnN0IE9WRVJSSURFOwogfTsKIApAQCAtMTA0LDEyICsxMDQsMTIgQEAgcHJpdmF0ZToKIAogY2xh
c3MgTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50IDogcHVibGljIE1lZGlhQ29u
dHJvbERpdkVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29u
dHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50PiBjcmVh
dGUoRG9jdW1lbnQmKTsKIAogICAgIHZvaWQgc2V0VGltZURpc3BsYXlzSGlkZGVuKGJvb2wpOwog
CiBwcml2YXRlOgotICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxl
bWVudChEb2N1bWVudCopOworICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFp
bmVyRWxlbWVudChEb2N1bWVudCYpOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBz
aGFkb3dQc2V1ZG9JZCgpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBSZW5kZXJPYmpl
Y3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKSBPVkVSUklERTsK
QEAgLTExOSwxMiArMTE5LDEyIEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbFZvbHVt
ZVNsaWRlckNvbnRhaW5lckVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sRGl2RWxlbWVudCB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVy
Q29udGFpbmVyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudD4gY3JlYXRlKERvY3Vt
ZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlTW92ZUV2ZW50cygp
IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBNZWRp
YUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50KERvY3VtZW50Kik7CisgICAgZXhw
bGljaXQgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCYp
OwogCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQq
KSBPVkVSUklERTsKQEAgLTEzNiwxMiArMTM2LDEyIEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlh
Q29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50IDogcHVibGljIE1lZGlhQ29udHJvbERpdkVsZW1l
bnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFN0YXR1c0Rp
c3BsYXlFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxN
ZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKICAg
ICB2b2lkIHVwZGF0ZSgpOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFN0
YXR1c0Rpc3BsYXlFbGVtZW50KERvY3VtZW50Kik7CisgICAgZXhwbGljaXQgTWVkaWFDb250cm9s
U3RhdHVzRGlzcGxheUVsZW1lbnQoRG9jdW1lbnQmKTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21p
Y1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdCBPVkVSUklERTsKIAogICAgIGVudW0gU3Rh
dGVCZWluZ0Rpc3BsYXllZCB7IE5vdGhpbmcsIExvYWRpbmcsIExpdmVCcm9hZGNhc3QgfTsKQEAg
LTE1MiwxMiArMTUyLDEyIEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbFBhbmVsTXV0
ZUJ1dHRvbkVsZW1lbnQgRklOQUwgOiBwdWJsaWMgTWVkaWFDb250cm9sTXV0ZUJ1dHRvbkVsZW1l
bnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsTXV0
ZUJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCosIE1lZGlhQ29udHJvbHMqKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50PiBjcmVh
dGUoRG9jdW1lbnQmLCBNZWRpYUNvbnRyb2xzKik7CiAKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFJl
c3BvbmRUb01vdXNlTW92ZUV2ZW50cygpIE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAogcHJp
dmF0ZToKLSAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50KERv
Y3VtZW50KiwgTWVkaWFDb250cm9scyopOworICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFBhbmVs
TXV0ZUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQmLCBNZWRpYUNvbnRyb2xzKik7CiAKICAgICB2aXJ0
dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdCBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIE9WRVJSSURFOwpA
QCAtMTY5LDEwICsxNjksMTAgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWVkaWFDb250cm9sVm9sdW1l
U2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQgRklOQUwgOiBwdWJsaWMgTWVkaWFDb250cm9sTXV0ZUJ1
dHRvbkVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJv
bFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVu
dD4gY3JlYXRlKERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgTWVkaWFDb250
cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqKTsKKyAgICBleHBsaWNp
dCBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudChEb2N1bWVudCYpOwog
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0IE9W
RVJSSURFOwogfTsKIApAQCAtMTgxLDEzICsxODEsMTMgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWVk
aWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQgRklOQUwgOiBwdWJsaWMgTWVkaWFDb250cm9sSW5w
dXRFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQ
bGF5QnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCiAg
ICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgT1ZFUlJJREUg
eyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVEaXNwbGF5VHlwZSgpIE9W
RVJSSURFOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFBsYXlCdXR0b25F
bGVtZW50KERvY3VtZW50Kik7CisgICAgZXhwbGljaXQgTWVkaWFDb250cm9sUGxheUJ1dHRvbkVs
ZW1lbnQoRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFk
b3dQc2V1ZG9JZCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZl
bnRIYW5kbGVyKEV2ZW50KikgT1ZFUlJJREU7CkBAIC0xOTcsMTIgKzE5NywxMiBAQCBwcml2YXRl
OgogCiBjbGFzcyBNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQgRklOQUwgOiBw
dWJsaWMgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1
bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0
dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
RGlzcGxheVR5cGUoKSBPVkVSUklERTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBNZWRpYUNv
bnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqKTsKKyAgICBleHBsaWNpdCBN
ZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQmKTsKIAogICAgIHZp
cnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KikgT1ZFUlJJREU7
CkBAIC0yMTIsMTAgKzIxMiwxMCBAQCBwcml2YXRlOgogCiBjbGFzcyBNZWRpYUNvbnRyb2xTZWVr
Rm9yd2FyZEJ1dHRvbkVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sU2Vla0J1dHRvbkVsZW1l
bnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFNlZWtGb3J3
YXJkQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQm
KTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRv
bkVsZW1lbnQoRG9jdW1lbnQqKTsKKyAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xTZWVrRm9yd2Fy
ZEJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQmKTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgYm9vbCBp
c0ZvcndhcmRCdXR0b24oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CkBAIC0yMjUs
MTAgKzIyNSwxMCBAQCBwcml2YXRlOgogCiBjbGFzcyBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRv
bkVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sU2Vla0J1dHRvbkVsZW1lbnQgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVu
dD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9s
U2Vla0JhY2tCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKLSAg
ICBleHBsaWNpdCBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQoRG9jdW1lbnQqKTsK
KyAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQoRG9jdW1lbnQm
KTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25z
dCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0ZvcndhcmRCdXR0b24oKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBmYWxzZTsgfQpAQCAtMjM4LDEyICsyMzgsMTIgQEAgcHJpdmF0ZToK
IAogY2xhc3MgTWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNv
bnRyb2xJbnB1dEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlh
Q29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworICAgIHN0YXRp
YyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1
bWVudCYpOwogCiAgICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRz
KCkgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IE1l
ZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqKTsKKyAgICBleHBsaWNpdCBN
ZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50KERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFs
IGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIE9WRVJSSURFOwpAQCAt
MjUzLDEyICsyNTMsMTIgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWVkaWFDb250cm9sUmV0dXJuVG9S
ZWFsdGltZUJ1dHRvbkVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0
aW1lQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8TWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1
bWVudCYpOwogCiAgICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRz
KCkgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IE1l
ZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50KERvY3VtZW50Kik7CisgICAg
ZXhwbGljaXQgTWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQoRG9jdW1l
bnQmKTsKIAogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgp
IGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2
ZW50KikgT1ZFUlJJREU7CkBAIC0yNjgsMTQgKzI2OCwxNCBAQCBwcml2YXRlOgogCiBjbGFzcyBN
ZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQgRklOQUwgOiBwdWJs
aWMgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+IGNyZWF0
ZShEb2N1bWVudCosIE1lZGlhQ29udHJvbHMqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRp
YUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVu
dCYsIE1lZGlhQ29udHJvbHMqKTsKIAogICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91
c2VDbGlja0V2ZW50cygpIE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVEaXNwbGF5VHlwZSgpIE9WRVJSSURFOwogCiBwcml2YXRlOgotICAgIGV4cGxp
Y2l0IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudChEb2N1bWVu
dCosIE1lZGlhQ29udHJvbHMqKTsKKyAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xUb2dnbGVDbG9z
ZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQoRG9jdW1lbnQmLCBNZWRpYUNvbnRyb2xzKik7CiAKICAg
ICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIE9WRVJS
SURFOwpAQCAtMjg5LDEyICsyODksMTIgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWVkaWFDb250cm9s
Q2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50IEZJTkFMIDogcHVibGljIE1lZGlhQ29udHJv
bERpdkVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJv
bENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAg
c3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVt
ZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRv
TW91c2VDbGlja0V2ZW50cygpIE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAogcHJpdmF0ZToK
LSAgICBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQoRG9jdW1lbnQq
KTsKKyAgICBNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQoRG9jdW1l
bnQmKTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBj
b25zdCBPVkVSUklERTsKIH07CiAKQEAgLTMwMiwxNCArMzAyLDE0IEBAIHByaXZhdGU6CiAKIGNs
YXNzIE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudCBGSU5BTCA6IHB1
YmxpYyBNZWRpYUNvbnRyb2xEaXZFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ+IGNyZWF0ZShE
b2N1bWVudCosIE1lZGlhQ29udHJvbHMqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNv
bnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYsIE1l
ZGlhQ29udHJvbHMqKTsKIAogICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlj
a0V2ZW50cygpIE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZvaWQgdXBkYXRlRGlz
cGxheSgpOwogCiBwcml2YXRlOgotICAgIE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tM
aXN0RWxlbWVudChEb2N1bWVudCosIE1lZGlhQ29udHJvbHMqKTsKKyAgICBNZWRpYUNvbnRyb2xD
bG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQoRG9jdW1lbnQmLCBNZWRpYUNvbnRyb2xzKik7
CiAKICAgICB2b2lkIHJlYnVpbGRUcmFja0xpc3RNZW51KCk7CiAKQEAgLTMyOSw3ICszMjksNyBA
QCBwcml2YXRlOgogCiBjbGFzcyBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQgRklOQUwgOiBw
dWJsaWMgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCosIE1l
ZGlhQ29udHJvbHMqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGlu
ZUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYsIE1lZGlhQ29udHJvbHMqKTsKIAogICAgIHZpcnR1
YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpIE9WRVJSSURFOwogCkBAIC0z
MzcsNyArMzM3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RHVyYXRpb24oZG91YmxlKTsKIAog
cHJpdmF0ZToKLSAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQoRG9jdW1l
bnQqLCBNZWRpYUNvbnRyb2xzKik7CisgICAgZXhwbGljaXQgTWVkaWFDb250cm9sVGltZWxpbmVF
bGVtZW50KERvY3VtZW50JiwgTWVkaWFDb250cm9scyopOwogCiAgICAgdmlydHVhbCBjb25zdCBB
dG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBPVkVSUklERTsKQEAgLTM0OSwxNCAr
MzQ5LDE0IEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25F
bGVtZW50IEZJTkFMIDogcHVibGljIE1lZGlhQ29udHJvbElucHV0RWxlbWVudCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1l
bnQ+IGNyZWF0ZShEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJv
bEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1
YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpIE9WRVJSSURFIHsgcmV0dXJu
IHRydWU7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBzZXRJc0Z1bGxzY3JlZW4oYm9vbCk7CiAKIHBy
aXZhdGU6Ci0gICAgZXhwbGljaXQgTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQo
RG9jdW1lbnQqKTsKKyAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxl
bWVudChEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRv
d1BzZXVkb0lkKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVu
dEhhbmRsZXIoRXZlbnQqKSBPVkVSUklERTsKQEAgLTM2NiwyMCArMzY2LDIwIEBAIHByaXZhdGU6
CiAKIGNsYXNzIE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudCBGSU5BTCA6IHB1
YmxpYyBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ+IGNyZWF0
ZShEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsVm9s
dW1lU2xpZGVyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAgZXhw
bGljaXQgTWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50KERvY3VtZW50Kik7Cisg
ICAgZXhwbGljaXQgTWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVtZW50KERvY3VtZW50
Jik7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29u
c3QgT1ZFUlJJREU7CiB9OwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBjbGFz
cyBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudCA6IHB1YmxpYyBNZWRp
YUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudD4gY3JlYXRlKERv
Y3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZv
bHVtZVNsaWRlckVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCiBwcml2YXRlOgotICAgIGV4
cGxpY2l0IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50KERvY3VtZW50
Kik7CisgICAgZXhwbGljaXQgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1l
bnQoRG9jdW1lbnQmKTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNl
dWRvSWQoKSBjb25zdCBPVkVSUklERTsKIH07CiAKQEAgLTM4NywxMiArMzg3LDEyIEBAIHByaXZh
dGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50
IDogcHVibGljIE1lZGlhQ29udHJvbElucHV0RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ+
IGNyZWF0ZShEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbEZ1
bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKIAogICAg
IHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpIE9WRVJSSURFIHsg
cmV0dXJuIHRydWU7IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xGdWxs
c2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudChEb2N1bWVudCopOworICAgIGV4cGxpY2l0IE1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50KERvY3VtZW50Jik7CiAg
ICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3QgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBPVkVS
UklERTsKIH07CkBAIC00MDEsMTIgKzQwMSwxMiBAQCBwcml2YXRlOgogCiBjbGFzcyBNZWRpYUNv
bnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRy
b2xJbnB1dEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29u
dHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0
dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFJl
c3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAKIHBy
aXZhdGU6Ci0gICAgZXhwbGljaXQgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRv
bkVsZW1lbnQoRG9jdW1lbnQqKTsKKyAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xGdWxsc2NyZWVu
Vm9sdW1lTWF4QnV0dG9uRWxlbWVudChEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCBjb25zdCBB
dG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBPVkVSUklERTsKQEAgLTQxNywxMCAr
NDE3LDEwIEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNw
bGF5RWxlbWVudCBGSU5BTCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xUaW1lRGlzcGxheUVsZW1lbnQg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVSZW1haW5p
bmdEaXNwbGF5RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50PiBjcmVhdGUoRG9jdW1l
bnQmKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5n
RGlzcGxheUVsZW1lbnQoRG9jdW1lbnQqKTsKKyAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xUaW1l
UmVtYWluaW5nRGlzcGxheUVsZW1lbnQoRG9jdW1lbnQmKTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0
b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdCBPVkVSUklERTsKIH07CiAKQEAgLTQy
OCwxMCArNDI4LDEwIEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbEN1cnJlbnRUaW1l
RGlzcGxheUVsZW1lbnQgRklOQUwgOiBwdWJsaWMgTWVkaWFDb250cm9sVGltZURpc3BsYXlFbGVt
ZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xDdXJyZW50
VGltZURpc3BsYXlFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50PiBjcmVhdGUoRG9jdW1l
bnQmKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xDdXJyZW50VGltZURp
c3BsYXlFbGVtZW50KERvY3VtZW50Kik7CisgICAgZXhwbGljaXQgTWVkaWFDb250cm9sQ3VycmVu
dFRpbWVEaXNwbGF5RWxlbWVudChEb2N1bWVudCYpOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWlj
U3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0IE9WRVJSSURFOwogfTsKIApAQCAtNDQxLDcg
KzQ0MSw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5l
ckVsZW1lbnQgRklOQUwgOiBwdWJsaWMgTWVkaWFDb250cm9sRGl2RWxlbWVudCwgcHVibGljIFRl
eHRUcmFja1JlcHJlc2VudGF0aW9uQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50PiBjcmVhdGUoRG9jdW1l
bnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWlu
ZXJFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKIAogICAgIHZvaWQgdXBkYXRlRGlzcGxheSgp
OwogICAgIHZvaWQgdXBkYXRlU2l6ZXMoYm9vbCBmb3JjZVVwZGF0ZSA9IGZhbHNlKTsKQEAgLTQ1
Miw3ICs0NTIsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlVGltZXJGaXJl
ZChUaW1lcjxNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50PiopOwogCi0gICAg
ZXhwbGljaXQgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCop
OworICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQoRG9j
dW1lbnQmKTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQo
KSBjb25zdCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5k
ZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcAkocmV2aXNpb24gMTU1Nzg4KQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM0LDggKzM0LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1NZWRpYUNvbnRyb2xz
OjpNZWRpYUNvbnRyb2xzKERvY3VtZW50KiBkb2N1bWVudCkKLSAgICA6IEhUTUxEaXZFbGVtZW50
KEhUTUxOYW1lczo6ZGl2VGFnLCAqZG9jdW1lbnQpCitNZWRpYUNvbnRyb2xzOjpNZWRpYUNvbnRy
b2xzKERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IEhUTUxEaXZFbGVtZW50KEhUTUxOYW1lczo6
ZGl2VGFnLCBkb2N1bWVudCkKICAgICAsIG1fbWVkaWFDb250cm9sbGVyKDApCiAgICAgLCBtX3Bh
bmVsKDApCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpAQCAtMzg1LDcgKzM4NSw3IEBAIHZvaWQg
TWVkaWFDb250cm9sczo6Y3JlYXRlVGV4dFRyYWNrRGlzcGwKICAgICBpZiAobV90ZXh0RGlzcGxh
eUNvbnRhaW5lcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFRl
eHRUcmFja0NvbnRhaW5lckVsZW1lbnQ+IHRleHREaXNwbGF5Q29udGFpbmVyID0gTWVkaWFDb250
cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKCZkb2N1bWVudCgpKTsKKyAgICBS
ZWZQdHI8TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudD4gdGV4dERpc3BsYXlD
b250YWluZXIgPSBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQoKSk7CiAgICAgbV90ZXh0RGlzcGxheUNvbnRhaW5lciA9IHRleHREaXNwbGF5Q29u
dGFpbmVyLmdldCgpOwogCiAgICAgaWYgKG1fbWVkaWFDb250cm9sbGVyKQpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuaAkocmV2aXNpb24gMTU1Nzg4KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5oCSh3b3JraW5nIGNv
cHkpCkBAIC01OSw3ICs1OSw3IEBAIGNsYXNzIE1lZGlhQ29udHJvbHMgOiBwdWJsaWMgSFRNTERp
dkVsZW0KIAogICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgdG8gYmUgaW1wbGVtZW50ZWQgaW4geW91
ciBwb3J0LXNwZWNpZmljIG1lZGlhCiAgICAgLy8gY29udHJvbHMgaW1wbGVtZW50YXRpb24gc2lu
Y2UgaXQgd2lsbCByZXR1cm4gYSBjaGlsZCBpbnN0YW5jZS4KLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxNZWRpYUNvbnRyb2xzPiBjcmVhdGUoRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxNZWRpYUNvbnRyb2xzPiBjcmVhdGUoRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBz
ZXRNZWRpYUNvbnRyb2xsZXIoTWVkaWFDb250cm9sbGVySW50ZXJmYWNlKik7CiAKQEAgLTEwOCw3
ICsxMDgsNyBAQCBjbGFzcyBNZWRpYUNvbnRyb2xzIDogcHVibGljIEhUTUxEaXZFbGVtCiAjZW5k
aWYKIAogcHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbHMoRG9jdW1lbnQqKTsK
KyAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xzKERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIHZv
aWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5jcHAJKHJldmlzaW9uIDE1NTc4
OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDcgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1NZWRpYUNvbnRyb2xzQXBwbGU6Ok1lZGlhQ29udHJvbHNB
cHBsZShEb2N1bWVudCogZG9jdW1lbnQpCitNZWRpYUNvbnRyb2xzQXBwbGU6Ok1lZGlhQ29udHJv
bHNBcHBsZShEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBNZWRpYUNvbnRyb2xzKGRvY3VtZW50
KQogICAgICwgbV9yZXdpbmRCdXR0b24oMCkKICAgICAsIG1fcmV0dXJuVG9SZWFsVGltZUJ1dHRv
bigwKQpAQCAtNjgsMTQgKzY4LDE0IEBAIE1lZGlhQ29udHJvbHNBcHBsZTo6TWVkaWFDb250cm9s
c0FwcGxlKEQKIHsKIH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzPiBNZWRpYUNvbnRyb2xz
OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzPiBN
ZWRpYUNvbnRyb2xzOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBN
ZWRpYUNvbnRyb2xzQXBwbGU6OmNyZWF0ZUNvbnRyb2xzKGRvY3VtZW50KTsKIH0KIAotUGFzc1Jl
ZlB0cjxNZWRpYUNvbnRyb2xzQXBwbGU+IE1lZGlhQ29udHJvbHNBcHBsZTo6Y3JlYXRlQ29udHJv
bHMoRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzQXBwbGU+IE1l
ZGlhQ29udHJvbHNBcHBsZTo6Y3JlYXRlQ29udHJvbHMoRG9jdW1lbnQmIGRvY3VtZW50KQogewot
ICAgIGlmICghZG9jdW1lbnQtPnBhZ2UoKSkKKyAgICBpZiAoIWRvY3VtZW50LnBhZ2UoKSkKICAg
ICAgICAgcmV0dXJuIDA7CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sc0FwcGxlPiBjb250cm9s
cyA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xzQXBwbGUoZG9jdW1lbnQpKTsKQEAgLTEwMiw3
ICsxMDIsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNBcHBsZT4gTWVkaWFDb250CiAgICAg
aWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIGlmIChkb2N1bWVudC0+cGFnZSgpLT50
aGVtZSgpLT51c2VzTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheSgpKSB7CisgICAgaWYgKGRvY3Vt
ZW50LnBhZ2UoKS0+dGhlbWUoKS0+dXNlc01lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXkoKSkgewog
ICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ+IHN0YXR1c0Rp
c3BsYXkgPSBNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKICAgICAgICAgY29udHJvbHMtPm1fc3RhdHVzRGlzcGxheSA9IHN0YXR1c0Rpc3BsYXkuZ2V0
KCk7CiAgICAgICAgIHBhbmVsLT5hcHBlbmRDaGlsZChzdGF0dXNEaXNwbGF5LnJlbGVhc2UoKSwg
ZWMsIEF0dGFjaExhemlseSk7CkBAIC0xNDksNyArMTQ5LDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNv
bnRyb2xzQXBwbGU+IE1lZGlhQ29udAogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAK
LSAgICBpZiAoZG9jdW1lbnQtPnBhZ2UoKS0+dGhlbWUoKS0+c3VwcG9ydHNDbG9zZWRDYXB0aW9u
aW5nKCkpIHsKKyAgICBpZiAoZG9jdW1lbnQucGFnZSgpLT50aGVtZSgpLT5zdXBwb3J0c0Nsb3Nl
ZENhcHRpb25pbmcoKSkgewogICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlv
bnNDb250YWluZXJFbGVtZW50PiBjbG9zZWRDYXB0aW9uc0NvbnRhaW5lciA9IE1lZGlhQ29udHJv
bENsb3NlZENhcHRpb25zQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIAogICAg
ICAgICBSZWZQdHI8TWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50PiBj
bG9zZWRDYXB0aW9uc1RyYWNrTGlzdCA9IE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zVHJhY2tM
aXN0RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7CkBAIC0xNzYsOSAr
MTc2LDkgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzQXBwbGU+IE1lZGlhQ29udAogICAgIHBh
bmVsLT5hcHBlbmRDaGlsZChmdWxsU2NyZWVuQnV0dG9uLnJlbGVhc2UoKSwgZWMsIEF0dGFjaExh
emlseSk7CiAKICAgICAvLyBUaGUgbXV0ZSBidXR0b24gYW5kIHRoZSBzbGlkZXIgZWxlbWVudCBz
aG91bGQgYmUgaW4gdGhlIHNhbWUgZGl2LgotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gcGFu
ZWxWb2x1bWVDb250cm9sQ29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZSgqZG9jdW1l
bnQpOworICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gcGFuZWxWb2x1bWVDb250cm9sQ29udGFp
bmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAKLSAgICBpZiAoZG9jdW1l
bnQtPnBhZ2UoKS0+dGhlbWUoKS0+dXNlc01lZGlhQ29udHJvbFZvbHVtZVNsaWRlcigpKSB7Cisg
ICAgaWYgKGRvY3VtZW50LnBhZ2UoKS0+dGhlbWUoKS0+dXNlc01lZGlhQ29udHJvbFZvbHVtZVNs
aWRlcigpKSB7CiAgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWlu
ZXJFbGVtZW50PiB2b2x1bWVTbGlkZXJDb250YWluZXIgPSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogCiAgICAgICAgIFJlZlB0cjxN
ZWRpYUNvbnRyb2xQYW5lbFZvbHVtZVNsaWRlckVsZW1lbnQ+IHNsaWRlciA9IE1lZGlhQ29udHJv
bFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5oCShyZXZpc2lv
biAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBw
bGUuaAkod29ya2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNyBAQCBwcml2YXRlOgogCiBjbGFzcyBN
ZWRpYUNvbnRyb2xzQXBwbGUgOiBwdWJsaWMgTWVkaWFDb250cm9scyB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sc0FwcGxlPiBjcmVhdGVDb250cm9scyhEb2N1
bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNBcHBsZT4gY3JlYXRl
Q29udHJvbHMoRG9jdW1lbnQmKTsKIAogICAgIC8vIE1lZGlhQ29udHJvbHMgaW1wbGVtZW50YXRp
b24uCiAgICAgdmlydHVhbCB2b2lkIHNldE1lZGlhQ29udHJvbGxlcihNZWRpYUNvbnRyb2xsZXJJ
bnRlcmZhY2UqKSBPVkVSUklERTsKQEAgLTkyLDcgKzkyLDcgQEAgcHVibGljOgogICAgIHZvaWQg
aGFuZGxlQ2xpY2tFdmVudChFdmVudCopOwogCiBwcml2YXRlOgotICAgIE1lZGlhQ29udHJvbHNB
cHBsZShEb2N1bWVudCopOworICAgIE1lZGlhQ29udHJvbHNBcHBsZShEb2N1bWVudCYpOwogCiAg
ICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBPVkVSUklERTsKICAg
ICBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNBcHBsZUV2ZW50TGlzdGVuZXI+IGV2ZW50TGlzdGVu
ZXIoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNHdGsu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJv
bHNHdGsuY3BwCShyZXZpc2lvbiAxNTU3ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xzR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjAsNyArNjAsNyBAQCBw
cml2YXRlOgogICAgIE1lZGlhQ29udHJvbHNHdGsqIG1fbWVkaWFDb250cm9sczsKIH07CiAKLU1l
ZGlhQ29udHJvbHNHdGs6Ok1lZGlhQ29udHJvbHNHdGsoRG9jdW1lbnQqIGRvY3VtZW50KQorTWVk
aWFDb250cm9sc0d0azo6TWVkaWFDb250cm9sc0d0ayhEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAg
OiBNZWRpYUNvbnRyb2xzKGRvY3VtZW50KQogICAgICwgbV9kdXJhdGlvbkRpc3BsYXkoMCkKICAg
ICAsIG1fZW5jbG9zdXJlKDApCkBAIC03MCwxNCArNzAsMTQgQEAgTWVkaWFDb250cm9sc0d0azo6
TWVkaWFDb250cm9sc0d0ayhEb2N1bQogewogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbHM+
IE1lZGlhQ29udHJvbHM6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPE1l
ZGlhQ29udHJvbHM+IE1lZGlhQ29udHJvbHM6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7
CiAgICAgcmV0dXJuIE1lZGlhQ29udHJvbHNHdGs6OmNyZWF0ZUNvbnRyb2xzKGRvY3VtZW50KTsK
IH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzR3RrPiBNZWRpYUNvbnRyb2xzR3RrOjpjcmVh
dGVDb250cm9scyhEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNH
dGs+IE1lZGlhQ29udHJvbHNHdGs6OmNyZWF0ZUNvbnRyb2xzKERvY3VtZW50JiBkb2N1bWVudCkK
IHsKLSAgICBpZiAoIWRvY3VtZW50LT5wYWdlKCkpCisgICAgaWYgKCFkb2N1bWVudC5wYWdlKCkp
CiAgICAgICAgIHJldHVybiAwOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbHNHdGs+IGNvbnRy
b2xzID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbHNHdGsoZG9jdW1lbnQpKTsKQEAgLTg4LDcg
Kzg4LDcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzR3RrPiBNZWRpYUNvbnRybwogICAgIHJl
dHVybiAwOwogfQogCi1ib29sIE1lZGlhQ29udHJvbHNHdGs6OmluaXRpYWxpemVDb250cm9scyhE
b2N1bWVudCogZG9jdW1lbnQpCitib29sIE1lZGlhQ29udHJvbHNHdGs6OmluaXRpYWxpemVDb250
cm9scyhEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgLy8gQ3JlYXRlIGFuIGVuY2xvc2luZyBl
bGVtZW50IGZvciB0aGUgcGFuZWwgc28gd2UgY2FuIHZpc3VhbGx5IG9mZnNldCB0aGUgY29udHJv
bHMgY29ycmVjdGx5LgogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1l
bnQ+IGVuY2xvc3VyZSA9IE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKQEAgLTEyMCw3ICsxMjAsNyBAQCBib29sIE1lZGlhQ29udHJvbHNHdGs6Omlu
aXRpYWxpemVDb250cm9sCiAgICAgaWYgKGV4Y2VwdGlvbkNvZGUpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIGlmIChkb2N1bWVudC0+cGFnZSgpLT50aGVtZSgpLT5zdXBwb3J0c0Nsb3Nl
ZENhcHRpb25pbmcoKSkgeworICAgIGlmIChkb2N1bWVudC5wYWdlKCktPnRoZW1lKCktPnN1cHBv
cnRzQ2xvc2VkQ2FwdGlvbmluZygpKSB7CiAgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDbG9z
ZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ+IGNsb3NlZENhcHRpb25zQ29udGFpbmVyID0gTWVk
aWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQp
OwogCiAgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVs
ZW1lbnQ+IGNsb3NlZENhcHRpb25zVHJhY2tMaXN0ID0gTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlv
bnNUcmFja0xpc3RFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIHRoaXMpOwpAQCAtMjgxLDcgKzI4
MSw3IEBAIHZvaWQgTWVkaWFDb250cm9sc0d0azo6Y3JlYXRlVGV4dFRyYWNrRGkKICAgICBpZiAo
bV90ZXh0RGlzcGxheUNvbnRhaW5lcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRyPE1l
ZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ+IHRleHREaXNwbGF5Q29udGFpbmVy
ID0gTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKCZkb2N1bWVu
dCgpKTsKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudD4g
dGV4dERpc3BsYXlDb250YWluZXIgPSBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgbV90ZXh0RGlzcGxheUNvbnRhaW5lciA9IHRl
eHREaXNwbGF5Q29udGFpbmVyLmdldCgpOwogCiAgICAgaWYgKG1fbWVkaWFDb250cm9sbGVyKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0d0ay5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNHdGsuaAko
cmV2aXNpb24gMTU1Nzg4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sc0d0ay5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIE1lZGlhQ29u
dHJvbHNHdGtFdmVudExpc3RlbmVyOwogY2xhc3MgTWVkaWFDb250cm9sc0d0ayA6IHB1YmxpYyBN
ZWRpYUNvbnRyb2xzIHsKIHB1YmxpYzoKICAgICAvLyBDYWxsZWQgZnJvbSBwb3J0LXNwZWNpZmlj
IHBhcmVudCBjcmVhdGUgZnVuY3Rpb24gdG8gY3JlYXRlIGN1c3RvbSBjb250cm9scy4KLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzR3RrPiBjcmVhdGVDb250cm9scyhEb2N1bWVu
dCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHNHdGs+IGNyZWF0ZUNvbnRy
b2xzKERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0TWVkaWFDb250cm9sbGVyKE1l
ZGlhQ29udHJvbGxlckludGVyZmFjZSopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZXNl
dCgpIE9WRVJSSURFOwpAQCAtNTgsOCArNTgsOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJvdGVj
dGVkOgotICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbHNHdGsoRG9jdW1lbnQqKTsKLSAgICBib29s
IGluaXRpYWxpemVDb250cm9scyhEb2N1bWVudCopOworICAgIGV4cGxpY2l0IE1lZGlhQ29udHJv
bHNHdGsoRG9jdW1lbnQmKTsKKyAgICBib29sIGluaXRpYWxpemVDb250cm9scyhEb2N1bWVudCYp
OwogCiBwcml2YXRlOgogICAgIHZvaWQgc2hvd0Nsb3NlZENhcHRpb25UcmFja0xpc3QoKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAJKHJldmlzaW9u
IDE1NTc4OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjAyLDcgKzIwMiw3IEBAIFRleHRUcmFja0N1ZTo6VGV4dFRyYWNr
Q3VlKFNjcmlwdEV4ZWN1dGkKICAgICAsIG1faXNBY3RpdmUoZmFsc2UpCiAgICAgLCBtX3BhdXNl
T25FeGl0KGZhbHNlKQogICAgICwgbV9zbmFwVG9MaW5lcyh0cnVlKQotICAgICwgbV9jdWVCYWNr
Z3JvdW5kQm94KEhUTUxTcGFuRWxlbWVudDo6Y3JlYXRlKHNwYW5UYWcsIHRvRG9jdW1lbnQoY29u
dGV4dCkpKQorICAgICwgbV9jdWVCYWNrZ3JvdW5kQm94KEhUTUxTcGFuRWxlbWVudDo6Y3JlYXRl
KHNwYW5UYWcsICp0b0RvY3VtZW50KGNvbnRleHQpKSkKICAgICAsIG1fZGlzcGxheVRyZWVTaG91
bGRDaGFuZ2UodHJ1ZSkKICAgICAsIG1fZGlzcGxheURpcmVjdGlvbihDU1NWYWx1ZUx0cikKIHsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU3
ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGlubGluZSBTVkdT
dHlsZUVsZW1lbnQ6OlNWR1N0eWxlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQogICAgIDogU1ZHRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkKLSAgICAsIG1fc3R5bGVTaGVldE93bmVyKGRvY3VtZW50
LCBjcmVhdGVkQnlQYXJzZXIpCisgICAgLCBtX3N0eWxlU2hlZXRPd25lcigqZG9jdW1lbnQsIGNy
ZWF0ZWRCeVBhcnNlcikKICAgICAsIG1fc3ZnTG9hZEV2ZW50VGltZXIodGhpcywgJlNWR0VsZW1l
bnQ6OnN2Z0xvYWRFdmVudFRpbWVyRmlyZWQpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZH
TmFtZXM6OnN0eWxlVGFnKSk7Cg==
</data>
<flag name="review"
          id="233795"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>