<?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>174290</bug_id>
          
          <creation_ts>2017-07-07 22:48:59 -0700</creation_ts>
          <short_desc>Simplify WebResourceLoadStatisticsStore / ResourceLoadStatisticsStore</short_desc>
          <delta_ts>2017-07-08 16:11:22 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>174203</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1326759</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-07-07 22:48:59 -0700</bug_when>
    <thetext>Simplify WebResourceLoadStatisticsStore / ResourceLoadStatisticsStore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326760</commentid>
    <comment_count>1</comment_count>
      <attachid>314916</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-07-07 23:22:00 -0700</bug_when>
    <thetext>Created attachment 314916
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326761</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-07-07 23:23:15 -0700</bug_when>
    <thetext>Attachment 314916 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/Storage/ResourceLoadStatisticsStore.h:80:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 1 in 37 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326801</commentid>
    <comment_count>3</comment_count>
      <attachid>314916</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-07-08 15:43:07 -0700</bug_when>
    <thetext>Comment on attachment 314916
Patch

Nice cleanup. r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326804</commentid>
    <comment_count>4</comment_count>
      <attachid>314916</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-08 16:11:21 -0700</bug_when>
    <thetext>Comment on attachment 314916
Patch

Clearing flags on attachment: 314916

Committed r219277: &lt;http://trac.webkit.org/changeset/219277&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326805</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-08 16:11:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314916</attachid>
            <date>2017-07-07 23:22:00 -0700</date>
            <delta_ts>2017-07-08 16:11:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174290-20170707232156.patch</filename>
            <type>text/plain</type>
            <size>72827</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5Mjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDU1NDgwMWQ3MWIyNTQx
