<?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>227438</bug_id>
          
          <creation_ts>2021-06-28 01:47:00 -0700</creation_ts>
          <short_desc>Remove RemoteAudioMediaStreamTrackRenderer and RemoteAudioMediaStreamTrackRendererManager</short_desc>
          <delta_ts>2021-06-29 00:26:16 -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>WebRTC</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>annulen</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1772990</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-06-28 01:47:00 -0700</bug_when>
    <thetext>Remove RemoteAudioMediaStreamTrackRenderer and RemoteAudioMediaStreamTrackRendererManager</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772991</commentid>
    <comment_count>1</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-06-28 01:47:57 -0700</bug_when>
    <thetext>It was superseded by RemoteAudioMediaStreamTrackRendererInternalUnitManager</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772993</commentid>
    <comment_count>2</comment_count>
      <attachid>432373</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-06-28 01:50:39 -0700</bug_when>
    <thetext>Created attachment 432373
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773004</commentid>
    <comment_count>3</comment_count>
      <attachid>432375</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-06-28 02:28:44 -0700</bug_when>
    <thetext>Created attachment 432375
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773339</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-29 00:25:18 -0700</bug_when>
    <thetext>Committed r279366 (239232@main): &lt;https://commits.webkit.org/239232@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432375.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773340</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-29 00:26:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/79902096&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432373</attachid>
            <date>2021-06-28 01:50:39 -0700</date>
            <delta_ts>2021-06-28 02:35:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227438-20210628105037.patch</filename>
            <type>text/plain</type>
            <size>56044</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODBhMWI2M2FjYjAzMzVh
