<?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>210668</bug_id>
          
          <creation_ts>2020-04-17 13:41:35 -0700</creation_ts>
          <short_desc>Reduce parameter list of the FrameLoadRequest constructor</short_desc>
          <delta_ts>2020-04-18 10:05: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>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Rob Buis">rbuis</reporter>
          <assigned_to name="Rob Buis">rbuis</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>japhet</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1642800</commentid>
    <comment_count>0</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-04-17 13:41:35 -0700</bug_when>
    <thetext>Reduce parameter list of the FrameLoadRequest constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642811</commentid>
    <comment_count>1</comment_count>
      <attachid>396792</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-04-17 13:51:25 -0700</bug_when>
    <thetext>Created attachment 396792
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642843</commentid>
    <comment_count>2</comment_count>
      <attachid>396792</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-04-17 14:32:16 -0700</bug_when>
    <thetext>Comment on attachment 396792
Patch

Note that the parameter list can be reduced more or less, this is a somewhat arbitrary length. It is also possible that some of the remaining parameters are better candidates for setters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643017</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-18 10:04:11 -0700</bug_when>
    <thetext>Committed r260317: &lt;https://trac.webkit.org/changeset/260317&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 396792.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643018</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-18 10:05:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/61975226&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396792</attachid>
            <date>2020-04-17 13:51:25 -0700</date>
            <delta_ts>2020-04-18 10:04:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210668-20200417225123.patch</filename>
            <type>text/plain</type>
            <size>51863</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMjc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmVjNzkwNjFmM2E1Nzlh