OGZiYTVjNTA3ZWMwYWM2NDllMjc1MGRiMi4uODIzOTYwYTJhY2ZjNjQ0NjQ1NzRlZGVkYmNhOTVm
ZTk3MjFmOTNjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDEzMyBAQAogMjAxNy0wNy0wNyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCisgICAgICAgIFNpbXBsaWZ5IFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSAvIFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MjkwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0
YVN0b3JlIF9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVj
b3Jkc10pOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX3Jlc291cmNlTG9hZFN0YXRp
c3RpY3NTdWJtaXRUZWxlbWV0cnldKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaDoKKyAgICAgICAgUmVuYW1lIGEgY291cGxlIG9mIGZ1
bmN0aW9ucyBpbiB0aGUgQ29jb2EgU1BJIGZvciBjbGFyaXR5IGFuZCB0byBtYXRjaCB0aGUgbmFt
ZQorICAgICAgICBvZiB0aGVpciBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9TdG9yYWdlL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjplbnN1cmVSZXNvdXJjZVN0
YXRpc3RpY3NGb3JQcmltYXJ5RG9tYWluKToKKyAgICAgICAgU3R5bGlzdGljIGNoYW5nZXMuCisK
KyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjcmVhdGVFbmNv
ZGVyRnJvbURhdGEpOgorICAgICAgICBNYWtlIGNvbnN0LgorCisgICAgICAgIChXZWJLaXQ6OlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVhZERhdGFGcm9tRGVjb2Rlcik6CisgICAgICAg
IFVzZSBIYXNoTWFwOjphZGQoKSBpbnN0ZWFkIG9mIEhhc2hNYXA6OnNldCgpLiBUaGVyZSBpcyBu
b3Qgc3VwcG9zZWQgdG8gaGF2ZSBhbnkgZHVwbGljYXRlCisgICAgICAgIGtleXMgc28gYWRkKCkg
aXMgc3VmZmljaWVudCBhbmQgbW9yZSBlZmZpY2llbnQuCisKKyAgICAgICAgKFdlYktpdDo6UmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudCk6IFJl
bW92ZWQuCisgICAgICAgIGNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KCkgd2FzIG9ubHkgY2Fs
bGVkIGZyb20gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIGFuZAorICAgICAgICB0aGUg
bV9kZWxldGVQZXJzaXN0ZW50U3RvcmVIYW5kbGVyIC8gbV9ncmFuZGZhdGhlckV4aXN0aW5nV2Vi
c2l0ZURhdGFIYW5kbGVyIHdlcmUgYm90aAorICAgICAgICBzZXQgYnkgdGhlIFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZSBhcyB3ZWxsLiBUaGVyZWZvcmUsIHdlIGRvbid0IHJlYWxseSBu
ZWVkIHRoaXMKKyAgICAgICAgZnVuY3Rpb24sIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZSBub3cgY2FsbHMgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjbGVhckluTWVtb3J5KCkK
KyAgICAgICAgaW5zdGVhZCBhbmQgdGFrZXMgY2FyZSBvZiBkb2luZyB3aGF0IHRoZSBtX2RlbGV0
ZVBlcnNpc3RlbnRTdG9yZUhhbmRsZXIgLworICAgICAgICBtX2dyYW5kZmF0aGVyRXhpc3RpbmdX
ZWJzaXRlRGF0YUhhbmRsZXIgaGFuZGxlcnMgd2VyZSBkb2luZyBvbiBpdHMgc2lkZS4KKworICAg
ICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Om1lcmdlU3RhdGlzdGlj
cyk6CisgICAgICAgIFBhc3MgVmVjdG9yIGFzIHJ2YWx1ZSByZWZlcmVuY2UsIGFzIGEgcHJlcGFy
YXRpb24gZm9yIGEgZnV0dXJlIG9wdGltaXphdGlvbi4gQWRkZWQgRklYTUUKKyAgICAgICAgY29t
bWVudCBhYm91dCB0aGUgb3B0aW1pemF0aW9uLgorCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0Tm90aWZpY2F0aW9uQ2FsbGJhY2spOiBSZW1vdmVkLgor
ICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldEdyYW5kZmF0
aGVyRXhpc3RpbmdXZWJzaXRlRGF0YUNhbGxiYWNrKTogUmVtb3ZlZC4KKyAgICAgICAgKFdlYktp
dDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXREZWxldGVQZXJzaXN0ZW50U3RvcmVD
YWxsYmFjayk6IFJlbW92ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6c2V0RmlyZVRlbGVtZXRyeUNhbGxiYWNrKTogUmVtb3ZlZC4KKyAgICAgICAgRHJv
cCB0aG9zZSBjYWxsYmFjayBzZXR0ZXJzLiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUg
aXMgdGhlIG9ubHkgY2xpZW50IG9mCisgICAgICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZSBhbmQgdGhvc2UgY2FsbGJhY2tzIHdlcmUgYWx3YXlzIGNhbGxlZCBhcyBhIHJlc3VsdCBvZgor
ICAgICAgICBhbiBvcGVyYXRpb24gcmVxdWVzdGVkIGJ5IHRoZSBXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUuIFRoZXJlZm9yZSwgdGhvc2UgYXJlCisgICAgICAgIG5vdCBuZWVkZWQuIFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSBjYW4gdGFrZSBjYXJlIG9mIGRvaW5nIHdoYXQg
dGhvc2UKKyAgICAgICAgY2FsbGJhY2tzIHdlcmUgZG9pbmcgb24gaXRzIHNpZGUuCisKKyAgICAg
ICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpwcm9jZXNzU3RhdGlzdGlj
cyk6CisgICAgICAgIFBhc3MgcGFyYW1ldGVyIGJ5IGNvbnN0IHJlZmVyZW5jZSBzaW5jZSB3ZSBj
bGVhcmx5IGRvIG5vdCBpbnRlbmQgdG8gdHJhbnNmZXIgb3duZXJzaGlwIG9mIGl0LgorCisgICAg
ICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6dG9wUHJpdmF0ZWx5Q29u
dHJvbGxlZERvbWFpbnNUb1JlbW92ZVdlYnNpdGVEYXRhRm9yKToKKyAgICAgICAgKFdlYktpdDo6
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjp1cGRhdGVTdGF0aXN0aWNzRm9yUmVtb3ZlZERh
dGFSZWNvcmRzKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpoYW5kbGVGcmVzaFN0YXJ0V2l0aEVtcHR5T3JOb1N0b3JlKToKKyAgICAgICAgU3R5bGlzdGlj
IGNoYW5nZXMuCisKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpzaG91bGRSZW1vdmVEYXRhUmVjb3Jkcyk6IFJlbW92ZWQuCisgICAgICAgIChXZWJLaXQ6OlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6ZGF0YVJlY29yZHNCZWluZ1JlbW92ZWQpOiBSZW1v
dmVkLgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmRhdGFS
ZWNvcmRzV2VyZVJlbW92ZWQpOiBSZW1vdmVkLgorICAgICAgICBUaG9zZSB3ZXJlIG1vdmVkIHRv
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSBzaW5jZSB0aGV5IGRvIG5vdCByZXF1aXJl
CisgICAgICAgIGFueSBhY2Nlc3MgdG8gdGhlIHN0YXRpc3RpY3MsIGFuZCBhcmUgb25seSB1c2Vk
IGJ5IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9TdG9yYWdlL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oOgorCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6V2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlKToKKyAgICAgICAgU3RvcmUgcmVnaXN0ZXJpbmcgbW9zdCBjYWxsYmFja3Mgb24g
dGhlIGNvcmVTdG9yZS4gSW5zdGVhZCwgdGhlIGxvZ2ljIG9mIHRob3NlCisgICAgICAgIGNhbGxi
YWNrcyBpcyBub3cgaW5saW5lZCBpbiB0aGUgZmV3IG1ldGhvZHMgaW4gV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlCisgICAgICAgIHRoYXQgd2VyZSBjYXVzaW5nIHRoZXNlIGNhbGxiYWNr
cyB0byBiZSBjYWxsZWQuCisKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpyZW1vdmVEYXRhUmVjb3Jkcyk6CisgICAgICAgIEFjY2VzcyBzb21lIG1ldGhv
ZHMgb24gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIGluc3RlYWQgb2YgdGhlIGNvcmVT
dG9yZQorICAgICAgICBzaW5jZSB0aG9zZSB3ZXJlIG1vdmVkLgorCisgICAgICAgIChXZWJLaXQ6
OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRh
UmVjb3Jkcyk6CisgICAgICAgIERyb3AgdW5uZWNlc3NhcnkgbXV0YWJsZSBmb3IgbGFtYmRhLgor
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQpOgorICAgICAgICBQYXNzIHBhcmFtZXRlciBhcyBydmFs
dWUgcmVmZXJlbmNlIGFzIGEgcHJlcGFyYXRpb24gZm9yIGEgZnV0dXJlIG9wdGltaXphdGlvbi4K
KworICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0
YXRpc3RpY3NGaWxlQ2hhbmdlZFNpbmNlTGFzdFN5bmMpOgorICAgICAgICBNYWtlIGNvbnN0Lgor
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c3VibWl0
VGVsZW1ldHJ5KToKKyAgICAgICAgQWRkIGFzc2VydGlvbiB0byBtYWtlIHN1cmUgdGhpcyBpcyBj
YWxsZWQgb24gdGhlIG1haW4gdGhyZWFkLgorCisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6ZmlyZURhdGFNb2RpZmljYXRpb25IYW5kbGVyKTogUmVtb3Zl
ZC4KKyAgICAgICAgVGhpcyB3YXMgZGlzcGF0Y2hpbmcgdG8gYSBiYWNrZ3JvdW5kIHF1ZXVlIHRv
IGNhbGwgZmlyZURhdGFNb2RpZmljYXRpb25IYW5kbGVyKCkKKyAgICAgICAgb24gdGhlIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS4gVGhlIGNvcmVTdG9yZSB3b3VsZCB0aGVuIGRpc3BhdGNo
IGJhY2sgb24gdGhlCisgICAgICAgIG1haW4gdGhyZWFkIHRvIGNhbGwgdGhlIFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZSdzIG1vZGlmaWNhdGlvbiBoYW5kbGVyLgorICAgICAgICBUaGlz
IG1vZGlmaWNhdGlvbiBoYW5kbGVyIHdhcyBtZXJlbHkgY2FsbGluZyBwcm9jZXNzU3RhdGlzdGlj
c0FuZERhdGFSZWNvcmRzKCkuCisgICAgICAgIFRoZXJlZm9yZSwgY2FsbGVycyBvZiBXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlcigpCisg
ICAgICAgIGNhbiBjYWxsIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cHJvY2Vzc1N0
YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpIGRpcmVjdGx5CisgICAgICAgIGluc3RlYWQuCisKKyAg
ICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpmaXJlVGVsZW1l
dHJ5SGFuZGxlcik6IFJlbW92ZWQuCisgICAgICAgIFRoaXMgd2FzIGNhbGxpbmcgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpmaXJlVGVsZW1ldHJ5SGFuZGxlcigpLCB3aGljaCB3YXMKKyAg
ICAgICAgY2FsbGluZyBiYWNrIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSdzIGZpcmVU
ZWxlbWV0cnlIYW5kbGVyLiBUaGUgaGFuZGxlcgorICAgICAgICBpbiBxdWVzdGlvbiB3YXMgbWVy
ZWx5IGNhbGxpbmcgc3VibWl0VGVsZW1ldHJ5KCkuIFRoZXJlZm9yZSwgY2FsbGVycyBvZgorICAg
ICAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmZpcmVUZWxlbWV0cnlIYW5kbGVy
KCkgY2FuIGNhbGwKKyAgICAgICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzdWJt
aXRUZWxlbWV0cnkoKSBkaXJlY3RseSBpbnN0ZWFkLgorCisgICAgICAgIChXZWJLaXQ6OldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQpOgor
ICAgICAgICBDYWxsIFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2xlYXJJbk1lbW9yeSgp
IGluc3RlYWQgb2YgY2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQoKSwKKyAgICAgICAgd2hpY2gg
d2FzIHJlbW92ZWQuIFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2xlYXJJbk1lbW9yeUFu
ZFBlcnNpc3RlbnQoKSB3YXMgY2FsbGluZworICAgICAgICBjbGVhckluTWVtb3J5KCkgYW5kIHRo
ZW4gMiBvZiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUncyBoYW5kbGVycy4gSW5zdGVh
ZCwgd2Ugbm93CisgICAgICAgIGNhbGwgdGhlIGZ1bmN0aW9ucyB0aGF0IHRob3NlIGhhbmRsZXJz
IHdlcmUgY2FsbGluZyBkaXJlY3RseSwgdGh1cyBlbGltaW5hdGluZyB0aGUgbmVlZAorICAgICAg
ICBmb3IgdGhvc2UgaGFuZGxlcnMuCisKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpzZXRNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwp
OgorICAgICAgICBTZXQgbV9taW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwgZGly
ZWN0bHkgYXMgaXQgaXMgbm93IHN0b3JlIG9uIHRoaXMgY2xhc3MKKyAgICAgICAgaW5zdGVhZCBv
ZiB0aGUgY29yZVN0b3JlLgorCisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZTo6c2hvdWxkUmVtb3ZlRGF0YVJlY29yZHMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmRhdGFSZWNvcmRzQmVpbmdSZW1vdmVkKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpkYXRhUmVj
b3Jkc1dlcmVSZW1vdmVkKToKKyAgICAgICAgVGhvc2Ugd2VyZSBtZXJlbHkgbW92ZWQgZnJvbSB0
aGUgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oOgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5OjpjYWxjdWxhdGVBbmRTdWJtaXQpOgor
ICAgICAgICBDaGVjayBmb3Igc29ydGVkUHJldmFsZW50UmVzb3VyY2VzLmlzRW1wdHkoKSBpbnN0
ZWFkIG9mIGNoZWNraW5nIGlmIHRoZSBzaXplCisgICAgICAgIGlmIGxlc3MgdGhhbiBtaW5pbXVt
UHJldmFsZW50UmVzb3VyY2VzRm9yVGVsZW1ldHJ5LgorICAgICAgICBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OnNvcnRlZFByZXZhbGVudFJlc291cmNlVGVsZW1ldHJ5KCkgZWl0aGVyIHJl
dHVybnMKKyAgICAgICAgYW4gZW1wdHkgdmVjdG9yIG9yIGEgdmVjdG9yIHdpdGggbW9yZSB0aGFu
IG1pbmltdW1QcmV2YWxlbnRSZXNvdXJjZXNGb3JUZWxlbWV0cnkKKyAgICAgICAgaXRlbXMuIFRo
ZXJlZm9yZSwgdGhlcmUgaXMgbm8gbmVlZCB0byBleHBvc2UgbWluaW11bVByZXZhbGVudFJlc291
cmNlc0ZvclRlbGVtZXRyeS4KKworMjAxNy0wNy0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCiAgICAgICAgIFtXSzJdIFVzZSBhIHJvbGxpbmcgMzAtZGF5IHVwdGltZSBmb3Ig
cHJvY2Vzc2luZyBzdGF0aXN0aWNzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzQyMzUKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzMTY0MzgxPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVE
YXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0
ZURhdGFTdG9yZS5tbQppbmRleCAxZjQ1ZDcyNTEwMDg2ZGQxZWUyYjIyZmQ0MGVhYTlhMzc2MmJj
OGZhLi44YWE1ZTU5MWVhMzI5OTBkODA4MjU0MzkwNDg3MzRmMDlkMzg4MDk3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZS5tbQpAQCAtMzQ1LDEzICszNDUsMTMgQEAgLSAodm9pZClfcmVzb3VyY2VMb2FkU3RhdGlz
dGljc1NldEdyYW5kZmF0aGVyaW5nVGltZTooZG91YmxlKXNlY29uZHMKICAgICBzdG9yZS0+c2V0
R3JhbmRmYXRoZXJpbmdUaW1lKFNlY29uZHMge3NlY29uZHMgfSk7CiB9CiAKLS0gKHZvaWQpX3Jl
c291cmNlTG9hZFN0YXRpc3RpY3NGaXJlRGF0YU1vZGlmaWNhdGlvbkhhbmRsZXIKKy0gKHZvaWQp
X3Jlc291cmNlTG9hZFN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzCiB7
CiAgICAgYXV0byogc3RvcmUgPSBfd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFTdG9yZSgp
LnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKTsKICAgICBpZiAoIXN0b3JlKQogICAgICAgICByZXR1
cm47CiAKLSAgICBzdG9yZS0+ZmlyZURhdGFNb2RpZmljYXRpb25IYW5kbGVyKCk7CisgICAgc3Rv
cmUtPnByb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKIH0KIAogLSAodm9pZClfcmVz
b3VyY2VMb2FkU3RhdGlzdGljc0ZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlcgpAQCAt
Mzc1LDEzICszNzUsMTMgQEAgLSAodm9pZClfcmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcmVTaG91
bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlckZvck9uZURvbWFpbjooQk8KICAgICAgICAgc3RvcmUt
PmZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlcih7IGhvc3QgfSwgeyB9LCBmYWxzZSk7
CiB9CiAKLS0gKHZvaWQpX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NGaXJlVGVsZW1ldHJ5SGFuZGxl
cgorLSAodm9pZClfcmVzb3VyY2VMb2FkU3RhdGlzdGljc1N1Ym1pdFRlbGVtZXRyeQogewogICAg
IGF1dG8qIHN0b3JlID0gX3dlYnNpdGVEYXRhU3RvcmUtPndlYnNpdGVEYXRhU3RvcmUoKS5yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzKCk7CiAgICAgaWYgKCFzdG9yZSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgc3RvcmUtPmZpcmVUZWxlbWV0cnlIYW5kbGVyKCk7CisgICAgc3RvcmUtPnN1Ym1pdFRl
bGVtZXRyeSgpOwogfQogCiAtICh2b2lkKV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2V0Tm90aWZ5
UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZDooQk9PTCl2YWx1ZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZVByaXZhdGUuaAppbmRleCA5M2RiM2Y3ODcwZGRkNGQzZmNjNjc4OGU1NmVmM2IyYTMxNGJj
NmVmLi5jNjdlYTVkZGFiN2I4MmUyNDA4ODcyZjBiYjAwNTgxZWEzZjg0YzBiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVBy
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0
ZURhdGFTdG9yZVByaXZhdGUuaApAQCAtNTcsMTAgKzU3LDEwIEBAIHR5cGVkZWYgTlNfT1BUSU9O
UyhOU1VJbnRlZ2VyLCBfV0tXZWJzaXRlRGF0YVN0b3JlRmV0Y2hPcHRpb25zKSB7CiAtICh2b2lk
KV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2V0VGltZVRvTGl2ZUNvb2tpZVBhcnRpdGlvbkZyZWU6
KGRvdWJsZSlzZWNvbmRzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwogLSAodm9pZClfcmVzb3VyY2VMb2FkU3RhdGlzdGljc1NldE1pbmltdW1U
aW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbDooZG91YmxlKXNlY29uZHMgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU2V0R3JhbmRmYXRoZXJpbmdUaW1lOihkb3VibGUpc2Vjb25kcyBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0g
KHZvaWQpX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NGaXJlRGF0YU1vZGlmaWNhdGlvbkhhbmRsZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Cist
ICh2b2lkKV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVj
b3JkcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKIC0gKHZvaWQpX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NGaXJlU2hvdWxkUGFydGl0aW9uQ29v
a2llc0hhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CiAtICh2b2lkKV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyZVNob3VsZFBhcnRp
dGlvbkNvb2tpZXNIYW5kbGVyRm9yT25lRG9tYWluOihCT09MKXZhbHVlIGZvckhvc3Q6KE5TU3Ry
aW5nICopaG9zdCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKLS0gKHZvaWQpX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NGaXJlVGVsZW1ldHJ5SGFu
ZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKKy0gKHZvaWQpX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdWJtaXRUZWxlbWV0cnkgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lk
KV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzU2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJl
U2Nhbm5lZDooQk9PTCl2YWx1ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NTZXRTaG91
bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbDooQk9PTCl2YWx1ZSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0g
KHZvaWQpX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NTZXROb3RpZnlQYWdlc1doZW5UZWxlbWV0cnlX
YXNDYXB0dXJlZDooQk9PTCl2YWx1ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9TdG9yYWdlL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvU3RvcmFnZS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4
IDcyNmU2NzkyMjljNTJjMGRjN2EzOWE5YTk1YmM2NzAyM2UyOWY5NTkuLmQwMDNjNjI4MWVhYThk
NTQwMmFhMzViOWNhMjJlMDBhZGJlNTUwNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9TdG9yYWdlL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3JhZ2UvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmNwcApAQCAtMjYsMjcgKzI2LDI0IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgiCiAKLSNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9LZXllZENvZGluZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9VUkwuaD4KICNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRDb3BpZXIu
aD4KLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9v
cC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
LWNvbnN0IHVuc2lnbmVkIHN0YXRpc3RpY3NNb2RlbFZlcnNpb24geyA2IH07Citjb25zdCB1bnNp
Z25lZCBtaW5pbXVtUHJldmFsZW50UmVzb3VyY2VzRm9yVGVsZW1ldHJ5ID0gMzsKIGNvbnN0IHVu
c2lnbmVkIG9wZXJhdGluZ0RhdGVzV2luZG93IHsgMzAgfTsKLSAgICAKK2NvbnN0IHVuc2lnbmVk
IHN0YXRpc3RpY3NNb2RlbFZlcnNpb24geyA2IH07CisKIFJlZjxSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU+IFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y3JlYXRlKCkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKTsKIH0KLSAg
ICAKKwogYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmlzUHJldmFsZW50UmVzb3Vy
Y2UoY29uc3QgU3RyaW5nJiBwcmltYXJ5RG9tYWluKSBjb25zdAogewogICAgIEFTU0VSVCghUnVu
TG9vcDo6aXNNYWluKCkpOwpAQCAtNzAsMTYgKzY3LDE0IEBAIGJvb2wgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjppc0dyYW5kRmF0aGVyZWQoY29uc3QgU3RyaW5nJiBwcmltYXJ5RG9tYWlu
KSBjCiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OmVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclByaW1hcnlEb21haW4oY29uc3QgU3RyaW5nJiBw
cmltYXJ5RG9tYWluKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIGF1
dG8gYWRkUmVzdWx0ID0gbV9yZXNvdXJjZVN0YXRpc3RpY3NNYXAuZW5zdXJlKHByaW1hcnlEb21h
aW4sIFsmcHJpbWFyeURvbWFpbl0geworICAgIHJldHVybiBtX3Jlc291cmNlU3RhdGlzdGljc01h
cC5lbnN1cmUocHJpbWFyeURvbWFpbiwgWyZwcmltYXJ5RG9tYWluXSB7CiAgICAgICAgIHJldHVy
biBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKHByaW1hcnlEb21haW4pOwotICAgIH0pOwotCi0gICAg
cmV0dXJuIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWU7CisgICAgfSkuaXRlcmF0b3ItPnZhbHVl
OwogfQogCiB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPjo6
S2V5VmFsdWVQYWlyVHlwZSBTdGF0aXN0aWNzVmFsdWU7CiAKLXN0ZDo6dW5pcXVlX3B0cjxLZXll
ZEVuY29kZXI+IFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y3JlYXRlRW5jb2RlckZyb21E
YXRhKCkKK3N0ZDo6dW5pcXVlX3B0cjxLZXllZEVuY29kZXI+IFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6Y3JlYXRlRW5jb2RlckZyb21EYXRhKCkgY29uc3QKIHsKICAgICBBU1NFUlQoIVJ1
bkxvb3A6OmlzTWFpbigpKTsKICAgICBhdXRvIGVuY29kZXIgPSBLZXllZEVuY29kZXI6OmVuY29k
ZXIoKTsKQEAgLTEwMCw3ICs5NSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxLZXllZEVuY29kZXI+IFJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y3JlYXRlRW5jb2RlckZyb21EYXRhCiB2b2lkIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVhZERhdGFGcm9tRGVjb2RlcihLZXllZERlY29k
ZXImIGRlY29kZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgaWYg
KG1fcmVzb3VyY2VTdGF0aXN0aWNzTWFwLnNpemUoKSkKKyAgICBpZiAoIW1fcmVzb3VyY2VTdGF0
aXN0aWNzTWFwLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgdW5zaWduZWQgdmVy
c2lvbk9uRGlzazsKQEAgLTEzMSw3ICsxMjYsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6cmVhZERhdGFGcm9tRGVjb2RlcihLZXllZERlY29kZXImIGRlY29kZXIpCiAgICAg
ICAgICAgICBwcmV2YWxlbnRSZXNvdXJjZURvbWFpbnNXaXRob3V0VXNlckludGVyYWN0aW9uLnVu
Y2hlY2tlZEFwcGVuZChzdGF0aXN0aWNzLmhpZ2hMZXZlbERvbWFpbik7CiAgICAgICAgICAgICBz
dGF0aXN0aWNzLmlzTWFya2VkRm9yQ29va2llUGFydGl0aW9uaW5nID0gdHJ1ZTsKICAgICAgICAg
fQotICAgICAgICBtX3Jlc291cmNlU3RhdGlzdGljc01hcC5zZXQoc3RhdGlzdGljcy5oaWdoTGV2
ZWxEb21haW4sIFdURk1vdmUoc3RhdGlzdGljcykpOworICAgICAgICBtX3Jlc291cmNlU3RhdGlz
dGljc01hcC5hZGQoc3RhdGlzdGljcy5oaWdoTGV2ZWxEb21haW4sIFdURk1vdmUoc3RhdGlzdGlj
cykpOwogICAgIH0KIAogICAgIHN1Y2NlZWRlZCA9IGRlY29kZXIuZGVjb2RlT2JqZWN0cygib3Bl
cmF0aW5nRGF0ZXMiLCBtX29wZXJhdGluZ0RhdGVzLCBbXShLZXllZERlY29kZXImIGRlY29kZXIs
IFdhbGxUaW1lJiB3YWxsVGltZSkgewpAQCAtMTU4LDIwICsxNTMsMTIgQEAgdm9pZCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNsZWFySW5NZW1vcnkoKQogICAgIGZpcmVTaG91bGRQYXJ0
aXRpb25Db29raWVzSGFuZGxlcih7IH0sIHsgfSwgdHJ1ZSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpjbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudCgpCi17Ci0gICAg
QVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgY2xlYXJJbk1lbW9yeSgpOwotICAgIGlm
IChtX2RlbGV0ZVBlcnNpc3RlbnRTdG9yZUhhbmRsZXIpCi0gICAgICAgIG1fZGVsZXRlUGVyc2lz
dGVudFN0b3JlSGFuZGxlcigpOwotICAgIGlmIChtX2dyYW5kZmF0aGVyRXhpc3RpbmdXZWJzaXRl
RGF0YUhhbmRsZXIpCi0gICAgICAgIG1fZ3JhbmRmYXRoZXJFeGlzdGluZ1dlYnNpdGVEYXRhSGFu
ZGxlcigpOwotfQotCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bWVyZ2VTdGF0
aXN0aWNzKGNvbnN0IFZlY3RvcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPiYgc3RhdGlzdGljcykK
K3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjptZXJnZVN0YXRpc3RpY3MoVmVjdG9y
PFJlc291cmNlTG9hZFN0YXRpc3RpY3M+JiYgc3RhdGlzdGljcykKIHsKICAgICBBU1NFUlQoIVJ1
bkxvb3A6OmlzTWFpbigpKTsKICAgICBmb3IgKGF1dG8mIHN0YXRpc3RpYyA6IHN0YXRpc3RpY3Mp
IHsKKyAgICAgICAgLy8gRklYTUU6IEluIHRoZSBjYXNlIHdoZXJlIHRoZSBzdGF0aXN0aWNzIGRv
ZXMgbm90IGFscmVhZHkgZXhpc3QsIGl0IHNlZW1zIGluZWZmaWNpZW50IHRvIGNyZWF0ZQorICAg
ICAgICAvLyBhbiBlbXB0eSBvbmUganVzdCB0byBtZXJnZSB0aGUgbmV3IG9uZSBpbnRvIGl0Lgog
ICAgICAgICBhdXRvIHJlc3VsdCA9IG1fcmVzb3VyY2VTdGF0aXN0aWNzTWFwLmVuc3VyZShzdGF0
aXN0aWMuaGlnaExldmVsRG9tYWluLCBbJnN0YXRpc3RpY10gewogICAgICAgICAgICAgcmV0dXJu
IFJlc291cmNlTG9hZFN0YXRpc3RpY3Moc3RhdGlzdGljLmhpZ2hMZXZlbERvbWFpbik7CiAgICAg
ICAgIH0pOwpAQCAtMTgwLDQ3ICsxNjcsMTEgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6Om1lcmdlU3RhdGlzdGljcyhjb25zdCBWZWN0b3I8UmVzb3VyY2VMb2FkU3RhdGkKICAg
ICB9CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXROb3RpZmljYXRp
b25DYWxsYmFjayhXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBoYW5kbGVyKQotewotICAgIG1fZGF0
YUFkZGVkSGFuZGxlciA9IFdURk1vdmUoaGFuZGxlcik7Ci19Ci0KIHZvaWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpzZXRTaG91bGRQYXJ0aXRpb25Db29raWVzQ2FsbGJhY2soV1RGOjpG
dW5jdGlvbjx2b2lkKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9SZW1vdmUsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9BZGQsIGJvb2wgY2xlYXJGaXJzdCk+JiYgaGFuZGxl
cikKIHsKICAgICBtX3Nob3VsZFBhcnRpdGlvbkNvb2tpZXNGb3JEb21haW5zSGFuZGxlciA9IFdU
Rk1vdmUoaGFuZGxlcik7CiB9Ci0gICAgCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZTo6c2V0R3JhbmRmYXRoZXJFeGlzdGluZ1dlYnNpdGVEYXRhQ2FsbGJhY2soV1RGOjpGdW5jdGlv
bjx2b2lkKCk+JiYgaGFuZGxlcikKLXsKLSAgICBtX2dyYW5kZmF0aGVyRXhpc3RpbmdXZWJzaXRl
RGF0YUhhbmRsZXIgPSBXVEZNb3ZlKGhhbmRsZXIpOwotfQotCi12b2lkIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6c2V0RGVsZXRlUGVyc2lzdGVudFN0b3JlQ2FsbGJhY2soV1RGOjpGdW5j
dGlvbjx2b2lkKCk+JiYgaGFuZGxlcikKLXsKLSAgICBtX2RlbGV0ZVBlcnNpc3RlbnRTdG9yZUhh
bmRsZXIgPSBXVEZNb3ZlKGhhbmRsZXIpOwotfQogCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6c2V0RmlyZVRlbGVtZXRyeUNhbGxiYWNrKFdURjo6RnVuY3Rpb248dm9pZCgpPiYm
IGhhbmRsZXIpCi17Ci0gICAgbV9maXJlVGVsZW1ldHJ5SGFuZGxlciA9IFdURk1vdmUoaGFuZGxl
cik7Ci19Ci0gICAgCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6ZmlyZURhdGFN
b2RpZmljYXRpb25IYW5kbGVyKCkKLXsKLSAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsK
LSAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKV0gKCkgewotICAgICAgICBpZiAobV9kYXRhQWRkZWRIYW5kbGVyKQotICAgICAg
ICAgICAgbV9kYXRhQWRkZWRIYW5kbGVyKCk7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpmaXJlVGVsZW1ldHJ5SGFuZGxlcigpCi17Ci0gICAgQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBpZiAobV9maXJlVGVsZW1ldHJ5SGFuZGxlcikKLSAg
ICAgICAgbV9maXJlVGVsZW1ldHJ5SGFuZGxlcigpOwotfQotICAgIAogaW5saW5lIGJvb2wgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzaG91bGRQYXJ0aXRpb25Db29raWVzKGNvbnN0IFJl
c291cmNlTG9hZFN0YXRpc3RpY3MmIHN0YXRpc3RpYykgY29uc3QKIHsKICAgICByZXR1cm4gc3Rh
dGlzdGljLmlzUHJldmFsZW50UmVzb3VyY2UgJiYgKCFzdGF0aXN0aWMuaGFkVXNlckludGVyYWN0
aW9uIHx8IFdhbGxUaW1lOjpub3coKSA+IHN0YXRpc3RpYy5tb3N0UmVjZW50VXNlckludGVyYWN0
aW9uVGltZSArIG1fdGltZVRvTGl2ZUNvb2tpZVBhcnRpdGlvbkZyZWUpOwpAQCAtMjg3LDE5ICsy
MzgsMTMgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldFRpbWVUb0xpdmVD
b29raWVQYXJ0aXRpb25GcmVlKFNlY29uZHMgc2Vjb24KICAgICBtX3RpbWVUb0xpdmVDb29raWVQ
YXJ0aXRpb25GcmVlID0gc2Vjb25kczsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OnNldE1pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChTZWNvbmRzIHNl
Y29uZHMpCi17Ci0gICAgQVNTRVJUKHNlY29uZHMgPj0gMF9zKTsKLSAgICBtX21pbmltdW1UaW1l
QmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCA9IHNlY29uZHM7Ci19Ci0KIHZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpzZXRHcmFuZGZhdGhlcmluZ1RpbWUoU2Vjb25kcyBzZWNvbmRz
KQogewogICAgIEFTU0VSVChzZWNvbmRzID49IDBfcyk7CiAgICAgbV9ncmFuZGZhdGhlcmluZ1Rp
bWUgPSBzZWNvbmRzOwogfQogCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cHJv
Y2Vzc1N0YXRpc3RpY3MoV1RGOjpGdW5jdGlvbjx2b2lkKFJlc291cmNlTG9hZFN0YXRpc3RpY3Mm
KT4mJiBwcm9jZXNzRnVuY3Rpb24pCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6
cHJvY2Vzc1N0YXRpc3RpY3MoY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKFJlc291cmNlTG9hZFN0
YXRpc3RpY3MmKT4mIHByb2Nlc3NGdW5jdGlvbikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6Omlz
TWFpbigpKTsKICAgICBmb3IgKGF1dG8mIHJlc291cmNlU3RhdGlzdGljIDogbV9yZXNvdXJjZVN0
YXRpc3RpY3NNYXAudmFsdWVzKCkpCkBAIC0zMzYsOSArMjgxLDcgQEAgVmVjdG9yPFN0cmluZz4g
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjp0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWlu
c1RvUmVtb3YKIAogICAgIFZlY3RvcjxTdHJpbmc+IHByZXZhbGVudFJlc291cmNlczsKICAgICBm
b3IgKGF1dG8mIHN0YXRpc3RpYyA6IG1fcmVzb3VyY2VTdGF0aXN0aWNzTWFwLnZhbHVlcygpKSB7
Ci0gICAgICAgIGlmIChzdGF0aXN0aWMuaXNQcmV2YWxlbnRSZXNvdXJjZQotICAgICAgICAgICAg
JiYgIWhhc0hhZFJlY2VudFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWMpCi0gICAgICAgICAgICAm
JiAoIXNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcgfHwgIXN0YXRpc3RpYy5ncmFuZGZhdGhl
cmVkKSkKKyAgICAgICAgaWYgKHN0YXRpc3RpYy5pc1ByZXZhbGVudFJlc291cmNlICYmICFoYXNI
YWRSZWNlbnRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljKSAmJiAoIXNob3VsZENoZWNrRm9yR3Jh
bmRmYXRoZXJpbmcgfHwgIXN0YXRpc3RpYy5ncmFuZGZhdGhlcmVkKSkKICAgICAgICAgICAgIHBy
ZXZhbGVudFJlc291cmNlcy5hcHBlbmQoc3RhdGlzdGljLmhpZ2hMZXZlbERvbWFpbik7CiAKICAg
ICAgICAgaWYgKHNob3VsZENsZWFyR3JhbmRmYXRoZXJpbmcgJiYgc3RhdGlzdGljLmdyYW5kZmF0
aGVyZWQpCkBAIC0zODIsNyArMzI1LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OnVwZGF0ZVN0YXRpc3RpY3NGb3JSZW1vdmVkRGF0YVJlY29yZHMoY29uc3QgSGEKIHsKICAg
ICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBmb3IgKGF1dG8mIHByZXZhbGVudFJl
c291cmNlRG9tYWluIDogcHJldmFsZW50UmVzb3VyY2VEb21haW5zKSB7Ci0gICAgICAgIFJlc291
cmNlTG9hZFN0YXRpc3RpY3MmIHN0YXRpc3RpYyA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0Zv
clByaW1hcnlEb21haW4ocHJldmFsZW50UmVzb3VyY2VEb21haW4pOworICAgICAgICBhdXRvJiBz
dGF0aXN0aWMgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JQcmltYXJ5RG9tYWluKHByZXZh
bGVudFJlc291cmNlRG9tYWluKTsKICAgICAgICAgKytzdGF0aXN0aWMuZGF0YVJlY29yZHNSZW1v
dmVkOwogICAgIH0KIH0KQEAgLTM5MSwzNyArMzM0LDEyIEBAIHZvaWQgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpoYW5kbGVGcmVzaFN0YXJ0V2l0aEVtcHR5T3JOb1N0b3JlKEhhc2hTZXQ8
U3RyCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgZm9yIChhdXRvJiB0
b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluIDogdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFp
bnNUb0dyYW5kZmF0aGVyKSB7Ci0gICAgICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3MmIHN0YXRp
c3RpYyA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclByaW1hcnlEb21haW4odG9wUHJpdmF0
ZWx5Q29udHJvbGxlZERvbWFpbik7CisgICAgICAgIGF1dG8mIHN0YXRpc3RpYyA9IGVuc3VyZVJl
c291cmNlU3RhdGlzdGljc0ZvclByaW1hcnlEb21haW4odG9wUHJpdmF0ZWx5Q29udHJvbGxlZERv
bWFpbik7CiAgICAgICAgIHN0YXRpc3RpYy5ncmFuZGZhdGhlcmVkID0gdHJ1ZTsKICAgICB9CiAg
ICAgbV9lbmRPZkdyYW5kZmF0aGVyaW5nVGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpICsgbV9n
cmFuZGZhdGhlcmluZ1RpbWU7CiB9CiAKLWJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpzaG91bGRSZW1vdmVEYXRhUmVjb3JkcygpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKCFSdW5Mb29w
Ojppc01haW4oKSk7Ci0gICAgaWYgKG1fZGF0YVJlY29yZHNSZW1vdmFsUGVuZGluZykKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKG1fbGFzdFRpbWVEYXRhUmVjb3Jkc1dlcmVSZW1v
dmVkICYmIE1vbm90b25pY1RpbWU6Om5vdygpIDwgKG1fbGFzdFRpbWVEYXRhUmVjb3Jkc1dlcmVS
ZW1vdmVkICsgbV9taW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OmRhdGFSZWNvcmRzQmVpbmdSZW1vdmVkKCkKLXsKLSAgICBBU1NF
UlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBtX2xhc3RUaW1lRGF0YVJlY29yZHNXZXJlUmVt
b3ZlZCA9IE1vbm90b25pY1RpbWU6Om5vdygpOwotICAgIG1fZGF0YVJlY29yZHNSZW1vdmFsUGVu
ZGluZyA9IHRydWU7Ci19Ci0KLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpkYXRh
UmVjb3Jkc1dlcmVSZW1vdmVkKCkKLXsKLSAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsK
LSAgICBtX2RhdGFSZWNvcmRzUmVtb3ZhbFBlbmRpbmcgPSBmYWxzZTsKLX0KLQogdm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmluY2x1ZGVUb2RheUFzT3BlcmF0aW5nRGF0ZUlmTmVj
ZXNzYXJ5KCkKIHsKICAgICBpZiAoIW1fb3BlcmF0aW5nRGF0ZXMuaXNFbXB0eSgpICYmIChXYWxs
VGltZTo6bm93KCkgLSBtX29wZXJhdGluZ0RhdGVzLmxhc3QoKSA8IDI0X2gpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3JhZ2UvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUuaAppbmRleCBiMDAyYTU2NzdlZTVkZjkxNDFlMTZhNjgzMDk3MjAxNTU5
NmU5ZDFmLi41ODQ2MDcyNWY1MzcwMmFiOTY1Y2Q3OGVkOGJmMTk4ZDBjZjlkNDA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApAQCAtNDEsOCArNDEsNiBAQCBzdHJ1Y3QgUmVzb3VyY2VM
b2FkU3RhdGlzdGljczsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXN0YXRpYyBjb25zdCBhdXRv
IG1pbmltdW1QcmV2YWxlbnRSZXNvdXJjZXNGb3JUZWxlbWV0cnkgPSAzOwotCiBzdHJ1Y3QgUHJl
dmFsZW50UmVzb3VyY2VUZWxlbWV0cnkgewogICAgIHVuc2lnbmVkIG51bWJlck9mVGltZXNEYXRh
UmVjb3Jkc1JlbW92ZWQ7CiAgICAgYm9vbCBoYXNIYWRVc2VySW50ZXJhY3Rpb247CkBAIC01Nywz
OCArNTUsMjkgQEAgY2xhc3MgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPFJlc291cmNlTG9hZFN0YXQKIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmPFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZT4gY3JlYXRlKCk7CiAKLSAgICBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6S2V5ZWRFbmNvZGVyPiBjcmVhdGVFbmNvZGVyRnJvbURhdGEoKTsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6S2V5ZWRFbmNvZGVyPiBjcmVhdGVFbmNvZGVy
RnJvbURhdGEoKSBjb25zdDsKICAgICB2b2lkIHJlYWREYXRhRnJvbURlY29kZXIoV2ViQ29yZTo6
S2V5ZWREZWNvZGVyJik7CiAKICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3Jl
c291cmNlU3RhdGlzdGljc01hcC5pc0VtcHR5KCk7IH0KLSAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fcmVzb3VyY2VTdGF0aXN0aWNzTWFwLnNpemUoKTsgfQogICAgIHZvaWQgY2xl
YXJJbk1lbW9yeSgpOwotICAgIHZvaWQgY2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQoKTsKIAog
ICAgIFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3MmIGVuc3VyZVJlc291cmNlU3RhdGlz
dGljc0ZvclByaW1hcnlEb21haW4oY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBzZXRSZXNvdXJj
ZVN0YXRpc3RpY3NGb3JQcmltYXJ5RG9tYWluKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OlJlc291
cmNlTG9hZFN0YXRpc3RpY3MmJik7CiAKICAgICBib29sIGlzUHJldmFsZW50UmVzb3VyY2UoY29u
c3QgU3RyaW5nJikgY29uc3Q7CiAgICAgYm9vbCBpc0dyYW5kRmF0aGVyZWQoY29uc3QgU3RyaW5n
JikgY29uc3Q7CiAgICAgCi0gICAgdm9pZCBtZXJnZVN0YXRpc3RpY3MoY29uc3QgVmVjdG9yPFdl
YkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M+Jik7CisgICAgdm9pZCBtZXJnZVN0YXRpc3Rp
Y3MoVmVjdG9yPFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M+JiYpOwogCi0gICAgdm9p
ZCBzZXROb3RpZmljYXRpb25DYWxsYmFjayhXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBzZXRTaG91bGRQYXJ0aXRpb25Db29raWVzQ2FsbGJhY2soV1RGOjpGdW5jdGlvbjx2b2lk
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9SZW1vdmUsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBkb21haW5zVG9BZGQsIGJvb2wgY2xlYXJGaXJzdCk+JiYpOwotICAgIHZvaWQgc2V0RGVs
ZXRlUGVyc2lzdGVudFN0b3JlQ2FsbGJhY2soV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYpOwotICAg
IHZvaWQgc2V0R3JhbmRmYXRoZXJFeGlzdGluZ1dlYnNpdGVEYXRhQ2FsbGJhY2soV1RGOjpGdW5j
dGlvbjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0RmlyZVRlbGVtZXRyeUNhbGxiYWNrKFdURjo6
RnVuY3Rpb248dm9pZCgpPiYmIGhhbmRsZXIpOwogCi0gICAgdm9pZCBmaXJlRGF0YU1vZGlmaWNh
dGlvbkhhbmRsZXIoKTsKLSAgICB2b2lkIGZpcmVUZWxlbWV0cnlIYW5kbGVyKCk7CiAgICAgdm9p
ZCBzZXRUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4pOwog
ICAgIHZvaWQgc2V0VGltZVRvTGl2ZUNvb2tpZVBhcnRpdGlvbkZyZWUoU2Vjb25kcyk7Ci0gICAg
dm9pZCBzZXRNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoU2Vjb25kcyk7CiAg
ICAgdm9pZCBzZXRHcmFuZGZhdGhlcmluZ1RpbWUoU2Vjb25kcyk7CisKICAgICB2b2lkIGZpcmVT
aG91bGRQYXJ0aXRpb25Db29raWVzSGFuZGxlcigpOwogICAgIHZvaWQgZmlyZVNob3VsZFBhcnRp
dGlvbkNvb2tpZXNIYW5kbGVyKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9SZW1vdmUs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9BZGQsIGJvb2wgY2xlYXJGaXJzdCk7CiAK
LSAgICB2b2lkIHByb2Nlc3NTdGF0aXN0aWNzKFdURjo6RnVuY3Rpb248dm9pZCAoV2ViQ29yZTo6
UmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpPiYmKTsKKyAgICB2b2lkIHByb2Nlc3NTdGF0aXN0aWNz
KGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZCAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyYpPiYpOwogCiAgICAgYm9vbCBoYXNIYWRSZWNlbnRVc2VySW50ZXJhY3Rpb24oV2ViQ29yZTo6
UmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpIGNvbnN0OwogICAgIFZlY3RvcjxTdHJpbmc+IHRvcFBy
aXZhdGVseUNvbnRyb2xsZWREb21haW5zVG9SZW1vdmVXZWJzaXRlRGF0YUZvcigpOwpAQCAtOTYs
MTAgKzg1LDYgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlU3RhdGlzdGljc0ZvclJlbW92ZWRE
YXRhUmVjb3Jkcyhjb25zdCBIYXNoU2V0PFN0cmluZz4mIHByZXZhbGVudFJlc291cmNlRG9tYWlu
cyk7CiAKICAgICB2b2lkIGhhbmRsZUZyZXNoU3RhcnRXaXRoRW1wdHlPck5vU3RvcmUoSGFzaFNl
dDxTdHJpbmc+JiYgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbnNUb0dyYW5kZmF0aGVyKTsK
LSAgICBib29sIHNob3VsZFJlbW92ZURhdGFSZWNvcmRzKCkgY29uc3Q7Ci0gICAgdm9pZCBkYXRh
UmVjb3Jkc0JlaW5nUmVtb3ZlZCgpOwotICAgIHZvaWQgZGF0YVJlY29yZHNXZXJlUmVtb3ZlZCgp
OwotCiAgICAgdm9pZCBpbmNsdWRlVG9kYXlBc09wZXJhdGluZ0RhdGVJZk5lY2Vzc2FyeSgpOwog
CiBwcml2YXRlOgpAQCAtMTExLDIwICs5NiwxMyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8U3Ry
aW5nLCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPiBtX3Jlc291cmNlU3RhdGlzdGlj
c01hcDsKICAgICBEZXF1ZTxXVEY6OldhbGxUaW1lPiBtX29wZXJhdGluZ0RhdGVzOwogCi0gICAg
V1RGOjpGdW5jdGlvbjx2b2lkKCk+IG1fZGF0YUFkZGVkSGFuZGxlcjsKICAgICBXVEY6OkZ1bmN0
aW9uPHZvaWQoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGJv
b2wgY2xlYXJGaXJzdCk+IG1fc2hvdWxkUGFydGl0aW9uQ29va2llc0ZvckRvbWFpbnNIYW5kbGVy
OwotICAgIFdURjo6RnVuY3Rpb248dm9pZCgpPiBtX2dyYW5kZmF0aGVyRXhpc3RpbmdXZWJzaXRl
RGF0YUhhbmRsZXI7Ci0gICAgV1RGOjpGdW5jdGlvbjx2b2lkKCk+IG1fZGVsZXRlUGVyc2lzdGVu
dFN0b3JlSGFuZGxlcjsKLSAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4gbV9maXJlVGVsZW1ldHJ5
SGFuZGxlcjsKIAogICAgIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gbV90aW1lVG9MaXZlVXNlcklu
dGVyYWN0aW9uOwogICAgIFNlY29uZHMgbV90aW1lVG9MaXZlQ29va2llUGFydGl0aW9uRnJlZSB7
IDI0X2ggfTsKICAgICBTZWNvbmRzIG1fZ3JhbmRmYXRoZXJpbmdUaW1lIHsgMV9oIH07Ci0gICAg
U2Vjb25kcyBtX21pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCB7IDFfaCB9Owog
CiAgICAgV2FsbFRpbWUgbV9lbmRPZkdyYW5kZmF0aGVyaW5nVGltZXN0YW1wOwotICAgIE1vbm90
b25pY1RpbWUgbV9sYXN0VGltZURhdGFSZWNvcmRzV2VyZVJlbW92ZWQ7Ci0gICAgYm9vbCBtX2Rh
dGFSZWNvcmRzUmVtb3ZhbFBlbmRpbmcgeyBmYWxzZSB9OwogfTsKICAgICAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCBkZGRjMWM0MWE4NmQ2NmZjN2Vm
ZjNjMDdiMzNhMTU2ZmE4NTU3ZTI0Li5kYTNmZTQwNjk2YmQyOTlmZmU5YmIyMmExZTgwZjMwODNk
OTg1YWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApAQCAtMjcsMjQgKzI3LDIxIEBACiAjaW5j
bHVkZSAiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgiCiAKICNpbmNsdWRlICJMb2dn
aW5nLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKICNp
bmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmVNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NUZWxlbWV0cnkuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YUZldGNoT3B0aW9uLmgiCiAjaW5j
bHVkZSAiV2Vic2l0ZURhdGFUeXBlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlTW9uaXRvci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvS2V5
ZWRDb2RpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0Zi9Dcm9zc1Ro
cmVhZENvcGllci5oPgotI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3Rm
L01hdGhFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+Ci0jaW5jbHVk
ZSA8d3RmL1NlY29uZHMuaD4KLSNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3
dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAt
MTAzLDIzICsxMDAsNiBAQCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZShjb25zdCBTdHJpbmcmIHJlcwogICAgIHJlZ2lzdGVyVXNl
ckRlZmF1bHRzSWZOZWVkZWQoKTsKICNlbmRpZgogCi0gICAgbV9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUtPnNldE5vdGlmaWNhdGlvbkNhbGxiYWNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyldIHsKLSAgICAgICAgaWYgKG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLT5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHByb2Nlc3NTdGF0
aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKLSAgICB9KTsKLSAgICBtX3Jlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS0+c2V0R3JhbmRmYXRoZXJFeGlzdGluZ1dlYnNpdGVEYXRhQ2FsbGJhY2soW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewotICAgICAgICBncmFuZGZhdGhl
ckV4aXN0aW5nV2Vic2l0ZURhdGEoKTsKLSAgICB9KTsKLSAgICBtX3Jlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS0+c2V0RGVsZXRlUGVyc2lzdGVudFN0b3JlQ2FsbGJhY2soW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewotICAgICAgICBtX3N0YXRpc3RpY3NRdWV1ZS0+
ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBwcm90ZWN0ZWRUaGlzLmNvcHlSZWYoKV0g
ewotICAgICAgICAgICAgZGVsZXRlU3RvcmVGcm9tRGlzaygpOwotICAgICAgICB9KTsKLSAgICB9
KTsKLSAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS0+c2V0RmlyZVRlbGVtZXRyeUNh
bGxiYWNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKLSAgICAgICAg
c3VibWl0VGVsZW1ldHJ5KCk7Ci0gICAgfSk7Ci0KICAgICBpZiAodXBkYXRlUGFydGl0aW9uQ29v
a2llc0ZvckRvbWFpbnNIYW5kbGVyKSB7CiAgICAgICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlLT5zZXRTaG91bGRQYXJ0aXRpb25Db29raWVzQ2FsbGJhY2soW3VwZGF0ZVBhcnRpdGlv
bkNvb2tpZXNGb3JEb21haW5zSGFuZGxlciA9IFdURk1vdmUodXBkYXRlUGFydGl0aW9uQ29va2ll
c0ZvckRvbWFpbnNIYW5kbGVyKV0gKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9SZW1v
dmUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9BZGQsIGJvb2wgc2hvdWxkQ2xlYXJG
aXJzdCkgewogICAgICAgICAgICAgdXBkYXRlUGFydGl0aW9uQ29va2llc0ZvckRvbWFpbnNIYW5k
bGVyKGRvbWFpbnNUb1JlbW92ZSwgZG9tYWluc1RvQWRkLCBzaG91bGRDbGVhckZpcnN0KTsKQEAg
LTE2NCwyMiArMTQ0LDIyIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpy
ZW1vdmVEYXRhUmVjb3JkcygpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAg
ICAgCi0gICAgaWYgKCFjb3JlU3RvcmUoKS5zaG91bGRSZW1vdmVEYXRhUmVjb3JkcygpKQorICAg
IGlmICghc2hvdWxkUmVtb3ZlRGF0YVJlY29yZHMoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
YXV0byBwcmV2YWxlbnRSZXNvdXJjZURvbWFpbnMgPSBjb3JlU3RvcmUoKS50b3BQcml2YXRlbHlD
b250cm9sbGVkRG9tYWluc1RvUmVtb3ZlV2Vic2l0ZURhdGFGb3IoKTsKICAgICBpZiAocHJldmFs
ZW50UmVzb3VyY2VEb21haW5zLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAg
IGNvcmVTdG9yZSgpLmRhdGFSZWNvcmRzQmVpbmdSZW1vdmVkKCk7CisgICAgZGF0YVJlY29yZHNC
ZWluZ1JlbW92ZWQoKTsKIAogICAgIC8vIFN3aXRjaCB0byB0aGUgbWFpbiB0aHJlYWQgdG8gZ2V0
IHRoZSBkZWZhdWx0IHdlYnNpdGUgZGF0YSBzdG9yZQogICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNw
YXRjaChbcHJldmFsZW50UmVzb3VyY2VEb21haW5zID0gQ3Jvc3NUaHJlYWRDb3BpZXI8VmVjdG9y
PFN0cmluZz4+Ojpjb3B5KHByZXZhbGVudFJlc291cmNlRG9tYWlucyksIHRoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIFdlYlByb2Nlc3NQ
cm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JUb3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluc0lu
QWxsUGVyc2lzdGVudERhdGFTdG9yZXMoZGF0YVR5cGVzVG9SZW1vdmUoKSwgV1RGTW92ZShwcmV2
YWxlbnRSZXNvdXJjZURvbWFpbnMpLCBub3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2Fu
bmVkLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldKGNvbnN0
IEhhc2hTZXQ8U3RyaW5nPiYgZG9tYWluc1dpdGhEZWxldGVkV2Vic2l0ZURhdGEpIG11dGFibGUg
ewogICAgICAgICAgICAgLy8gQnV0IGFsd2F5cyB0b3VjaCB0aGUgUmVzb3VyY2VMb2FkU3RhdGlz
dGljcyBzdG9yZSBvbiB0aGUgd29ya2VyIHF1ZXVlLgotICAgICAgICAgICAgbV9zdGF0aXN0aWNz
UXVldWUtPmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwg
dG9wRG9tYWlucyA9IENyb3NzVGhyZWFkQ29waWVyPEhhc2hTZXQ8U3RyaW5nPj46OmNvcHkoZG9t
YWluc1dpdGhEZWxldGVkV2Vic2l0ZURhdGEpXSAoKSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAg
ICBwcm90ZWN0ZWRUaGlzLT5jb3JlU3RvcmUoKS51cGRhdGVTdGF0aXN0aWNzRm9yUmVtb3ZlZERh
dGFSZWNvcmRzKHRvcERvbWFpbnMpOwotICAgICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmNv
cmVTdG9yZSgpLmRhdGFSZWNvcmRzV2VyZVJlbW92ZWQoKTsKKyAgICAgICAgICAgIG1fc3RhdGlz
dGljc1F1ZXVlLT5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVj
dGVkVGhpcyksIHRvcERvbWFpbnMgPSBDcm9zc1RocmVhZENvcGllcjxIYXNoU2V0PFN0cmluZz4+
Ojpjb3B5KGRvbWFpbnNXaXRoRGVsZXRlZFdlYnNpdGVEYXRhKV0gKCkgbXV0YWJsZSB7CisgICAg
ICAgICAgICAgICAgY29yZVN0b3JlKCkudXBkYXRlU3RhdGlzdGljc0ZvclJlbW92ZWREYXRhUmVj
b3Jkcyh0b3BEb21haW5zKTsKKyAgICAgICAgICAgICAgICBkYXRhUmVjb3Jkc1dlcmVSZW1vdmVk
KCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xOTYsNyArMTc2
LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnByb2Nlc3NTdGF0aXN0
aWNzQW5kRGF0YVJlY29yZHMoKQogICAgICAgICByZW1vdmVEYXRhUmVjb3JkcygpOwogICAgICAg
ICAKICAgICAgICAgaWYgKG5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQpIHsK
LSAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbXSAoKSBtdXRhYmxlIHsKKyAg
ICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbXSB7CiAgICAgICAgICAgICAgICAg
V2ViUHJvY2Vzc1Byb3h5Ojpub3RpZnlQYWdlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJvY2Vz
c2VkKCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfQpAQCAtMjA1LDkgKzE4NSwxMSBAQCB2
b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cHJvY2Vzc1N0YXRpc3RpY3NBbmRE
YXRhUmVjb3JkcygpCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRlZChjb25zdCBWZWN0b3I8V2ViQ29y
ZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4mIG9yaWdpbnMpCit2b2lkIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQoVmVjdG9yPFdl
YkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M+JiYgb3JpZ2lucykKIHsKLSAgICBjb3JlU3Rv
cmUoKS5tZXJnZVN0YXRpc3RpY3Mob3JpZ2lucyk7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01h
aW4oKSk7CisKKyAgICBjb3JlU3RvcmUoKS5tZXJnZVN0YXRpc3RpY3MoV1RGTW92ZShvcmlnaW5z
KSk7CiAgICAgLy8gRmlyZSBiZWZvcmUgcHJvY2Vzc2luZyBzdGF0aXN0aWNzIHRvIHByb3BhZ2F0
ZSB1c2VyCiAgICAgLy8gaW50ZXJhY3Rpb24gYXMgZmFzdCBhcyBwb3NzaWJsZSB0byB0aGUgbmV0
d29yayBwcm9jZXNzLgogICAgIGNvcmVTdG9yZSgpLmZpcmVTaG91bGRQYXJ0aXRpb25Db29raWVz
SGFuZGxlcigpOwpAQCAtMjM3LDcgKzIxOSw3IEBAIFdhbGxUaW1lIFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6c3RhdGlzdGljc0ZpbGVNb2RpZmljYXRpb25UaW1lKGNvbnN0IFN0CiAg
ICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhtb2RpZmljYXRpb25UaW1lKTsKIH0K
IAotYm9vbCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0YXRpc3RpY3NGaWxl
Q2hhbmdlZFNpbmNlTGFzdFN5bmMoY29uc3QgU3RyaW5nJiBwYXRoKQorYm9vbCBXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0YXRpc3RpY3NGaWxlQ2hhbmdlZFNpbmNlTGFzdFN5
bmMoY29uc3QgU3RyaW5nJiBwYXRoKSBjb25zdAogewogICAgIHJldHVybiBzdGF0aXN0aWNzRmls
ZU1vZGlmaWNhdGlvblRpbWUocGF0aCkgPiBtX2xhc3RTdGF0aXN0aWNzRmlsZVN5bmNUaW1lOwog
fQpAQCAtNTQ5LDYgKzUzMSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpzdWJtaXRUZWxlbWV0cnlJZk5lY2Vzc2FyeSgpCiAKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpzdWJtaXRUZWxlbWV0cnkoKQogeworICAgIEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7CiAgICAgbV9zdGF0aXN0aWNzUXVldWUtPmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKICAgICAgICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1RlbGVtZXRyeTo6Y2FsY3VsYXRlQW5kU3VibWl0KGNvcmVTdG9yZSgpKTsKICAgICB9KTsK
QEAgLTY5MiwxOSArNjc1LDExIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpzZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oY29uc3QgVVJMJiBzCiAgICAgfSk7CiB9
CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpmaXJlRGF0YU1vZGlmaWNh
dGlvbkhhbmRsZXIoKQotewotICAgIC8vIEhlbHBlciBmdW5jdGlvbiB1c2VkIGJ5IHRlc3Rpbmcg
c3lzdGVtLiBTaG91bGQgb25seSBiZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQuCi0gICAg
QVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBtX3N0YXRpc3RpY3NRdWV1ZS0+ZGlzcGF0
Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewotICAgICAgICBjb3Jl
U3RvcmUoKS5maXJlRGF0YU1vZGlmaWNhdGlvbkhhbmRsZXIoKTsKLSAgICB9KTsKLX0KLQogdm9p
ZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmZpcmVTaG91bGRQYXJ0aXRpb25Db29r
aWVzSGFuZGxlcigpCiB7CiAgICAgLy8gSGVscGVyIGZ1bmN0aW9uIHVzZWQgYnkgdGVzdGluZyBz
eXN0ZW0uIFNob3VsZCBvbmx5IGJlIGNhbGxlZCBmcm9tIHRoZSBtYWluIHRocmVhZC4KICAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCiAgICAgbV9zdGF0aXN0aWNzUXVldWUtPmRpc3Bh
dGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKICAgICAgICAgY29y
ZVN0b3JlKCkuZmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyKCk7CiAgICAgfSk7CkBA
IC03MTksMTMgKzY5NCw2IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpm
aXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXIoY29uc3QgVmVjCiAgICAgfSk7CiB9CiAK
LXZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpmaXJlVGVsZW1ldHJ5SGFuZGxl
cigpCi17Ci0gICAgLy8gSGVscGVyIGZ1bmN0aW9uIHVzZWQgYnkgdGVzdGluZyBzeXN0ZW0uIFNo
b3VsZCBvbmx5IGJlIGNhbGxlZCBmcm9tIHRoZSBtYWluIHRocmVhZC4KLSAgICBBU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOwotICAgIGNvcmVTdG9yZSgpLmZpcmVUZWxlbWV0cnlIYW5kbGVyKCk7
Ci19Ci0KIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjbGVhckluTWVtb3J5
KCkKIHsKICAgICBtX3N0YXRpc3RpY3NRdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKV0gewpAQCAtNzM2LDcgKzcwNCw5IEBAIHZvaWQgV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjbGVhckluTWVtb3J5KCkKIHZvaWQgV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpjbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudCgpCiB7CiAgICAg
bV9zdGF0aXN0aWNzUXVldWUtPmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyldIHsKLSAgICAgICAgY29yZVN0b3JlKCkuY2xlYXJJbk1lbW9yeUFuZFBlcnNpc3Rl
bnQoKTsKKyAgICAgICAgY29yZVN0b3JlKCkuY2xlYXJJbk1lbW9yeSgpOworICAgICAgICBkZWxl
dGVTdG9yZUZyb21EaXNrKCk7CisgICAgICAgIGdyYW5kZmF0aGVyRXhpc3RpbmdXZWJzaXRlRGF0
YSgpOwogICAgIH0pOwogfQogCkBAIC03NTksMTIgKzcyOSwzOCBAQCB2b2lkIFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0VGltZVRvTGl2ZUNvb2tpZVBhcnRpdGlvbkZyZWUoU2Vj
b25kcyBzZQogCiB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0TWluaW11
bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKFNlY29uZHMgc2Vjb25kcykKIHsKLSAgICBj
b3JlU3RvcmUoKS5zZXRNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoc2Vjb25k
cyk7CisgICAgQVNTRVJUKHNlY29uZHMgPj0gMF9zKTsKKyAgICBtX21pbmltdW1UaW1lQmV0d2Vl
bkRhdGFSZWNvcmRzUmVtb3ZhbCA9IHNlY29uZHM7CiB9CiAKIHZvaWQgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpzZXRHcmFuZGZhdGhlcmluZ1RpbWUoU2Vjb25kcyBzZWNvbmRzKQog
ewogICAgIGNvcmVTdG9yZSgpLnNldEdyYW5kZmF0aGVyaW5nVGltZShzZWNvbmRzKTsKIH0KKwor
Ym9vbCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNob3VsZFJlbW92ZURhdGFSZWNv
cmRzKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICBpZiAo
bV9kYXRhUmVjb3Jkc1JlbW92YWxQZW5kaW5nKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpZiAobV9sYXN0VGltZURhdGFSZWNvcmRzV2VyZVJlbW92ZWQgJiYgTW9ub3RvbmljVGltZTo6
bm93KCkgPCAobV9sYXN0VGltZURhdGFSZWNvcmRzV2VyZVJlbW92ZWQgKyBtX21pbmltdW1UaW1l
QmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IHJldHVybiB0cnVlOworfQorCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6
ZGF0YVJlY29yZHNCZWluZ1JlbW92ZWQoKQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWlu
KCkpOworICAgIG1fbGFzdFRpbWVEYXRhUmVjb3Jkc1dlcmVSZW1vdmVkID0gTW9ub3RvbmljVGlt
ZTo6bm93KCk7CisgICAgbV9kYXRhUmVjb3Jkc1JlbW92YWxQZW5kaW5nID0gdHJ1ZTsKK30KKwor
dm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmRhdGFSZWNvcmRzV2VyZVJlbW92
ZWQoKQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworICAgIG1fZGF0YVJlY29y
ZHNSZW1vdmFsUGVuZGluZyA9IGZhbHNlOworfQogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmgKaW5kZXggZTZiYjUwZjY5NTczMTU1ZDEyN2VhMmJkNmIzOWEwNjRh
MWNiMGFlNS4uMzNiZjcxOWU2YjdhNzk3ODljMTQ5NjM2YWZlMDFiMmEyZmM5NmFhNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUuaApAQCAtMjUsMTQgKzI1LDEyIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5j
bHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlJl
c291cmNlTG9hZFN0YXRpc3RpY3NDbGFzc2lmaWVyLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmgiCi0jaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Rl
bGVtZXRyeS5oIgotI2luY2x1ZGUgIldlYnNpdGVEYXRhUmVjb3JkLmgiCisjaW5jbHVkZSA8d3Rm
L01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAogI2lmIEhBVkUoQ09SRV9QUkVESUNUSU9OKQpAQCAtNDAsOCArMzgs
NiBAQAogI2VuZGlmCiAKIG5hbWVzcGFjZSBXVEYgewotY2xhc3MgTW9ub3RvbmljVGltZTsKLWNs
YXNzIFdhbGxUaW1lOwogY2xhc3MgV29ya1F1ZXVlOwogfQogCkBAIC00OSwxMSArNDUsMTMgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRmlsZU1vbml0b3I7CiBjbGFzcyBLZXllZERlY29k
ZXI7CiBjbGFzcyBLZXllZEVuY29kZXI7CitjbGFzcyBVUkw7CiBzdHJ1Y3QgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljczsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTsKIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIAogY2xhc3MgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIGZpbmFsIDogcHVibGljIElQQzo6Q29ubmVjdGlvbjo6
V29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyIHsKQEAgLTY0LDEyICs2MiwxMyBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZShyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBXVEZNb3ZlKHVwZGF0ZVBhcnRpdGlv
bkNvb2tpZXNGb3JEb21haW5zSGFuZGxlcikpKTsKICAgICB9CiAKKyAgICB+V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlKCk7CisKICAgICBzdGF0aWMgdm9pZCBzZXROb3RpZnlQYWdlc1do
ZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKGJvb2wpOwogICAgIHN0YXRpYyB2b2lkIHNldFNob3Vs
ZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGJvb2wpOwogICAgIHN0
YXRpYyB2b2lkIHNldFNob3VsZFN1Ym1pdFRlbGVtZXRyeShib29sKTsKLSAgICB2aXJ0dWFsIH5X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoKTsKIAotICAgIHZvaWQgcmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1VwZGF0ZWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRp
c3RpY3M+JiBvcmlnaW5zKTsKKyAgICB2b2lkIHJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVk
KFZlY3RvcjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPiYmIG9yaWdpbnMpOwogCiAg
ICAgdm9pZCBwcm9jZXNzV2lsbE9wZW5Db25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYsIElQQzo6
Q29ubmVjdGlvbiYpOwogICAgIHZvaWQgcHJvY2Vzc0RpZENsb3NlQ29ubmVjdGlvbihXZWJQcm9j
ZXNzUHJveHkmLCBJUEM6OkNvbm5lY3Rpb24mKTsKQEAgLTg2LDExICs4NSwxMSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oY29uc3QgV2ViQ29yZTo6
VVJMJiBzdWJmcmFtZSwgY29uc3QgV2ViQ29yZTo6VVJMJiB0b3BGcmFtZSk7CiAgICAgdm9pZCBz
ZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oY29uc3QgV2ViQ29yZTo6VVJMJiBzdWJy
ZXNvdXJjZSwgY29uc3QgV2ViQ29yZTo6VVJMJiB0b3BGcmFtZSk7CiAgICAgdm9pZCBzZXRTdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oY29uc3QgV2ViQ29yZTo6VVJMJiBzdWJyZXNvdXJjZSwg
Y29uc3QgV2ViQ29yZTo6VVJMJiBob3N0TmFtZVJlZGlyZWN0ZWRUbyk7Ci0gICAgdm9pZCBmaXJl
RGF0YU1vZGlmaWNhdGlvbkhhbmRsZXIoKTsKICAgICB2b2lkIGZpcmVTaG91bGRQYXJ0aXRpb25D
b29raWVzSGFuZGxlcigpOwogICAgIHZvaWQgZmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNIYW5k
bGVyKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9SZW1vdmUsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBkb21haW5zVG9BZGQsIGJvb2wgY2xlYXJGaXJzdCk7CisgICAgdm9pZCBwcm9jZXNz
U3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CisgICAgdm9pZCBzdWJtaXRUZWxlbWV0cnkoKTsK
IAotICAgIHZvaWQgZmlyZVRlbGVtZXRyeUhhbmRsZXIoKTsKICAgICB2b2lkIGNsZWFySW5NZW1v
cnkoKTsKICAgICB2b2lkIGNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KCk7CiAgICAgdm9pZCBj
bGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1l
X3BvaW50IG1vZGlmaWVkU2luY2UpOwpAQCAtMTA2LDcgKzEwNSw2IEBAIHByaXZhdGU6CiAgICAg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlJiBjb3JlU3RvcmUoKSB7IHJldHVybiBtX3Jlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5nZXQoKTsgfQogICAgIGNvbnN0IFJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZSYgY29yZVN0b3JlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUuZ2V0KCk7IH0KIAotICAgIHZvaWQgcHJvY2Vzc1N0YXRpc3RpY3NBbmRE
YXRhUmVjb3JkcygpOwogICAgIHZvaWQgcmVhZERhdGFGcm9tRGlza0lmTmVlZGVkKCk7CiAKICAg
ICB2b2lkIGNsYXNzaWZ5UmVzb3VyY2UoV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcyYp
OwpAQCAtMTMzLDkgKzEzMSwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgc3luY1dpdGhFeGlzdGlu
Z1N0YXRpc3RpY3NTdG9yYWdlSWZOZWVkZWQoKTsKICAgICB2b2lkIHJlZnJlc2hGcm9tRGlzaygp
OwogICAgIHZvaWQgc3VibWl0VGVsZW1ldHJ5SWZOZWNlc3NhcnkoKTsKLSAgICB2b2lkIHN1Ym1p
dFRlbGVtZXRyeSgpOwotICAgIGJvb2wgaGFzU3RhdGlzdGljc0ZpbGVDaGFuZ2VkU2luY2VMYXN0
U3luYyhjb25zdCBTdHJpbmcmIHBhdGgpOworICAgIGJvb2wgaGFzU3RhdGlzdGljc0ZpbGVDaGFu
Z2VkU2luY2VMYXN0U3luYyhjb25zdCBTdHJpbmcmIHBhdGgpIGNvbnN0OwogICAgIHZvaWQgcGVy
Zm9ybURhaWx5VGFza3MoKTsKKyAgICBib29sIHNob3VsZFJlbW92ZURhdGFSZWNvcmRzKCkgY29u
c3Q7CisgICAgdm9pZCBkYXRhUmVjb3Jkc0JlaW5nUmVtb3ZlZCgpOworICAgIHZvaWQgZGF0YVJl
Y29yZHNXZXJlUmVtb3ZlZCgpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCByZWdp
c3RlclVzZXJEZWZhdWx0c0lmTmVlZGVkKCk7CkBAIC0xNTAsMTAgKzE1MCwxMyBAQCBwcml2YXRl
OgogICAgIFJlZjxXVEY6OldvcmtRdWV1ZT4gbV9zdGF0aXN0aWNzUXVldWU7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OkZpbGVNb25pdG9yPiBtX3N0YXRpc3RpY3NTdG9yYWdlTW9uaXRv
cjsKICAgICBjb25zdCBTdHJpbmcgbV9zdGF0aXN0aWNzU3RvcmFnZVBhdGg7Ci0gICAgV1RGOjpX
YWxsVGltZSBtX2xhc3RTdGF0aXN0aWNzRmlsZVN5bmNUaW1lOwotICAgIFdURjo6TW9ub3Rvbmlj
VGltZSBtX2xhc3RTdGF0aXN0aWNzV3JpdGVUaW1lOworICAgIFdhbGxUaW1lIG1fbGFzdFN0YXRp
c3RpY3NGaWxlU3luY1RpbWU7CisgICAgTW9ub3RvbmljVGltZSBtX2xhc3RTdGF0aXN0aWNzV3Jp
dGVUaW1lOwogICAgIFJ1bkxvb3A6OlRpbWVyPFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZT4gbV90ZWxlbWV0cnlPbmVTaG90VGltZXI7CiAgICAgUnVuTG9vcDo6VGltZXI8V2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlPiBtX3RlbGVtZXRyeVJlcGVhdGVkVGltZXI7CisgICAgTW9u
b3RvbmljVGltZSBtX2xhc3RUaW1lRGF0YVJlY29yZHNXZXJlUmVtb3ZlZDsKKyAgICBTZWNvbmRz
IG1fbWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsIHsgMV9oIH07CisgICAgYm9v
bCBtX2RhdGFSZWNvcmRzUmVtb3ZhbFBlbmRpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9kaWRT
Y2hlZHVsZVdyaXRlIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5LmNw
cAppbmRleCBkMTNhZWEyNDMyYmIwYjE3ZDNiZTY0NmQ4NjYyNGM1YjdjNmFjM2Q4Li5hYWM1NDBj
YjM5MjA4MjcwOTk5MGQwZDliNmY5ODdlZTliOGRkZGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxl
bWV0cnkuY3BwCkBAIC0xODksNyArMTg5LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzVGVsZW1ldHJ5OjpjYWxjdWxhdGVBbmRTdWJtaXQoY29uc3QgUmVzb3VyY2VMb2FkU3QKICAg
ICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAKICAgICBhdXRvIHNvcnRlZFByZXZh
bGVudFJlc291cmNlcyA9IHJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5zb3J0ZWRQcmV2YWxl
bnRSZXNvdXJjZVRlbGVtZXRyeSgpOwotICAgIGlmIChub3RpZnlQYWdlc1doZW5UZWxlbWV0cnlX
YXNDYXB0dXJlZCAmJiBzb3J0ZWRQcmV2YWxlbnRSZXNvdXJjZXMuc2l6ZSgpIDwgbWluaW11bVBy
ZXZhbGVudFJlc291cmNlc0ZvclRlbGVtZXRyeSkgeworICAgIGlmIChub3RpZnlQYWdlc1doZW5U
ZWxlbWV0cnlXYXNDYXB0dXJlZCAmJiBzb3J0ZWRQcmV2YWxlbnRSZXNvdXJjZXMuaXNFbXB0eSgp
KSB7CiAgICAgICAgIG5vdGlmeVBhZ2VzKDAsIDAsIDApOwogICAgICAgICByZXR1cm47CiAgICAg
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGU5
MTY1NWU5NGY5ZDZhOWVjZTY1ZDM1YjMyZTcxNTU5YWQ2MzY0M2UuLjRiYmI1M2Y0YzdhMGFjNjgw
NDg5ZTQ1MDFhOGU0YjllNzkyMjEyMDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxNy0wNy0wNyAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFNpbXBsaWZ5IFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZSAvIFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MjkwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIHRlc3RSdW5uZXIg
QVBJIHRvIG1hdGNoIHRoZSBuZXcgaW50ZXJuYWwgQVBJIG5hbWVzLgorCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgor
ICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmRE
YXRhUmVjb3Jkcyk6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnN0YXRpc3RpY3NTdWJtaXRU
ZWxlbWV0cnkpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0
aWNzQW5kRGF0YVJlY29yZHMpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c3RhdGlz
dGljc1N1Ym1pdFRlbGVtZXRyeSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3Bw
OgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVz
c2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2Nv
YS9UZXN0Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6
c3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMpOgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6c3RhdGlzdGljc1N1Ym1pdFRlbGVtZXRyeSk6CisKIDIwMTctMDct
MDcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lP
UyBEbkRdIEZvciBjcm9zcy1hcHAgZHJhZ3MsICdkcm9wJyBldmVudCBoYW5kbGVycyBhcmUgbmV2
ZXIgaW52b2tlZCBpZiBkYXRhVHJhbnNmZXIuZHJvcEVmZmVjdCBpcyBub3Qgc2V0IHdoaWxlIGRy
YWdnaW5nCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCA1Nzc2YjljODBkNGM1YzNmM2Nk
N2RiMTA1N2FlYzNlMjkzNDdhMjQ3Li41Y2FiOGEyMmQwMjAwNjhkYjU1MzgxMjFmYThlZjIyZGI3
NDE2MmM3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTI2NSwxMCArMjY1LDEwIEBA
IGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NTdWJyZXNvdXJj
ZVVuaXF1ZVJlZGlyZWN0VG8oRE9NU3RyaW5nIGhvc3ROYW1lLCBET01TdHJpbmcgaG9zdE5hbWVS
ZWRpcmVjdGVkVG8pOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1RpbWVUb0xpdmVVc2VySW50ZXJh
Y3Rpb24oZG91YmxlIHNlY29uZHMpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1RpbWVUb0xpdmVD
b29raWVQYXJ0aXRpb25GcmVlKGRvdWJsZSBzZWNvbmRzKTsKLSAgICB2b2lkIHN0YXRpc3RpY3NG
aXJlRGF0YU1vZGlmaWNhdGlvbkhhbmRsZXIoKTsKKyAgICB2b2lkIHN0YXRpc3RpY3NQcm9jZXNz
U3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CiAgICAgdm9pZCBzdGF0aXN0aWNzRmlyZVNob3Vs
ZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyKCk7CiAgICAgdm9pZCBzdGF0aXN0aWNzRmlyZVNob3Vs
ZFBhcnRpdGlvbkNvb2tpZXNIYW5kbGVyRm9yT25lRG9tYWluKERPTVN0cmluZyBob3N0TmFtZSwg
Ym9vbGVhbiB2YWx1ZSk7Ci0gICAgdm9pZCBzdGF0aXN0aWNzRmlyZVRlbGVtZXRyeUhhbmRsZXIo
KTsKKyAgICB2b2lkIHN0YXRpc3RpY3NTdWJtaXRUZWxlbWV0cnkoKTsKICAgICB2b2lkIHNldFN0
YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKGJvb2xlYW4gdmFs
dWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3Jl
RGF0YVJlY29yZHNSZW1vdmFsKGJvb2xlYW4gdmFsdWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGlj
c05vdGlmeVBhZ2VzV2hlblRlbGVtZXRyeVdhc0NhcHR1cmVkKGJvb2xlYW4gdmFsdWUpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHAKaW5kZXggMTUwYTM0YmM0NDk2MTUwNzUxMDA2MzczMjM4ZWYzY2M5OTdiZDY2ZS4uNDM0YzU5
MTUzNGVjOGFkYmIxNDA2Njc1Y2ZmODJiMTg4MTZjYWRjNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xNDEzLDkg
KzE0MTMsOSBAQCB2b2lkIFRlc3RSdW5uZXI6OnN0YXRpc3RpY3NEaWRSdW5UZWxlbWV0cnlDYWxs
YmFjayh1bnNpZ25lZCB0b3RhbFByZXZhbGVudFJlc291cgogICAgIGNhbGxUZXN0UnVubmVyQ2Fs
bGJhY2soU3RhdGlzdGljc0RpZFJ1blRlbGVtZXRyeUNhbGxiYWNrSUQsIDEsICZyZXN1bHQpOwog
fQogICAgIAotdm9pZCBUZXN0UnVubmVyOjpzdGF0aXN0aWNzRmlyZURhdGFNb2RpZmljYXRpb25I
YW5kbGVyKCkKK3ZvaWQgVGVzdFJ1bm5lcjo6c3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5k
RGF0YVJlY29yZHMoKQogewotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFt
ZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU3RhdGlzdGljc0ZpcmVE
YXRhTW9kaWZpY2F0aW9uSGFuZGxlciIpKTsKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4g
bWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlN0YXRp
c3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzIikpOwogICAgIFdLQnVuZGxlUG9z
dFN5bmNocm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVuZGxlKCks
IG1lc3NhZ2VOYW1lLmdldCgpLCAwLCBudWxscHRyKTsKIH0KIApAQCAtMTQ1MCw5ICsxNDUwLDkg
QEAgdm9pZCBUZXN0UnVubmVyOjpzdGF0aXN0aWNzRmlyZVNob3VsZFBhcnRpdGlvbkNvb2tpZXNI
YW5kbGVyRm9yT25lRG9tYWluKEpTU3RyaW4KICAgICBXS0J1bmRsZVBvc3RTeW5jaHJvbm91c01l
c3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLmJ1bmRsZSgpLCBtZXNzYWdlTmFtZS5n
ZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCksIG51bGxwdHIpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6
OnN0YXRpc3RpY3NGaXJlVGVsZW1ldHJ5SGFuZGxlcigpCit2b2lkIFRlc3RSdW5uZXI6OnN0YXRp
c3RpY3NTdWJtaXRUZWxlbWV0cnkoKQogewotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBt
ZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU3RhdGlz
dGljc0ZpcmVUZWxlbWV0cnlIYW5kbGVyIikpOworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVm
PiBtZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU3Rh
dGlzdGljc1N1Ym1pdFRlbGVtZXRyeSIpKTsKICAgICBXS0J1bmRsZVBvc3RTeW5jaHJvbm91c01l
c3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLmJ1bmRsZSgpLCBtZXNzYWdlTmFtZS5n
ZXQoKSwgMCwgbnVsbHB0cik7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggNGE5OWM4YzI2ZWU4ZjBmOTRjMGNhYjhk
OTIyNWI4OWIzZmUwNDlkNy4uYWVhYWQ5NmI1ZWZiMThiYzQ2ZDFjMzI4YTc3NThmNTVmNWE4YzQz
MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmgKQEAgLTM1MywxMCArMzUzLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXRpc3Rp
Y3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNrKCk7CiAgICAgdm9pZCBzdGF0aXN0aWNzRGlk
U2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soKTsKICAgICB2b2lkIHN0YXRpc3RpY3NEaWRSdW5UZWxl
bWV0cnlDYWxsYmFjayh1bnNpZ25lZCB0b3RhbFByZXZhbGVudFJlc291cmNlcywgdW5zaWduZWQg
dG90YWxQcmV2YWxlbnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uLCB1bnNpZ25lZCB0b3Az
U3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lucyk7Ci0gICAgdm9pZCBzdGF0aXN0aWNzRmlyZURh
dGFNb2RpZmljYXRpb25IYW5kbGVyKCk7CisgICAgdm9pZCBzdGF0aXN0aWNzUHJvY2Vzc1N0YXRp
c3RpY3NBbmREYXRhUmVjb3JkcygpOwogICAgIHZvaWQgc3RhdGlzdGljc0ZpcmVTaG91bGRQYXJ0
aXRpb25Db29raWVzSGFuZGxlcigpOwogICAgIHZvaWQgc3RhdGlzdGljc0ZpcmVTaG91bGRQYXJ0
aXRpb25Db29raWVzSGFuZGxlckZvck9uZURvbWFpbihKU1N0cmluZ1JlZiBob3N0TmFtZSwgYm9v
bCB2YWx1ZSk7Ci0gICAgdm9pZCBzdGF0aXN0aWNzRmlyZVRlbGVtZXRyeUhhbmRsZXIoKTsKKyAg
ICB2b2lkIHN0YXRpc3RpY3NTdWJtaXRUZWxlbWV0cnkoKTsKICAgICB2b2lkIHNldFN0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShKU1N0cmluZ1JlZiBob3N0TmFtZSwgYm9vbCB2YWx1ZSk7CiAg
ICAgYm9vbCBpc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShKU1N0cmluZ1JlZiBob3N0TmFt
ZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKEpTU3RyaW5n
UmVmIGhvc3ROYW1lLCBib29sIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKaW5kZXggMGJlYzJkOWFmODM2NGM4Nzk5YzJhYmQwZDcxYzdmZGVlZjc0NGE0
Ni4uMDYwM2M2NGFhM2IxMzA5OTU4MTRkZDdiYmI5YzgyYWVhYTNhM2Q3OSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTIyOTYsNyArMjI5Niw3IEBAIHZv
aWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NUaW1lVG9MaXZlQ29va2llUGFydGl0aW9u
RnJlZShkb3VibGUpCiB7CiB9CiAKLXZvaWQgVGVzdENvbnRyb2xsZXI6OnN0YXRpc3RpY3NGaXJl
RGF0YU1vZGlmaWNhdGlvbkhhbmRsZXIoKQordm9pZCBUZXN0Q29udHJvbGxlcjo6c3RhdGlzdGlj
c1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKQogewogfQogCkBAIC0yMzA4LDcgKzIz
MDgsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpzdGF0aXN0aWNzRmlyZVNob3VsZFBhcnRpdGlv
bkNvb2tpZXNIYW5kbGVyRm9yT25lRG9tYWluKFdLUwogewogfQogCi12b2lkIFRlc3RDb250cm9s
bGVyOjpzdGF0aXN0aWNzRmlyZVRlbGVtZXRyeUhhbmRsZXIoKQordm9pZCBUZXN0Q29udHJvbGxl
cjo6c3RhdGlzdGljc1N1Ym1pdFRlbGVtZXRyeSgpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCA2MWIxODZiMWM3NmQwNGJjZDhjOTRkNmE1ZDkxZDY5
MmQyZTdhZDhkLi5hOWMwYTNiNmNkMWViZWM1M2RkZTQzZWU2NmRiNjE3Njk0NzZjYmUwIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0xNjEsMTAgKzE2MSwxMCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzU3VicmVzb3VyY2VVbmlxdWVSZWRpcmVj
dFRvKFdLU3RyaW5nUmVmIGhvc3ROYW1lLCBXS1N0cmluZ1JlZiBob3N0TmFtZVJlZGlyZWN0ZWRU
byk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzVGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbihkb3Vi
bGUgc2Vjb25kcyk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzVGltZVRvTGl2ZUNvb2tpZVBhcnRp
dGlvbkZyZWUoZG91YmxlIHNlY29uZHMpOwotICAgIHZvaWQgc3RhdGlzdGljc0ZpcmVEYXRhTW9k
aWZpY2F0aW9uSGFuZGxlcigpOworICAgIHZvaWQgc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNz
QW5kRGF0YVJlY29yZHMoKTsKICAgICB2b2lkIHN0YXRpc3RpY3NGaXJlU2hvdWxkUGFydGl0aW9u
Q29va2llc0hhbmRsZXIoKTsKICAgICB2b2lkIHN0YXRpc3RpY3NGaXJlU2hvdWxkUGFydGl0aW9u
Q29va2llc0hhbmRsZXJGb3JPbmVEb21haW4oV0tTdHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFs
dWUpOwotICAgIHZvaWQgc3RhdGlzdGljc0ZpcmVUZWxlbWV0cnlIYW5kbGVyKCk7CisgICAgdm9p
ZCBzdGF0aXN0aWNzU3VibWl0VGVsZW1ldHJ5KCk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzTm90
aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZChib29sKTsKICAgICB2b2lkIHNldFN0
YXRpc3RpY3NTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChi
b29sKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5UZWxlbWV0cnlXYXND
YXB0dXJlZChib29sIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlv
bi5jcHAKaW5kZXggMTMzNTYyNWM0MDcyYTA3MjE2ZDBkOWI5ZDZlNjM5Y2U3MTcwY2RkZC4uMmQ3
NzgxYzE1ZjFmZDRmZTU3YTRjMThjNTY2ZDIyNzI3NDExNTkxYSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTEwMzcsOCArMTAzNyw4IEBAIFdLUmV0YWlu
UHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3Nh
Z2VGcm9tSW5qZWN0ZWRCCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIGlm
IChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU3RhdGlzdGljc0Zp
cmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlciIpKSB7Ci0gICAgICAgIFRlc3RDb250cm9sbGVyOjpz
aW5nbGV0b24oKS5zdGF0aXN0aWNzRmlyZURhdGFNb2RpZmljYXRpb25IYW5kbGVyKCk7CisgICAg
aWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTdGF0aXN0aWNz
UHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcyIpKSB7CisgICAgICAgIFRlc3RDb250cm9s
bGVyOjpzaW5nbGV0b24oKS5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3Jk
cygpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAgCkBAIC0xMDYxLDggKzEw
NjEsOCBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZl
U3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICB9CiAgICAgCi0gICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2Fn
ZU5hbWUsICJTdGF0aXN0aWNzRmlyZVRlbGVtZXRyeUhhbmRsZXIiKSkgewotICAgICAgICBUZXN0
Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc3RhdGlzdGljc0ZpcmVUZWxlbWV0cnlIYW5kbGVyKCk7
CisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTdGF0
aXN0aWNzU3VibWl0VGVsZW1ldHJ5IikpIHsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmds
ZXRvbigpLnN0YXRpc3RpY3NTdWJtaXRUZWxlbWV0cnkoKTsKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2Nv
YS9UZXN0Q29udHJvbGxlckNvY29hLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9U
ZXN0Q29udHJvbGxlckNvY29hLm1tCmluZGV4IGJlZGQ4ZjdlNzIxZjIwYWNkMmQxNTMyMjBmMmY3
NjYzMmJjYWU5ZjIuLjA0NGFkZmY1OWU0OTk3YzA4ZGM2Y2M2Y2ZlNjhiYWQ4OGQ3YjNhZTMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2Nv
YS5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29j
b2EubW0KQEAgLTMwMSw5ICszMDEsOSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0
aWNzVGltZVRvTGl2ZUNvb2tpZVBhcnRpdGlvbkZyZWUoZG91YmxlIHNlY29uZHMpCiAgICAgW2ds
b2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLndlYnNpdGVEYXRhU3RvcmUgX3Jlc291cmNlTG9hZFN0
YXRpc3RpY3NTZXRUaW1lVG9MaXZlQ29va2llUGFydGl0aW9uRnJlZTpzZWNvbmRzXTsKIH0KIAot
dm9pZCBUZXN0Q29udHJvbGxlcjo6c3RhdGlzdGljc0ZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxl
cigpCit2b2lkIFRlc3RDb250cm9sbGVyOjpzdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmRE
YXRhUmVjb3JkcygpCiB7Ci0gICAgW2dsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLndlYnNpdGVE
YXRhU3RvcmUgX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NGaXJlRGF0YU1vZGlmaWNhdGlvbkhhbmRs
ZXJdOworICAgIFtnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlIF9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3Jkc107CiB9
CiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnN0YXRpc3RpY3NGaXJlU2hvdWxkUGFydGl0aW9uQ29v
a2llc0hhbmRsZXIoKQpAQCAtMzE2LDkgKzMxNiw5IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnN0
YXRpc3RpY3NGaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXJGb3JPbmVEb21haW4oV0tT
CiAgICAgW2dsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLndlYnNpdGVEYXRhU3RvcmUgX3Jlc291
cmNlTG9hZFN0YXRpc3RpY3NGaXJlU2hvdWxkUGFydGl0aW9uQ29va2llc0hhbmRsZXJGb3JPbmVE
b21haW46dmFsdWUgZm9ySG9zdDp0b05TU3RyaW5nKGhvc3ROYW1lKV07CiB9CiAKLXZvaWQgVGVz
dENvbnRyb2xsZXI6OnN0YXRpc3RpY3NGaXJlVGVsZW1ldHJ5SGFuZGxlcigpCit2b2lkIFRlc3RD
b250cm9sbGVyOjpzdGF0aXN0aWNzU3VibWl0VGVsZW1ldHJ5KCkKIHsKLSAgICBbZ2xvYmFsV2Vi
Vmlld0NvbmZpZ3VyYXRpb24ud2Vic2l0ZURhdGFTdG9yZSBfcmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0ZpcmVUZWxlbWV0cnlIYW5kbGVyXTsKKyAgICBbZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24u
d2Vic2l0ZURhdGFTdG9yZSBfcmVzb3VyY2VMb2FkU3RhdGlzdGljc1N1Ym1pdFRlbGVtZXRyeV07
CiB9CiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5E
YXRhUmVjb3Jkc1dlcmVTY2FubmVkKGJvb2wgdmFsdWUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTdkMmQ4YmRmMGJlMjc5
OWYzNTVmMTYyNDMwY2NlOTIxY2UwYmI1ZC4uOGRlOGMwMzBhMGY2YjE0YTI4ODA0ZDQ2OWFhMjU2
NTExMTgxMDFhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE3LTA3LTA3ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2ltcGxpZnkgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlIC8gUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQyOTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgbGF5b3V0IHRlc3Rz
IHRvIHJlZmxlY3QgY2hhbmdlcyB0byB0aGUgdGVzdFJ1bm5lciBBUEkgbmFtaW5nLgorCisgICAg
ICAgICogaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnkt
YXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
bm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMu
aHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRv
cC1mcmFtZS1vcmlnaW5zLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJy
ZXNvdXJjZS11bmlxdWUtcmVkaXJlY3RzLXRvLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9s
b2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2Vk
LW9uLW1peGVkLXN0YXRpc3RpY3MuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2xvYWRpbmcv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3Vi
LWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0
cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJh
c2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMt
cHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8uaHRtbDoK
KyAgICAgICAgKiBodHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVh
ci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXIuaHRtbDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1v
cnktYW5kLXBlcnNpc3RlbnQtc3RvcmUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2xvYWRp
bmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQt
cmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0
cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13
aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2xvYWRp
bmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wYXJ0aXRpb25lZC1hbmQtdW5wYXJ0aXRpb25lZC1j
b29raWUtZGVsZXRpb24uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9wYXJ0aXRpb25lZC1hbmQtdW5wYXJ0aXRpb25lZC1jb29raWUtd2l0
aC1wYXJ0aXRpb25pbmctdGltZW91dC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbG9hZGlu
Zy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BhcnRpdGlvbmVkLWNvb2tpZXMtd2l0aC1hbmQtd2l0
aG91dC11c2VyLWludGVyYWN0aW9uLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9sb2FkaW5n
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRl
cmFjdGlvbi10aW1lb3V0Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlv
bi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy90ZWxlbWV0
cnktZ2VuZXJhdGlvbi5odG1sOgorCiAyMDE3LTA3LTA3ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVz
QGFwcGxlLmNvbT4KIAogICAgICAgICBbQXBwQ2FjaGVdIElnbm9yZSBmYWxsYmFjayBlbnRyaWVz
IHdob3NlIG5hbWVzcGFjZSBpcyBub3QgcHJlZml4ZWQgd2l0aCBtYW5pZmVzdCBwYXRoCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3Mu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy5o
dG1sCmluZGV4IDI3NTlhMmZmNWY1NDc5ODMxNjUzMDY5ZWIwMDViNDY1NTllZTAzMGEuLmI2MjRh
ZGEzMGQ4MDlkZTU2NDNiYmQ0MDU5ZmRlZGMyZDkzODgxODggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFz
LW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5
LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3RhdGlzdGljcy5odG1sCkBAIC0zNiw3
ICszNiw3IEBACiAKICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5E
YXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CiAKLSAgICAgICAgdGVzdFJ1bm5lci5z
dGF0aXN0aWNzRmlyZURhdGFNb2RpZmljYXRpb25IYW5kbGVyKCk7CisgICAgICAgIHRlc3RSdW5u
ZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKICAgICB9CiAK
ICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5k
b3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CkBAIC00Niw0ICs0Niw0IEBACiAg
ICAgfQogPC9zY3JpcHQ+CiA8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5n
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1v
bi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1w
cmV2YWxlbnQtYmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLmh0bWwK
aW5kZXggMDYwNWUxMzk2ZDFmMTFkNzJkZGNiYTk3MWU3ZmE1Nzc3ODNkZDA0Yy4uYjFhNGVmYjdi
MjAwMzNjNzlmYzMxZTRjZTU2ZTVlYzVlNjQ4MjQ1MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtbm9u
LXByZXZhbGVudC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10
b3AtZnJhbWUtb3JpZ2lucy5odG1sCkBAIC0zNyw3ICszNyw3IEBACiAgICAgICAgIHRlc3RSdW5u
ZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRl
c3QpOwogICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkTW9kaWZ5RGF0YVJl
Y29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc0ZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlcigpOworICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CiAgICAgfQogCiAgICAg
aWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRl
c3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewpAQCAtNDcsNCArNDcsNCBAQAogICAgIH0K
IDwvc2NyaXB0PgogPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2YWxlbnQtYmFzZWQtb24tc3Vi
cmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLW5vbi1wcmV2
YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMuaHRtbApp
bmRleCBjMmQwNGFhZTFhYjNiMmNhNTQwMmU3Yzc3YjMzODUzNmQxMTI3MTIwLi4xMzFhOWI2MTIy
YTU5YWQxNDg4YzA4YTcwYjYzNWE3MTk3MzQ3M2FkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24t
cHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvY2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmRl
ci10b3AtZnJhbWUtb3JpZ2lucy5odG1sCkBAIC0zNCw3ICszNCw3IEBACiAKICAgICAgICAgdGVz
dFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBs
ZXRlVGVzdCk7CiAKLSAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzRmlyZURhdGFNb2RpZmlj
YXRpb25IYW5kbGVyKCk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0
aXN0aWNzQW5kRGF0YVJlY29yZHMoKTsKICAgICB9CiAKICAgICBpZiAoZG9jdW1lbnQubG9jYXRp
b24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cu
aW50ZXJuYWxzKSB7CkBAIC00NCw0ICs0NCw0IEBACiAgICAgfQogPC9zY3JpcHQ+CiA8L2JvZHk+
Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y2xhc3NpZnktYXMtbm9uLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVk
aXJlY3RzLXRvLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291
cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8uaHRtbAppbmRleCBmZDgyZmYwMWY1MWRkODk1NTE4NWNm
ODhiZWFjMjY4M2YxMWE2ZThlLi5lNWMwZjhlNDFhMzkwZmVhZTZmMzM2YTU4Y2ViMmJiMDc2ZWYx
NDEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50LWJhc2VkLW9uLXN1YnJlc291
cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1ub24tcHJldmFsZW50
LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8uaHRtbApAQCAtMzUsNyAr
MzUsNyBAQAogCiAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0
YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuc3Rh
dGlzdGljc0ZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlcigpOworICAgICAgICB0ZXN0UnVubmVy
LnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CiAgICAgfQogCiAg
ICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93
LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewpAQCAtNDUsNCArNDUsNCBAQAogICAg
IH0KIDwvc2NyaXB0PgogPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhl
ZC1zdGF0aXN0aWNzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tbWl4ZWQtc3Rh
dGlzdGljcy5odG1sCmluZGV4IDcxMmJiN2I5YTY5Y2Y4ZjIwYmU4MGZkZGE0MmRhMmY2YTViYzAx
YjcuLjEyOGQzZjI5NzJkMDI5ZTk3NjQ2YTExNDk5NTNiYzc4ZDg0OWZjMDIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
YXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1taXhlZC1zdGF0aXN0aWNzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xh
c3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLW1peGVkLXN0YXRpc3RpY3MuaHRtbApAQCAtNDQs
NyArNDQsNyBAQAogCiAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2Fu
RGF0YVJlY29yZHNDYWxsYmFjayhjb21wbGV0ZVRlc3QpOwogCi0gICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc0ZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlcigpOworICAgICAgICB0ZXN0UnVu
bmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CiAgICAgfQog
CiAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2lu
ZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewpAQCAtNTQsNCArNTQsNCBAQAog
ICAgIH0KIDwvc2NyaXB0PgogPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGlu
Zy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1z
dWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVu
dC1iYXNlZC1vbi1zdWItZnJhbWUtdW5kZXItdG9wLWZyYW1lLW9yaWdpbnMuaHRtbAppbmRleCA4
ZDI1ZjdlZWIzMDZmOGZkZTgwZGU0ZTlhZGYzOTk5ODQ2NmExNWI2Li4yYTQ1ZDI5NDY2YjhlNTdh
ZjIyZDVhZDFhMTcyYWJkYjI5ZTg2YTU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQt
YmFzZWQtb24tc3ViLWZyYW1lLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3Np
ZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1Yi1mcmFtZS11bmRlci10b3AtZnJhbWUtb3JpZ2lu
cy5odG1sCkBAIC0zOSw3ICszOSw3IEBACiAKICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3Rh
dGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrKGNvbXBsZXRlVGVzdCk7CiAKLSAgICAg
ICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzRmlyZURhdGFNb2RpZmljYXRpb25IYW5kbGVyKCk7Cisg
ICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29y
ZHMoKTsKICAgICB9CiAKICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVu
ZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CkBAIC00
OSw0ICs0OSw0IEBACiAgICAgfQogPC9zY3JpcHQ+CiA8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFs
ZW50LWJhc2VkLW9uLXN1YnJlc291cmNlLXVuZGVyLXRvcC1mcmFtZS1vcmlnaW5zLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9y
aWdpbnMuaHRtbAppbmRleCA5OWNjMzg5NzZhODIyYTdjYjYzZTRkNDQzMTkxNGI3ZGE0MTY5M2Rm
Li4xZjY4N2FiYWM2MzE4ZDkwYzA3NzY2MTVkYzczMDBjOTNjYTg0MzRmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGFz
c2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2UtdW5kZXItdG9wLWZyYW1lLW9y
aWdpbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2Ut
dW5kZXItdG9wLWZyYW1lLW9yaWdpbnMuaHRtbApAQCAtMzksNyArMzksNyBAQAogCiAgICAgICAg
IHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayhj
b21wbGV0ZVRlc3QpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc0ZpcmVEYXRhTW9k
aWZpY2F0aW9uSGFuZGxlcigpOworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNz
U3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CiAgICAgfQogCiAgICAgaWYgKGRvY3VtZW50Lmxv
Y2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2lu
ZG93LmludGVybmFscykgewpAQCAtNDksNCArNDksNCBAQAogICAgIH0KIDwvc2NyaXB0PgogPC9i
b2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlxdWUtcmVk
aXJlY3RzLXRvLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9jbGFzc2lmeS1hcy1wcmV2YWxlbnQtYmFzZWQtb24tc3VicmVzb3VyY2Ut
dW5pcXVlLXJlZGlyZWN0cy10by5odG1sCmluZGV4IGFlMzlkNGFkZWQ4YmIxNzlkMTI0ODEyYTRm
MzhhMzZlYTVjYTA5N2YuLjEzMDY3NjljYTBmYmZkNDk5MmRlODhlNWNjNmFhNDcwMDNlNzdmODEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2NsYXNzaWZ5LWFzLXByZXZhbGVudC1iYXNlZC1vbi1zdWJyZXNvdXJjZS11bmlx
dWUtcmVkaXJlY3RzLXRvLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5n
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xhc3NpZnktYXMtcHJldmFsZW50LWJhc2VkLW9uLXN1
YnJlc291cmNlLXVuaXF1ZS1yZWRpcmVjdHMtdG8uaHRtbApAQCAtMzksNyArMzksNyBAQAogCiAg
ICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxs
YmFjayhjb21wbGV0ZVRlc3QpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc0ZpcmVE
YXRhTW9kaWZpY2F0aW9uSGFuZGxlcigpOworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQ
cm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CiAgICAgfQogCiAgICAgaWYgKGRvY3Vt
ZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIg
JiYgd2luZG93LmludGVybmFscykgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJz
aXN0ZW50LXN0b3JlLW9uZS1ob3VyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRp
bmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQt
c3RvcmUtb25lLWhvdXIuaHRtbAppbmRleCA1ZmM5YjRiNDQ1MDI5N2E5OWRjNDAwYzY5NTM5OWMz
OWYyMDQxOTk4Li4yYmMzYzIyMjRlZDgwZjUyN2E5N2ZiNTg5YThmYTY1MTNmNDUwNzUzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXIuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbGVhci1pbi1tZW1vcnktYW5kLXBlcnNpc3RlbnQtc3RvcmUtb25lLWhvdXIuaHRtbApAQCAt
NTUsNyArNTUsNyBAQAogICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkU2Nh
bkRhdGFSZWNvcmRzQ2FsbGJhY2sodGVzdFN0ZXAyKTsKICAgICAgICAgdGVzdFJ1bm5lci5pbnN0
YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2sodGVzdFN0ZXAyKTsKIAot
ICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NGaXJlRGF0YU1vZGlmaWNhdGlvbkhhbmRsZXIo
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRh
UmVjb3JkcygpOwogICAgIH0KIAogICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBo
b3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsK
QEAgLTY1LDQgKzY1LDQgQEAKICAgICB9CiA8L3NjcmlwdD4KIDwvYm9keT4KLTwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbGVhci1pbi1tZW1v
cnktYW5kLXBlcnNpc3RlbnQtc3RvcmUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9h
ZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVu
dC1zdG9yZS5odG1sCmluZGV4IDVhMGM0MTA3MzUzYzZhY2Y2ZTQwYTc0OTliZmMzNzg3MTI2ZDY1
ODQuLmEyYWMzZGFiM2RkNWUxMjNjNjZlOWI3ZTkxNDJlNGYwMGVjZTkyNzggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Ns
ZWFyLWluLW1lbW9yeS1hbmQtcGVyc2lzdGVudC1zdG9yZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NsZWFyLWluLW1lbW9y
eS1hbmQtcGVyc2lzdGVudC1zdG9yZS5odG1sCkBAIC01NSw3ICs1NSw3IEBACiAgICAgICAgIHRl
c3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxsYmFjayh0ZXN0
U3RlcDIpOwogICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkTW9kaWZ5RGF0
YVJlY29yZHNDYWxsYmFjayh0ZXN0U3RlcDIpOwogCi0gICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc0ZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlcigpOworICAgICAgICB0ZXN0UnVubmVyLnN0
YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CiAgICAgfQogCiAgICAg
aWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRl
c3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewpAQCAtNjUsNCArNjUsNCBAQAogICAgIH0K
IDwvc2NyaXB0PgogPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ncmFuZGZhdGhlcmluZy5odG1s
CmluZGV4IDJkYzkyYzg0OWUyMDEzMDU1MWVmYjJlMzFjYjM3NDAxYTQyNTlkMmQuLmUyNmFmYzRj
MjFlNjIxNDZmNzcwMDM3MTI4ZmNkMTYxZTE0NGEwZTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2dyYW5kZmF0aGVyaW5n
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvZ3JhbmRmYXRoZXJpbmcuaHRtbApAQCAtMzYsNyArMzYsNyBAQAogICAgICAgICB0
ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkTW9kaWZ5RGF0YVJlY29yZHNDYWxsYmFjayhm
dW5jdGlvbigpIHsKICAgICAgICAgICAgIHJ1blRlc3QoKTsKICAgICAgICAgfSk7Ci0gICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc0ZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlcigpOworICAg
ICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRz
KCk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gY2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9y
ZUFuZENvbnRpbnVlKCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2Fk
aW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVz
ZXItaW50ZXJhY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL25vbi1wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVy
YWN0aW9uLmh0bWwKaW5kZXggOGFlYzA2NzY0NDI3N2Y3ODEyM2RmMDJlMjQyMjZlZDIyYWEwNWI1
NS4uMjdlZTcyMjI0OTYxYzZhYWRlNDZlNWYyMzhmYjQ4M2VhODE4OGM0OSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9u
LXByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24uaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJl
dmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi5odG1sCkBAIC00Myw3ICs0Myw3
IEBACiAgICAgICAgIH0pOwogICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGRD
bGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChmYWxzZSk7CiAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc01pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVt
b3ZhbCgwKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzRmlyZURhdGFNb2RpZmljYXRp
b25IYW5kbGVyKCk7CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1Byb2Nlc3NTdGF0aXN0
aWNzQW5kRGF0YVJlY29yZHMoKTsKICAgICB9CiAKICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24u
aG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50
ZXJuYWxzKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1p
bnRlcmFjdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJh
Y3Rpb24uaHRtbAppbmRleCBhOWNmYTJlM2Y0N2Q5OTE2ZTNmNTk2N2Q0NDc5YTQ4ODE4NzU3ZmFh
Li42ZmNhNzc3ODBjNWM0ZThkYzYzZTA0ZGIzMjMzOGNjNDM3ZTA0NGJhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24t
cHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vbi1w
cmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91dC11c2VyLWludGVyYWN0aW9uLmh0bWwKQEAgLTQzLDcg
KzQzLDcgQEAKICAgICAgICAgfSk7CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1No
b3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29y
ZHNSZW1vdmFsKDApOwotICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NGaXJlRGF0YU1vZGlm
aWNhdGlvbkhhbmRsZXIoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0
YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOwogICAgIH0KIAogICAgIGlmIChkb2N1bWVudC5sb2Nh
dGlvbi5ob3N0ID09PSBob3N0VW5kZXJUZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRv
dy5pbnRlcm5hbHMpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGlu
Zy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BhcnRpdGlvbmVkLWFuZC11bnBhcnRpdGlvbmVkLWNv
b2tpZS1kZWxldGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcGFydGl0aW9uZWQtYW5kLXVucGFydGl0aW9uZWQtY29va2llLWRl
bGV0aW9uLmh0bWwKaW5kZXggNDc4YTRlNDIyOGU4MWQzZDZiM2IyY2JjYzk3NGY0ZjQ2NGY0ZjYy
OC4uMmRhNDRlMzJiYjMzMzlkNzM0MGE4YTFmYmEwM2Y2MDUzOTFhODM0OSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGFy
dGl0aW9uZWQtYW5kLXVucGFydGl0aW9uZWQtY29va2llLWRlbGV0aW9uLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGFydGl0
aW9uZWQtYW5kLXVucGFydGl0aW9uZWQtY29va2llLWRlbGV0aW9uLmh0bWwKQEAgLTQ1LDcgKzQ1
LDcgQEAKICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFS
ZWNvcmRzQ2FsbGJhY2soZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBydW5UZXN0KCk7CiAgICAg
ICAgIH0pOwotICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NGaXJlRGF0YU1vZGlmaWNhdGlv
bkhhbmRsZXIoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3Rp
Y3NBbmREYXRhUmVjb3JkcygpOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHNldFVzZXJJbnRlcmFj
dGlvbkFuZENvbnRpbnVlKCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9s
b2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGFydGl0aW9uZWQtYW5kLXVucGFydGl0aW9u
ZWQtY29va2llLXdpdGgtcGFydGl0aW9uaW5nLXRpbWVvdXQuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BhcnRpdGlvbmVkLWFuZC11
bnBhcnRpdGlvbmVkLWNvb2tpZS13aXRoLXBhcnRpdGlvbmluZy10aW1lb3V0Lmh0bWwKaW5kZXgg
OTM1MDU5NmFiN2MxMjcxNGM2Yjc4ZmQyOWM3MzAwYzZkN2NjNjBmYS4uNDk5Yjg0OTRmMDQyOTUz
NjMyZmRmYWI0MGU5ZjkxNTExMGJmYTliMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcGFydGl0aW9uZWQtYW5kLXVucGFy
dGl0aW9uZWQtY29va2llLXdpdGgtcGFydGl0aW9uaW5nLXRpbWVvdXQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wYXJ0aXRp
b25lZC1hbmQtdW5wYXJ0aXRpb25lZC1jb29raWUtd2l0aC1wYXJ0aXRpb25pbmctdGltZW91dC5o
dG1sCkBAIC0xMjUsNCArMTI1LDQgQEAKICAgICBydW5UZXN0KCk7CiA8L3NjcmlwdD4KIDwvYm9k
eT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9wYXJ0aXRpb25lZC1jb29raWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcGFydGl0aW9uZWQtY29va2llcy13aXRoLWFuZC13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24u
aHRtbAppbmRleCA5YTUxYWIxMTNkOTA0MzMyY2IzNjQzY2Y2NTA2YTYwMDg1MzQ1ZjY0Li5kOWIx
MjVkMTExMjdlZjgyOTMxZTc5YjZhMzEzY2EzNzgxYjNhYjFiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wYXJ0aXRpb25l
ZC1jb29raWVzLXdpdGgtYW5kLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3BhcnRp
dGlvbmVkLWNvb2tpZXMtd2l0aC1hbmQtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLmh0bWwKQEAg
LTgzLDQgKzgzLDQgQEAKICAgICBydW5UZXN0KCk7CiA8L3NjcmlwdD4KIDwvYm9keT4KLTwvaHRt
bD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxl
bnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVyYWN0aW9uLXRpbWVvdXQuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1y
ZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24tdGltZW91dC5odG1sCmluZGV4IGVkNzAxNWRi
NTE0NDY2ZDA5ZDE5MTkxYWY2OTM2MTQ3ZWU4ZGU1MDIuLjgwYmE4ZTVhYTcyZWFjNWU1NDU1YTg2
YWFhNzgyZWY1N2M3MTJmYmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9h
ZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXIt
aW50ZXJhY3Rpb24tdGltZW91dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9h
ZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13aXRoLXVzZXIt
aW50ZXJhY3Rpb24tdGltZW91dC5odG1sCkBAIC0zNyw3ICszNyw3IEBACiAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29y
ZHNSZW1vdmFsKGZhbHNlKTsKICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzTWluaW11
bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOwogICAgICAgICB0ZXN0UnVubmVyLnNl
dFN0YXRpc3RpY3NUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKDApOwotICAgICAgICBzZXRUaW1l
b3V0KCJ0ZXN0UnVubmVyLnN0YXRpc3RpY3NGaXJlRGF0YU1vZGlmaWNhdGlvbkhhbmRsZXIoKSIs
IDEwMDApOworICAgICAgICBzZXRUaW1lb3V0KCJ0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNz
U3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCkiLCAxMDAwKTsKICAgICB9CiAKICAgICBpZiAoZG9j
dW1lbnQubG9jYXRpb24uaG9zdCA9PT0gaG9zdFVuZGVyVGVzdCAmJiB3aW5kb3cudGVzdFJ1bm5l
ciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0
aC11c2VyLWludGVyYWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aC11c2VyLWludGVy
YWN0aW9uLmh0bWwKaW5kZXggMDRjNDYwMWM5ZDlkMDEwYWNmZmI4MmJlNGVkMmE4Zjg5MzVhNThh
Ny4uYzJiNjgzM2JjOGNiNTk0ODA4MTY2YzcyN2ZkMzM1ZDZmZmExMWI1OSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcHJl
dmFsZW50LXJlc291cmNlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi5odG1sCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1y
ZXNvdXJjZS13aXRoLXVzZXItaW50ZXJhY3Rpb24uaHRtbApAQCAtNDMsNyArNDMsNyBAQAogICAg
ICAgICB9KTsKICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQ2xhc3NpZnlS
ZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoZmFsc2UpOwogICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoMCk7
Ci0gICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc0ZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxl
cigpOworICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERh
dGFSZWNvcmRzKCk7CiAgICAgfQogCiAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhvc3QgPT09
IGhvc3RVbmRlclRlc3QgJiYgd2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykg
ewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi5odG1sCmluZGV4
IDExZmFjYTRmMjI3Yjg1MzhlY2JmOGQwNGE0ODgzYWJmNDE2Y2UwNTMuLmM0NWQ3NWI3M2I1Njk4
OGFjZDZkNjYwODExMjljMDQ0N2RkNmVkYWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvdXJjZS13
aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9wcmV2YWxlbnQtcmVzb3VyY2Utd2l0aG91
dC11c2VyLWludGVyYWN0aW9uLmh0bWwKQEAgLTM2LDcgKzM2LDcgQEAKICAgICAgICAgfSk7CiAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVm
b3JlRGF0YVJlY29yZHNSZW1vdmFsKGZhbHNlKTsKICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0
aXN0aWNzTWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKDApOwotICAgICAgICB0
ZXN0UnVubmVyLnN0YXRpc3RpY3NGaXJlRGF0YU1vZGlmaWNhdGlvbkhhbmRsZXIoKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3Jkcygp
OwogICAgIH0KIAogICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5ob3N0ID09PSBob3N0VW5kZXJU
ZXN0ICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3RlbGVtZXRyeS1nZW5lcmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRp
bmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy90ZWxlbWV0cnktZ2VuZXJhdGlvbi5odG1sCmluZGV4
IDA4MGJhZTRkNGYxYjdiYmYwY2JkOTk0NDJiZmIzYWM3MmYwZGQ4MmYuLjhlYWFkMDZiMDBkYTBl
ZjZlMTExZTM1YTNjNTg3OGI0Y2VlZmFhZDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3RlbGVtZXRyeS1nZW5lcmF0aW9u
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvdGVsZW1ldHJ5LWdlbmVyYXRpb24uaHRtbApAQCAtNzQsNyArNzQsNyBAQAogCiAg
ICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJlY29yZHNDYWxs
YmFjayhjaGVja0luc3VmZmljaWVudENsYXNzaWZpY2F0aW9uQW5kQ29udGludWUpOwogICAgICAg
ICB0ZXN0UnVubmVyLmluc3RhbGxTdGF0aXN0aWNzRGlkUnVuVGVsZW1ldHJ5Q2FsbGJhY2soY2hl
Y2tJbnN1ZmZpY2llbnRUZWxlbWV0cnkpOwotICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NG
aXJlRGF0YU1vZGlmaWNhdGlvbkhhbmRsZXIoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0
aWNzUHJvY2Vzc1N0YXRpc3RpY3NBbmREYXRhUmVjb3JkcygpOwogICAgIH0KIAogICAgIGZ1bmN0
aW9uIHNldFVwU3VmZmljaWVudFN0YXRpc3RpY3NBbmRDb250aW51ZSgpIHsKQEAgLTg1LDExICs4
NSwxMSBAQAogCiAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0
YVJlY29yZHNDYWxsYmFjayhjaGVja1N1ZmZpY2llbnRDbGFzc2lmaWNhdGlvbkFuZENvbnRpbnVl
KTsKICAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsU3RhdGlzdGljc0RpZFJ1blRlbGVtZXRyeUNh
bGxiYWNrKGNoZWNrU3VmZmljaWVudFRlbGVtZXRyeSk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc3Rh
dGlzdGljc0ZpcmVEYXRhTW9kaWZpY2F0aW9uSGFuZGxlcigpOworICAgICAgICB0ZXN0UnVubmVy
LnN0YXRpc3RpY3NQcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCk7CiAgICAgfQogCiAg
ICAgZnVuY3Rpb24gcnVuVGVsZW1ldHJ5QW5kQ29udGludWUoKSB7Ci0gICAgICAgIHRlc3RSdW5u
ZXIuc3RhdGlzdGljc0ZpcmVUZWxlbWV0cnlIYW5kbGVyKCk7CisgICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc1N1Ym1pdFRlbGVtZXRyeSgpOwogICAgIH0KIAogICAgIHZhciB0ZXN0UmVzdWx0
OwpAQCAtMTE2LDQgKzExNiw0IEBACiAgICAgfQogPC9zY3JpcHQ+CiA8L2JvZHk+Ci08L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>