ZmYyZmYwMzRjNjc4MWRiNmE0ODUwYzJhNS4uMTgwNmE3ODE0MzlhN2FiYzk2YzJiZmYwNTk1Y2Q5
NTVjMDU4NzU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA2LTI4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIgYW5kIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyTWFuYWdlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjI3NDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckludGVybmFsVW5pdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbEF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpzdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0Ojpz
dG9wKToKKyAgICAgICAgQWRkIHNvbWUgbG9nZ2luZy4KKwogMjAyMS0wNi0yNyAgQ29tbWl0IFF1
ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2
ZXJ0aW5nIHIyNzkzMjIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg3YzIyNDJlMGUyYWI5YjAxYzllYjBhYThkZjE3
Nzg5OTQwYWZlNDYuLmYyNWY3NDBhNDQzYmY0MmFiMDQ2MzgxZjI2ZjVmMDBjOTFkNmFmODggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMjEtMDYtMjggIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlciBhbmQgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2Vy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc0MzgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUg
Y29kZSBubyBsb25nZXIgZW5hYmxlZC4KKyAgICAgICAgVGhpcyBjb2RlIHdhcyBvYnNvbGV0ZWQg
YnkgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2Vy
IGFuZCBmcmllbmRzLgorICAgICAgICBVcGRhdGUgR1BVUHJvY2VzcyB0byBub3QgZXhpdCBpZiBS
ZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXIgaGFz
IHNvbWUgdW5pdHMsCisgICAgICAgIGxpa2Ugd2FzIGRvbmUgYnkgUmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFr
ZToKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6fkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjphbGxvd3NFeGl0VW5kZXJNZW1vcnlQcmVzc3VyZSBjb25zdCk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJv
Y2Vzczo6YXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJRdWV1ZSk6IERlbGV0ZWQuCisgICAg
ICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJy
dGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyLmg6IFJlbW92ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIubWVzc2FnZXMuaW46IFJlbW92ZWQuCisgICAgICAgICog
R1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRl
cm5hbFVuaXRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6cmVuZGVyQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVy
bmFsVW5pdE1hbmFnZXI6OlVuaXQ6OlVuaXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXI6OlVuaXQ6OnN0YXJ0
KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXIuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyOjpoYXNVbml0
cyk6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJNYW5hZ2VyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlck1hbmFnZXIubWVzc2FnZXMuaW46IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICh0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3
YXJkX2RlY2xhcmVkKToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2Vz
Q29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlci5jcHA6IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmg6IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllci5oOiBS
ZW1vdmVkLgorCiAyMDIxLTA2LTI3ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI3OTMyMi4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJu
YWxVbml0LmNwcAppbmRleCBjM2ZlODIxYjljNTIwYzkyMjRlNWRlODg4ZTUxOGMzMTk2ZjMxY2I1
Li4yNTIzOWNkNjU3NmJlNTc4MzJlNDM0MmE2NWYyODIyOGUyM2ExYTM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlckludGVybmFsVW5pdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5h
bFVuaXQuY3BwCkBAIC0xMTYsNiArMTE2LDcgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpzZXRBdWRpb091dHB1dERldmljZShjb25zdAogCiB2
b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OnN0YXJ0
KCkKIHsKKyAgICBSRUxFQVNFX0xPR19JTkZPKFdlYlJUQywgIkxvY2FsQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OnN0YXJ0Iik7CiAgICAgaWYgKG1faXNTdGFydGVk
KQogICAgICAgICByZXR1cm47CiAKQEAgLTEzNSw2ICsxMzYsNyBAQCB2b2lkIExvY2FsQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OnN0YXJ0KCkKIAogdm9pZCBMb2Nh
bEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpzdG9wKCkKIHsKKyAg
ICBSRUxFQVNFX0xPR19JTkZPKFdlYlJUQywgIkxvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJJbnRlcm5hbFVuaXQ6OnN0b3AiKTsKICAgICBpZiAoIW1fcmVtb3RlSU9Vbml0KQogICAg
ICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMu
bWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBkYTgzYmIyYzVi
ZDExZmQwMWU1MzkzYTFkZjM1YzI0OWRlNzZkZTgxLi5mZTMyOWI4OTBhODFiOGRjZDM4ZGRmYzAx
YmQ1NWMzMDQ1ZDY2YTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yNDcsMTEg
KzI0Nyw5IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCUdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0wgXAogCUdQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVj
c1Byb3h5IFwKIAlHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyIFwKLQlHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlck1hbmFnZXIgXAogCUdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3Jk
ZXJNYW5hZ2VyIFwKIAlHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIgXAogCUdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIgXAotCUdQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyIFwKIAlHUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFs
VW5pdE1hbmFnZXIgXAogCUdQVVByb2Nlc3MvR1BVUHJvY2VzcyBcCiAJR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMThmYzFhMWE5
ZDk5YjFjYzM4Y2ZmMTY1OTRkNDBiZjI5OWZkYTdlNS4uZWVhZTMxNjVlNGUyMGE0ZDM2MDY1MTNl
MDhkNmEwZTI2N2ZlNjcwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNDMsNyArNDMsNiBAQAogI2luY2x1
ZGUgIlJlbW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lclByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3Rl
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyLmgiCiAjaW5j
bHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5h
Z2VyTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlck1hbmFnZXIuaCIKICNpbmNsdWRlICJSZW1vdGVHcmFwaGljc0NvbnRleHRHTE1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRl
ICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCkBAIC0yMDIsNyArMjAx
LDYgQEAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyhHUFVQcm9jZXNzJiBncHVQcm9jZXNzLCBXZWIKICAgICAsIG1fbGliV2ViUlRDQ29kZWNzUHJv
eHkoTGliV2ViUlRDQ29kZWNzUHJveHk6OmNyZWF0ZSgqdGhpcykpCiAjZW5kaWYKICNpZiBQTEFU
Rk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICAsIG1fYXVkaW9UcmFja1Jl
bmRlcmVyTWFuYWdlcihSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI6
OmNyZWF0ZSgqdGhpcykpCiAgICAgLCBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIo
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6Y3JlYXRlKCp0aGlzKSkKICNl
bmRpZgogI2lmIEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKSAmJiBIQVZFKEFWQVVESU9fUk9V
VElOR19BUkJJVEVSKQpAQCAtMjMyLDcgKzIzMCw2IEBAIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6On5HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkKICAgICBtX2Nvbm5lY3Rpb24tPmludmFs
aWRhdGUoKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQot
ICAgIG1fYXVkaW9UcmFja1JlbmRlcmVyTWFuYWdlci0+Y2xvc2UoKTsKICAgICBtX3NhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllck1hbmFnZXItPmNsb3NlKCk7CiAjZW5kaWYKICNpZiBQTEFURk9STShD
T0NPQSkgJiYgVVNFKExJQldFQlJUQykKQEAgLTMyNSw3ICszMjIsNyBAQCBib29sIEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OmFsbG93c0V4aXRVbmRlck1lbW9yeVByZXNzdXJlKCkgY29uc3QK
ICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBpZiAobV91
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5ICYmIG1fdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS0+aGFzU291cmNlUHJveGllcygpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYg
KCFtX2F1ZGlvVHJhY2tSZW5kZXJlck1hbmFnZXItPmFsbG93c0V4aXRVbmRlck1lbW9yeVByZXNz
dXJlKCkpCisgICAgaWYgKG1fYXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVu
aXRNYW5hZ2VyICYmIG1fYXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRN
YW5hZ2VyLT5oYXNVbml0cygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFtX3Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXItPmFsbG93c0V4aXRVbmRlck1lbW9yeVByZXNz
dXJlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IGRhYzA5N2I3MWYwYmUx
MGY2YzVmODg0OWM2NTA2MjRkMTRiMDI0MTUuLjVmYWRhMzVjMWJmNGIzYWIyODA2ZmJkNTdmMGVi
NjYxZTAyZmRkMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtNjAsNyArNjAsNiBAQCBjbGFzcyBMaWJXZWJSVEND
b2RlY3NQcm94eTsKIGNsYXNzIExvY2FsQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3I7CiBj
bGFzcyBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjsKIGNsYXNzIFJlbW90ZUF1ZGlvSGFy
ZHdhcmVMaXN0ZW5lclByb3h5OwotY2xhc3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJNYW5hZ2VyOwogY2xhc3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJ
bnRlcm5hbFVuaXRNYW5hZ2VyOwogY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHk7CiBjbGFz
cyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI7CkBAIC0yNDMsNyArMjQyLDYgQEAgcHJp
dmF0ZToKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eT4gbV91c2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXI+IG1fYXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyOwotICAgIFJlZjxSZW1vdGVBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI+IG1fYXVkaW9UcmFja1JlbmRlcmVyTWFuYWdl
cjsKICAgICBSZWY8UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcj4gbV9zYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0Ep
ICYmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIEhBVkUoQVZBU1NFVFdSSVRFUkRFTEVHQVRFKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCmluZGV4IGJkNDE0MzcxZjA5YWM3
OTljOTM5MDgzMzBhYTc2OTBlMTRhNzBkNmMuLjRhNGFjOTE0YjQ2MzE5MzUyNDg4ZGJlMTYyNmRm
ZjNkZGNhMjY2YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9j
ZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKQEAg
LTQwMCwxMiArNDAwLDYgQEAgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5hZ2VyJiBHUFVQcm9j
ZXNzOjphdWRpb1Nlc3Npb25NYW5hZ2VyKCkgY29uc3QKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkgJiYgUExBVEZPUk0oQ09DT0EpCi1Xb3JrUXVldWUmIEdQVVByb2Nlc3M6OmF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyUXVldWUoKQotewotICAgIGlmICghbV9hdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlclF1ZXVlKQotICAgICAgICBtX2F1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyUXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgiUmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXIiLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpR
T1M6OlVzZXJJbnRlcmFjdGl2ZSk7Ci0gICAgcmV0dXJuICptX2F1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyUXVldWU7Ci19CiBXb3JrUXVldWUmIEdQVVByb2Nlc3M6OnZpZGVvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyUXVldWUoKQogewogICAgIGlmICghbV92aWRlb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlclF1ZXVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VVByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmgKaW5kZXgg
NWExOTRhMDkyZjBhYjcxODMxYTA0NDFjNzk2YTBiYjI1Y2M3N2Q1Zi4uNWVkNWIzZWQxZTE0N2U0
NjE5M2U2Yjg0ZDgzZDgwOWUwODU5MGQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVVByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJv
Y2Vzcy5oCkBAIC04NCw3ICs4NCw2IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpOb3dQbGF5aW5n
TWFuYWdlciYgbm93UGxheWluZ01hbmFnZXIoKTsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
ICYmIFBMQVRGT1JNKENPQ09BKQotICAgIFdvcmtRdWV1ZSYgYXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJRdWV1ZSgpOwogICAgIFdvcmtRdWV1ZSYgdmlkZW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJRdWV1ZSgpOwogI2VuZGlmCiAjaWYgVVNFKExJQldFQlJUQykgJiYgUExBVEZPUk0oQ09D
T0EpCkBAIC0xNjQsNyArMTYzLDYgQEAgcHJpdmF0ZToKICAgICB9OwogICAgIEhhc2hNYXA8V2Vi
Q29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIE1lZGlhQ2FwdHVyZUFjY2Vzcz4gbV9tZWRpYUNhcHR1
cmVBY2Nlc3NNYXA7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgUExBVEZPUk0oQ09DT0Ep
Ci0gICAgUmVmUHRyPFdvcmtRdWV1ZT4gbV9hdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclF1
ZXVlOwogICAgIFJlZlB0cjxXb3JrUXVldWU+IG1fdmlkZW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJRdWV1ZTsKICNlbmRpZgogICAgIHVpbnQ2NF90IG1fb3JpZW50YXRpb24geyAwIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBlYzYwMzYwMjBiZDI5ZjJiMmY0OGI2YmZjZjhiMTRhOTcyNGE5NTZhLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIu
Y3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTIyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXIuaCIKLQotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVO
QUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlICJDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSAi
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmgiCi0jaW5jbHVkZSAi
U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgotCi0jZGVmaW5lIE1FU1NB
R0VfQ0hFQ0soYXNzZXJ0aW9uKSBNRVNTQUdFX0NIRUNLX0JBU0UoYXNzZXJ0aW9uLCAoJm1fbWFu
YWdlci5jb25uZWN0aW9uKCkpKQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwotCi0jaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi1zdGF0aWMgY29uc3Qgdm9p
ZCogbmV4dExvZ0lkZW50aWZpZXIoKQotewotICAgIHN0YXRpYyB1aW50NjRfdCBsb2dJZGVudGlm
aWVyID0gY3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIoKTsKLSAgICByZXR1cm4gcmVpbnRl
cnByZXRfY2FzdDxjb25zdCB2b2lkKj4oKytsb2dJZGVudGlmaWVyKTsKLX0KLQotc3RhdGljIFJl
ZlB0cjxMb2dnZXI+JiBudWxsTG9nZ2VyKCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
UmVmUHRyPExvZ2dlcj4+IGxvZ2dlcjsKLSAgICByZXR1cm4gbG9nZ2VyOwotfQotI2VuZGlmCi0K
LVJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpSZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlcihSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFn
ZXImIG1hbmFnZXIpCi0gICAgOiBtX21hbmFnZXIobWFuYWdlcikKLSAgICAsIG1fcmVuZGVyZXIo
V2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmNyZWF0ZSgpKQotICAgICwg
bV9yaW5nQnVmZmVyKG1ha2VVbmlxdWVSZWY8Q0FSaW5nQnVmZmVyPigpKQotewotICAgIEFTU0VS
VChtX3JlbmRlcmVyKTsKLQotI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAotICAgIGlmICghbnVs
bExvZ2dlcigpLmdldCgpKSB7Ci0gICAgICAgIG51bGxMb2dnZXIoKSA9IExvZ2dlcjo6Y3JlYXRl
KHRoaXMpOwotICAgICAgICBudWxsTG9nZ2VyKCktPnNldEVuYWJsZWQodGhpcywgZmFsc2UpOwot
ICAgIH0KLSAgICBtX3JlbmRlcmVyLT5zZXRMb2dnZXIoKm51bGxMb2dnZXIoKSwgbmV4dExvZ0lk
ZW50aWZpZXIoKSk7Ci0jZW5kaWYKLX0KLQotUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXI6On5SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcigpCi17Ci0gICAgbV9y
ZW5kZXJlci0+Y2xlYXIoKTsKLX0KLQotdm9pZCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlcjo6c3RhcnQoKQotewotICAgIG1fcmVuZGVyZXItPnN0YXJ0KFtdIHsgfSk7Ci19Ci0K
LXZvaWQgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OnN0b3AoKQotewotICAg
IG1fcmVuZGVyZXItPnN0b3AoKTsKLX0KLQotdm9pZCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlcjo6Y2xlYXIoKQotewotICAgIG1fcmVuZGVyZXItPmNsZWFyKCk7Ci19Ci0KLXZv
aWQgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OnNldFZvbHVtZShmbG9hdCB2
YWx1ZSkKLXsKLSAgICBtX3JlbmRlcmVyLT5zZXRWb2x1bWUodmFsdWUpOwotfQotCi12b2lkIFJl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjphdWRpb1NhbXBsZXNTdG9yYWdlQ2hh
bmdlZChjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYgaXBjSGFuZGxlLCBjb25zdCBXZWJD
b3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1i
ZXJPZkZyYW1lcykKLXsKLSAgICBNRVNTQUdFX0NIRUNLKFdlYkF1ZGlvQnVmZmVyTGlzdDo6aXNT
dXBwb3J0ZWREZXNjcmlwdGlvbihkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpKTsKLSAgICBt
X2Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247Ci0KLSAgICBtX3JpbmdCdWZmZXIgPSBDQVJpbmdC
dWZmZXI6OmFkb3B0U3RvcmFnZShtYWtlVW5pcXVlUmVmPFJlYWRPbmx5U2hhcmVkUmluZ0J1ZmZl
clN0b3JhZ2U+KGlwY0hhbmRsZS5oYW5kbGUpLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMp
OwotICAgIG1fYXVkaW9CdWZmZXJMaXN0ID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+
KG1fZGVzY3JpcHRpb24pOwotfQotCi12b2lkIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51
bWJlck9mRnJhbWVzKQotewotICAgIE1FU1NBR0VfQ0hFQ0sobV9hdWRpb0J1ZmZlckxpc3QpOwot
ICAgIE1FU1NBR0VfQ0hFQ0soV2ViQXVkaW9CdWZmZXJMaXN0Ojppc1N1cHBvcnRlZERlc2NyaXB0
aW9uKG1fZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKSk7Ci0KLSAgICBtX2F1ZGlvQnVmZmVy
TGlzdC0+c2V0U2FtcGxlQ291bnQobnVtYmVyT2ZGcmFtZXMpOwotICAgIG1fcmluZ0J1ZmZlci0+
ZmV0Y2gobV9hdWRpb0J1ZmZlckxpc3QtPmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUudGlt
ZVZhbHVlKCkpOwotCi0gICAgbV9yZW5kZXJlci0+cHVzaFNhbXBsZXModGltZSwgKm1fYXVkaW9C
dWZmZXJMaXN0LCBtX2Rlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7Ci19Ci0KLX0KLQotI3Vu
ZGVmIE1FU1NBR0VfQ0hFQ0sKLQotI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUo
R1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNjNmQ5
ZjM0OTg0ZDdmOTBjNmUwMjdhMWQ2YzRhZDg0NmYzZmY0ZjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oCisrKyAvZGV2L251bGwKQEAg
LTEsNzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgUExBVEZPUk0o
Q09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQot
I2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgotI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgot
I2luY2x1ZGUgPFdlYkNvcmUvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmg+Ci0jaW5jbHVkZSA8
d3RmL01lZGlhVGltZS5oPgotI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotY2xhc3MgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI7Ci1jbGFzcyBD
QVJpbmdCdWZmZXI7Ci1jbGFzcyBXZWJBdWRpb0J1ZmZlckxpc3Q7Ci19Ci0KLW5hbWVzcGFjZSBX
ZWJLaXQgewotCi1jbGFzcyBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFn
ZXI7Ci1jbGFzcyBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTsKLQotY2xhc3MgUmVtb3RlQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwot
cHVibGljOgotICAgIGV4cGxpY2l0IFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
KFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlciYpOwotICAgIH5SZW1v
dGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcigpOwotCi0gICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKLQotcHJpdmF0ZToKLSAg
ICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZvaWQgc3RhcnQoKTsKLSAgICB2b2lkIHN0
b3AoKTsKLSAgICB2b2lkIGNsZWFyKCk7Ci0gICAgdm9pZCBzZXRWb2x1bWUoZmxvYXQpOwotICAg
IHZvaWQgYXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENI
YW5kbGUmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCB1aW50NjRf
dCBudW1iZXJPZkZyYW1lcyk7Ci0gICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFU
aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcyk7Ci0KLSAgICBSZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlck1hbmFnZXImIG1fbWFuYWdlcjsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI+IG1fcmVuZGVyZXI7Ci0gICAg
V2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb247Ci0gICAgVW5p
cXVlUmVmPFdlYkNvcmU6OkNBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOwotICAgIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+IG1fYXVkaW9CdWZmZXJMaXN0Owot
fTsKLQotfQotCi0jZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VT
UykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyLm1lc3NhZ2VzLmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBkN2EzYTI4NGYwNWY5NzQxMTE0MjU1MDUzNjhhZmRjY2YwYWJmMWFiLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIubWVzc2FnZXMu
aW4KKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSMgYXJlIG1ldDoKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSMgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0jIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0jIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0jIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0jIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0jIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSMgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VT
UykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotbWVzc2FnZXMgLT4gUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXIgTm90UmVmQ291bnRlZCB7Ci0gICAgU3RhcnQoKQotICAgIFN0
b3AoKQotICAgIENsZWFyKCkKLQotICAgIFNldFZvbHVtZShmbG9hdCB2YWx1ZSkKLQotICAgIEF1
ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUg
c3RvcmFnZUhhbmRsZSwgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIGRlc2NyaXB0
aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKLSAgICBBdWRpb1NhbXBsZXNBdmFpbGFibGUo
TWVkaWFUaW1lIHRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQotfQotCi0jZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJ
bnRlcm5hbFVuaXRNYW5hZ2VyLmNwcAppbmRleCA4MTY3ZTJhMDcwODU1MmFjNThmMzZiZmMzYTJh
OGE0MTRhNWYxMDYxLi44ZmE1MTQxM2Q2MzVmNzg5NjBkOTk5YTZkZWJkYjZmZGEyYjZkOGUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlckludGVybmFsVW5pdE1hbmFnZXIuY3BwCkBAIC0xMTQsNyArMTE0LDcgQEAgdm9pZCBSZW1v
dGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXI6OnNldEF1
ZGlvT3V0cHV0RGV2aWMKICAgICAgICAgdW5pdC0+c2V0QXVkaW9PdXRwdXREZXZpY2UoZGV2aWNl
SWQpOwogfQogCi1zdGF0aWMgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVu
aXQ6OlJlbmRlckNhbGxiYWNrIHJlbmRlckNhbGxiYWNrKFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlcjo6VW5pdCYgdW5pdCkKK3N0YXRpYyBXZWJD
b3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6UmVuZGVyQ2Fs
bGJhY2sgcmVuZGVyQ2FsbGJhY2soUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJ
bnRlcm5hbFVuaXRNYW5hZ2VyOjpVbml0JiB1bml0KQogewogICAgIHJldHVybiBbJnVuaXRdKGF1
dG8gc2FtcGxlQ291bnQsIGF1dG8mIGxpc3QsIGF1dG8gc2FtcGxlVGltZSwgYXV0byBob3N0VGlt
ZSwgYXV0byYgZmxhZ3MpIHsKICAgICAgICAgcmV0dXJuIHVuaXQucmVuZGVyKHNhbXBsZUNvdW50
LCBsaXN0LCBzYW1wbGVUaW1lLCBob3N0VGltZSwgZmxhZ3MpOwpAQCAtMTI4LDEwICsxMjgsMTEg
QEAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2Vy
OjpVbml0OjpVbml0KEF1ZGlvTWVkaWFTdHIKIHsKICAgICBtX2xvY2FsVW5pdC0+cmV0cmlldmVG
b3JtYXREZXNjcmlwdGlvbihbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgdGhpcywgY2Fs
bGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYmIGRlc2NyaXB0aW9uKSBtdXRhYmxlIHsK
ICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhZGVzY3JpcHRpb24pIHsKKyAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0lGKCFkZXNjcmlwdGlvbiwgV2ViUlRDLCAiUmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyOjpVbml0IHVuYWJsZSB0byBnZXQgZm9y
bWF0IGRlc2NyaXB0aW9uIik7CiAgICAgICAgICAgICBjYWxsYmFjayh7IH0sIDApOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIG1fZnJhbWVDaHVua1NpemUgPSBzdGQ6
Om1heChXZWJDb3JlOjpBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUsIEF1ZGlvU2Vz
c2lvbjo6c2hhcmVkU2Vzc2lvbigpLnByZWZlcnJlZEJ1ZmZlclNpemUoKSk7CisgICAgICAgIG1f
ZnJhbWVDaHVua1NpemUgPSBzdGQ6Om1heChXZWJDb3JlOjpBdWRpb1V0aWxpdGllczo6cmVuZGVy
UXVhbnR1bVNpemUsIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnByZWZl
cnJlZEJ1ZmZlclNpemUoKSk7CiAgICAgICAgIGNhbGxiYWNrKCpkZXNjcmlwdGlvbiwgbV9mcmFt
ZUNodW5rU2l6ZSk7CiAgICAgfSk7CiB9CkBAIC0xNDgsNyArMTQ5LDcgQEAgdm9pZCBSZW1vdGVB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXI6OlVuaXQ6OnN0
YXJ0KGNvbnN0IFMKIAogICAgIG1fcmVhZE9mZnNldCA9IDA7CiAgICAgbV9pc1BsYXlpbmcgPSB0
cnVlOwotICAgIG1fcmluZ0J1ZmZlciA9IENBUmluZ0J1ZmZlcjo6YWRvcHRTdG9yYWdlKG1ha2VV
bmlxdWVSZWY8UmVhZE9ubHlTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4oaGFuZGxlKSwgZGVzY3Jp
cHRpb24sIG51bWJlck9mRnJhbWVzKS5tb3ZlVG9VbmlxdWVQdHIoKTsKKyAgICBtX3JpbmdCdWZm
ZXIgPSBXZWJDb3JlOjpDQVJpbmdCdWZmZXI6OmFkb3B0U3RvcmFnZShtYWtlVW5pcXVlUmVmPFJl
YWRPbmx5U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KGhhbmRsZSksIGRlc2NyaXB0aW9uLCBudW1i
ZXJPZkZyYW1lcykubW92ZVRvVW5pcXVlUHRyKCk7CiAgICAgbV9yZW5kZXJTZW1hcGhvcmUgPSBX
VEZNb3ZlKHNlbWFwaG9yZSk7CiAgICAgbV9sb2NhbFVuaXQtPnN0YXJ0KCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFs
VW5pdE1hbmFnZXIuaAppbmRleCA1OTVhN2RkMjYzNzZhOTdjMjFkOWI2MGFjZGU4ZDFiM2NmMGFh
OTQyLi41MmRjOGVmZGRhOTZkMzNiOGRmOGUwYTYxNzhlOWY5OTI0OTliN2E5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5h
bFVuaXRNYW5hZ2VyLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKIAorICAgIGJv
b2wgaGFzVW5pdHMoKSB7IHJldHVybiAhbV91bml0cy5pc0VtcHR5KCk7IH0KICAgICBjbGFzcyBV
bml0OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlck1hbmFnZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZWRjYTAy
MmZiMmQ3ZDU2ZTlmOWE1Mzk2MjliMjc2YjY3Y2MxMjEwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmNwcAorKysgL2Rldi9u
dWxsCkBAIC0xLDk4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmgiCi0K
LSNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQotCi0jaW5jbHVkZSAiRGVjb2Rlci5oIgotI2luY2x1ZGUgIkdQVVByb2Nlc3Mu
aCIKLSNpbmNsdWRlICJSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oIgotI2lu
Y2x1ZGUgIlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2Vz
LmgiCi0jaW5jbHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdl
cy5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotCi1SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlck1hbmFnZXI6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFu
YWdlcihHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzKQot
ICAgIDogbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCi0g
ICAgLCBtX3F1ZXVlKGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuZ3B1UHJvY2VzcygpLmF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyUXVldWUoKSkKLXsKLX0KLQotdm9pZCBSZW1vdGVBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI6OnN0YXJ0TGlzdGVuaW5nRm9ySVBDKCkKLXsK
LSAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLmFkZFRocmVhZE1lc3Nh
Z2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7Ci0gICAgbV9jb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNvbm5lY3Rpb24oKS5hZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpLCB0aGlzKTsKLX0KLQotUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5h
Z2VyOjp+UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyKCkgPSBkZWZh
dWx0OwotCi12b2lkIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6
Y2xvc2UoKQotewotICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkucmVt
b3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKLSAgICBtX2Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNz
YWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCkpOwotICAgIGRpc3BhdGNoVG9UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKV0gewotICAgICAgICBtX3JlbmRlcmVycy5jbGVhcigpOwotICAg
IH0pOwotfQotCi12b2lkIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdl
cjo6ZGlzcGF0Y2hUb1RocmVhZChGdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCi17Ci0gICAg
bV9xdWV1ZS0+ZGlzcGF0Y2goV1RGTW92ZShjYWxsYmFjaykpOwotfQotCi1ib29sIFJlbW90ZUF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6ZGlzcGF0Y2hNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIGlm
ICghZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IGF1dG8gaWRlbnRpZmllciA9IG1ha2VPYmplY3RJZGVudGlmaWVyPEF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVySWRlbnRpZmllclR5cGU+KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKLSAg
ICBpZiAoYXV0byogcmVuZGVyZXIgPSBtX3JlbmRlcmVycy5nZXQoaWRlbnRpZmllcikpCi0gICAg
ICAgIHJlbmRlcmVyLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKLSAg
ICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlck1hbmFnZXI6OmNyZWF0ZVJlbmRlcmVyKEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
SWRlbnRpZmllciBpZGVudGlmaWVyKQotewotICAgIEFTU0VSVCghbV9yZW5kZXJlcnMuY29udGFp
bnMoaWRlbnRpZmllcikpOwotICAgIG1fcmVuZGVyZXJzLmFkZChpZGVudGlmaWVyLCBtYWtlVW5p
cXVlPFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyPigqdGhpcykpOwotfQotCi12
b2lkIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6cmVsZWFzZVJl
bmRlcmVyKEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllciBpZGVudGlmaWVy
KQotewotICAgIEFTU0VSVChtX3JlbmRlcmVycy5jb250YWlucyhpZGVudGlmaWVyKSk7Ci0gICAg
bV9yZW5kZXJlcnMucmVtb3ZlKGlkZW50aWZpZXIpOwotfQotCi1ib29sIFJlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6YWxsb3dzRXhpdFVuZGVyTWVtb3J5UHJlc3N1
cmUoKSBjb25zdAotewotICAgIHJldHVybiBtX3JlbmRlcmVycy5pc0VtcHR5KCk7Ci19Ci0KLX0K
LQotI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVO
QUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlck1hbmFnZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzMxNDkxMjZi
NjMzMDU3Yjk5ZTc3ODJiOGY1Y2VjMjU4Y2EwZDI4MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oCisrKyAvZGV2L251bGwK
QEAgLTEsODUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgUExBVEZP
Uk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
LQotI2luY2x1ZGUgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllci5oIgot
I2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmgiCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgotCi1uYW1lc3BhY2UgSVBDIHsKLWNsYXNzIENvbm5lY3Rpb247Ci1jbGFzcyBEZWNvZGVyOwot
fQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXI7Ci0KLWNsYXNzIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
TWFuYWdlciBmaW5hbCA6IHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNl
aXZlclJlZkNvdW50ZWQgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2Vy
PiBjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgcHJvY2VzcykKLSAgICB7Ci0gICAg
ICAgIGF1dG8gaW5zdGFuY2UgPSBhZG9wdFJlZigqbmV3IFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyTWFuYWdlcihwcm9jZXNzKSk7Ci0gICAgICAgIGluc3RhbmNlLT5zdGFydExp
c3RlbmluZ0ZvcklQQygpOwotICAgICAgICByZXR1cm4gaW5zdGFuY2U7Ci0gICAgfQotICAgIH5S
ZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIoKTsKLQotICAgIHZvaWQg
ZGlkUmVjZWl2ZVJlbmRlcmVyTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KTsKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpIHsgZGlkUmVjZWl2ZU1lc3Nh
Z2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7IH0KLQotICAgIElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9u
KCk7IH0KLQotICAgIHZvaWQgY2xvc2UoKTsKLQotICAgIGJvb2wgYWxsb3dzRXhpdFVuZGVyTWVt
b3J5UHJlc3N1cmUoKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYpOwotICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JJUEMoKTsKLQotICAgIC8vIElQQzo6Q29u
bmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyCi0gICAgdm9pZCBkaXNwYXRjaFRvVGhyZWFk
KEZ1bmN0aW9uPHZvaWQoKT4mJikgZmluYWw7Ci0KLSAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZl
cgotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNv
ZGVyJikgZmluYWw7Ci0gICAgYm9vbCBkaXNwYXRjaE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJik7Ci0gICAgdm9pZCBjcmVhdGVSZW5kZXJlcihBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlcklkZW50aWZpZXIpOwotICAgIHZvaWQgcmVsZWFzZVJlbmRlcmVyKEF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllcik7Ci0KLSAgICBHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzJiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7Ci0gICAgUmVmPFdvcmtRdWV1
ZT4gbV9xdWV1ZTsKLSAgICBIYXNoTWFwPEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRl
bnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyPj4gbV9yZW5kZXJlcnM7Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkg
JiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlck1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5tZXNz
YWdlcy5pbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzM1ZDZiN2Y1YmJmMWM2Y2Zk
ZTVhYmQ4Y2VmY2FhMDFkMzRjZDU2Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5tZXNzYWdlcy5pbgorKysgL2Rldi9udWxs
CkBAIC0xLDMxICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0Ogot
IyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotIyBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSMgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotIyBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSMgQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0K
LSNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQotCi1tZXNzYWdlcyAtPiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlck1hbmFnZXIgV2FudHNBc3luY0Rpc3BhdGNoTWVzc2FnZSB7Ci0gICAgQ3JlYXRlUmVuZGVy
ZXIoV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIgaWQpCi0g
ICAgUmVsZWFzZVJlbmRlcmVyKFdlYktpdDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJ
ZGVudGlmaWVyIGlkKQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5CmluZGV4IDI3ODNjNDg4MTlkODM4ZTE3MWFmOTI4YmEzYTY4MWEyMDc0NmY0N2Qu
LmQzODY1ODNlNjUzNjg2ZmE1MjE1NmYzZDY0MTc0MTA3NGFiYmQ4ODUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMzA3LDcgKzMwNyw2IEBAIGRlZiB0eXBl
c190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJDb3JlOjpT
V1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OldlYlNvY2tl
dElkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpBY3Rpdml0eVN0YXRlQ2hhbmdlSUQnLAot
ICAgICAgICAnV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIn
LAogICAgICAgICAnV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFs
VW5pdElkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpDb250ZW50V29ybGRJZGVudGlmaWVy
JywKICAgICAgICAgJ1dlYktpdDo6RGlzcGxheUxpbmtPYnNlcnZlcklEJywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0Cmlu
ZGV4IDkyZTE0N2I4ZjNiMDRhN2NjZTc2YWRlODFiODU2NmZhOTQ3ZmE0ZTguLmE4NjRhNDRjODU4
NzlhNWQyZDQ0NmVkYTgxZTBhZTE0ZjZlZTk3NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNTIsOCArNTIs
NiBAQCBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lclByb3h5LmNw
cAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eS5jcHAKIEdQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZVZpZGVvVHJhY2tQcm94eS5jcHAKLUdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyLmNwcAotR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmNwcAogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
TWVkaWFSZWNvcmRlci5jcHAKIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJN
YW5hZ2VyLmNwcAogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyLmNwcApAQCAtNjEzLDcgKzYxMSw2IEBAIFdlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1
ZmZlclByaXZhdGVSZW1vdGUuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2
YXRlUmVtb3RlLmNwcAogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1v
dGUuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9XZWJNZWRpYVN0cmF0ZWd5LmNwcAotV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcAogV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKIFdlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJl
Y29yZGVyUHJvdmlkZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggNzU5NTE5MWZjY2Ex
NzIyZGMzYzQzOTIzYmViYzU0YzMxYmUwMjBmYi4uMDY0ZWViNTc4ZWY3MWY0NTI4ZDdmYmJjNThk
YjM2MDQ2MzEyOTljYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNzE5LDggKzcxOSw2IEBA
IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3Rl
QXVkaW9IYXJkd2FyZUxpc3RlbmVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9TZXNz
aW9uTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwCi1SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwCi1SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1lc3Nh
Z2VSZWNlaXZlci5jcHAKIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcAogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
CiBSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggY2U0NTUw
N2NkMjM0NTBjN2VlODE4YTE2MWRkYWYyNDA4Mzg3MTdmMC4uZGRlZGM0OGI0ZDc4NTNhOTE3NDE1
OTczMzVjM2MyYTAxYzVkYzFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zODMzLDEyICszODMzLDYgQEAKIAkJNDFEMTI5RDkxRjNE
MTAxNDAwRDE1RTQ3IC8qIFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxRDVDNkQ4MjM4RUIyMEQwMEI5QjNDQiAvKiBTZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxvYWRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyU29mdFVw
ZGF0ZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUQ1QzZEOTIzOEVC
MjBFMDBCOUIzQ0IgLyogU2VydmljZVdvcmtlclNvZnRVcGRhdGVMb2FkZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VydmljZVdvcmtlclNvZnRVcGRhdGVMb2Fk
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MUQ2NDU1MjIzQ0NCOTIxMDA0
ODZFMEUgLyogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBu
YW1lID0gUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIubWVzc2FnZXMuaW47IHBh
dGggPSBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwotCQk0MUQ2NDU1MzIz
Q0NCOTIxMDA0ODZFMEUgLyogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaDsgcGF0
aCA9IEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
Lmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKLQkJNDFENjQ1NTQyM0NDQjkyMjAwNDg2
RTBFIC8qIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcDsgcGF0aCA9
IEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNw
cDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwotCQk0MUQ2NDU1NTIzQ0NCOTY5MDA0ODZF
MEUgLyogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLm1lc3NhZ2Vz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NDFENjQ1NTYyM0NDQjk2OTAwNDg2RTBFIC8qIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBS
ZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk0MUQ2NDU1NzIzQ0NCOTY5MDA0ODZFMEUgLyogUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MURDNDU5NDFFM0Q2RTFFMDBCMTFGNTEg
LyogTmV0d29ya1JUQ1Byb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE5ldHdvcmtSVENQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MURD
NDU5NTFFM0Q2RTFFMDBCMTFGNTEgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtSVENQcm92aWRlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxREM0NTk4MUUzRDZFRDYwMEIxMUY1MSAvKiBOZXR3
b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTmV0d29y
a1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
Mzg2MCw5ICszODU0LDYgQEAKIAkJNDFGQkU4MjIyMDZEQTc5QzAwMEYwNzQxIC8qIE5ldHdvcmtD
b250ZW50UnVsZUxpc3RNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxRkJFODIzMjA2REE3OUMwMDBGMDc0MSAvKiBOZXR3b3JrQ29udGVudFJ1bGVMaXN0
TWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOZXR3b3JrQ29udGVu
dFJ1bGVMaXN0TWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDFGQkU4MjQyMDZEQTc5QzAwMEYwNzQxIC8qIE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5h
Z2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtDb250
ZW50UnVsZUxpc3RNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDFG
Q0Q2QUQyM0NDQzI2MDAwQzYyNTY3IC8qIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxRkNENkFFMjNDQ0MyNjEw
MEM2MjU2NyAvKiBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxRkNENkFGMjNDQ0MyNjEwMEM2MjU2
NyAvKiBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVu
dGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRkNENkIzMjNDREM2MDQw
MEM2MjU2NyAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxRkNENkI0MjNDRENBQzIwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxRkNENkI1MjNDREUxQzYwMEM2MjU2NyAvKiBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg0NTksOSArODQ1MCw2IEBA
CiAJCTQxNzIxOTg4MjNCNjEyNjEwMEFFNTY4NiAvKiB3ZWJydGMgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTQxRkNENkFFMjNDQ0MyNjEwMEM2MjU2NyAv
KiBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAgKi8sCi0JCQkJNDFGQ0Q2QUQyM0ND
QzI2MDAwQzYyNTY3IC8qIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmggKi8sCi0JCQkJ
NDFGQ0Q2QUYyM0NDQzI2MTAwQzYyNTY3IC8qIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
SWRlbnRpZmllci5oICovLAogCQkJCTQxQzNCODg3MjY0NDRBRDMwMDRFRDRERSAvKiBBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdElkZW50aWZpZXIuaCAqLywKIAkJCQk0
MUMzQjg4NjI2NDQ0QUFDMDA0RUQ0REUgLyogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJ
bnRlcm5hbFVuaXRNYW5hZ2VyLmNwcCAqLywKIAkJCQk0MUMzQjg4NTI2NDQ0QUFCMDA0RUQ0REUg
LyogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyLmggKi8s
CkBAIC04NDkzLDE1ICs4NDgxLDkgQEAKIAkJCQk0MUUwQTdDNjIzQjYzOTc4MDA1NjEwNjAgLyog
TGliV2ViUlRDQ29kZWNzUHJveHkuaCAqLywKIAkJCQk0MUUwQTdDNzIzQjYzOTc5MDA1NjEwNjAg
LyogTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJNDFFMEE3QzgyM0I2
Mzk3OTAwNTYxMDYwIC8qIExpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tICovLAotCQkJCTQxRDY0NTU0
MjNDQ0I5MjIwMDQ4NkUwRSAvKiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5j
cHAgKi8sCi0JCQkJNDFENjQ1NTMyM0NDQjkyMTAwNDg2RTBFIC8qIFJlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyLmggKi8sCi0JCQkJNDFENjQ1NTIyM0NDQjkyMTAwNDg2RTBFIC8q
IFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLm1lc3NhZ2VzLmluICovLAogCQkJ
CTQxQzNCODkxMjY0OTNCN0IwMDRFRDRERSAvKiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXIuY3BwICovLAogCQkJCTQxQzNCODkwMjY0OTNCN0Iw
MDRFRDRERSAvKiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5p
dE1hbmFnZXIuaCAqLywKIAkJCQk0MUMzQjg5NDI2NDkzQjdDMDA0RUQ0REUgLyogUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyLm1lc3NhZ2VzLmlu
ICovLAotCQkJCTQxRDY0NTU2MjNDQ0I5NjkwMDQ4NkUwRSAvKiBSZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuY3BwICovLAotCQkJCTQxRDY0NTU3MjNDQ0I5NjkwMDQ4
NkUwRSAvKiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuaCAqLywK
LQkJCQk0MUQ2NDU1NTIzQ0NCOTY5MDA0ODZFMEUgLyogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJCTQxNzZFODlEMjNDMzc2RDUw
MDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyLmNwcCAqLywKIAkJCQk0MTc2RTg5ODIzQzM2
Njc3MDAzRTgzRkUgLyogUmVtb3RlTWVkaWFSZWNvcmRlci5oICovLAogCQkJCTQxNzZFODlDMjND
Mzc0NzkwMDNFODNGRSAvKiBSZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwNzhhMDJmZDkzNjc1ZGYzMjQ0M2VhNjQyOTE5YTU5ZTFiM2NiOGEzLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDEzNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmgiCi0KLSNp
ZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFf
U1RSRUFNKQotCi0jaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJS
ZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXJNZXNzYWdlcy5oIgotI2lu
Y2x1ZGUgIlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZXMuaCIKLSNp
bmNsdWRlICJXZWJQcm9jZXNzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9BdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7
Ci0KLXN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
cj4gQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmNyZWF0ZSgpCi17Ci0gICAgcmV0dXJu
IHN0ZDo6dW5pcXVlX3B0cjxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcj4obmV3IEF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyIHsgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJl
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkgfSk7Ci19Ci0KLUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcihSZWY8SVBD
OjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCi0gICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShj
b25uZWN0aW9uKSkKLSAgICAsIG1faWRlbnRpZmllcihBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlcklkZW50aWZpZXI6OmdlbmVyYXRlKCkpCi0gICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1
ZTxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0
b3JhZ2U+KHN0ZDo6YmluZCgmQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OnN0b3JhZ2VD
aGFuZ2VkLCB0aGlzLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzEsIHN0ZDo6cGxhY2Vob2xkZXJzOjpf
Miwgc3RkOjpwbGFjZWhvbGRlcnM6Ol8zKSkpKQotewotICAgIGluaXRpYWxpemUoKTsKLX0KLQot
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6On5BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlcigpCi17Ci0gICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5leGlzdGluZ0dQVVByb2Nlc3NDb25uZWN0aW9uKCkpCi0gICAgICAgIGNvbm5lY3Rpb24t
PnJlbW92ZUNsaWVudCgqdGhpcyk7Ci0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI6OlJlbGVhc2VSZW5kZXJl
ciB7IG1faWRlbnRpZmllciB9LCAwKTsKLX0KLQotdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlcjo6aW5pdGlhbGl6ZSgpCi17Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5z
dXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5hZGRDbGllbnQoKnRoaXMpOwotICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJN
YW5hZ2VyOjpDcmVhdGVSZW5kZXJlciB7IG1faWRlbnRpZmllciB9LCAwKTsKLX0KLQotdm9pZCBB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c3RhcnQoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNhbGxiYWNrKQotewotICAgIG1faXNQbGF5aW5nID0gdHJ1ZTsKLSAgICBtX2Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
OjpTdGFydCB7IH0sIG1faWRlbnRpZmllcik7Ci0gICAgY2FsbGJhY2soKTsKLX0KLQotdm9pZCBB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c3RvcCgpCi17Ci0gICAgbV9pc1BsYXlpbmcg
PSBmYWxzZTsKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyOjpTdG9wIHsgfSwgbV9pZGVudGlmaWVyKTsKLX0KLQotdm9p
ZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6Y2xlYXIoKQotewotICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6
OkNsZWFyIHsgfSwgbV9pZGVudGlmaWVyKTsKLX0KLQotdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlcjo6c2V0Vm9sdW1lKGZsb2F0IHZhbHVlKQotewotICAgIFdlYkNvcmU6OkF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzZXRWb2x1bWUodmFsdWUpOwotICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6
OlNldFZvbHVtZSB7IHZhbHVlIH0sIG1faWRlbnRpZmllcik7Ci19Ci0KLXZvaWQgQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXI6OnB1c2hTYW1wbGVzKGNvbnN0IE1lZGlhVGltZSYgdGltZSwg
Y29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgV2ViQ29y
ZTo6QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBudW1iZXJPZkZy
YW1lcykKLXsKLSAgICBpZiAoIW1faXNQbGF5aW5nKQotICAgICAgICByZXR1cm47Ci0KLSAgICBp
ZiAobV9kZXNjcmlwdGlvbiAhPSBkZXNjcmlwdGlvbikgewotICAgICAgICBEaXNhYmxlTWFsbG9j
UmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlIHNjb3BlOwotICAgICAgICBBU1NFUlQo
ZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLnR5cGUgPT0gV2ViQ29yZTo6UGxhdGZv
cm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVhbUJhc2ljVHlwZSk7Ci0gICAgICAgIG1fZGVzY3Jp
cHRpb24gPSAqV1RGOjpnZXQ8Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVz
Y3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKLQotICAgICAgICAv
LyBBbGxvY2F0ZSBhIHJpbmcgYnVmZmVyIGxhcmdlIGVub3VnaCB0byBjb250YWluIDIgc2Vjb25k
cyBvZiBhdWRpby4KLSAgICAgICAgbV9udW1iZXJPZkZyYW1lcyA9IG1fZGVzY3JpcHRpb24uc2Ft
cGxlUmF0ZSgpICogMjsKLSAgICAgICAgbV9yaW5nQnVmZmVyLT5hbGxvY2F0ZShtX2Rlc2NyaXB0
aW9uLCBtX251bWJlck9mRnJhbWVzKTsKLSAgICB9Ci0KLSAgICBBU1NFUlQoaXM8V2ViQ29yZTo6
V2ViQXVkaW9CdWZmZXJMaXN0PihhdWRpb0RhdGEpKTsKLSAgICBtX3JpbmdCdWZmZXItPnN0b3Jl
KGRvd25jYXN0PFdlYkNvcmU6OldlYkF1ZGlvQnVmZmVyTGlzdD4oYXVkaW9EYXRhKS5saXN0KCks
IG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsKLQotICAgIERpc2FibGVNYWxsb2NS
ZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgc2NvcGU7Ci0gICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6QXVk
aW9TYW1wbGVzQXZhaWxhYmxlIHsgdGltZSwgbnVtYmVyT2ZGcmFtZXMgfSwgbV9pZGVudGlmaWVy
KTsKLX0KLQotdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c3RvcmFnZUNoYW5n
ZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mIGZvcm1hdCwgc2l6ZV90IGZyYW1lQ291bnQpCi17Ci0gICAgU2hhcmVkTWVtb3J5
OjpIYW5kbGUgaGFuZGxlOwotICAgIGlmIChzdG9yYWdlKQotICAgICAgICBzdG9yYWdlLT5jcmVh
dGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKLSAg
ICAKLSAgICAvLyBGSVhNRTogU2VuZCB0aGUgYWN0dWFsIGRhdGEgc2l6ZSB3aXRoIElQQ0hhbmRs
ZS4KLSNpZiBPUyhEQVJXSU4pIHx8IE9TKFdJTkRPV1MpCi0gICAgdWludDY0X3QgZGF0YVNpemUg
PSBoYW5kbGUuc2l6ZSgpOwotI2Vsc2UKLSAgICB1aW50NjRfdCBkYXRhU2l6ZSA9IDA7Ci0jZW5k
aWYKLSAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlIHNj
b3BlOwotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXI6OkF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkIHsgU2hhcmVkTWVt
b3J5OjpJUENIYW5kbGUgeyBXVEZNb3ZlKGhhbmRsZSksIGRhdGFTaXplIH0sIGZvcm1hdCwgZnJh
bWVDb3VudCB9LCBtX2lkZW50aWZpZXIpOwotfQotCi12b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyOjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0
aW9uJikKLXsKLSAgICBjcmFzaGVkKCk7Ci19Ci0KLX0KLQotI2VuZGlmIC8vIFBMQVRGT1JNKENP
Q09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNzA4NjlhMWY1YTRkOWYxMzg5Njg1YjI4ZjY4Yjc0NGViMGU4YTA2ZC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oCisrKyAvZGV2
L251bGwKQEAgLTEsNzcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYg
UExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKLQotI2luY2x1ZGUgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmll
ci5oIgotI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSAiU2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2UuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyLmg+Ci0jaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgotCi1uYW1lc3BhY2Ug
SVBDIHsKLWNsYXNzIENvbm5lY3Rpb247Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFz
cyBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlciwgcHVibGljIEdQVVByb2Nlc3NDb25uZWN0aW9u
OjpDbGllbnQgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXI+IGNyZWF0ZSgpOwotICAgIH5BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcigpOwotCi0g
ICAgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBj
b25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KLQotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKLQot
ICAgIHZvaWQgaW5pdGlhbGl6ZSgpOwotICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVt
b3J5KiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQsIHNp
emVfdCBmcmFtZUNvdW50KTsKLQotICAgIC8vIFdlYkNvcmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyCi0gICAgdm9pZCBzdGFydChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZp
bmFsOwotICAgIHZvaWQgc3RvcCgpIGZpbmFsOwotICAgIHZvaWQgY2xlYXIoKSBmaW5hbDsKLSAg
ICB2b2lkIHNldFZvbHVtZShmbG9hdCkgZmluYWw7Ci0gICAgdm9pZCBwdXNoU2FtcGxlcyhjb25z
dCBNZWRpYVRpbWUmLCBjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IFdl
YkNvcmU6OkF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOwotCi0gICAgLy8g
R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkNsaWVudAotICAgIHZvaWQgZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b25EaWRDbG9zZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYpIGZpbmFsOwotCi0gICAgUmVmPElQQzo6
Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwotICAgIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7Ci0KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZmZXI7Ci0gICAgV2ViQ29yZTo6Q0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb24geyB9OwotICAgIGludDY0X3QgbV9udW1iZXJPZkZy
YW1lcyB7IDAgfTsKLSAgICBib29sIG1faXNQbGF5aW5nIHsgZmFsc2UgfTsKLX07Ci0KLX0KLQot
I2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJM
RShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVySWRlbnRpZmllci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MTJhMDg0ZmJl
NTQ3OTA0NzRlNzBmNzJmNGJkNTAwMjljODE5YmU4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllci5oCisrKyAvZGV2L251bGwK
QEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlICwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUg
PHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1lbnVtIEF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllclR5cGUgeyB9OwotdXNpbmcgQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXJUeXBlPjsKLQotfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Cg==
</data>
<flag name="commit-queue"
          id="454397"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432375</attachid>
            <date>2021-06-28 02:28:44 -0700</date>
            <delta_ts>2021-06-29 00:25:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227438-20210628112842.patch</filename>
            <type>text/plain</type>
            <size>57045</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODBhMWI2M2FjYjAzMzVh
