<?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>209061</bug_id>
          
          <creation_ts>2020-03-13 10:25:27 -0700</creation_ts>
          <short_desc>Remove the use of empty WebRTC sources for receiver tracks</short_desc>
          <delta_ts>2020-03-16 06:16:15 -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>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</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>1629674</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-13 10:25:27 -0700</bug_when>
    <thetext>Remove the use of empty WebRTC sources for receiver tracks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629675</commentid>
    <comment_count>1</comment_count>
      <attachid>393497</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-13 10:27:04 -0700</bug_when>
    <thetext>Created attachment 393497
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630270</commentid>
    <comment_count>2</comment_count>
      <attachid>393638</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-16 02:07:24 -0700</bug_when>
    <thetext>Created attachment 393638
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630277</commentid>
    <comment_count>3</comment_count>
      <attachid>393638</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-16 03:06:05 -0700</bug_when>
    <thetext>Comment on attachment 393638
Patch for landing

Rejecting attachment 393638 from commit-queue.

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

ChangeLog entry in LayoutTests/imported/w3c/ChangeLog contains OOPS!.

Full output: https://webkit-queues.webkit.org/results/13342388</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630292</commentid>
    <comment_count>4</comment_count>
      <attachid>393645</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-16 04:10:54 -0700</bug_when>
    <thetext>Created attachment 393645
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630306</commentid>
    <comment_count>5</comment_count>
      <attachid>393645</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-16 06:15:14 -0700</bug_when>
    <thetext>Comment on attachment 393645
Patch for landing

Clearing flags on attachment: 393645

Committed r258493: &lt;https://trac.webkit.org/changeset/258493&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630307</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-16 06:15:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630310</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-16 06:16:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/60492804&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393497</attachid>
            <date>2020-03-13 10:27:04 -0700</date>
            <delta_ts>2020-03-16 02:07:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209061-20200313182703.patch</filename>
            <type>text/plain</type>
            <size>20884</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGY2NmQzNjFmZDg0ODZk