ZDkzNDU4ZDlkZTgwZGI3NDFmMTkxMjJhYi4uOTkwZTRlNmNkOGIxZTAyNGY4ZmZkZGY5ZjlkZjc5
Y2VlNjUxMzAxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIwLTA0LTE3ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmVkdWNlIHBhcmFtZXRlciBsaXN0
IG9mIHRoZSBGcmFtZUxvYWRSZXF1ZXN0IGNvbnN0cnVjdG9yCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA2NjgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWR1Y2UgcGFyYW1ldGVyIGxpc3Qgb2YgdGhl
IEZyYW1lTG9hZFJlcXVlc3QgY29uc3RydWN0b3IgYnkKKyAgICAgICAgaW5zdGVhZCB1c2luZyB2
YXJpb3VzIHNldHRlcnMuIEJ5IGNob29zaW5nIHRoZSBtb3N0IGNvbW1vbgorICAgICAgICBkZWZh
dWx0cyB0aGUgYWN0dWFsIG51bWJlciBvZiBzZXR0ZXJzIHRvIGNhbGwgYXJlIG1pbmltaXplZC4K
KworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6Om9wZW5Jbk5l
d1RhYik6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpuYXZpZ2F0ZSk6CisgICAg
ICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyOjpoYW5kbGVQcm92aXNpb25hbExvYWRGYWlsdXJlRnJvbUNvbnRlbnRGaWx0ZXIp
OgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lTG9hZFJlcXVlc3Q6OkZyYW1lTG9hZFJlcXVlc3QpOgorICAgICAgICAqIGxvYWRl
ci9GcmFtZUxvYWRSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0
OjpGcmFtZUxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6
OmRpc2FibGVTaG91bGRSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwpOgorICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6
Y2hhbmdlTG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRVUkxJ
bnRvQ2hpbGRGcmFtZSk6CisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdGlvblNjaGVkdWxlcjo6c2NoZWR1bGVMb2NhdGlv
bkNoYW5nZSk6CisgICAgICAgICogcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6b3Blbk5ld1dpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0
TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKToKKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmNyZWF0ZVdpbmRv
dyk6CisgICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEcmFnQ29udHJvbGxlcjo6cGVyZm9ybURyYWdPcGVyYXRpb24pOgorCiAyMDIwLTA0LTE3ICBE
b24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBB
ZGQgV2ViS2l0OjpXZWJDb3JlIHRhcmdldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4YzkxMTU4ZjYxNTBmNGQ1ZGY1
NWU0NDJlZTU5NTM1MGVkN2IwYjBhLi42MDIxY2FlZTg0NTlhMjE5Yzk1YTA0NGIwYjZjMzQwYTBj
MDRhNjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA0LTE3ICBSb2IgQnVpcyAg
PHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmVkdWNlIHBhcmFtZXRlciBsaXN0IG9mIHRo
ZSBGcmFtZUxvYWRSZXF1ZXN0IGNvbnN0cnVjdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA2NjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGFwdCB0byBBUEkgY2hhbmdlLgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViSW5zcGVjdG9yOjpvcGVuSW5OZXdUYWIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6cGVyZm9ybUZy
YW1lTG9hZFVSTFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3Ojpsb2FkVVJM
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6bG9hZERhdGFJbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZFJlcXVl
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb2FkRGF0YUltcGwpOgorCiAyMDIwLTA0
LTE3ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgW0NN
YWtlXSBBZGQgV2ViS2l0OjpXZWJDb3JlIHRhcmdldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9pb3MvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9n
CmluZGV4IDMzZjkwOWE1ZGM4ZjM1N2M5YzAwYWJkMmI5NzFlZGY0NGQzMzM4Y2IuLjliYzY0NGMx
NjIzZDBmMTNjMjJkNzdjMjZlYWM2ZWE0MDA2NjEzYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvaW9zL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNC0xNyAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2Fs
aWEuY29tPgorCisgICAgICAgIFJlZHVjZSBwYXJhbWV0ZXIgbGlzdCBvZiB0aGUgRnJhbWVMb2Fk
UmVxdWVzdCBjb25zdHJ1Y3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjEwNjY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRhcHQgdG8gQVBJIGNoYW5nZS4KKworICAgICAgICAqIFdlYlZpZXcvV2Vi
UERGVmlld1BsYWNlaG9sZGVyLm1tOgorICAgICAgICAoLVtXZWJQREZWaWV3UGxhY2Vob2xkZXIg
c2ltdWxhdGVDbGlja09uTGlua1RvVVJMOl0pOgorCiAyMDIwLTA0LTEyICBEYXJpbiBBZGxlciAg
PGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggc29tZSBzdHJhbmdlIHVzZXMgb2Ygc3Rh
cnQvZW5kT2ZEb2N1bWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDllZDZiZTE2
YWQwZDkzZjk1MDgyZjcxZDU1YjlmOGU4ODM1ODkxYzMuLjEwOGQ4Nzg5ZGI0MDM3NjIzNzgxMWQw
YjZkOWY5Nzg4YWQwMDMzZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMCBAQAorMjAyMC0wNC0xNyAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAg
ICAgIFJlZHVjZSBwYXJhbWV0ZXIgbGlzdCBvZiB0aGUgRnJhbWVMb2FkUmVxdWVzdCBjb25zdHJ1
Y3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEw
NjY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRh
cHQgdG8gQVBJIGNoYW5nZS4KKworICAgICAgICAqIFBsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxl
ci5tbToKKyAgICAgICAgKC1bV2ViUGx1Z2luQ29udHJvbGxlciB3ZWJQbHVnSW5Db250YWluZXJM
b2FkUmVxdWVzdDppbkZyYW1lOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06Cisg
ICAgICAgICgtW1dlYkZyYW1lIGxvYWRSZXF1ZXN0Ol0pOgorICAgICAgICAoLVtXZWJGcmFtZSBf
bG9hZERhdGE6TUlNRVR5cGU6dGV4dEVuY29kaW5nTmFtZTpiYXNlVVJMOnVucmVhY2hhYmxlVVJM
Ol0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUERGVmlldy5tbToKKyAgICAgICAgKC1bV2ViUERG
VmlldyBQREZWaWV3V2lsbENsaWNrT25MaW5rOndpdGhVUkw6XSk6CisKIDIwMjAtMDQtMTcgIFJv
YiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBNb3ZlIGFsbG93UGx1Z2lucyB0
byBGcmFtZUxvYWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDlhMTk0ODBjMGYz
OWU0ZmQxYjgwYjAwZWZlZDE1MjNkNGVlN2I0NjAuLjQ4NWM3ZjBhNmM3ZTQwZGE3NTcyMDVhOWVk
OGQ1NDUyYjAxOWNmMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MiBAQAorMjAyMC0wNC0xNyAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAg
IFJlZHVjZSBwYXJhbWV0ZXIgbGlzdCBvZiB0aGUgRnJhbWVMb2FkUmVxdWVzdCBjb25zdHJ1Y3Rv
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNjY4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRhcHQg
dG8gQVBJIGNoYW5nZS4KKworICAgICAgICAqIFBsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVn
aW5WaWV3OjpwZXJmb3JtUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpn
ZXRVUkxOb3RpZnkpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6Z2V0VVJMKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmhhbmRsZVBvc3QpOgorICAgICAgICAqIFdlYkZy
YW1lLmNwcDoKKyAgICAgICAgKFdlYkZyYW1lOjpsb2FkUmVxdWVzdCk6CisgICAgICAgIChXZWJG
cmFtZTo6bG9hZERhdGEpOgorCiAyMDIwLTA0LTE3ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5j
b20+CiAKICAgICAgICAgTW92ZSBhbGxvd1BsdWdpbnMgdG8gRnJhbWVMb2FkZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2Fs
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExv
Y2FsLmNwcAppbmRleCBhNDg2MTI3ODJkMmJiMzkxYWI2YWU1ZTdkOGMzMjQ5MDFhZWMxZDliLi5i
ZTFhZjQzYTcxZjI2NDZjMDA3ZDYzMTE0NWE2NTk3ODNmNDRlNTQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwu
Y3BwCkBAIC0yNTQsNyArMjU0LDcgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2Fs
OjpvcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmwpCiB7CiAgICAgVXNlckdlc3R1cmVJbmRp
Y2F0b3IgaW5kaWNhdG9yIHsgUHJvY2Vzc2luZ1VzZXJHZXN0dXJlIH07CiAgICAgRnJhbWUmIG1h
aW5GcmFtZSA9IG1faW5zcGVjdGVkUGFnZUNvbnRyb2xsZXItPmluc3BlY3RlZFBhZ2UoKS5tYWlu
RnJhbWUoKTsKLSAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyAqbWFpbkZy
YW1lLmRvY3VtZW50KCksIG1haW5GcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB7
IH0sICJfYmxhbmsiX3MsIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8s
IFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmluZywgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJM
OjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgU2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeTo6U2hvdWxkTm90QWxsb3csIEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpVbmtub3duIH07
CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgKm1haW5GcmFtZS5kb2N1
bWVudCgpLCBtYWluRnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgeyB9LCAiX2Js
YW5rIl9zLCBJbml0aWF0ZWRCeU1haW5GcmFtZTo6VW5rbm93biB9OwogCiAgICAgYm9vbCBjcmVh
dGVkOwogICAgIGF1dG8gZnJhbWUgPSBXZWJDb3JlOjpjcmVhdGVXaW5kb3cobWFpbkZyYW1lLCBt
YWluRnJhbWUsIFdURk1vdmUoZnJhbWVMb2FkUmVxdWVzdCksIHsgfSwgY3JlYXRlZCk7CkBAIC0y
NjYsNyArMjY2LDcgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpvcGVuSW5O
ZXdUYWIoY29uc3QgU3RyaW5nJiB1cmwpCiAKICAgICAvLyBGSVhNRTogV2h5IGRvIHdlIGNvbXB1
dGUgdGhlIGFic29sdXRlIFVSTCB3aXRoIHJlc3BlY3QgdG8gfGZyYW1lfCBpbnN0ZWFkIG9mIHxt
YWluRnJhbWV8PwogICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVlc3QgeyBmcmFtZS0+
ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwodXJsKSB9OwotICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJh
bWVMb2FkUmVxdWVzdDIgeyAqbWFpbkZyYW1lLmRvY3VtZW50KCksIG1haW5GcmFtZS5kb2N1bWVu
dCgpLT5zZWN1cml0eU9yaWdpbigpLCBXVEZNb3ZlKHJlc291cmNlUmVxdWVzdCksICJfc2VsZiJf
cywgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgUmVmZXJyZXJQb2xp
Y3k6OkVtcHR5U3RyaW5nLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJh
bWVPcGVuZXJQb2xpY3k6OkFsbG93LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91
bGROb3RBbGxvdywgSW5pdGlhdGVkQnlNYWluRnJhbWU6OlVua25vd24gfTsKKyAgICBGcmFtZUxv
YWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QyIHsgKm1haW5GcmFtZS5kb2N1bWVudCgpLCBtYWlu
RnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgV1RGTW92ZShyZXNvdXJjZVJlcXVl
c3QpLCAiX3NlbGYiX3MsIEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpVbmtub3duIH07CiAgICAgZnJh
bWUtPmxvYWRlcigpLmNoYW5nZUxvY2F0aW9uKFdURk1vdmUoZnJhbWVMb2FkUmVxdWVzdDIpKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JQYWdlQWdlbnQuY3BwCmluZGV4IDBlMmUzYzJiY2MyZmUxNjdjMjQ2YTVmNTVjNGRlM2I1MjI4
MmE1MTYuLjNlODY4MGUxZGYxNTI0NWRmMjUwYWE4ZTUyYzMxMjY5MzU4MzIwMzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2Vu
dC5jcHAKQEAgLTQyMSw3ICs0MjEsOCBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6bmF2aWdh
dGUoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHVybCkKICAgICBGcmFtZSYgZnJhbWUgPSBt
X2luc3BlY3RlZFBhZ2UubWFpbkZyYW1lKCk7CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVzb3Vy
Y2VSZXF1ZXN0IHsgZnJhbWUuZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwodXJsKSB9OwotICAgIEZy
YW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7ICpmcmFtZS5kb2N1bWVudCgpLCBmcmFt
ZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBXVEZNb3ZlKHJlc291cmNlUmVxdWVzdCks
ICJfc2VsZiJfcywgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgUmVm
ZXJyZXJQb2xpY3k6OkVtcHR5U3RyaW5nLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6Ok5v
LCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3k6OlNob3VsZE5vdEFsbG93LCBJbml0aWF0ZWRCeU1haW5GcmFtZTo6VW5rbm93biB9OworICAg
IEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7ICpmcmFtZS5kb2N1bWVudCgpLCBm
cmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBXVEZNb3ZlKHJlc291cmNlUmVxdWVz
dCksICJfc2VsZiJfcywgSW5pdGlhdGVkQnlNYWluRnJhbWU6OlVua25vd24gfTsKKyAgICBmcmFt
ZUxvYWRSZXF1ZXN0LmRpc2FibGVOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMKCk7CiAgICAgZnJhbWUu
bG9hZGVyKCkuY2hhbmdlTG9jYXRpb24oV1RGTW92ZShmcmFtZUxvYWRSZXF1ZXN0KSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDc5NjUxM2MyMGM3
MDFjZDg1MTFlNzJjMGI1YzY0NjYxMjM5MmYyMWIuLmEyZDVkMTBiMTQxMTFjYWU2MjNmNTgyNmYw
NmE3ZGRiYTA1MTMzZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNw
cApAQCAtMjIzMyw3ICsyMjMzLDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Y2FuY2VsTWFpblJl
c291cmNlTG9hZEZvckNvbnRlbnRGaWx0ZXIoY29uc3QgUmVzb3VyY2VFcnJvciYKIAogdm9pZCBE
b2N1bWVudExvYWRlcjo6aGFuZGxlUHJvdmlzaW9uYWxMb2FkRmFpbHVyZUZyb21Db250ZW50Rmls
dGVyKGNvbnN0IFVSTCYgYmxvY2tlZFBhZ2VVUkwsIFN1YnN0aXR1dGVEYXRhJiBzdWJzdGl0dXRl
RGF0YSkKIHsKLSAgICBmcmFtZUxvYWRlcigpLT5sb2FkKEZyYW1lTG9hZFJlcXVlc3QoKmZyYW1l
KCksIGJsb2NrZWRQYWdlVVJMLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRO
b3RBbGxvdywgc3Vic3RpdHV0ZURhdGEpKTsKKyAgICBmcmFtZUxvYWRlcigpLT5sb2FkKEZyYW1l
TG9hZFJlcXVlc3QoKmZyYW1lKCksIGJsb2NrZWRQYWdlVVJMLCBzdWJzdGl0dXRlRGF0YSkpOwog
fQogCiBSZXNvdXJjZUVycm9yIERvY3VtZW50TG9hZGVyOjpjb250ZW50RmlsdGVyRGlkQmxvY2so
Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyIHVuYmxvY2tIYW5kbGVyLCBXVEY6OlN0cmluZyYm
IHVuYmxvY2tSZXF1ZXN0RGVuaWVkU2NyaXB0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZFJlcXVlc3QuY3BwCmluZGV4IDk5NDNjMGU3MjkyMWM5YzQ5ZjMzMTIwZDJjN2I5OTJlMThk
OWZlMmMuLmRhMDdiNWE5YTA2YmMxNjNkYmU2OTllZDk3YzFlOTE2ZDUwZWMwNDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5jcHAKQEAgLTM3LDM1ICszNywyMiBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUZyYW1lTG9hZFJlcXVlc3Q6OkZyYW1lTG9hZFJl
cXVlc3QoRG9jdW1lbnQmIHJlcXVlc3RlciwgU2VjdXJpdHlPcmlnaW4mIHJlcXVlc3RlclNlY3Vy
aXR5T3JpZ2luLCBSZXNvdXJjZVJlcXVlc3QmJiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN0cmlu
ZyYgZnJhbWVOYW1lLCBMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlz
dCBsb2NrQmFja0ZvcndhcmRMaXN0LCBjb25zdCBSZWZlcnJlclBvbGljeSYgcmVmZXJyZXJQb2xp
Y3ksIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRV
UkwsIE5ld0ZyYW1lT3BlbmVyUG9saWN5IG5ld0ZyYW1lT3BlbmVyUG9saWN5LCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIEluaXRpYXRl
ZEJ5TWFpbkZyYW1lIGluaXRpYXRlZEJ5TWFpbkZyYW1lLCBTaG91bGRSZXBsYWNlRG9jdW1lbnRJ
ZkphdmFTY3JpcHRVUkwgc2hvdWxkUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJMLCBjb25z
dCBBdG9tU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgY29uc3QgU3lzdGVtUHJldmlld0luZm8m
IHN5c3RlbVByZXZpZXdJbmZvKQorRnJhbWVMb2FkUmVxdWVzdDo6RnJhbWVMb2FkUmVxdWVzdChE
b2N1bWVudCYgcmVxdWVzdGVyLCBTZWN1cml0eU9yaWdpbiYgcmVxdWVzdGVyU2VjdXJpdHlPcmln
aW4sIFJlc291cmNlUmVxdWVzdCYmIHJlc291cmNlUmVxdWVzdCwgY29uc3QgU3RyaW5nJiBmcmFt
ZU5hbWUsIEluaXRpYXRlZEJ5TWFpbkZyYW1lIGluaXRpYXRlZEJ5TWFpbkZyYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgY29uc3QgU3lzdGVtUHJldmlld0luZm8mIHN5
c3RlbVByZXZpZXdJbmZvKQogICAgIDogbV9yZXF1ZXN0ZXIgeyBtYWtlUmVmKHJlcXVlc3Rlcikg
fQogICAgICwgbV9yZXF1ZXN0ZXJTZWN1cml0eU9yaWdpbiB7IG1ha2VSZWYocmVxdWVzdGVyU2Vj
dXJpdHlPcmlnaW4pIH0KICAgICAsIG1fcmVzb3VyY2VSZXF1ZXN0IHsgV1RGTW92ZShyZXNvdXJj
ZVJlcXVlc3QpIH0KICAgICAsIG1fZnJhbWVOYW1lIHsgZnJhbWVOYW1lIH0KLSAgICAsIG1fbG9j
a0hpc3RvcnkgeyBsb2NrSGlzdG9yeSB9Ci0gICAgLCBtX2xvY2tCYWNrRm9yd2FyZExpc3QgeyBs
b2NrQmFja0ZvcndhcmRMaXN0IH0KLSAgICAsIG1fcmVmZXJyZXJQb2xpY3kgeyByZWZlcnJlclBv
bGljeSB9Ci0gICAgLCBtX2FsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCB7IGFsbG93TmF2aWdh
dGlvblRvSW52YWxpZFVSTCB9Ci0gICAgLCBtX25ld0ZyYW1lT3BlbmVyUG9saWN5IHsgbmV3RnJh
bWVPcGVuZXJQb2xpY3kgfQotICAgICwgbV9zaG91bGRSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3Jp
cHRVUkwgeyBzaG91bGRSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwgfQotICAgICwgbV9z
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHsgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eSB9CiAgICAgLCBtX2Rvd25sb2FkQXR0cmlidXRlIHsgZG93bmxvYWRBdHRyaWJ1dGUgfQogICAg
ICwgbV9pbml0aWF0ZWRCeU1haW5GcmFtZSB7IGluaXRpYXRlZEJ5TWFpbkZyYW1lIH0KICAgICAs
IG1fc3lzdGVtUHJldmlld0luZm8geyBzeXN0ZW1QcmV2aWV3SW5mbyB9CiB7CiB9CiAKLUZyYW1l
TG9hZFJlcXVlc3Q6OkZyYW1lTG9hZFJlcXVlc3QoRnJhbWUmIGZyYW1lLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBz
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBjb25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vic3Rp
dHV0ZURhdGEpCitGcmFtZUxvYWRSZXF1ZXN0OjpGcmFtZUxvYWRSZXF1ZXN0KEZyYW1lJiBmcmFt
ZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN1YnN0aXR1
dGVEYXRhJiBzdWJzdGl0dXRlRGF0YSkKICAgICA6IG1fcmVxdWVzdGVyIHsgbWFrZVJlZigqZnJh
bWUuZG9jdW1lbnQoKSkgfQogICAgICwgbV9yZXF1ZXN0ZXJTZWN1cml0eU9yaWdpbiB7IG1ha2VS
ZWYoZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSkgfQogICAgICwgbV9yZXNvdXJj
ZVJlcXVlc3QgeyByZXNvdXJjZVJlcXVlc3QgfQogICAgICwgbV9zdWJzdGl0dXRlRGF0YSB7IHN1
YnN0aXR1dGVEYXRhIH0KLSAgICAsIG1fbG9ja0hpc3RvcnkgeyBMb2NrSGlzdG9yeTo6Tm8gfQot
ICAgICwgbV9sb2NrQmFja0ZvcndhcmRMaXN0IHsgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8gfQot
ICAgICwgbV9hbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwgeyBBbGxvd05hdmlnYXRpb25Ub0lu
dmFsaWRVUkw6OlllcyB9Ci0gICAgLCBtX25ld0ZyYW1lT3BlbmVyUG9saWN5IHsgTmV3RnJhbWVP
cGVuZXJQb2xpY3k6OkFsbG93IH0KLSAgICAsIG1fc2hvdWxkUmVwbGFjZURvY3VtZW50SWZKYXZh
U2NyaXB0VVJMIHsgUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJMIH0KLSAgICAsIG1fc2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSB7IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kg
fQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVx
dWVzdC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaAppbmRleCBk
OGJjMTdiMWQ3NDI3NTNhMmNlYWEyMmY4NTM2MzVkODQxZDQ2NGU4Li45NGFlNTVhNjc2NWYzODE0
YmVmNDU1ZjJkYmFlMDZkMDNkZjI0NmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRSZXF1ZXN0LmgKQEAgLTM5LDggKzM5LDggQEAgY2xhc3MgU2VjdXJpdHlPcmlnaW47CiAKIGNs
YXNzIEZyYW1lTG9hZFJlcXVlc3QgewogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIEZyYW1l
TG9hZFJlcXVlc3QoRG9jdW1lbnQmLCBTZWN1cml0eU9yaWdpbiYsIFJlc291cmNlUmVxdWVzdCYm
LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgTG9ja0hpc3RvcnksIExvY2tCYWNrRm9yd2FyZExp
c3QsIGNvbnN0IFJlZmVycmVyUG9saWN5JiwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBO
ZXdGcmFtZU9wZW5lclBvbGljeSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgSW5pdGlh
dGVkQnlNYWluRnJhbWUsIFNob3VsZFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCA9IFJl
cGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCwgY29uc3QgQXRvbVN0cmluZyYgZG93bmxvYWRB
dHRyaWJ1dGUgPSB7IH0sIGNvbnN0IFN5c3RlbVByZXZpZXdJbmZvJiA9IHsgfSk7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgRnJhbWVMb2FkUmVxdWVzdChGcmFtZSYsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiA9
IFN1YnN0aXR1dGVEYXRhKCkpOworICAgIFdFQkNPUkVfRVhQT1JUIEZyYW1lTG9hZFJlcXVlc3Qo
RG9jdW1lbnQmLCBTZWN1cml0eU9yaWdpbiYsIFJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBTdHJp
bmcmIGZyYW1lTmFtZSwgSW5pdGlhdGVkQnlNYWluRnJhbWUsIGNvbnN0IEF0b21TdHJpbmcmIGRv
d25sb2FkQXR0cmlidXRlID0geyB9LCBjb25zdCBTeXN0ZW1QcmV2aWV3SW5mbyYgPSB7IH0pOwor
ICAgIFdFQkNPUkVfRVhQT1JUIEZyYW1lTG9hZFJlcXVlc3QoRnJhbWUmLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBTdWJzdGl0dXRlRGF0YSYgPSBTdWJzdGl0dXRlRGF0YSgpKTsKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIH5GcmFtZUxvYWRSZXF1ZXN0KCk7CiAKQEAgLTcyLDE4ICs3Miwy
NCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRMb2NrSGlzdG9yeShMb2NrSGlzdG9yeSB2YWx1ZSkg
eyBtX2xvY2tIaXN0b3J5ID0gdmFsdWU7IH0KIAogICAgIExvY2tCYWNrRm9yd2FyZExpc3QgbG9j
a0JhY2tGb3J3YXJkTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9ja0JhY2tGb3J3YXJkTGlzdDsg
fQotICAgIHZvaWQgc2V0bG9ja0JhY2tGb3J3YXJkTGlzdChMb2NrQmFja0ZvcndhcmRMaXN0IHZh
bHVlKSB7IG1fbG9ja0JhY2tGb3J3YXJkTGlzdCA9IHZhbHVlOyB9CisgICAgdm9pZCBzZXRMb2Nr
QmFja0ZvcndhcmRMaXN0KExvY2tCYWNrRm9yd2FyZExpc3QgdmFsdWUpIHsgbV9sb2NrQmFja0Zv
cndhcmRMaXN0ID0gdmFsdWU7IH0KIAogICAgIGNvbnN0IFN0cmluZyYgY2xpZW50UmVkaXJlY3RT
b3VyY2VGb3JIaXN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRSZWRpcmVjdFNvdXJjZUZv
ckhpc3Rvcnk7IH0KICAgICB2b2lkIHNldENsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeShj
b25zdCBTdHJpbmcmIGNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSkgeyBtX2NsaWVudFJl
ZGlyZWN0U291cmNlRm9ySGlzdG9yeSA9IGNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeTsg
fQogCiAgICAgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3koKSBjb25zdCB7IHJldHVybiBt
X3JlZmVycmVyUG9saWN5OyB9CisgICAgdm9pZCBzZXRSZWZlcnJlclBvbGljeShjb25zdCBSZWZl
cnJlclBvbGljeSYgcmVmZXJyZXJQb2xpY3kpIHsgbV9yZWZlcnJlclBvbGljeSA9IHJlZmVycmVy
UG9saWN5OyB9CisKICAgICBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwgYWxsb3dOYXZpZ2F0
aW9uVG9JbnZhbGlkVVJMKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd05hdmlnYXRpb25Ub0ludmFs
aWRVUkw7IH0KKyAgICB2b2lkIGRpc2FibGVOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMKCkgeyBtX2Fs
bG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCA9IEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6
Tm87IH0KKwogICAgIE5ld0ZyYW1lT3BlbmVyUG9saWN5IG5ld0ZyYW1lT3BlbmVyUG9saWN5KCkg
Y29uc3QgeyByZXR1cm4gbV9uZXdGcmFtZU9wZW5lclBvbGljeTsgfQorICAgIHZvaWQgc2V0TmV3
RnJhbWVPcGVuZXJQb2xpY3koTmV3RnJhbWVPcGVuZXJQb2xpY3kgbmV3RnJhbWVPcGVuZXJQb2xp
Y3kpIHsgbV9uZXdGcmFtZU9wZW5lclBvbGljeSA9IG5ld0ZyYW1lT3BlbmVyUG9saWN5OyB9CiAK
ICAgICAvLyBUaGUgc2hvdWxkUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJMIHBhcmFtZXRl
ciB3aWxsIGdvIGF3YXkgd2hlbiB0aGUgRklYTUUgdG8gZWxpbWluYXRlIHRoZQogICAgIC8vIGNv
cnJlc3BvbmRpbmcgcGFyYW1ldGVyIGZyb20gU2NyaXB0Q29udHJvbGxlcjo6ZXhlY3V0ZUlmSmF2
YVNjcmlwdFVSTCgpIGlzIGFkZHJlc3NlZC4KICAgICBTaG91bGRSZXBsYWNlRG9jdW1lbnRJZkph
dmFTY3JpcHRVUkwgc2hvdWxkUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJMKCkgY29uc3Qg
eyByZXR1cm4gbV9zaG91bGRSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkw7IH0KKyAgICB2
b2lkIGRpc2FibGVTaG91bGRSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3JpcHRVUkwoKSB7IG1fc2hv
dWxkUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJMID0gRG9Ob3RSZXBsYWNlRG9jdW1lbnRJ
ZkphdmFTY3JpcHRVUkw7IH0KIAogICAgIHZvaWQgc2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeShTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHBvbGljeSkgeyBtX3Nob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3kgPSBwb2xpY3k7IH0KICAgICBTaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX3No
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k7IH0KQEAgLTEwOCwxMiArMTE0LDEyIEBAIHByaXZh
dGU6CiAKICAgICBib29sIG1fc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3kgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9zaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgeyBmYWxzZSB9OwotICAgIExv
Y2tIaXN0b3J5IG1fbG9ja0hpc3Rvcnk7Ci0gICAgTG9ja0JhY2tGb3J3YXJkTGlzdCBtX2xvY2tC
YWNrRm9yd2FyZExpc3Q7CisgICAgTG9ja0hpc3RvcnkgbV9sb2NrSGlzdG9yeSB7IExvY2tIaXN0
b3J5OjpObyB9OworICAgIExvY2tCYWNrRm9yd2FyZExpc3QgbV9sb2NrQmFja0ZvcndhcmRMaXN0
IHsgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8gfTsKICAgICBSZWZlcnJlclBvbGljeSBtX3JlZmVy
cmVyUG9saWN5IHsgUmVmZXJyZXJQb2xpY3k6OkVtcHR5U3RyaW5nIH07Ci0gICAgQWxsb3dOYXZp
Z2F0aW9uVG9JbnZhbGlkVVJMIG1fYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOwotICAgIE5l
d0ZyYW1lT3BlbmVyUG9saWN5IG1fbmV3RnJhbWVPcGVuZXJQb2xpY3k7Ci0gICAgU2hvdWxkUmVw
bGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJMIG1fc2hvdWxkUmVwbGFjZURvY3VtZW50SWZKYXZh
U2NyaXB0VVJMOworICAgIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCBtX2FsbG93TmF2aWdh
dGlvblRvSW52YWxpZFVSTCB7IEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzIH07Cisg
ICAgTmV3RnJhbWVPcGVuZXJQb2xpY3kgbV9uZXdGcmFtZU9wZW5lclBvbGljeSB7IE5ld0ZyYW1l
T3BlbmVyUG9saWN5OjpBbGxvdyB9OworICAgIFNob3VsZFJlcGxhY2VEb2N1bWVudElmSmF2YVNj
cmlwdFVSTCBtX3Nob3VsZFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCB7IFJlcGxhY2VE
b2N1bWVudElmSmF2YVNjcmlwdFVSTCB9OwogICAgIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3kgbV9zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHsgU2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeTo6U2hvdWxkTm90QWxsb3cgfTsKICAgICBBdG9tU3RyaW5nIG1fZG93bmxvYWRBdHRy
aWJ1dGU7CiAgICAgSW5pdGlhdGVkQnlNYWluRnJhbWUgbV9pbml0aWF0ZWRCeU1haW5GcmFtZSB7
IEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpVbmtub3duIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcAppbmRleCBjNmMzZmY5MWMyYWU5NzU2MTViNTg0Y2U1MGI2YWE5NzRkMjhhYTBi
Li4xNzE1YjA1NDhhMGUxNGM1NTcwNThhYWVlYTA0NDRiZGZkMmMzNTA5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTQyMCw3ICs0MjAsMTQgQEAgdm9pZCBGcmFtZUxv
YWRlcjo6Y2hhbmdlTG9jYXRpb24oY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcGFzc2Vk
VGFyZ2V0LCBFdmUKICAgICBhdXRvIGluaXRpYXRlZEJ5TWFpbkZyYW1lID0gZnJhbWUgJiYgZnJh
bWUtPmlzTWFpbkZyYW1lKCkgPyBJbml0aWF0ZWRCeU1haW5GcmFtZTo6WWVzIDogSW5pdGlhdGVk
QnlNYWluRnJhbWU6OlVua25vd247CiAKICAgICBOZXdGcmFtZU9wZW5lclBvbGljeSBuZXdGcmFt
ZU9wZW5lclBvbGljeSA9IG9wZW5lclBvbGljeS52YWx1ZU9yKHJlZmVycmVyUG9saWN5ID09IFJl
ZmVycmVyUG9saWN5OjpOb1JlZmVycmVyID8gTmV3RnJhbWVPcGVuZXJQb2xpY3k6OlN1cHByZXNz
IDogTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93KTsKLSAgICBjaGFuZ2VMb2NhdGlvbihGcmFt
ZUxvYWRSZXF1ZXN0KCptX2ZyYW1lLmRvY3VtZW50KCksIG1fZnJhbWUuZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKSwgeyB1cmwgfSwgcGFzc2VkVGFyZ2V0LCBsb2NrSGlzdG9yeSwgbG9ja0Jh
Y2tGb3J3YXJkTGlzdCwgcmVmZXJyZXJQb2xpY3ksIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVS
TDo6WWVzLCBuZXdGcmFtZU9wZW5lclBvbGljeSwgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eSwgaW5pdGlhdGVkQnlNYWluRnJhbWUsIERvTm90UmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0
VVJMLCBkb3dubG9hZEF0dHJpYnV0ZSwgc3lzdGVtUHJldmlld0luZm8pLCB0cmlnZ2VyaW5nRXZl
bnQsIFdURk1vdmUoYWRDbGlja0F0dHJpYnV0aW9uKSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCBm
cmFtZUxvYWRSZXF1ZXN0KCptX2ZyYW1lLmRvY3VtZW50KCksIG1fZnJhbWUuZG9jdW1lbnQoKS0+
c2VjdXJpdHlPcmlnaW4oKSwgeyB1cmwgfSwgcGFzc2VkVGFyZ2V0LCBpbml0aWF0ZWRCeU1haW5G
cmFtZSwgZG93bmxvYWRBdHRyaWJ1dGUsIHN5c3RlbVByZXZpZXdJbmZvKTsKKyAgICBmcmFtZUxv
YWRSZXF1ZXN0LnNldExvY2tIaXN0b3J5KGxvY2tIaXN0b3J5KTsKKyAgICBmcmFtZUxvYWRSZXF1
ZXN0LnNldExvY2tCYWNrRm9yd2FyZExpc3QobG9ja0JhY2tGb3J3YXJkTGlzdCk7CisgICAgZnJh
bWVMb2FkUmVxdWVzdC5zZXROZXdGcmFtZU9wZW5lclBvbGljeShuZXdGcmFtZU9wZW5lclBvbGlj
eSk7CisgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRSZWZlcnJlclBvbGljeShyZWZlcnJlclBvbGlj
eSk7CisgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
KHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOworICAgIGZyYW1lTG9hZFJlcXVlc3QuZGlz
YWJsZVNob3VsZFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCgpOworICAgIGNoYW5nZUxv
Y2F0aW9uKFdURk1vdmUoZnJhbWVMb2FkUmVxdWVzdCksIHRyaWdnZXJpbmdFdmVudCwgV1RGTW92
ZShhZENsaWNrQXR0cmlidXRpb24pKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6Y2hhbmdlTG9j
YXRpb24oRnJhbWVMb2FkUmVxdWVzdCYmIGZyYW1lUmVxdWVzdCwgRXZlbnQqIHRyaWdnZXJpbmdF
dmVudCwgT3B0aW9uYWw8QWRDbGlja0F0dHJpYnV0aW9uPiYmIGFkQ2xpY2tBdHRyaWJ1dGlvbikK
QEAgLTk4Nyw3ICs5OTQsOSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkVVJMSW50b0NoaWxkRnJh
bWUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJlciwgRgogICAgIGF1dG8qIGxl
eGljYWxGcmFtZSA9IGxleGljYWxGcmFtZUZyb21Db21tb25WTSgpOwogICAgIGF1dG8gaW5pdGlh
dGVkQnlNYWluRnJhbWUgPSBsZXhpY2FsRnJhbWUgJiYgbGV4aWNhbEZyYW1lLT5pc01haW5GcmFt
ZSgpID8gSW5pdGlhdGVkQnlNYWluRnJhbWU6OlllcyA6IEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpV
bmtub3duOwogCi0gICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgKm1fZnJh
bWUuZG9jdW1lbnQoKSwgbV9mcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB7IHVy
bCB9LCAiX3NlbGYiX3MsIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6WWVz
LCBSZWZlcnJlclBvbGljeTo6RW1wdHlTdHJpbmcsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVS
TDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6U3VwcHJlc3MsIFNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93LCBpbml0aWF0ZWRCeU1haW5GcmFtZSB9OworICAg
IEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7ICptX2ZyYW1lLmRvY3VtZW50KCks
IG1fZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgeyB1cmwgfSwgIl9zZWxmIl9z
LCBpbml0aWF0ZWRCeU1haW5GcmFtZSB9OworICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0TmV3RnJh
bWVPcGVuZXJQb2xpY3koTmV3RnJhbWVPcGVuZXJQb2xpY3k6OlN1cHByZXNzKTsKKyAgICBmcmFt
ZUxvYWRSZXF1ZXN0LnNldExvY2tCYWNrRm9yd2FyZExpc3QoTG9ja0JhY2tGb3J3YXJkTGlzdDo6
WWVzKTsKICAgICBjaGlsZEZyYW1lLT5sb2FkZXIoKS5sb2FkVVJMKFdURk1vdmUoZnJhbWVMb2Fk
UmVxdWVzdCksIHJlZmVyZXIsIEZyYW1lTG9hZFR5cGU6OlJlZGlyZWN0V2l0aExvY2tlZEJhY2tG
b3J3YXJkTGlzdCwgbnVsbHB0ciwgeyB9LCBXVEY6Om51bGxvcHQsIFtdIHsgfSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAppbmRleCBjZjUy
NGViNWY1ZDE4YTMzYjY5MjI1ODJjMDU0MzE4YWRkNjVhNmI3Li41OWY2ZDU4Y2FhNTlkMGM1YTZl
YWYxNWU1OGJhNWQyNDg0NDhkN2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TmF2aWdhdGlvblNjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmln
YXRpb25TY2hlZHVsZXIuY3BwCkBAIC0xODUsNyArMTg1LDExIEBAIHB1YmxpYzoKICAgICAgICAg
UmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdCB7IHVybCgpLCByZWZlcnJlcigpLCByZWZy
ZXNoID8gUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3k6OlJlbG9hZElnbm9yaW5nQ2FjaGVEYXRh
IDogUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3k6OlVzZVByb3RvY29sQ2FjaGVQb2xpY3kgfTsK
ICAgICAgICAgaWYgKGluaXRpYXRlZEJ5TWFpbkZyYW1lKCkgPT0gSW5pdGlhdGVkQnlNYWluRnJh
bWU6OlllcykKICAgICAgICAgICAgIHJlc291cmNlUmVxdWVzdC5zZXRSZXF1ZXN0ZXIoUmVzb3Vy
Y2VSZXF1ZXN0OjpSZXF1ZXN0ZXI6Ok1haW4pOwotICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZy
YW1lTG9hZFJlcXVlc3QgeyBpbml0aWF0aW5nRG9jdW1lbnQoKSwgKnNlY3VyaXR5T3JpZ2luKCks
IFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0KSwgIl9zZWxmIiwgbG9ja0hpc3RvcnkoKSwgbG9ja0Jh
Y2tGb3J3YXJkTGlzdCgpLCBSZWZlcnJlclBvbGljeTo6RW1wdHlTdHJpbmcsIEFsbG93TmF2aWdh
dGlvblRvSW52YWxpZFVSTDo6Tm8sIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgc2hvdWxk
T3BlbkV4dGVybmFsVVJMcygpLCBpbml0aWF0ZWRCeU1haW5GcmFtZSgpIH07CisgICAgICAgIEZy
YW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7IGluaXRpYXRpbmdEb2N1bWVudCgpLCAq
c2VjdXJpdHlPcmlnaW4oKSwgV1RGTW92ZShyZXNvdXJjZVJlcXVlc3QpLCAiX3NlbGYiLCBpbml0
aWF0ZWRCeU1haW5GcmFtZSgpIH07CisgICAgICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0TG9ja0hp
c3RvcnkobG9ja0hpc3RvcnkoKSk7CisgICAgICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0TG9ja0Jh
Y2tGb3J3YXJkTGlzdChsb2NrQmFja0ZvcndhcmRMaXN0KCkpOworICAgICAgICBmcmFtZUxvYWRS
ZXF1ZXN0LmRpc2FibGVOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMKCk7CisgICAgICAgIGZyYW1lTG9h
ZFJlcXVlc3Quc2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShzaG91bGRPcGVuRXh0ZXJu
YWxVUkxzKCkpOwogCiAgICAgICAgIGZyYW1lLmxvYWRlcigpLmNoYW5nZUxvY2F0aW9uKFdURk1v
dmUoZnJhbWVMb2FkUmVxdWVzdCkpOwogICAgIH0KQEAgLTIxMCw3ICsyMTQsMTEgQEAgcHVibGlj
OgogICAgICAgICBVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yIHsgdXNlckdl
c3R1cmVUb0ZvcndhcmQoKSB9OwogCiAgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJl
cXVlc3QgeyB1cmwoKSwgcmVmZXJyZXIoKSwgUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3k6OlVz
ZVByb3RvY29sQ2FjaGVQb2xpY3kgfTsKLSAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxv
YWRSZXF1ZXN0IHsgaW5pdGlhdGluZ0RvY3VtZW50KCksICpzZWN1cml0eU9yaWdpbigpLCBXVEZN
b3ZlKHJlc291cmNlUmVxdWVzdCksICJfc2VsZiIsIGxvY2tIaXN0b3J5KCksIGxvY2tCYWNrRm9y
d2FyZExpc3QoKSwgUmVmZXJyZXJQb2xpY3k6OkVtcHR5U3RyaW5nLCBBbGxvd05hdmlnYXRpb25U
b0ludmFsaWRVUkw6Ok5vLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIHNob3VsZE9wZW5F
eHRlcm5hbFVSTHMoKSwgaW5pdGlhdGVkQnlNYWluRnJhbWUoKSB9OworICAgICAgICBGcmFtZUxv
YWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyBpbml0aWF0aW5nRG9jdW1lbnQoKSwgKnNlY3Vy
aXR5T3JpZ2luKCksIFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0KSwgIl9zZWxmIiwgaW5pdGlhdGVk
QnlNYWluRnJhbWUoKSB9OworICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldExvY2tIaXN0b3J5
KGxvY2tIaXN0b3J5KCkpOworICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldExvY2tCYWNrRm9y
d2FyZExpc3QobG9ja0JhY2tGb3J3YXJkTGlzdCgpKTsKKyAgICAgICAgZnJhbWVMb2FkUmVxdWVz
dC5kaXNhYmxlTmF2aWdhdGlvblRvSW52YWxpZFVSTCgpOworICAgICAgICBmcmFtZUxvYWRSZXF1
ZXN0LnNldFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koc2hvdWxkT3BlbkV4dGVybmFsVVJM
cygpKTsKIAogICAgICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShtX2NvbXBs
ZXRpb25IYW5kbGVyKTsKICAgICAgICAgZnJhbWUubG9hZGVyKCkuY2hhbmdlTG9jYXRpb24oV1RG
TW92ZShmcmFtZUxvYWRSZXF1ZXN0KSk7CkBAIC0yMzMsNyArMjQxLDEwIEBAIHB1YmxpYzoKICAg
ICAgICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgZ2VzdHVyZUluZGljYXRvciB7IHVzZXJHZXN0dXJl
VG9Gb3J3YXJkKCkgfTsKIAogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVzb3VyY2VSZXF1ZXN0
IHsgdXJsKCksIHJlZmVycmVyKCksIFJlc291cmNlUmVxdWVzdENhY2hlUG9saWN5OjpSZWxvYWRJ
Z25vcmluZ0NhY2hlRGF0YSB9OwotICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJl
cXVlc3QgeyBpbml0aWF0aW5nRG9jdW1lbnQoKSwgKnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUo
cmVzb3VyY2VSZXF1ZXN0KSwgIl9zZWxmIiwgbG9ja0hpc3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJk
TGlzdCgpLCBSZWZlcnJlclBvbGljeTo6RW1wdHlTdHJpbmcsIEFsbG93TmF2aWdhdGlvblRvSW52
YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIHNob3VsZE9wZW5FeHRl
cm5hbFVSTHMoKSwgaW5pdGlhdGVkQnlNYWluRnJhbWUoKSB9OworICAgICAgICBGcmFtZUxvYWRS
ZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyBpbml0aWF0aW5nRG9jdW1lbnQoKSwgKnNlY3VyaXR5
T3JpZ2luKCksIFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0KSwgIl9zZWxmIiwgaW5pdGlhdGVkQnlN
YWluRnJhbWUoKSB9OworICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldExvY2tIaXN0b3J5KGxv
Y2tIaXN0b3J5KCkpOworICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldExvY2tCYWNrRm9yd2Fy
ZExpc3QobG9ja0JhY2tGb3J3YXJkTGlzdCgpKTsKKyAgICAgICAgZnJhbWVMb2FkUmVxdWVzdC5z
ZXRTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KHNob3VsZE9wZW5FeHRlcm5hbFVSTHMoKSk7
CiAKICAgICAgICAgZnJhbWUubG9hZGVyKCkuY2hhbmdlTG9jYXRpb24oV1RGTW92ZShmcmFtZUxv
YWRSZXF1ZXN0KSk7CiAgICAgfQpAQCAtMjg5LDcgKzMwMCwxMSBAQCBwdWJsaWM6CiAgICAgICAg
IGF1dG8mIHJlcXVlc3RpbmdEb2N1bWVudCA9IG1fc3VibWlzc2lvbi0+c3RhdGUoKS5zb3VyY2VE
b2N1bWVudCgpOwogICAgICAgICBpZiAoIXJlcXVlc3RpbmdEb2N1bWVudC5jYW5OYXZpZ2F0ZSgm
ZnJhbWUpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZy
YW1lTG9hZFJlcXVlc3QgeyByZXF1ZXN0aW5nRG9jdW1lbnQsIHJlcXVlc3RpbmdEb2N1bWVudC5z
ZWN1cml0eU9yaWdpbigpLCB7IH0sIHsgfSwgbG9ja0hpc3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJk
TGlzdCgpLCByZXF1ZXN0aW5nRG9jdW1lbnQucmVmZXJyZXJQb2xpY3koKSwgQWxsb3dOYXZpZ2F0
aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgc2hvdWxk
T3BlbkV4dGVybmFsVVJMcygpLCBpbml0aWF0ZWRCeU1haW5GcmFtZSgpIH07CisgICAgICAgIEZy
YW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7IHJlcXVlc3RpbmdEb2N1bWVudCwgcmVx
dWVzdGluZ0RvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCksIHsgfSwgeyB9LCBpbml0aWF0ZWRCeU1h
aW5GcmFtZSgpIH07CisgICAgICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0TG9ja0hpc3RvcnkobG9j
a0hpc3RvcnkoKSk7CisgICAgICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0TG9ja0JhY2tGb3J3YXJk
TGlzdChsb2NrQmFja0ZvcndhcmRMaXN0KCkpOworICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNl
dFJlZmVycmVyUG9saWN5KHJlcXVlc3RpbmdEb2N1bWVudC5yZWZlcnJlclBvbGljeSgpKTsKKyAg
ICAgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KHNo
b3VsZE9wZW5FeHRlcm5hbFVSTHMoKSk7CiAgICAgICAgIG1fc3VibWlzc2lvbi0+cG9wdWxhdGVG
cmFtZUxvYWRSZXF1ZXN0KGZyYW1lTG9hZFJlcXVlc3QpOwogICAgICAgICBmcmFtZS5sb2FkZXIo
KS5sb2FkRnJhbWVSZXF1ZXN0KFdURk1vdmUoZnJhbWVMb2FkUmVxdWVzdCksIG1fc3VibWlzc2lv
bi0+ZXZlbnQoKSwgbV9zdWJtaXNzaW9uLT50YWtlU3RhdGUoKSk7CiAgICAgfQpAQCAtMzM5LDgg
KzM1NCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIFN1YnN0aXR1dGVEYXRhIHJlcGxhY2VtZW50RGF0
YSB7IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCksIG1fb3JpZ2luRG9jdW1lbnQudXJsKCksIHJlcGxh
Y2VtZW50UmVzcG9uc2UsIFN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHk6
OkhpZGRlbiB9OwogCiAgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVlc3QgeyBt
X29yaWdpbkRvY3VtZW50LnVybCgpLCBlbXB0eVN0cmluZygpLCBSZXNvdXJjZVJlcXVlc3RDYWNo
ZVBvbGljeTo6UmVsb2FkSWdub3JpbmdDYWNoZURhdGEgfTsKLSAgICAgICAgRnJhbWVMb2FkUmVx
dWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgbV9vcmlnaW5Eb2N1bWVudCwgbV9vcmlnaW5Eb2N1bWVu
dC5zZWN1cml0eU9yaWdpbigpLCBXVEZNb3ZlKHJlc291cmNlUmVxdWVzdCksIHsgfSwgbG9ja0hp
c3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpLCBSZWZlcnJlclBvbGljeTo6RW1wdHlTdHJp
bmcsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGlj
eTo6QWxsb3csIHNob3VsZE9wZW5FeHRlcm5hbFVSTHMoKSwgaW5pdGlhdGVkQnlNYWluRnJhbWUo
KSB9OworICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyBtX29yaWdp
bkRvY3VtZW50LCBtX29yaWdpbkRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUocmVz
b3VyY2VSZXF1ZXN0KSwgeyB9LCBpbml0aWF0ZWRCeU1haW5GcmFtZSgpIH07CisgICAgICAgIGZy
YW1lTG9hZFJlcXVlc3Quc2V0TG9ja0hpc3RvcnkobG9ja0hpc3RvcnkoKSk7CisgICAgICAgIGZy
YW1lTG9hZFJlcXVlc3Quc2V0TG9ja0JhY2tGb3J3YXJkTGlzdChsb2NrQmFja0ZvcndhcmRMaXN0
KCkpOwogICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldFN1YnN0aXR1dGVEYXRhKHJlcGxhY2Vt
ZW50RGF0YSk7CisgICAgICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0U2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeShzaG91bGRPcGVuRXh0ZXJuYWxVUkxzKCkpOwogICAgICAgICBmcmFtZS5sb2Fk
ZXIoKS5sb2FkKFdURk1vdmUoZnJhbWVMb2FkUmVxdWVzdCkpOwogICAgIH0KIApAQCAtNDM5LDcg
KzQ1NywxMSBAQCB2b2lkIE5hdmlnYXRpb25TY2hlZHVsZXI6OnNjaGVkdWxlTG9jYXRpb25DaGFu
Z2UoRG9jdW1lbnQmIGluaXRpYXRpbmdEb2N1bWVudCwgUwogICAgICAgICBhdXRvKiBmcmFtZSA9
IGxleGljYWxGcmFtZUZyb21Db21tb25WTSgpOwogICAgICAgICBhdXRvIGluaXRpYXRlZEJ5TWFp
bkZyYW1lID0gZnJhbWUgJiYgZnJhbWUtPmlzTWFpbkZyYW1lKCkgPyBJbml0aWF0ZWRCeU1haW5G
cmFtZTo6WWVzIDogSW5pdGlhdGVkQnlNYWluRnJhbWU6OlVua25vd247CiAgICAgICAgIAotICAg
ICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyBpbml0aWF0aW5nRG9jdW1l
bnQsIHNlY3VyaXR5T3JpZ2luLCBXVEZNb3ZlKHJlc291cmNlUmVxdWVzdCksICJfc2VsZiJfcywg
bG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QsIFJlZmVycmVyUG9saWN5OjpFbXB0eVN0
cmluZywgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpObywgTmV3RnJhbWVPcGVuZXJQb2xp
Y3k6OkFsbG93LCBpbml0aWF0aW5nRG9jdW1lbnQuc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eVRvUHJvcGFnYXRlKCksIGluaXRpYXRlZEJ5TWFpbkZyYW1lIH07CisgICAgICAgIEZyYW1lTG9h
ZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7IGluaXRpYXRpbmdEb2N1bWVudCwgc2VjdXJpdHlP
cmlnaW4sIFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0KSwgIl9zZWxmIl9zLCBpbml0aWF0ZWRCeU1h
aW5GcmFtZSB9OworICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldExvY2tIaXN0b3J5KGxvY2tI
aXN0b3J5KTsKKyAgICAgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRMb2NrQmFja0ZvcndhcmRMaXN0
KGxvY2tCYWNrRm9yd2FyZExpc3QpOworICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LmRpc2FibGVO
YXZpZ2F0aW9uVG9JbnZhbGlkVVJMKCk7CisgICAgICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0U2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShpbml0aWF0aW5nRG9jdW1lbnQuc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeVRvUHJvcGFnYXRlKCkpOwogICAgICAgICBsb2FkZXIuY2hhbmdlTG9j
YXRpb24oV1RGTW92ZShmcmFtZUxvYWRSZXF1ZXN0KSk7CiAgICAgICAgIHJldHVybiBjb21wbGV0
aW9uSGFuZGxlcigpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29u
dGV4dE1lbnVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVD
b250cm9sbGVyLmNwcAppbmRleCAyYzMyYjJmNWI2ZDRhZWRhMmU4ZWNlNTQzNDQ2NTAwYWRiMTI4
ZjdlLi40ZTQ5MmJiMjYxYmE2YjhlY2JiZDQ1MDcxYTQyNWYzYTI5NTYyOWNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCkBAIC0xOTgsNyArMTk4
LDkgQEAgc3RhdGljIHZvaWQgb3Blbk5ld1dpbmRvdyhjb25zdCBVUkwmIHVybFRvTG9hZCwgRnJh
bWUmIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWwKICAgICBpZiAoIW9sZFBhZ2UpCiAgICAgICAg
IHJldHVybjsKIAotICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7ICpmcmFt
ZS5kb2N1bWVudCgpLCBmcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBSZXNvdXJj
ZVJlcXVlc3QodXJsVG9Mb2FkLCBmcmFtZS5sb2FkZXIoKS5vdXRnb2luZ1JlZmVycmVyKCkpLCB7
IH0sIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIFJlZmVycmVyUG9s
aWN5OjpFbXB0eVN0cmluZywgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0Zy
YW1lT3BlbmVyUG9saWN5OjpTdXBwcmVzcywgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwg
SW5pdGlhdGVkQnlNYWluRnJhbWU6OlVua25vd24gfTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IGZy
YW1lTG9hZFJlcXVlc3QgeyAqZnJhbWUuZG9jdW1lbnQoKSwgZnJhbWUuZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KHVybFRvTG9hZCwgZnJhbWUubG9hZGVyKCku
b3V0Z29pbmdSZWZlcnJlcigpKSwgeyB9LCBJbml0aWF0ZWRCeU1haW5GcmFtZTo6VW5rbm93biB9
OworICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShz
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKKyAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldE5l
d0ZyYW1lT3BlbmVyUG9saWN5KE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpTdXBwcmVzcyk7CiAKICAg
ICBQYWdlKiBuZXdQYWdlID0gb2xkUGFnZS0+Y2hyb21lKCkuY3JlYXRlV2luZG93KGZyYW1lLCB7
IH0sIHsgKmZyYW1lLmRvY3VtZW50KCksIGZyYW1lTG9hZFJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0
KCksIGZyYW1lTG9hZFJlcXVlc3QuaW5pdGlhdGVkQnlNYWluRnJhbWUoKSB9KTsKICAgICBpZiAo
IW5ld1BhZ2UpCkBAIC00MDUsNyArNDA3LDEwIEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVy
Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAg
ICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluazoKICAgICAgICAgaWYgKEZyYW1lKiB0
YXJnZXRGcmFtZSA9IG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkudGFyZ2V0RnJhbWUoKSkgewog
ICAgICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdCB7IG1fY29udGV4dC5o
aXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVMaW5rVVJMKCksIGZyYW1lLT5sb2FkZXIoKS5vdXRnb2lu
Z1JlZmVycmVyKCkgfTsKLSAgICAgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVx
dWVzdCB7ICpmcmFtZS0+ZG9jdW1lbnQoKSwgZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3Jp
Z2luKCksIFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0KSwgeyB9LCBMb2NrSGlzdG9yeTo6Tm8sIExv
Y2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBSZWZlcnJlclBvbGljeTo6RW1wdHlTdHJpbmcsIEFsbG93
TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6U3VwcHJl
c3MsIHRhcmdldEZyYW1lLT5pc01haW5GcmFtZSgpID8gU2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeTo6U2hvdWxkQWxsb3cgOiBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRO
b3RBbGxvdywgSW5pdGlhdGVkQnlNYWluRnJhbWU6OlVua25vd24gfTsKKyAgICAgICAgICAgIEZy
YW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7ICpmcmFtZS0+ZG9jdW1lbnQoKSwgZnJh
bWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0
KSwgeyB9LCBJbml0aWF0ZWRCeU1haW5GcmFtZTo6VW5rbm93biB9OworICAgICAgICAgICAgZnJh
bWVMb2FkUmVxdWVzdC5zZXROZXdGcmFtZU9wZW5lclBvbGljeShOZXdGcmFtZU9wZW5lclBvbGlj
eTo6U3VwcHJlc3MpOworICAgICAgICAgICAgaWYgKHRhcmdldEZyYW1lLT5pc01haW5GcmFtZSgp
KQorICAgICAgICAgICAgICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0U2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeShTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRBbGxvdyk7CiAg
ICAgICAgICAgICB0YXJnZXRGcmFtZS0+bG9hZGVyKCkubG9hZEZyYW1lUmVxdWVzdChXVEZNb3Zl
KGZyYW1lTG9hZFJlcXVlc3QpLCBudWxscHRyLCAgeyB9KTsKICAgICAgICAgfSBlbHNlCiAgICAg
ICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVM
aW5rVVJMKCksICpmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkQWxs
b3cpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDA5YWFiNmIyM2Q3ZDdlNzUwZGRh
ZThmNDExZDBmZWZmODVjYTc2ZTkuLjMyYTRhNGZhYjFhOThiZDM5ZWE0YzUyZjAwMzIyZmU3Yjg3
NmQzOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTI0NDAsNyArMjQ0MCw4IEBA
IEV4Y2VwdGlvbk9yPFJlZlB0cjxGcmFtZT4+IERPTVdpbmRvdzo6Y3JlYXRlV2luZG93KGNvbnN0
IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zCiAgICAgYXV0byBpbml0aWF0ZWRCeU1haW5GcmFtZSA9
IGFjdGl2ZUZyYW1lLT5pc01haW5GcmFtZSgpID8gSW5pdGlhdGVkQnlNYWluRnJhbWU6OlllcyA6
IEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpVbmtub3duOwogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJl
c291cmNlUmVxdWVzdCB7IGNvbXBsZXRlZFVSTCwgcmVmZXJyZXIgfTsKLSAgICBGcmFtZUxvYWRS
ZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyAqYWN0aXZlRG9jdW1lbnQsIGFjdGl2ZURvY3VtZW50
LT5zZWN1cml0eU9yaWdpbigpLCBXVEZNb3ZlKHJlc291cmNlUmVxdWVzdCksIGZyYW1lTmFtZSwg
TG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgUmVmZXJyZXJQb2xpY3k6
OkVtcHR5U3RyaW5nLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVP
cGVuZXJQb2xpY3k6OkFsbG93LCBhY3RpdmVEb2N1bWVudC0+c2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeVRvUHJvcGFnYXRlKCksIGluaXRpYXRlZEJ5TWFpbkZyYW1lIH07CisgICAgRnJhbWVM
b2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgKmFjdGl2ZURvY3VtZW50LCBhY3RpdmVEb2N1
bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwgV1RGTW92ZShyZXNvdXJjZVJlcXVlc3QpLCBmcmFtZU5h
bWUsIGluaXRpYXRlZEJ5TWFpbkZyYW1lIH07CisgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRTaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KGFjdGl2ZURvY3VtZW50LT5zaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5VG9Qcm9wYWdhdGUoKSk7CiAKICAgICAvLyBXZSBwYXNzIHRoZSBvcGVuZXIg
ZnJhbWUgZm9yIHRoZSBsb29rdXBGcmFtZSBpbiBjYXNlIHRoZSBhY3RpdmUgZnJhbWUgaXMgZGlm
ZmVyZW50IGZyb20KICAgICAvLyB0aGUgb3BlbmVyIGZyYW1lLCBhbmQgdGhlIG5hbWUgcmVmZXJl
bmNlcyBhIGZyYW1lIHJlbGF0aXZlIHRvIHRoZSBvcGVuZXIgZnJhbWUuCkBAIC0yNDY1LDcgKzI0
NjYsOCBAQCBFeGNlcHRpb25PcjxSZWZQdHI8RnJhbWU+PiBET01XaW5kb3c6OmNyZWF0ZVdpbmRv
dyhjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29ucwogICAgIGlmIChjcmVhdGVkKSB7CiAgICAg
ICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVlc3QgeyBjb21wbGV0ZWRVUkwsIHJlZmVy
cmVyLCBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeTo6VXNlUHJvdG9jb2xDYWNoZVBvbGljeSB9
OwogICAgICAgICBGcmFtZUxvYWRlcjo6YWRkU2FtZVNpdGVJbmZvVG9SZXF1ZXN0SWZOZWVkZWQo
cmVzb3VyY2VSZXF1ZXN0LCBvcGVuZXJGcmFtZS5kb2N1bWVudCgpKTsKLSAgICAgICAgRnJhbWVM
b2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgKmFjdGl2ZVdpbmRvdy5kb2N1bWVudCgpLCBh
Y3RpdmVXaW5kb3cuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgV1RGTW92ZShyZXNvdXJj
ZVJlcXVlc3QpLCAiX3NlbGYiX3MsIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlz
dDo6Tm8sIFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmluZywgQWxsb3dOYXZpZ2F0aW9uVG9JbnZh
bGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgYWN0aXZlRG9jdW1lbnQt
PnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb1Byb3BhZ2F0ZSgpLCBpbml0aWF0ZWRCeU1h
aW5GcmFtZSB9OworICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyAq
YWN0aXZlV2luZG93LmRvY3VtZW50KCksIGFjdGl2ZVdpbmRvdy5kb2N1bWVudCgpLT5zZWN1cml0
eU9yaWdpbigpLCBXVEZNb3ZlKHJlc291cmNlUmVxdWVzdCksICJfc2VsZiJfcywgaW5pdGlhdGVk
QnlNYWluRnJhbWUgfTsKKyAgICAgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRTaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5KGFjdGl2ZURvY3VtZW50LT5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5VG9Qcm9wYWdhdGUoKSk7CiAgICAgICAgIG5ld0ZyYW1lLT5sb2FkZXIoKS5jaGFuZ2VMb2Nh
dGlvbihXVEZNb3ZlKGZyYW1lTG9hZFJlcXVlc3QpKTsKICAgICB9IGVsc2UgaWYgKCF1cmxTdHJp
bmcuaXNFbXB0eSgpKSB7CiAgICAgICAgIExvY2tIaXN0b3J5IGxvY2tIaXN0b3J5ID0gVXNlckdl
c3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpID8gTG9ja0hpc3Rvcnk6Ok5v
IDogTG9ja0hpc3Rvcnk6OlllczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJh
Z0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAK
aW5kZXggZTg1ZDU3MmI2YjBhYzczMjU5ZjcxMTc0OGYxNjc3N2IzMGRlYmI0ZC4uMTdhZGNiNDU1
ZGE2NmIwZjQ0YWYyOWM3YTVlNDM3M2Y3MTI2MDUyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFn
Q29udHJvbGxlci5jcHAKQEAgLTI4OSw3ICsyODksOCBAQCBib29sIERyYWdDb250cm9sbGVyOjpw
ZXJmb3JtRHJhZ09wZXJhdGlvbihjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIGNsaWVudCgpLndpbGxQZXJmb3JtRHJhZ0Rlc3RpbmF0aW9uQWN0
aW9uKERyYWdEZXN0aW5hdGlvbkFjdGlvbkxvYWQsIGRyYWdEYXRhKTsKLSAgICBGcmFtZUxvYWRS
ZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyBtX3BhZ2UubWFpbkZyYW1lKCksIFJlc291cmNlUmVx
dWVzdCB7IHVybFN0cmluZyB9LCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IH07CisgICAg
RnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgbV9wYWdlLm1haW5GcmFtZSgpLCBS
ZXNvdXJjZVJlcXVlc3QgeyB1cmxTdHJpbmcgfSB9OworICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0
U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
KTsKICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldElzUmVxdWVzdEZyb21DbGllbnRPclVzZXJJbnB1
dCgpOwogICAgIG1fcGFnZS5tYWluRnJhbWUoKS5sb2FkZXIoKS5sb2FkKFdURk1vdmUoZnJhbWVM
b2FkUmVxdWVzdCkpOwogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3IuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3IuY3BwCmluZGV4IGVlNDdmNDdlZmMyMjhk
NDlhNzYzMGY2N2NhYTU0OTkxZWY5NzJmOTMuLjQ4NTgxODJiNzcxODdkNDlhMzY5MThmZDk3OTNl
MmVlY2RjYTdlNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViSW5zcGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVj
dG9yL1dlYkluc3BlY3Rvci5jcHAKQEAgLTE2Nyw3ICsxNjcsNyBAQCB2b2lkIFdlYkluc3BlY3Rv
cjo6b3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQogICAgICAgICByZXR1cm47
CiAKICAgICBGcmFtZSYgaW5zcGVjdGVkTWFpbkZyYW1lID0gaW5zcGVjdGVkUGFnZS0+bWFpbkZy
YW1lKCk7Ci0gICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgKmluc3BlY3Rl
ZE1haW5GcmFtZS5kb2N1bWVudCgpLCBpbnNwZWN0ZWRNYWluRnJhbWUuZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0IHsgdXJsU3RyaW5nIH0sICJfYmxhbmsiX3Ms
IExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIFJlZmVycmVyUG9saWN5
OjpFbXB0eVN0cmluZywgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1l
T3BlbmVyUG9saWN5OjpBbGxvdywgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxk
Tm90QWxsb3csIEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpVbmtub3duIH07CisgICAgRnJhbWVMb2Fk
UmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgKmluc3BlY3RlZE1haW5GcmFtZS5kb2N1bWVudCgp
LCBpbnNwZWN0ZWRNYWluRnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3Vy
Y2VSZXF1ZXN0IHsgdXJsU3RyaW5nIH0sICJfYmxhbmsiX3MsIEluaXRpYXRlZEJ5TWFpbkZyYW1l
OjpVbmtub3duIH07CiAKICAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbiB7ICppbnNwZWN0ZWRN
YWluRnJhbWUuZG9jdW1lbnQoKSwgZnJhbWVMb2FkUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwg
ZnJhbWVMb2FkUmVxdWVzdC5pbml0aWF0ZWRCeU1haW5GcmFtZSgpLCBOYXZpZ2F0aW9uVHlwZTo6
TGlua0NsaWNrZWQgfTsKICAgICBQYWdlKiBuZXdQYWdlID0gaW5zcGVjdGVkUGFnZS0+Y2hyb21l
KCkuY3JlYXRlV2luZG93KGluc3BlY3RlZE1haW5GcmFtZSwgeyB9LCBhY3Rpb24pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCBjN2Zi
YWVjYTIzNGRjMWMxODlmZWE2OTYwZWY5NTZlODFhOGJmNGJjLi5lYjkxZTkwOTQyZTQ4YjU1MjM0
MmY0MTcyMTZiNGQ4ZWY2NDAzM2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtMTIwNCw3ICsxMjA0LDcgQEAgdm9pZCBQbHVnaW5W
aWV3OjpwZXJmb3JtRnJhbWVMb2FkVVJMUmVxdWVzdChVUkxSZXF1ZXN0KiByZXF1ZXN0KQogICAg
IEZyYW1lKiB0YXJnZXRGcmFtZSA9IGZyYW1lLT5sb2FkZXIoKS5maW5kRnJhbWVGb3JOYXZpZ2F0
aW9uKHJlcXVlc3QtPnRhcmdldCgpKTsKICAgICBpZiAoIXRhcmdldEZyYW1lKSB7CiAgICAgICAg
IC8vIFdlIGRpZCBub3QgZmluZCBhIHRhcmdldCBmcmFtZS4gQXNrIG91ciBmcmFtZSB0byBsb2Fk
IHRoZSBwYWdlLiBUaGlzIG1heSBvciBtYXkgbm90IGNyZWF0ZSBhIHBvcHVwIHdpbmRvdy4KLSAg
ICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgKmZyYW1lLCByZXF1ZXN0
LT5yZXF1ZXN0KCksIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93
IH07CisgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7ICpmcmFtZSwg
cmVxdWVzdC0+cmVxdWVzdCgpIH07CiAgICAgICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0RnJhbWVO
YW1lKHJlcXVlc3QtPnRhcmdldCgpKTsKICAgICAgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRTaG91
bGRDaGVja05ld1dpbmRvd1BvbGljeSh0cnVlKTsKICAgICAgICAgZnJhbWUtPmxvYWRlcigpLmxv
YWQoV1RGTW92ZShmcmFtZUxvYWRSZXF1ZXN0KSk7CkBAIC0xMjE2LDcgKzEyMTYsNyBAQCB2b2lk
IFBsdWdpblZpZXc6OnBlcmZvcm1GcmFtZUxvYWRVUkxSZXF1ZXN0KFVSTFJlcXVlc3QqIHJlcXVl
c3QpCiAgICAgfQogCiAgICAgLy8gTm93IGFzayB0aGUgZnJhbWUgdG8gbG9hZCB0aGUgcmVxdWVz
dC4KLSAgICB0YXJnZXRGcmFtZS0+bG9hZGVyKCkubG9hZChGcmFtZUxvYWRSZXF1ZXN0KCp0YXJn
ZXRGcmFtZSwgcmVxdWVzdC0+cmVxdWVzdCgpLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
OjpTaG91bGROb3RBbGxvdykpOworICAgIHRhcmdldEZyYW1lLT5sb2FkZXIoKS5sb2FkKEZyYW1l
TG9hZFJlcXVlc3QoKnRhcmdldEZyYW1lLCByZXF1ZXN0LT5yZXF1ZXN0KCkgKSk7CiAKICAgICBh
dXRvKiB0YXJnZXRXZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCp0YXJnZXRGcmFt
ZSk7CiAgICAgQVNTRVJUKHRhcmdldFdlYkZyYW1lKTsKQEAgLTEzOTAsNyArMTM5MCw3IEBAIFN0
cmluZyBQbHVnaW5WaWV3Ojp1c2VyQWdlbnQoKQogCiB2b2lkIFBsdWdpblZpZXc6OmxvYWRVUkwo
dWludDY0X3QgcmVxdWVzdElELCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgU3RyaW5nJiB1
cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBjb25zdCBIVFRQSGVhZGVyTWFwJiBoZWFk
ZXJGaWVsZHMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaHR0cEJvZHksIGJvb2wgYWxsb3dQb3B1
cHMpCiB7Ci0gICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgbV9wbHVnaW5F
bGVtZW50LT5kb2N1bWVudCgpLCBtX3BsdWdpbkVsZW1lbnQtPmRvY3VtZW50KCkuc2VjdXJpdHlP
cmlnaW4oKSwgeyB9LCB0YXJnZXQsIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlz
dDo6Tm8sIFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmluZywgQWxsb3dOYXZpZ2F0aW9uVG9JbnZh
bGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgU2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3csIEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpVbmtu
b3duIH07CisgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgbV9wbHVnaW5F
bGVtZW50LT5kb2N1bWVudCgpLCBtX3BsdWdpbkVsZW1lbnQtPmRvY3VtZW50KCkuc2VjdXJpdHlP
cmlnaW4oKSwgeyB9LCB0YXJnZXQsIEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpVbmtub3duIH07CiAg
ICAgZnJhbWVMb2FkUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRIVFRQTWV0aG9kKG1ldGhv
ZCk7CiAgICAgZnJhbWVMb2FkUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRVUkwobV9wbHVn
aW5FbGVtZW50LT5kb2N1bWVudCgpLmNvbXBsZXRlVVJMKHVybFN0cmluZykpOwogICAgIGZyYW1l
TG9hZFJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuc2V0SFRUUEhlYWRlckZpZWxkcyhoZWFkZXJG
aWVsZHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApp
bmRleCA1YjRjZWZmM2VhYjJiYTdkNWI3OGUyYTFjOWU2MzBiMmU3ZmQ1MzhhLi4yNDQyNzVlZGFi
Mjg4YTY5MDFjMWFiMWFlNTI3NGVhNzEwMWRkNTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTQ5Nyw3ICsxNDk3LDcgQEAgdm9pZCBXZWJQ
YWdlOjpsb2FkVVJMSW5GcmFtZShVUkwmJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIEZy
YW1lSWRlbnRpZmllcgogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGZy
YW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkubG9hZChGcmFtZUxvYWRSZXF1ZXN0KCpmcmFtZS0+
Y29yZUZyYW1lKCksIFJlc291cmNlUmVxdWVzdCh1cmwsIHJlZmVycmVyKSwgU2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpKTsKKyAgICBmcmFtZS0+Y29yZUZyYW1l
KCktPmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdCgqZnJhbWUtPmNvcmVGcmFtZSgpLCBS
ZXNvdXJjZVJlcXVlc3QodXJsLCByZWZlcnJlcikpKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpsb2Fk
RGF0YUluRnJhbWUoSVBDOjpEYXRhUmVmZXJlbmNlJiYgZGF0YSwgU3RyaW5nJiYgTUlNRVR5cGUs
IFN0cmluZyYmIGVuY29kaW5nTmFtZSwgVVJMJiYgYmFzZVVSTCwgRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQpCkBAIC0xNTEwLDcgKzE1MTAsNyBAQCB2b2lkIFdlYlBhZ2U6OmxvYWREYXRhSW5GcmFt
ZShJUEM6OkRhdGFSZWZlcmVuY2UmJiBkYXRhLCBTdHJpbmcmJiBNSU1FVHlwZSwgU3RyaQogICAg
IGF1dG8gc2hhcmVkQnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oZGF0YS5kYXRhKCkpLCBkYXRhLnNpemUoKSk7CiAgICAgUmVzb3VyY2VS
ZXNwb25zZSByZXNwb25zZShiYXNlVVJMLCBNSU1FVHlwZSwgc2hhcmVkQnVmZmVyLT5zaXplKCks
IGVuY29kaW5nTmFtZSk7CiAgICAgU3Vic3RpdHV0ZURhdGEgc3Vic3RpdHV0ZURhdGEoV1RGTW92
ZShzaGFyZWRCdWZmZXIpLCBiYXNlVVJMLCBXVEZNb3ZlKHJlc3BvbnNlKSwgU3Vic3RpdHV0ZURh
dGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eTo6SGlkZGVuKTsKLSAgICBmcmFtZS0+Y29yZUZy
YW1lKCktPmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdCgqZnJhbWUtPmNvcmVGcmFtZSgp
LCBSZXNvdXJjZVJlcXVlc3QoYmFzZVVSTCksIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6
OlNob3VsZE5vdEFsbG93LCBXVEZNb3ZlKHN1YnN0aXR1dGVEYXRhKSkpOworICAgIGZyYW1lLT5j
b3JlRnJhbWUoKS0+bG9hZGVyKCkubG9hZChGcmFtZUxvYWRSZXF1ZXN0KCpmcmFtZS0+Y29yZUZy
YW1lKCksIFJlc291cmNlUmVxdWVzdChiYXNlVVJMKSwgV1RGTW92ZShzdWJzdGl0dXRlRGF0YSkp
KTsKIH0KIAogI2lmICFQTEFURk9STShDT0NPQSkKQEAgLTE1MzgsMTEgKzE1MzgsMTEgQEAgdm9p
ZCBXZWJQYWdlOjpsb2FkUmVxdWVzdChMb2FkUGFyYW1ldGVycyYmIGxvYWRQYXJhbWV0ZXJzKQog
ICAgIHBsYXRmb3JtRGlkUmVjZWl2ZUxvYWRQYXJhbWV0ZXJzKGxvYWRQYXJhbWV0ZXJzKTsKIAog
ICAgIC8vIEluaXRhdGUgdGhlIGxvYWQgaW4gV2ViQ29yZS4KLSAgICBGcmFtZUxvYWRSZXF1ZXN0
IGZyYW1lTG9hZFJlcXVlc3QgeyAqbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLCBsb2FkUGFyYW1l
dGVycy5yZXF1ZXN0LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxv
dyB9OworICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7ICptX21haW5GcmFt
ZS0+Y29yZUZyYW1lKCksIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgfTsKICAgICBmcmFtZUxvYWRS
ZXF1ZXN0LnNldFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kobG9hZFBhcmFtZXRlcnMuc2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CiAgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRTaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQobG9hZFBhcmFtZXRlcnMuc2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkKTsKICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldExvY2tIaXN0b3J5KGxvYWRQYXJh
bWV0ZXJzLmxvY2tIaXN0b3J5KTsKLSAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldGxvY2tCYWNrRm9y
d2FyZExpc3QobG9hZFBhcmFtZXRlcnMubG9ja0JhY2tGb3J3YXJkTGlzdCk7CisgICAgZnJhbWVM
b2FkUmVxdWVzdC5zZXRMb2NrQmFja0ZvcndhcmRMaXN0KGxvYWRQYXJhbWV0ZXJzLmxvY2tCYWNr
Rm9yd2FyZExpc3QpOwogICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0Q2xpZW50UmVkaXJlY3RTb3Vy
Y2VGb3JIaXN0b3J5KGxvYWRQYXJhbWV0ZXJzLmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9y
eSk7CiAgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRJc1JlcXVlc3RGcm9tQ2xpZW50T3JVc2VySW5w
dXQoKTsKIApAQCAtMTU3Nyw3ICsxNTc3LDggQEAgdm9pZCBXZWJQYWdlOjpsb2FkRGF0YUltcGwo
dWludDY0X3QgbmF2aWdhdGlvbklELCBib29sIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG8KICAg
ICBtX2xvYWRlckNsaWVudC0+d2lsbExvYWREYXRhUmVxdWVzdCgqdGhpcywgcmVxdWVzdCwgY29u
c3RfY2FzdDxTaGFyZWRCdWZmZXIqPihzdWJzdGl0dXRlRGF0YS5jb250ZW50KCkpLCBzdWJzdGl0
dXRlRGF0YS5taW1lVHlwZSgpLCBzdWJzdGl0dXRlRGF0YS50ZXh0RW5jb2RpbmcoKSwgc3Vic3Rp
dHV0ZURhdGEuZmFpbGluZ1VSTCgpLCBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1I
YW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7CiAKICAgICAvLyBJbml0
YXRlIHRoZSBsb2FkIGluIFdlYkNvcmUuCi0gICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRS
ZXF1ZXN0KCptX21haW5GcmFtZS0+Y29yZUZyYW1lKCksIHJlcXVlc3QsIHNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3ksIHN1YnN0aXR1dGVEYXRhKTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IGZy
YW1lTG9hZFJlcXVlc3QoKm1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKSwgcmVxdWVzdCwgc3Vic3Rp
dHV0ZURhdGEpOworICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0U2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeShzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKICAgICBmcmFtZUxvYWRSZXF1
ZXN0LnNldFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZChzaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQpOwogICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0SXNSZXF1ZXN0RnJvbUNsaWVudE9yVXNl
cklucHV0KCk7CiAgICAgbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5sb2FkKFdU
Rk1vdmUoZnJhbWVMb2FkUmVxdWVzdCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9pb3MvV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L2lvcy9XZWJWaWV3L1dlYlBERlZpZXdQbGFjZWhvbGRlci5tbQppbmRleCA3YTRlNGVhNWEx
NmRmNzcyZTA0ZDU1NzVjMTRhMGM2OTY2NzFkNTNlLi5mZTQ0OTY2YjA5MTJlOTRhZTRjZGQ1NmVh
YTc0NTY5M2I2MTQxYTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJW
aWV3L1dlYlBERlZpZXdQbGFjZWhvbGRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lv
cy9XZWJWaWV3L1dlYlBERlZpZXdQbGFjZWhvbGRlci5tbQpAQCAtNDcxLDcgKzQ3MSw4IEBAIHN0
YXRpYyBjb25zdCBmbG9hdCBQQUdFX0hFSUdIVF9JTlNFVCA9IDQuMGYgKiAyLjBmOwogCiAgICAg
Ly8gQ2FsbCB0byB0aGUgZnJhbWUgbG9hZGVyIGJlY2F1c2UgdGhpcyBpcyB3aGVyZSBvdXIgc2Vj
dXJpdHkgY2hlY2tzIGFyZSBtYWRlLgogICAgIEZyYW1lKiBmcmFtZSA9IGNvcmUoW19kYXRhU291
cmNlIHdlYkZyYW1lXSk7Ci0gICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsg
KmZyYW1lLT5kb2N1bWVudCgpLCBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwg
eyBVUkwgfSwgeyB9LCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBS
ZWZlcnJlclBvbGljeTo6Tm9SZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZ
ZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeTo6U2hvdWxkTm90QWxsb3csICBJbml0aWF0ZWRCeU1haW5GcmFtZTo6VW5rbm93biB9Owor
ICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7ICpmcmFtZS0+ZG9jdW1lbnQo
KSwgZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHsgVVJMIH0sIHsgfSwgSW5p
dGlhdGVkQnlNYWluRnJhbWU6OlVua25vd24gfTsKK2ZyYW1lTG9hZFJlcXVlc3Quc2V0UmVmZXJy
ZXJQb2xpY3koUmVmZXJyZXJQb2xpY3k6Ok5vUmVmZXJyZXIpOwogICAgIGZyYW1lLT5sb2FkZXIo
KS5sb2FkRnJhbWVSZXF1ZXN0KFdURk1vdmUoZnJhbWVMb2FkUmVxdWVzdCksIGV2ZW50LnB0cigp
LCBudWxscHRyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1
Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1
Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tCmluZGV4IDNmMjZkZDZjNjQ3MjE2NmFiMmUzYmQz
YWU1MjExMGMwMzAwOTNiMGYuLmIzYWJkODg0MjhhMmM4OWM3NTk5NDc2MzlmMjg3MjU3OTUxNGQ5
MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViUGx1Z2lu
Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYlBs
dWdpbkNvbnRyb2xsZXIubW0KQEAgLTQ5Niw3ICs0OTYsNyBAQCBzdGF0aWMgdm9pZCBjYW5jZWxP
dXRzdGFuZGluZ0NoZWNrKGNvbnN0IHZvaWQgKml0ZW0sIHZvaWQgKmNvbnRleHQpCiAgICAgICAg
ICAgICBMT0dfRVJST1IoImNvdWxkIG5vdCBsb2FkIFVSTCAlQCIsIFtyZXF1ZXN0IFVSTF0pOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIFdlYkNvcmU6OkZyYW1lTG9h
ZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7ICpjb3JlKGZyYW1lKSwgcmVxdWVzdCwgV2ViQ29y
ZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cgfTsKKyAgICAg
ICAgV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgKmNvcmUoZnJh
bWUpLCByZXF1ZXN0IH07CiAgICAgICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0RnJhbWVOYW1lKHRh
cmdldCk7CiAgICAgICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0U2hvdWxkQ2hlY2tOZXdXaW5kb3dQ
b2xpY3kodHJ1ZSk7CiAgICAgICAgIGNvcmUoZnJhbWUpLT5sb2FkZXIoKS5sb2FkKFdURk1vdmUo
ZnJhbWVMb2FkUmVxdWVzdCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
RnJhbWUubW0KaW5kZXggNGVkODc4NDgxOWViMTBjMDY3MmNhOTcyNTg3ZjgzY2QyZWI3ZjJlZi4u
NDNiZmRlZTk2NmVkN2E3YWU2NzY4OTdiOWVjZDk5MmFkMjlmOGFhZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC0yNDg0LDcgKzI0ODQsNyBAQCBz
dGF0aWMgYm9vbCBuZWVkc01pY3Jvc29mdE1lc3NlbmdlckRPTURvY3VtZW50V29ya2Fyb3VuZCgp
CiAgICAgaWYgKCFyZXNvdXJjZVJlcXVlc3QudXJsKCkuaXNWYWxpZCgpICYmICFyZXNvdXJjZVJl
cXVlc3QudXJsKCkuaXNFbXB0eSgpKQogICAgICAgICByZXNvdXJjZVJlcXVlc3Quc2V0VVJMKFtO
U1VSTCBVUkxXaXRoU3RyaW5nOltAImZpbGU6IiBzdHJpbmdCeUFwcGVuZGluZ1N0cmluZzpbW3Jl
cXVlc3QgVVJMXSBhYnNvbHV0ZVN0cmluZ11dXSk7CiAKLSAgICBjb3JlRnJhbWUtPmxvYWRlcigp
LmxvYWQoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdCgqY29yZUZyYW1lLCByZXNvdXJjZVJlcXVl
c3QsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93
KSk7CisgICAgY29yZUZyYW1lLT5sb2FkZXIoKS5sb2FkKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVl
c3QoKmNvcmVGcmFtZSwgcmVzb3VyY2VSZXF1ZXN0KSk7CiB9CiAKIHN0YXRpYyBOU1VSTCAqY3Jl
YXRlVW5pcXVlV2ViRGF0YVVSTCgpCkBAIC0yNTE2LDcgKzI1MTYsNyBAQCBzdGF0aWMgTlNVUkwg
KmNyZWF0ZVVuaXF1ZVdlYkRhdGFVUkwoKQogICAgIGlmIChXZWJDb3JlOjpzaG91bGRVc2VRdWlj
a0xvb2tGb3JNSU1FVHlwZShNSU1FVHlwZSkpIHsKICAgICAgICAgTlNVUkwgKnF1aWNrTG9va1VS
TCA9IHJlc3BvbnNlVVJMID8gcmVzcG9uc2VVUkwgOiBiYXNlVVJMOwogICAgICAgICBpZiAoYXV0
byByZXF1ZXN0ID0gV2ViQ29yZTo6cmVnaXN0ZXJRTFByZXZpZXdDb252ZXJ0ZXJJZk5lZWRlZChx
dWlja0xvb2tVUkwsIE1JTUVUeXBlLCBkYXRhKSkgewotICAgICAgICAgICAgX3ByaXZhdGUtPmNv
cmVGcmFtZS0+bG9hZGVyKCkubG9hZChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0KCpfcHJpdmF0
ZS0+Y29yZUZyYW1lLCByZXF1ZXN0LmdldCgpLCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5OjpTaG91bGROb3RBbGxvdykpOworICAgICAgICAgICAgX3ByaXZhdGUtPmNvcmVG
cmFtZS0+bG9hZGVyKCkubG9hZChXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0KCpfcHJpdmF0ZS0+
Y29yZUZyYW1lLCByZXF1ZXN0LmdldCgpKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KICAgICB9CkBAIC0yNTI3LDcgKzI1MjcsNyBAQCBzdGF0aWMgTlNVUkwgKmNyZWF0ZVVuaXF1
ZVdlYkRhdGFVUkwoKQogICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UocmVz
cG9uc2VVUkwsIE1JTUVUeXBlLCBbZGF0YSBsZW5ndGhdLCBlbmNvZGluZ05hbWUpOwogICAgIFdl
YkNvcmU6OlN1YnN0aXR1dGVEYXRhIHN1YnN0aXR1dGVEYXRhKFdlYkNvcmU6OlNoYXJlZEJ1ZmZl
cjo6Y3JlYXRlKGRhdGEpLCBbdW5yZWFjaGFibGVVUkwgYWJzb2x1dGVVUkxdLCByZXNwb25zZSwg
V2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eTo6SGlkZGVu
KTsKIAotICAgIF9wcml2YXRlLT5jb3JlRnJhbWUtPmxvYWRlcigpLmxvYWQoV2ViQ29yZTo6RnJh
bWVMb2FkUmVxdWVzdCgqX3ByaXZhdGUtPmNvcmVGcmFtZSwgcmVxdWVzdCwgV2ViQ29yZTo6U2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3csIHN1YnN0aXR1dGVEYXRh
KSk7CisgICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+bG9hZGVyKCkubG9hZChXZWJDb3JlOjpGcmFt
ZUxvYWRSZXF1ZXN0KCpfcHJpdmF0ZS0+Y29yZUZyYW1lLCByZXF1ZXN0LCBzdWJzdGl0dXRlRGF0
YSkpOwogfQogCiAtICh2b2lkKWxvYWREYXRhOihOU0RhdGEgKilkYXRhIE1JTUVUeXBlOihOU1N0
cmluZyAqKU1JTUVUeXBlIHRleHRFbmNvZGluZ05hbWU6KE5TU3RyaW5nICopZW5jb2RpbmdOYW1l
IGJhc2VVUkw6KE5TVVJMICopYmFzZVVSTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJQREZWaWV3Lm1tCmluZGV4IDcxMGM5N2JiMDRhYjRmOTQyODAwMjNkOTExZTJmMTA0
ZTA3NmUzYWEuLjc5MTk0NTg1ZmEyOGI1MzZkNTUyMmNhZWE2Njc0NmI1NzAzMDNkODUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KQEAgLTk4Nyw3
ICs5ODcsOCBAQCBzdGF0aWMgQk9PTCBpc0ZyYW1lSW5SYW5nZShXZWJGcmFtZSAqZnJhbWUsIERP
TVJhbmdlICpyYW5nZSkKIAogICAgIC8vIENhbGwgdG8gdGhlIGZyYW1lIGxvYWRlciBiZWNhdXNl
IHRoaXMgaXMgd2hlcmUgb3VyIHNlY3VyaXR5IGNoZWNrcyBhcmUgbWFkZS4KICAgICBhdXRvKiBm
cmFtZSA9IGNvcmUoW2RhdGFTb3VyY2Ugd2ViRnJhbWVdKTsKLSAgICBXZWJDb3JlOjpGcmFtZUxv
YWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyAqZnJhbWUtPmRvY3VtZW50KCksIGZyYW1lLT5k
b2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB7IFVSTCB9LCB7IH0sIFdlYkNvcmU6OkxvY2tI
aXN0b3J5OjpObywgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIFdlYkNvcmU6OlJl
ZmVycmVyUG9saWN5OjpOb1JlZmVycmVyLCBXZWJDb3JlOjpBbGxvd05hdmlnYXRpb25Ub0ludmFs
aWRVUkw6OlllcywgV2ViQ29yZTo6TmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBXZWJDb3Jl
OjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdywgV2ViQ29yZTo6
SW5pdGlhdGVkQnlNYWluRnJhbWU6OlVua25vd24gfTsKKyAgICBXZWJDb3JlOjpGcmFtZUxvYWRS
ZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyAqZnJhbWUtPmRvY3VtZW50KCksIGZyYW1lLT5kb2N1
bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB7IFVSTCB9LCB7IH0sIFdlYkNvcmU6OkluaXRpYXRl
ZEJ5TWFpbkZyYW1lOjpVbmtub3duIH07CisgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRSZWZlcnJl
clBvbGljeShXZWJDb3JlOjpSZWZlcnJlclBvbGljeTo6Tm9SZWZlcnJlcik7CiAgICAgZnJhbWUt
PmxvYWRlcigpLmxvYWRGcmFtZVJlcXVlc3QoV1RGTW92ZShmcmFtZUxvYWRSZXF1ZXN0KSwgZXZl
bnQuZ2V0KCksIG51bGxwdHIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vUGx1
Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCBiNzc5MGNkNDE1MTc3NmVhMjVkZGMzOWUxMzkxNTVh
OTMyNzAxYmViLi5mODVmODhlMTdmNGNlYzgzOTAzNTFhZjM1MDM0MWZiNWU1MjQ5NmM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTI0
OCw3ICsyNDgsNyBAQCBib29sIFBsdWdpblZpZXc6OnN0YXJ0KCkKICAgICBtX2lzU3RhcnRlZCA9
IHRydWU7CiAKICAgICBpZiAoIW1fdXJsLmlzRW1wdHkoKSAmJiAhbV9sb2FkTWFudWFsbHkpIHsK
LSAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgKm1fcGFyZW50RnJh
bWUtPmRvY3VtZW50KCksIG1fcGFyZW50RnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2lu
KCksIHsgfSwgeyB9LCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBS
ZWZlcnJlclBvbGljeTo6RW1wdHlTdHJpbmcsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6
WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3k6OlNob3VsZE5vdEFsbG93LCBJbml0aWF0ZWRCeU1haW5GcmFtZTo6VW5rbm93biB9Owor
ICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyAqbV9wYXJlbnRGcmFt
ZS0+ZG9jdW1lbnQoKSwgbV9wYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4o
KSwgeyB9LCB7IH0sIEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpVbmtub3duIH07CiAgICAgICAgIGZy
YW1lTG9hZFJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuc2V0SFRUUE1ldGhvZCgiR0VUIik7CiAg
ICAgICAgIGZyYW1lTG9hZFJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuc2V0VVJMKG1fdXJsKTsK
ICAgICAgICAgbG9hZChXVEZNb3ZlKGZyYW1lTG9hZFJlcXVlc3QpLCBmYWxzZSwgbnVsbHB0cik7
CkBAIC00MTUsNyArNDE1LDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpwZXJmb3JtUmVxdWVzdChQbHVn
aW5SZXF1ZXN0KiByZXF1ZXN0KQogICAgICAgICAgICAgLy8gUGx1Z2luVmlldywgc28gd2UgcHJv
dGVjdCBpdC4gPHJkYXI6Ly9wcm9ibGVtLzY5OTEyNTE+CiAgICAgICAgICAgICBSZWZQdHI8UGx1
Z2luVmlldz4gcHJvdGVjdCh0aGlzKTsKIAotICAgICAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBm
cmFtZUxvYWRSZXF1ZXN0IHsgKm1fcGFyZW50RnJhbWUuZ2V0KCksIHJlcXVlc3QtPmZyYW1lTG9h
ZFJlcXVlc3QoKS5yZXNvdXJjZVJlcXVlc3QoKSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eTo6U2hvdWxkTm90QWxsb3cgfTsKKyAgICAgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVM
b2FkUmVxdWVzdCB7ICptX3BhcmVudEZyYW1lLmdldCgpLCByZXF1ZXN0LT5mcmFtZUxvYWRSZXF1
ZXN0KCkucmVzb3VyY2VSZXF1ZXN0KCkgfTsKICAgICAgICAgICAgIGZyYW1lTG9hZFJlcXVlc3Qu
c2V0RnJhbWVOYW1lKHRhcmdldEZyYW1lTmFtZSk7CiAgICAgICAgICAgICBmcmFtZUxvYWRSZXF1
ZXN0LnNldFNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KHRydWUpOwogICAgICAgICAgICAgbV9w
YXJlbnRGcmFtZS0+bG9hZGVyKCkubG9hZChXVEZNb3ZlKGZyYW1lTG9hZFJlcXVlc3QpKTsKQEAg
LTUyNyw3ICs1MjcsNyBAQCBzdGF0aWMgVVJMIG1ha2VVUkwoY29uc3QgVVJMJiBiYXNlVVJMLCBj
b25zdCBjaGFyKiByZWxhdGl2ZVVSTFN0cmluZykKIAogTlBFcnJvciBQbHVnaW5WaWV3OjpnZXRV
UkxOb3RpZnkoY29uc3QgY2hhciogdXJsLCBjb25zdCBjaGFyKiB0YXJnZXQsIHZvaWQqIG5vdGlm
eURhdGEpCiB7Ci0gICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgKm1fcGFy
ZW50RnJhbWUtPmRvY3VtZW50KCksIG1fcGFyZW50RnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5
T3JpZ2luKCksIHsgfSwgdGFyZ2V0LCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExp
c3Q6Ok5vLCBSZWZlcnJlclBvbGljeTo6RW1wdHlTdHJpbmcsIEFsbG93TmF2aWdhdGlvblRvSW52
YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIFNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93LCBJbml0aWF0ZWRCeU1haW5GcmFtZTo6VW5r
bm93biB9OworICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7ICptX3BhcmVu
dEZyYW1lLT5kb2N1bWVudCgpLCBtX3BhcmVudEZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9y
aWdpbigpLCB7IH0sIHRhcmdldCwgSW5pdGlhdGVkQnlNYWluRnJhbWU6OlVua25vd24gfTsKIAog
ICAgIGZyYW1lTG9hZFJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuc2V0SFRUUE1ldGhvZCgiR0VU
Iik7CiAgICAgZnJhbWVMb2FkUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRVUkwobWFrZVVS
TChtX3BhcmVudEZyYW1lLT5kb2N1bWVudCgpLT5iYXNlVVJMKCksIHVybCkpOwpAQCAtNTM3LDcg
KzUzNyw3IEBAIE5QRXJyb3IgUGx1Z2luVmlldzo6Z2V0VVJMTm90aWZ5KGNvbnN0IGNoYXIqIHVy
bCwgY29uc3QgY2hhciogdGFyZ2V0LCB2b2lkKiBub3RpCiAKIE5QRXJyb3IgUGx1Z2luVmlldzo6
Z2V0VVJMKGNvbnN0IGNoYXIqIHVybCwgY29uc3QgY2hhciogdGFyZ2V0KQogewotICAgIEZyYW1l
TG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7ICptX3BhcmVudEZyYW1lLT5kb2N1bWVudCgp
LCBtX3BhcmVudEZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB7IH0sIHRhcmdl
dCwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgUmVmZXJyZXJQb2xp
Y3k6OkVtcHR5U3RyaW5nLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJh
bWVPcGVuZXJQb2xpY3k6OkFsbG93LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91
bGROb3RBbGxvdywgSW5pdGlhdGVkQnlNYWluRnJhbWU6OlVua25vd24gfTsKKyAgICBGcmFtZUxv
YWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyAqbV9wYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKSwg
bV9wYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgeyB9LCB0YXJnZXQs
IEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpVbmtub3duIH07CiAKICAgICBmcmFtZUxvYWRSZXF1ZXN0
LnJlc291cmNlUmVxdWVzdCgpLnNldEhUVFBNZXRob2QoIkdFVCIpOwogICAgIGZyYW1lTG9hZFJl
cXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkuc2V0VVJMKG1ha2VVUkwobV9wYXJlbnRGcmFtZS0+ZG9j
dW1lbnQoKS0+YmFzZVVSTCgpLCB1cmwpKTsKQEAgLTEwODAsNyArMTA4MCw3IEBAIE5QRXJyb3Ig
UGx1Z2luVmlldzo6aGFuZGxlUG9zdChjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIHRhcmdl
dCwgdWludDMyX3QgbGVuCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBGcmFtZUxvYWRSZXF1ZXN0
IGZyYW1lTG9hZFJlcXVlc3QgeyAqbV9wYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKSwgbV9wYXJlbnRG
cmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgeyB9LCB0YXJnZXQsIExvY2tIaXN0
b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIFJlZmVycmVyUG9saWN5OjpFbXB0eVN0
cmluZywgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9s
aWN5OjpBbGxvdywgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cs
IEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpVbmtub3duIH07CisgICAgRnJhbWVMb2FkUmVxdWVzdCBm
cmFtZUxvYWRSZXF1ZXN0IHsgKm1fcGFyZW50RnJhbWUtPmRvY3VtZW50KCksIG1fcGFyZW50RnJh
bWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHsgfSwgdGFyZ2V0LCBJbml0aWF0ZWRC
eU1haW5GcmFtZTo6VW5rbm93biB9OwogICAgIGZyYW1lTG9hZFJlcXVlc3QucmVzb3VyY2VSZXF1
ZXN0KCkuc2V0SFRUUE1ldGhvZCgiUE9TVCIpOwogICAgIGZyYW1lTG9hZFJlcXVlc3QucmVzb3Vy
Y2VSZXF1ZXN0KCkuc2V0VVJMKG1ha2VVUkwobV9wYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKS0+YmFz
ZVVSTCgpLCB1cmwpKTsKICAgICBmcmFtZUxvYWRSZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnNl
dEhUVFBIZWFkZXJGaWVsZHMoV1RGTW92ZShoZWFkZXJGaWVsZHMpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkZyYW1lLmNwcAppbmRleCBkNDJlNDUxMTk1YTIxMzJhZTlkODg0YTUxYThiNjRjMDYx
MWYzNmQ5Li4yYzgzYjNmOGI2ZDM3OGE5MjIyMDM1MDkxNTIzNDNlZjJhM2I4MDM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViRnJhbWUuY3BwCkBAIC01NTksNyArNTU5LDcgQEAgSFJFU1VMVCBX
ZWJGcmFtZTo6bG9hZFJlcXVlc3QoX0luX29wdF8gSVdlYlVSTFJlcXVlc3QqIHJlcXVlc3QpCiAg
ICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBFX1VORVhQRUNURUQ7CiAKLSAgICBj
b3JlRnJhbWUtPmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdCgqY29yZUZyYW1lLCByZXF1
ZXN0SW1wbC0+cmVzb3VyY2VSZXF1ZXN0KCksIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6
OlNob3VsZE5vdEFsbG93KSk7CisgICAgY29yZUZyYW1lLT5sb2FkZXIoKS5sb2FkKEZyYW1lTG9h
ZFJlcXVlc3QoKmNvcmVGcmFtZSwgcmVxdWVzdEltcGwtPnJlc291cmNlUmVxdWVzdCgpKSk7CiAg
ICAgcmV0dXJuIFNfT0s7CiB9CiAKQEAgLTU4NCw3ICs1ODQsNyBAQCB2b2lkIFdlYkZyYW1lOjps
b2FkRGF0YShSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmIGRhdGEsIEJTVFIgbWltZVR5cGUs
IEJTVFIgdAogCiAgICAgLy8gVGhpcyBtZXRob2QgaXMgb25seSBjYWxsZWQgZnJvbSBJV2ViRnJh
bWUgbWV0aG9kcywgc28gZG9uJ3QgQVNTRVJUIHRoYXQgdGhlIEZyYW1lIHBvaW50ZXIgaXNuJ3Qg
bnVsbC4KICAgICBpZiAoRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUodGhpcykpCi0gICAgICAgIGNv
cmVGcmFtZS0+bG9hZGVyKCkubG9hZChGcmFtZUxvYWRSZXF1ZXN0KCpjb3JlRnJhbWUsIHJlcXVl
c3QsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93LCBzdWJzdGl0
dXRlRGF0YSkpOworICAgICAgICBjb3JlRnJhbWUtPmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVx
dWVzdCgqY29yZUZyYW1lLCByZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSkpOwogfQogCiBIUkVTVUxU
IFdlYkZyYW1lOjpsb2FkRGF0YShfSW5fb3B0XyBJU3RyZWFtKiBkYXRhLCBfSW5fIEJTVFIgbWlt
ZVR5cGUsIF9Jbl8gQlNUUiB0ZXh0RW5jb2RpbmdOYW1lLCBfSW5fIEJTVFIgdXJsKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>