ZmYyZmYwMzRjNjc4MWRiNmE0ODUwYzJhNS4uMTgwNmE3ODE0MzlhN2FiYzk2YzJiZmYwNTk1Y2Q5
NTVjMDU4NzU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA2LTI4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIgYW5kIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyTWFuYWdlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjI3NDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckludGVybmFsVW5pdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbEF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpzdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpMb2NhbEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0Ojpz
dG9wKToKKyAgICAgICAgQWRkIHNvbWUgbG9nZ2luZy4KKwogMjAyMS0wNi0yNyAgQ29tbWl0IFF1
ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2
ZXJ0aW5nIHIyNzkzMjIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg3YzIyNDJlMGUyYWI5YjAxYzllYjBhYThkZjE3
Nzg5OTQwYWZlNDYuLmYyNWY3NDBhNDQzYmY0MmFiMDQ2MzgxZjI2ZjVmMDBjOTFkNmFmODggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMjEtMDYtMjggIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlciBhbmQgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2Vy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc0MzgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUg
Y29kZSBubyBsb25nZXIgZW5hYmxlZC4KKyAgICAgICAgVGhpcyBjb2RlIHdhcyBvYnNvbGV0ZWQg
YnkgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2Vy
IGFuZCBmcmllbmRzLgorICAgICAgICBVcGRhdGUgR1BVUHJvY2VzcyB0byBub3QgZXhpdCBpZiBS
ZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXIgaGFz
IHNvbWUgdW5pdHMsCisgICAgICAgIGxpa2Ugd2FzIGRvbmUgYnkgUmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFr
ZToKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6fkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjphbGxvd3NFeGl0VW5kZXJNZW1vcnlQcmVzc3VyZSBjb25zdCk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJv
Y2Vzczo6YXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJRdWV1ZSk6IERlbGV0ZWQuCisgICAg
ICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJy
dGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyLmg6IFJlbW92ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIubWVzc2FnZXMuaW46IFJlbW92ZWQuCisgICAgICAgICog
R1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRl
cm5hbFVuaXRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6cmVuZGVyQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVy
bmFsVW5pdE1hbmFnZXI6OlVuaXQ6OlVuaXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXI6OlVuaXQ6OnN0YXJ0
KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXIuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyOjpoYXNVbml0
cyk6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJNYW5hZ2VyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlck1hbmFnZXIubWVzc2FnZXMuaW46IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICh0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3
YXJkX2RlY2xhcmVkKToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2Vz
Q29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlci5jcHA6IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmg6IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllci5oOiBS
ZW1vdmVkLgorCiAyMDIxLTA2LTI3ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI3OTMyMi4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJu
YWxVbml0LmNwcAppbmRleCBjM2ZlODIxYjljNTIwYzkyMjRlNWRlODg4ZTUxOGMzMTk2ZjMxY2I1
Li4yNTIzOWNkNjU3NmJlNTc4MzJlNDM0MmE2NWYyODIyOGUyM2ExYTM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlckludGVybmFsVW5pdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5h
bFVuaXQuY3BwCkBAIC0xMTYsNiArMTE2LDcgQEAgdm9pZCBMb2NhbEF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpzZXRBdWRpb091dHB1dERldmljZShjb25zdAogCiB2
b2lkIExvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OnN0YXJ0
KCkKIHsKKyAgICBSRUxFQVNFX0xPR19JTkZPKFdlYlJUQywgIkxvY2FsQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OnN0YXJ0Iik7CiAgICAgaWYgKG1faXNTdGFydGVk
KQogICAgICAgICByZXR1cm47CiAKQEAgLTEzNSw2ICsxMzYsNyBAQCB2b2lkIExvY2FsQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6OnN0YXJ0KCkKIAogdm9pZCBMb2Nh
bEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0OjpzdG9wKCkKIHsKKyAg
ICBSRUxFQVNFX0xPR19JTkZPKFdlYlJUQywgIkxvY2FsQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJJbnRlcm5hbFVuaXQ6OnN0b3AiKTsKICAgICBpZiAoIW1fcmVtb3RlSU9Vbml0KQogICAg
ICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGY2MzEyODM4NTliODc3YmQ5Njg4
NjcxMjg5MDgwY2EyOTUxNzEzN2EuLjJhN2NiODU1YTg3ZGQ2MWFlZjY3MjY2MTgzZjUyNDE0YmM2
ZTMzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMTQzLDkgKzE0Myw3IEBAIHNldChXZWJLaXRf
TUVTU0FHRVNfSU5fRklMRVMKICAgICBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZVNvdXJjZUJ1ZmZl
clByb3h5CiAKICAgICBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eQotICAg
IEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyCiAg
ICAgR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJ
bnRlcm5hbFVuaXRNYW5hZ2VyCi0gICAgR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyCiAgICAgR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
TWVkaWFSZWNvcmRlcgogICAgIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJN
YW5hZ2VyCiAgICAgR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZGE4M2JiMmM1YmQxMWZkMDFlNTM5
M2ExZGYzNWMyNDlkZTc2ZGU4MS4uZmUzMjliODkwYTgxYjhkY2QzOGRkZmMwMWJkNTVjMzA0NWQ2
NmEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMjQ3LDExICsyNDcsOSBAQCBN
RVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMIFwKIAlHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eSBcCiAJ
R1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciBc
Ci0JR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJN
YW5hZ2VyIFwKIAlHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlciBc
CiAJR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIFwKIAlH
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyIFwKLQlHUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlciBcCiAJR1BVUHJvY2Vzcy93ZWJy
dGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2Vy
IFwKIAlHUFVQcm9jZXNzL0dQVVByb2Nlc3MgXAogCUdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1h
Z2VEZWNvZGVyQVZGUHJveHkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDE4ZmMxYTFhOWQ5OWIxY2MzOGNm
ZjE2NTk0ZDQwYmYyOTlmZGE3ZTUuLmVlYWUzMTY1ZTRlMjBhNGQzNjA2NTEzZTA4ZDZhMGUyNjdm
ZTY3MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTQzLDcgKzQzLDYgQEAKICNpbmNsdWRlICJSZW1vdGVB
dWRpb0hhcmR3YXJlTGlzdGVuZXJQcm94eS5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlci5oIgogI2luY2x1ZGUgIlJlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlck1lc3NhZ2Vz
LmgiCi0jaW5jbHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2Vy
LmgiCiAjaW5jbHVkZSAiUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgpAQCAtMjAyLDcgKzIwMSw2IEBAIEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoR1BVUHJvY2Vz
cyYgZ3B1UHJvY2VzcywgV2ViCiAgICAgLCBtX2xpYldlYlJUQ0NvZGVjc1Byb3h5KExpYldlYlJU
Q0NvZGVjc1Byb3h5OjpjcmVhdGUoKnRoaXMpKQogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0Ep
ICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgLCBtX2F1ZGlvVHJhY2tSZW5kZXJlck1hbmFn
ZXIoUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjpjcmVhdGUoKnRo
aXMpKQogICAgICwgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKFJlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OmNyZWF0ZSgqdGhpcykpCiAjZW5kaWYKICNpZiBF
TkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikgJiYgSEFWRShBVkFVRElPX1JPVVRJTkdfQVJCSVRF
UikKQEAgLTIzMiw3ICsyMzAsNiBAQCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp+R1BVQ29u
bmVjdGlvblRvV2ViUHJvY2VzcygpCiAgICAgbV9jb25uZWN0aW9uLT5pbnZhbGlkYXRlKCk7CiAK
ICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBtX2F1ZGlv
VHJhY2tSZW5kZXJlck1hbmFnZXItPmNsb3NlKCk7CiAgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyLT5jbG9zZSgpOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVT
RShMSUJXRUJSVEMpCkBAIC0zMjUsNyArMzIyLDcgQEAgYm9vbCBHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjphbGxvd3NFeGl0VW5kZXJNZW1vcnlQcmVzc3VyZSgpIGNvbnN0CiAjaWYgUExBVEZP
Uk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgaWYgKG1fdXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eSAmJiBtX3VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHktPmhhc1Nv
dXJjZVByb3hpZXMoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghbV9hdWRpb1Ry
YWNrUmVuZGVyZXJNYW5hZ2VyLT5hbGxvd3NFeGl0VW5kZXJNZW1vcnlQcmVzc3VyZSgpKQorICAg
IGlmIChtX2F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlciAm
JiBtX2F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlci0+aGFz
VW5pdHMoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghbV9zYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyLT5hbGxvd3NFeGl0VW5kZXJNZW1vcnlQcmVzc3VyZSgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBkYWMwOTdiNzFmMGJlMTBmNmM1Zjg4NDlj
NjUwNjI0ZDE0YjAyNDE1Li41ZmFkYTM1YzFiZjRiM2FiMjgwNmZiZDU3ZjBlYjY2MWUwMmZkZDI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmgKQEAgLTYwLDcgKzYwLDYgQEAgY2xhc3MgTGliV2ViUlRDQ29kZWNzUHJveHk7
CiBjbGFzcyBMb2NhbEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOwogY2xhc3MgUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI7CiBjbGFzcyBSZW1vdGVBdWRpb0hhcmR3YXJlTGlzdGVu
ZXJQcm94eTsKLWNsYXNzIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdl
cjsKIGNsYXNzIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0
TWFuYWdlcjsKIGNsYXNzIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OwogY2xhc3MgUmVtb3RlQXVk
aW9TZXNzaW9uUHJveHlNYW5hZ2VyOwpAQCAtMjQzLDcgKzI0Miw2IEBAIHByaXZhdGU6CiAjaWYg
UExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgc3RkOjp1bmlxdWVf
cHRyPFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk+IG1fdXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyPiBtX2F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVySW50ZXJuYWxVbml0TWFuYWdlcjsKLSAgICBSZWY8UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJNYW5hZ2VyPiBtX2F1ZGlvVHJhY2tSZW5kZXJlck1hbmFnZXI7CiAgICAgUmVm
PFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI+IG1fc2FtcGxlQnVmZmVyRGlz
cGxheUxheWVyTWFuYWdlcjsKICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUo
TUVESUFfU1RSRUFNKSAmJiBIQVZFKEFWQVNTRVRXUklURVJERUxFR0FURSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcAppbmRleCBiZDQxNDM3MWYwOWFjNzk5YzkzOTA4MzMw
YWE3NjkwZTE0YTcwZDZjLi40YTRhYzkxNGI0NjMxOTM1MjQ4OGRiZTE2MjZkZmYzZGRjYTI2NmJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCkBAIC00MDAsMTIgKzQw
MCw2IEBAIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgR1BVUHJvY2Vzczo6YXVkaW9T
ZXNzaW9uTWFuYWdlcigpIGNvbnN0CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
ICYmIFBMQVRGT1JNKENPQ09BKQotV29ya1F1ZXVlJiBHUFVQcm9jZXNzOjphdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlclF1ZXVlKCkKLXsKLSAgICBpZiAoIW1fYXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJRdWV1ZSkKLSAgICAgICAgbV9hdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
clF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoIlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyIiwgV29ya1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtRdWV1ZTo6UU9TOjpVc2VySW50
ZXJhY3RpdmUpOwotICAgIHJldHVybiAqbV9hdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclF1
ZXVlOwotfQogV29ya1F1ZXVlJiBHUFVQcm9jZXNzOjp2aWRlb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlclF1ZXVlKCkKIHsKICAgICBpZiAoIW1fdmlkZW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJR
dWV1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5oCmluZGV4IDVhMTk0YTA5MmYw
YWI3MTgzMWEwNDQxYzc5NmEwYmIyNWNjNzdkNWYuLjVlZDViM2VkMWUxNDdlNDYxOTNlNmI4NGQ4
M2Q4MDllMDg1OTBkMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQ
cm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuaApAQCAt
ODQsNyArODQsNiBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6Tm93UGxheWluZ01hbmFnZXImIG5v
d1BsYXlpbmdNYW5hZ2VyKCk7CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBQTEFURk9S
TShDT0NPQSkKLSAgICBXb3JrUXVldWUmIGF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyUXVl
dWUoKTsKICAgICBXb3JrUXVldWUmIHZpZGVvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyUXVldWUo
KTsKICNlbmRpZgogI2lmIFVTRShMSUJXRUJSVEMpICYmIFBMQVRGT1JNKENPQ09BKQpAQCAtMTY0
LDcgKzE2Myw2IEBAIHByaXZhdGU6CiAgICAgfTsKICAgICBIYXNoTWFwPFdlYkNvcmU6OlByb2Nl
c3NJZGVudGlmaWVyLCBNZWRpYUNhcHR1cmVBY2Nlc3M+IG1fbWVkaWFDYXB0dXJlQWNjZXNzTWFw
OwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFBMQVRGT1JNKENPQ09BKQotICAgIFJlZlB0
cjxXb3JrUXVldWU+IG1fYXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJRdWV1ZTsKICAgICBS
ZWZQdHI8V29ya1F1ZXVlPiBtX3ZpZGVvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyUXVldWU7CiAj
ZW5kaWYKICAgICB1aW50NjRfdCBtX29yaWVudGF0aW9uIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZWM2MDM2MDIwYmQyOWYyYjJmNDhiNmJmY2Y4YjE0YTk3MjRhOTU2YS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDEyMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmgiCi0KLSNp
ZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFf
U1RSRUFNKQotCi0jaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIlJlbW90ZUF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oIgotI2luY2x1ZGUgIlNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9BdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KLQotI2RlZmluZSBNRVNTQUdFX0NIRUNLKGFz
c2VydGlvbikgTUVTU0FHRV9DSEVDS19CQVNFKGFzc2VydGlvbiwgKCZtX21hbmFnZXIuY29ubmVj
dGlvbigpKSkKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
LQotI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAotc3RhdGljIGNvbnN0IHZvaWQqIG5leHRMb2dJ
ZGVudGlmaWVyKCkKLXsKLSAgICBzdGF0aWMgdWludDY0X3QgbG9nSWRlbnRpZmllciA9IGNyeXB0
b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyKCk7Ci0gICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3Qgdm9pZCo+KCsrbG9nSWRlbnRpZmllcik7Ci19Ci0KLXN0YXRpYyBSZWZQdHI8TG9nZ2Vy
PiYgbnVsbExvZ2dlcigpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZlB0cjxMb2dn
ZXI+PiBsb2dnZXI7Ci0gICAgcmV0dXJuIGxvZ2dlcjsKLX0KLSNlbmRpZgotCi1SZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXIoUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyJiBtYW5hZ2Vy
KQotICAgIDogbV9tYW5hZ2VyKG1hbmFnZXIpCi0gICAgLCBtX3JlbmRlcmVyKFdlYkNvcmU6OkF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpjcmVhdGUoKSkKLSAgICAsIG1fcmluZ0J1ZmZl
cihtYWtlVW5pcXVlUmVmPENBUmluZ0J1ZmZlcj4oKSkKLXsKLSAgICBBU1NFUlQobV9yZW5kZXJl
cik7Ci0KLSNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKLSAgICBpZiAoIW51bGxMb2dnZXIoKS5n
ZXQoKSkgewotICAgICAgICBudWxsTG9nZ2VyKCkgPSBMb2dnZXI6OmNyZWF0ZSh0aGlzKTsKLSAg
ICAgICAgbnVsbExvZ2dlcigpLT5zZXRFbmFibGVkKHRoaXMsIGZhbHNlKTsKLSAgICB9Ci0gICAg
bV9yZW5kZXJlci0+c2V0TG9nZ2VyKCpudWxsTG9nZ2VyKCksIG5leHRMb2dJZGVudGlmaWVyKCkp
OwotI2VuZGlmCi19Ci0KLVJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjp+UmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIoKQotewotICAgIG1fcmVuZGVyZXItPmNs
ZWFyKCk7Ci19Ci0KLXZvaWQgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OnN0
YXJ0KCkKLXsKLSAgICBtX3JlbmRlcmVyLT5zdGFydChbXSB7IH0pOwotfQotCi12b2lkIFJlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzdG9wKCkKLXsKLSAgICBtX3JlbmRlcmVy
LT5zdG9wKCk7Ci19Ci0KLXZvaWQgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6
OmNsZWFyKCkKLXsKLSAgICBtX3JlbmRlcmVyLT5jbGVhcigpOwotfQotCi12b2lkIFJlbW90ZUF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzZXRWb2x1bWUoZmxvYXQgdmFsdWUpCi17Ci0g
ICAgbV9yZW5kZXJlci0+c2V0Vm9sdW1lKHZhbHVlKTsKLX0KLQotdm9pZCBSZW1vdGVBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6YXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQoY29uc3Qg
U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmIGlwY0hhbmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRp
b1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMp
Ci17Ci0gICAgTUVTU0FHRV9DSEVDSyhXZWJBdWRpb0J1ZmZlckxpc3Q6OmlzU3VwcG9ydGVkRGVz
Y3JpcHRpb24oZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKSk7Ci0gICAgbV9kZXNjcmlwdGlv
biA9IGRlc2NyaXB0aW9uOwotCi0gICAgbV9yaW5nQnVmZmVyID0gQ0FSaW5nQnVmZmVyOjphZG9w
dFN0b3JhZ2UobWFrZVVuaXF1ZVJlZjxSZWFkT25seVNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihp
cGNIYW5kbGUuaGFuZGxlKSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKLSAgICBtX2F1
ZGlvQnVmZmVyTGlzdCA9IG1ha2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0PihtX2Rlc2NyaXB0
aW9uKTsKLX0KLQotdm9pZCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6YXVk
aW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSB0aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1l
cykKLXsKLSAgICBNRVNTQUdFX0NIRUNLKG1fYXVkaW9CdWZmZXJMaXN0KTsKLSAgICBNRVNTQUdF
X0NIRUNLKFdlYkF1ZGlvQnVmZmVyTGlzdDo6aXNTdXBwb3J0ZWREZXNjcmlwdGlvbihtX2Rlc2Ny
aXB0aW9uLCBudW1iZXJPZkZyYW1lcykpOwotCi0gICAgbV9hdWRpb0J1ZmZlckxpc3QtPnNldFNh
bXBsZUNvdW50KG51bWJlck9mRnJhbWVzKTsKLSAgICBtX3JpbmdCdWZmZXItPmZldGNoKG1fYXVk
aW9CdWZmZXJMaXN0LT5saXN0KCksIG51bWJlck9mRnJhbWVzLCB0aW1lLnRpbWVWYWx1ZSgpKTsK
LQotICAgIG1fcmVuZGVyZXItPnB1c2hTYW1wbGVzKHRpbWUsICptX2F1ZGlvQnVmZmVyTGlzdCwg
bV9kZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOwotfQotCi19Ci0KLSN1bmRlZiBNRVNTQUdF
X0NIRUNLCi0KLSNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNT
KSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYzZkOWYzNDk4NGQ3Zjkw
YzZlMDI3YTFkNmM0YWQ4NDZmM2ZmNGY0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBF
TkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlICJN
ZXNzYWdlUmVjZWl2ZXIuaCIKLSNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKLSNpbmNsdWRlIDxX
ZWJDb3JlL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oPgotI2luY2x1ZGUgPHd0Zi9NZWRpYVRp
bWUuaD4KLSNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LWNsYXNzIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOwotY2xhc3MgQ0FSaW5nQnVmZmVy
OwotY2xhc3MgV2ViQXVkaW9CdWZmZXJMaXN0OwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQot
Y2xhc3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOwotY2xhc3Mg
U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U7Ci0KLWNsYXNzIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyIHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAg
ICBleHBsaWNpdCBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcihSZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXImKTsKLSAgICB+UmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXIoKTsKLQotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7Ci0KLXByaXZhdGU6Ci0gICAgLy8gSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIKLSAgICB2b2lkIHN0YXJ0KCk7Ci0gICAgdm9pZCBzdG9wKCk7Ci0gICAg
dm9pZCBjbGVhcigpOwotICAgIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KTsKLSAgICB2b2lkIGF1ZGlv
U2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiwgY29u
c3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgdWludDY0X3QgbnVtYmVyT2ZG
cmFtZXMpOwotICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSwgdWludDY0
X3QgbnVtYmVyT2ZGcmFtZXMpOwotCi0gICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJNYW5hZ2VyJiBtX21hbmFnZXI7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyPiBtX3JlbmRlcmVyOwotICAgIFdlYkNvcmU6OkNB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uOwotICAgIFVuaXF1ZVJlZjxXZWJD
b3JlOjpDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2Vi
Q29yZTo6V2ViQXVkaW9CdWZmZXJMaXN0PiBtX2F1ZGlvQnVmZmVyTGlzdDsKLX07Ci0KLX0KLQot
I2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJM
RShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlci5tZXNzYWdlcy5pbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDdhM2Ey
ODRmMDVmOTc0MTExNDI1NTA1MzY4YWZkY2NmMGFiZjFhYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLm1lc3NhZ2VzLmluCisrKyAvZGV2
L251bGwKQEAgLTEsMzcgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBt
ZXQ6Ci0jIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0jIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
IyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0jIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotIyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0jIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0jIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotIyBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0jIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLQotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJM
RShNRURJQV9TVFJFQU0pCi0KLW1lc3NhZ2VzIC0+IFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyIE5vdFJlZkNvdW50ZWQgewotICAgIFN0YXJ0KCkKLSAgICBTdG9wKCkKLSAgICBD
bGVhcigpCi0KLSAgICBTZXRWb2x1bWUoZmxvYXQgdmFsdWUpCi0KLSAgICBBdWRpb1NhbXBsZXNT
dG9yYWdlQ2hhbmdlZChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHN0b3JhZ2VIYW5k
bGUsIFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgdWludDY0
X3QgbnVtYmVyT2ZGcmFtZXMpCi0gICAgQXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhVGltZSB0
aW1lLCB1aW50NjRfdCBudW1iZXJPZkZyYW1lcykKLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0
TWFuYWdlci5jcHAKaW5kZXggODE2N2UyYTA3MDg1NTJhYzU4ZjM2YmZjM2EyYThhNDE0YTVmMTA2
MS4uYjNjNTY3ODBkZmE1YmQ0YmUxNTY5M2M2Y2RjMTNlYjVlMmVkNDNmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5h
bFVuaXRNYW5hZ2VyLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkdQVVByb2Nlc3Mu
aCIKICNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
SVBDU2VtYXBob3JlLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9VdGlsaXRpZXMu
aD4KQEAgLTExNCw3ICsxMTUsNyBAQCB2b2lkIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVySW50ZXJuYWxVbml0TWFuYWdlcjo6c2V0QXVkaW9PdXRwdXREZXZpYwogICAgICAgICB1
bml0LT5zZXRBdWRpb091dHB1dERldmljZShkZXZpY2VJZCk7CiB9CiAKLXN0YXRpYyBBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdDo6UmVuZGVyQ2FsbGJhY2sgcmVuZGVy
Q2FsbGJhY2soUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRN
YW5hZ2VyOjpVbml0JiB1bml0KQorc3RhdGljIFdlYkNvcmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVySW50ZXJuYWxVbml0OjpSZW5kZXJDYWxsYmFjayByZW5kZXJDYWxsYmFjayhSZW1v
dGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXI6OlVuaXQm
IHVuaXQpCiB7CiAgICAgcmV0dXJuIFsmdW5pdF0oYXV0byBzYW1wbGVDb3VudCwgYXV0byYgbGlz
dCwgYXV0byBzYW1wbGVUaW1lLCBhdXRvIGhvc3RUaW1lLCBhdXRvJiBmbGFncykgewogICAgICAg
ICByZXR1cm4gdW5pdC5yZW5kZXIoc2FtcGxlQ291bnQsIGxpc3QsIHNhbXBsZVRpbWUsIGhvc3RU
aW1lLCBmbGFncyk7CkBAIC0xMjgsMTAgKzEyOSwxMSBAQCBSZW1vdGVBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXI6OlVuaXQ6OlVuaXQoQXVkaW9NZWRpYVN0
cgogewogICAgIG1fbG9jYWxVbml0LT5yZXRyaWV2ZUZvcm1hdERlc2NyaXB0aW9uKFt3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKHRoaXMpLCB0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
XShhdXRvJiYgZGVzY3JpcHRpb24pIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzIHx8
ICFkZXNjcmlwdGlvbikgeworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUYoIWRlc2NyaXB0aW9u
LCBXZWJSVEMsICJSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5p
dE1hbmFnZXI6OlVuaXQgdW5hYmxlIHRvIGdldCBmb3JtYXQgZGVzY3JpcHRpb24iKTsKICAgICAg
ICAgICAgIGNhbGxiYWNrKHsgfSwgMCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
LSAgICAgICAgbV9mcmFtZUNodW5rU2l6ZSA9IHN0ZDo6bWF4KFdlYkNvcmU6OkF1ZGlvVXRpbGl0
aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSwgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkucHJl
ZmVycmVkQnVmZmVyU2l6ZSgpKTsKKyAgICAgICAgbV9mcmFtZUNodW5rU2l6ZSA9IHN0ZDo6bWF4
KFdlYkNvcmU6OkF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSwgV2ViQ29yZTo6QXVk
aW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9uKCkucHJlZmVycmVkQnVmZmVyU2l6ZSgpKTsKICAgICAg
ICAgY2FsbGJhY2soKmRlc2NyaXB0aW9uLCBtX2ZyYW1lQ2h1bmtTaXplKTsKICAgICB9KTsKIH0K
QEAgLTE0OCw3ICsxNTAsNyBAQCB2b2lkIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVySW50ZXJuYWxVbml0TWFuYWdlcjo6VW5pdDo6c3RhcnQoY29uc3QgUwogCiAgICAgbV9yZWFk
T2Zmc2V0ID0gMDsKICAgICBtX2lzUGxheWluZyA9IHRydWU7Ci0gICAgbV9yaW5nQnVmZmVyID0g
Q0FSaW5nQnVmZmVyOjphZG9wdFN0b3JhZ2UobWFrZVVuaXF1ZVJlZjxSZWFkT25seVNoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlPihoYW5kbGUpLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpLm1v
dmVUb1VuaXF1ZVB0cigpOworICAgIG1fcmluZ0J1ZmZlciA9IFdlYkNvcmU6OkNBUmluZ0J1ZmZl
cjo6YWRvcHRTdG9yYWdlKG1ha2VVbmlxdWVSZWY8UmVhZE9ubHlTaGFyZWRSaW5nQnVmZmVyU3Rv
cmFnZT4oaGFuZGxlKSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKS5tb3ZlVG9VbmlxdWVQ
dHIoKTsKICAgICBtX3JlbmRlclNlbWFwaG9yZSA9IFdURk1vdmUoc2VtYXBob3JlKTsKICAgICBt
X2xvY2FsVW5pdC0+c3RhcnQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVu
aXRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlci5oCmluZGV4IDU5NWE3
ZGQyNjM3NmE5N2MyMWQ5YjYwYWNkZThkMWIzY2YwYWE5NDIuLjUyZGM4ZWZkZGE5NmQzM2I4ZGY4
ZTBhNjE3OGU5Zjk5MjQ5OWI3YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRN
YW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXIuaApAQCAtNTcsNiAr
NTcsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYpOwogCisgICAgYm9vbCBoYXNVbml0cygpIHsgcmV0dXJuICFt
X3VuaXRzLmlzRW1wdHkoKTsgfQogICAgIGNsYXNzIFVuaXQ7CiAKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFlZGNhMDIyZmIyZDdkNTZlOWY5YTUzOTYyOWIyNzZi
NjdjYzEyMTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlck1hbmFnZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsOTggKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSZW1vdGVBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuaCIKLQotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBF
TkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlICJE
ZWNvZGVyLmgiCi0jaW5jbHVkZSAiR1BVUHJvY2Vzcy5oIgotI2luY2x1ZGUgIlJlbW90ZUF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmgiCi0jaW5jbHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJSZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1lc3NhZ2VzLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQg
ewotCi0KLVJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6UmVtb3Rl
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyKEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MmIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCi0gICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MoY29ubmVjdGlvblRvV2ViUHJvY2VzcykKLSAgICAsIG1fcXVldWUoY29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5ncHVQcm9jZXNzKCkuYXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJRdWV1
ZSgpKQotewotfQotCi12b2lkIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFu
YWdlcjo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMoKQotewotICAgIG1fY29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jb25uZWN0aW9uKCkuYWRkVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1v
dGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0
aGlzKTsKLSAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLmFkZFRocmVh
ZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOwotfQotCi1SZW1vdGVB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI6On5SZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIoKSA9IGRlZmF1bHQ7Ci0KLXZvaWQgUmVtb3RlQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjpjbG9zZSgpCi17Ci0gICAgbV9jb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCkpOwotICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCku
cmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Ci0gICAgZGlz
cGF0Y2hUb1RocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7Ci0g
ICAgICAgIG1fcmVuZGVyZXJzLmNsZWFyKCk7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjpkaXNwYXRjaFRvVGhyZWFkKEZ1bmN0
aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKLXsKLSAgICBtX3F1ZXVlLT5kaXNwYXRjaChXVEZNb3Zl
KGNhbGxiYWNrKSk7Ci19Ci0KLWJvb2wgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJNYW5hZ2VyOjpkaXNwYXRjaE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJ
UEM6OkRlY29kZXImIGRlY29kZXIpCi17Ci0gICAgaWYgKCFkZWNvZGVyLmRlc3RpbmF0aW9uSUQo
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgYXV0byBpZGVudGlmaWVyID0gbWFrZU9i
amVjdElkZW50aWZpZXI8QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyVHlw
ZT4oZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwotICAgIGlmIChhdXRvKiByZW5kZXJlciA9IG1f
cmVuZGVyZXJzLmdldChpZGVudGlmaWVyKSkKLSAgICAgICAgcmVuZGVyZXItPmRpZFJlY2VpdmVN
ZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lk
IFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjo6Y3JlYXRlUmVuZGVy
ZXIoQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCi17
Ci0gICAgQVNTRVJUKCFtX3JlbmRlcmVycy5jb250YWlucyhpZGVudGlmaWVyKSk7Ci0gICAgbV9y
ZW5kZXJlcnMuYWRkKGlkZW50aWZpZXIsIG1ha2VVbmlxdWU8UmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXI+KCp0aGlzKSk7Ci19Ci0KLXZvaWQgUmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJNYW5hZ2VyOjpyZWxlYXNlUmVuZGVyZXIoQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCi17Ci0gICAgQVNTRVJUKG1fcmVuZGVy
ZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKLSAgICBtX3JlbmRlcmVycy5yZW1vdmUoaWRlbnRp
Zmllcik7Ci19Ci0KLWJvb2wgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5h
Z2VyOjphbGxvd3NFeGl0VW5kZXJNZW1vcnlQcmVzc3VyZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IG1fcmVuZGVyZXJzLmlzRW1wdHkoKTsKLX0KLQotfQotCi0jZW5kaWYgLy8gUExBVEZPUk0oQ09D
T0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMzE0OTEyNmI2MzMwNTdiOTllNzc4MmI4ZjVjZWMyNThj
YTBkMjgxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJNYW5hZ2VyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4NSArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSAiQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgot
I2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKLSNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0KLW5hbWVzcGFjZSBJUEMgewotY2xh
c3MgQ29ubmVjdGlvbjsKLWNsYXNzIERlY29kZXI7Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewot
Ci1jbGFzcyBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjsKLQotY2xhc3MgUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyIGZpbmFsIDogcHVibGljIElQ
Qzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZCB7Ci0gICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJiBwcm9jZXNzKQotICAgIHsKLSAgICAgICAgYXV0byBpbnN0YW5jZSA9IGFkb3B0
UmVmKCpuZXcgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyKHByb2Nl
c3MpKTsKLSAgICAgICAgaW5zdGFuY2UtPnN0YXJ0TGlzdGVuaW5nRm9ySVBDKCk7Ci0gICAgICAg
IHJldHVybiBpbnN0YW5jZTsKLSAgICB9Ci0gICAgflJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyTWFuYWdlcigpOwotCi0gICAgdm9pZCBkaWRSZWNlaXZlUmVuZGVyZXJNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2VGcm9tV2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVj
b2RlciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsg
fQotCi0gICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9j
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKTsgfQotCi0gICAgdm9pZCBjbG9zZSgp
OwotCi0gICAgYm9vbCBhbGxvd3NFeGl0VW5kZXJNZW1vcnlQcmVzc3VyZSgpIGNvbnN0OwotCi1w
cml2YXRlOgotICAgIGV4cGxpY2l0IFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
TWFuYWdlcihHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7Ci0gICAgdm9pZCBzdGFydExpc3Rl
bmluZ0ZvcklQQygpOwotCi0gICAgLy8gSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVj
ZWl2ZXIKLSAgICB2b2lkIGRpc3BhdGNoVG9UaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmKSBmaW5h
bDsKLQotICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKLSAgICBib29sIGRp
c3BhdGNoTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKLSAgICB2b2lk
IGNyZWF0ZVJlbmRlcmVyKEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllcik7
Ci0gICAgdm9pZCByZWxlYXNlUmVuZGVyZXIoQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJ
ZGVudGlmaWVyKTsKLQotICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIG1fY29ubmVjdGlv
blRvV2ViUHJvY2VzczsKLSAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwotICAgIEhhc2hNYXA8
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI+PiBtX3JlbmRlcmVyczsKLX07Ci0K
LX0KLQotI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYm
IEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA3MzVkNmI3ZjViYmYxYzZjZmRlNWFiZDhjZWZjYWEwMWQzNGNkNTY2Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJN
YW5hZ2VyLm1lc3NhZ2VzLmluCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotIyBDb3B5
cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMg
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0jIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0jIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0jIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0jIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
IyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotIyBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0jIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBF
TkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLW1lc3NhZ2VzIC0+
IFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlciBXYW50c0FzeW5jRGlz
cGF0Y2hNZXNzYWdlIHsKLSAgICBDcmVhdGVSZW5kZXJlcihXZWJLaXQ6OkF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVySWRlbnRpZmllciBpZCkKLSAgICBSZWxlYXNlUmVuZGVyZXIoV2ViS2l0
OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIgaWQpCi19Ci0KLSNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBi
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggMjc4M2M0ODgx
OWQ4MzhlMTcxYWY5MjhiYTNhNjgxYTIwNzQ2ZjQ3ZC4uZDM4NjU4M2U2NTM2ODZmYTUyMTU2ZjNk
NjQxNzQxMDc0YWJiZDg4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5CkBAIC0zMDcsNyArMzA3LDYgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRf
ZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXInLAogICAgICAgICAnV2ViQ29yZTo6V2ViU29ja2V0SWRlbnRpZmllcicsCiAgICAgICAgICdX
ZWJLaXQ6OkFjdGl2aXR5U3RhdGVDaGFuZ2VJRCcsCi0gICAgICAgICdXZWJLaXQ6OkF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OkF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0SWRlbnRpZmllcicsCiAgICAgICAg
ICdXZWJLaXQ6OkNvbnRlbnRXb3JsZElkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpEaXNw
bGF5TGlua09ic2VydmVySUQnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4
dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggOTJlMTQ3YjhmM2IwNGE3Y2NlNzZh
ZGU4MWI4NTY2ZmE5NDdmYTRlOC4uYTg2NGE0NGM4NTg3OWE1ZDJkNDQ2ZWRhODFlMGFlMTRmNmVl
OTc2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CkBAIC01Miw4ICs1Miw2IEBAIEdQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyUHJveHkuY3BwCiBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZVNvdXJjZUJ1ZmZlclByb3h5LmNwcAogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQ
cm94eS5jcHAKIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcAotR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCi1H
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFn
ZXIuY3BwCiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcAogR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuY3BwCiBHUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCkBAIC02MTMsNyArNjExLDYg
QEAgV2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5jcHAKIFdl
YlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuY3BwCiBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAKIFdlYlByb2Nlc3MvR1BVL21l
ZGlhL1dlYk1lZGlhU3RyYXRlZ3kuY3BwCi1XZWJQcm9jZXNzL0dQVS93ZWJydGMvQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRD
Q29kZWNzLmNwcAogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNw
cAogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291
cmNlc0NvY29hLnR4dAppbmRleCA3NTk1MTkxZmNjYTE3MjJkYzNjNDM5MjNiZWJjNTRjMzFiZTAy
MGZiLi4wNjRlZWI1NzhlZjcxZjQ1MjhkN2ZiYmM1OGRiMzYwNDYzMTI5OWNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0CkBAIC03MTksOCArNzE5LDYgQEAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb0hhcmR3YXJlTGlzdGVuZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb1Nlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwCiBS
ZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKLVJlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKLVJlbW90ZUF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVk
aW9Tb3VyY2VQcm92aWRlck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVJbWFnZURl
Y29kZXJBVkZQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUltYWdlRGVjb2RlckFWRk1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjZTQ1NTA3Y2QyMzQ1MGM3ZWU4MThhMTYxZGRhZjI0
MDgzODcxN2YwLi5kZGVkYzQ4YjRkNzg1M2E5MTc0MTU5NzMzNWMzYzJhMDFjNWRjMWIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM4
MzMsMTIgKzM4MzMsNiBAQAogCQk0MUQxMjlEOTFGM0QxMDE0MDBEMTVFNDcgLyogV2ViQ2FjaGVT
dG9yYWdlUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFENUM2RDgyMzhFQjIwRDAwQjlCM0NC
IC8qIFNlcnZpY2VXb3JrZXJTb2Z0VXBkYXRlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJTb2Z0VXBkYXRlTG9hZGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxRDVDNkQ5MjM4RUIyMEUwMEI5QjNDQiAvKiBTZXJ2aWNlV29y
a2VyU29mdFVwZGF0ZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTQxRDY0NTUyMjNDQ0I5MjEwMDQ4NkUwRSAvKiBSZW1vdGVBdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBSZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlci5tZXNzYWdlcy5pbjsgcGF0aCA9IEdQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gU09VUkNFX1JPT1Q7IH07Ci0JCTQxRDY0NTUzMjNDQ0I5MjEwMDQ4NkUwRSAvKiBSZW1vdGVB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5oOyBwYXRoID0gR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaDsgc291cmNlVHJlZSA9IFNPVVJDRV9S
T09UOyB9OwotCQk0MUQ2NDU1NDIzQ0NCOTIyMDA0ODZFMEUgLyogUmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwOyBwYXRoID0gR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwOyBzb3VyY2VUcmVlID0gU09VUkNFX1JP
T1Q7IH07Ci0JCTQxRDY0NTU1MjNDQ0I5NjkwMDQ4NkUwRSAvKiBSZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLm1lc3NhZ2VzLmlu
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MUQ2NDU1NjIzQ0NCOTY5MDA0ODZFMEUg
LyogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxRDY0
NTU3MjNDQ0I5NjkwMDQ4NkUwRSAvKiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxREM0NTk0MUUzRDZFMUUwMEIxMUY1MSAvKiBOZXR3b3JrUlRDUHJvdmlkZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya1JUQ1Byb3ZpZGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxREM0NTk1MUUzRDZFMUUwMEIxMUY1MSAvKiBO
ZXR3b3JrUlRDUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDFEQzQ1OTgxRTNENkVENjAwQjExRjUxIC8qIE5ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW47
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zODYwLDkgKzM4NTQsNiBAQAogCQk0MUZC
RTgyMjIwNkRBNzlDMDAwRjA3NDEgLyogTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1h
bmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGQkU4MjMyMDZEQTc5QzAw
MEYwNzQxIC8qIE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUZCRTgyNDIwNkRBNzlDMDAwRjA3
NDEgLyogTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MUZDRDZBRDIzQ0NDMjYwMDBDNjI1NjcgLyog
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJNDFGQ0Q2QUUyM0NDQzI2MTAwQzYyNTY3IC8qIEF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJNDFGQ0Q2QUYyM0NDQzI2MTAwQzYyNTY3IC8qIEF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDFGQ0Q2QjMyM0NEQzYwNDAwQzYyNTY3IC8qIFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGQ0Q2QjQy
M0NEQ0FDMjAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGQ0Q2QjUyM0NERTFDNjAwQzYy
NTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtODQ1OSw5ICs4NDUwLDYgQEAKIAkJNDE3MjE5ODgyM0I2MTI2MTAwQUU1
Njg2IC8qIHdlYnJ0YyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
Ci0JCQkJNDFGQ0Q2QUUyM0NDQzI2MTAwQzYyNTY3IC8qIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyLmNwcCAqLywKLQkJCQk0MUZDRDZBRDIzQ0NDMjYwMDBDNjI1NjcgLyogQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXIuaCAqLywKLQkJCQk0MUZDRDZBRjIzQ0NDMjYxMDBDNjI1Njcg
LyogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyLmggKi8sCiAJCQkJNDFD
M0I4ODcyNjQ0NEFEMzAwNEVENERFIC8qIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50
ZXJuYWxVbml0SWRlbnRpZmllci5oICovLAogCQkJCTQxQzNCODg2MjY0NDRBQUMwMDRFRDRERSAv
KiBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXIuY3BwICov
LAogCQkJCTQxQzNCODg1MjY0NDRBQUIwMDRFRDRERSAvKiBBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXIuaCAqLywKQEAgLTg0OTMsMTUgKzg0ODEsOSBAQAog
CQkJCTQxRTBBN0M2MjNCNjM5NzgwMDU2MTA2MCAvKiBMaWJXZWJSVENDb2RlY3NQcm94eS5oICov
LAogCQkJCTQxRTBBN0M3MjNCNjM5NzkwMDU2MTA2MCAvKiBMaWJXZWJSVENDb2RlY3NQcm94eS5t
ZXNzYWdlcy5pbiAqLywKIAkJCQk0MUUwQTdDODIzQjYzOTc5MDA1NjEwNjAgLyogTGliV2ViUlRD
Q29kZWNzUHJveHkubW0gKi8sCi0JCQkJNDFENjQ1NTQyM0NDQjkyMjAwNDg2RTBFIC8qIFJlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmNwcCAqLywKLQkJCQk0MUQ2NDU1MzIzQ0NC
OTIxMDA0ODZFMEUgLyogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCAqLywK
LQkJCQk0MUQ2NDU1MjIzQ0NCOTIxMDA0ODZFMEUgLyogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJNDFDM0I4OTEyNjQ5M0I3QjAwNEVENERF
IC8qIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdl
ci5jcHAgKi8sCiAJCQkJNDFDM0I4OTAyNjQ5M0I3QjAwNEVENERFIC8qIFJlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlci5oICovLAogCQkJCTQxQzNC
ODk0MjY0OTNCN0MwMDRFRDRERSAvKiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ckludGVybmFsVW5pdE1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCi0JCQkJNDFENjQ1NTYyM0NDQjk2
OTAwNDg2RTBFIC8qIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5j
cHAgKi8sCi0JCQkJNDFENjQ1NTcyM0NDQjk2OTAwNDg2RTBFIC8qIFJlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oICovLAotCQkJCTQxRDY0NTU1MjNDQ0I5NjkwMDQ4
NkUwRSAvKiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIubWVzc2Fn
ZXMuaW4gKi8sCiAJCQkJNDE3NkU4OUQyM0MzNzZENTAwM0U4M0ZFIC8qIFJlbW90ZU1lZGlhUmVj
b3JkZXIuY3BwICovLAogCQkJCTQxNzZFODk4MjNDMzY2NzcwMDNFODNGRSAvKiBSZW1vdGVNZWRp
YVJlY29yZGVyLmggKi8sCiAJCQkJNDE3NkU4OUMyM0MzNzQ3OTAwM0U4M0ZFIC8qIFJlbW90ZU1l
ZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4gKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA3OGEwMmZkOTM2NzVk
ZjMyNDQzZWE2NDI5MTlhNTllMWIzY2I4YTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTM2ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCIKLQotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFC
TEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlICJHUFVQ
cm9jZXNzQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyTWFuYWdlck1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKLSNp
bmNsdWRlIDxXZWJDb3JlL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVm
ZmVyTGlzdC5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyPiBBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlcjo6Y3JlYXRlKCkKLXsKLSAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPEF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyPihuZXcgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIg
eyBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNv
bm5lY3Rpb24oKSB9KTsKLX0KLQotQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OkF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlv
bikKLSAgICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQotICAgICwgbV9pZGVu
dGlmaWVyKEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySWRlbnRpZmllcjo6Z2VuZXJhdGUo
KSkKLSAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlPFdlYkNvcmU6OkNBUmluZ0J1ZmZlcj4o
bWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4oc3RkOjpiaW5kKCZBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6c3RvcmFnZUNoYW5nZWQsIHRoaXMsIHN0ZDo6cGxhY2Vo
b2xkZXJzOjpfMSwgc3RkOjpwbGFjZWhvbGRlcnM6Ol8yLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzMp
KSkpCi17Ci0gICAgaW5pdGlhbGl6ZSgpOwotfQotCi1BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlcjo6fkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyKCkKLXsKLSAgICBpZiAoYXV0byog
Y29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmV4aXN0aW5nR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24oKSkKLSAgICAgICAgY29ubmVjdGlvbi0+cmVtb3ZlQ2xpZW50KCp0aGlzKTsKLSAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyTWFuYWdlcjo6UmVsZWFzZVJlbmRlcmVyIHsgbV9pZGVudGlmaWVyIH0sIDApOwot
fQotCi12b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjppbml0aWFsaXplKCkKLXsK
LSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigp
LmFkZENsaWVudCgqdGhpcyk7Ci0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1v
dGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI6OkNyZWF0ZVJlbmRlcmVyIHsg
bV9pZGVudGlmaWVyIH0sIDApOwotfQotCi12b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyOjpzdGFydChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCi17Ci0gICAg
bV9pc1BsYXlpbmcgPSB0cnVlOwotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OlN0YXJ0IHsgfSwgbV9pZGVudGlmaWVy
KTsKLSAgICBjYWxsYmFjaygpOwotfQotCi12b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyOjpzdG9wKCkKLXsKLSAgICBtX2lzUGxheWluZyA9IGZhbHNlOwotICAgIG1fY29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OlN0
b3AgeyB9LCBtX2lkZW50aWZpZXIpOwotfQotCi12b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyOjpjbGVhcigpCi17Ci0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1v
dGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6Q2xlYXIgeyB9LCBtX2lkZW50aWZpZXIp
OwotfQotCi12b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzZXRWb2x1bWUoZmxv
YXQgdmFsdWUpCi17Ci0gICAgV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6
OnNldFZvbHVtZSh2YWx1ZSk7Ci0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1v
dGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6U2V0Vm9sdW1lIHsgdmFsdWUgfSwgbV9p
ZGVudGlmaWVyKTsKLX0KLQotdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6cHVz
aFNhbXBsZXMoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUF1
ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBXZWJDb3JlOjpBdWRpb1N0cmVhbURlc2NyaXB0aW9u
JiBkZXNjcmlwdGlvbiwgc2l6ZV90IG51bWJlck9mRnJhbWVzKQotewotICAgIGlmICghbV9pc1Bs
YXlpbmcpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChtX2Rlc2NyaXB0aW9uICE9IGRlc2Ny
aXB0aW9uKSB7Ci0gICAgICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhy
ZWFkU2NvcGUgc2NvcGU7Ci0gICAgICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2Ny
aXB0aW9uKCkudHlwZSA9PSBXZWJDb3JlOjpQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3Ry
ZWFtQmFzaWNUeXBlKTsKLSAgICAgICAgbV9kZXNjcmlwdGlvbiA9ICpXVEY6OmdldDxjb25zdCBB
dWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0
aW9uKCkuZGVzY3JpcHRpb24pOwotCi0gICAgICAgIC8vIEFsbG9jYXRlIGEgcmluZyBidWZmZXIg
bGFyZ2UgZW5vdWdoIHRvIGNvbnRhaW4gMiBzZWNvbmRzIG9mIGF1ZGlvLgotICAgICAgICBtX251
bWJlck9mRnJhbWVzID0gbV9kZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAyOwotICAgICAgICBt
X3JpbmdCdWZmZXItPmFsbG9jYXRlKG1fZGVzY3JpcHRpb24sIG1fbnVtYmVyT2ZGcmFtZXMpOwot
ICAgIH0KLQotICAgIEFTU0VSVChpczxXZWJDb3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+KGF1ZGlv
RGF0YSkpOwotICAgIG1fcmluZ0J1ZmZlci0+c3RvcmUoZG93bmNhc3Q8V2ViQ29yZTo6V2ViQXVk
aW9CdWZmZXJMaXN0PihhdWRpb0RhdGEpLmxpc3QoKSwgbnVtYmVyT2ZGcmFtZXMsIHRpbWUudGlt
ZVZhbHVlKCkpOwotCi0gICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJl
YWRTY29wZSBzY29wZTsKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZUF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpBdWRpb1NhbXBsZXNBdmFpbGFibGUgeyB0aW1l
LCBudW1iZXJPZkZyYW1lcyB9LCBtX2lkZW50aWZpZXIpOwotfQotCi12b2lkIEF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyOjpzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2Us
IGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCBzaXplX3Qg
ZnJhbWVDb3VudCkKLXsKLSAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7Ci0gICAgaWYg
KHN0b3JhZ2UpCi0gICAgICAgIHN0b3JhZ2UtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1l
bW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwotICAgIAotICAgIC8vIEZJWE1FOiBTZW5kIHRo
ZSBhY3R1YWwgZGF0YSBzaXplIHdpdGggSVBDSGFuZGxlLgotI2lmIE9TKERBUldJTikgfHwgT1Mo
V0lORE9XUykKLSAgICB1aW50NjRfdCBkYXRhU2l6ZSA9IGhhbmRsZS5zaXplKCk7Ci0jZWxzZQot
ICAgIHVpbnQ2NF90IGRhdGFTaXplID0gMDsKLSNlbmRpZgotICAgIERpc2FibGVNYWxsb2NSZXN0
cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgc2NvcGU7Ci0gICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6QXVkaW9T
YW1wbGVzU3RvcmFnZUNoYW5nZWQgeyBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSB7IFdURk1vdmUo
aGFuZGxlKSwgZGF0YVNpemUgfSwgZm9ybWF0LCBmcmFtZUNvdW50IH0sIG1faWRlbnRpZmllcik7
Ci19Ci0KLXZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmdwdVByb2Nlc3NDb25u
ZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mKQotewotICAgIGNyYXNoZWQoKTsK
LX0KLQotfQotCi0jZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VT
UykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MDg2OWExZjVhNGQ5ZjEzODk2
ODViMjhmNjhiNzQ0ZWIwZThhMDZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3NyArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxF
KEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSAiQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIgotI2lu
Y2x1ZGUgPFdlYkNvcmUvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaD4KLSNpbmNsdWRl
IDx3dGYvTWVkaWFUaW1lLmg+Ci0KLW5hbWVzcGFjZSBJUEMgewotY2xhc3MgQ29ubmVjdGlvbjsK
LX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyLCBwdWJsaWMgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkNsaWVudCB7Ci0gICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcj4gY3JlYXRlKCk7Ci0gICAgfkF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyKCk7Ci0KLSAgICBBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlcklkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmll
cjsgfQotCi1wcml2YXRlOgotICAgIGV4cGxpY2l0IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYpOwotCi0gICAgdm9pZCBpbml0aWFsaXplKCk7Ci0g
ICAgdm9pZCBzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqLCBjb25zdCBXZWJDb3JlOjpDQUF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgc2l6ZV90IGZyYW1lQ291bnQpOwotCi0gICAg
Ly8gV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIKLSAgICB2b2lkIHN0YXJ0
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7Ci0gICAgdm9pZCBzdG9wKCkgZmlu
YWw7Ci0gICAgdm9pZCBjbGVhcigpIGZpbmFsOwotICAgIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KSBm
aW5hbDsKLSAgICB2b2lkIHB1c2hTYW1wbGVzKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFdlYkNv
cmU6OlBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgV2ViQ29yZTo6QXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYsIHNpemVfdCkgZmluYWw7Ci0KLSAgICAvLyBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6Q2xp
ZW50Ci0gICAgdm9pZCBncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25u
ZWN0aW9uJikgZmluYWw7Ci0KLSAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247
Ci0gICAgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyIG1faWRlbnRpZmll
cjsKLQotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+IG1fcmluZ0J1
ZmZlcjsKLSAgICBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlv
biB7IH07Ci0gICAgaW50NjRfdCBtX251bWJlck9mRnJhbWVzIHsgMCB9OwotICAgIGJvb2wgbV9p
c1BsYXlpbmcgeyBmYWxzZSB9OwotfTsKLQotfQotCi0jZW5kaWYgLy8gUExBVEZPUk0oQ09DT0Ep
ICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0F1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVySWRlbnRpZmllci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93
ZWJydGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJZGVudGlmaWVyLmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYxMmEwODRmYmU1NDc5MDQ3NGU3MGY3MmY0YmQ1MDAyOWM4
MTliZTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJJZGVudGlmaWVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UgLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4K
LQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWVudW0gQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJJZGVudGlmaWVyVHlwZSB7IH07Ci11c2luZyBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
cklkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVySWRlbnRpZmllclR5cGU+OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
      

    </bug>

</bugzilla>