YThiNWM5ZmExZjIyNTNhMjlkNmQyYmVlZi4uZGZhMDU1YzA3YjVjOTg5NTUxNGYyN2RiMTFhYThj
NTViNTliNWZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTAzLTEzICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgdGhlIHVzZSBv
ZiBlbXB0eSBXZWJSVEMgc291cmNlcyBmb3IgcmVjZWl2ZXIgdHJhY2tzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkwNjEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBubyBsb25nZXIgbmVlZCB0byBj
cmVhdGUgcmVjZWl2ZXJzIHdpdGggZW1wdHkgc291cmNlcyBzaW5jZSB3ZSBub3cgYWx3YXlzIGhh
dmUgYSBsaWJ3ZWJydGMgcmVjZWl2ZXIgZnJvbSB3aGljaCB3ZSBjYW4gZ2V0IHRoZSB0cmFjay4K
KyAgICAgICAgTm8gb2JzZXJ2YWJsZSBjaGFuZ2Ugb2YgYmVoYXZpb3IuCisKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpMaWJXZWJSVENNZWRpYUVuZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJz
KToKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ01lZGlhRW5kcG9pbnQ6Om5ld1RyYW5zY2Vp
dmVyKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDUGVl
ckNvbm5lY3Rpb25CYWNrZW5kOjpjcmVhdGVSZWNlaXZlcik6CisgICAgICAgIChXZWJDb3JlOjpM
aWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmFkZFRyYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OkxpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6YWRkVHJhbnNjZWl2ZXJGcm9tVHJh
Y2tPcktpbmQpOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNr
ZW5kOjpuZXdSZW1vdGVUcmFuc2NlaXZlcik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmg6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwUmVjZWl2ZXJCYWNrZW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1J0cFJlY2VpdmVyQmFja2VuZDo6Y3Jl
YXRlU291cmNlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENSdHBSZWNlaXZlckJhY2tlbmQuaDoKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tMaWJXZWJS
VENQZWVyQ29ubmVjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhU3RyZWFtVHJh
Y2s6OnN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSdHBSZWNlaXZlcjo6U2V0
T2JzZXJ2ZXIpOgorCiAyMDIwLTAzLTEzICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KIAogICAgICAgICBVbmlxdWUgb3JpZ2lucyBzaG91bGQgbm90IGJlIFBvdGVudGlhbGx5IFRy
dXN0d29ydGh5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLmgKaW5kZXggYzBjODFlMTQwNGEzZDFlYWQwYTE1Zjc1ZDFmOTVk
ZTE0M2M0MzNlYy4uOWVlN2RlNmI1MmIzNzg5YjMyMzU5Y2VlZmM2YmMxMmYxOGZkNDRiNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24uaApAQCAtMTk1LDcgKzE5NSw2IEBAIHByaXZhdGU6CiAgICAgUlRDUGVlckNvbm5l
Y3Rpb24oRG9jdW1lbnQmKTsKIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGluaXRpYWxpemVDb25m
aWd1cmF0aW9uKFJUQ0NvbmZpZ3VyYXRpb24mJik7Ci0gICAgUmVmPFJUQ1J0cFRyYW5zY2VpdmVy
PiBjb21wbGV0ZUFkZFRyYW5zY2VpdmVyKFJlZjxSVENSdHBTZW5kZXI+JiYsIGNvbnN0IFJUQ1J0
cFRyYW5zY2VpdmVySW5pdCYsIGNvbnN0IFN0cmluZyYgdHJhY2tJZCwgY29uc3QgU3RyaW5nJiB0
cmFja0tpbmQpOwogCiAgICAgdm9pZCByZWdpc3RlclRvQ29udHJvbGxlcihSVENDb250cm9sbGVy
Jik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyRnJvbUNvbnRyb2xsZXIoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlh
RW5kcG9pbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAKaW5kZXggN2YzYzg4YWRhYjExY2MxZWY4N2Q0
YTFiNjc1ZjI2N2IxMWE1YzdiOC4uMDhjNDVhNzg4OTc1OWVlYzBlZWEzZWI1YzcyYTc4Y2ZiYjQ0
MTEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAKQEAg
LTM5MSwyNSArMzkxLDYgQEAgc3RhdGljIGlubGluZSB2b2lkIHNldEV4aXN0aW5nUmVjZWl2ZXJT
b3VyY2VUcmFjayhSZWFsdGltZU1lZGlhU291cmNlJiBleGlzdGluZ1MKICAgICB9CiB9CiAKLVJl
ZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBMaWJXZWJSVENNZWRpYUVuZHBvaW50Ojpzb3VyY2VG
cm9tTmV3UmVjZWl2ZXIod2VicnRjOjpSdHBSZWNlaXZlckludGVyZmFjZSYgcnRjUmVjZWl2ZXIp
Ci17Ci0gICAgYXV0byBydGNUcmFjayA9IHJ0Y1JlY2VpdmVyLnRyYWNrKCk7Ci0gICAgc3dpdGNo
IChydGNSZWNlaXZlci5tZWRpYV90eXBlKCkpIHsKLSAgICBjYXNlIGNyaWNrZXQ6Ok1FRElBX1RZ
UEVfREFUQToKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgY2FzZSBjcmlja2V0OjpNRURJ
QV9UWVBFX0FVRElPOiB7Ci0gICAgICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OkF1ZGlv
VHJhY2tJbnRlcmZhY2U+IGF1ZGlvVHJhY2sgPSBzdGF0aWNfY2FzdDx3ZWJydGM6OkF1ZGlvVHJh
Y2tJbnRlcmZhY2UqPihydGNUcmFjay5nZXQoKSk7Ci0gICAgICAgIHJldHVybiBSZWFsdGltZUlu
Y29taW5nQXVkaW9Tb3VyY2U6OmNyZWF0ZShXVEZNb3ZlKGF1ZGlvVHJhY2spLCBmcm9tU3RkU3Ry
aW5nKHJ0Y1RyYWNrLT5pZCgpKSk7Ci0gICAgfQotICAgIGNhc2UgY3JpY2tldDo6TUVESUFfVFlQ
RV9WSURFTzogewotICAgICAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb1RyYWNr
SW50ZXJmYWNlPiB2aWRlb1RyYWNrID0gc3RhdGljX2Nhc3Q8d2VicnRjOjpWaWRlb1RyYWNrSW50
ZXJmYWNlKj4ocnRjVHJhY2suZ2V0KCkpOwotICAgICAgICByZXR1cm4gUmVhbHRpbWVJbmNvbWlu
Z1ZpZGVvU291cmNlOjpjcmVhdGUoV1RGTW92ZSh2aWRlb1RyYWNrKSwgZnJvbVN0ZFN0cmluZyhy
dGNUcmFjay0+aWQoKSkpOwotICAgIH0KLSAgICB9Ci0KLSAgICBSRUxFQVNFX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotfQotCiB2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OmNvbGxlY3RUcmFu
c2NlaXZlcnMoKQogewogICAgIGlmICghbV9iYWNrZW5kKQpAQCAtNDIzLDExICs0MDQsNyBAQCB2
b2lkIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OmNvbGxlY3RUcmFuc2NlaXZlcnMoKQogICAgICAg
ICAgICAgY29udGludWU7CiAKICAgICAgICAgYXV0byBydGNSZWNlaXZlciA9IHJ0Y1RyYW5zY2Vp
dmVyLT5yZWNlaXZlcigpOwotICAgICAgICBhdXRvIHNvdXJjZSA9IHNvdXJjZUZyb21OZXdSZWNl
aXZlcigqcnRjUmVjZWl2ZXIpOwotICAgICAgICBpZiAoIXNvdXJjZSkKLSAgICAgICAgICAgIHJl
dHVybjsKLQotICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5uZXdSZW1vdGVUcmFuc2Nl
aXZlcihtYWtlVW5pcXVlPExpYldlYlJUQ1J0cFRyYW5zY2VpdmVyQmFja2VuZD4oV1RGTW92ZShy
dGNUcmFuc2NlaXZlcikpLCBzb3VyY2UucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgIG1fcGVl
ckNvbm5lY3Rpb25CYWNrZW5kLm5ld1JlbW90ZVRyYW5zY2VpdmVyKG1ha2VVbmlxdWU8TGliV2Vi
UlRDUnRwVHJhbnNjZWl2ZXJCYWNrZW5kPihXVEZNb3ZlKHJ0Y1RyYW5zY2VpdmVyKSksIHJ0Y1Jl
Y2VpdmVyLT5tZWRpYV90eXBlKCkgPT0gY3JpY2tldDo6TUVESUFfVFlQRV9BVURJTyA/IFJlYWx0
aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvIDogUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6
VmlkZW8pOwogICAgIH0KIH0KIApAQCAtNDQ0LDExICs0MjEsNyBAQCB2b2lkIExpYldlYlJUQ01l
ZGlhRW5kcG9pbnQ6Om5ld1RyYW5zY2VpdmVyKHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlJ0
cFRyYW5zYwogICAgIH0KIAogICAgIGF1dG8gcnRjUmVjZWl2ZXIgPSBydGNUcmFuc2NlaXZlci0+
cmVjZWl2ZXIoKTsKLSAgICBhdXRvIHNvdXJjZSA9IHNvdXJjZUZyb21OZXdSZWNlaXZlcigqcnRj
UmVjZWl2ZXIpOwotICAgIGlmICghc291cmNlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRv
JiBuZXdUcmFuc2NlaXZlciA9IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld1JlbW90ZVRyYW5z
Y2VpdmVyKG1ha2VVbmlxdWU8TGliV2ViUlRDUnRwVHJhbnNjZWl2ZXJCYWNrZW5kPihXVEZNb3Zl
KHJ0Y1RyYW5zY2VpdmVyKSksIHNvdXJjZS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICBhdXRvJiBu
ZXdUcmFuc2NlaXZlciA9IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld1JlbW90ZVRyYW5zY2Vp
dmVyKG1ha2VVbmlxdWU8TGliV2ViUlRDUnRwVHJhbnNjZWl2ZXJCYWNrZW5kPihXVEZNb3ZlKHJ0
Y1RyYW5zY2VpdmVyKSksIHJ0Y1JlY2VpdmVyLT5tZWRpYV90eXBlKCkgPT0gY3JpY2tldDo6TUVE
SUFfVFlQRV9BVURJTyA/IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvIDogUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOwogCiAgICAgYWRkUGVuZGluZ1RyYWNrRXZlbnQo
bWFrZVJlZihuZXdUcmFuc2NlaXZlci5yZWNlaXZlcigpKSwgbmV3VHJhbnNjZWl2ZXIucmVjZWl2
ZXIoKS50cmFjaygpLCBydGNSZWNlaXZlci0+c3RyZWFtcygpLCBtYWtlUmVmKG5ld1RyYW5zY2Vp
dmVyKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rp
b25CYWNrZW5kLmNwcAppbmRleCBiZjczYTBhYThkMzI2NDg1NzE4NmMxYWY0MDdiMjAwN2Q2ZjA1
MGU3Li42MmQ0MWNmZTM3ZWRhNDEzZjQyZGMwZWMwYzAwYWE4MGNjZGI1NWUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKQEAg
LTI4Nyw5ICsyODcsMTEgQEAgdm9pZCBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmRv
QWRkSWNlQ2FuZGlkYXRlKFJUQ0ljZUNhbmRpZGF0ZSYgY2FuZGlkYXQKICAgICBhZGRJY2VDYW5k
aWRhdGVTdWNjZWVkZWQoKTsKIH0KIAotUmVmPFJUQ1J0cFJlY2VpdmVyPiBMaWJXZWJSVENQZWVy
Q29ubmVjdGlvbkJhY2tlbmQ6OmNyZWF0ZVJlY2VpdmVyRm9yU291cmNlKFJlZjxSZWFsdGltZU1l
ZGlhU291cmNlPiYmIHNvdXJjZSwgc3RkOjp1bmlxdWVfcHRyPFJUQ1J0cFJlY2VpdmVyQmFja2Vu
ZD4mJiBiYWNrZW5kKQorUmVmPFJUQ1J0cFJlY2VpdmVyPiBMaWJXZWJSVENQZWVyQ29ubmVjdGlv
bkJhY2tlbmQ6OmNyZWF0ZVJlY2VpdmVyKHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENSdHBSZWNl
aXZlckJhY2tlbmQ+JiYgYmFja2VuZCkKIHsKICAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0
PERvY3VtZW50PigqbV9wZWVyQ29ubmVjdGlvbi5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwor
CisgICAgYXV0byBzb3VyY2UgPSBiYWNrZW5kLT5jcmVhdGVTb3VyY2UoKTsKICAgICBhdXRvIHRy
YWNrSUQgPSBzb3VyY2UtPnBlcnNpc3RlbnRJRCgpOwogICAgIGF1dG8gcmVtb3RlVHJhY2tQcml2
YXRlID0gTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNyZWF0ZShkb2N1bWVudC5sb2dnZXIoKSwg
V1RGTW92ZShzb3VyY2UpLCBXVEZNb3ZlKHRyYWNrSUQpKTsKICAgICBhdXRvIHJlbW90ZVRyYWNr
ID0gTWVkaWFTdHJlYW1UcmFjazo6Y3JlYXRlKGRvY3VtZW50LCBXVEZNb3ZlKHJlbW90ZVRyYWNr
UHJpdmF0ZSkpOwpAQCAtMjk3LDY4ICsyOTksNiBAQCBSZWY8UlRDUnRwUmVjZWl2ZXI+IExpYldl
YlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6Y3JlYXRlUmVjZWl2ZXJGb3JTb3VyY2UoUmVmPAog
ICAgIHJldHVybiBSVENSdHBSZWNlaXZlcjo6Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKHJlbW90ZVRy
YWNrKSwgV1RGTW92ZShiYWNrZW5kKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUmVmPFJlYWx0aW1l
TWVkaWFTb3VyY2U+IGNyZWF0ZUVtcHR5U291cmNlKGNvbnN0IFN0cmluZyYgdHJhY2tLaW5kLCBT
dHJpbmcmJiB0cmFja0lkKQotewotICAgIC8vIEZJWE1FOiB0cmFja0tpbmQgc2hvdWxkIGJlIGFu
IGVudW1lcmF0aW9uCi0gICAgaWYgKHRyYWNrS2luZCA9PSAiYXVkaW8iKQotICAgICAgICByZXR1
cm4gUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpjcmVhdGUobnVsbHB0ciwgV1RGTW92ZSh0
cmFja0lkKSk7Ci0gICAgQVNTRVJUKHRyYWNrS2luZCA9PSAidmlkZW8iKTsKLSAgICByZXR1cm4g
UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpjcmVhdGUobnVsbHB0ciwgV1RGTW92ZSh0cmFj
a0lkKSk7Ci19Ci0KLVJlZjxSVENSdHBSZWNlaXZlcj4gTGliV2ViUlRDUGVlckNvbm5lY3Rpb25C
YWNrZW5kOjpjcmVhdGVSZWNlaXZlcihjb25zdCBTdHJpbmcmIHRyYWNrS2luZCwgY29uc3QgU3Ry
aW5nJiB0cmFja0lkKQotewotICAgIGF1dG8gcmVjZWl2ZXIgPSBjcmVhdGVSZWNlaXZlckZvclNv
dXJjZShjcmVhdGVFbXB0eVNvdXJjZSh0cmFja0tpbmQsIFN0cmluZyh0cmFja0lkKSksIG51bGxw
dHIpOwotICAgIG1fcGVuZGluZ1JlY2VpdmVycy5hcHBlbmQocmVjZWl2ZXIuY29weVJlZigpKTsK
LSAgICByZXR1cm4gcmVjZWl2ZXI7Ci19Ci0KLUxpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2Vu
ZDo6VmlkZW9SZWNlaXZlciBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OnZpZGVvUmVj
ZWl2ZXIoU3RyaW5nJiYgdHJhY2tJZCkKLXsKLSAgICAvLyBGSVhNRTogQWRkIHRvIFZlY3RvciBh
IHV0aWxpdHkgcm91dGluZSBmb3IgdGhhdCB0YWtlLW9yLWNyZWF0ZSBwYXR0ZXJuLgotICAgIC8v
IEZJWE1FOiBXZSBzaG91bGQgYmUgc2VsZWN0aW5nIHRoZSByZWNlaXZlciBiYXNlZCBvbiB0cmFj
ayBpZC4KLSAgICBmb3IgKHNpemVfdCBjcHRyID0gMDsgY3B0ciA8IG1fcGVuZGluZ1JlY2VpdmVy
cy5zaXplKCk7ICsrY3B0cikgewotICAgICAgICBpZiAobV9wZW5kaW5nUmVjZWl2ZXJzW2NwdHJd
LT50cmFjaygpLnNvdXJjZSgpLnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpW
aWRlbykgewotICAgICAgICAgICAgUmVmPFJUQ1J0cFJlY2VpdmVyPiByZWNlaXZlciA9IG1fcGVu
ZGluZ1JlY2VpdmVyc1tjcHRyXS5jb3B5UmVmKCk7Ci0gICAgICAgICAgICBtX3BlbmRpbmdSZWNl
aXZlcnMucmVtb3ZlKGNwdHIpOwotICAgICAgICAgICAgUmVmPFJlYWx0aW1lSW5jb21pbmdWaWRl
b1NvdXJjZT4gc291cmNlID0gc3RhdGljX2Nhc3Q8UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNl
Jj4ocmVjZWl2ZXItPnRyYWNrKCkuc291cmNlKCkpOwotICAgICAgICAgICAgcmV0dXJuIHsgV1RG
TW92ZShyZWNlaXZlciksIFdURk1vdmUoc291cmNlKSB9OwotICAgICAgICB9Ci0gICAgfQotICAg
IGF1dG8gc291cmNlID0gUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpjcmVhdGUobnVsbHB0
ciwgV1RGTW92ZSh0cmFja0lkKSk7Ci0gICAgYXV0byByZWNlaXZlciA9IGNyZWF0ZVJlY2VpdmVy
Rm9yU291cmNlKHNvdXJjZS5jb3B5UmVmKCksIG51bGxwdHIpOwotCi0gICAgYXV0byBzZW5kZXJC
YWNrZW5kID0gbWFrZVVuaXF1ZTxMaWJXZWJSVENSdHBTZW5kZXJCYWNrZW5kPigqdGhpcywgbnVs
bHB0cik7Ci0gICAgYXV0byB0cmFuc2NlaXZlciA9IFJUQ1J0cFRyYW5zY2VpdmVyOjpjcmVhdGUo
UlRDUnRwU2VuZGVyOjpjcmVhdGUoKnRoaXMsICJ2aWRlbyJfcywgeyB9LCBXVEZNb3ZlKHNlbmRl
ckJhY2tlbmQpKSwgcmVjZWl2ZXIuY29weVJlZigpLCBudWxscHRyKTsKLSAgICB0cmFuc2NlaXZl
ci0+ZGlzYWJsZVNlbmRpbmdEaXJlY3Rpb24oKTsKLSAgICBtX3BlZXJDb25uZWN0aW9uLmFkZFRy
YW5zY2VpdmVyKFdURk1vdmUodHJhbnNjZWl2ZXIpKTsKLQotICAgIHJldHVybiB7IFdURk1vdmUo
cmVjZWl2ZXIpLCBXVEZNb3ZlKHNvdXJjZSkgfTsKLX0KLQotTGliV2ViUlRDUGVlckNvbm5lY3Rp
b25CYWNrZW5kOjpBdWRpb1JlY2VpdmVyIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6
YXVkaW9SZWNlaXZlcihTdHJpbmcmJiB0cmFja0lkKQotewotICAgIC8vIEZJWE1FOiBBZGQgdG8g
VmVjdG9yIGEgdXRpbGl0eSByb3V0aW5lIGZvciB0aGF0IHRha2Utb3ItY3JlYXRlIHBhdHRlcm4u
Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBiZSBzZWxlY3RpbmcgdGhlIHJlY2VpdmVyIGJhc2Vk
IG9uIHRyYWNrIGlkLgotICAgIGZvciAoc2l6ZV90IGNwdHIgPSAwOyBjcHRyIDwgbV9wZW5kaW5n
UmVjZWl2ZXJzLnNpemUoKTsgKytjcHRyKSB7Ci0gICAgICAgIGlmIChtX3BlbmRpbmdSZWNlaXZl
cnNbY3B0cl0tPnRyYWNrKCkuc291cmNlKCkudHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5cGU6OkF1ZGlvKSB7Ci0gICAgICAgICAgICBSZWY8UlRDUnRwUmVjZWl2ZXI+IHJlY2VpdmVy
ID0gbV9wZW5kaW5nUmVjZWl2ZXJzW2NwdHJdLmNvcHlSZWYoKTsKLSAgICAgICAgICAgIG1fcGVu
ZGluZ1JlY2VpdmVycy5yZW1vdmUoY3B0cik7Ci0gICAgICAgICAgICBSZWY8UmVhbHRpbWVJbmNv
bWluZ0F1ZGlvU291cmNlPiBzb3VyY2UgPSBzdGF0aWNfY2FzdDxSZWFsdGltZUluY29taW5nQXVk
aW9Tb3VyY2UmPihyZWNlaXZlci0+dHJhY2soKS5zb3VyY2UoKSk7Ci0gICAgICAgICAgICByZXR1
cm4geyBXVEZNb3ZlKHJlY2VpdmVyKSwgV1RGTW92ZShzb3VyY2UpIH07Ci0gICAgICAgIH0KLSAg
ICB9Ci0gICAgYXV0byBzb3VyY2UgPSBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OmNyZWF0
ZShudWxscHRyLCBXVEZNb3ZlKHRyYWNrSWQpKTsKLSAgICBhdXRvIHJlY2VpdmVyID0gY3JlYXRl
UmVjZWl2ZXJGb3JTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSwgbnVsbHB0cik7Ci0KLSAgICBhdXRv
IHNlbmRlckJhY2tlbmQgPSBtYWtlVW5pcXVlPExpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQ+KCp0
aGlzLCBudWxscHRyKTsKLSAgICBhdXRvIHRyYW5zY2VpdmVyID0gUlRDUnRwVHJhbnNjZWl2ZXI6
OmNyZWF0ZShSVENSdHBTZW5kZXI6OmNyZWF0ZSgqdGhpcywgImF1ZGlvIl9zLCB7IH0sIFdURk1v
dmUoc2VuZGVyQmFja2VuZCkpLCByZWNlaXZlci5jb3B5UmVmKCksIG51bGxwdHIpOwotICAgIHRy
YW5zY2VpdmVyLT5kaXNhYmxlU2VuZGluZ0RpcmVjdGlvbigpOwotICAgIG1fcGVlckNvbm5lY3Rp
b24uYWRkVHJhbnNjZWl2ZXIoV1RGTW92ZSh0cmFuc2NlaXZlcikpOwotCi0gICAgcmV0dXJuIHsg
V1RGTW92ZShyZWNlaXZlciksIFdURk1vdmUoc291cmNlKSB9OwotfQotCiBzdGQ6OnVuaXF1ZV9w
dHI8UlRDRGF0YUNoYW5uZWxIYW5kbGVyPiBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6
OmNyZWF0ZURhdGFDaGFubmVsSGFuZGxlcihjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBSVENE
YXRhQ2hhbm5lbEluaXQmIG9wdGlvbnMpCiB7CiAgICAgcmV0dXJuIG1fZW5kcG9pbnQtPmNyZWF0
ZURhdGFDaGFubmVsKGxhYmVsLCBvcHRpb25zKTsKQEAgLTQzMCw3ICszNzAsNyBAQCBFeGNlcHRp
b25PcjxSZWY8UlRDUnRwU2VuZGVyPj4gTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjph
ZGRUcmFjayhNZWRpYVN0cgogICAgIGF1dG8gdHJhbnNjZWl2ZXJCYWNrZW5kID0gbV9lbmRwb2lu
dC0+dHJhbnNjZWl2ZXJCYWNrZW5kRnJvbVNlbmRlcigqc2VuZGVyQmFja2VuZCk7CiAKICAgICBh
dXRvIHNlbmRlciA9IFJUQ1J0cFNlbmRlcjo6Y3JlYXRlKCp0aGlzLCBtYWtlUmVmKHRyYWNrKSwg
V1RGTW92ZShtZWRpYVN0cmVhbUlkcyksIFdURk1vdmUoc2VuZGVyQmFja2VuZCkpOwotICAgIGF1
dG8gcmVjZWl2ZXIgPSBjcmVhdGVSZWNlaXZlckZvclNvdXJjZShjcmVhdGVFbXB0eVNvdXJjZSh0
cmFjay5raW5kKCksIGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSksIHRyYW5zY2VpdmVyQmFj
a2VuZC0+Y3JlYXRlUmVjZWl2ZXJCYWNrZW5kKCkpOworICAgIGF1dG8gcmVjZWl2ZXIgPSBjcmVh
dGVSZWNlaXZlcih0cmFuc2NlaXZlckJhY2tlbmQtPmNyZWF0ZVJlY2VpdmVyQmFja2VuZCgpKTsK
ICAgICBhdXRvIHRyYW5zY2VpdmVyID0gUlRDUnRwVHJhbnNjZWl2ZXI6OmNyZWF0ZShzZW5kZXIu
Y29weVJlZigpLCBXVEZNb3ZlKHJlY2VpdmVyKSwgV1RGTW92ZSh0cmFuc2NlaXZlckJhY2tlbmQp
KTsKICAgICBtX3BlZXJDb25uZWN0aW9uLmFkZEludGVybmFsVHJhbnNjZWl2ZXIoV1RGTW92ZSh0
cmFuc2NlaXZlcikpOwogICAgIHJldHVybiBzZW5kZXI7CkBAIC00NDQsNyArMzg0LDcgQEAgRXhj
ZXB0aW9uT3I8UmVmPFJUQ1J0cFRyYW5zY2VpdmVyPj4gTGliV2ViUlRDUGVlckNvbm5lY3Rpb25C
YWNrZW5kOjphZGRUcmFuc2NlaXYKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRB
Y2Nlc3NFcnJvciwgIlVuYWJsZSB0byBhZGQgdHJhbnNjZWl2ZXIiX3MgfTsKIAogICAgIGF1dG8g
c2VuZGVyID0gUlRDUnRwU2VuZGVyOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUodHJhY2tPcktpbmQp
LCBWZWN0b3I8U3RyaW5nPiB7IH0sIFdURk1vdmUoYmFja2VuZHMtPnNlbmRlckJhY2tlbmQpKTsK
LSAgICBhdXRvIHJlY2VpdmVyID0gY3JlYXRlUmVjZWl2ZXJGb3JTb3VyY2UoY3JlYXRlRW1wdHlT
b3VyY2Uoc2VuZGVyLT50cmFja0tpbmQoKSwgY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpKSwg
V1RGTW92ZShiYWNrZW5kcy0+cmVjZWl2ZXJCYWNrZW5kKSk7CisgICAgYXV0byByZWNlaXZlciA9
IGNyZWF0ZVJlY2VpdmVyKFdURk1vdmUoYmFja2VuZHMtPnJlY2VpdmVyQmFja2VuZCkpOwogICAg
IGF1dG8gdHJhbnNjZWl2ZXIgPSBSVENSdHBUcmFuc2NlaXZlcjo6Y3JlYXRlKFdURk1vdmUoc2Vu
ZGVyKSwgV1RGTW92ZShyZWNlaXZlciksIFdURk1vdmUoYmFja2VuZHMtPnRyYW5zY2VpdmVyQmFj
a2VuZCkpOwogICAgIG1fcGVlckNvbm5lY3Rpb24uYWRkSW50ZXJuYWxUcmFuc2NlaXZlcih0cmFu
c2NlaXZlci5jb3B5UmVmKCkpOwogICAgIHJldHVybiB0cmFuc2NlaXZlcjsKQEAgLTQ3OSwyNSAr
NDE5LDE1IEBAIFJUQ1J0cFRyYW5zY2VpdmVyKiBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tl
bmQ6OmV4aXN0aW5nVHJhbnNjZWl2ZXIoV1RGOjpGdW5jCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9
CiAKLVJUQ1J0cFRyYW5zY2VpdmVyJiBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6Om5l
d1JlbW90ZVRyYW5zY2VpdmVyKHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENSdHBUcmFuc2NlaXZl
ckJhY2tlbmQ+JiYgdHJhbnNjZWl2ZXJCYWNrZW5kLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4m
JiByZWNlaXZlclNvdXJjZSkKK1JUQ1J0cFRyYW5zY2VpdmVyJiBMaWJXZWJSVENQZWVyQ29ubmVj
dGlvbkJhY2tlbmQ6Om5ld1JlbW90ZVRyYW5zY2VpdmVyKHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJS
VENSdHBUcmFuc2NlaXZlckJhY2tlbmQ+JiYgdHJhbnNjZWl2ZXJCYWNrZW5kLCBSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlIHR5cGUpCiB7Ci0gICAgYXV0byBzZW5kZXIgPSBSVENSdHBTZW5kZXI6
OmNyZWF0ZSgqdGhpcywgcmVjZWl2ZXJTb3VyY2UtPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlOjpBdWRpbyA/ICJhdWRpbyJfcyA6ICJ2aWRlbyJfcywgVmVjdG9yPFN0cmluZz4g
eyB9LCB0cmFuc2NlaXZlckJhY2tlbmQtPmNyZWF0ZVNlbmRlckJhY2tlbmQoKnRoaXMsIG51bGxw
dHIpKTsKLSAgICBhdXRvIHJlY2VpdmVyID0gY3JlYXRlUmVjZWl2ZXJGb3JTb3VyY2UoV1RGTW92
ZShyZWNlaXZlclNvdXJjZSksIHRyYW5zY2VpdmVyQmFja2VuZC0+Y3JlYXRlUmVjZWl2ZXJCYWNr
ZW5kKCkpOworICAgIGF1dG8gc2VuZGVyID0gUlRDUnRwU2VuZGVyOjpjcmVhdGUoKnRoaXMsIHR5
cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gPyAiYXVkaW8iX3MgOiAidmlk
ZW8iX3MsIFZlY3RvcjxTdHJpbmc+IHsgfSwgdHJhbnNjZWl2ZXJCYWNrZW5kLT5jcmVhdGVTZW5k
ZXJCYWNrZW5kKCp0aGlzLCBudWxscHRyKSk7CisgICAgYXV0byByZWNlaXZlciA9IGNyZWF0ZVJl
Y2VpdmVyKHRyYW5zY2VpdmVyQmFja2VuZC0+Y3JlYXRlUmVjZWl2ZXJCYWNrZW5kKCkpOwogICAg
IGF1dG8gdHJhbnNjZWl2ZXIgPSBSVENSdHBUcmFuc2NlaXZlcjo6Y3JlYXRlKFdURk1vdmUoc2Vu
ZGVyKSwgV1RGTW92ZShyZWNlaXZlciksIFdURk1vdmUodHJhbnNjZWl2ZXJCYWNrZW5kKSk7CiAg
ICAgbV9wZWVyQ29ubmVjdGlvbi5hZGRJbnRlcm5hbFRyYW5zY2VpdmVyKHRyYW5zY2VpdmVyLmNv
cHlSZWYoKSk7CiAgICAgcmV0dXJuIHRyYW5zY2VpdmVyLmdldCgpOwogfQogCi1SZWY8UlRDUnRw
VHJhbnNjZWl2ZXI+IExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6Y29tcGxldGVBZGRU
cmFuc2NlaXZlcihSZWY8UlRDUnRwU2VuZGVyPiYmIHNlbmRlciwgY29uc3QgUlRDUnRwVHJhbnNj
ZWl2ZXJJbml0JiBpbml0LCBjb25zdCBTdHJpbmcmIHRyYWNrSWQsIGNvbnN0IFN0cmluZyYgdHJh
Y2tLaW5kKQotewotICAgIGF1dG8gdHJhbnNjZWl2ZXIgPSBSVENSdHBUcmFuc2NlaXZlcjo6Y3Jl
YXRlKFdURk1vdmUoc2VuZGVyKSwgY3JlYXRlUmVjZWl2ZXIodHJhY2tLaW5kLCB0cmFja0lkKSwg
bnVsbHB0cik7Ci0KLSAgICB0cmFuc2NlaXZlci0+c2V0RGlyZWN0aW9uKGluaXQuZGlyZWN0aW9u
KTsKLQotICAgIG1fcGVlckNvbm5lY3Rpb24uYWRkSW50ZXJuYWxUcmFuc2NlaXZlcih0cmFuc2Nl
aXZlci5jb3B5UmVmKCkpOwotICAgIHJldHVybiB0cmFuc2NlaXZlcjsKLX0KLQogdm9pZCBMaWJX
ZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmNvbGxlY3RUcmFuc2NlaXZlcnMoKQogewogICAg
IG1fZW5kcG9pbnQtPmNvbGxlY3RUcmFuc2NlaXZlcnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0
aW9uQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKaW5kZXggYzcwNmEyYTEzNmYyNjE3
MjYyMWMxOTFhODc5MjA3OTlkY2Q1MzI1OS4uNDdlMTE5OGZlMTIxZDcyNDFhZWE2ZWYxMzM2YjRm
YWI3MzgyZTYyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNpZiBVU0UoTElCV0VCUlRDKQogCiAj
aW5jbHVkZSAiUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRp
YVNvdXJjZS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKIG5hbWVzcGFjZSB3ZWJydGMg
ewpAQCAtMzgsNiArMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBMaWJXZWJSVENN
ZWRpYUVuZHBvaW50OwogY2xhc3MgTGliV2ViUlRDUHJvdmlkZXI7CiBjbGFzcyBMaWJXZWJSVENS
dHBTZW5kZXJCYWNrZW5kOworY2xhc3MgTGliV2ViUlRDUnRwUmVjZWl2ZXJCYWNrZW5kOwogY2xh
c3MgTGliV2ViUlRDUnRwVHJhbnNjZWl2ZXJCYWNrZW5kOwogY2xhc3MgUlRDUnRwUmVjZWl2ZXI7
CiBjbGFzcyBSVENSdHBSZWNlaXZlckJhY2tlbmQ7CkBAIC05NiwzMiArOTgsMTcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHNldFNlbmRlclNvdXJjZUZyb21UcmFjayhMaWJXZWJSVENSdHBTZW5kZXJC
YWNrZW5kJiwgTWVkaWFTdHJlYW1UcmFjayYpOwogCiAgICAgUlRDUnRwVHJhbnNjZWl2ZXIqIGV4
aXN0aW5nVHJhbnNjZWl2ZXIoV1RGOjpGdW5jdGlvbjxib29sKExpYldlYlJUQ1J0cFRyYW5zY2Vp
dmVyQmFja2VuZCYpPiYmKTsKLSAgICBSVENSdHBUcmFuc2NlaXZlciYgbmV3UmVtb3RlVHJhbnNj
ZWl2ZXIoc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ1J0cFRyYW5zY2VpdmVyQmFja2VuZD4mJiwg
UmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOworICAgIFJUQ1J0cFRyYW5zY2VpdmVyJiBuZXdS
ZW1vdGVUcmFuc2NlaXZlcihzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDUnRwVHJhbnNjZWl2ZXJC
YWNrZW5kPiYmLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlKTsKIAogICAgIHZvaWQgY29sbGVj
dFRyYW5zY2VpdmVycygpIGZpbmFsOwogCi0gICAgc3RydWN0IFZpZGVvUmVjZWl2ZXIgewotICAg
ICAgICBSZWY8UlRDUnRwUmVjZWl2ZXI+IHJlY2VpdmVyOwotICAgICAgICBSZWY8UmVhbHRpbWVJ
bmNvbWluZ1ZpZGVvU291cmNlPiBzb3VyY2U7Ci0gICAgfTsKLSAgICBzdHJ1Y3QgQXVkaW9SZWNl
aXZlciB7Ci0gICAgICAgIFJlZjxSVENSdHBSZWNlaXZlcj4gcmVjZWl2ZXI7Ci0gICAgICAgIFJl
ZjxSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U+IHNvdXJjZTsKLSAgICB9OwotICAgIFZpZGVv
UmVjZWl2ZXIgdmlkZW9SZWNlaXZlcihTdHJpbmcmJiB0cmFja0lkKTsKLSAgICBBdWRpb1JlY2Vp
dmVyIGF1ZGlvUmVjZWl2ZXIoU3RyaW5nJiYgdHJhY2tJZCk7Ci0KIHByaXZhdGU6CiAgICAgYm9v
bCBpc0xvY2FsRGVzY3JpcHRpb25TZXQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lzTG9jYWxE
ZXNjcmlwdGlvblNldDsgfQogCi0gICAgUmVmPFJUQ1J0cFRyYW5zY2VpdmVyPiBjb21wbGV0ZUFk
ZFRyYW5zY2VpdmVyKFJlZjxSVENSdHBTZW5kZXI+JiYsIGNvbnN0IFJUQ1J0cFRyYW5zY2VpdmVy
SW5pdCYsIGNvbnN0IFN0cmluZyYgdHJhY2tJZCwgY29uc3QgU3RyaW5nJiB0cmFja0tpbmQpOwot
Ci0gICAgUmVmPFJUQ1J0cFJlY2VpdmVyPiBjcmVhdGVSZWNlaXZlcihjb25zdCBTdHJpbmcmIHRy
YWNrS2luZCwgY29uc3QgU3RyaW5nJiB0cmFja0lkKTsKLQogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+CiAgICAgRXhjZXB0aW9uT3I8UmVmPFJUQ1J0cFRyYW5zY2VpdmVyPj4gYWRkVHJhbnNjZWl2
ZXJGcm9tVHJhY2tPcktpbmQoVCYmIHRyYWNrT3JLaW5kLCBjb25zdCBSVENSdHBUcmFuc2NlaXZl
ckluaXQmKTsKIAotICAgIFJlZjxSVENSdHBSZWNlaXZlcj4gY3JlYXRlUmVjZWl2ZXJGb3JTb3Vy
Y2UoUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYsIHN0ZDo6dW5pcXVlX3B0cjxSVENSdHBSZWNl
aXZlckJhY2tlbmQ+JiYpOworICAgIFJlZjxSVENSdHBSZWNlaXZlcj4gY3JlYXRlUmVjZWl2ZXIo
c3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ1J0cFJlY2VpdmVyQmFja2VuZD4mJik7CiAKICAgICB2
b2lkIHN1c3BlbmQoKSBmaW5hbDsKICAgICB2b2lkIHJlc3VtZSgpIGZpbmFsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
UnRwUmVjZWl2ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFJlY2VpdmVyQmFja2VuZC5jcHAKaW5kZXggNTZmMDJj
NmMwMGIzYzMwODRiNDYxZDcyZmZhOTJiMzI2Yzg0MGQ1Ni4uZTU4NTQwNjdlN2NkNzNkYzVmY2U4
NzMzYzE3NTAyYWFkYTNhM2IxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwUmVjZWl2ZXJCYWNrZW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENS
dHBSZWNlaXZlckJhY2tlbmQuY3BwCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiTGliV2Vi
UlRDUnRwUmVjZWl2ZXJCYWNrZW5kLmgiCiAKICNpbmNsdWRlICJMaWJXZWJSVENVdGlscy5oIgor
I2luY2x1ZGUgIlJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oIgorI2luY2x1ZGUgIlJlYWx0
aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5oIgogCiAjaWYgRU5BQkxFKFdFQl9SVEMpICYmIFVTRShM
SUJXRUJSVEMpCiAKQEAgLTc4LDYgKzgwLDI1IEBAIFZlY3RvcjxSVENSdHBTeW5jaHJvbml6YXRp
b25Tb3VyY2U+IExpYldlYlJUQ1J0cFJlY2VpdmVyQmFja2VuZDo6Z2V0U3luY2hyb25pemF0CiAg
ICAgcmV0dXJuIHNvdXJjZXM7CiB9CiAKK1JlZjxSZWFsdGltZU1lZGlhU291cmNlPiBMaWJXZWJS
VENSdHBSZWNlaXZlckJhY2tlbmQ6OmNyZWF0ZVNvdXJjZSgpCit7CisgICAgYXV0byBydGNUcmFj
ayA9IG1fcnRjUmVjZWl2ZXItPnRyYWNrKCk7CisgICAgc3dpdGNoIChtX3J0Y1JlY2VpdmVyLT5t
ZWRpYV90eXBlKCkpIHsKKyAgICBjYXNlIGNyaWNrZXQ6Ok1FRElBX1RZUEVfREFUQToKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBjcmlja2V0OjpNRURJQV9UWVBFX0FVRElPOiB7CisgICAgICAg
IHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OkF1ZGlvVHJhY2tJbnRlcmZhY2U+IGF1ZGlvVHJh
Y2sgPSBzdGF0aWNfY2FzdDx3ZWJydGM6OkF1ZGlvVHJhY2tJbnRlcmZhY2UqPihydGNUcmFjay5n
ZXQoKSk7CisgICAgICAgIHJldHVybiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OmNyZWF0
ZShXVEZNb3ZlKGF1ZGlvVHJhY2spLCBmcm9tU3RkU3RyaW5nKHJ0Y1RyYWNrLT5pZCgpKSk7Cisg
ICAgfQorICAgIGNhc2UgY3JpY2tldDo6TUVESUFfVFlQRV9WSURFTzogeworICAgICAgICBydGM6
OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb1RyYWNrSW50ZXJmYWNlPiB2aWRlb1RyYWNrID0g
c3RhdGljX2Nhc3Q8d2VicnRjOjpWaWRlb1RyYWNrSW50ZXJmYWNlKj4ocnRjVHJhY2suZ2V0KCkp
OworICAgICAgICByZXR1cm4gUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpjcmVhdGUoV1RG
TW92ZSh2aWRlb1RyYWNrKSwgZnJvbVN0ZFN0cmluZyhydGNUcmFjay0+aWQoKSkpOworICAgIH0K
KyAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykgJiYgVVNFKExJQldF
QlJUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGli
d2VicnRjL0xpYldlYlJUQ1J0cFJlY2VpdmVyQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwUmVjZWl2ZXJCYWNrZW5kLmgK
aW5kZXggMWRhOGRlZDFmMWIzMDU3Y2IyNmViNTBkMDFmMjYyNWIwNjkxOGVmNC4uNzE5ZjVjNjcy
OTllODNmNWE3MWUzMzY1MTUwM2JiZjUxYTM3ZjAyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwUmVjZWl2ZXJCYWNr
ZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDUnRwUmVjZWl2ZXJCYWNrZW5kLmgKQEAgLTM4LDYgKzM4LDggQEAgQUxMT1dfVU5V
U0VEX1BBUkFNRVRFUlNfRU5ECiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgUmVhbHRp
bWVNZWRpYVNvdXJjZTsKKwogY2xhc3MgTGliV2ViUlRDUnRwUmVjZWl2ZXJCYWNrZW5kIGZpbmFs
IDogcHVibGljIFJUQ1J0cFJlY2VpdmVyQmFja2VuZCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6CkBAIC00OCw2ICs1MCw4IEBAIHB1YmxpYzoKIAogICAgIHdlYnJ0Yzo6
UnRwUmVjZWl2ZXJJbnRlcmZhY2UqIHJ0Y1JlY2VpdmVyKCkgeyByZXR1cm4gbV9ydGNSZWNlaXZl
ci5nZXQoKTsgfQogCisgICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZVNvdXJjZSgp
OworCiBwcml2YXRlOgogICAgIFJUQ1J0cFBhcmFtZXRlcnMgZ2V0UGFyYW1ldGVycygpIGZpbmFs
OwogICAgIFZlY3RvcjxSVENSdHBDb250cmlidXRpbmdTb3VyY2U+IGdldENvbnRyaWJ1dGluZ1Nv
dXJjZXMoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
TW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5oCmluZGV4IGFkYjYxMzVjMGJhYzY4OTkyNTk3NWJk
NzVhNzk1M2EyZjg2ZDRlMzYuLjMyMDE2NjVhMjY4YjgxNTk4ZTdkNDgxNmI4NWMyYmNjZjUwODIw
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJD
b25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTGliV2ViUlRDUGVl
ckNvbm5lY3Rpb24uaApAQCAtMTg5LDYgKzE4OSwxOSBAQCBwcml2YXRlOgogICAgIHJ0Yzo6c2Nv
cGVkX3JlZnB0cjx3ZWJydGM6Ok1lZGlhU3RyZWFtVHJhY2tJbnRlcmZhY2U+IG1fdHJhY2s7CiB9
OwogCitjbGFzcyBNb2NrTWVkaWFTdHJlYW1UcmFjayA6IHB1YmxpYyB3ZWJydGM6Ok1lZGlhU3Ry
ZWFtVHJhY2tJbnRlcmZhY2UgeworcHVibGljOgorICAgIE1vY2tNZWRpYVN0cmVhbVRyYWNrKCkg
PSBkZWZhdWx0OworcHJpdmF0ZToKKyAgICBzdGQ6OnN0cmluZyBraW5kKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gInZpZGVvIjsgfQorICAgIHN0ZDo6c3RyaW5nIGlkKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gIm15bW9ja3RyYWNrIjsgfQorICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIHRydWU7IH0KKyAgICBib29sIHNldF9lbmFibGVkKGJvb2wpIGZpbmFsIHsgcmV0dXJu
IHRydWU7IH0KKyAgICBUcmFja1N0YXRlIHN0YXRlKCkgY29uc3QgIHsgcmV0dXJuIFRyYWNrU3Rh
dGU6OmtMaXZlOyB9CisgICAgdm9pZCBSZWdpc3Rlck9ic2VydmVyKHdlYnJ0Yzo6T2JzZXJ2ZXJJ
bnRlcmZhY2UqKSBmaW5hbCB7IH0KKyAgICB2b2lkIFVucmVnaXN0ZXJPYnNlcnZlcih3ZWJydGM6
Ok9ic2VydmVySW50ZXJmYWNlKikgZmluYWwgeyB9Cit9OworCiBjbGFzcyBNb2NrUnRwUmVjZWl2
ZXIgOiBwdWJsaWMgd2VicnRjOjpSdHBSZWNlaXZlckludGVyZmFjZSB7CiBwcml2YXRlOgogICAg
IGNyaWNrZXQ6Ok1lZGlhVHlwZSBtZWRpYV90eXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gY3Jp
Y2tldDo6TUVESUFfVFlQRV9WSURFTzsgfQpAQCAtMTk2LDggKzIwOSwxNSBAQCBwcml2YXRlOgog
ICAgIHdlYnJ0Yzo6UnRwUGFyYW1ldGVycyBHZXRQYXJhbWV0ZXJzKCkgY29uc3QgeyByZXR1cm4g
eyB9OyB9CiAgICAgYm9vbCBTZXRQYXJhbWV0ZXJzKGNvbnN0IHdlYnJ0Yzo6UnRwUGFyYW1ldGVy
cyYpIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIFNldE9ic2VydmVyKHdlYnJ0Yzo6UnRwUmVj
ZWl2ZXJPYnNlcnZlckludGVyZmFjZSopIHsgfQotICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJy
dGM6Ok1lZGlhU3RyZWFtVHJhY2tJbnRlcmZhY2U+IHRyYWNrKCkgY29uc3QgZmluYWwgeyByZXR1
cm4geyB9OyB9CiAgICAgdm9pZCBTZXRKaXR0ZXJCdWZmZXJNaW5pbXVtRGVsYXkoYWJzbDo6b3B0
aW9uYWw8ZG91YmxlPikgZmluYWwgeyB9CisgICAgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6
TWVkaWFTdHJlYW1UcmFja0ludGVyZmFjZT4gdHJhY2soKSBjb25zdCBmaW5hbAorICAgIHsKKyAg
ICAgICAgaWYgKCFtX3RyYWNrKQorICAgICAgICAgICAgY29uc3RfY2FzdDxNb2NrUnRwUmVjZWl2
ZXIqPih0aGlzKS0+bV90cmFjayA9IG5ldyBydGM6OlJlZkNvdW50ZWRPYmplY3Q8TW9ja01lZGlh
U3RyZWFtVHJhY2s+KCk7CisgICAgICAgIHJldHVybiBtX3RyYWNrOworICAgIH0KKworICAgIHJ0
Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6Ok1lZGlhU3RyZWFtVHJhY2tJbnRlcmZhY2U+IG1fdHJh
Y2s7CiB9OwogCiBjbGFzcyBNb2NrUnRwVHJhbnNjZWl2ZXIgOiBwdWJsaWMgd2VicnRjOjpSdHBU
cmFuc2NlaXZlckludGVyZmFjZSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393638</attachid>
            <date>2020-03-16 02:07:24 -0700</date>
            <delta_ts>2020-03-16 04:10:50 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-209061-20200316100720.patch</filename>
            <type>text/plain</type>
            <size>30792</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTlmZDIyNDNkMDg5NGE4
ZDQxMDg1ZWU2NmU1MDQ1NWM0NTczZjg5NS4uODYzNTExNzdmMjc3OGE0YjRhNWY0NDQ5MWYyMmQz
OGQ0YTE3ZjhkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIwLTAzLTE2ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgdGhlIHVzZSBv
ZiBlbXB0eSBXZWJSVEMgc291cmNlcyBmb3IgcmVjZWl2ZXIgdHJhY2tzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkwNjEKKworICAgICAgICBSZXZp
ZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgV2Ugbm8gbG9uZ2VyIG5lZWQgdG8gY3Jl
YXRlIHJlY2VpdmVycyB3aXRoIGVtcHR5IHNvdXJjZXMgc2luY2Ugd2Ugbm93IGFsd2F5cyBoYXZl
IGEgbGlid2VicnRjIHJlY2VpdmVyIGZyb20gd2hpY2ggd2UgY2FuIGdldCB0aGUgdHJhY2suCisg
ICAgICAgIFdlIHJlbW92ZSB0aGF0IGNvZGUgcGF0aC4KKyAgICAgICAgVGhpcyBzbGRvIGFsbG93
cyB1c2luZyB0aGUgcmlnaHQgdHJhY2sgcGFyYW1ldGVycyBmcm9tIHRoZSBzdGFydCwgbGlrZSB0
cmFjayBpZC4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIGFuZCByZWJhc2VkIHRlc3Rz
LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5k
cG9pbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDTWVkaWFFbmRwb2ludDo6YWRk
UGVuZGluZ1RyYWNrRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDTWVkaWFFbmRw
b2ludDo6Y29sbGVjdFRyYW5zY2VpdmVycyk6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENN
ZWRpYUVuZHBvaW50OjpuZXdUcmFuc2NlaXZlcik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6Y3JlYXRlUmVjZWl2
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjph
ZGRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tl
bmQ6OmFkZFRyYW5zY2VpdmVyRnJvbVRyYWNrT3JLaW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okxp
YldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6bmV3UmVtb3RlVHJhbnNjZWl2ZXIpOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0
aW9uQmFja2VuZC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1J0cFJlY2VpdmVyQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJS
VENSdHBSZWNlaXZlckJhY2tlbmQ6OmNyZWF0ZVNvdXJjZSk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwUmVjZWl2ZXJCYWNrZW5kLmg6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6UmVhbHRp
bWVJbmNvbWluZ0F1ZGlvU291cmNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2Up
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRlb1Nv
dXJjZS5oOgorICAgICAgICAqIHRlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmg6
CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFTdHJlYW1UcmFjazo6c3RhdGUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja1J0cFJlY2VpdmVyOjpTZXRPYnNlcnZlcik6CisKIDIwMjAt
MDMtMTYgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVuaXF1
ZSBvcmlnaW5zIHNob3VsZCBub3QgYmUgUG90ZW50aWFsbHkgVHJ1c3R3b3J0aHkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24u
aAppbmRleCBjMGM4MWUxNDA0YTNkMWVhZDBhMTVmNzVkMWY5NWRlMTQzYzQzM2VjLi45ZWU3ZGU2
YjUyYjM3ODliMzIzNTljZWVmYzZiYzEyZjE4ZmQ0NGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCkBAIC0xOTUs
NyArMTk1LDYgQEAgcHJpdmF0ZToKICAgICBSVENQZWVyQ29ubmVjdGlvbihEb2N1bWVudCYpOwog
CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gaW5pdGlhbGl6ZUNvbmZpZ3VyYXRpb24oUlRDQ29uZmln
dXJhdGlvbiYmKTsKLSAgICBSZWY8UlRDUnRwVHJhbnNjZWl2ZXI+IGNvbXBsZXRlQWRkVHJhbnNj
ZWl2ZXIoUmVmPFJUQ1J0cFNlbmRlcj4mJiwgY29uc3QgUlRDUnRwVHJhbnNjZWl2ZXJJbml0Jiwg
Y29uc3QgU3RyaW5nJiB0cmFja0lkLCBjb25zdCBTdHJpbmcmIHRyYWNrS2luZCk7CiAKICAgICB2
b2lkIHJlZ2lzdGVyVG9Db250cm9sbGVyKFJUQ0NvbnRyb2xsZXImKTsKICAgICB2b2lkIHVucmVn
aXN0ZXJGcm9tQ29udHJvbGxlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVu
ZHBvaW50LmNwcAppbmRleCA3ZjNjODhhZGFiMTFjYzFlZjg3ZDRhMWI2NzVmMjY3YjExYTVjN2I4
Li42N2U4ZTA3ZDM3MzA4NTg3ZThhODQ2N2M1MjA0NzI0OTU3OWM0Y2ZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRp
YUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcApAQCAtMzY4LDQ2ICszNjgsMTEgQEAg
dm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50OjphZGRQZW5kaW5nVHJhY2tFdmVudChSZWY8UlRD
UnRwUmVjZWl2ZXI+JiYgcmVjZWl2ZXIKICAgICBtX3JlbW90ZVN0cmVhbXNGcm9tUmVtb3RlVHJh
Y2suYWRkKCZ0cmFjaywgV1RGTW92ZShzdHJlYW1JZHMpKTsKIAogICAgIG1fcGVlckNvbm5lY3Rp
b25CYWNrZW5kLmFkZFBlbmRpbmdUcmFja0V2ZW50KHsgV1RGTW92ZShyZWNlaXZlciksIG1ha2VS
ZWYodHJhY2spLCBXVEZNb3ZlKHN0cmVhbXMpLCBXVEZNb3ZlKHRyYW5zY2VpdmVyKSB9KTsKLX0K
IAotc3RhdGljIGlubGluZSB2b2lkIHNldEV4aXN0aW5nUmVjZWl2ZXJTb3VyY2VUcmFjayhSZWFs
dGltZU1lZGlhU291cmNlJiBleGlzdGluZ1NvdXJjZSwgd2VicnRjOjpSdHBSZWNlaXZlckludGVy
ZmFjZSYgcnRjUmVjZWl2ZXIpCi17Ci0gICAgc3dpdGNoIChydGNSZWNlaXZlci5tZWRpYV90eXBl
KCkpIHsKLSAgICBjYXNlIGNyaWNrZXQ6Ok1FRElBX1RZUEVfQVVESU86IHsKLSAgICAgICAgQVNT
RVJUKGV4aXN0aW5nU291cmNlLnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpB
dWRpbyk7Ci0gICAgICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OkF1ZGlvVHJhY2tJbnRl
cmZhY2U+IGF1ZGlvVHJhY2sgPSBzdGF0aWNfY2FzdDx3ZWJydGM6OkF1ZGlvVHJhY2tJbnRlcmZh
Y2UqPihydGNSZWNlaXZlci50cmFjaygpLmdldCgpKTsKLSAgICAgICAgZG93bmNhc3Q8UmVhbHRp
bWVJbmNvbWluZ0F1ZGlvU291cmNlPihleGlzdGluZ1NvdXJjZSkuc2V0U291cmNlVHJhY2soV1RG
TW92ZShhdWRpb1RyYWNrKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgY2FzZSBjcmlj
a2V0OjpNRURJQV9UWVBFX1ZJREVPOiB7Ci0gICAgICAgIEFTU0VSVChleGlzdGluZ1NvdXJjZS50
eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOwotICAgICAgICBydGM6
OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb1RyYWNrSW50ZXJmYWNlPiB2aWRlb1RyYWNrID0g
c3RhdGljX2Nhc3Q8d2VicnRjOjpWaWRlb1RyYWNrSW50ZXJmYWNlKj4ocnRjUmVjZWl2ZXIudHJh
Y2soKS5nZXQoKSk7Ci0gICAgICAgIGRvd25jYXN0PFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJj
ZT4oZXhpc3RpbmdTb3VyY2UpLnNldFNvdXJjZVRyYWNrKFdURk1vdmUodmlkZW9UcmFjaykpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGNhc2UgY3JpY2tldDo6TUVESUFfVFlQRV9EQVRB
OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LX0KLQotUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6
OnNvdXJjZUZyb21OZXdSZWNlaXZlcih3ZWJydGM6OlJ0cFJlY2VpdmVySW50ZXJmYWNlJiBydGNS
ZWNlaXZlcikKLXsKLSAgICBhdXRvIHJ0Y1RyYWNrID0gcnRjUmVjZWl2ZXIudHJhY2soKTsKLSAg
ICBzd2l0Y2ggKHJ0Y1JlY2VpdmVyLm1lZGlhX3R5cGUoKSkgewotICAgIGNhc2UgY3JpY2tldDo6
TUVESUFfVFlQRV9EQVRBOgotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBjYXNlIGNyaWNr
ZXQ6Ok1FRElBX1RZUEVfQVVESU86IHsKLSAgICAgICAgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0
Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4gYXVkaW9UcmFjayA9IHN0YXRpY19jYXN0PHdlYnJ0Yzo6
QXVkaW9UcmFja0ludGVyZmFjZSo+KHJ0Y1RyYWNrLmdldCgpKTsKLSAgICAgICAgcmV0dXJuIFJl
YWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6Y3JlYXRlKFdURk1vdmUoYXVkaW9UcmFjayksIGZy
b21TdGRTdHJpbmcocnRjVHJhY2stPmlkKCkpKTsKLSAgICB9Ci0gICAgY2FzZSBjcmlja2V0OjpN
RURJQV9UWVBFX1ZJREVPOiB7Ci0gICAgICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlZp
ZGVvVHJhY2tJbnRlcmZhY2U+IHZpZGVvVHJhY2sgPSBzdGF0aWNfY2FzdDx3ZWJydGM6OlZpZGVv
VHJhY2tJbnRlcmZhY2UqPihydGNUcmFjay5nZXQoKSk7Ci0gICAgICAgIHJldHVybiBSZWFsdGlt
ZUluY29taW5nVmlkZW9Tb3VyY2U6OmNyZWF0ZShXVEZNb3ZlKHZpZGVvVHJhY2spLCBmcm9tU3Rk
U3RyaW5nKHJ0Y1RyYWNrLT5pZCgpKSk7Ci0gICAgfQotICAgIH0KLQotICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCB1bm11dGUgdHJhY2tz
IHdoZW4gcmVjZWl2aW5nIHRoZSBmaXJzdCBwYWNrZXQsIGZvciBub3cgd2Ugc2ltdWxhdGUgdGhp
cyBieSB1bm11dGluZyBhc3luY2hyb25vdXNseSBoZXJlLgorICAgIGNhbGxPbk1haW5UaHJlYWQo
W3NvdXJjZSA9IG1ha2VSZWYodHJhY2suc291cmNlKCkpXSB7CisgICAgICAgIHNvdXJjZS0+c2V0
TXV0ZWQoZmFsc2UpOworICAgIH0pOwogfQogCiB2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6
OmNvbGxlY3RUcmFuc2NlaXZlcnMoKQpAQCAtNDIzLDM0ICszODgsMjAgQEAgdm9pZCBMaWJXZWJS
VENNZWRpYUVuZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkKICAgICAgICAgICAgIGNvbnRp
bnVlOwogCiAgICAgICAgIGF1dG8gcnRjUmVjZWl2ZXIgPSBydGNUcmFuc2NlaXZlci0+cmVjZWl2
ZXIoKTsKLSAgICAgICAgYXV0byBzb3VyY2UgPSBzb3VyY2VGcm9tTmV3UmVjZWl2ZXIoKnJ0Y1Jl
Y2VpdmVyKTsKLSAgICAgICAgaWYgKCFzb3VyY2UpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIobWFrZVVu
aXF1ZTxMaWJXZWJSVENSdHBUcmFuc2NlaXZlckJhY2tlbmQ+KFdURk1vdmUocnRjVHJhbnNjZWl2
ZXIpKSwgc291cmNlLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICBtX3BlZXJDb25uZWN0aW9u
QmFja2VuZC5uZXdSZW1vdGVUcmFuc2NlaXZlcihtYWtlVW5pcXVlPExpYldlYlJUQ1J0cFRyYW5z
Y2VpdmVyQmFja2VuZD4oV1RGTW92ZShydGNUcmFuc2NlaXZlcikpLCBydGNSZWNlaXZlci0+bWVk
aWFfdHlwZSgpID09IGNyaWNrZXQ6Ok1FRElBX1RZUEVfQVVESU8gPyBSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlOjpBdWRpbyA6IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKTsKICAg
ICB9CiB9CiAKIHZvaWQgTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6bmV3VHJhbnNjZWl2ZXIocnRj
OjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6UnRwVHJhbnNjZWl2ZXJJbnRlcmZhY2U+JiYgcnRjVHJh
bnNjZWl2ZXIpCiB7CisgICAgYXV0byBydGNSZWNlaXZlciA9IHJ0Y1RyYW5zY2VpdmVyLT5yZWNl
aXZlcigpOwogICAgIGF1dG8qIHRyYW5zY2VpdmVyID0gbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQu
ZXhpc3RpbmdUcmFuc2NlaXZlcihbJl0oYXV0byYgdHJhbnNjZWl2ZXJCYWNrZW5kKSB7CiAgICAg
ICAgIHJldHVybiBydGNUcmFuc2NlaXZlci5nZXQoKSA9PSB0cmFuc2NlaXZlckJhY2tlbmQucnRj
VHJhbnNjZWl2ZXIoKTsKICAgICB9KTsKLSAgICBpZiAodHJhbnNjZWl2ZXIpIHsKLSAgICAgICAg
YXV0byBydGNSZWNlaXZlciA9IHJ0Y1RyYW5zY2VpdmVyLT5yZWNlaXZlcigpOwotICAgICAgICBz
ZXRFeGlzdGluZ1JlY2VpdmVyU291cmNlVHJhY2sodHJhbnNjZWl2ZXItPnJlY2VpdmVyKCkudHJh
Y2soKS5zb3VyY2UoKSwgKnJ0Y1JlY2VpdmVyKTsKLSAgICAgICAgYWRkUGVuZGluZ1RyYWNrRXZl
bnQobWFrZVJlZih0cmFuc2NlaXZlci0+cmVjZWl2ZXIoKSksIHRyYW5zY2VpdmVyLT5yZWNlaXZl
cigpLnRyYWNrKCksIHJ0Y1JlY2VpdmVyLT5zdHJlYW1zKCksIG1ha2VSZWYoKnRyYW5zY2VpdmVy
KSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRvIHJ0Y1JlY2VpdmVyID0gcnRj
VHJhbnNjZWl2ZXItPnJlY2VpdmVyKCk7Ci0gICAgYXV0byBzb3VyY2UgPSBzb3VyY2VGcm9tTmV3
UmVjZWl2ZXIoKnJ0Y1JlY2VpdmVyKTsKLSAgICBpZiAoIXNvdXJjZSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgYXV0byYgbmV3VHJhbnNjZWl2ZXIgPSBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5u
ZXdSZW1vdGVUcmFuc2NlaXZlcihtYWtlVW5pcXVlPExpYldlYlJUQ1J0cFRyYW5zY2VpdmVyQmFj
a2VuZD4oV1RGTW92ZShydGNUcmFuc2NlaXZlcikpLCBzb3VyY2UucmVsZWFzZU5vbk51bGwoKSk7
CisgICAgaWYgKCF0cmFuc2NlaXZlcikKKyAgICAgICAgdHJhbnNjZWl2ZXIgPSAmbV9wZWVyQ29u
bmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIobWFrZVVuaXF1ZTxMaWJXZWJSVENS
dHBUcmFuc2NlaXZlckJhY2tlbmQ+KFdURk1vdmUocnRjVHJhbnNjZWl2ZXIpKSwgcnRjUmVjZWl2
ZXItPm1lZGlhX3R5cGUoKSA9PSBjcmlja2V0OjpNRURJQV9UWVBFX0FVRElPID8gUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRl
byk7CiAKLSAgICBhZGRQZW5kaW5nVHJhY2tFdmVudChtYWtlUmVmKG5ld1RyYW5zY2VpdmVyLnJl
Y2VpdmVyKCkpLCBuZXdUcmFuc2NlaXZlci5yZWNlaXZlcigpLnRyYWNrKCksIHJ0Y1JlY2VpdmVy
LT5zdHJlYW1zKCksIG1ha2VSZWYobmV3VHJhbnNjZWl2ZXIpKTsKKyAgICBhZGRQZW5kaW5nVHJh
Y2tFdmVudChtYWtlUmVmKHRyYW5zY2VpdmVyLT5yZWNlaXZlcigpKSwgdHJhbnNjZWl2ZXItPnJl
Y2VpdmVyKCkudHJhY2soKSwgcnRjUmVjZWl2ZXItPnN0cmVhbXMoKSwgbWFrZVJlZigqdHJhbnNj
ZWl2ZXIpKTsKIH0KIAogdm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpyZW1vdmVSZW1vdGVU
cmFjayhydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpSdHBSZWNlaXZlckludGVyZmFjZT4mJiBy
ZWNlaXZlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlv
bkJhY2tlbmQuY3BwCmluZGV4IGYwZWMzYTlhMWQ2NjFlMjE2OGY2MTBkMzgxNmUyMWVmOTg0ODI4
MTEuLjZkOTEwODYzNTBmOTVmOWJhMjZkMTM4NTdlNzZlODMyNjU3ZTM5MTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Bl
ZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApAQCAt
Mjg3LDkgKzI4NywxMyBAQCB2b2lkIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6ZG9B
ZGRJY2VDYW5kaWRhdGUoUlRDSWNlQ2FuZGlkYXRlJiBjYW5kaWRhdAogICAgIGFkZEljZUNhbmRp
ZGF0ZVN1Y2NlZWRlZCgpOwogfQogCi1SZWY8UlRDUnRwUmVjZWl2ZXI+IExpYldlYlJUQ1BlZXJD
b25uZWN0aW9uQmFja2VuZDo6Y3JlYXRlUmVjZWl2ZXJGb3JTb3VyY2UoUmVmPFJlYWx0aW1lTWVk
aWFTb3VyY2U+JiYgc291cmNlLCBzdGQ6OnVuaXF1ZV9wdHI8UlRDUnRwUmVjZWl2ZXJCYWNrZW5k
PiYmIGJhY2tlbmQpCitSZWY8UlRDUnRwUmVjZWl2ZXI+IExpYldlYlJUQ1BlZXJDb25uZWN0aW9u
QmFja2VuZDo6Y3JlYXRlUmVjZWl2ZXIoc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ1J0cFJlY2Vp
dmVyQmFja2VuZD4mJiBiYWNrZW5kKQogewogICAgIGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8
RG9jdW1lbnQ+KCptX3BlZXJDb25uZWN0aW9uLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisK
KyAgICBhdXRvIHNvdXJjZSA9IGJhY2tlbmQtPmNyZWF0ZVNvdXJjZSgpOworICAgIC8vIFJlbW90
ZSBzb3VyY2UgaXMgaW5pdGlhbGx5IG11dGVkIGFuZCB3aWxsIGJlIHVubXV0ZWQgd2hlbiByZWNl
aXZpbmcgdGhlIGZpcnN0IHBhY2tldC4KKyAgICBzb3VyY2UtPnNldE11dGVkKHRydWUpOwogICAg
IGF1dG8gdHJhY2tJRCA9IHNvdXJjZS0+cGVyc2lzdGVudElEKCk7CiAgICAgYXV0byByZW1vdGVU
cmFja1ByaXZhdGUgPSBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y3JlYXRlKGRvY3VtZW50Lmxv
Z2dlcigpLCBXVEZNb3ZlKHNvdXJjZSksIFdURk1vdmUodHJhY2tJRCkpOwogICAgIGF1dG8gcmVt
b3RlVHJhY2sgPSBNZWRpYVN0cmVhbVRyYWNrOjpjcmVhdGUoZG9jdW1lbnQsIFdURk1vdmUocmVt
b3RlVHJhY2tQcml2YXRlKSk7CkBAIC0yOTcsNjggKzMwMSw2IEBAIFJlZjxSVENSdHBSZWNlaXZl
cj4gTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpjcmVhdGVSZWNlaXZlckZvclNvdXJj
ZShSZWY8CiAgICAgcmV0dXJuIFJUQ1J0cFJlY2VpdmVyOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUo
cmVtb3RlVHJhY2spLCBXVEZNb3ZlKGJhY2tlbmQpKTsKIH0KIAotc3RhdGljIGlubGluZSBSZWY8
UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlRW1wdHlTb3VyY2UoY29uc3QgU3RyaW5nJiB0cmFj
a0tpbmQsIFN0cmluZyYmIHRyYWNrSWQpCi17Ci0gICAgLy8gRklYTUU6IHRyYWNrS2luZCBzaG91
bGQgYmUgYW4gZW51bWVyYXRpb24KLSAgICBpZiAodHJhY2tLaW5kID09ICJhdWRpbyIpCi0gICAg
ICAgIHJldHVybiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OmNyZWF0ZShudWxscHRyLCBX
VEZNb3ZlKHRyYWNrSWQpKTsKLSAgICBBU1NFUlQodHJhY2tLaW5kID09ICJ2aWRlbyIpOwotICAg
IHJldHVybiBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6OmNyZWF0ZShudWxscHRyLCBXVEZN
b3ZlKHRyYWNrSWQpKTsKLX0KLQotUmVmPFJUQ1J0cFJlY2VpdmVyPiBMaWJXZWJSVENQZWVyQ29u
bmVjdGlvbkJhY2tlbmQ6OmNyZWF0ZVJlY2VpdmVyKGNvbnN0IFN0cmluZyYgdHJhY2tLaW5kLCBj
b25zdCBTdHJpbmcmIHRyYWNrSWQpCi17Ci0gICAgYXV0byByZWNlaXZlciA9IGNyZWF0ZVJlY2Vp
dmVyRm9yU291cmNlKGNyZWF0ZUVtcHR5U291cmNlKHRyYWNrS2luZCwgU3RyaW5nKHRyYWNrSWQp
KSwgbnVsbHB0cik7Ci0gICAgbV9wZW5kaW5nUmVjZWl2ZXJzLmFwcGVuZChyZWNlaXZlci5jb3B5
UmVmKCkpOwotICAgIHJldHVybiByZWNlaXZlcjsKLX0KLQotTGliV2ViUlRDUGVlckNvbm5lY3Rp
b25CYWNrZW5kOjpWaWRlb1JlY2VpdmVyIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6
dmlkZW9SZWNlaXZlcihTdHJpbmcmJiB0cmFja0lkKQotewotICAgIC8vIEZJWE1FOiBBZGQgdG8g
VmVjdG9yIGEgdXRpbGl0eSByb3V0aW5lIGZvciB0aGF0IHRha2Utb3ItY3JlYXRlIHBhdHRlcm4u
Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBiZSBzZWxlY3RpbmcgdGhlIHJlY2VpdmVyIGJhc2Vk
IG9uIHRyYWNrIGlkLgotICAgIGZvciAoc2l6ZV90IGNwdHIgPSAwOyBjcHRyIDwgbV9wZW5kaW5n
UmVjZWl2ZXJzLnNpemUoKTsgKytjcHRyKSB7Ci0gICAgICAgIGlmIChtX3BlbmRpbmdSZWNlaXZl
cnNbY3B0cl0tPnRyYWNrKCkuc291cmNlKCkudHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5cGU6OlZpZGVvKSB7Ci0gICAgICAgICAgICBSZWY8UlRDUnRwUmVjZWl2ZXI+IHJlY2VpdmVy
ID0gbV9wZW5kaW5nUmVjZWl2ZXJzW2NwdHJdLmNvcHlSZWYoKTsKLSAgICAgICAgICAgIG1fcGVu
ZGluZ1JlY2VpdmVycy5yZW1vdmUoY3B0cik7Ci0gICAgICAgICAgICBSZWY8UmVhbHRpbWVJbmNv
bWluZ1ZpZGVvU291cmNlPiBzb3VyY2UgPSBzdGF0aWNfY2FzdDxSZWFsdGltZUluY29taW5nVmlk
ZW9Tb3VyY2UmPihyZWNlaXZlci0+dHJhY2soKS5zb3VyY2UoKSk7Ci0gICAgICAgICAgICByZXR1
cm4geyBXVEZNb3ZlKHJlY2VpdmVyKSwgV1RGTW92ZShzb3VyY2UpIH07Ci0gICAgICAgIH0KLSAg
ICB9Ci0gICAgYXV0byBzb3VyY2UgPSBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6OmNyZWF0
ZShudWxscHRyLCBXVEZNb3ZlKHRyYWNrSWQpKTsKLSAgICBhdXRvIHJlY2VpdmVyID0gY3JlYXRl
UmVjZWl2ZXJGb3JTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSwgbnVsbHB0cik7Ci0KLSAgICBhdXRv
IHNlbmRlckJhY2tlbmQgPSBtYWtlVW5pcXVlPExpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQ+KCp0
aGlzLCBudWxscHRyKTsKLSAgICBhdXRvIHRyYW5zY2VpdmVyID0gUlRDUnRwVHJhbnNjZWl2ZXI6
OmNyZWF0ZShSVENSdHBTZW5kZXI6OmNyZWF0ZSgqdGhpcywgInZpZGVvIl9zLCB7IH0sIFdURk1v
dmUoc2VuZGVyQmFja2VuZCkpLCByZWNlaXZlci5jb3B5UmVmKCksIG51bGxwdHIpOwotICAgIHRy
YW5zY2VpdmVyLT5kaXNhYmxlU2VuZGluZ0RpcmVjdGlvbigpOwotICAgIG1fcGVlckNvbm5lY3Rp
b24uYWRkVHJhbnNjZWl2ZXIoV1RGTW92ZSh0cmFuc2NlaXZlcikpOwotCi0gICAgcmV0dXJuIHsg
V1RGTW92ZShyZWNlaXZlciksIFdURk1vdmUoc291cmNlKSB9OwotfQotCi1MaWJXZWJSVENQZWVy
Q29ubmVjdGlvbkJhY2tlbmQ6OkF1ZGlvUmVjZWl2ZXIgTGliV2ViUlRDUGVlckNvbm5lY3Rpb25C
YWNrZW5kOjphdWRpb1JlY2VpdmVyKFN0cmluZyYmIHRyYWNrSWQpCi17Ci0gICAgLy8gRklYTUU6
IEFkZCB0byBWZWN0b3IgYSB1dGlsaXR5IHJvdXRpbmUgZm9yIHRoYXQgdGFrZS1vci1jcmVhdGUg
cGF0dGVybi4KLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGJlIHNlbGVjdGluZyB0aGUgcmVjZWl2
ZXIgYmFzZWQgb24gdHJhY2sgaWQuCi0gICAgZm9yIChzaXplX3QgY3B0ciA9IDA7IGNwdHIgPCBt
X3BlbmRpbmdSZWNlaXZlcnMuc2l6ZSgpOyArK2NwdHIpIHsKLSAgICAgICAgaWYgKG1fcGVuZGlu
Z1JlY2VpdmVyc1tjcHRyXS0+dHJhY2soKS5zb3VyY2UoKS50eXBlKCkgPT0gUmVhbHRpbWVNZWRp
YVNvdXJjZTo6VHlwZTo6QXVkaW8pIHsKLSAgICAgICAgICAgIFJlZjxSVENSdHBSZWNlaXZlcj4g
cmVjZWl2ZXIgPSBtX3BlbmRpbmdSZWNlaXZlcnNbY3B0cl0uY29weVJlZigpOwotICAgICAgICAg
ICAgbV9wZW5kaW5nUmVjZWl2ZXJzLnJlbW92ZShjcHRyKTsKLSAgICAgICAgICAgIFJlZjxSZWFs
dGltZUluY29taW5nQXVkaW9Tb3VyY2U+IHNvdXJjZSA9IHN0YXRpY19jYXN0PFJlYWx0aW1lSW5j
b21pbmdBdWRpb1NvdXJjZSY+KHJlY2VpdmVyLT50cmFjaygpLnNvdXJjZSgpKTsKLSAgICAgICAg
ICAgIHJldHVybiB7IFdURk1vdmUocmVjZWl2ZXIpLCBXVEZNb3ZlKHNvdXJjZSkgfTsKLSAgICAg
ICAgfQotICAgIH0KLSAgICBhdXRvIHNvdXJjZSA9IFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJj
ZTo6Y3JlYXRlKG51bGxwdHIsIFdURk1vdmUodHJhY2tJZCkpOwotICAgIGF1dG8gcmVjZWl2ZXIg
PSBjcmVhdGVSZWNlaXZlckZvclNvdXJjZShzb3VyY2UuY29weVJlZigpLCBudWxscHRyKTsKLQot
ICAgIGF1dG8gc2VuZGVyQmFja2VuZCA9IG1ha2VVbmlxdWU8TGliV2ViUlRDUnRwU2VuZGVyQmFj
a2VuZD4oKnRoaXMsIG51bGxwdHIpOwotICAgIGF1dG8gdHJhbnNjZWl2ZXIgPSBSVENSdHBUcmFu
c2NlaXZlcjo6Y3JlYXRlKFJUQ1J0cFNlbmRlcjo6Y3JlYXRlKCp0aGlzLCAiYXVkaW8iX3MsIHsg
fSwgV1RGTW92ZShzZW5kZXJCYWNrZW5kKSksIHJlY2VpdmVyLmNvcHlSZWYoKSwgbnVsbHB0cik7
Ci0gICAgdHJhbnNjZWl2ZXItPmRpc2FibGVTZW5kaW5nRGlyZWN0aW9uKCk7Ci0gICAgbV9wZWVy
Q29ubmVjdGlvbi5hZGRUcmFuc2NlaXZlcihXVEZNb3ZlKHRyYW5zY2VpdmVyKSk7Ci0KLSAgICBy
ZXR1cm4geyBXVEZNb3ZlKHJlY2VpdmVyKSwgV1RGTW92ZShzb3VyY2UpIH07Ci19Ci0KIHN0ZDo6
dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+IExpYldlYlJUQ1BlZXJDb25uZWN0aW9u
QmFja2VuZDo6Y3JlYXRlRGF0YUNoYW5uZWxIYW5kbGVyKGNvbnN0IFN0cmluZyYgbGFiZWwsIGNv
bnN0IFJUQ0RhdGFDaGFubmVsSW5pdCYgb3B0aW9ucykKIHsKICAgICByZXR1cm4gbV9lbmRwb2lu
dC0+Y3JlYXRlRGF0YUNoYW5uZWwobGFiZWwsIG9wdGlvbnMpOwpAQCAtNDMwLDcgKzM3Miw3IEBA
IEV4Y2VwdGlvbk9yPFJlZjxSVENSdHBTZW5kZXI+PiBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJh
Y2tlbmQ6OmFkZFRyYWNrKE1lZGlhU3RyCiAgICAgYXV0byB0cmFuc2NlaXZlckJhY2tlbmQgPSBt
X2VuZHBvaW50LT50cmFuc2NlaXZlckJhY2tlbmRGcm9tU2VuZGVyKCpzZW5kZXJCYWNrZW5kKTsK
IAogICAgIGF1dG8gc2VuZGVyID0gUlRDUnRwU2VuZGVyOjpjcmVhdGUoKnRoaXMsIG1ha2VSZWYo
dHJhY2spLCBXVEZNb3ZlKG1lZGlhU3RyZWFtSWRzKSwgV1RGTW92ZShzZW5kZXJCYWNrZW5kKSk7
Ci0gICAgYXV0byByZWNlaXZlciA9IGNyZWF0ZVJlY2VpdmVyRm9yU291cmNlKGNyZWF0ZUVtcHR5
U291cmNlKHRyYWNrLmtpbmQoKSwgY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpKSwgdHJhbnNj
ZWl2ZXJCYWNrZW5kLT5jcmVhdGVSZWNlaXZlckJhY2tlbmQoKSk7CisgICAgYXV0byByZWNlaXZl
ciA9IGNyZWF0ZVJlY2VpdmVyKHRyYW5zY2VpdmVyQmFja2VuZC0+Y3JlYXRlUmVjZWl2ZXJCYWNr
ZW5kKCkpOwogICAgIGF1dG8gdHJhbnNjZWl2ZXIgPSBSVENSdHBUcmFuc2NlaXZlcjo6Y3JlYXRl
KHNlbmRlci5jb3B5UmVmKCksIFdURk1vdmUocmVjZWl2ZXIpLCBXVEZNb3ZlKHRyYW5zY2VpdmVy
QmFja2VuZCkpOwogICAgIG1fcGVlckNvbm5lY3Rpb24uYWRkSW50ZXJuYWxUcmFuc2NlaXZlcihX
VEZNb3ZlKHRyYW5zY2VpdmVyKSk7CiAgICAgcmV0dXJuIHNlbmRlcjsKQEAgLTQ0NCw3ICszODYs
NyBAQCBFeGNlcHRpb25PcjxSZWY8UlRDUnRwVHJhbnNjZWl2ZXI+PiBMaWJXZWJSVENQZWVyQ29u
bmVjdGlvbkJhY2tlbmQ6OmFkZFRyYW5zY2VpdgogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZEFjY2Vzc0Vycm9yLCAiVW5hYmxlIHRvIGFkZCB0cmFuc2NlaXZlciJfcyB9OwogCiAg
ICAgYXV0byBzZW5kZXIgPSBSVENSdHBTZW5kZXI6OmNyZWF0ZSgqdGhpcywgV1RGTW92ZSh0cmFj
a09yS2luZCksIFZlY3RvcjxTdHJpbmc+IHsgfSwgV1RGTW92ZShiYWNrZW5kcy0+c2VuZGVyQmFj
a2VuZCkpOwotICAgIGF1dG8gcmVjZWl2ZXIgPSBjcmVhdGVSZWNlaXZlckZvclNvdXJjZShjcmVh
dGVFbXB0eVNvdXJjZShzZW5kZXItPnRyYWNrS2luZCgpLCBjcmVhdGVDYW5vbmljYWxVVUlEU3Ry
aW5nKCkpLCBXVEZNb3ZlKGJhY2tlbmRzLT5yZWNlaXZlckJhY2tlbmQpKTsKKyAgICBhdXRvIHJl
Y2VpdmVyID0gY3JlYXRlUmVjZWl2ZXIoV1RGTW92ZShiYWNrZW5kcy0+cmVjZWl2ZXJCYWNrZW5k
KSk7CiAgICAgYXV0byB0cmFuc2NlaXZlciA9IFJUQ1J0cFRyYW5zY2VpdmVyOjpjcmVhdGUoV1RG
TW92ZShzZW5kZXIpLCBXVEZNb3ZlKHJlY2VpdmVyKSwgV1RGTW92ZShiYWNrZW5kcy0+dHJhbnNj
ZWl2ZXJCYWNrZW5kKSk7CiAgICAgbV9wZWVyQ29ubmVjdGlvbi5hZGRJbnRlcm5hbFRyYW5zY2Vp
dmVyKHRyYW5zY2VpdmVyLmNvcHlSZWYoKSk7CiAgICAgcmV0dXJuIHRyYW5zY2VpdmVyOwpAQCAt
NDc5LDI1ICs0MjEsMTUgQEAgUlRDUnRwVHJhbnNjZWl2ZXIqIExpYldlYlJUQ1BlZXJDb25uZWN0
aW9uQmFja2VuZDo6ZXhpc3RpbmdUcmFuc2NlaXZlcihXVEY6OkZ1bmMKICAgICByZXR1cm4gbnVs
bHB0cjsKIH0KIAotUlRDUnRwVHJhbnNjZWl2ZXImIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFj
a2VuZDo6bmV3UmVtb3RlVHJhbnNjZWl2ZXIoc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ1J0cFRy
YW5zY2VpdmVyQmFja2VuZD4mJiB0cmFuc2NlaXZlckJhY2tlbmQsIFJlZjxSZWFsdGltZU1lZGlh
U291cmNlPiYmIHJlY2VpdmVyU291cmNlKQorUlRDUnRwVHJhbnNjZWl2ZXImIExpYldlYlJUQ1Bl
ZXJDb25uZWN0aW9uQmFja2VuZDo6bmV3UmVtb3RlVHJhbnNjZWl2ZXIoc3RkOjp1bmlxdWVfcHRy
PExpYldlYlJUQ1J0cFRyYW5zY2VpdmVyQmFja2VuZD4mJiB0cmFuc2NlaXZlckJhY2tlbmQsIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSkKIHsKLSAgICBhdXRvIHNlbmRlciA9IFJUQ1J0
cFNlbmRlcjo6Y3JlYXRlKCp0aGlzLCByZWNlaXZlclNvdXJjZS0+dHlwZSgpID09IFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvID8gImF1ZGlvIl9zIDogInZpZGVvIl9zLCBWZWN0b3I8
U3RyaW5nPiB7IH0sIHRyYW5zY2VpdmVyQmFja2VuZC0+Y3JlYXRlU2VuZGVyQmFja2VuZCgqdGhp
cywgbnVsbHB0cikpOwotICAgIGF1dG8gcmVjZWl2ZXIgPSBjcmVhdGVSZWNlaXZlckZvclNvdXJj
ZShXVEZNb3ZlKHJlY2VpdmVyU291cmNlKSwgdHJhbnNjZWl2ZXJCYWNrZW5kLT5jcmVhdGVSZWNl
aXZlckJhY2tlbmQoKSk7CisgICAgYXV0byBzZW5kZXIgPSBSVENSdHBTZW5kZXI6OmNyZWF0ZSgq
dGhpcywgdHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbyA/ICJhdWRpbyJf
cyA6ICJ2aWRlbyJfcywgVmVjdG9yPFN0cmluZz4geyB9LCB0cmFuc2NlaXZlckJhY2tlbmQtPmNy
ZWF0ZVNlbmRlckJhY2tlbmQoKnRoaXMsIG51bGxwdHIpKTsKKyAgICBhdXRvIHJlY2VpdmVyID0g
Y3JlYXRlUmVjZWl2ZXIodHJhbnNjZWl2ZXJCYWNrZW5kLT5jcmVhdGVSZWNlaXZlckJhY2tlbmQo
KSk7CiAgICAgYXV0byB0cmFuc2NlaXZlciA9IFJUQ1J0cFRyYW5zY2VpdmVyOjpjcmVhdGUoV1RG
TW92ZShzZW5kZXIpLCBXVEZNb3ZlKHJlY2VpdmVyKSwgV1RGTW92ZSh0cmFuc2NlaXZlckJhY2tl
bmQpKTsKICAgICBtX3BlZXJDb25uZWN0aW9uLmFkZEludGVybmFsVHJhbnNjZWl2ZXIodHJhbnNj
ZWl2ZXIuY29weVJlZigpKTsKICAgICByZXR1cm4gdHJhbnNjZWl2ZXIuZ2V0KCk7CiB9CiAKLVJl
ZjxSVENSdHBUcmFuc2NlaXZlcj4gTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpjb21w
bGV0ZUFkZFRyYW5zY2VpdmVyKFJlZjxSVENSdHBTZW5kZXI+JiYgc2VuZGVyLCBjb25zdCBSVENS
dHBUcmFuc2NlaXZlckluaXQmIGluaXQsIGNvbnN0IFN0cmluZyYgdHJhY2tJZCwgY29uc3QgU3Ry
aW5nJiB0cmFja0tpbmQpCi17Ci0gICAgYXV0byB0cmFuc2NlaXZlciA9IFJUQ1J0cFRyYW5zY2Vp
dmVyOjpjcmVhdGUoV1RGTW92ZShzZW5kZXIpLCBjcmVhdGVSZWNlaXZlcih0cmFja0tpbmQsIHRy
YWNrSWQpLCBudWxscHRyKTsKLQotICAgIHRyYW5zY2VpdmVyLT5zZXREaXJlY3Rpb24oaW5pdC5k
aXJlY3Rpb24pOwotCi0gICAgbV9wZWVyQ29ubmVjdGlvbi5hZGRJbnRlcm5hbFRyYW5zY2VpdmVy
KHRyYW5zY2VpdmVyLmNvcHlSZWYoKSk7Ci0gICAgcmV0dXJuIHRyYW5zY2VpdmVyOwotfQotCiB2
b2lkIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6Y29sbGVjdFRyYW5zY2VpdmVycygp
CiB7CiAgICAgbV9lbmRwb2ludC0+Y29sbGVjdFRyYW5zY2VpdmVycygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVl
ckNvbm5lY3Rpb25CYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAppbmRleCBjNzA2YTJh
MTM2ZjI2MTcyNjIxYzE5MWE4NzkyMDc5OWRjZDUzMjU5Li40N2UxMTk4ZmUxMjFkNzI0MWFlYTZl
ZjEzMzZiNGZhYjczODJlNjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuaApAQCAtMjcsNiArMjcsNyBAQAogI2lmIFVTRShMSUJXRUJS
VEMpCiAKICNpbmNsdWRlICJQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCIKKyNpbmNsdWRlICJSZWFs
dGltZU1lZGlhU291cmNlLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KIAogbmFtZXNwYWNl
IHdlYnJ0YyB7CkBAIC0zOCw2ICszOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIExp
YldlYlJUQ01lZGlhRW5kcG9pbnQ7CiBjbGFzcyBMaWJXZWJSVENQcm92aWRlcjsKIGNsYXNzIExp
YldlYlJUQ1J0cFNlbmRlckJhY2tlbmQ7CitjbGFzcyBMaWJXZWJSVENSdHBSZWNlaXZlckJhY2tl
bmQ7CiBjbGFzcyBMaWJXZWJSVENSdHBUcmFuc2NlaXZlckJhY2tlbmQ7CiBjbGFzcyBSVENSdHBS
ZWNlaXZlcjsKIGNsYXNzIFJUQ1J0cFJlY2VpdmVyQmFja2VuZDsKQEAgLTk2LDMyICs5OCwxNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgc2V0U2VuZGVyU291cmNlRnJvbVRyYWNrKExpYldlYlJUQ1J0
cFNlbmRlckJhY2tlbmQmLCBNZWRpYVN0cmVhbVRyYWNrJik7CiAKICAgICBSVENSdHBUcmFuc2Nl
aXZlciogZXhpc3RpbmdUcmFuc2NlaXZlcihXVEY6OkZ1bmN0aW9uPGJvb2woTGliV2ViUlRDUnRw
VHJhbnNjZWl2ZXJCYWNrZW5kJik+JiYpOwotICAgIFJUQ1J0cFRyYW5zY2VpdmVyJiBuZXdSZW1v
dGVUcmFuc2NlaXZlcihzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDUnRwVHJhbnNjZWl2ZXJCYWNr
ZW5kPiYmLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7CisgICAgUlRDUnRwVHJhbnNjZWl2
ZXImIG5ld1JlbW90ZVRyYW5zY2VpdmVyKHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENSdHBUcmFu
c2NlaXZlckJhY2tlbmQ+JiYsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUpOwogCiAgICAgdm9p
ZCBjb2xsZWN0VHJhbnNjZWl2ZXJzKCkgZmluYWw7CiAKLSAgICBzdHJ1Y3QgVmlkZW9SZWNlaXZl
ciB7Ci0gICAgICAgIFJlZjxSVENSdHBSZWNlaXZlcj4gcmVjZWl2ZXI7Ci0gICAgICAgIFJlZjxS
ZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U+IHNvdXJjZTsKLSAgICB9OwotICAgIHN0cnVjdCBB
dWRpb1JlY2VpdmVyIHsKLSAgICAgICAgUmVmPFJUQ1J0cFJlY2VpdmVyPiByZWNlaXZlcjsKLSAg
ICAgICAgUmVmPFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZT4gc291cmNlOwotICAgIH07Ci0g
ICAgVmlkZW9SZWNlaXZlciB2aWRlb1JlY2VpdmVyKFN0cmluZyYmIHRyYWNrSWQpOwotICAgIEF1
ZGlvUmVjZWl2ZXIgYXVkaW9SZWNlaXZlcihTdHJpbmcmJiB0cmFja0lkKTsKLQogcHJpdmF0ZToK
ICAgICBib29sIGlzTG9jYWxEZXNjcmlwdGlvblNldCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
aXNMb2NhbERlc2NyaXB0aW9uU2V0OyB9CiAKLSAgICBSZWY8UlRDUnRwVHJhbnNjZWl2ZXI+IGNv
bXBsZXRlQWRkVHJhbnNjZWl2ZXIoUmVmPFJUQ1J0cFNlbmRlcj4mJiwgY29uc3QgUlRDUnRwVHJh
bnNjZWl2ZXJJbml0JiwgY29uc3QgU3RyaW5nJiB0cmFja0lkLCBjb25zdCBTdHJpbmcmIHRyYWNr
S2luZCk7Ci0KLSAgICBSZWY8UlRDUnRwUmVjZWl2ZXI+IGNyZWF0ZVJlY2VpdmVyKGNvbnN0IFN0
cmluZyYgdHJhY2tLaW5kLCBjb25zdCBTdHJpbmcmIHRyYWNrSWQpOwotCiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4KICAgICBFeGNlcHRpb25PcjxSZWY8UlRDUnRwVHJhbnNjZWl2ZXI+PiBhZGRU
cmFuc2NlaXZlckZyb21UcmFja09yS2luZChUJiYgdHJhY2tPcktpbmQsIGNvbnN0IFJUQ1J0cFRy
YW5zY2VpdmVySW5pdCYpOwogCi0gICAgUmVmPFJUQ1J0cFJlY2VpdmVyPiBjcmVhdGVSZWNlaXZl
ckZvclNvdXJjZShSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiwgc3RkOjp1bmlxdWVfcHRyPFJU
Q1J0cFJlY2VpdmVyQmFja2VuZD4mJik7CisgICAgUmVmPFJUQ1J0cFJlY2VpdmVyPiBjcmVhdGVS
ZWNlaXZlcihzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDUnRwUmVjZWl2ZXJCYWNrZW5kPiYmKTsK
IAogICAgIHZvaWQgc3VzcGVuZCgpIGZpbmFsOwogICAgIHZvaWQgcmVzdW1lKCkgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9M
aWJXZWJSVENSdHBSZWNlaXZlckJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwUmVjZWl2ZXJCYWNrZW5kLmNwcAppbmRl
eCA1NmYwMmM2YzAwYjNjMzA4NGI0NjFkNzJmZmE5MmIzMjZjODQwZDU2Li5lNTg1NDA2N2U3Y2Q3
M2RjNWZjZTg3MzNjMTc1MDJhYWRhM2EzYjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBSZWNlaXZlckJhY2tlbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1J0cFJlY2VpdmVyQmFja2VuZC5jcHAKQEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRl
ICJMaWJXZWJSVENSdHBSZWNlaXZlckJhY2tlbmQuaCIKIAogI2luY2x1ZGUgIkxpYldlYlJUQ1V0
aWxzLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmgiCisjaW5jbHVk
ZSAiUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmgiCiAKICNpZiBFTkFCTEUoV0VCX1JUQykg
JiYgVVNFKExJQldFQlJUQykKIApAQCAtNzgsNiArODAsMjUgQEAgVmVjdG9yPFJUQ1J0cFN5bmNo
cm9uaXphdGlvblNvdXJjZT4gTGliV2ViUlRDUnRwUmVjZWl2ZXJCYWNrZW5kOjpnZXRTeW5jaHJv
bml6YXQKICAgICByZXR1cm4gc291cmNlczsKIH0KIAorUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+
IExpYldlYlJUQ1J0cFJlY2VpdmVyQmFja2VuZDo6Y3JlYXRlU291cmNlKCkKK3sKKyAgICBhdXRv
IHJ0Y1RyYWNrID0gbV9ydGNSZWNlaXZlci0+dHJhY2soKTsKKyAgICBzd2l0Y2ggKG1fcnRjUmVj
ZWl2ZXItPm1lZGlhX3R5cGUoKSkgeworICAgIGNhc2UgY3JpY2tldDo6TUVESUFfVFlQRV9EQVRB
OgorICAgICAgICBicmVhazsKKyAgICBjYXNlIGNyaWNrZXQ6Ok1FRElBX1RZUEVfQVVESU86IHsK
KyAgICAgICAgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4g
YXVkaW9UcmFjayA9IHN0YXRpY19jYXN0PHdlYnJ0Yzo6QXVkaW9UcmFja0ludGVyZmFjZSo+KHJ0
Y1RyYWNrLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJj
ZTo6Y3JlYXRlKFdURk1vdmUoYXVkaW9UcmFjayksIGZyb21TdGRTdHJpbmcocnRjVHJhY2stPmlk
KCkpKTsKKyAgICB9CisgICAgY2FzZSBjcmlja2V0OjpNRURJQV9UWVBFX1ZJREVPOiB7CisgICAg
ICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlZpZGVvVHJhY2tJbnRlcmZhY2U+IHZpZGVv
VHJhY2sgPSBzdGF0aWNfY2FzdDx3ZWJydGM6OlZpZGVvVHJhY2tJbnRlcmZhY2UqPihydGNUcmFj
ay5nZXQoKSk7CisgICAgICAgIHJldHVybiBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6OmNy
ZWF0ZShXVEZNb3ZlKHZpZGVvVHJhY2spLCBmcm9tU3RkU3RyaW5nKHJ0Y1RyYWNrLT5pZCgpKSk7
CisgICAgfQorICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfUlRDKSAmJiBV
U0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwUmVjZWl2ZXJCYWNrZW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBSZWNlaXZlckJh
Y2tlbmQuaAppbmRleCAxZGE4ZGVkMWYxYjMwNTdjYjI2ZWI1MGQwMWYyNjI1YjA2OTE4ZWY0Li43
MTlmNWM2NzI5OWU4M2Y1YTcxZTMzNjUxNTAzYmJmNTFhMzdmMDJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBSZWNl
aXZlckJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENSdHBSZWNlaXZlckJhY2tlbmQuaApAQCAtMzgsNiArMzgsOCBAQCBB
TExPV19VTlVTRURfUEFSQU1FVEVSU19FTkQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFz
cyBSZWFsdGltZU1lZGlhU291cmNlOworCiBjbGFzcyBMaWJXZWJSVENSdHBSZWNlaXZlckJhY2tl
bmQgZmluYWwgOiBwdWJsaWMgUlRDUnRwUmVjZWl2ZXJCYWNrZW5kIHsKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKQEAgLTQ4LDYgKzUwLDggQEAgcHVibGljOgogCiAgICAg
d2VicnRjOjpSdHBSZWNlaXZlckludGVyZmFjZSogcnRjUmVjZWl2ZXIoKSB7IHJldHVybiBtX3J0
Y1JlY2VpdmVyLmdldCgpOyB9CiAKKyAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRl
U291cmNlKCk7CisKIHByaXZhdGU6CiAgICAgUlRDUnRwUGFyYW1ldGVycyBnZXRQYXJhbWV0ZXJz
KCkgZmluYWw7CiAgICAgVmVjdG9yPFJUQ1J0cENvbnRyaWJ1dGluZ1NvdXJjZT4gZ2V0Q29udHJp
YnV0aW5nU291cmNlcygpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1Nv
dXJjZS5jcHAKaW5kZXggYTRiMTI3YWE5MzY3NzAzNGVjYzlmMGMyN2U3MjM3Yjk5NTEzODUxNS4u
ODRlNzNhZDI2MmQ2YmY5NzM1ZGY5ODUzYmUxMTc3MGRmNjQ3Nzc5OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291
cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwCkBAIC00Miw3ICs0Miw3IEBAIFJlYWx0aW1lSW5jb21p
bmdBdWRpb1NvdXJjZTo6UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlKHJ0Yzo6c2NvcGVkX3Jl
ZnB0cjx3ZWJyCiAgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5cGU6OkF1ZGlvLCAicmVtb3RlIGF1ZGlvIl9zLCBXVEZNb3ZlKGF1ZGlvVHJhY2tJZCkpCiAg
ICAgLCBtX2F1ZGlvVHJhY2soV1RGTW92ZShhdWRpb1RyYWNrKSkKIHsKLSAgICBub3RpZnlNdXRl
ZENoYW5nZSghbV9hdWRpb1RyYWNrKTsKKyAgICBBU1NFUlQobV9hdWRpb1RyYWNrKTsKIH0KIAog
UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjp+UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNl
KCkKQEAgLTYyLDE5ICs2Miw2IEBAIHZvaWQgUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpz
dG9wUHJvZHVjaW5nRGF0YSgpCiAgICAgICAgIG1fYXVkaW9UcmFjay0+UmVtb3ZlU2luayh0aGlz
KTsKIH0KIAotdm9pZCBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OnNldFNvdXJjZVRyYWNr
KHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OkF1ZGlvVHJhY2tJbnRlcmZhY2U+JiYgdHJhY2sp
Ci17Ci0gICAgQVNTRVJUKHRyYWNrKTsKLQotICAgIGlmIChtX2F1ZGlvVHJhY2sgJiYgaXNQcm9k
dWNpbmdEYXRhKCkpCi0gICAgICAgIG1fYXVkaW9UcmFjay0+UmVtb3ZlU2luayh0aGlzKTsKLQot
ICAgIG1fYXVkaW9UcmFjayA9IFdURk1vdmUodHJhY2spOwotICAgIG5vdGlmeU11dGVkQ2hhbmdl
KCFtX2F1ZGlvVHJhY2spOwotICAgIGlmIChpc1Byb2R1Y2luZ0RhdGEoKSkKLSAgICAgICAgbV9h
dWRpb1RyYWNrLT5BZGRTaW5rKHRoaXMpOwotfQotCiBjb25zdCBSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzJiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OmNhcGFiaWxpdGllcygp
CiB7CiAgICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OmVtcHR5Q2Fw
YWJpbGl0aWVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oCmluZGV4IGQ1MWNj
OTJlNzdiM2UwOGZlMDg0ZDEyYmNiNTg4MjA5NzMwNmM0ZjYuLjRhMWUxZDMyNzdhNjY4ZmQwNGU3
ODdmODM5YTQ0NDA1OGU2YTkyYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5o
CkBAIC01Miw4ICs1Miw2IEBAIGNsYXNzIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZQogcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlPiBjcmVhdGUo
cnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4mJiwgU3RyaW5n
JiYpOwogCi0gICAgdm9pZCBzZXRTb3VyY2VUcmFjayhydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRj
OjpBdWRpb1RyYWNrSW50ZXJmYWNlPiYmKTsKLQogcHJvdGVjdGVkOgogICAgIFJlYWx0aW1lSW5j
b21pbmdBdWRpb1NvdXJjZShydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpBdWRpb1RyYWNrSW50
ZXJmYWNlPiYmLCBTdHJpbmcmJik7CiAgICAgflJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVJbmNvbWluZ1ZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAKaW5kZXggNDU0MDNkYzZjYTI5
YWY4ODZlYTVhZWU2ZTI2NGVjZjc0OTUyZmZkMi4uNGM3ZjlmNWEyZTAyZjY2Njk0YWM5NDg5NTRl
NGRiN2FjZWI5NjU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuY3BwCkBA
IC0zOSw3ICszOSw3IEBAIFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZTo6UmVhbHRpbWVJbmNv
bWluZ1ZpZGVvU291cmNlKHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJyCiAgICAgOiBSZWFsdGltZU1l
ZGlhU291cmNlKFR5cGU6OlZpZGVvLCAicmVtb3RlIHZpZGVvIl9zLCBXVEZNb3ZlKHZpZGVvVHJh
Y2tJZCkpCiAgICAgLCBtX3ZpZGVvVHJhY2soV1RGTW92ZSh2aWRlb1RyYWNrKSkKIHsKLSAgICBu
b3RpZnlNdXRlZENoYW5nZSghbV92aWRlb1RyYWNrKTsKKyAgICBBU1NFUlQobV92aWRlb1RyYWNr
KTsKIAogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyBjb25zdHJh
aW50czsKICAgICBjb25zdHJhaW50cy5zZXRTdXBwb3J0c1dpZHRoKHRydWUpOwpAQCAtNTQsMTgg
KzU0LDYgQEAgdm9pZCBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6OnN0YXJ0UHJvZHVjaW5n
RGF0YSgpCiAgICAgICAgIG1fdmlkZW9UcmFjay0+QWRkT3JVcGRhdGVTaW5rKHRoaXMsIHJ0Yzo6
VmlkZW9TaW5rV2FudHMoKSk7CiB9CiAKLXZvaWQgUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNl
OjpzZXRTb3VyY2VUcmFjayhydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb1RyYWNrSW50
ZXJmYWNlPiYmIHRyYWNrKQotewotICAgIEFTU0VSVCh0cmFjayk7Ci0KLSAgICBpZiAobV92aWRl
b1RyYWNrICYmIGlzUHJvZHVjaW5nRGF0YSgpKQotICAgICAgICBtX3ZpZGVvVHJhY2stPlJlbW92
ZVNpbmsodGhpcyk7Ci0gICAgbV92aWRlb1RyYWNrID0gV1RGTW92ZSh0cmFjayk7Ci0gICAgbm90
aWZ5TXV0ZWRDaGFuZ2UoIW1fdmlkZW9UcmFjayk7Ci0gICAgaWYgKGlzUHJvZHVjaW5nRGF0YSgp
KQotICAgICAgICBtX3ZpZGVvVHJhY2stPkFkZE9yVXBkYXRlU2luayh0aGlzLCBydGM6OlZpZGVv
U2lua1dhbnRzKCkpOwotfQotCiB2b2lkIFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZTo6c3Rv
cFByb2R1Y2luZ0RhdGEoKQogewogICAgIGlmIChtX3ZpZGVvVHJhY2spCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZUluY29taW5nVmlkZW9T
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5j
b21pbmdWaWRlb1NvdXJjZS5oCmluZGV4IGQxMTcwZTcwNWY0Y2VlMzZjOGRmOTc0YWUyZGVlN2U1
MTU0Y2Y4ZWIuLmExNTdkNTk3OTIxZWFlYjY5ZTA3ZDJiMGQxNDEwZDNhMjdhNTE3M2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21p
bmdWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5oCkBAIC01OCw4ICs1OCw2IEBAIHB1YmxpYzoK
ICAgICAgICAgc3RvcCgpOwogICAgIH0KIAotICAgIHZvaWQgc2V0U291cmNlVHJhY2socnRjOjpz
Y29wZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZW9UcmFja0ludGVyZmFjZT4mJik7Ci0KIHByb3RlY3Rl
ZDoKICAgICBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UocnRjOjpzY29wZWRfcmVmcHRyPHdl
YnJ0Yzo6VmlkZW9UcmFja0ludGVyZmFjZT4mJiwgU3RyaW5nJiYpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uaAppbmRleCBh
ZGI2MTM1YzBiYWM2ODk5MjU5NzViZDc1YTc5NTNhMmY4NmQ0ZTM2Li4zMjAxNjY1YTI2OGI4MTU5
OGU3ZDQ4MTZiODVjMmJjY2Y1MDgyMDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmgKQEAgLTE4OSw2ICsxODksMTkgQEAg
cHJpdmF0ZToKICAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpNZWRpYVN0cmVhbVRyYWNr
SW50ZXJmYWNlPiBtX3RyYWNrOwogfTsKIAorY2xhc3MgTW9ja01lZGlhU3RyZWFtVHJhY2sgOiBw
dWJsaWMgd2VicnRjOjpNZWRpYVN0cmVhbVRyYWNrSW50ZXJmYWNlIHsKK3B1YmxpYzoKKyAgICBN
b2NrTWVkaWFTdHJlYW1UcmFjaygpID0gZGVmYXVsdDsKK3ByaXZhdGU6CisgICAgc3RkOjpzdHJp
bmcga2luZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJ2aWRlbyI7IH0KKyAgICBzdGQ6OnN0cmlu
ZyBpZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJteW1vY2t0cmFjayI7IH0KKyAgICBib29sIGVu
YWJsZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgYm9vbCBzZXRfZW5hYmxl
ZChib29sKSBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgVHJhY2tTdGF0ZSBzdGF0ZSgpIGNv
bnN0ICB7IHJldHVybiBUcmFja1N0YXRlOjprTGl2ZTsgfQorICAgIHZvaWQgUmVnaXN0ZXJPYnNl
cnZlcih3ZWJydGM6Ok9ic2VydmVySW50ZXJmYWNlKikgZmluYWwgeyB9CisgICAgdm9pZCBVbnJl
Z2lzdGVyT2JzZXJ2ZXIod2VicnRjOjpPYnNlcnZlckludGVyZmFjZSopIGZpbmFsIHsgfQorfTsK
KwogY2xhc3MgTW9ja1J0cFJlY2VpdmVyIDogcHVibGljIHdlYnJ0Yzo6UnRwUmVjZWl2ZXJJbnRl
cmZhY2UgewogcHJpdmF0ZToKICAgICBjcmlja2V0OjpNZWRpYVR5cGUgbWVkaWFfdHlwZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIGNyaWNrZXQ6Ok1FRElBX1RZUEVfVklERU87IH0KQEAgLTE5Niw4
ICsyMDksMTUgQEAgcHJpdmF0ZToKICAgICB3ZWJydGM6OlJ0cFBhcmFtZXRlcnMgR2V0UGFyYW1l
dGVycygpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQogICAgIGJvb2wgU2V0UGFyYW1ldGVycyhjb25z
dCB3ZWJydGM6OlJ0cFBhcmFtZXRlcnMmKSB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9pZCBTZXRP
YnNlcnZlcih3ZWJydGM6OlJ0cFJlY2VpdmVyT2JzZXJ2ZXJJbnRlcmZhY2UqKSB7IH0KLSAgICBy
dGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpNZWRpYVN0cmVhbVRyYWNrSW50ZXJmYWNlPiB0cmFj
aygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHsgfTsgfQogICAgIHZvaWQgU2V0Sml0dGVyQnVmZmVy
TWluaW11bURlbGF5KGFic2w6Om9wdGlvbmFsPGRvdWJsZT4pIGZpbmFsIHsgfQorICAgIHJ0Yzo6
c2NvcGVkX3JlZnB0cjx3ZWJydGM6Ok1lZGlhU3RyZWFtVHJhY2tJbnRlcmZhY2U+IHRyYWNrKCkg
Y29uc3QgZmluYWwKKyAgICB7CisgICAgICAgIGlmICghbV90cmFjaykKKyAgICAgICAgICAgIGNv
bnN0X2Nhc3Q8TW9ja1J0cFJlY2VpdmVyKj4odGhpcyktPm1fdHJhY2sgPSBuZXcgcnRjOjpSZWZD
b3VudGVkT2JqZWN0PE1vY2tNZWRpYVN0cmVhbVRyYWNrPigpOworICAgICAgICByZXR1cm4gbV90
cmFjazsKKyAgICB9CisKKyAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpNZWRpYVN0cmVh
bVRyYWNrSW50ZXJmYWNlPiBtX3RyYWNrOwogfTsKIAogY2xhc3MgTW9ja1J0cFRyYW5zY2VpdmVy
IDogcHVibGljIHdlYnJ0Yzo6UnRwVHJhbnNjZWl2ZXJJbnRlcmZhY2UgewpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKaW5kZXggYjk0Mjc3OTZjZTJhY2Y2MTczYzU2MjFhODVlMjRjY2IxMjhm
NTRhYi4uNDM1NjA3MDY0OWJjMTlmYzYwM2ZlMWVjZTMwNjQ0NGEzZjVkNjA2ZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDMtMTYgIHlvdWVu
biBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSB0aGUgdXNlIG9m
IGVtcHR5IFdlYlJUQyBzb3VyY2VzIGZvciByZWNlaXZlciB0cmFja3MKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTA2MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi10cmFjay1zdGF0cy5odHRwcy1leHBlY3RlZC50eHQ6CisK
IDIwMjAtMDMtMTYgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAg
IFVuaXF1ZSBvcmlnaW5zIHNob3VsZCBub3QgYmUgUG90ZW50aWFsbHkgVHJ1c3R3b3J0aHkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLXRyYWNrLXN0YXRzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLXRyYWNrLXN0YXRzLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAyYzkwMDE0MDFi
Yzg5ZGI2MjllMGUwYjk0YmQ4MWNlMTYxN2RlMjc0Li42NWM3NzUyNjgyMjU0MjllNDRiMjBiNzEw
MmM5OWQyZjk5ZTRkZGI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi10cmFjay1zdGF0cy5odHRw
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tdHJhY2stc3RhdHMuaHR0cHMtZXhwZWN0
ZWQudHh0CkBAIC0xMSw4ICsxMSw4IEBAIEZBSUwgcmVwbGFjZVRyYWNrKCkgYmVmb3JlIG9mZmVy
OiBuZXcgdHJhY2sgYXR0YWNobWVudCBzdGF0cyBwcmVzZW50IGFzc2VydF90cnVlCiBGQUlMIHJl
cGxhY2VUcmFjaygpIGFmdGVyIG9mZmVyLCBiZWZvcmUgYW5zd2VyOiBuZXcgdHJhY2sgYXR0YWNo
bWVudCBzdGF0cyBwcmVzZW50IGFzc2VydF90cnVlOiBIYXMgc3RhdHMgZm9yIHJlcGxhY2VkIHRy
YWNrIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIHJlcGxhY2VUcmFjaygpIGFmdGVyIGFu
c3dlcjogbmV3IHRyYWNrIGF0dGFjaG1lbnQgc3RhdHMgcHJlc2VudCBhc3NlcnRfdHJ1ZTogSGFz
IHN0YXRzIGZvciByZXBsYWNlZCB0cmFjayBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBy
ZXBsYWNlVHJhY2soKTogb3JpZ2luYWwgdHJhY2sgYXR0YWNobWVudCBzdGF0cyBwcmVzZW50IGFm
dGVyIHJlcGxhY2luZyBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgdW5kZWZpbmVkCi1G
QUlMIFJUQ1J0cFNlbmRlci5nZXRTdGF0cygpIGNvbnRhaW5zIG9ubHkgb3V0Ym91bmQtcnRwIGFu
ZCByZWxhdGVkIHN0YXRzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIlR5cGVFcnJvcjogbnVsbCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5n
ICdpbmJvdW5kVHJhY2tTdGF0cy5pZCcpIgotRkFJTCBSVENSdHBSZWNlaXZlci5nZXRTdGF0cygp
IGNvbnRhaW5zIG9ubHkgaW5ib3VuZC1ydHAgYW5kIHJlbGF0ZWQgc3RhdHMgcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBudWxs
IGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ2luYm91bmRUcmFja1N0YXRzLmlkJykiCitQ
QVNTIFJUQ1J0cFNlbmRlci5nZXRTdGF0cygpIGNvbnRhaW5zIG9ubHkgb3V0Ym91bmQtcnRwIGFu
ZCByZWxhdGVkIHN0YXRzIAorUEFTUyBSVENSdHBSZWNlaXZlci5nZXRTdGF0cygpIGNvbnRhaW5z
IG9ubHkgaW5ib3VuZC1ydHAgYW5kIHJlbGF0ZWQgc3RhdHMgCiBQQVNTIFJUQ1BlZXJDb25uZWN0
aW9uLmdldFN0YXRzKHNlbmRpbmdUcmFjaykgaXMgdGhlIHNhbWUgYXMgUlRDUnRwU2VuZGVyLmdl
dFN0YXRzKCkgCiBQQVNTIFJUQ1BlZXJDb25uZWN0aW9uLmdldFN0YXRzKHJlY2VpdmluZ1RyYWNr
KSBpcyB0aGUgc2FtZSBhcyBSVENSdHBSZWNlaXZlci5nZXRTdGF0cygpIAogRkFJTCBSVENQZWVy
Q29ubmVjdGlvbi5nZXRTdGF0cyh0cmFjaykgdGhyb3dzIEludmFsaWRBY2Nlc3NFcnJvciB3aGVu
IHRoZXJlIGFyZSB6ZXJvIHNlbmRlcnMgb3IgcmVjZWl2ZXJzIGZvciB0aGUgdHJhY2sgYXNzZXJ0
X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVh
Y2hhYmxlIGNvZGUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393645</attachid>
            <date>2020-03-16 04:10:54 -0700</date>
            <delta_ts>2020-03-16 06:15:14 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-209061-20200316121052.patch</filename>
            <type>text/plain</type>
            <size>30790</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTlmZDIyNDNkMDg5NGE4
ZDQxMDg1ZWU2NmU1MDQ1NWM0NTczZjg5NS4uODYzNTExNzdmMjc3OGE0YjRhNWY0NDQ5MWYyMmQz
OGQ0YTE3ZjhkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIwLTAzLTE2ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgdGhlIHVzZSBv
ZiBlbXB0eSBXZWJSVEMgc291cmNlcyBmb3IgcmVjZWl2ZXIgdHJhY2tzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkwNjEKKworICAgICAgICBSZXZp
ZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgV2Ugbm8gbG9uZ2VyIG5lZWQgdG8gY3Jl
YXRlIHJlY2VpdmVycyB3aXRoIGVtcHR5IHNvdXJjZXMgc2luY2Ugd2Ugbm93IGFsd2F5cyBoYXZl
IGEgbGlid2VicnRjIHJlY2VpdmVyIGZyb20gd2hpY2ggd2UgY2FuIGdldCB0aGUgdHJhY2suCisg
ICAgICAgIFdlIHJlbW92ZSB0aGF0IGNvZGUgcGF0aC4KKyAgICAgICAgVGhpcyBzbGRvIGFsbG93
cyB1c2luZyB0aGUgcmlnaHQgdHJhY2sgcGFyYW1ldGVycyBmcm9tIHRoZSBzdGFydCwgbGlrZSB0
cmFjayBpZC4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIGFuZCByZWJhc2VkIHRlc3Rz
LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5k
cG9pbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDTWVkaWFFbmRwb2ludDo6YWRk
UGVuZGluZ1RyYWNrRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDTWVkaWFFbmRw
b2ludDo6Y29sbGVjdFRyYW5zY2VpdmVycyk6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENN
ZWRpYUVuZHBvaW50OjpuZXdUcmFuc2NlaXZlcik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6Y3JlYXRlUmVjZWl2
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjph
ZGRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tl
bmQ6OmFkZFRyYW5zY2VpdmVyRnJvbVRyYWNrT3JLaW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okxp
YldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6bmV3UmVtb3RlVHJhbnNjZWl2ZXIpOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0
aW9uQmFja2VuZC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1J0cFJlY2VpdmVyQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJS
VENSdHBSZWNlaXZlckJhY2tlbmQ6OmNyZWF0ZVNvdXJjZSk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwUmVjZWl2ZXJCYWNrZW5kLmg6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6UmVhbHRp
bWVJbmNvbWluZ0F1ZGlvU291cmNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2Up
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRlb1Nv
dXJjZS5oOgorICAgICAgICAqIHRlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmg6
CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFTdHJlYW1UcmFjazo6c3RhdGUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja1J0cFJlY2VpdmVyOjpTZXRPYnNlcnZlcik6CisKIDIwMjAt
MDMtMTYgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVuaXF1
ZSBvcmlnaW5zIHNob3VsZCBub3QgYmUgUG90ZW50aWFsbHkgVHJ1c3R3b3J0aHkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24u
aAppbmRleCBjMGM4MWUxNDA0YTNkMWVhZDBhMTVmNzVkMWY5NWRlMTQzYzQzM2VjLi45ZWU3ZGU2
YjUyYjM3ODliMzIzNTljZWVmYzZiYzEyZjE4ZmQ0NGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCkBAIC0xOTUs
NyArMTk1LDYgQEAgcHJpdmF0ZToKICAgICBSVENQZWVyQ29ubmVjdGlvbihEb2N1bWVudCYpOwog
CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gaW5pdGlhbGl6ZUNvbmZpZ3VyYXRpb24oUlRDQ29uZmln
dXJhdGlvbiYmKTsKLSAgICBSZWY8UlRDUnRwVHJhbnNjZWl2ZXI+IGNvbXBsZXRlQWRkVHJhbnNj
ZWl2ZXIoUmVmPFJUQ1J0cFNlbmRlcj4mJiwgY29uc3QgUlRDUnRwVHJhbnNjZWl2ZXJJbml0Jiwg
Y29uc3QgU3RyaW5nJiB0cmFja0lkLCBjb25zdCBTdHJpbmcmIHRyYWNrS2luZCk7CiAKICAgICB2
b2lkIHJlZ2lzdGVyVG9Db250cm9sbGVyKFJUQ0NvbnRyb2xsZXImKTsKICAgICB2b2lkIHVucmVn
aXN0ZXJGcm9tQ29udHJvbGxlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVu
ZHBvaW50LmNwcAppbmRleCA3ZjNjODhhZGFiMTFjYzFlZjg3ZDRhMWI2NzVmMjY3YjExYTVjN2I4
Li42N2U4ZTA3ZDM3MzA4NTg3ZThhODQ2N2M1MjA0NzI0OTU3OWM0Y2ZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRp
YUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcApAQCAtMzY4LDQ2ICszNjgsMTEgQEAg
dm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50OjphZGRQZW5kaW5nVHJhY2tFdmVudChSZWY8UlRD
UnRwUmVjZWl2ZXI+JiYgcmVjZWl2ZXIKICAgICBtX3JlbW90ZVN0cmVhbXNGcm9tUmVtb3RlVHJh
Y2suYWRkKCZ0cmFjaywgV1RGTW92ZShzdHJlYW1JZHMpKTsKIAogICAgIG1fcGVlckNvbm5lY3Rp
b25CYWNrZW5kLmFkZFBlbmRpbmdUcmFja0V2ZW50KHsgV1RGTW92ZShyZWNlaXZlciksIG1ha2VS
ZWYodHJhY2spLCBXVEZNb3ZlKHN0cmVhbXMpLCBXVEZNb3ZlKHRyYW5zY2VpdmVyKSB9KTsKLX0K
IAotc3RhdGljIGlubGluZSB2b2lkIHNldEV4aXN0aW5nUmVjZWl2ZXJTb3VyY2VUcmFjayhSZWFs
dGltZU1lZGlhU291cmNlJiBleGlzdGluZ1NvdXJjZSwgd2VicnRjOjpSdHBSZWNlaXZlckludGVy
ZmFjZSYgcnRjUmVjZWl2ZXIpCi17Ci0gICAgc3dpdGNoIChydGNSZWNlaXZlci5tZWRpYV90eXBl
KCkpIHsKLSAgICBjYXNlIGNyaWNrZXQ6Ok1FRElBX1RZUEVfQVVESU86IHsKLSAgICAgICAgQVNT
RVJUKGV4aXN0aW5nU291cmNlLnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpB
dWRpbyk7Ci0gICAgICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OkF1ZGlvVHJhY2tJbnRl
cmZhY2U+IGF1ZGlvVHJhY2sgPSBzdGF0aWNfY2FzdDx3ZWJydGM6OkF1ZGlvVHJhY2tJbnRlcmZh
Y2UqPihydGNSZWNlaXZlci50cmFjaygpLmdldCgpKTsKLSAgICAgICAgZG93bmNhc3Q8UmVhbHRp
bWVJbmNvbWluZ0F1ZGlvU291cmNlPihleGlzdGluZ1NvdXJjZSkuc2V0U291cmNlVHJhY2soV1RG
TW92ZShhdWRpb1RyYWNrKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgY2FzZSBjcmlj
a2V0OjpNRURJQV9UWVBFX1ZJREVPOiB7Ci0gICAgICAgIEFTU0VSVChleGlzdGluZ1NvdXJjZS50
eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOwotICAgICAgICBydGM6
OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb1RyYWNrSW50ZXJmYWNlPiB2aWRlb1RyYWNrID0g
c3RhdGljX2Nhc3Q8d2VicnRjOjpWaWRlb1RyYWNrSW50ZXJmYWNlKj4ocnRjUmVjZWl2ZXIudHJh
Y2soKS5nZXQoKSk7Ci0gICAgICAgIGRvd25jYXN0PFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJj
ZT4oZXhpc3RpbmdTb3VyY2UpLnNldFNvdXJjZVRyYWNrKFdURk1vdmUodmlkZW9UcmFjaykpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGNhc2UgY3JpY2tldDo6TUVESUFfVFlQRV9EQVRB
OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LX0KLQotUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6
OnNvdXJjZUZyb21OZXdSZWNlaXZlcih3ZWJydGM6OlJ0cFJlY2VpdmVySW50ZXJmYWNlJiBydGNS
ZWNlaXZlcikKLXsKLSAgICBhdXRvIHJ0Y1RyYWNrID0gcnRjUmVjZWl2ZXIudHJhY2soKTsKLSAg
ICBzd2l0Y2ggKHJ0Y1JlY2VpdmVyLm1lZGlhX3R5cGUoKSkgewotICAgIGNhc2UgY3JpY2tldDo6
TUVESUFfVFlQRV9EQVRBOgotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBjYXNlIGNyaWNr
ZXQ6Ok1FRElBX1RZUEVfQVVESU86IHsKLSAgICAgICAgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0
Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4gYXVkaW9UcmFjayA9IHN0YXRpY19jYXN0PHdlYnJ0Yzo6
QXVkaW9UcmFja0ludGVyZmFjZSo+KHJ0Y1RyYWNrLmdldCgpKTsKLSAgICAgICAgcmV0dXJuIFJl
YWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZTo6Y3JlYXRlKFdURk1vdmUoYXVkaW9UcmFjayksIGZy
b21TdGRTdHJpbmcocnRjVHJhY2stPmlkKCkpKTsKLSAgICB9Ci0gICAgY2FzZSBjcmlja2V0OjpN
RURJQV9UWVBFX1ZJREVPOiB7Ci0gICAgICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlZp
ZGVvVHJhY2tJbnRlcmZhY2U+IHZpZGVvVHJhY2sgPSBzdGF0aWNfY2FzdDx3ZWJydGM6OlZpZGVv
VHJhY2tJbnRlcmZhY2UqPihydGNUcmFjay5nZXQoKSk7Ci0gICAgICAgIHJldHVybiBSZWFsdGlt
ZUluY29taW5nVmlkZW9Tb3VyY2U6OmNyZWF0ZShXVEZNb3ZlKHZpZGVvVHJhY2spLCBmcm9tU3Rk
U3RyaW5nKHJ0Y1RyYWNrLT5pZCgpKSk7Ci0gICAgfQotICAgIH0KLQotICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCB1bm11dGUgdHJhY2tz
IHdoZW4gcmVjZWl2aW5nIHRoZSBmaXJzdCBwYWNrZXQsIGZvciBub3cgd2Ugc2ltdWxhdGUgdGhp
cyBieSB1bm11dGluZyBhc3luY2hyb25vdXNseSBoZXJlLgorICAgIGNhbGxPbk1haW5UaHJlYWQo
W3NvdXJjZSA9IG1ha2VSZWYodHJhY2suc291cmNlKCkpXSB7CisgICAgICAgIHNvdXJjZS0+c2V0
TXV0ZWQoZmFsc2UpOworICAgIH0pOwogfQogCiB2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6
OmNvbGxlY3RUcmFuc2NlaXZlcnMoKQpAQCAtNDIzLDM0ICszODgsMjAgQEAgdm9pZCBMaWJXZWJS
VENNZWRpYUVuZHBvaW50Ojpjb2xsZWN0VHJhbnNjZWl2ZXJzKCkKICAgICAgICAgICAgIGNvbnRp
bnVlOwogCiAgICAgICAgIGF1dG8gcnRjUmVjZWl2ZXIgPSBydGNUcmFuc2NlaXZlci0+cmVjZWl2
ZXIoKTsKLSAgICAgICAgYXV0byBzb3VyY2UgPSBzb3VyY2VGcm9tTmV3UmVjZWl2ZXIoKnJ0Y1Jl
Y2VpdmVyKTsKLSAgICAgICAgaWYgKCFzb3VyY2UpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIobWFrZVVu
aXF1ZTxMaWJXZWJSVENSdHBUcmFuc2NlaXZlckJhY2tlbmQ+KFdURk1vdmUocnRjVHJhbnNjZWl2
ZXIpKSwgc291cmNlLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICBtX3BlZXJDb25uZWN0aW9u
QmFja2VuZC5uZXdSZW1vdGVUcmFuc2NlaXZlcihtYWtlVW5pcXVlPExpYldlYlJUQ1J0cFRyYW5z
Y2VpdmVyQmFja2VuZD4oV1RGTW92ZShydGNUcmFuc2NlaXZlcikpLCBydGNSZWNlaXZlci0+bWVk
aWFfdHlwZSgpID09IGNyaWNrZXQ6Ok1FRElBX1RZUEVfQVVESU8gPyBSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlOjpBdWRpbyA6IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKTsKICAg
ICB9CiB9CiAKIHZvaWQgTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6bmV3VHJhbnNjZWl2ZXIocnRj
OjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6UnRwVHJhbnNjZWl2ZXJJbnRlcmZhY2U+JiYgcnRjVHJh
bnNjZWl2ZXIpCiB7CisgICAgYXV0byBydGNSZWNlaXZlciA9IHJ0Y1RyYW5zY2VpdmVyLT5yZWNl
aXZlcigpOwogICAgIGF1dG8qIHRyYW5zY2VpdmVyID0gbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQu
ZXhpc3RpbmdUcmFuc2NlaXZlcihbJl0oYXV0byYgdHJhbnNjZWl2ZXJCYWNrZW5kKSB7CiAgICAg
ICAgIHJldHVybiBydGNUcmFuc2NlaXZlci5nZXQoKSA9PSB0cmFuc2NlaXZlckJhY2tlbmQucnRj
VHJhbnNjZWl2ZXIoKTsKICAgICB9KTsKLSAgICBpZiAodHJhbnNjZWl2ZXIpIHsKLSAgICAgICAg
YXV0byBydGNSZWNlaXZlciA9IHJ0Y1RyYW5zY2VpdmVyLT5yZWNlaXZlcigpOwotICAgICAgICBz
ZXRFeGlzdGluZ1JlY2VpdmVyU291cmNlVHJhY2sodHJhbnNjZWl2ZXItPnJlY2VpdmVyKCkudHJh
Y2soKS5zb3VyY2UoKSwgKnJ0Y1JlY2VpdmVyKTsKLSAgICAgICAgYWRkUGVuZGluZ1RyYWNrRXZl
bnQobWFrZVJlZih0cmFuc2NlaXZlci0+cmVjZWl2ZXIoKSksIHRyYW5zY2VpdmVyLT5yZWNlaXZl
cigpLnRyYWNrKCksIHJ0Y1JlY2VpdmVyLT5zdHJlYW1zKCksIG1ha2VSZWYoKnRyYW5zY2VpdmVy
KSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRvIHJ0Y1JlY2VpdmVyID0gcnRj
VHJhbnNjZWl2ZXItPnJlY2VpdmVyKCk7Ci0gICAgYXV0byBzb3VyY2UgPSBzb3VyY2VGcm9tTmV3
UmVjZWl2ZXIoKnJ0Y1JlY2VpdmVyKTsKLSAgICBpZiAoIXNvdXJjZSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgYXV0byYgbmV3VHJhbnNjZWl2ZXIgPSBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5u
ZXdSZW1vdGVUcmFuc2NlaXZlcihtYWtlVW5pcXVlPExpYldlYlJUQ1J0cFRyYW5zY2VpdmVyQmFj
a2VuZD4oV1RGTW92ZShydGNUcmFuc2NlaXZlcikpLCBzb3VyY2UucmVsZWFzZU5vbk51bGwoKSk7
CisgICAgaWYgKCF0cmFuc2NlaXZlcikKKyAgICAgICAgdHJhbnNjZWl2ZXIgPSAmbV9wZWVyQ29u
bmVjdGlvbkJhY2tlbmQubmV3UmVtb3RlVHJhbnNjZWl2ZXIobWFrZVVuaXF1ZTxMaWJXZWJSVENS
dHBUcmFuc2NlaXZlckJhY2tlbmQ+KFdURk1vdmUocnRjVHJhbnNjZWl2ZXIpKSwgcnRjUmVjZWl2
ZXItPm1lZGlhX3R5cGUoKSA9PSBjcmlja2V0OjpNRURJQV9UWVBFX0FVRElPID8gUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gOiBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRl
byk7CiAKLSAgICBhZGRQZW5kaW5nVHJhY2tFdmVudChtYWtlUmVmKG5ld1RyYW5zY2VpdmVyLnJl
Y2VpdmVyKCkpLCBuZXdUcmFuc2NlaXZlci5yZWNlaXZlcigpLnRyYWNrKCksIHJ0Y1JlY2VpdmVy
LT5zdHJlYW1zKCksIG1ha2VSZWYobmV3VHJhbnNjZWl2ZXIpKTsKKyAgICBhZGRQZW5kaW5nVHJh
Y2tFdmVudChtYWtlUmVmKHRyYW5zY2VpdmVyLT5yZWNlaXZlcigpKSwgdHJhbnNjZWl2ZXItPnJl
Y2VpdmVyKCkudHJhY2soKSwgcnRjUmVjZWl2ZXItPnN0cmVhbXMoKSwgbWFrZVJlZigqdHJhbnNj
ZWl2ZXIpKTsKIH0KIAogdm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpyZW1vdmVSZW1vdGVU
cmFjayhydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpSdHBSZWNlaXZlckludGVyZmFjZT4mJiBy
ZWNlaXZlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlv
bkJhY2tlbmQuY3BwCmluZGV4IGYwZWMzYTlhMWQ2NjFlMjE2OGY2MTBkMzgxNmUyMWVmOTg0ODI4
MTEuLjZkOTEwODYzNTBmOTVmOWJhMjZkMTM4NTdlNzZlODMyNjU3ZTM5MTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Bl
ZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApAQCAt
Mjg3LDkgKzI4NywxMyBAQCB2b2lkIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6ZG9B
ZGRJY2VDYW5kaWRhdGUoUlRDSWNlQ2FuZGlkYXRlJiBjYW5kaWRhdAogICAgIGFkZEljZUNhbmRp
ZGF0ZVN1Y2NlZWRlZCgpOwogfQogCi1SZWY8UlRDUnRwUmVjZWl2ZXI+IExpYldlYlJUQ1BlZXJD
b25uZWN0aW9uQmFja2VuZDo6Y3JlYXRlUmVjZWl2ZXJGb3JTb3VyY2UoUmVmPFJlYWx0aW1lTWVk
aWFTb3VyY2U+JiYgc291cmNlLCBzdGQ6OnVuaXF1ZV9wdHI8UlRDUnRwUmVjZWl2ZXJCYWNrZW5k
PiYmIGJhY2tlbmQpCitSZWY8UlRDUnRwUmVjZWl2ZXI+IExpYldlYlJUQ1BlZXJDb25uZWN0aW9u
QmFja2VuZDo6Y3JlYXRlUmVjZWl2ZXIoc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ1J0cFJlY2Vp
dmVyQmFja2VuZD4mJiBiYWNrZW5kKQogewogICAgIGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8
RG9jdW1lbnQ+KCptX3BlZXJDb25uZWN0aW9uLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisK
KyAgICBhdXRvIHNvdXJjZSA9IGJhY2tlbmQtPmNyZWF0ZVNvdXJjZSgpOworICAgIC8vIFJlbW90
ZSBzb3VyY2UgaXMgaW5pdGlhbGx5IG11dGVkIGFuZCB3aWxsIGJlIHVubXV0ZWQgd2hlbiByZWNl
aXZpbmcgdGhlIGZpcnN0IHBhY2tldC4KKyAgICBzb3VyY2UtPnNldE11dGVkKHRydWUpOwogICAg
IGF1dG8gdHJhY2tJRCA9IHNvdXJjZS0+cGVyc2lzdGVudElEKCk7CiAgICAgYXV0byByZW1vdGVU
cmFja1ByaXZhdGUgPSBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y3JlYXRlKGRvY3VtZW50Lmxv
Z2dlcigpLCBXVEZNb3ZlKHNvdXJjZSksIFdURk1vdmUodHJhY2tJRCkpOwogICAgIGF1dG8gcmVt
b3RlVHJhY2sgPSBNZWRpYVN0cmVhbVRyYWNrOjpjcmVhdGUoZG9jdW1lbnQsIFdURk1vdmUocmVt
b3RlVHJhY2tQcml2YXRlKSk7CkBAIC0yOTcsNjggKzMwMSw2IEBAIFJlZjxSVENSdHBSZWNlaXZl
cj4gTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpjcmVhdGVSZWNlaXZlckZvclNvdXJj
ZShSZWY8CiAgICAgcmV0dXJuIFJUQ1J0cFJlY2VpdmVyOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUo
cmVtb3RlVHJhY2spLCBXVEZNb3ZlKGJhY2tlbmQpKTsKIH0KIAotc3RhdGljIGlubGluZSBSZWY8
UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlRW1wdHlTb3VyY2UoY29uc3QgU3RyaW5nJiB0cmFj
a0tpbmQsIFN0cmluZyYmIHRyYWNrSWQpCi17Ci0gICAgLy8gRklYTUU6IHRyYWNrS2luZCBzaG91
bGQgYmUgYW4gZW51bWVyYXRpb24KLSAgICBpZiAodHJhY2tLaW5kID09ICJhdWRpbyIpCi0gICAg
ICAgIHJldHVybiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OmNyZWF0ZShudWxscHRyLCBX
VEZNb3ZlKHRyYWNrSWQpKTsKLSAgICBBU1NFUlQodHJhY2tLaW5kID09ICJ2aWRlbyIpOwotICAg
IHJldHVybiBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6OmNyZWF0ZShudWxscHRyLCBXVEZN
b3ZlKHRyYWNrSWQpKTsKLX0KLQotUmVmPFJUQ1J0cFJlY2VpdmVyPiBMaWJXZWJSVENQZWVyQ29u
bmVjdGlvbkJhY2tlbmQ6OmNyZWF0ZVJlY2VpdmVyKGNvbnN0IFN0cmluZyYgdHJhY2tLaW5kLCBj
b25zdCBTdHJpbmcmIHRyYWNrSWQpCi17Ci0gICAgYXV0byByZWNlaXZlciA9IGNyZWF0ZVJlY2Vp
dmVyRm9yU291cmNlKGNyZWF0ZUVtcHR5U291cmNlKHRyYWNrS2luZCwgU3RyaW5nKHRyYWNrSWQp
KSwgbnVsbHB0cik7Ci0gICAgbV9wZW5kaW5nUmVjZWl2ZXJzLmFwcGVuZChyZWNlaXZlci5jb3B5
UmVmKCkpOwotICAgIHJldHVybiByZWNlaXZlcjsKLX0KLQotTGliV2ViUlRDUGVlckNvbm5lY3Rp
b25CYWNrZW5kOjpWaWRlb1JlY2VpdmVyIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6
dmlkZW9SZWNlaXZlcihTdHJpbmcmJiB0cmFja0lkKQotewotICAgIC8vIEZJWE1FOiBBZGQgdG8g
VmVjdG9yIGEgdXRpbGl0eSByb3V0aW5lIGZvciB0aGF0IHRha2Utb3ItY3JlYXRlIHBhdHRlcm4u
Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBiZSBzZWxlY3RpbmcgdGhlIHJlY2VpdmVyIGJhc2Vk
IG9uIHRyYWNrIGlkLgotICAgIGZvciAoc2l6ZV90IGNwdHIgPSAwOyBjcHRyIDwgbV9wZW5kaW5n
UmVjZWl2ZXJzLnNpemUoKTsgKytjcHRyKSB7Ci0gICAgICAgIGlmIChtX3BlbmRpbmdSZWNlaXZl
cnNbY3B0cl0tPnRyYWNrKCkuc291cmNlKCkudHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5cGU6OlZpZGVvKSB7Ci0gICAgICAgICAgICBSZWY8UlRDUnRwUmVjZWl2ZXI+IHJlY2VpdmVy
ID0gbV9wZW5kaW5nUmVjZWl2ZXJzW2NwdHJdLmNvcHlSZWYoKTsKLSAgICAgICAgICAgIG1fcGVu
ZGluZ1JlY2VpdmVycy5yZW1vdmUoY3B0cik7Ci0gICAgICAgICAgICBSZWY8UmVhbHRpbWVJbmNv
bWluZ1ZpZGVvU291cmNlPiBzb3VyY2UgPSBzdGF0aWNfY2FzdDxSZWFsdGltZUluY29taW5nVmlk
ZW9Tb3VyY2UmPihyZWNlaXZlci0+dHJhY2soKS5zb3VyY2UoKSk7Ci0gICAgICAgICAgICByZXR1
cm4geyBXVEZNb3ZlKHJlY2VpdmVyKSwgV1RGTW92ZShzb3VyY2UpIH07Ci0gICAgICAgIH0KLSAg
ICB9Ci0gICAgYXV0byBzb3VyY2UgPSBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6OmNyZWF0
ZShudWxscHRyLCBXVEZNb3ZlKHRyYWNrSWQpKTsKLSAgICBhdXRvIHJlY2VpdmVyID0gY3JlYXRl
UmVjZWl2ZXJGb3JTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSwgbnVsbHB0cik7Ci0KLSAgICBhdXRv
IHNlbmRlckJhY2tlbmQgPSBtYWtlVW5pcXVlPExpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQ+KCp0
aGlzLCBudWxscHRyKTsKLSAgICBhdXRvIHRyYW5zY2VpdmVyID0gUlRDUnRwVHJhbnNjZWl2ZXI6
OmNyZWF0ZShSVENSdHBTZW5kZXI6OmNyZWF0ZSgqdGhpcywgInZpZGVvIl9zLCB7IH0sIFdURk1v
dmUoc2VuZGVyQmFja2VuZCkpLCByZWNlaXZlci5jb3B5UmVmKCksIG51bGxwdHIpOwotICAgIHRy
YW5zY2VpdmVyLT5kaXNhYmxlU2VuZGluZ0RpcmVjdGlvbigpOwotICAgIG1fcGVlckNvbm5lY3Rp
b24uYWRkVHJhbnNjZWl2ZXIoV1RGTW92ZSh0cmFuc2NlaXZlcikpOwotCi0gICAgcmV0dXJuIHsg
V1RGTW92ZShyZWNlaXZlciksIFdURk1vdmUoc291cmNlKSB9OwotfQotCi1MaWJXZWJSVENQZWVy
Q29ubmVjdGlvbkJhY2tlbmQ6OkF1ZGlvUmVjZWl2ZXIgTGliV2ViUlRDUGVlckNvbm5lY3Rpb25C
YWNrZW5kOjphdWRpb1JlY2VpdmVyKFN0cmluZyYmIHRyYWNrSWQpCi17Ci0gICAgLy8gRklYTUU6
IEFkZCB0byBWZWN0b3IgYSB1dGlsaXR5IHJvdXRpbmUgZm9yIHRoYXQgdGFrZS1vci1jcmVhdGUg
cGF0dGVybi4KLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGJlIHNlbGVjdGluZyB0aGUgcmVjZWl2
ZXIgYmFzZWQgb24gdHJhY2sgaWQuCi0gICAgZm9yIChzaXplX3QgY3B0ciA9IDA7IGNwdHIgPCBt
X3BlbmRpbmdSZWNlaXZlcnMuc2l6ZSgpOyArK2NwdHIpIHsKLSAgICAgICAgaWYgKG1fcGVuZGlu
Z1JlY2VpdmVyc1tjcHRyXS0+dHJhY2soKS5zb3VyY2UoKS50eXBlKCkgPT0gUmVhbHRpbWVNZWRp
YVNvdXJjZTo6VHlwZTo6QXVkaW8pIHsKLSAgICAgICAgICAgIFJlZjxSVENSdHBSZWNlaXZlcj4g
cmVjZWl2ZXIgPSBtX3BlbmRpbmdSZWNlaXZlcnNbY3B0cl0uY29weVJlZigpOwotICAgICAgICAg
ICAgbV9wZW5kaW5nUmVjZWl2ZXJzLnJlbW92ZShjcHRyKTsKLSAgICAgICAgICAgIFJlZjxSZWFs
dGltZUluY29taW5nQXVkaW9Tb3VyY2U+IHNvdXJjZSA9IHN0YXRpY19jYXN0PFJlYWx0aW1lSW5j
b21pbmdBdWRpb1NvdXJjZSY+KHJlY2VpdmVyLT50cmFjaygpLnNvdXJjZSgpKTsKLSAgICAgICAg
ICAgIHJldHVybiB7IFdURk1vdmUocmVjZWl2ZXIpLCBXVEZNb3ZlKHNvdXJjZSkgfTsKLSAgICAg
ICAgfQotICAgIH0KLSAgICBhdXRvIHNvdXJjZSA9IFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJj
ZTo6Y3JlYXRlKG51bGxwdHIsIFdURk1vdmUodHJhY2tJZCkpOwotICAgIGF1dG8gcmVjZWl2ZXIg
PSBjcmVhdGVSZWNlaXZlckZvclNvdXJjZShzb3VyY2UuY29weVJlZigpLCBudWxscHRyKTsKLQot
ICAgIGF1dG8gc2VuZGVyQmFja2VuZCA9IG1ha2VVbmlxdWU8TGliV2ViUlRDUnRwU2VuZGVyQmFj
a2VuZD4oKnRoaXMsIG51bGxwdHIpOwotICAgIGF1dG8gdHJhbnNjZWl2ZXIgPSBSVENSdHBUcmFu
c2NlaXZlcjo6Y3JlYXRlKFJUQ1J0cFNlbmRlcjo6Y3JlYXRlKCp0aGlzLCAiYXVkaW8iX3MsIHsg
fSwgV1RGTW92ZShzZW5kZXJCYWNrZW5kKSksIHJlY2VpdmVyLmNvcHlSZWYoKSwgbnVsbHB0cik7
Ci0gICAgdHJhbnNjZWl2ZXItPmRpc2FibGVTZW5kaW5nRGlyZWN0aW9uKCk7Ci0gICAgbV9wZWVy
Q29ubmVjdGlvbi5hZGRUcmFuc2NlaXZlcihXVEZNb3ZlKHRyYW5zY2VpdmVyKSk7Ci0KLSAgICBy
ZXR1cm4geyBXVEZNb3ZlKHJlY2VpdmVyKSwgV1RGTW92ZShzb3VyY2UpIH07Ci19Ci0KIHN0ZDo6
dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+IExpYldlYlJUQ1BlZXJDb25uZWN0aW9u
QmFja2VuZDo6Y3JlYXRlRGF0YUNoYW5uZWxIYW5kbGVyKGNvbnN0IFN0cmluZyYgbGFiZWwsIGNv
bnN0IFJUQ0RhdGFDaGFubmVsSW5pdCYgb3B0aW9ucykKIHsKICAgICByZXR1cm4gbV9lbmRwb2lu
dC0+Y3JlYXRlRGF0YUNoYW5uZWwobGFiZWwsIG9wdGlvbnMpOwpAQCAtNDMwLDcgKzM3Miw3IEBA
IEV4Y2VwdGlvbk9yPFJlZjxSVENSdHBTZW5kZXI+PiBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJh
Y2tlbmQ6OmFkZFRyYWNrKE1lZGlhU3RyCiAgICAgYXV0byB0cmFuc2NlaXZlckJhY2tlbmQgPSBt
X2VuZHBvaW50LT50cmFuc2NlaXZlckJhY2tlbmRGcm9tU2VuZGVyKCpzZW5kZXJCYWNrZW5kKTsK
IAogICAgIGF1dG8gc2VuZGVyID0gUlRDUnRwU2VuZGVyOjpjcmVhdGUoKnRoaXMsIG1ha2VSZWYo
dHJhY2spLCBXVEZNb3ZlKG1lZGlhU3RyZWFtSWRzKSwgV1RGTW92ZShzZW5kZXJCYWNrZW5kKSk7
Ci0gICAgYXV0byByZWNlaXZlciA9IGNyZWF0ZVJlY2VpdmVyRm9yU291cmNlKGNyZWF0ZUVtcHR5
U291cmNlKHRyYWNrLmtpbmQoKSwgY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpKSwgdHJhbnNj
ZWl2ZXJCYWNrZW5kLT5jcmVhdGVSZWNlaXZlckJhY2tlbmQoKSk7CisgICAgYXV0byByZWNlaXZl
ciA9IGNyZWF0ZVJlY2VpdmVyKHRyYW5zY2VpdmVyQmFja2VuZC0+Y3JlYXRlUmVjZWl2ZXJCYWNr
ZW5kKCkpOwogICAgIGF1dG8gdHJhbnNjZWl2ZXIgPSBSVENSdHBUcmFuc2NlaXZlcjo6Y3JlYXRl
KHNlbmRlci5jb3B5UmVmKCksIFdURk1vdmUocmVjZWl2ZXIpLCBXVEZNb3ZlKHRyYW5zY2VpdmVy
QmFja2VuZCkpOwogICAgIG1fcGVlckNvbm5lY3Rpb24uYWRkSW50ZXJuYWxUcmFuc2NlaXZlcihX
VEZNb3ZlKHRyYW5zY2VpdmVyKSk7CiAgICAgcmV0dXJuIHNlbmRlcjsKQEAgLTQ0NCw3ICszODYs
NyBAQCBFeGNlcHRpb25PcjxSZWY8UlRDUnRwVHJhbnNjZWl2ZXI+PiBMaWJXZWJSVENQZWVyQ29u
bmVjdGlvbkJhY2tlbmQ6OmFkZFRyYW5zY2VpdgogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZEFjY2Vzc0Vycm9yLCAiVW5hYmxlIHRvIGFkZCB0cmFuc2NlaXZlciJfcyB9OwogCiAg
ICAgYXV0byBzZW5kZXIgPSBSVENSdHBTZW5kZXI6OmNyZWF0ZSgqdGhpcywgV1RGTW92ZSh0cmFj
a09yS2luZCksIFZlY3RvcjxTdHJpbmc+IHsgfSwgV1RGTW92ZShiYWNrZW5kcy0+c2VuZGVyQmFj
a2VuZCkpOwotICAgIGF1dG8gcmVjZWl2ZXIgPSBjcmVhdGVSZWNlaXZlckZvclNvdXJjZShjcmVh
dGVFbXB0eVNvdXJjZShzZW5kZXItPnRyYWNrS2luZCgpLCBjcmVhdGVDYW5vbmljYWxVVUlEU3Ry
aW5nKCkpLCBXVEZNb3ZlKGJhY2tlbmRzLT5yZWNlaXZlckJhY2tlbmQpKTsKKyAgICBhdXRvIHJl
Y2VpdmVyID0gY3JlYXRlUmVjZWl2ZXIoV1RGTW92ZShiYWNrZW5kcy0+cmVjZWl2ZXJCYWNrZW5k
KSk7CiAgICAgYXV0byB0cmFuc2NlaXZlciA9IFJUQ1J0cFRyYW5zY2VpdmVyOjpjcmVhdGUoV1RG
TW92ZShzZW5kZXIpLCBXVEZNb3ZlKHJlY2VpdmVyKSwgV1RGTW92ZShiYWNrZW5kcy0+dHJhbnNj
ZWl2ZXJCYWNrZW5kKSk7CiAgICAgbV9wZWVyQ29ubmVjdGlvbi5hZGRJbnRlcm5hbFRyYW5zY2Vp
dmVyKHRyYW5zY2VpdmVyLmNvcHlSZWYoKSk7CiAgICAgcmV0dXJuIHRyYW5zY2VpdmVyOwpAQCAt
NDc5LDI1ICs0MjEsMTUgQEAgUlRDUnRwVHJhbnNjZWl2ZXIqIExpYldlYlJUQ1BlZXJDb25uZWN0
aW9uQmFja2VuZDo6ZXhpc3RpbmdUcmFuc2NlaXZlcihXVEY6OkZ1bmMKICAgICByZXR1cm4gbnVs
bHB0cjsKIH0KIAotUlRDUnRwVHJhbnNjZWl2ZXImIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFj
a2VuZDo6bmV3UmVtb3RlVHJhbnNjZWl2ZXIoc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ1J0cFRy
YW5zY2VpdmVyQmFja2VuZD4mJiB0cmFuc2NlaXZlckJhY2tlbmQsIFJlZjxSZWFsdGltZU1lZGlh
U291cmNlPiYmIHJlY2VpdmVyU291cmNlKQorUlRDUnRwVHJhbnNjZWl2ZXImIExpYldlYlJUQ1Bl
ZXJDb25uZWN0aW9uQmFja2VuZDo6bmV3UmVtb3RlVHJhbnNjZWl2ZXIoc3RkOjp1bmlxdWVfcHRy
PExpYldlYlJUQ1J0cFRyYW5zY2VpdmVyQmFja2VuZD4mJiB0cmFuc2NlaXZlckJhY2tlbmQsIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSkKIHsKLSAgICBhdXRvIHNlbmRlciA9IFJUQ1J0
cFNlbmRlcjo6Y3JlYXRlKCp0aGlzLCByZWNlaXZlclNvdXJjZS0+dHlwZSgpID09IFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvID8gImF1ZGlvIl9zIDogInZpZGVvIl9zLCBWZWN0b3I8
U3RyaW5nPiB7IH0sIHRyYW5zY2VpdmVyQmFja2VuZC0+Y3JlYXRlU2VuZGVyQmFja2VuZCgqdGhp
cywgbnVsbHB0cikpOwotICAgIGF1dG8gcmVjZWl2ZXIgPSBjcmVhdGVSZWNlaXZlckZvclNvdXJj
ZShXVEZNb3ZlKHJlY2VpdmVyU291cmNlKSwgdHJhbnNjZWl2ZXJCYWNrZW5kLT5jcmVhdGVSZWNl
aXZlckJhY2tlbmQoKSk7CisgICAgYXV0byBzZW5kZXIgPSBSVENSdHBTZW5kZXI6OmNyZWF0ZSgq
dGhpcywgdHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbyA/ICJhdWRpbyJf
cyA6ICJ2aWRlbyJfcywgVmVjdG9yPFN0cmluZz4geyB9LCB0cmFuc2NlaXZlckJhY2tlbmQtPmNy
ZWF0ZVNlbmRlckJhY2tlbmQoKnRoaXMsIG51bGxwdHIpKTsKKyAgICBhdXRvIHJlY2VpdmVyID0g
Y3JlYXRlUmVjZWl2ZXIodHJhbnNjZWl2ZXJCYWNrZW5kLT5jcmVhdGVSZWNlaXZlckJhY2tlbmQo
KSk7CiAgICAgYXV0byB0cmFuc2NlaXZlciA9IFJUQ1J0cFRyYW5zY2VpdmVyOjpjcmVhdGUoV1RG
TW92ZShzZW5kZXIpLCBXVEZNb3ZlKHJlY2VpdmVyKSwgV1RGTW92ZSh0cmFuc2NlaXZlckJhY2tl
bmQpKTsKICAgICBtX3BlZXJDb25uZWN0aW9uLmFkZEludGVybmFsVHJhbnNjZWl2ZXIodHJhbnNj
ZWl2ZXIuY29weVJlZigpKTsKICAgICByZXR1cm4gdHJhbnNjZWl2ZXIuZ2V0KCk7CiB9CiAKLVJl
ZjxSVENSdHBUcmFuc2NlaXZlcj4gTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpjb21w
bGV0ZUFkZFRyYW5zY2VpdmVyKFJlZjxSVENSdHBTZW5kZXI+JiYgc2VuZGVyLCBjb25zdCBSVENS
dHBUcmFuc2NlaXZlckluaXQmIGluaXQsIGNvbnN0IFN0cmluZyYgdHJhY2tJZCwgY29uc3QgU3Ry
aW5nJiB0cmFja0tpbmQpCi17Ci0gICAgYXV0byB0cmFuc2NlaXZlciA9IFJUQ1J0cFRyYW5zY2Vp
dmVyOjpjcmVhdGUoV1RGTW92ZShzZW5kZXIpLCBjcmVhdGVSZWNlaXZlcih0cmFja0tpbmQsIHRy
YWNrSWQpLCBudWxscHRyKTsKLQotICAgIHRyYW5zY2VpdmVyLT5zZXREaXJlY3Rpb24oaW5pdC5k
aXJlY3Rpb24pOwotCi0gICAgbV9wZWVyQ29ubmVjdGlvbi5hZGRJbnRlcm5hbFRyYW5zY2VpdmVy
KHRyYW5zY2VpdmVyLmNvcHlSZWYoKSk7Ci0gICAgcmV0dXJuIHRyYW5zY2VpdmVyOwotfQotCiB2
b2lkIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6Y29sbGVjdFRyYW5zY2VpdmVycygp
CiB7CiAgICAgbV9lbmRwb2ludC0+Y29sbGVjdFRyYW5zY2VpdmVycygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVl
ckNvbm5lY3Rpb25CYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAppbmRleCBjNzA2YTJh
MTM2ZjI2MTcyNjIxYzE5MWE4NzkyMDc5OWRjZDUzMjU5Li40N2UxMTk4ZmUxMjFkNzI0MWFlYTZl
ZjEzMzZiNGZhYjczODJlNjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuaApAQCAtMjcsNiArMjcsNyBAQAogI2lmIFVTRShMSUJXRUJS
VEMpCiAKICNpbmNsdWRlICJQZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCIKKyNpbmNsdWRlICJSZWFs
dGltZU1lZGlhU291cmNlLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KIAogbmFtZXNwYWNl
IHdlYnJ0YyB7CkBAIC0zOCw2ICszOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIExp
YldlYlJUQ01lZGlhRW5kcG9pbnQ7CiBjbGFzcyBMaWJXZWJSVENQcm92aWRlcjsKIGNsYXNzIExp
YldlYlJUQ1J0cFNlbmRlckJhY2tlbmQ7CitjbGFzcyBMaWJXZWJSVENSdHBSZWNlaXZlckJhY2tl
bmQ7CiBjbGFzcyBMaWJXZWJSVENSdHBUcmFuc2NlaXZlckJhY2tlbmQ7CiBjbGFzcyBSVENSdHBS
ZWNlaXZlcjsKIGNsYXNzIFJUQ1J0cFJlY2VpdmVyQmFja2VuZDsKQEAgLTk2LDMyICs5OCwxNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgc2V0U2VuZGVyU291cmNlRnJvbVRyYWNrKExpYldlYlJUQ1J0
cFNlbmRlckJhY2tlbmQmLCBNZWRpYVN0cmVhbVRyYWNrJik7CiAKICAgICBSVENSdHBUcmFuc2Nl
aXZlciogZXhpc3RpbmdUcmFuc2NlaXZlcihXVEY6OkZ1bmN0aW9uPGJvb2woTGliV2ViUlRDUnRw
VHJhbnNjZWl2ZXJCYWNrZW5kJik+JiYpOwotICAgIFJUQ1J0cFRyYW5zY2VpdmVyJiBuZXdSZW1v
dGVUcmFuc2NlaXZlcihzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDUnRwVHJhbnNjZWl2ZXJCYWNr
ZW5kPiYmLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7CisgICAgUlRDUnRwVHJhbnNjZWl2
ZXImIG5ld1JlbW90ZVRyYW5zY2VpdmVyKHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENSdHBUcmFu
c2NlaXZlckJhY2tlbmQ+JiYsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUpOwogCiAgICAgdm9p
ZCBjb2xsZWN0VHJhbnNjZWl2ZXJzKCkgZmluYWw7CiAKLSAgICBzdHJ1Y3QgVmlkZW9SZWNlaXZl
ciB7Ci0gICAgICAgIFJlZjxSVENSdHBSZWNlaXZlcj4gcmVjZWl2ZXI7Ci0gICAgICAgIFJlZjxS
ZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U+IHNvdXJjZTsKLSAgICB9OwotICAgIHN0cnVjdCBB
dWRpb1JlY2VpdmVyIHsKLSAgICAgICAgUmVmPFJUQ1J0cFJlY2VpdmVyPiByZWNlaXZlcjsKLSAg
ICAgICAgUmVmPFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZT4gc291cmNlOwotICAgIH07Ci0g
ICAgVmlkZW9SZWNlaXZlciB2aWRlb1JlY2VpdmVyKFN0cmluZyYmIHRyYWNrSWQpOwotICAgIEF1
ZGlvUmVjZWl2ZXIgYXVkaW9SZWNlaXZlcihTdHJpbmcmJiB0cmFja0lkKTsKLQogcHJpdmF0ZToK
ICAgICBib29sIGlzTG9jYWxEZXNjcmlwdGlvblNldCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
aXNMb2NhbERlc2NyaXB0aW9uU2V0OyB9CiAKLSAgICBSZWY8UlRDUnRwVHJhbnNjZWl2ZXI+IGNv
bXBsZXRlQWRkVHJhbnNjZWl2ZXIoUmVmPFJUQ1J0cFNlbmRlcj4mJiwgY29uc3QgUlRDUnRwVHJh
bnNjZWl2ZXJJbml0JiwgY29uc3QgU3RyaW5nJiB0cmFja0lkLCBjb25zdCBTdHJpbmcmIHRyYWNr
S2luZCk7Ci0KLSAgICBSZWY8UlRDUnRwUmVjZWl2ZXI+IGNyZWF0ZVJlY2VpdmVyKGNvbnN0IFN0
cmluZyYgdHJhY2tLaW5kLCBjb25zdCBTdHJpbmcmIHRyYWNrSWQpOwotCiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4KICAgICBFeGNlcHRpb25PcjxSZWY8UlRDUnRwVHJhbnNjZWl2ZXI+PiBhZGRU
cmFuc2NlaXZlckZyb21UcmFja09yS2luZChUJiYgdHJhY2tPcktpbmQsIGNvbnN0IFJUQ1J0cFRy
YW5zY2VpdmVySW5pdCYpOwogCi0gICAgUmVmPFJUQ1J0cFJlY2VpdmVyPiBjcmVhdGVSZWNlaXZl
ckZvclNvdXJjZShSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiwgc3RkOjp1bmlxdWVfcHRyPFJU
Q1J0cFJlY2VpdmVyQmFja2VuZD4mJik7CisgICAgUmVmPFJUQ1J0cFJlY2VpdmVyPiBjcmVhdGVS
ZWNlaXZlcihzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDUnRwUmVjZWl2ZXJCYWNrZW5kPiYmKTsK
IAogICAgIHZvaWQgc3VzcGVuZCgpIGZpbmFsOwogICAgIHZvaWQgcmVzdW1lKCkgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9M
aWJXZWJSVENSdHBSZWNlaXZlckJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwUmVjZWl2ZXJCYWNrZW5kLmNwcAppbmRl
eCA1NmYwMmM2YzAwYjNjMzA4NGI0NjFkNzJmZmE5MmIzMjZjODQwZDU2Li5lNTg1NDA2N2U3Y2Q3
M2RjNWZjZTg3MzNjMTc1MDJhYWRhM2EzYjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBSZWNlaXZlckJhY2tlbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1J0cFJlY2VpdmVyQmFja2VuZC5jcHAKQEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRl
ICJMaWJXZWJSVENSdHBSZWNlaXZlckJhY2tlbmQuaCIKIAogI2luY2x1ZGUgIkxpYldlYlJUQ1V0
aWxzLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmgiCisjaW5jbHVk
ZSAiUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmgiCiAKICNpZiBFTkFCTEUoV0VCX1JUQykg
JiYgVVNFKExJQldFQlJUQykKIApAQCAtNzgsNiArODAsMjUgQEAgVmVjdG9yPFJUQ1J0cFN5bmNo
cm9uaXphdGlvblNvdXJjZT4gTGliV2ViUlRDUnRwUmVjZWl2ZXJCYWNrZW5kOjpnZXRTeW5jaHJv
bml6YXQKICAgICByZXR1cm4gc291cmNlczsKIH0KIAorUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+
IExpYldlYlJUQ1J0cFJlY2VpdmVyQmFja2VuZDo6Y3JlYXRlU291cmNlKCkKK3sKKyAgICBhdXRv
IHJ0Y1RyYWNrID0gbV9ydGNSZWNlaXZlci0+dHJhY2soKTsKKyAgICBzd2l0Y2ggKG1fcnRjUmVj
ZWl2ZXItPm1lZGlhX3R5cGUoKSkgeworICAgIGNhc2UgY3JpY2tldDo6TUVESUFfVFlQRV9EQVRB
OgorICAgICAgICBicmVhazsKKyAgICBjYXNlIGNyaWNrZXQ6Ok1FRElBX1RZUEVfQVVESU86IHsK
KyAgICAgICAgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4g
YXVkaW9UcmFjayA9IHN0YXRpY19jYXN0PHdlYnJ0Yzo6QXVkaW9UcmFja0ludGVyZmFjZSo+KHJ0
Y1RyYWNrLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJj
ZTo6Y3JlYXRlKFdURk1vdmUoYXVkaW9UcmFjayksIGZyb21TdGRTdHJpbmcocnRjVHJhY2stPmlk
KCkpKTsKKyAgICB9CisgICAgY2FzZSBjcmlja2V0OjpNRURJQV9UWVBFX1ZJREVPOiB7CisgICAg
ICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlZpZGVvVHJhY2tJbnRlcmZhY2U+IHZpZGVv
VHJhY2sgPSBzdGF0aWNfY2FzdDx3ZWJydGM6OlZpZGVvVHJhY2tJbnRlcmZhY2UqPihydGNUcmFj
ay5nZXQoKSk7CisgICAgICAgIHJldHVybiBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6OmNy
ZWF0ZShXVEZNb3ZlKHZpZGVvVHJhY2spLCBmcm9tU3RkU3RyaW5nKHJ0Y1RyYWNrLT5pZCgpKSk7
CisgICAgfQorICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfUlRDKSAmJiBV
U0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwUmVjZWl2ZXJCYWNrZW5kLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBSZWNlaXZlckJh
Y2tlbmQuaAppbmRleCAxZGE4ZGVkMWYxYjMwNTdjYjI2ZWI1MGQwMWYyNjI1YjA2OTE4ZWY0Li43
MTlmNWM2NzI5OWU4M2Y1YTcxZTMzNjUxNTAzYmJmNTFhMzdmMDJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBSZWNl
aXZlckJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENSdHBSZWNlaXZlckJhY2tlbmQuaApAQCAtMzgsNiArMzgsOCBAQCBB
TExPV19VTlVTRURfUEFSQU1FVEVSU19FTkQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFz
cyBSZWFsdGltZU1lZGlhU291cmNlOworCiBjbGFzcyBMaWJXZWJSVENSdHBSZWNlaXZlckJhY2tl
bmQgZmluYWwgOiBwdWJsaWMgUlRDUnRwUmVjZWl2ZXJCYWNrZW5kIHsKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKQEAgLTQ4LDYgKzUwLDggQEAgcHVibGljOgogCiAgICAg
d2VicnRjOjpSdHBSZWNlaXZlckludGVyZmFjZSogcnRjUmVjZWl2ZXIoKSB7IHJldHVybiBtX3J0
Y1JlY2VpdmVyLmdldCgpOyB9CiAKKyAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRl
U291cmNlKCk7CisKIHByaXZhdGU6CiAgICAgUlRDUnRwUGFyYW1ldGVycyBnZXRQYXJhbWV0ZXJz
KCkgZmluYWw7CiAgICAgVmVjdG9yPFJUQ1J0cENvbnRyaWJ1dGluZ1NvdXJjZT4gZ2V0Q29udHJp
YnV0aW5nU291cmNlcygpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1Nv
dXJjZS5jcHAKaW5kZXggYTRiMTI3YWE5MzY3NzAzNGVjYzlmMGMyN2U3MjM3Yjk5NTEzODUxNS4u
ODRlNzNhZDI2MmQ2YmY5NzM1ZGY5ODUzYmUxMTc3MGRmNjQ3Nzc5OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291
cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwCkBAIC00Miw3ICs0Miw3IEBAIFJlYWx0aW1lSW5jb21p
bmdBdWRpb1NvdXJjZTo6UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlKHJ0Yzo6c2NvcGVkX3Jl
ZnB0cjx3ZWJyCiAgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5cGU6OkF1ZGlvLCAicmVtb3RlIGF1ZGlvIl9zLCBXVEZNb3ZlKGF1ZGlvVHJhY2tJZCkpCiAg
ICAgLCBtX2F1ZGlvVHJhY2soV1RGTW92ZShhdWRpb1RyYWNrKSkKIHsKLSAgICBub3RpZnlNdXRl
ZENoYW5nZSghbV9hdWRpb1RyYWNrKTsKKyAgICBBU1NFUlQobV9hdWRpb1RyYWNrKTsKIH0KIAog
UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjp+UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNl
KCkKQEAgLTYyLDE5ICs2Miw2IEBAIHZvaWQgUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlOjpz
dG9wUHJvZHVjaW5nRGF0YSgpCiAgICAgICAgIG1fYXVkaW9UcmFjay0+UmVtb3ZlU2luayh0aGlz
KTsKIH0KIAotdm9pZCBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OnNldFNvdXJjZVRyYWNr
KHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OkF1ZGlvVHJhY2tJbnRlcmZhY2U+JiYgdHJhY2sp
Ci17Ci0gICAgQVNTRVJUKHRyYWNrKTsKLQotICAgIGlmIChtX2F1ZGlvVHJhY2sgJiYgaXNQcm9k
dWNpbmdEYXRhKCkpCi0gICAgICAgIG1fYXVkaW9UcmFjay0+UmVtb3ZlU2luayh0aGlzKTsKLQot
ICAgIG1fYXVkaW9UcmFjayA9IFdURk1vdmUodHJhY2spOwotICAgIG5vdGlmeU11dGVkQ2hhbmdl
KCFtX2F1ZGlvVHJhY2spOwotICAgIGlmIChpc1Byb2R1Y2luZ0RhdGEoKSkKLSAgICAgICAgbV9h
dWRpb1RyYWNrLT5BZGRTaW5rKHRoaXMpOwotfQotCiBjb25zdCBSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzJiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2U6OmNhcGFiaWxpdGllcygp
CiB7CiAgICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OmVtcHR5Q2Fw
YWJpbGl0aWVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oCmluZGV4IGQ1MWNj
OTJlNzdiM2UwOGZlMDg0ZDEyYmNiNTg4MjA5NzMwNmM0ZjYuLjRhMWUxZDMyNzdhNjY4ZmQwNGU3
ODdmODM5YTQ0NDA1OGU2YTkyYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5o
CkBAIC01Miw4ICs1Miw2IEBAIGNsYXNzIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZQogcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlPiBjcmVhdGUo
cnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4mJiwgU3RyaW5n
JiYpOwogCi0gICAgdm9pZCBzZXRTb3VyY2VUcmFjayhydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRj
OjpBdWRpb1RyYWNrSW50ZXJmYWNlPiYmKTsKLQogcHJvdGVjdGVkOgogICAgIFJlYWx0aW1lSW5j
b21pbmdBdWRpb1NvdXJjZShydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpBdWRpb1RyYWNrSW50
ZXJmYWNlPiYmLCBTdHJpbmcmJik7CiAgICAgflJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVJbmNvbWluZ1ZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5jcHAKaW5kZXggNDU0MDNkYzZjYTI5
YWY4ODZlYTVhZWU2ZTI2NGVjZjc0OTUyZmZkMi4uNGM3ZjlmNWEyZTAyZjY2Njk0YWM5NDg5NTRl
NGRiN2FjZWI5NjU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuY3BwCkBA
IC0zOSw3ICszOSw3IEBAIFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZTo6UmVhbHRpbWVJbmNv
bWluZ1ZpZGVvU291cmNlKHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJyCiAgICAgOiBSZWFsdGltZU1l
ZGlhU291cmNlKFR5cGU6OlZpZGVvLCAicmVtb3RlIHZpZGVvIl9zLCBXVEZNb3ZlKHZpZGVvVHJh
Y2tJZCkpCiAgICAgLCBtX3ZpZGVvVHJhY2soV1RGTW92ZSh2aWRlb1RyYWNrKSkKIHsKLSAgICBu
b3RpZnlNdXRlZENoYW5nZSghbV92aWRlb1RyYWNrKTsKKyAgICBBU1NFUlQobV92aWRlb1RyYWNr
KTsKIAogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyBjb25zdHJh
aW50czsKICAgICBjb25zdHJhaW50cy5zZXRTdXBwb3J0c1dpZHRoKHRydWUpOwpAQCAtNTQsMTgg
KzU0LDYgQEAgdm9pZCBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6OnN0YXJ0UHJvZHVjaW5n
RGF0YSgpCiAgICAgICAgIG1fdmlkZW9UcmFjay0+QWRkT3JVcGRhdGVTaW5rKHRoaXMsIHJ0Yzo6
VmlkZW9TaW5rV2FudHMoKSk7CiB9CiAKLXZvaWQgUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNl
OjpzZXRTb3VyY2VUcmFjayhydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb1RyYWNrSW50
ZXJmYWNlPiYmIHRyYWNrKQotewotICAgIEFTU0VSVCh0cmFjayk7Ci0KLSAgICBpZiAobV92aWRl
b1RyYWNrICYmIGlzUHJvZHVjaW5nRGF0YSgpKQotICAgICAgICBtX3ZpZGVvVHJhY2stPlJlbW92
ZVNpbmsodGhpcyk7Ci0gICAgbV92aWRlb1RyYWNrID0gV1RGTW92ZSh0cmFjayk7Ci0gICAgbm90
aWZ5TXV0ZWRDaGFuZ2UoIW1fdmlkZW9UcmFjayk7Ci0gICAgaWYgKGlzUHJvZHVjaW5nRGF0YSgp
KQotICAgICAgICBtX3ZpZGVvVHJhY2stPkFkZE9yVXBkYXRlU2luayh0aGlzLCBydGM6OlZpZGVv
U2lua1dhbnRzKCkpOwotfQotCiB2b2lkIFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZTo6c3Rv
cFByb2R1Y2luZ0RhdGEoKQogewogICAgIGlmIChtX3ZpZGVvVHJhY2spCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZUluY29taW5nVmlkZW9T
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5j
b21pbmdWaWRlb1NvdXJjZS5oCmluZGV4IGQxMTcwZTcwNWY0Y2VlMzZjOGRmOTc0YWUyZGVlN2U1
MTU0Y2Y4ZWIuLmExNTdkNTk3OTIxZWFlYjY5ZTA3ZDJiMGQxNDEwZDNhMjdhNTE3M2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lSW5jb21p
bmdWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5oCkBAIC01OCw4ICs1OCw2IEBAIHB1YmxpYzoK
ICAgICAgICAgc3RvcCgpOwogICAgIH0KIAotICAgIHZvaWQgc2V0U291cmNlVHJhY2socnRjOjpz
Y29wZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZW9UcmFja0ludGVyZmFjZT4mJik7Ci0KIHByb3RlY3Rl
ZDoKICAgICBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UocnRjOjpzY29wZWRfcmVmcHRyPHdl
YnJ0Yzo6VmlkZW9UcmFja0ludGVyZmFjZT4mJiwgU3RyaW5nJiYpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uaAppbmRleCBh
ZGI2MTM1YzBiYWM2ODk5MjU5NzViZDc1YTc5NTNhMmY4NmQ0ZTM2Li4zMjAxNjY1YTI2OGI4MTU5
OGU3ZDQ4MTZiODVjMmJjY2Y1MDgyMDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmgKQEAgLTE4OSw2ICsxODksMTkgQEAg
cHJpdmF0ZToKICAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpNZWRpYVN0cmVhbVRyYWNr
SW50ZXJmYWNlPiBtX3RyYWNrOwogfTsKIAorY2xhc3MgTW9ja01lZGlhU3RyZWFtVHJhY2sgOiBw
dWJsaWMgd2VicnRjOjpNZWRpYVN0cmVhbVRyYWNrSW50ZXJmYWNlIHsKK3B1YmxpYzoKKyAgICBN
b2NrTWVkaWFTdHJlYW1UcmFjaygpID0gZGVmYXVsdDsKK3ByaXZhdGU6CisgICAgc3RkOjpzdHJp
bmcga2luZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJ2aWRlbyI7IH0KKyAgICBzdGQ6OnN0cmlu
ZyBpZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJteW1vY2t0cmFjayI7IH0KKyAgICBib29sIGVu
YWJsZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgYm9vbCBzZXRfZW5hYmxl
ZChib29sKSBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgVHJhY2tTdGF0ZSBzdGF0ZSgpIGNv
bnN0ICB7IHJldHVybiBUcmFja1N0YXRlOjprTGl2ZTsgfQorICAgIHZvaWQgUmVnaXN0ZXJPYnNl
cnZlcih3ZWJydGM6Ok9ic2VydmVySW50ZXJmYWNlKikgZmluYWwgeyB9CisgICAgdm9pZCBVbnJl
Z2lzdGVyT2JzZXJ2ZXIod2VicnRjOjpPYnNlcnZlckludGVyZmFjZSopIGZpbmFsIHsgfQorfTsK
KwogY2xhc3MgTW9ja1J0cFJlY2VpdmVyIDogcHVibGljIHdlYnJ0Yzo6UnRwUmVjZWl2ZXJJbnRl
cmZhY2UgewogcHJpdmF0ZToKICAgICBjcmlja2V0OjpNZWRpYVR5cGUgbWVkaWFfdHlwZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIGNyaWNrZXQ6Ok1FRElBX1RZUEVfVklERU87IH0KQEAgLTE5Niw4
ICsyMDksMTUgQEAgcHJpdmF0ZToKICAgICB3ZWJydGM6OlJ0cFBhcmFtZXRlcnMgR2V0UGFyYW1l
dGVycygpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQogICAgIGJvb2wgU2V0UGFyYW1ldGVycyhjb25z
dCB3ZWJydGM6OlJ0cFBhcmFtZXRlcnMmKSB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9pZCBTZXRP
YnNlcnZlcih3ZWJydGM6OlJ0cFJlY2VpdmVyT2JzZXJ2ZXJJbnRlcmZhY2UqKSB7IH0KLSAgICBy
dGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpNZWRpYVN0cmVhbVRyYWNrSW50ZXJmYWNlPiB0cmFj
aygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHsgfTsgfQogICAgIHZvaWQgU2V0Sml0dGVyQnVmZmVy
TWluaW11bURlbGF5KGFic2w6Om9wdGlvbmFsPGRvdWJsZT4pIGZpbmFsIHsgfQorICAgIHJ0Yzo6
c2NvcGVkX3JlZnB0cjx3ZWJydGM6Ok1lZGlhU3RyZWFtVHJhY2tJbnRlcmZhY2U+IHRyYWNrKCkg
Y29uc3QgZmluYWwKKyAgICB7CisgICAgICAgIGlmICghbV90cmFjaykKKyAgICAgICAgICAgIGNv
bnN0X2Nhc3Q8TW9ja1J0cFJlY2VpdmVyKj4odGhpcyktPm1fdHJhY2sgPSBuZXcgcnRjOjpSZWZD
b3VudGVkT2JqZWN0PE1vY2tNZWRpYVN0cmVhbVRyYWNrPigpOworICAgICAgICByZXR1cm4gbV90
cmFjazsKKyAgICB9CisKKyAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpNZWRpYVN0cmVh
bVRyYWNrSW50ZXJmYWNlPiBtX3RyYWNrOwogfTsKIAogY2xhc3MgTW9ja1J0cFRyYW5zY2VpdmVy
IDogcHVibGljIHdlYnJ0Yzo6UnRwVHJhbnNjZWl2ZXJJbnRlcmZhY2UgewpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKaW5kZXggYjk0Mjc3OTZjZTJhY2Y2MTczYzU2MjFhODVlMjRjY2IxMjhm
NTRhYi4uZjMzMjk4ZjlmOGM0OTMwYjRlNzBkZTRmY2ZmNjliN2U0ZWEwZTJmNyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDMtMTYgIHlvdWVu
biBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSB0aGUgdXNlIG9m
IGVtcHR5IFdlYlJUQyBzb3VyY2VzIGZvciByZWNlaXZlciB0cmFja3MKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTA2MQorCisgICAgICAgIFJldmll
d2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tdHJhY2stc3RhdHMuaHR0cHMtZXhwZWN0ZWQudHh0OgorCiAy
MDIwLTAzLTE2ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBV
bmlxdWUgb3JpZ2lucyBzaG91bGQgbm90IGJlIFBvdGVudGlhbGx5IFRydXN0d29ydGh5CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi10cmFjay1zdGF0cy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi10cmFjay1zdGF0cy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMmM5MDAxNDAxYmM4
OWRiNjI5ZTBlMGI5NGJkODFjZTE2MTdkZTI3NC4uNjVjNzc1MjY4MjI1NDI5ZTQ0YjIwYjcxMDJj
OTlkMmY5OWU0ZGRiNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tdHJhY2stc3RhdHMuaHR0cHMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXRyYWNrLXN0YXRzLmh0dHBzLWV4cGVjdGVk
LnR4dApAQCAtMTEsOCArMTEsOCBAQCBGQUlMIHJlcGxhY2VUcmFjaygpIGJlZm9yZSBvZmZlcjog
bmV3IHRyYWNrIGF0dGFjaG1lbnQgc3RhdHMgcHJlc2VudCBhc3NlcnRfdHJ1ZQogRkFJTCByZXBs
YWNlVHJhY2soKSBhZnRlciBvZmZlciwgYmVmb3JlIGFuc3dlcjogbmV3IHRyYWNrIGF0dGFjaG1l
bnQgc3RhdHMgcHJlc2VudCBhc3NlcnRfdHJ1ZTogSGFzIHN0YXRzIGZvciByZXBsYWNlZCB0cmFj
ayBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCByZXBsYWNlVHJhY2soKSBhZnRlciBhbnN3
ZXI6IG5ldyB0cmFjayBhdHRhY2htZW50IHN0YXRzIHByZXNlbnQgYXNzZXJ0X3RydWU6IEhhcyBz
dGF0cyBmb3IgcmVwbGFjZWQgdHJhY2sgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZBSUwgcmVw
bGFjZVRyYWNrKCk6IG9yaWdpbmFsIHRyYWNrIGF0dGFjaG1lbnQgc3RhdHMgcHJlc2VudCBhZnRl
ciByZXBsYWNpbmcgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IHVuZGVmaW5lZAotRkFJ
TCBSVENSdHBTZW5kZXIuZ2V0U3RhdHMoKSBjb250YWlucyBvbmx5IG91dGJvdW5kLXJ0cCBhbmQg
cmVsYXRlZCBzdGF0cyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogb2JqZWN0ICJUeXBlRXJyb3I6IG51bGwgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAn
aW5ib3VuZFRyYWNrU3RhdHMuaWQnKSIKLUZBSUwgUlRDUnRwUmVjZWl2ZXIuZ2V0U3RhdHMoKSBj
b250YWlucyBvbmx5IGluYm91bmQtcnRwIGFuZCByZWxhdGVkIHN0YXRzIHByb21pc2VfdGVzdDog
VW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogbnVsbCBp
cyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdpbmJvdW5kVHJhY2tTdGF0cy5pZCcpIgorUEFT
UyBSVENSdHBTZW5kZXIuZ2V0U3RhdHMoKSBjb250YWlucyBvbmx5IG91dGJvdW5kLXJ0cCBhbmQg
cmVsYXRlZCBzdGF0cyAKK1BBU1MgUlRDUnRwUmVjZWl2ZXIuZ2V0U3RhdHMoKSBjb250YWlucyBv
bmx5IGluYm91bmQtcnRwIGFuZCByZWxhdGVkIHN0YXRzIAogUEFTUyBSVENQZWVyQ29ubmVjdGlv
bi5nZXRTdGF0cyhzZW5kaW5nVHJhY2spIGlzIHRoZSBzYW1lIGFzIFJUQ1J0cFNlbmRlci5nZXRT
dGF0cygpIAogUEFTUyBSVENQZWVyQ29ubmVjdGlvbi5nZXRTdGF0cyhyZWNlaXZpbmdUcmFjaykg
aXMgdGhlIHNhbWUgYXMgUlRDUnRwUmVjZWl2ZXIuZ2V0U3RhdHMoKSAKIEZBSUwgUlRDUGVlckNv
bm5lY3Rpb24uZ2V0U3RhdHModHJhY2spIHRocm93cyBJbnZhbGlkQWNjZXNzRXJyb3Igd2hlbiB0
aGVyZSBhcmUgemVybyBzZW5kZXJzIG9yIHJlY2VpdmVycyBmb3IgdGhlIHRyYWNrIGFzc2VydF91
bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNo
YWJsZSBjb2RlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>