<?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>237267</bug_id>
          
          <creation_ts>2022-02-27 23:45:18 -0800</creation_ts>
          <short_desc>Introduce routines to exchange SharedVideoFrame::Buffer directly</short_desc>
          <delta_ts>2022-03-04 01:17:19 -0800</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>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1846553</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-02-27 23:45:18 -0800</bug_when>
    <thetext>Introduce routines to exchange SharedVideoFrame::Buffer directly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846554</commentid>
    <comment_count>1</comment_count>
      <attachid>453371</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-02-27 23:53:32 -0800</bug_when>
    <thetext>Created attachment 453371
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846573</commentid>
    <comment_count>2</comment_count>
      <attachid>453375</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-02-28 01:37:11 -0800</bug_when>
    <thetext>Created attachment 453375
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846989</commentid>
    <comment_count>3</comment_count>
      <attachid>453488</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-01 04:01:11 -0800</bug_when>
    <thetext>Created attachment 453488
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847018</commentid>
    <comment_count>4</comment_count>
      <attachid>453497</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-01 07:15:31 -0800</bug_when>
    <thetext>Created attachment 453497
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847373</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-02 06:55:41 -0800</bug_when>
    <thetext>Ping review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847418</commentid>
    <comment_count>6</comment_count>
      <attachid>453497</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2022-03-02 08:28:44 -0800</bug_when>
    <thetext>Comment on attachment 453497
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=453497&amp;action=review

&gt; Source/WebKit/GPUProcess/media/RemoteVideoFrameObjectHeap.cpp:109
&gt; +    auto videoFrame = get(WTFMove(read));

Obviously this isn&apos;t new to this patch, but reading this made me realize that RemoteVideoFrameObjectHeap::get is a confusing name because `get` RefPtr::get and Ref::get are so widely used in WebKit and don&apos;t mean the same thing at all.

&gt; Source/WebKit/GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:248
&gt; +            m_videoFrameObjectHeap-&gt;get(WTFMove(std::get&lt;RemoteVideoFrameReadReference&gt;(sharedVideoFrame.buffer)));

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847827</commentid>
    <comment_count>7</comment_count>
      <attachid>453718</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-03 04:25:14 -0800</bug_when>
    <thetext>Created attachment 453718
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848202</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-04 01:16:17 -0800</bug_when>
    <thetext>Committed r290824 (248060@main): &lt;https://commits.webkit.org/248060@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 453718.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848203</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-04 01:17:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/89802729&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453371</attachid>
            <date>2022-02-27 23:53:32 -0800</date>
            <delta_ts>2022-02-28 01:37:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237267-20220228085330.patch</filename>
            <type>text/plain</type>
            <size>37085</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJkNzEzNWUyYmMyZGI0YTdj
MGFmZTg4MmZiNWYwODU2NzQ4ZmE3OGYuLjU3N2Q5NjQyYjdlY2FjZjhjN2MzOGI4NjcxMjA1ZGFm
ODgwM2QxZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDItMjcgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSByb3V0aW5lcyB0
byBleGNoYW5nZSBTaGFyZWRWaWRlb0ZyYW1lOjpCdWZmZXIgZGlyZWN0bHkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzI2NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERlZmluZSBleHBsaWN0bHkgU2hh
cmVkVmlkZW9GcmFtZTo6QnVmZmVyIGFzIFZhcmlhbnQgb2YgdGhlIHZhcmlvdXMgYnVmZmVyIHJl
cHJlc2VudGF0aW9ucy4KKyAgICAgICAgVGhpcyBhbGxvd3MgdG8gbW92ZSBtb3JlIGNvZGUgaW4g
U2hhcmVkVmlkZW9GcmFtZSBmb3IgaW5zdGFuY2UgYnkgYWRkaW5nIGRpcmVjdCBzdXBwb3J0IG9m
IHNlbmRpbmcgd2VicnRjOjpWaWRlb0ZyYW1lIGJ1ZmZlcnMgaW4gU2hhcmVkVmlkZW9GcmFtZS4K
KyAgICAgICAgUmV1c2UgdGhhdCBjb2RlIGluIExpYldlYlJUQ0NvZGVjcyBhcyBhIHJlZmFjdG9y
aW5nL3NpbXBsaWZpY2F0aW9uLgorICAgICAgICBSZXVzZSB0aGF0IGNvZGUgaW4gUmVtb3RlVmlk
ZW9GcmFtZU9iamVjdEhlYXAgd2hpY2ggYWxsb3dzIHRvIGV4Y2hhbmdlIElPU3VyZmFjZXMgaW4g
Y2FzZSBXZWJQcm9jZXNzIGNhbiBkbyBpdAorICAgICAgICB3aGVuIGVuY29kaW5nIGZyYW1lcyB1
c2luZyBzb2Z0d2FyZSBlbmNvZGVycy4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRl
c3RzLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0
SGVhcC5jcHA6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lT2Jq
ZWN0SGVhcC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9i
amVjdEhlYXAubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvTGliV2Vi
UlRDQ29kZWNzUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVEND
b2RlY3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJX
ZWJSVENDb2RlY3NQcm94eS5tbToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1l
UHJveHkuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2Rl
Y3MuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1l
T2JqZWN0SGVhcFByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90
ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IuY3BwOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29y
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmpl
Y3RIZWFwUHJveHlQcm9jZXNzb3IubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmg6CisKIDIwMjItMDItMjcgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEVuc3VyZSBSZW1vdGVNZWRpYVBsYXllclBy
b3h5IHNldHMgaXRzIHJlc291cmNlIG93bmVyIHRvIHBpeGVsIGJ1ZmZlcnMgY3JlYXRlZCBieSBp
dHMgcGxheWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmNwcAppbmRleCBmOGU3Y2YxYTU4MjdmMjlk
OGJmOGIzZjE4Y2MwMzlhNDk5YWU1OTg3Li4wOGI1Mjk2ODlkYWYyODI3NTBmMTRiNTExOTNmYTc2
ZmM1YWE3ODI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5jcHAKQEAgLTEwMSw1MSArMTAxLDIy
IEBAIHZvaWQgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXA6OnJlbGVhc2VWaWRlb0ZyYW1lKFJl
bW90ZVZpZGVvRnJhbWVXcml0ZVJlZmVyZW5jCiB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKLXZv
aWQgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXA6OmdldFZpZGVvRnJhbWVCdWZmZXIoUmVtb3Rl
VmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UmJiByZWFkKQordm9pZCBSZW1vdGVWaWRlb0ZyYW1lT2Jq
ZWN0SGVhcDo6Z2V0VmlkZW9GcmFtZUJ1ZmZlcihSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5j
ZSYmIHJlYWQsIGJvb2wgY2FuU2VuZElPU3VyZmFjZSkKIHsKICAgICBhc3NlcnRJc0N1cnJlbnQo
cmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBRdWV1ZSgpKTsKIAogICAgIGF1dG8gaWRlbnRpZmll
ciA9IHJlYWQuaWRlbnRpZmllcigpOwogICAgIGF1dG8gdmlkZW9GcmFtZSA9IG1faGVhcC5yZXRp
cmUoV1RGTW92ZShyZWFkKSwgMF9zKTsKIAotICAgIGlmICghdmlkZW9GcmFtZSkgewotICAgICAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFw
UHJveHlQcm9jZXNzb3I6OlZpZGVvRnJhbWVCdWZmZXJOb3RGb3VuZCB7IGlkZW50aWZpZXIgfSwg
MCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gdmlk
ZW9GcmFtZS0+cGl4ZWxCdWZmZXIoKTsKLSAgICBpZiAoIXBpeGVsQnVmZmVyKSB7Ci0gICAgICAg
IG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQ
cm94eVByb2Nlc3Nvcjo6VmlkZW9GcmFtZUJ1ZmZlck5vdEZvdW5kIHsgaWRlbnRpZmllciB9LCAw
KTsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBib29sIHJlc3VsdCA9IG1fc2hhcmVkVmlkZW9GcmFtZVdyaXRlci53cml0ZShwaXhl
bEJ1ZmZlciwKLSAgICAgICAgWyZdKGF1dG8mIHNlbWFwaG9yZSkgeyBtX2Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6OlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3I6OlNl
dFNoYXJlZFZpZGVvRnJhbWVTZW1hcGhvcmUgeyBzZW1hcGhvcmUgfSwgMCk7IH0sCi0gICAgICAg
IFsmXShhdXRvJiBoYW5kbGUpIHsgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVW
aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yOjpTZXRTaGFyZWRWaWRlb0ZyYW1lTWVt
b3J5IHsgaGFuZGxlIH0sIDApOyB9Ci0gICAgKTsKLSAgICBpZiAoIXJlc3VsdCkgewotICAgICAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkIEFTU0VSVF9OT1RfUkVBQ0hFRCBvbmNlIHdlIHN1cHBvcnQg
ZW5vdWdoIHBpeGVsIGJ1ZmZlciB0eXBlcy4KLSAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yOjpWaWRlb0Zy
YW1lQnVmZmVyTm90Rm91bmQgeyBpZGVudGlmaWVyIH0sIDApOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlVmlkZW9GcmFtZU9i
amVjdEhlYXBQcm94eVByb2Nlc3Nvcjo6TmV3VmlkZW9GcmFtZUJ1ZmZlciB7IGlkZW50aWZpZXIg
fSwgMCk7Ci19Ci0KLXZvaWQgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXA6OnBpeGVsQnVmZmVy
KFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlJiYgcmVhZCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQot
ewotICAgIGFzc2VydElzQ3VycmVudChyZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFF1ZXVlKCkp
OwotCi0gICAgYXV0byB2aWRlb0ZyYW1lID0gbV9oZWFwLnJldGlyZShXVEZNb3ZlKHJlYWQpLCAw
X3MpOwotICAgIGlmICghdmlkZW9GcmFtZSkgewotICAgICAgICBBU1NFUlRfSVNfVEVTVElOR19J
UEMoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobnVsbHB0cik7Ci0gICAgICAgIHJldHVy
bjsKKyAgICBzdGQ6Om9wdGlvbmFsPFNoYXJlZFZpZGVvRnJhbWU6OkJ1ZmZlcj4gYnVmZmVyOwor
ICAgIGlmICh2aWRlb0ZyYW1lKSB7CisgICAgICAgIGJ1ZmZlciA9IG1fc2hhcmVkVmlkZW9GcmFt
ZVdyaXRlci53cml0ZUJ1ZmZlcih2aWRlb0ZyYW1lLT5waXhlbEJ1ZmZlcigpLAorICAgICAgICAg
ICAgWyZdKGF1dG8mIHNlbWFwaG9yZSkgeyBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJl
bW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3I6OlNldFNoYXJlZFZpZGVvRnJh
bWVTZW1hcGhvcmUgeyBzZW1hcGhvcmUgfSwgMCk7IH0sCisgICAgICAgICAgICBbJl0oYXV0byYg
aGFuZGxlKSB7IG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlVmlkZW9GcmFtZU9i
amVjdEhlYXBQcm94eVByb2Nlc3Nvcjo6U2V0U2hhcmVkVmlkZW9GcmFtZU1lbW9yeSB7IGhhbmRs
ZSB9LCAwKTsgfSwKKyAgICAgICAgICAgIGNhblNlbmRJT1N1cmZhY2UpOworICAgICAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkIEFTU0VSVChyZXN1bHQpIG9uY2Ugd2Ugc3VwcG9ydCBlbm91Z2ggcGl4
ZWwgYnVmZmVyIHR5cGVzLgogICAgIH0KLQotICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSB2aWRlb0Zy
YW1lLT5waXhlbEJ1ZmZlcigpOwotICAgIEFTU0VSVChwaXhlbEJ1ZmZlcik7Ci0gICAgY29tcGxl
dGlvbkhhbmRsZXIoV1RGTW92ZShwaXhlbEJ1ZmZlcikpOworICAgIG1fY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvcjo6TmV3
VmlkZW9GcmFtZUJ1ZmZlciB7IGlkZW50aWZpZXIsICpidWZmZXIgfSwgMCk7CiB9CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVv
RnJhbWVPYmplY3RIZWFwLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXAuaAppbmRleCAxYmI0ZTBhNDNlMTFmN2YxYTg5MGU2OWM3NGU3
Y2E4OTQ0YjE4ZmUzLi5hMWNkZjZjYmFlMjE2YzNiNTZlNjUyOGQxYjdlOWE0ZjBiZjRlMjUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFt
ZU9iamVjdEhlYXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXAuaApAQCAtNTQsMTMgKzU0LDExIEBAIHByaXZhdGU6CiAKICAg
ICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciBvdmVycmlkZXMuCiAgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKLSAgICBib29s
IGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBV
bmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYpIGZpbmFsOwogCiAgICAgLy8gTWVzc2FnZXMuCiAgICAg
dm9pZCByZWxlYXNlVmlkZW9GcmFtZShSZW1vdGVWaWRlb0ZyYW1lV3JpdGVSZWZlcmVuY2UmJik7
CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdm9pZCBnZXRWaWRlb0ZyYW1lQnVmZmVyKFJlbW90
ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlJiYpOwotICAgIHZvaWQgcGl4ZWxCdWZmZXIoUmVtb3Rl
VmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXRhaW5Q
dHI8Q1ZQaXhlbEJ1ZmZlclJlZj4pPiYmKTsKKyAgICB2b2lkIGdldFZpZGVvRnJhbWVCdWZmZXIo
UmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UmJiwgYm9vbCBjYW5TZW5kSU9TdXJmYWNlKTsK
ICNlbmRpZgogCiAgICAgY29uc3QgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLm1lc3NhZ2VzLmluCmluZGV4IDZmYThhYTJiY2Mz
NDQ4ZmRmNWQxNWUwZWMxOTdmNGQ4N2FiYzdiYmUuLjc0YmRhMzNlNjE2OGZiZTkyMTdjZTg0MGUy
MjFmNzk4NWQ1YjJhYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAubWVzc2FnZXMu
aW4KQEAgLTI0LDggKzI0LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShW
SURFTykKIG1lc3NhZ2VzIC0+IFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwIE5vdFJlZkNvdW50
ZWQgewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIEdldFZpZGVvRnJhbWVCdWZmZXIoV2ViS2l0
OjpSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSByZWFkKQotICAgIFBpeGVsQnVmZmVyKFdl
YktpdDo6UmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UgcmVhZCkgLT4gKFJldGFpblB0cjxD
VlBpeGVsQnVmZmVyUmVmPiByZXN1bHQpIFN5bmNocm9ub3VzCisgICAgR2V0VmlkZW9GcmFtZUJ1
ZmZlcihXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlIHJlYWQsIGJvb2wgY2Fu
U2VuZElPU3VyZmFjZSkKICNlbmRpZgogICAgIFJlbGVhc2VWaWRlb0ZyYW1lKFdlYktpdDo6UmVt
b3RlVmlkZW9GcmFtZVdyaXRlUmVmZXJlbmNlIHdyaXRlKQogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oCmluZGV4IDg3
NGZmNjgzYmE3ZmU0YmEwYTBlNTI3ODkwZDZmODY2NTJmM2Y5ODAuLjE5MjY3MzhmOWUwMjgxOWM3
ZjRmYjlkYzhhZTUzNTk5M2MwNGU5MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5LmgKQEAgLTg4LDcgKzg4LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGNyZWF0ZUVuY29kZXIoUlRDRW5jb2RlcklkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYsIGJv
b2wgdXNlTG93TGF0ZW5jeSk7CiAgICAgdm9pZCByZWxlYXNlRW5jb2RlcihSVENFbmNvZGVySWRl
bnRpZmllcik7CiAgICAgdm9pZCBpbml0aWFsaXplRW5jb2RlcihSVENFbmNvZGVySWRlbnRpZmll
ciwgdWludDE2X3Qgd2lkdGgsIHVpbnQxNl90IGhlaWdodCwgdW5zaWduZWQgc3RhcnRCaXRyYXRl
LCB1bnNpZ25lZCBtYXhCaXRyYXRlLCB1bnNpZ25lZCBtaW5CaXRyYXRlLCB1aW50MzJfdCBtYXhG
cmFtZXJhdGUpOwotICAgIHZvaWQgZW5jb2RlRnJhbWUoUlRDRW5jb2RlcklkZW50aWZpZXIsIFdl
YkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYsIHVpbnQzMl90IHRpbWVTdGFtcCwgYm9vbCBzaG91
bGRFbmNvZGVBc0tleUZyYW1lLCBzdGQ6Om9wdGlvbmFsPFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVm
ZXJlbmNlPik7CisgICAgdm9pZCBlbmNvZGVGcmFtZShSVENFbmNvZGVySWRlbnRpZmllciwgU2hh
cmVkVmlkZW9GcmFtZSYmLCB1aW50MzJfdCB0aW1lU3RhbXAsIGJvb2wgc2hvdWxkRW5jb2RlQXNL
ZXlGcmFtZSk7CiAgICAgdm9pZCBzZXRFbmNvZGVSYXRlcyhSVENFbmNvZGVySWRlbnRpZmllciwg
dWludDMyX3QgYml0UmF0ZSwgdWludDMyX3QgZnJhbWVSYXRlKTsKICAgICB2b2lkIHNldFNoYXJl
ZFZpZGVvRnJhbWVTZW1hcGhvcmUoUlRDRW5jb2RlcklkZW50aWZpZXIsIElQQzo6U2VtYXBob3Jl
JiYpOwogICAgIHZvaWQgc2V0U2hhcmVkVmlkZW9GcmFtZU1lbW9yeShSVENFbmNvZGVySWRlbnRp
ZmllciwgY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5
Lm1lc3NhZ2VzLmluCmluZGV4IGRmYWY0YTI2YmQxZTMxMjE5MDM0YWJiMDY1MmRlMjNkOWNlMmQx
YWEuLmU2NDlkNzE0YTc3MjM4M2EyM2FiMDYzY2FmZjFiY2ZhN2E0NDBjY2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVEND
b2RlY3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzQsNyArMzQsNyBAQCBtZXNzYWdlcyAtPiBMaWJX
ZWJSVENDb2RlY3NQcm94eSBOb3RSZWZDb3VudGVkIHsKICAgICBDcmVhdGVFbmNvZGVyKFdlYktp
dDo6UlRDRW5jb2RlcklkZW50aWZpZXIgaWQsIFN0cmluZyBmb3JtYXROYW1lLCBWZWN0b3I8c3Rk
OjpwYWlyPFN0cmluZywgU3RyaW5nPj4gcGFyYW1ldGVycywgYm9vbCB1c2VMb3dMYXRlbmN5KTsK
ICAgICBSZWxlYXNlRW5jb2RlcihXZWJLaXQ6OlJUQ0VuY29kZXJJZGVudGlmaWVyIGlkKQogICAg
IEluaXRpYWxpemVFbmNvZGVyKFdlYktpdDo6UlRDRW5jb2RlcklkZW50aWZpZXIgaWQsIHVpbnQx
Nl90IHdpZHRoLCB1aW50MTZfdCBoZWlnaHQsIHVuc2lnbmVkIHN0YXJ0Qml0cmF0ZSwgdW5zaWdu
ZWQgbWF4Qml0cmF0ZSwgdW5zaWduZWQgbWluQml0cmF0ZSwgdWludDMyX3QgbWF4RnJhbWVyYXRl
KQotICAgIEVuY29kZUZyYW1lKFdlYktpdDo6UlRDRW5jb2RlcklkZW50aWZpZXIgaWQsIFdlYkNv
cmU6OlJlbW90ZVZpZGVvU2FtcGxlIHNhbXBsZSwgdWludDMyX3QgdGltZVN0YW1wLCBib29sIHNo
b3VsZEVuY29kZUFzS2V5RnJhbWUsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpSZW1vdGVWaWRlb0Zy
YW1lUmVhZFJlZmVyZW5jZT4gc2FtcGxlUmVmZXJlbmNlKQorICAgIEVuY29kZUZyYW1lKFdlYktp
dDo6UlRDRW5jb2RlcklkZW50aWZpZXIgaWQsIHN0cnVjdCBXZWJLaXQ6OlNoYXJlZFZpZGVvRnJh
bWUgYnVmZmVyLCB1aW50MzJfdCB0aW1lU3RhbXAsIGJvb2wgc2hvdWxkRW5jb2RlQXNLZXlGcmFt
ZSkKICAgICBTZXRFbmNvZGVSYXRlcyhXZWJLaXQ6OlJUQ0VuY29kZXJJZGVudGlmaWVyIGlkLCB1
aW50MzJfdCBiaXRSYXRlLCB1aW50MzJfdCBmcmFtZVJhdGUpCiAgICAgU2V0U2hhcmVkVmlkZW9G
cmFtZVNlbWFwaG9yZShXZWJLaXQ6OlJUQ0VuY29kZXJJZGVudGlmaWVyIGlkLCBJUEM6OlNlbWFw
aG9yZSBzZW1hcGhvcmUpCiAgICAgU2V0U2hhcmVkVmlkZW9GcmFtZU1lbW9yeShXZWJLaXQ6OlJU
Q0VuY29kZXJJZGVudGlmaWVyIGlkLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHN0
b3JhZ2VIYW5kbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRj
L0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0
Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQppbmRleCBhNzY3MWQ4ZDcyMWY4Nzk1OGFhNzRhYjc5
MmIzYWQ0YWZhODA3YmI3Li42ZGM4NmUzNWE4ZGQ4Mjc3OTE0OGQ2ZDVmYzkwMWI0NGEyZGEyM2Ni
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0Nv
ZGVjc1Byb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2Vi
UlRDQ29kZWNzUHJveHkubW0KQEAgLTE4NSw3ICsxODUsNyBAQCB2b2lkIExpYldlYlJUQ0NvZGVj
c1Byb3h5OjpjcmVhdGVFbmNvZGVyKFJUQ0VuY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNv
bnN0CiAgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjczo6
Q29tcGxldGVkRW5jb2RpbmcgeyBpZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UgeyBidWZm
ZXIsIHNpemUgfSwgaW5mbyB9LCAwKTsKICAgICB9KS5nZXQoKSk7CiAgICAgd2VicnRjOjpzZXRM
b2NhbEVuY29kZXJMb3dMYXRlbmN5KGVuY29kZXIsIHVzZUxvd0xhdGVuY3kpOwotICAgIGF1dG8g
cmVzdWx0ID0gbV9lbmNvZGVycy5hZGQoaWRlbnRpZmllciwgRW5jb2RlciB7IGVuY29kZXIsIG51
bGxwdHIgfSk7CisgICAgYXV0byByZXN1bHQgPSBtX2VuY29kZXJzLmFkZChpZGVudGlmaWVyLCBF
bmNvZGVyIHsgZW5jb2RlciwgbWFrZVVuaXF1ZTxTaGFyZWRWaWRlb0ZyYW1lUmVhZGVyPihSZWYg
eyBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwIH0sIG1fcmVzb3VyY2VPd25lcikgfSk7CiAgICAgQVNT
RVJUX1VOVVNFRChyZXN1bHQsIHJlc3VsdC5pc05ld0VudHJ5IHx8IGlzVGVzdGluZ0lQQygpKTsK
ICAgICBtX2hhc0VuY29kZXJzT3JEZWNvZGVycyA9IHRydWU7CiB9CkBAIC0yMzcsMzkgKzIzNywy
NCBAQCBzdGF0aWMgaW5saW5lIHdlYnJ0Yzo6VmlkZW9Sb3RhdGlvbiB0b1dlYlJUQ1ZpZGVvUm90
YXRpb24oV2ViQ29yZTo6TWVkaWFTYW1wbGU6OgogICAgIHJldHVybiB3ZWJydGM6OmtWaWRlb1Jv
dGF0aW9uXzA7CiB9CiAKLXZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OmVuY29kZUZyYW1lKFJU
Q0VuY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxl
JiYgc2FtcGxlLCB1aW50MzJfdCB0aW1lU3RhbXAsIGJvb2wgc2hvdWxkRW5jb2RlQXNLZXlGcmFt
ZSwgc3RkOjpvcHRpb25hbDxSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZT4gc2FtcGxlUmVm
ZXJlbmNlKQordm9pZCBMaWJXZWJSVENDb2RlY3NQcm94eTo6ZW5jb2RlRnJhbWUoUlRDRW5jb2Rl
cklkZW50aWZpZXIgaWRlbnRpZmllciwgU2hhcmVkVmlkZW9GcmFtZSYmIHNoYXJlZFZpZGVvRnJh
bWUsIHVpbnQzMl90IHRpbWVTdGFtcCwgYm9vbCBzaG91bGRFbmNvZGVBc0tleUZyYW1lKQogewog
ICAgIGFzc2VydElzQ3VycmVudCh3b3JrUXVldWUoKSk7Ci0gICAgUmV0YWluUHRyPENWUGl4ZWxC
dWZmZXJSZWY+IHBpeGVsQnVmZmVyOwotICAgIGlmIChzYW1wbGVSZWZlcmVuY2UpIHsKLSAgICAg
ICAgYXV0byBzYW1wbGUgPSBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwLT5nZXQoV1RGTW92ZSgqc2Ft
cGxlUmVmZXJlbmNlKSk7Ci0gICAgICAgIGlmICghc2FtcGxlKQotICAgICAgICAgICAgcmV0dXJu
OwotCi0gICAgICAgIGF1dG8gcGxhdGZvcm1TYW1wbGUgPSBzYW1wbGUtPnBsYXRmb3JtU2FtcGxl
KCk7Ci0gICAgICAgIEFTU0VSVChwbGF0Zm9ybVNhbXBsZS50eXBlID09IFdlYkNvcmU6OlBsYXRm
b3JtU2FtcGxlOjpDTVNhbXBsZUJ1ZmZlclR5cGUpOwotICAgICAgICBwaXhlbEJ1ZmZlciA9IHN0
YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1
ZmZlcihwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpKTsKLSAgICB9Ci0KICAg
ICBhdXRvKiBlbmNvZGVyID0gZmluZEVuY29kZXIoaWRlbnRpZmllcik7CiAgICAgaWYgKCFlbmNv
ZGVyKSB7CiAgICAgICAgIEFTU0VSVF9JU19URVNUSU5HX0lQQygpOworICAgICAgICAvLyBNYWtl
IHN1cmUgdG8gcmVhZCBSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSB0byBwcmV2ZW50IG1l
bW9yeSBsZWFrcy4KKyAgICAgICAgaWYgKHN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVtb3RlVmlk
ZW9GcmFtZVJlYWRSZWZlcmVuY2U+KHNoYXJlZFZpZGVvRnJhbWUuYnVmZmVyKSkKKyAgICAgICAg
ICAgIG1fdmlkZW9GcmFtZU9iamVjdEhlYXAtPmdldChXVEZNb3ZlKHN0ZDo6Z2V0PFJlbW90ZVZp
ZGVvRnJhbWVSZWFkUmVmZXJlbmNlPihzaGFyZWRWaWRlb0ZyYW1lLmJ1ZmZlcikpKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotI2lmICFQTEFURk9STShNQUNDQVRBTFlTVCkKLSAgICBpZiAo
IXBpeGVsQnVmZmVyKSB7Ci0gICAgICAgIGlmIChzYW1wbGUuc3VyZmFjZSgpKSB7Ci0gICAgICAg
ICAgICBpZiAoYXV0byBidWZmZXIgPSBXZWJDb3JlOjpjcmVhdGVDVlBpeGVsQnVmZmVyKHNhbXBs
ZS5zdXJmYWNlKCkpKQotICAgICAgICAgICAgICAgIHBpeGVsQnVmZmVyID0gV1RGTW92ZSgqYnVm
ZmVyKTsKLSAgICAgICAgfSBlbHNlIGlmIChlbmNvZGVyLT5mcmFtZVJlYWRlcikKLSAgICAgICAg
ICAgIHBpeGVsQnVmZmVyID0gZW5jb2Rlci0+ZnJhbWVSZWFkZXItPnJlYWQoKTsKLQotICAgICAg
ICBpZiAoIXBpeGVsQnVmZmVyKQotICAgICAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBhdXRv
IHBpeGVsQnVmZmVyID0gZW5jb2Rlci0+ZnJhbWVSZWFkZXItPnJlYWRCdWZmZXIoV1RGTW92ZShz
aGFyZWRWaWRlb0ZyYW1lLmJ1ZmZlcikpOworICAgIGlmICghcGl4ZWxCdWZmZXIpCisgICAgICAg
IHJldHVybjsKIAotICAgIHdlYnJ0Yzo6ZW5jb2RlTG9jYWxFbmNvZGVyRnJhbWUoZW5jb2Rlci0+
d2VicnRjRW5jb2RlciwgcGl4ZWxCdWZmZXIuZ2V0KCksIHNhbXBsZS50aW1lKCkudG9UaW1lU2Nh
bGUoMTAwMDAwMCkudGltZVZhbHVlKCksIHRpbWVTdGFtcCwgdG9XZWJSVENWaWRlb1JvdGF0aW9u
KHNhbXBsZS5yb3RhdGlvbigpKSwgc2hvdWxkRW5jb2RlQXNLZXlGcmFtZSk7CisjaWYgIVBMQVRG
T1JNKE1BQ0NBVEFMWVNUKQorICAgIHdlYnJ0Yzo6ZW5jb2RlTG9jYWxFbmNvZGVyRnJhbWUoZW5j
b2Rlci0+d2VicnRjRW5jb2RlciwgcGl4ZWxCdWZmZXIuZ2V0KCksIHNoYXJlZFZpZGVvRnJhbWUu
dGltZS50b1RpbWVTY2FsZSgxMDAwMDAwKS50aW1lVmFsdWUoKSwgdGltZVN0YW1wLCB0b1dlYlJU
Q1ZpZGVvUm90YXRpb24oc2hhcmVkVmlkZW9GcmFtZS5yb3RhdGlvbiksIHNob3VsZEVuY29kZUFz
S2V5RnJhbWUpOwogI2VuZGlmCiB9CiAKQEAgLTI5NCw4ICsyNzksNiBAQCB2b2lkIExpYldlYlJU
Q0NvZGVjc1Byb3h5OjpzZXRTaGFyZWRWaWRlb0ZyYW1lU2VtYXBob3JlKFJUQ0VuY29kZXJJZGVu
dGlmaWVyIGlkZQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCFlbmNvZGVyLT5m
cmFtZVJlYWRlcikKLSAgICAgICAgZW5jb2Rlci0+ZnJhbWVSZWFkZXIgPSBtYWtlVW5pcXVlPFNo
YXJlZFZpZGVvRnJhbWVSZWFkZXI+KFJlZiB7IG1fdmlkZW9GcmFtZU9iamVjdEhlYXAgfSwgbV9y
ZXNvdXJjZU93bmVyKTsKICAgICBlbmNvZGVyLT5mcmFtZVJlYWRlci0+c2V0U2VtYXBob3JlKFdU
Rk1vdmUoc2VtYXBob3JlKSk7CiB9CiAKQEAgLTMwOCw4ICsyOTEsNiBAQCB2b2lkIExpYldlYlJU
Q0NvZGVjc1Byb3h5OjpzZXRTaGFyZWRWaWRlb0ZyYW1lTWVtb3J5KFJUQ0VuY29kZXJJZGVudGlm
aWVyIGlkZW50aQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCFlbmNvZGVyLT5m
cmFtZVJlYWRlcikKLSAgICAgICAgZW5jb2Rlci0+ZnJhbWVSZWFkZXIgPSBtYWtlVW5pcXVlPFNo
YXJlZFZpZGVvRnJhbWVSZWFkZXI+KFJlZiB7IG1fdmlkZW9GcmFtZU9iamVjdEhlYXAgfSwgbV9y
ZXNvdXJjZU93bmVyKTsKICAgICBlbmNvZGVyLT5mcmFtZVJlYWRlci0+c2V0U2hhcmVkTWVtb3J5
KGlwY0hhbmRsZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDYwNzMyOGUwNmJjY2NhNDNiMjliNTVmMDE3ZDliMWVmMTM0NTRl
MDYuLjc5MWZiZmJlMWU4ZGYxNDg4ZDVhZTBhNjIwNWY1MjU2NTM4MTVhMTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDEyMSw2ICs0
MTIxLDcgQEAKIAkJNDEzMUYzRTAxRjk4NzEyQzAwNTk5OTVBIC8qIFdlYlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2tDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxMzVGQkNGMUY0RkI3RjIwMDc0QzQ3QiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVD
YWNoZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVTdG9y
YWdlRW5naW5lQ2FjaGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzNUZC
RDAxRjRGQjdGMjAwNzRDNDdCIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEzQzU0MjIyN0M5MEY0QzAwMkZDREE4IC8qIFJl
bW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTNDOEIxMzI1NTE2QkZBMDBFNjUwNTUgLyogTGliV2ViUlRDQ29kZWNzLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gTGliV2ViUlRDQ29kZWNzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTUwQTVBMDIzRTA2QzkxMDA1MTI2NEEgLyogR1BVUHJvY2Vzc1Nlc3Npb25QYXJhbWV0
ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVVByb2Nlc3NTZXNzaW9u
UGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTUxODUzNTIyMjcw
NEY1MDA1NDMwQzYgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC02OTQ3LDYgKzY5NDgsNyBAQAogCQkJCTA3RTE5RjA2MjNENERDODgw
MDk0RkZCNCAvKiBSZW1vdGVUZXh0VHJhY2tQcm94eS5oICovLAogCQkJCTdCNUEzREE4MjdBN0RD
QkMwMDZDNkY5NyAvKiBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5jcHAgKi8sCiAJCQkJN0I1
QTNEQTcyN0E3RENCQzAwNkM2Rjk3IC8qIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmggKi8s
CisJCQkJNDEzQzU0MjIyN0M5MEY0QzAwMkZDREE4IC8qIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RI
ZWFwLm1lc3NhZ2VzLmluICovLAogCQkJCTA3MUJDNTg0MjNDQzJDMDkwMDY4MEQ3QyAvKiBSZW1v
dGVWaWRlb1RyYWNrUHJveHkuY3BwICovLAogCQkJCTA3MUJDNTg1MjNDQzJDMDkwMDY4MEQ3QyAv
KiBSZW1vdGVWaWRlb1RyYWNrUHJveHkuaCAqLywKIAkJCQkwN0UxOUYwNTIzRDREQzg4MDA5NEZG
QjQgLyogVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9G
cmFtZVByb3h5LmNwcAppbmRleCA5NmJiYThlMGZjOTEzODcyZmFiYjc1ZTlkMjg2YWEyMWE5ODVj
YzgyLi42MDE3MDM1ZTI1N2Y3ZDQ5ZjY5YzBiNDg2MjliOWMxM2U1MGViMzk3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRl
b0ZyYW1lUHJveHkuY3BwCkBAIC0xMDYsMjEgKzEwNiwxMyBAQCBDVlBpeGVsQnVmZmVyUmVmIFJl
bW90ZVZpZGVvRnJhbWVQcm94eTo6cGl4ZWxCdWZmZXIoKSBjb25zdAogICAgIGlmICghbV9waXhl
bEJ1ZmZlciAmJiBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkpIHsKICAgICAgICAgYXV0byB2
aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5ID0gc3RkOjpleGNoYW5nZShtX3ZpZGVvRnJhbWVPYmpl
Y3RIZWFwUHJveHksIG51bGxwdHIpOwogCi0gICAgICAgIGJvb2wgY2FuU2VuZFN5bmMgPSBpc01h
aW5SdW5Mb29wKCk7IC8vIEZJWE1FOiB3ZSBzaG91bGQgYmUgYWJsZSB0byBzZW5kU3luYyBmcm9t
IG90aGVyIHRocmVhZHMgdG9vLgotICAgICAgICAvLyBDdXJyZW50bHkgd2UganVzdCBrZXkgd2l0
aCB0aGlzLCBhcyB0aGVyZSBpcyBubyBjb25kaXRpb24gZm9yICJoYXMgYWNjZXNzIHRvIElPS2l0
Ii4KLSAgICAgICAgaWYgKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNob3VsZFVzZVJlbW90ZVJl
bmRlcmluZ0ZvcldlYkdMKCkgfHwgIWNhblNlbmRTeW5jKSB7Ci0gICAgICAgICAgICBCaW5hcnlT
ZW1hcGhvcmUgc2VtYXBob3JlOwotICAgICAgICAgICAgdmlkZW9GcmFtZU9iamVjdEhlYXBQcm94
eS0+Z2V0VmlkZW9GcmFtZUJ1ZmZlcigqdGhpcywgW3RoaXMsICZzZW1hcGhvcmVdKGF1dG8gcGl4
ZWxCdWZmZXIpIHsKLSAgICAgICAgICAgICAgICBtX3BpeGVsQnVmZmVyID0gV1RGTW92ZShwaXhl
bEJ1ZmZlcik7Ci0gICAgICAgICAgICAgICAgc2VtYXBob3JlLnNpZ25hbCgpOwotICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICBzZW1hcGhvcmUud2FpdCgpOwotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVyOwotICAg
ICAgICAgICAgYXV0byByZXN1bHQgPSBtX2Nvbm5lY3Rpb24tPnNlbmRTeW5jKE1lc3NhZ2VzOjpS
ZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcDo6UGl4ZWxCdWZmZXIobmV3UmVhZFJlZmVyZW5jZSgp
KSwgTWVzc2FnZXM6OlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOjpQaXhlbEJ1ZmZlcjo6UmVw
bHkocGl4ZWxCdWZmZXIpLCAwLCBkZWZhdWx0VGltZW91dCk7Ci0gICAgICAgICAgICBpZiAocmVz
dWx0KQotICAgICAgICAgICAgICAgIG1fcGl4ZWxCdWZmZXIgPSBXVEZNb3ZlKHBpeGVsQnVmZmVy
KTsKLSAgICAgICAgfQorICAgICAgICBib29sIGNhblVzZUlPU3VyZmFjZSA9IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnNob3VsZFVzZVJlbW90ZVJlbmRlcmluZ0ZvcldlYkdMKCk7CisgICAgICAg
IEJpbmFyeVNlbWFwaG9yZSBzZW1hcGhvcmU7CisgICAgICAgIHZpZGVvRnJhbWVPYmplY3RIZWFw
UHJveHktPmdldFZpZGVvRnJhbWVCdWZmZXIoKnRoaXMsIGNhblVzZUlPU3VyZmFjZSwgW3RoaXMs
ICZzZW1hcGhvcmVdKGF1dG8gcGl4ZWxCdWZmZXIpIHsKKyAgICAgICAgICAgIG1fcGl4ZWxCdWZm
ZXIgPSBXVEZNb3ZlKHBpeGVsQnVmZmVyKTsKKyAgICAgICAgICAgIHNlbWFwaG9yZS5zaWduYWwo
KTsKKyAgICAgICAgfSk7CisgICAgICAgIHNlbWFwaG9yZS53YWl0KCk7CiAgICAgfQogICAgIC8v
IEZJWE1FOiBTb21lIGNvZGUgcGF0aHMgZG8gbm90IGxpa2UgZW1wdHkgcGl4ZWwgYnVmZmVycy4K
ICAgICBpZiAoIW1fcGl4ZWxCdWZmZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAppbmRleCA1OGVjYzE4MmVhNDlj
YzUyZWE1MmYzNWRiMTdlOTgxYzg5ODlhY2IzLi5jZGVmNDUzYzQyMWYwYjM5MGZiODFiZmFhMzQ4
ZjYzZDA3YmEzZWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKQEAgLTQ0Nyw0NiArNDQ3LDIwIEBAIGludDMy
X3QgTGliV2ViUlRDQ29kZWNzOjppbml0aWFsaXplRW5jb2RlcihFbmNvZGVyJiBlbmNvZGVyLCB1
aW50MTZfdCB3aWR0aCwgdWluCiAgICAgcmV0dXJuIDA7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1l
IEJ1ZmZlcj4KLWJvb2wgY29weVNoYXJlZFZpZGVvRnJhbWUoTGliV2ViUlRDQ29kZWNzOjpFbmNv
ZGVyJiBlbmNvZGVyLCBCdWZmZXImJiBmcmFtZUJ1ZmZlcikKLXsKLSAgICByZXR1cm4gZW5jb2Rl
ci5zaGFyZWRWaWRlb0ZyYW1lV3JpdGVyLndyaXRlKGZyYW1lQnVmZmVyLAotICAgICAgICBbJl0o
YXV0byYgc2VtYXBob3JlKSB7IGVuY29kZXIuY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGli
V2ViUlRDQ29kZWNzUHJveHk6OlNldFNoYXJlZFZpZGVvRnJhbWVTZW1hcGhvcmUgeyBlbmNvZGVy
LmlkZW50aWZpZXIsIHNlbWFwaG9yZSB9LCAwKTsgfSwKLSAgICAgICAgWyZdKGF1dG8mIGhhbmRs
ZSkgeyBlbmNvZGVyLmNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1By
b3h5OjpTZXRTaGFyZWRWaWRlb0ZyYW1lTWVtb3J5IHsgZW5jb2Rlci5pZGVudGlmaWVyLCBoYW5k
bGUgfSwgMCk7IH0KLSAgICApOwotfQotCiBpbnQzMl90IExpYldlYlJUQ0NvZGVjczo6ZW5jb2Rl
RnJhbWUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qgd2VicnRjOjpWaWRlb0ZyYW1lJiBmcmFtZSwg
Ym9vbCBzaG91bGRFbmNvZGVBc0tleUZyYW1lKQogewogICAgIExvY2tlciBsb2NrZXIgeyBtX2Vu
Y29kZXJzTG9jayB9OwogICAgIGlmICghZW5jb2Rlci5jb25uZWN0aW9uKQogICAgICAgICByZXR1
cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOwogCi0gICAgc3RkOjpvcHRpb25hbDxSZW1vdGVW
aWRlb0ZyYW1lUmVhZFJlZmVyZW5jZT4gcmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2U7Ci0g
ICAgaWYgKGF1dG8qIHByb3ZpZGVyID0gd2VicnRjOjp2aWRlb0ZyYW1lQnVmZmVyUHJvdmlkZXIo
ZnJhbWUpKSB7Ci0gICAgICAgIGF1dG8qIHZpZGVvRnJhbWUgPSBzdGF0aWNfY2FzdDxWaWRlb0Zy
YW1lKj4ocHJvdmlkZXIpOwotICAgICAgICBpZiAoaXM8UmVtb3RlVmlkZW9GcmFtZVByb3h5Pih2
aWRlb0ZyYW1lKSkKLSAgICAgICAgICAgIHJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlID0g
ZG93bmNhc3Q8UmVtb3RlVmlkZW9GcmFtZVByb3h5Pih2aWRlb0ZyYW1lKS0+bmV3UmVhZFJlZmVy
ZW5jZSgpOwotICAgIH0KLQotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBidWZmZXI7
Ci0gICAgaWYgKCFyZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSkgewotICAgICAgICBidWZm
ZXIgPSBhZG9wdENGKHdlYnJ0Yzo6cGl4ZWxCdWZmZXJGcm9tRnJhbWUoZnJhbWUpKTsKLSAgICAg
ICAgaWYgKCFidWZmZXIpIHsKLSAgICAgICAgICAgIC8vIGJ1ZmZlciBpcyBub3QgbmF0aXZlLCB3
ZSBuZWVkIHRvIGNvcHkgdG8gc2hhcmVkIHZpZGVvIGZyYW1lLgotICAgICAgICAgICAgaWYgKCFj
b3B5U2hhcmVkVmlkZW9GcmFtZShlbmNvZGVyLCBmcmFtZSkpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGF1
dG8gc2FtcGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShidWZmZXIuZ2V0KCksIE1lZGlh
VGltZShmcmFtZS50aW1lc3RhbXBfdXMoKSAqIDEwMDAsIDEwMDAwMDApLCB0b01lZGlhU2FtcGxl
VmlkZW9Sb3RhdGlvbihmcmFtZS5yb3RhdGlvbigpKSwgUmVtb3RlVmlkZW9TYW1wbGU6OlNob3Vs
ZENoZWNrRm9ySU9TdXJmYWNlOjpObyk7Ci0gICAgaWYgKGJ1ZmZlciAmJiAhc2FtcGxlLT5zdXJm
YWNlKCkpIHsKLSAgICAgICAgLy8gYnVmZmVyIGlzIG5vdCBJT1N1cmZhY2UsIHdlIG5lZWQgdG8g
Y29weSB0byBzaGFyZWQgdmlkZW8gZnJhbWUuCi0gICAgICAgIGlmICghY29weVNoYXJlZFZpZGVv
RnJhbWUoZW5jb2RlciwgYnVmZmVyLmdldCgpKSkKLSAgICAgICAgICAgIHJldHVybiBXRUJSVENf
VklERU9fQ09ERUNfRVJST1I7Ci0gICAgfQorICAgIGF1dG8gYnVmZmVyID0gZW5jb2Rlci5zaGFy
ZWRWaWRlb0ZyYW1lV3JpdGVyLndyaXRlQnVmZmVyKGZyYW1lLAorICAgICAgICBbJl0oYXV0byYg
c2VtYXBob3JlKSB7IGVuY29kZXIuY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRD
Q29kZWNzUHJveHk6OlNldFNoYXJlZFZpZGVvRnJhbWVTZW1hcGhvcmUgeyBlbmNvZGVyLmlkZW50
aWZpZXIsIHNlbWFwaG9yZSB9LCAwKTsgfSwKKyAgICAgICAgWyZdKGF1dG8mIGhhbmRsZSkgeyBl
bmNvZGVyLmNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpT
ZXRTaGFyZWRWaWRlb0ZyYW1lTWVtb3J5IHsgZW5jb2Rlci5pZGVudGlmaWVyLCBoYW5kbGUgfSwg
MCk7IH0pOworICAgIGlmICghYnVmZmVyKQorICAgICAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NP
REVDX0VSUk9SOwogCi0gICAgZW5jb2Rlci5jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJX
ZWJSVENDb2RlY3NQcm94eTo6RW5jb2RlRnJhbWUgeyBlbmNvZGVyLmlkZW50aWZpZXIsICpzYW1w
bGUsIGZyYW1lLnRpbWVzdGFtcCgpLCBzaG91bGRFbmNvZGVBc0tleUZyYW1lLCByZW1vdGVWaWRl
b0ZyYW1lUmVhZFJlZmVyZW5jZSB9LCAwKTsKKyAgICBTaGFyZWRWaWRlb0ZyYW1lIHNoYXJlZFZp
ZGVvRnJhbWUgeyBNZWRpYVRpbWUoZnJhbWUudGltZXN0YW1wX3VzKCkgKiAxMDAwLCAxMDAwMDAw
KSwgZmFsc2UsIHRvTWVkaWFTYW1wbGVWaWRlb1JvdGF0aW9uKGZyYW1lLnJvdGF0aW9uKCkpLCBX
VEZNb3ZlKCpidWZmZXIpIH07CisgICAgZW5jb2Rlci5jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2Vz
OjpMaWJXZWJSVENDb2RlY3NQcm94eTo6RW5jb2RlRnJhbWUgeyBlbmNvZGVyLmlkZW50aWZpZXIs
IHNoYXJlZFZpZGVvRnJhbWUsIGZyYW1lLnRpbWVzdGFtcCgpLCBzaG91bGRFbmNvZGVBc0tleUZy
YW1lIH0sIDApOwogICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfT0s7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkuaAppbmRleCBkNWU1ZWQzMTBhMjQzMDk0
NjgxZjNkNzc3OWJjNDhlMjViZTdjMWUyLi5lNzk0OGM1MjgxYWRkYzA1NWVjNzlmYTAzMmE0NDcy
NDYzNjM1ODEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS5oCkBA
IC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICB+UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQ
cm94eSgpID0gZGVmYXVsdDsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHZvaWQgZ2V0Vmlk
ZW9GcmFtZUJ1ZmZlcihjb25zdCBSZW1vdGVWaWRlb0ZyYW1lUHJveHkmIHByb3h5LCBSZW1vdGVW
aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yOjpDYWxsYmFjayYmIGNhbGxiYWNrKSB7
IG1fcHJvY2Vzc29yLT5nZXRWaWRlb0ZyYW1lQnVmZmVyKHByb3h5LCBXVEZNb3ZlKGNhbGxiYWNr
KSk7IH0KKyAgICB2b2lkIGdldFZpZGVvRnJhbWVCdWZmZXIoY29uc3QgUmVtb3RlVmlkZW9GcmFt
ZVByb3h5JiBwcm94eSwgYm9vbCBjYW5Vc2VJT1N1cmZhY2UsIFJlbW90ZVZpZGVvRnJhbWVPYmpl
Y3RIZWFwUHJveHlQcm9jZXNzb3I6OkNhbGxiYWNrJiYgY2FsbGJhY2spIHsgbV9wcm9jZXNzb3It
PmdldFZpZGVvRnJhbWVCdWZmZXIocHJveHksIGNhblVzZUlPU3VyZmFjZSwgV1RGTW92ZShjYWxs
YmFjaykpOyB9CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9j
ZXNzb3IuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlk
ZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvci5jcHAKaW5kZXggNmQ2YzdhODJhZjE2ODJk
MDk1NDlkMmUyY2U5ZGRjM2RmMWM0MzUwZC4uYzg3MjQ2YWM3MGZlZmFiYzFkYjkzNGQ2ZTAyMmNh
ODkzNWZlZTgyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXBQcm94eVByb2Nlc3Nvci5jcHAKQEAgLTk0LDIwICs5NCwxNyBAQCBSZW1vdGVWaWRlb0ZyYW1l
T2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yOjpDYWxsYmFjayBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0
SGVhcFBybwogICAgIHJldHVybiBtX2NhbGxiYWNrcy50YWtlKGlkZW50aWZpZXIpOwogfQogCi12
b2lkIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3I6OnZpZGVvRnJhbWVC
dWZmZXJOb3RGb3VuZChSZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllciBpZGVudGlmaWVyKQordm9p
ZCBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yOjpuZXdWaWRlb0ZyYW1l
QnVmZmVyKFJlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVyIGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9u
YWw8U2hhcmVkVmlkZW9GcmFtZTo6QnVmZmVyPiYmIHNoYXJlZFZpZGVvRnJhbWVCdWZmZXIpCiB7
CisgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVyOworICAgIGlmIChz
aGFyZWRWaWRlb0ZyYW1lQnVmZmVyKQorICAgICAgICBwaXhlbEJ1ZmZlciA9IG1fc2hhcmVkVmlk
ZW9GcmFtZVJlYWRlci5yZWFkQnVmZmVyKFdURk1vdmUoKnNoYXJlZFZpZGVvRnJhbWVCdWZmZXIp
KTsKICAgICBpZiAoYXV0byBjYWxsYmFjayA9IHRha2VDYWxsYmFjayhpZGVudGlmaWVyKSkKLSAg
ICAgICAgY2FsbGJhY2sobnVsbHB0cik7Ci19CisgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocGl4
ZWxCdWZmZXIpKTsKIAotdm9pZCBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vz
c29yOjpuZXdWaWRlb0ZyYW1lQnVmZmVyKFJlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVyIGlkZW50
aWZpZXIpCi17Ci0gICAgYXV0byByZXN1bHQgPSBtX3NoYXJlZFZpZGVvRnJhbWVSZWFkZXIucmVh
ZCgpOwotICAgIGlmIChhdXRvIGNhbGxiYWNrID0gdGFrZUNhbGxiYWNrKGlkZW50aWZpZXIpKQot
ICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwogfQogCi12b2lkIFJlbW90ZVZpZGVv
RnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3I6OmdldFZpZGVvRnJhbWVCdWZmZXIoY29uc3Qg
UmVtb3RlVmlkZW9GcmFtZVByb3h5JiBmcmFtZSwgQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQg
UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvcjo6Z2V0VmlkZW9GcmFtZUJ1
ZmZlcihjb25zdCBSZW1vdGVWaWRlb0ZyYW1lUHJveHkmIGZyYW1lLCBib29sIGNhblVzZUlPU3Vy
ZmFjZSwgQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKICAgICB7CiAgICAgICAgIExvY2tlciBsb2Nr
KG1fY2FsbGJhY2tzTG9jayk7CkBAIC0xMTYsMTAgKzExMywxMCBAQCB2b2lkIFJlbW90ZVZpZGVv
RnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3I6OmdldFZpZGVvRnJhbWVCdWZmZXIoY29uc3Qg
UmVtb3RlVgogICAgIH0KICAgICBMb2NrZXIgbG9jayhtX2Nvbm5lY3Rpb25Mb2NrKTsKICAgICBp
ZiAoIW1fY29ubmVjdGlvbklEKSB7Ci0gICAgICAgIHZpZGVvRnJhbWVCdWZmZXJOb3RGb3VuZChm
cmFtZS5pZGVudGlmaWVyKCkpOworICAgICAgICB0YWtlQ2FsbGJhY2soZnJhbWUuaWRlbnRpZmll
cigpKShudWxscHRyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBJUEM6OkNvbm5lY3Rp
b246OnNlbmQobV9jb25uZWN0aW9uSUQsIE1lc3NhZ2VzOjpSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0
SGVhcDo6R2V0VmlkZW9GcmFtZUJ1ZmZlcihmcmFtZS5uZXdSZWFkUmVmZXJlbmNlKCkpLCAwLCBJ
UEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBs
eSk7CisgICAgSVBDOjpDb25uZWN0aW9uOjpzZW5kKG1fY29ubmVjdGlvbklELCBNZXNzYWdlczo6
UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXA6OkdldFZpZGVvRnJhbWVCdWZmZXIoZnJhbWUubmV3
UmVhZFJlZmVyZW5jZSgpLCBjYW5Vc2VJT1N1cmZhY2UpLCAwLCBJUEM6OlNlbmRPcHRpb246OkRp
c3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IuaAppbmRl
eCBmMGU3NmYzYmE0YTQ1MTVmMmNhMGEzYzVlNjRjNjVjODkyNjZmZjJhLi42YmYzNGI2NWZjNjFm
Yzg2MjU4ZGZjNWY4NWM4ZThjMmQ1MjhjMGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vz
c29yLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlk
ZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvci5oCkBAIC01NSw3ICs1NSw3IEBAIHB1Ymxp
YzoKICAgICB+UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3NvcigpOwogCiAg
ICAgdXNpbmcgQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKFJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPiYmKT47Ci0gICAgdm9pZCBnZXRWaWRlb0ZyYW1lQnVmZmVyKGNvbnN0IFJlbW90ZVZpZGVv
RnJhbWVQcm94eSYsIENhbGxiYWNrJiYpOworICAgIHZvaWQgZ2V0VmlkZW9GcmFtZUJ1ZmZlcihj
b25zdCBSZW1vdGVWaWRlb0ZyYW1lUHJveHkmLCBib29sIGNhblVzZUlPU3VyZmNlLCBDYWxsYmFj
ayYmKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVh
cFByb3h5UHJvY2Vzc29yKEdQVVByb2Nlc3NDb25uZWN0aW9uJik7CkBAIC02NSw4ICs2NSw3IEBA
IHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZXMKICAgICB2b2lkIHNldFNoYXJlZFZpZGVvRnJhbWVT
ZW1hcGhvcmUoSVBDOjpTZW1hcGhvcmUmJik7CiAgICAgdm9pZCBzZXRTaGFyZWRWaWRlb0ZyYW1l
TWVtb3J5KGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJik7Ci0gICAgdm9pZCB2aWRlb0Zy
YW1lQnVmZmVyTm90Rm91bmQoUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIpOwotICAgIHZvaWQg
bmV3VmlkZW9GcmFtZUJ1ZmZlcihSZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllcik7CisgICAgdm9p
ZCBuZXdWaWRlb0ZyYW1lQnVmZmVyKFJlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVyLCBzdGQ6Om9w
dGlvbmFsPFNoYXJlZFZpZGVvRnJhbWU6OkJ1ZmZlcj4mJik7CiAKICAgICAvLyBHUFVQcm9jZXNz
Q29ubmVjdGlvbjo6Q2xpZW50CiAgICAgdm9pZCBncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3Nl
KEdQVVByb2Nlc3NDb25uZWN0aW9uJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29y
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvci5tZXNzYWdlcy5pbgppbmRleCAxZDU1
NTM2ZGQ4YTQ1OGNiZDRiMTU4M2UyYWUxMDE0MTE0Njk3YTEyLi45M2M1ODVmYzRhMTlmOTU5MjMy
NGUyZTc1Y2ExY2I4NGFjZTMxYTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90
ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IubWVzc2FnZXMuaW4KQEAgLTI1LDgg
KzI1LDcgQEAKIG1lc3NhZ2VzIC0+IFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9j
ZXNzb3IgewogICAgIFNldFNoYXJlZFZpZGVvRnJhbWVTZW1hcGhvcmUoSVBDOjpTZW1hcGhvcmUg
c2VtYXBob3JlKQogICAgIFNldFNoYXJlZFZpZGVvRnJhbWVNZW1vcnkoV2ViS2l0OjpTaGFyZWRN
ZW1vcnk6OklQQ0hhbmRsZSBzdG9yYWdlSGFuZGxlKQotICAgIFZpZGVvRnJhbWVCdWZmZXJOb3RG
b3VuZChXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVyIGlkZW50aWZpZXIpCi0gICAg
TmV3VmlkZW9GcmFtZUJ1ZmZlcihXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCisgICAgTmV3VmlkZW9GcmFtZUJ1ZmZlcihXZWJLaXQ6OlJlbW90ZVZpZGVvRnJh
bWVJZGVudGlmaWVyIGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpTaGFyZWRWaWRl
b0ZyYW1lOjpCdWZmZXI+IGZyYW1lKQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9GcmFtZS5jcHAKaW5kZXgg
NDM1YWMzN2I4NGZlZTZhMzc4YWNjYzc2YTcyMmI1MjU3MzY0Zjg2Ny4uY2QyOWZhZTdiNWFmMGQ3
ZDNjYjQ0MWU0ZTM4MjBmYzMwYWU2NzY5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9GcmFtZS5jcHAKQEAgLTM1LDYgKzM1
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0lPU3VyZmFjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
TWVkaWFTYW1wbGVBVkZPYmpDLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRWaWRlb0ZyYW1l
SW5mby5oPgorI2luY2x1ZGUgPHdlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oPgog
I2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogCiAjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRM
aW5rLmg+CkBAIC05MCw0MSArOTEsNTUgQEAgYm9vbCBTaGFyZWRWaWRlb0ZyYW1lV3JpdGVyOjpw
cmVwYXJlV3JpdGluZyhjb25zdCBTaGFyZWRWaWRlb0ZyYW1lSW5mbyYgaW5mbywgY28KIAogc3Rk
OjpvcHRpb25hbDxTaGFyZWRWaWRlb0ZyYW1lPiBTaGFyZWRWaWRlb0ZyYW1lV3JpdGVyOjp3cml0
ZShNZWRpYVNhbXBsZSYgZnJhbWUsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoSVBDOjpTZW1hcGhvcmUm
KT4mIG5ld1NlbWFwaG9yZUNhbGxiYWNrLCBjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0IFNoYXJl
ZE1lbW9yeTo6SVBDSGFuZGxlJik+JiBuZXdNZW1vcnlDYWxsYmFjaykKIHsKLSAgICBTaGFyZWRW
aWRlb0ZyYW1lIHNoYXJlZFZpZGVvRnJhbWUgeyBmcmFtZS5wcmVzZW50YXRpb25UaW1lKCksIGZy
YW1lLnZpZGVvTWlycm9yZWQoKSwgZnJhbWUudmlkZW9Sb3RhdGlvbigpLCBudWxscHRyIH07Ci0g
ICAgaWYgKGlzPFJlbW90ZVZpZGVvRnJhbWVQcm94eT4oZnJhbWUpKSB7Ci0gICAgICAgIHNoYXJl
ZFZpZGVvRnJhbWUuYnVmZmVyID0gZG93bmNhc3Q8UmVtb3RlVmlkZW9GcmFtZVByb3h5PihmcmFt
ZSkubmV3UmVhZFJlZmVyZW5jZSgpOwotICAgICAgICByZXR1cm4gc2hhcmVkVmlkZW9GcmFtZTsK
LSAgICB9Ci0gICAgaWYgKGlzPE1lZGlhU2FtcGxlQVZGT2JqQz4oZnJhbWUpKSB7Ci0gICAgICAg
IGlmIChhdXRvIHBpeGVsQnVmZmVyID0gZG93bmNhc3Q8TWVkaWFTYW1wbGVBVkZPYmpDPihmcmFt
ZSkucGl4ZWxCdWZmZXIoKSkgewotICAgICAgICAgICAgaWYgKGF1dG8gc3VyZmFjZSA9IENWUGl4
ZWxCdWZmZXJHZXRJT1N1cmZhY2UocGl4ZWxCdWZmZXIpKSB7Ci0gICAgICAgICAgICAgICAgc2hh
cmVkVmlkZW9GcmFtZS5idWZmZXIgPSBNYWNoU2VuZFJpZ2h0OjphZG9wdChJT1N1cmZhY2VDcmVh
dGVNYWNoUG9ydChzdXJmYWNlKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHNoYXJlZFZpZGVv
RnJhbWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKCF3cml0ZShm
cmFtZS5waXhlbEJ1ZmZlcigpLCBuZXdTZW1hcGhvcmVDYWxsYmFjaywgbmV3TWVtb3J5Q2FsbGJh
Y2spKQorICAgIGF1dG8gYnVmZmVyID0gd3JpdGVCdWZmZXIoZnJhbWUsIG5ld1NlbWFwaG9yZUNh
bGxiYWNrLCBuZXdNZW1vcnlDYWxsYmFjayk7CisgICAgaWYgKCFidWZmZXIpCiAgICAgICAgIHJl
dHVybiB7IH07Ci0gICAgcmV0dXJuIHNoYXJlZFZpZGVvRnJhbWU7CisgICAgcmV0dXJuIFNoYXJl
ZFZpZGVvRnJhbWUgeyBmcmFtZS5wcmVzZW50YXRpb25UaW1lKCksIGZyYW1lLnZpZGVvTWlycm9y
ZWQoKSwgZnJhbWUudmlkZW9Sb3RhdGlvbigpLCBXVEZNb3ZlKCpidWZmZXIpIH07CiB9CiAKLWJv
b2wgU2hhcmVkVmlkZW9GcmFtZVdyaXRlcjo6d3JpdGUoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1
ZmZlciwgY29uc3QgRnVuY3Rpb248dm9pZChJUEM6OlNlbWFwaG9yZSYpPiYgbmV3U2VtYXBob3Jl
Q2FsbGJhY2ssIGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5k
bGUmKT4mIG5ld01lbW9yeUNhbGxiYWNrKQorc3RkOjpvcHRpb25hbDxTaGFyZWRWaWRlb0ZyYW1l
OjpCdWZmZXI+IFNoYXJlZFZpZGVvRnJhbWVXcml0ZXI6OndyaXRlQnVmZmVyKE1lZGlhU2FtcGxl
JiBmcmFtZSwgY29uc3QgRnVuY3Rpb248dm9pZChJUEM6OlNlbWFwaG9yZSYpPiYgbmV3U2VtYXBo
b3JlQ2FsbGJhY2ssIGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENI
YW5kbGUmKT4mIG5ld01lbW9yeUNhbGxiYWNrKQogeworICAgIGlmIChpczxSZW1vdGVWaWRlb0Zy
YW1lUHJveHk+KGZyYW1lKSkKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PFJlbW90ZVZpZGVvRnJh
bWVQcm94eT4oZnJhbWUpLm5ld1JlYWRSZWZlcmVuY2UoKTsKKworICAgIHJldHVybiB3cml0ZUJ1
ZmZlcihmcmFtZS5waXhlbEJ1ZmZlcigpLCBuZXdTZW1hcGhvcmVDYWxsYmFjaywgbmV3TWVtb3J5
Q2FsbGJhY2spOworfQorCitzdGQ6Om9wdGlvbmFsPFNoYXJlZFZpZGVvRnJhbWU6OkJ1ZmZlcj4g
U2hhcmVkVmlkZW9GcmFtZVdyaXRlcjo6d3JpdGVCdWZmZXIoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhl
bEJ1ZmZlciwgY29uc3QgRnVuY3Rpb248dm9pZChJUEM6OlNlbWFwaG9yZSYpPiYgbmV3U2VtYXBo
b3JlQ2FsbGJhY2ssIGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENI
YW5kbGUmKT4mIG5ld01lbW9yeUNhbGxiYWNrLCBib29sIGNhblVzZUlPU3VyZmFjZSkKK3sKKyAg
ICBpZiAoIXBpeGVsQnVmZmVyKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKGNhblVz
ZUlPU3VyZmFjZSkgeworICAgICAgICBpZiAoYXV0byBzdXJmYWNlID0gQ1ZQaXhlbEJ1ZmZlckdl
dElPU3VyZmFjZShwaXhlbEJ1ZmZlcikpCisgICAgICAgICAgICByZXR1cm4gTWFjaFNlbmRSaWdo
dDo6YWRvcHQoSU9TdXJmYWNlQ3JlYXRlTWFjaFBvcnQoc3VyZmFjZSkpOworICAgIH0KKwogICAg
IGF1dG8gaW5mbyA9IFNoYXJlZFZpZGVvRnJhbWVJbmZvOjpmcm9tQ1ZQaXhlbEJ1ZmZlcihwaXhl
bEJ1ZmZlcik7CiAgICAgaWYgKCFwcmVwYXJlV3JpdGluZyhpbmZvLCBuZXdTZW1hcGhvcmVDYWxs
YmFjaywgbmV3TWVtb3J5Q2FsbGJhY2spKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IHJldHVybiB7IH07CiAKLSAgICByZXR1cm4gaW5mby53cml0ZVBpeGVsQnVmZmVyKHBpeGVsQnVm
ZmVyLCBzdGF0aWNfY2FzdDx1aW50OF90Kj4obV9zdG9yYWdlLT5kYXRhKCkpKTsKKyAgICBpZiAo
IWluZm8ud3JpdGVQaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlciwgc3RhdGljX2Nhc3Q8dWludDhfdCo+
KG1fc3RvcmFnZS0+ZGF0YSgpKSkpCisgICAgICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIG51
bGxwdHI7CiB9CiAKICNpZiBVU0UoTElCV0VCUlRDKQotYm9vbCBTaGFyZWRWaWRlb0ZyYW1lV3Jp
dGVyOjp3cml0ZShjb25zdCB3ZWJydGM6OlZpZGVvRnJhbWUmIGZyYW1lLCBjb25zdCBGdW5jdGlv
bjx2b2lkKElQQzo6U2VtYXBob3JlJik+JiBuZXdTZW1hcGhvcmVDYWxsYmFjaywgY29uc3QgRnVu
Y3Rpb248dm9pZChjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYpPiYgbmV3TWVtb3J5Q2Fs
bGJhY2spCitzdGQ6Om9wdGlvbmFsPFNoYXJlZFZpZGVvRnJhbWU6OkJ1ZmZlcj4gU2hhcmVkVmlk
ZW9GcmFtZVdyaXRlcjo6d3JpdGVCdWZmZXIoY29uc3Qgd2VicnRjOjpWaWRlb0ZyYW1lJiBmcmFt
ZSwgY29uc3QgRnVuY3Rpb248dm9pZChJUEM6OlNlbWFwaG9yZSYpPiYgbmV3U2VtYXBob3JlQ2Fs
bGJhY2ssIGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUm
KT4mIG5ld01lbW9yeUNhbGxiYWNrKQogeworICAgIGlmIChhdXRvKiBwcm92aWRlciA9IHdlYnJ0
Yzo6dmlkZW9GcmFtZUJ1ZmZlclByb3ZpZGVyKGZyYW1lKSkKKyAgICAgICAgcmV0dXJuIHdyaXRl
QnVmZmVyKCpzdGF0aWNfY2FzdDxWaWRlb0ZyYW1lKj4ocHJvdmlkZXIpLCBuZXdTZW1hcGhvcmVD
YWxsYmFjaywgbmV3TWVtb3J5Q2FsbGJhY2spOworCisgICAgaWYgKGF1dG8gcGl4ZWxCdWZmZXIg
PSBhZG9wdENGKHdlYnJ0Yzo6cGl4ZWxCdWZmZXJGcm9tRnJhbWUoZnJhbWUpKSkKKyAgICAgICAg
cmV0dXJuIHdyaXRlQnVmZmVyKHBpeGVsQnVmZmVyLmdldCgpLCBuZXdTZW1hcGhvcmVDYWxsYmFj
aywgbmV3TWVtb3J5Q2FsbGJhY2spOworCiAgICAgYXV0byBpbmZvID0gU2hhcmVkVmlkZW9GcmFt
ZUluZm86OmZyb21WaWRlb0ZyYW1lKGZyYW1lKTsKICAgICBpZiAoIXByZXBhcmVXcml0aW5nKGlu
Zm8sIG5ld1NlbWFwaG9yZUNhbGxiYWNrLCBuZXdNZW1vcnlDYWxsYmFjaykpCiAgICAgICAgIHJl
dHVybiB7IH07CiAKLSAgICByZXR1cm4gaW5mby53cml0ZVZpZGVvRnJhbWUoZnJhbWUsIHN0YXRp
Y19jYXN0PHVpbnQ4X3QqPihtX3N0b3JhZ2UtPmRhdGEoKSkpOworICAgIGlmICghaW5mby53cml0
ZVZpZGVvRnJhbWUoZnJhbWUsIHN0YXRpY19jYXN0PHVpbnQ4X3QqPihtX3N0b3JhZ2UtPmRhdGEo
KSkpKQorICAgICAgICByZXR1cm4geyB9OworICAgIHJldHVybiBudWxscHRyOwogfQogI2VuZGlm
CiAKQEAgLTE0Myw3ICsxNTgsNyBAQCBTaGFyZWRWaWRlb0ZyYW1lUmVhZGVyOjpTaGFyZWRWaWRl
b0ZyYW1lUmVhZGVyKFJlZlB0cjxSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcAogCiBTaGFyZWRW
aWRlb0ZyYW1lUmVhZGVyOjpTaGFyZWRWaWRlb0ZyYW1lUmVhZGVyKCkgPSBkZWZhdWx0OwogCi1S
ZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gU2hhcmVkVmlkZW9GcmFtZVJlYWRlcjo6cmVhZCgp
CitSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gU2hhcmVkVmlkZW9GcmFtZVJlYWRlcjo6cmVh
ZEJ1ZmZlckZyb21TaGFyZWRNZW1vcnkoKQogewogICAgIGlmICghbV9zdG9yYWdlKQogICAgICAg
ICByZXR1cm4geyB9OwpAQCAtMTY5LDkgKzE4NCw5IEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPiBTaGFyZWRWaWRlb0ZyYW1lUmVhZGVyOjpyZWFkKCkKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCi1SZWZQdHI8TWVkaWFTYW1wbGU+IFNoYXJlZFZpZGVvRnJhbWVSZWFkZXI6OnJlYWQoU2hh
cmVkVmlkZW9GcmFtZSYmIHNoYXJlZFZpZGVvRnJhbWUpCitSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZl
clJlZj4gU2hhcmVkVmlkZW9GcmFtZVJlYWRlcjo6cmVhZEJ1ZmZlcihTaGFyZWRWaWRlb0ZyYW1l
OjpCdWZmZXImJiBidWZmZXIpCiB7Ci0gICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN3aXRjaE9uKFdU
Rk1vdmUoc2hhcmVkVmlkZW9GcmFtZS5idWZmZXIpLAorICAgIHJldHVybiBzd2l0Y2hPbihXVEZN
b3ZlKGJ1ZmZlciksCiAgICAgW3RoaXNdKFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlJiYg
cmVmZXJlbmNlKSAtPiBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gewogICAgICAgICBBU1NF
UlQobV9vYmplY3RIZWFwKTsKICAgICAgICAgaWYgKCFtX29iamVjdEhlYXApCkBAIC0xODgsNyAr
MjAzLDcgQEAgUmVmUHRyPE1lZGlhU2FtcGxlPiBTaGFyZWRWaWRlb0ZyYW1lUmVhZGVyOjpyZWFk
KFNoYXJlZFZpZGVvRnJhbWUmJiBzaGFyZWRWaWRlb0YKICAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgICAgICByZXR1cm4gV2ViQ29yZTo6Y3JlYXRlQ1ZQaXhlbEJ1ZmZlcihzdXJmYWNl
LT5zdXJmYWNlKCkpLnZhbHVlX29yKG51bGxwdHIpOwogICAgIH0sIFt0aGlzXShzdGQ6Om51bGxw
dHJfdCByZXByZXNlbnRhdGlvbikgLT4gUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHsKLSAg
ICAgICAgcmV0dXJuIHJlYWQoKTsKKyAgICAgICAgcmV0dXJuIHJlYWRCdWZmZXJGcm9tU2hhcmVk
TWVtb3J5KCk7CiAgICAgfSwgW3RoaXNdKEludFNpemUgc2l6ZSkgLT4gUmV0YWluUHRyPENWUGl4
ZWxCdWZmZXJSZWY+IHsKICAgICAgICAgaWYgKG1fYmxhY2tGcmFtZVNpemUgIT0gc2l6ZSkgewog
ICAgICAgICAgICAgbV9ibGFja0ZyYW1lU2l6ZSA9IHNpemU7CkBAIC0xOTgsNyArMjEzLDExIEBA
IFJlZlB0cjxNZWRpYVNhbXBsZT4gU2hhcmVkVmlkZW9GcmFtZVJlYWRlcjo6cmVhZChTaGFyZWRW
aWRlb0ZyYW1lJiYgc2hhcmVkVmlkZW9GCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fYmxh
Y2tGcmFtZS5nZXQoKTsKICAgICB9KTsKK30KIAorUmVmUHRyPE1lZGlhU2FtcGxlPiBTaGFyZWRW
aWRlb0ZyYW1lUmVhZGVyOjpyZWFkKFNoYXJlZFZpZGVvRnJhbWUmJiBzaGFyZWRWaWRlb0ZyYW1l
KQoreworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSByZWFkQnVmZmVyKFdURk1vdmUoc2hhcmVkVmlk
ZW9GcmFtZS5idWZmZXIpKTsKICAgICBpZiAoIXBpeGVsQnVmZmVyKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvU2hhcmVkVmlkZW9GcmFtZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvU2hhcmVkVmlkZW9GcmFtZS5oCmluZGV4IDU5MDQ3ZmNmYmMwYjY1MTI5ZjYzNjg4OGIzMTVi
MmNlOGZkZjIzY2MuLjVhYjQ2ZTgwNjYzNTQxNmU2ZmQ0YTBlY2MxOWQ0NWYxMjMwMWQ3NzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVv
RnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRW
aWRlb0ZyYW1lLmgKQEAgLTU1LDcgKzU1LDggQEAgc3RydWN0IFNoYXJlZFZpZGVvRnJhbWUgewog
ICAgIE1lZGlhVGltZSB0aW1lOwogICAgIGJvb2wgbWlycm9yZWQgeyBmYWxzZSB9OwogICAgIFdl
YkNvcmU6Ok1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uIHJvdGF0aW9uIHsgV2ViQ29yZTo6TWVk
aWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUgfTsKLSAgICBzdGQ6OnZhcmlhbnQ8c3RkOjpu
dWxscHRyX3QsIFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlLCBNYWNoU2VuZFJpZ2h0LCBX
ZWJDb3JlOjpJbnRTaXplPiBidWZmZXI7CisgICAgdXNpbmcgQnVmZmVyID0gc3RkOjp2YXJpYW50
PHN0ZDo6bnVsbHB0cl90LCBSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSwgTWFjaFNlbmRS
aWdodCwgV2ViQ29yZTo6SW50U2l6ZT47CisgICAgQnVmZmVyIGJ1ZmZlcjsKIAogICAgIHRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxTaGFyZWRWaWRlb0ZyYW1l
PiBkZWNvZGUoRGVjb2RlciYpOwpAQCAtNjcsOSArNjgsOSBAQCBwdWJsaWM6CiAgICAgU2hhcmVk
VmlkZW9GcmFtZVdyaXRlcigpOwogCiAgICAgc3RkOjpvcHRpb25hbDxTaGFyZWRWaWRlb0ZyYW1l
PiB3cml0ZShXZWJDb3JlOjpNZWRpYVNhbXBsZSYsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoSVBDOjpT
ZW1hcGhvcmUmKT4mLCBjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBD
SGFuZGxlJik+Jik7Ci0gICAgYm9vbCB3cml0ZShDVlBpeGVsQnVmZmVyUmVmLCBjb25zdCBGdW5j
dGlvbjx2b2lkKElQQzo6U2VtYXBob3JlJik+JiwgY29uc3QgRnVuY3Rpb248dm9pZChjb25zdCBT
aGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYpPiYpOworICAgIHN0ZDo6b3B0aW9uYWw8U2hhcmVkVmlk
ZW9GcmFtZTo6QnVmZmVyPiB3cml0ZUJ1ZmZlcihDVlBpeGVsQnVmZmVyUmVmLCBjb25zdCBGdW5j
dGlvbjx2b2lkKElQQzo6U2VtYXBob3JlJik+JiwgY29uc3QgRnVuY3Rpb248dm9pZChjb25zdCBT
aGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYpPiYsIGJvb2wgY2FuU2VuZElPU3VyZmFjZSA9IHRydWUp
OwogI2lmIFVTRShMSUJXRUJSVEMpCi0gICAgYm9vbCB3cml0ZShjb25zdCB3ZWJydGM6OlZpZGVv
RnJhbWUmLCBjb25zdCBGdW5jdGlvbjx2b2lkKElQQzo6U2VtYXBob3JlJik+JiwgY29uc3QgRnVu
Y3Rpb248dm9pZChjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYpPiYpOworICAgIHN0ZDo6
b3B0aW9uYWw8U2hhcmVkVmlkZW9GcmFtZTo6QnVmZmVyPiB3cml0ZUJ1ZmZlcihjb25zdCB3ZWJy
dGM6OlZpZGVvRnJhbWUmLCBjb25zdCBGdW5jdGlvbjx2b2lkKElQQzo6U2VtYXBob3JlJik+Jiwg
Y29uc3QgRnVuY3Rpb248dm9pZChjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYpPiYpOwog
I2VuZGlmCiAgICAgdm9pZCBkaXNhYmxlKCk7CiAKQEAgLTc3LDYgKzc4LDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIHdhaXQoY29uc3QgRnVuY3Rpb248dm9pZChJUEM6OlNlbWFwaG9yZSYpPiYpOwog
ICAgIGJvb2wgYWxsb2NhdGVTdG9yYWdlKHNpemVfdCwgY29uc3QgRnVuY3Rpb248dm9pZChjb25z
dCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYpPiYpOwogICAgIGJvb2wgcHJlcGFyZVdyaXRpbmco
Y29uc3QgV2ViQ29yZTo6U2hhcmVkVmlkZW9GcmFtZUluZm8mLCBjb25zdCBGdW5jdGlvbjx2b2lk
KElQQzo6U2VtYXBob3JlJik+JiwgY29uc3QgRnVuY3Rpb248dm9pZChjb25zdCBTaGFyZWRNZW1v
cnk6OklQQ0hhbmRsZSYpPiYpOworICAgIHN0ZDo6b3B0aW9uYWw8U2hhcmVkVmlkZW9GcmFtZTo6
QnVmZmVyPiB3cml0ZUJ1ZmZlcihXZWJDb3JlOjpNZWRpYVNhbXBsZSYsIGNvbnN0IEZ1bmN0aW9u
PHZvaWQoSVBDOjpTZW1hcGhvcmUmKT4mLCBjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0IFNoYXJl
ZE1lbW9yeTo6SVBDSGFuZGxlJik+Jik7CiAKICAgICBVbmlxdWVSZWY8SVBDOjpTZW1hcGhvcmU+
IG1fc2VtYXBob3JlOwogICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1fc3RvcmFnZTsKQEAgLTk0
LDExICs5NiwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTZW1hcGhvcmUoSVBDOjpTZW1hcGhv
cmUmJiBzZW1hcGhvcmUpIHsgbV9zZW1hcGhvcmUgPSBXVEZNb3ZlKHNlbWFwaG9yZSk7IH0KICAg
ICBib29sIHNldFNoYXJlZE1lbW9yeShjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYpOwog
Ci0gICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHJlYWQoKTsKICAgICBSZWZQdHI8V2Vi
Q29yZTo6TWVkaWFTYW1wbGU+IHJlYWQoU2hhcmVkVmlkZW9GcmFtZSYmKTsKKyAgICBSZXRhaW5Q
dHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcmVhZEJ1ZmZlcihTaGFyZWRWaWRlb0ZyYW1lOjpCdWZmZXIm
Jik7CiAKIHByaXZhdGU6CiAgICAgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcGl4ZWxCdWZmZXJQb29s
KGNvbnN0IFdlYkNvcmU6OlNoYXJlZFZpZGVvRnJhbWVJbmZvJik7CisgICAgUmV0YWluUHRyPENW
UGl4ZWxCdWZmZXJSZWY+IHJlYWRCdWZmZXJGcm9tU2hhcmVkTWVtb3J5KCk7CiAKICAgICBSZWZQ
dHI8UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXA+IG1fb2JqZWN0SGVhcDsKICAgICBXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpdHkgbV9yZXNvdXJjZU93bmVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453375</attachid>
            <date>2022-02-28 01:37:11 -0800</date>
            <delta_ts>2022-03-01 04:01:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237267-20220228103710.patch</filename>
            <type>text/plain</type>
            <size>36676</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQyNjlkNmM1MjQ0ZGQyMTJm
NTI3YjQ2ZmY3MjdjYTg2Yjg2MjNhNzYuLmM3Yzg2ZGQ4NGRhYzM5NGQwY2UwZWI1NmI4ZmI5NTgw
NjNhNjJmZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDItMjcgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSByb3V0aW5lcyB0
byBleGNoYW5nZSBTaGFyZWRWaWRlb0ZyYW1lOjpCdWZmZXIgZGlyZWN0bHkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzI2NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERlZmluZSBleHBsaWN0bHkgU2hh
cmVkVmlkZW9GcmFtZTo6QnVmZmVyIGFzIFZhcmlhbnQgb2YgdGhlIHZhcmlvdXMgYnVmZmVyIHJl
cHJlc2VudGF0aW9ucy4KKyAgICAgICAgVGhpcyBhbGxvd3MgdG8gbW92ZSBtb3JlIGNvZGUgaW4g
U2hhcmVkVmlkZW9GcmFtZSBmb3IgaW5zdGFuY2UgYnkgYWRkaW5nIGRpcmVjdCBzdXBwb3J0IG9m
IHNlbmRpbmcgd2VicnRjOjpWaWRlb0ZyYW1lIGJ1ZmZlcnMgaW4gU2hhcmVkVmlkZW9GcmFtZS4K
KyAgICAgICAgUmV1c2UgdGhhdCBjb2RlIGluIExpYldlYlJUQ0NvZGVjcyBhcyBhIHJlZmFjdG9y
aW5nL3NpbXBsaWZpY2F0aW9uLgorICAgICAgICBSZXVzZSB0aGF0IGNvZGUgaW4gUmVtb3RlVmlk
ZW9GcmFtZU9iamVjdEhlYXAgd2hpY2ggYWxsb3dzIHRvIGV4Y2hhbmdlIElPU3VyZmFjZXMgaW4g
Y2FzZSBXZWJQcm9jZXNzIGNhbiB1c2UgdGhlbS4KKyAgICAgICAgVGhpcyBpcyB1c2VkIHdoZW4g
ZW5jb2Rpbmcgc3VjaCBmcmFtZXMgdXNpbmcgc29mdHdhcmUgZW5jb2RlcnMuCisKKyAgICAgICAg
Q292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuY3BwOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQ
VVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lmg6CisgICAgICAgICogR1BVUHJv
Y2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
R1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW06CisgICAgICAgICogV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93
ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29y
LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9i
amVjdEhlYXBQcm94eVByb2Nlc3Nvci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmNwcDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9GcmFtZS5oOgorCiAyMDIy
LTAyLTI3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBFbnN1
cmUgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBzZXRzIGl0cyByZXNvdXJjZSBvd25lciB0byBwaXhl
bCBidWZmZXJzIGNyZWF0ZWQgYnkgaXRzIHBsYXllcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5jcHAK
aW5kZXggZjhlN2NmMWE1ODI3ZjI5ZDhiZjhiM2YxOGNjMDM5YTQ5OWFlNTk4Ny4uMmNmNjdhNzEy
MjMwMmMxNmZmNWVkZmFhYmY1NTNhNjZhYmNhMTQwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAu
Y3BwCkBAIC0xMDEsNDIgKzEwMSwyOSBAQCB2b2lkIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFw
OjpyZWxlYXNlVmlkZW9GcmFtZShSZW1vdGVWaWRlb0ZyYW1lV3JpdGVSZWZlcmVuYwogfQogCiAj
aWYgUExBVEZPUk0oQ09DT0EpCi12b2lkIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOjpnZXRW
aWRlb0ZyYW1lQnVmZmVyKFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlJiYgcmVhZCkKK3Zv
aWQgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXA6OmdldFZpZGVvRnJhbWVCdWZmZXIoUmVtb3Rl
VmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UmJiByZWFkLCBib29sIGNhblNlbmRJT1N1cmZhY2UpCiB7
CiAgICAgYXNzZXJ0SXNDdXJyZW50KHJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUXVldWUoKSk7
CiAKICAgICBhdXRvIGlkZW50aWZpZXIgPSByZWFkLmlkZW50aWZpZXIoKTsKLSAgICBhdXRvIHZp
ZGVvRnJhbWUgPSBtX2hlYXAucmV0aXJlKFdURk1vdmUocmVhZCksIDBfcyk7Ci0KLSAgICBpZiAo
IXZpZGVvRnJhbWUpIHsKLSAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1v
dGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yOjpWaWRlb0ZyYW1lQnVmZmVyTm90
Rm91bmQgeyBpZGVudGlmaWVyIH0sIDApOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAg
YXV0byBwaXhlbEJ1ZmZlciA9IHZpZGVvRnJhbWUtPnBpeGVsQnVmZmVyKCk7Ci0gICAgaWYgKCFw
aXhlbEJ1ZmZlcikgewotICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90
ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3I6OlZpZGVvRnJhbWVCdWZmZXJOb3RG
b3VuZCB7IGlkZW50aWZpZXIgfSwgMCk7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYm9vbCByZXN1bHQgPSBtX3NoYXJlZFZpZGVv
RnJhbWVXcml0ZXIud3JpdGUocGl4ZWxCdWZmZXIsCi0gICAgICAgIFsmXShhdXRvJiBzZW1hcGhv
cmUpIHsgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0
SGVhcFByb3h5UHJvY2Vzc29yOjpTZXRTaGFyZWRWaWRlb0ZyYW1lU2VtYXBob3JlIHsgc2VtYXBo
b3JlIH0sIDApOyB9LAotICAgICAgICBbJl0oYXV0byYgaGFuZGxlKSB7IG1fY29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvcjo6
U2V0U2hhcmVkVmlkZW9GcmFtZU1lbW9yeSB7IGhhbmRsZSB9LCAwKTsgfQotICAgICk7Ci0gICAg
aWYgKCFyZXN1bHQpIHsKLSAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBBU1NFUlRfTk9UX1JF
QUNIRUQgb25jZSB3ZSBzdXBwb3J0IGVub3VnaCBwaXhlbCBidWZmZXIgdHlwZXMuCi0gICAgICAg
IG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQ
cm94eVByb2Nlc3Nvcjo6VmlkZW9GcmFtZUJ1ZmZlck5vdEZvdW5kIHsgaWRlbnRpZmllciB9LCAw
KTsKLSAgICAgICAgcmV0dXJuOworICAgIGF1dG8gdmlkZW9GcmFtZSA9IGdldChXVEZNb3ZlKHJl
YWQpKTsKKworICAgIHN0ZDo6b3B0aW9uYWw8U2hhcmVkVmlkZW9GcmFtZTo6QnVmZmVyPiBidWZm
ZXI7CisgICAgaWYgKHZpZGVvRnJhbWUpIHsKKyAgICAgICAgYnVmZmVyID0gbV9zaGFyZWRWaWRl
b0ZyYW1lV3JpdGVyLndyaXRlQnVmZmVyKHZpZGVvRnJhbWUtPnBpeGVsQnVmZmVyKCksCisgICAg
ICAgICAgICBbJl0oYXV0byYgc2VtYXBob3JlKSB7IG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvcjo6U2V0U2hhcmVkVmlk
ZW9GcmFtZVNlbWFwaG9yZSB7IHNlbWFwaG9yZSB9LCAwKTsgfSwKKyAgICAgICAgICAgIFsmXShh
dXRvJiBoYW5kbGUpIHsgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVWaWRlb0Zy
YW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yOjpTZXRTaGFyZWRWaWRlb0ZyYW1lTWVtb3J5IHsg
aGFuZGxlIH0sIDApOyB9LAorICAgICAgICAgICAgY2FuU2VuZElPU3VyZmFjZSk7CisgICAgICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgQVNTRVJUKHJlc3VsdCkgb25jZSB3ZSBzdXBwb3J0IGVub3Vn
aCBwaXhlbCBidWZmZXIgdHlwZXMuCiAgICAgfQotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvcjo6TmV3VmlkZW9G
cmFtZUJ1ZmZlciB7IGlkZW50aWZpZXIgfSwgMCk7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yOjpOZXdWaWRl
b0ZyYW1lQnVmZmVyIHsgaWRlbnRpZmllciwgKmJ1ZmZlciB9LCAwKTsKIH0KIAogdm9pZCBSZW1v
dGVWaWRlb0ZyYW1lT2JqZWN0SGVhcDo6cGl4ZWxCdWZmZXIoUmVtb3RlVmlkZW9GcmFtZVJlYWRS
ZWZlcmVuY2UmJiByZWFkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJldGFpblB0cjxDVlBpeGVs
QnVmZmVyUmVmPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXNzZXJ0SXNDdXJyZW50
KHJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUXVldWUoKSk7CiAKLSAgICBhdXRvIHZpZGVvRnJh
bWUgPSBtX2hlYXAucmV0aXJlKFdURk1vdmUocmVhZCksIDBfcyk7CisgICAgYXV0byB2aWRlb0Zy
YW1lID0gZ2V0KFdURk1vdmUocmVhZCkpOwogICAgIGlmICghdmlkZW9GcmFtZSkgewogICAgICAg
ICBBU1NFUlRfSVNfVEVTVElOR19JUEMoKTsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobnVs
bHB0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXAuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5oCmluZGV4IDFiYjRlMGE0M2UxMWY3ZjFhODkwZTY5
Yzc0ZTdjYTg5NDRiMThmZTMuLjUzZWQ1NmUwYWUwZGVlZjYxNTRjOGNlMDRhOWIxNmNmMTUwZTY4
YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRl
b0ZyYW1lT2JqZWN0SGVhcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5oCkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAg
ICAgLy8gTWVzc2FnZXMuCiAgICAgdm9pZCByZWxlYXNlVmlkZW9GcmFtZShSZW1vdGVWaWRlb0Zy
YW1lV3JpdGVSZWZlcmVuY2UmJik7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdm9pZCBnZXRW
aWRlb0ZyYW1lQnVmZmVyKFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlJiYpOworICAgIHZv
aWQgZ2V0VmlkZW9GcmFtZUJ1ZmZlcihSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSYmLCBi
b29sIGNhblNlbmRJT1N1cmZhY2UpOwogICAgIHZvaWQgcGl4ZWxCdWZmZXIoUmVtb3RlVmlkZW9G
cmFtZVJlYWRSZWZlcmVuY2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXRhaW5QdHI8Q1ZQ
aXhlbEJ1ZmZlclJlZj4pPiYmKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXAubWVzc2FnZXMuaW4KaW5kZXggNmZhOGFhMmJjYzM0NDhmZGY1ZDE1ZTBlYzE5N2Y0ZDg3YWJj
N2JiZS4uZWI5YTY5NmMyODE5OWIwYzQ2OWViMjBiNDVkYjcyYzIyZjdlMjY3ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RI
ZWFwLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5tZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNyBAQAogI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPKQogbWVzc2FnZXMgLT4gUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXAgTm90UmVmQ291bnRlZCB7CiAjaWYgUExBVEZPUk0oQ09DT0Ep
Ci0gICAgR2V0VmlkZW9GcmFtZUJ1ZmZlcihXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVSZWFkUmVm
ZXJlbmNlIHJlYWQpCisgICAgR2V0VmlkZW9GcmFtZUJ1ZmZlcihXZWJLaXQ6OlJlbW90ZVZpZGVv
RnJhbWVSZWFkUmVmZXJlbmNlIHJlYWQsIGJvb2wgY2FuU2VuZElPU3VyZmFjZSkKICAgICBQaXhl
bEJ1ZmZlcihXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlIHJlYWQpIC0+IChS
ZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcmVzdWx0KSBTeW5jaHJvbm91cwogI2VuZGlmCiAg
ICAgUmVsZWFzZVZpZGVvRnJhbWUoV2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1lV3JpdGVSZWZlcmVu
Y2Ugd3JpdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xp
YldlYlJUQ0NvZGVjc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xp
YldlYlJUQ0NvZGVjc1Byb3h5LmgKaW5kZXggODc0ZmY2ODNiYTdmZTRiYTBhMGU1Mjc4OTBkNmY4
NjY1MmYzZjk4MC4uMTkyNjczOGY5ZTAyODE5YzdmNGZiOWRjOGFlNTM1OTkzYzA0ZTkwOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29k
ZWNzUHJveHkuaApAQCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlRW5j
b2RlcihSVENFbmNvZGVySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmVjdG9yPHN0
ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+JiwgYm9vbCB1c2VMb3dMYXRlbmN5KTsKICAgICB2b2lk
IHJlbGVhc2VFbmNvZGVyKFJUQ0VuY29kZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIGluaXRpYWxp
emVFbmNvZGVyKFJUQ0VuY29kZXJJZGVudGlmaWVyLCB1aW50MTZfdCB3aWR0aCwgdWludDE2X3Qg
aGVpZ2h0LCB1bnNpZ25lZCBzdGFydEJpdHJhdGUsIHVuc2lnbmVkIG1heEJpdHJhdGUsIHVuc2ln
bmVkIG1pbkJpdHJhdGUsIHVpbnQzMl90IG1heEZyYW1lcmF0ZSk7Ci0gICAgdm9pZCBlbmNvZGVG
cmFtZShSVENFbmNvZGVySWRlbnRpZmllciwgV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmJiwg
dWludDMyX3QgdGltZVN0YW1wLCBib29sIHNob3VsZEVuY29kZUFzS2V5RnJhbWUsIHN0ZDo6b3B0
aW9uYWw8UmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2U+KTsKKyAgICB2b2lkIGVuY29kZUZy
YW1lKFJUQ0VuY29kZXJJZGVudGlmaWVyLCBTaGFyZWRWaWRlb0ZyYW1lJiYsIHVpbnQzMl90IHRp
bWVTdGFtcCwgYm9vbCBzaG91bGRFbmNvZGVBc0tleUZyYW1lKTsKICAgICB2b2lkIHNldEVuY29k
ZVJhdGVzKFJUQ0VuY29kZXJJZGVudGlmaWVyLCB1aW50MzJfdCBiaXRSYXRlLCB1aW50MzJfdCBm
cmFtZVJhdGUpOwogICAgIHZvaWQgc2V0U2hhcmVkVmlkZW9GcmFtZVNlbWFwaG9yZShSVENFbmNv
ZGVySWRlbnRpZmllciwgSVBDOjpTZW1hcGhvcmUmJik7CiAgICAgdm9pZCBzZXRTaGFyZWRWaWRl
b0ZyYW1lTWVtb3J5KFJUQ0VuY29kZXJJZGVudGlmaWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6OklQ
Q0hhbmRsZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9M
aWJXZWJSVENDb2RlY3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZGZhZjRhMjZi
ZDFlMzEyMTkwMzRhYmIwNjUyZGUyM2Q5Y2UyZDFhYS4uZTY0OWQ3MTRhNzcyMzgzYTIzYWIwNjNj
YWZmMWJjZmE3YTQ0MGNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0z
NCw3ICszNCw3IEBAIG1lc3NhZ2VzIC0+IExpYldlYlJUQ0NvZGVjc1Byb3h5IE5vdFJlZkNvdW50
ZWQgewogICAgIENyZWF0ZUVuY29kZXIoV2ViS2l0OjpSVENFbmNvZGVySWRlbnRpZmllciBpZCwg
U3RyaW5nIGZvcm1hdE5hbWUsIFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiBwYXJh
bWV0ZXJzLCBib29sIHVzZUxvd0xhdGVuY3kpOwogICAgIFJlbGVhc2VFbmNvZGVyKFdlYktpdDo6
UlRDRW5jb2RlcklkZW50aWZpZXIgaWQpCiAgICAgSW5pdGlhbGl6ZUVuY29kZXIoV2ViS2l0OjpS
VENFbmNvZGVySWRlbnRpZmllciBpZCwgdWludDE2X3Qgd2lkdGgsIHVpbnQxNl90IGhlaWdodCwg
dW5zaWduZWQgc3RhcnRCaXRyYXRlLCB1bnNpZ25lZCBtYXhCaXRyYXRlLCB1bnNpZ25lZCBtaW5C
aXRyYXRlLCB1aW50MzJfdCBtYXhGcmFtZXJhdGUpCi0gICAgRW5jb2RlRnJhbWUoV2ViS2l0OjpS
VENFbmNvZGVySWRlbnRpZmllciBpZCwgV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUgc2FtcGxl
LCB1aW50MzJfdCB0aW1lU3RhbXAsIGJvb2wgc2hvdWxkRW5jb2RlQXNLZXlGcmFtZSwgc3RkOjpv
cHRpb25hbDxXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlPiBzYW1wbGVSZWZl
cmVuY2UpCisgICAgRW5jb2RlRnJhbWUoV2ViS2l0OjpSVENFbmNvZGVySWRlbnRpZmllciBpZCwg
c3RydWN0IFdlYktpdDo6U2hhcmVkVmlkZW9GcmFtZSBidWZmZXIsIHVpbnQzMl90IHRpbWVTdGFt
cCwgYm9vbCBzaG91bGRFbmNvZGVBc0tleUZyYW1lKQogICAgIFNldEVuY29kZVJhdGVzKFdlYktp
dDo6UlRDRW5jb2RlcklkZW50aWZpZXIgaWQsIHVpbnQzMl90IGJpdFJhdGUsIHVpbnQzMl90IGZy
YW1lUmF0ZSkKICAgICBTZXRTaGFyZWRWaWRlb0ZyYW1lU2VtYXBob3JlKFdlYktpdDo6UlRDRW5j
b2RlcklkZW50aWZpZXIgaWQsIElQQzo6U2VtYXBob3JlIHNlbWFwaG9yZSkKICAgICBTZXRTaGFy
ZWRWaWRlb0ZyYW1lTWVtb3J5KFdlYktpdDo6UlRDRW5jb2RlcklkZW50aWZpZXIgaWQsIFdlYktp
dDo6U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgc3RvcmFnZUhhbmRsZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0gYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tCmlu
ZGV4IGE3NjcxZDhkNzIxZjg3OTU4YWE3NGFiNzkyYjNhZDRhZmE4MDdiYjcuLjZkYzg2ZTM1YThk
ZDgyNzc5MTQ4ZDZkNWZjOTAxYjQ0YTJkYTIzY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQpAQCAtMTg1LDcg
KzE4NSw3IEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OmNyZWF0ZUVuY29kZXIoUlRDRW5j
b2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QKICAgICAgICAgY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzOjpDb21wbGV0ZWRFbmNvZGluZyB7IGlkZW50aWZp
ZXIsIElQQzo6RGF0YVJlZmVyZW5jZSB7IGJ1ZmZlciwgc2l6ZSB9LCBpbmZvIH0sIDApOwogICAg
IH0pLmdldCgpKTsKICAgICB3ZWJydGM6OnNldExvY2FsRW5jb2Rlckxvd0xhdGVuY3koZW5jb2Rl
ciwgdXNlTG93TGF0ZW5jeSk7Ci0gICAgYXV0byByZXN1bHQgPSBtX2VuY29kZXJzLmFkZChpZGVu
dGlmaWVyLCBFbmNvZGVyIHsgZW5jb2RlciwgbnVsbHB0ciB9KTsKKyAgICBhdXRvIHJlc3VsdCA9
IG1fZW5jb2RlcnMuYWRkKGlkZW50aWZpZXIsIEVuY29kZXIgeyBlbmNvZGVyLCBtYWtlVW5pcXVl
PFNoYXJlZFZpZGVvRnJhbWVSZWFkZXI+KFJlZiB7IG1fdmlkZW9GcmFtZU9iamVjdEhlYXAgfSwg
bV9yZXNvdXJjZU93bmVyKSB9KTsKICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0Lmlz
TmV3RW50cnkgfHwgaXNUZXN0aW5nSVBDKCkpOwogICAgIG1faGFzRW5jb2RlcnNPckRlY29kZXJz
ID0gdHJ1ZTsKIH0KQEAgLTIzNywzOSArMjM3LDI0IEBAIHN0YXRpYyBpbmxpbmUgd2VicnRjOjpW
aWRlb1JvdGF0aW9uIHRvV2ViUlRDVmlkZW9Sb3RhdGlvbihXZWJDb3JlOjpNZWRpYVNhbXBsZTo6
CiAgICAgcmV0dXJuIHdlYnJ0Yzo6a1ZpZGVvUm90YXRpb25fMDsKIH0KIAotdm9pZCBMaWJXZWJS
VENDb2RlY3NQcm94eTo6ZW5jb2RlRnJhbWUoUlRDRW5jb2RlcklkZW50aWZpZXIgaWRlbnRpZmll
ciwgV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmJiBzYW1wbGUsIHVpbnQzMl90IHRpbWVTdGFt
cCwgYm9vbCBzaG91bGRFbmNvZGVBc0tleUZyYW1lLCBzdGQ6Om9wdGlvbmFsPFJlbW90ZVZpZGVv
RnJhbWVSZWFkUmVmZXJlbmNlPiBzYW1wbGVSZWZlcmVuY2UpCit2b2lkIExpYldlYlJUQ0NvZGVj
c1Byb3h5OjplbmNvZGVGcmFtZShSVENFbmNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBTaGFy
ZWRWaWRlb0ZyYW1lJiYgc2hhcmVkVmlkZW9GcmFtZSwgdWludDMyX3QgdGltZVN0YW1wLCBib29s
IHNob3VsZEVuY29kZUFzS2V5RnJhbWUpCiB7CiAgICAgYXNzZXJ0SXNDdXJyZW50KHdvcmtRdWV1
ZSgpKTsKLSAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXI7Ci0gICAg
aWYgKHNhbXBsZVJlZmVyZW5jZSkgewotICAgICAgICBhdXRvIHNhbXBsZSA9IG1fdmlkZW9GcmFt
ZU9iamVjdEhlYXAtPmdldChXVEZNb3ZlKCpzYW1wbGVSZWZlcmVuY2UpKTsKLSAgICAgICAgaWYg
KCFzYW1wbGUpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgYXV0byBwbGF0Zm9ybVNh
bXBsZSA9IHNhbXBsZS0+cGxhdGZvcm1TYW1wbGUoKTsKLSAgICAgICAgQVNTRVJUKHBsYXRmb3Jt
U2FtcGxlLnR5cGUgPT0gV2ViQ29yZTo6UGxhdGZvcm1TYW1wbGU6OkNNU2FtcGxlQnVmZmVyVHlw
ZSk7Ci0gICAgICAgIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4o
UEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5j
bVNhbXBsZUJ1ZmZlcikpOwotICAgIH0KLQogICAgIGF1dG8qIGVuY29kZXIgPSBmaW5kRW5jb2Rl
cihpZGVudGlmaWVyKTsKICAgICBpZiAoIWVuY29kZXIpIHsKICAgICAgICAgQVNTRVJUX0lTX1RF
U1RJTkdfSVBDKCk7CisgICAgICAgIC8vIE1ha2Ugc3VyZSB0byByZWFkIFJlbW90ZVZpZGVvRnJh
bWVSZWFkUmVmZXJlbmNlIHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzLgorICAgICAgICBpZiAoc3Rk
Ojpob2xkc19hbHRlcm5hdGl2ZTxSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZT4oc2hhcmVk
VmlkZW9GcmFtZS5idWZmZXIpKQorICAgICAgICAgICAgbV92aWRlb0ZyYW1lT2JqZWN0SGVhcC0+
Z2V0KFdURk1vdmUoc3RkOjpnZXQ8UmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2U+KHNoYXJl
ZFZpZGVvRnJhbWUuYnVmZmVyKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0jaWYgIVBM
QVRGT1JNKE1BQ0NBVEFMWVNUKQotICAgIGlmICghcGl4ZWxCdWZmZXIpIHsKLSAgICAgICAgaWYg
KHNhbXBsZS5zdXJmYWNlKCkpIHsKLSAgICAgICAgICAgIGlmIChhdXRvIGJ1ZmZlciA9IFdlYkNv
cmU6OmNyZWF0ZUNWUGl4ZWxCdWZmZXIoc2FtcGxlLnN1cmZhY2UoKSkpCi0gICAgICAgICAgICAg
ICAgcGl4ZWxCdWZmZXIgPSBXVEZNb3ZlKCpidWZmZXIpOwotICAgICAgICB9IGVsc2UgaWYgKGVu
Y29kZXItPmZyYW1lUmVhZGVyKQotICAgICAgICAgICAgcGl4ZWxCdWZmZXIgPSBlbmNvZGVyLT5m
cmFtZVJlYWRlci0+cmVhZCgpOwotCi0gICAgICAgIGlmICghcGl4ZWxCdWZmZXIpCi0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgfQorICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBlbmNvZGVyLT5mcmFt
ZVJlYWRlci0+cmVhZEJ1ZmZlcihXVEZNb3ZlKHNoYXJlZFZpZGVvRnJhbWUuYnVmZmVyKSk7Cisg
ICAgaWYgKCFwaXhlbEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuOwogCi0gICAgd2VicnRjOjplbmNv
ZGVMb2NhbEVuY29kZXJGcmFtZShlbmNvZGVyLT53ZWJydGNFbmNvZGVyLCBwaXhlbEJ1ZmZlci5n
ZXQoKSwgc2FtcGxlLnRpbWUoKS50b1RpbWVTY2FsZSgxMDAwMDAwKS50aW1lVmFsdWUoKSwgdGlt
ZVN0YW1wLCB0b1dlYlJUQ1ZpZGVvUm90YXRpb24oc2FtcGxlLnJvdGF0aW9uKCkpLCBzaG91bGRF
bmNvZGVBc0tleUZyYW1lKTsKKyNpZiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisgICAgd2VicnRj
OjplbmNvZGVMb2NhbEVuY29kZXJGcmFtZShlbmNvZGVyLT53ZWJydGNFbmNvZGVyLCBwaXhlbEJ1
ZmZlci5nZXQoKSwgc2hhcmVkVmlkZW9GcmFtZS50aW1lLnRvVGltZVNjYWxlKDEwMDAwMDApLnRp
bWVWYWx1ZSgpLCB0aW1lU3RhbXAsIHRvV2ViUlRDVmlkZW9Sb3RhdGlvbihzaGFyZWRWaWRlb0Zy
YW1lLnJvdGF0aW9uKSwgc2hvdWxkRW5jb2RlQXNLZXlGcmFtZSk7CiAjZW5kaWYKIH0KIApAQCAt
Mjk0LDggKzI3OSw2IEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OnNldFNoYXJlZFZpZGVv
RnJhbWVTZW1hcGhvcmUoUlRDRW5jb2RlcklkZW50aWZpZXIgaWRlCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBpZiAoIWVuY29kZXItPmZyYW1lUmVhZGVyKQotICAgICAgICBlbmNvZGVy
LT5mcmFtZVJlYWRlciA9IG1ha2VVbmlxdWU8U2hhcmVkVmlkZW9GcmFtZVJlYWRlcj4oUmVmIHsg
bV92aWRlb0ZyYW1lT2JqZWN0SGVhcCB9LCBtX3Jlc291cmNlT3duZXIpOwogICAgIGVuY29kZXIt
PmZyYW1lUmVhZGVyLT5zZXRTZW1hcGhvcmUoV1RGTW92ZShzZW1hcGhvcmUpKTsKIH0KIApAQCAt
MzA4LDggKzI5MSw2IEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OnNldFNoYXJlZFZpZGVv
RnJhbWVNZW1vcnkoUlRDRW5jb2RlcklkZW50aWZpZXIgaWRlbnRpCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBpZiAoIWVuY29kZXItPmZyYW1lUmVhZGVyKQotICAgICAgICBlbmNvZGVy
LT5mcmFtZVJlYWRlciA9IG1ha2VVbmlxdWU8U2hhcmVkVmlkZW9GcmFtZVJlYWRlcj4oUmVmIHsg
bV92aWRlb0ZyYW1lT2JqZWN0SGVhcCB9LCBtX3Jlc291cmNlT3duZXIpOwogICAgIGVuY29kZXIt
PmZyYW1lUmVhZGVyLT5zZXRTaGFyZWRNZW1vcnkoaXBjSGFuZGxlKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjA3MzI4ZTA2
YmNjY2E0M2IyOWI1NWYwMTdkOWIxZWYxMzQ1NGUwNi4uNzkxZmJmYmUxZThkZjE0ODhkNWFlMGE2
MjA1ZjUyNTY1MzgxNWExOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC00MTIxLDYgKzQxMjEsNyBAQAogCQk0MTMxRjNFMDFGOTg3MTJD
MDA1OTk5NUEgLyogV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xp
ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzNUZCQ0YxRjRGQjdGMjAw
NzRDNDdCIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZXMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTM1RkJEMDFGNEZCN0YyMDA3NEM0N0IgLyogQ2FjaGVT
dG9yYWdlRW5naW5lQ2FjaGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENh
Y2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MTNDNTQyMjI3QzkwRjRDMDAyRkNEQTggLyogUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAubWVz
c2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAubWVzc2FnZXMuaW47IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxM0M4QjEzMjU1MTZCRkEwMEU2NTA1NSAvKiBM
aWJXZWJSVENDb2RlY3MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMaWJXZWJSVENDb2RlY3Mu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTBBNUEwMjNFMDZDOTEwMDUxMjY0
QSAvKiBHUFVQcm9jZXNzU2Vzc2lvblBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gR1BVUHJvY2Vzc1Nlc3Npb25QYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxNTE4NTM1MjIyNzA0RjUwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY5NDcsNiArNjk0
OCw3IEBACiAJCQkJMDdFMTlGMDYyM0Q0REM4ODAwOTRGRkI0IC8qIFJlbW90ZVRleHRUcmFja1By
b3h5LmggKi8sCiAJCQkJN0I1QTNEQTgyN0E3RENCQzAwNkM2Rjk3IC8qIFJlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwLmNwcCAqLywKIAkJCQk3QjVBM0RBNzI3QTdEQ0JDMDA2QzZGOTcgLyogUmVt
b3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuaCAqLywKKwkJCQk0MTNDNTQyMjI3QzkwRjRDMDAyRkNE
QTggLyogUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAubWVzc2FnZXMuaW4gKi8sCiAJCQkJMDcx
QkM1ODQyM0NDMkMwOTAwNjgwRDdDIC8qIFJlbW90ZVZpZGVvVHJhY2tQcm94eS5jcHAgKi8sCiAJ
CQkJMDcxQkM1ODUyM0NDMkMwOTAwNjgwRDdDIC8qIFJlbW90ZVZpZGVvVHJhY2tQcm94eS5oICov
LAogCQkJCTA3RTE5RjA1MjNENERDODgwMDk0RkZCNCAvKiBUZXh0VHJhY2tQcml2YXRlUmVtb3Rl
Q29uZmlndXJhdGlvbi5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuY3BwCmluZGV4IDk2YmJhOGUw
ZmM5MTM4NzJmYWJiNzVlOWQyODZhYTIxYTk4NWNjODIuLjlhMDMyM2Y0YTMyY2FhODI1MjExMGYz
NTY1NzJjZWI0ZWY3Mzg1MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5jcHAKQEAgLTEwNiwxNiAr
MTA2LDE4IEBAIENWUGl4ZWxCdWZmZXJSZWYgUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpwaXhlbEJ1
ZmZlcigpIGNvbnN0CiAgICAgaWYgKCFtX3BpeGVsQnVmZmVyICYmIG1fdmlkZW9GcmFtZU9iamVj
dEhlYXBQcm94eSkgewogICAgICAgICBhdXRvIHZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkgPSBz
dGQ6OmV4Y2hhbmdlKG1fdmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSwgbnVsbHB0cik7CiAKLSAg
ICAgICAgYm9vbCBjYW5TZW5kU3luYyA9IGlzTWFpblJ1bkxvb3AoKTsgLy8gRklYTUU6IHdlIHNo
b3VsZCBiZSBhYmxlIHRvIHNlbmRTeW5jIGZyb20gb3RoZXIgdGhyZWFkcyB0b28uCi0gICAgICAg
IC8vIEN1cnJlbnRseSB3ZSBqdXN0IGtleSB3aXRoIHRoaXMsIGFzIHRoZXJlIGlzIG5vIGNvbmRp
dGlvbiBmb3IgImhhcyBhY2Nlc3MgdG8gSU9LaXQiLgotICAgICAgICBpZiAoV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuc2hvdWxkVXNlUmVtb3RlUmVuZGVyaW5nRm9yV2ViR0woKSB8fCAhY2FuU2Vu
ZFN5bmMpIHsKKyAgICAgICAgYm9vbCBjYW5Vc2VJT1N1cmZhY2UgPSBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5zaG91bGRVc2VSZW1vdGVSZW5kZXJpbmdGb3JXZWJHTCgpOworICAgICAgICBpZiAo
IWlzTWFpblJ1bkxvb3AoKSkgeworICAgICAgICAgICAgLy8gRklYTUU6IHdlIHNob3VsZCBiZSBh
YmxlIHRvIHNlbmRTeW5jIGZyb20gb3RoZXIgdGhyZWFkcyB0b28uCiAgICAgICAgICAgICBCaW5h
cnlTZW1hcGhvcmUgc2VtYXBob3JlOwotICAgICAgICAgICAgdmlkZW9GcmFtZU9iamVjdEhlYXBQ
cm94eS0+Z2V0VmlkZW9GcmFtZUJ1ZmZlcigqdGhpcywgW3RoaXMsICZzZW1hcGhvcmVdKGF1dG8g
cGl4ZWxCdWZmZXIpIHsKKyAgICAgICAgICAgIHZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHktPmdl
dFZpZGVvRnJhbWVCdWZmZXIoKnRoaXMsIGNhblVzZUlPU3VyZmFjZSwgW3RoaXMsICZzZW1hcGhv
cmVdKGF1dG8gcGl4ZWxCdWZmZXIpIHsKICAgICAgICAgICAgICAgICBtX3BpeGVsQnVmZmVyID0g
V1RGTW92ZShwaXhlbEJ1ZmZlcik7CiAgICAgICAgICAgICAgICAgc2VtYXBob3JlLnNpZ25hbCgp
OwogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICBzZW1hcGhvcmUud2FpdCgpOwogICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgLy8gTWFpbiB0aHJlYWQgYWNjZXNzIHNob3VsZCBiZSBs
aW1pdGVkIHRvIGluLXByb2Nlc3MgV2ViR0wuCisgICAgICAgICAgICBBU1NFUlQoY2FuVXNlSU9T
dXJmYWNlKTsKICAgICAgICAgICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1
ZmZlcjsKICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gbV9jb25uZWN0aW9uLT5zZW5kU3luYyhN
ZXNzYWdlczo6UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXA6OlBpeGVsQnVmZmVyKG5ld1JlYWRS
ZWZlcmVuY2UoKSksIE1lc3NhZ2VzOjpSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcDo6UGl4ZWxC
dWZmZXI6OlJlcGx5KHBpeGVsQnVmZmVyKSwgMCwgZGVmYXVsdFRpbWVvdXQpOwogICAgICAgICAg
ICAgaWYgKHJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCmluZGV4IDU4ZWNjMTgyZWE0OWNjNTJlYTUyZjM1
ZGIxN2U5ODFjODk4OWFjYjMuLmNkZWY0NTNjNDIxZjBiMzkwZmI4MWJmYWEzNDhmNjNkMDdiYTNl
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldl
YlJUQ0NvZGVjcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
TGliV2ViUlRDQ29kZWNzLmNwcApAQCAtNDQ3LDQ2ICs0NDcsMjAgQEAgaW50MzJfdCBMaWJXZWJS
VENDb2RlY3M6OmluaXRpYWxpemVFbmNvZGVyKEVuY29kZXImIGVuY29kZXIsIHVpbnQxNl90IHdp
ZHRoLCB1aW4KICAgICByZXR1cm4gMDsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgQnVmZmVyPgot
Ym9vbCBjb3B5U2hhcmVkVmlkZW9GcmFtZShMaWJXZWJSVENDb2RlY3M6OkVuY29kZXImIGVuY29k
ZXIsIEJ1ZmZlciYmIGZyYW1lQnVmZmVyKQotewotICAgIHJldHVybiBlbmNvZGVyLnNoYXJlZFZp
ZGVvRnJhbWVXcml0ZXIud3JpdGUoZnJhbWVCdWZmZXIsCi0gICAgICAgIFsmXShhdXRvJiBzZW1h
cGhvcmUpIHsgZW5jb2Rlci5jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2Rl
Y3NQcm94eTo6U2V0U2hhcmVkVmlkZW9GcmFtZVNlbWFwaG9yZSB7IGVuY29kZXIuaWRlbnRpZmll
ciwgc2VtYXBob3JlIH0sIDApOyB9LAotICAgICAgICBbJl0oYXV0byYgaGFuZGxlKSB7IGVuY29k
ZXIuY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OlNldFNo
YXJlZFZpZGVvRnJhbWVNZW1vcnkgeyBlbmNvZGVyLmlkZW50aWZpZXIsIGhhbmRsZSB9LCAwKTsg
fQotICAgICk7Ci19Ci0KIGludDMyX3QgTGliV2ViUlRDQ29kZWNzOjplbmNvZGVGcmFtZShFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCB3ZWJydGM6OlZpZGVvRnJhbWUmIGZyYW1lLCBib29sIHNob3Vs
ZEVuY29kZUFzS2V5RnJhbWUpCiB7CiAgICAgTG9ja2VyIGxvY2tlciB7IG1fZW5jb2RlcnNMb2Nr
IH07CiAgICAgaWYgKCFlbmNvZGVyLmNvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybiBXRUJSVENf
VklERU9fQ09ERUNfRVJST1I7CiAKLSAgICBzdGQ6Om9wdGlvbmFsPFJlbW90ZVZpZGVvRnJhbWVS
ZWFkUmVmZXJlbmNlPiByZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZTsKLSAgICBpZiAoYXV0
byogcHJvdmlkZXIgPSB3ZWJydGM6OnZpZGVvRnJhbWVCdWZmZXJQcm92aWRlcihmcmFtZSkpIHsK
LSAgICAgICAgYXV0byogdmlkZW9GcmFtZSA9IHN0YXRpY19jYXN0PFZpZGVvRnJhbWUqPihwcm92
aWRlcik7Ci0gICAgICAgIGlmIChpczxSZW1vdGVWaWRlb0ZyYW1lUHJveHk+KHZpZGVvRnJhbWUp
KQotICAgICAgICAgICAgcmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UgPSBkb3duY2FzdDxS
ZW1vdGVWaWRlb0ZyYW1lUHJveHk+KHZpZGVvRnJhbWUpLT5uZXdSZWFkUmVmZXJlbmNlKCk7Ci0g
ICAgfQotCi0gICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGJ1ZmZlcjsKLSAgICBpZiAo
IXJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlKSB7Ci0gICAgICAgIGJ1ZmZlciA9IGFkb3B0
Q0Yod2VicnRjOjpwaXhlbEJ1ZmZlckZyb21GcmFtZShmcmFtZSkpOwotICAgICAgICBpZiAoIWJ1
ZmZlcikgewotICAgICAgICAgICAgLy8gYnVmZmVyIGlzIG5vdCBuYXRpdmUsIHdlIG5lZWQgdG8g
Y29weSB0byBzaGFyZWQgdmlkZW8gZnJhbWUuCi0gICAgICAgICAgICBpZiAoIWNvcHlTaGFyZWRW
aWRlb0ZyYW1lKGVuY29kZXIsIGZyYW1lKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gV0VCUlRD
X1ZJREVPX0NPREVDX0VSUk9SOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgYXV0byBzYW1wbGUg
PSBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKGJ1ZmZlci5nZXQoKSwgTWVkaWFUaW1lKGZyYW1l
LnRpbWVzdGFtcF91cygpICogMTAwMCwgMTAwMDAwMCksIHRvTWVkaWFTYW1wbGVWaWRlb1JvdGF0
aW9uKGZyYW1lLnJvdGF0aW9uKCkpLCBSZW1vdGVWaWRlb1NhbXBsZTo6U2hvdWxkQ2hlY2tGb3JJ
T1N1cmZhY2U6Ok5vKTsKLSAgICBpZiAoYnVmZmVyICYmICFzYW1wbGUtPnN1cmZhY2UoKSkgewot
ICAgICAgICAvLyBidWZmZXIgaXMgbm90IElPU3VyZmFjZSwgd2UgbmVlZCB0byBjb3B5IHRvIHNo
YXJlZCB2aWRlbyBmcmFtZS4KLSAgICAgICAgaWYgKCFjb3B5U2hhcmVkVmlkZW9GcmFtZShlbmNv
ZGVyLCBidWZmZXIuZ2V0KCkpKQotICAgICAgICAgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RF
Q19FUlJPUjsKLSAgICB9CisgICAgYXV0byBidWZmZXIgPSBlbmNvZGVyLnNoYXJlZFZpZGVvRnJh
bWVXcml0ZXIud3JpdGVCdWZmZXIoZnJhbWUsCisgICAgICAgIFsmXShhdXRvJiBzZW1hcGhvcmUp
IHsgZW5jb2Rlci5jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94
eTo6U2V0U2hhcmVkVmlkZW9GcmFtZVNlbWFwaG9yZSB7IGVuY29kZXIuaWRlbnRpZmllciwgc2Vt
YXBob3JlIH0sIDApOyB9LAorICAgICAgICBbJl0oYXV0byYgaGFuZGxlKSB7IGVuY29kZXIuY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OlNldFNoYXJlZFZp
ZGVvRnJhbWVNZW1vcnkgeyBlbmNvZGVyLmlkZW50aWZpZXIsIGhhbmRsZSB9LCAwKTsgfSk7Cisg
ICAgaWYgKCFidWZmZXIpCisgICAgICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7
CiAKLSAgICBlbmNvZGVyLmNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVj
c1Byb3h5OjpFbmNvZGVGcmFtZSB7IGVuY29kZXIuaWRlbnRpZmllciwgKnNhbXBsZSwgZnJhbWUu
dGltZXN0YW1wKCksIHNob3VsZEVuY29kZUFzS2V5RnJhbWUsIHJlbW90ZVZpZGVvRnJhbWVSZWFk
UmVmZXJlbmNlIH0sIDApOworICAgIFNoYXJlZFZpZGVvRnJhbWUgc2hhcmVkVmlkZW9GcmFtZSB7
IE1lZGlhVGltZShmcmFtZS50aW1lc3RhbXBfdXMoKSAqIDEwMDAsIDEwMDAwMDApLCBmYWxzZSwg
dG9NZWRpYVNhbXBsZVZpZGVvUm90YXRpb24oZnJhbWUucm90YXRpb24oKSksIFdURk1vdmUoKmJ1
ZmZlcikgfTsKKyAgICBlbmNvZGVyLmNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJU
Q0NvZGVjc1Byb3h5OjpFbmNvZGVGcmFtZSB7IGVuY29kZXIuaWRlbnRpZmllciwgc2hhcmVkVmlk
ZW9GcmFtZSwgZnJhbWUudGltZXN0YW1wKCksIHNob3VsZEVuY29kZUFzS2V5RnJhbWUgfSwgMCk7
CiAgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXBQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlk
ZW9GcmFtZU9iamVjdEhlYXBQcm94eS5oCmluZGV4IGQ1ZTVlZDMxMGEyNDMwOTQ2ODFmM2Q3Nzc5
YmM0OGUyNWJlN2MxZTIuLmU3OTQ4YzUyODFhZGRjMDU1ZWM3OWZhMDMyYTQ0NzI0NjM2MzU4MTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZp
ZGVvRnJhbWVPYmplY3RIZWFwUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5LmgKQEAgLTQ5LDcgKzQ5
LDcgQEAgcHVibGljOgogICAgIH5SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCkgPSBk
ZWZhdWx0OwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdm9pZCBnZXRWaWRlb0ZyYW1lQnVm
ZmVyKGNvbnN0IFJlbW90ZVZpZGVvRnJhbWVQcm94eSYgcHJveHksIFJlbW90ZVZpZGVvRnJhbWVP
YmplY3RIZWFwUHJveHlQcm9jZXNzb3I6OkNhbGxiYWNrJiYgY2FsbGJhY2spIHsgbV9wcm9jZXNz
b3ItPmdldFZpZGVvRnJhbWVCdWZmZXIocHJveHksIFdURk1vdmUoY2FsbGJhY2spKTsgfQorICAg
IHZvaWQgZ2V0VmlkZW9GcmFtZUJ1ZmZlcihjb25zdCBSZW1vdGVWaWRlb0ZyYW1lUHJveHkmIHBy
b3h5LCBib29sIGNhblVzZUlPU3VyZmFjZSwgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94
eVByb2Nlc3Nvcjo6Q2FsbGJhY2smJiBjYWxsYmFjaykgeyBtX3Byb2Nlc3Nvci0+Z2V0VmlkZW9G
cmFtZUJ1ZmZlcihwcm94eSwgY2FuVXNlSU9TdXJmYWNlLCBXVEZNb3ZlKGNhbGxiYWNrKSk7IH0K
ICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2Jq
ZWN0SGVhcFByb3h5UHJvY2Vzc29yLmNwcAppbmRleCA2ZDZjN2E4MmFmMTY4MmQwOTU0OWQyZTJj
ZTlkZGMzZGYxYzQzNTBkLi5jODcyNDZhYzcwZmVmYWJjMWRiOTM0ZDZlMDIyY2E4OTM1ZmVlODJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVW
aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJv
Y2Vzc29yLmNwcApAQCAtOTQsMjAgKzk0LDE3IEBAIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFw
UHJveHlQcm9jZXNzb3I6OkNhbGxiYWNrIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJvCiAg
ICAgcmV0dXJuIG1fY2FsbGJhY2tzLnRha2UoaWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvcjo6dmlkZW9GcmFtZUJ1ZmZlck5vdEZv
dW5kKFJlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit2b2lkIFJlbW90ZVZp
ZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3I6Om5ld1ZpZGVvRnJhbWVCdWZmZXIoUmVt
b3RlVmlkZW9GcmFtZUlkZW50aWZpZXIgaWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxTaGFyZWRW
aWRlb0ZyYW1lOjpCdWZmZXI+JiYgc2hhcmVkVmlkZW9GcmFtZUJ1ZmZlcikKIHsKKyAgICBSZXRh
aW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXI7CisgICAgaWYgKHNoYXJlZFZpZGVv
RnJhbWVCdWZmZXIpCisgICAgICAgIHBpeGVsQnVmZmVyID0gbV9zaGFyZWRWaWRlb0ZyYW1lUmVh
ZGVyLnJlYWRCdWZmZXIoV1RGTW92ZSgqc2hhcmVkVmlkZW9GcmFtZUJ1ZmZlcikpOwogICAgIGlm
IChhdXRvIGNhbGxiYWNrID0gdGFrZUNhbGxiYWNrKGlkZW50aWZpZXIpKQotICAgICAgICBjYWxs
YmFjayhudWxscHRyKTsKLX0KKyAgICAgICAgY2FsbGJhY2soV1RGTW92ZShwaXhlbEJ1ZmZlcikp
OwogCi12b2lkIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3I6Om5ld1Zp
ZGVvRnJhbWVCdWZmZXIoUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIgaWRlbnRpZmllcikKLXsK
LSAgICBhdXRvIHJlc3VsdCA9IG1fc2hhcmVkVmlkZW9GcmFtZVJlYWRlci5yZWFkKCk7Ci0gICAg
aWYgKGF1dG8gY2FsbGJhY2sgPSB0YWtlQ2FsbGJhY2soaWRlbnRpZmllcikpCi0gICAgICAgIGNh
bGxiYWNrKFdURk1vdmUocmVzdWx0KSk7CiB9CiAKLXZvaWQgUmVtb3RlVmlkZW9GcmFtZU9iamVj
dEhlYXBQcm94eVByb2Nlc3Nvcjo6Z2V0VmlkZW9GcmFtZUJ1ZmZlcihjb25zdCBSZW1vdGVWaWRl
b0ZyYW1lUHJveHkmIGZyYW1lLCBDYWxsYmFjayYmIGNhbGxiYWNrKQordm9pZCBSZW1vdGVWaWRl
b0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yOjpnZXRWaWRlb0ZyYW1lQnVmZmVyKGNvbnN0
IFJlbW90ZVZpZGVvRnJhbWVQcm94eSYgZnJhbWUsIGJvb2wgY2FuVXNlSU9TdXJmYWNlLCBDYWxs
YmFjayYmIGNhbGxiYWNrKQogewogICAgIHsKICAgICAgICAgTG9ja2VyIGxvY2sobV9jYWxsYmFj
a3NMb2NrKTsKQEAgLTExNiwxMCArMTEzLDEwIEBAIHZvaWQgUmVtb3RlVmlkZW9GcmFtZU9iamVj
dEhlYXBQcm94eVByb2Nlc3Nvcjo6Z2V0VmlkZW9GcmFtZUJ1ZmZlcihjb25zdCBSZW1vdGVWCiAg
ICAgfQogICAgIExvY2tlciBsb2NrKG1fY29ubmVjdGlvbkxvY2spOwogICAgIGlmICghbV9jb25u
ZWN0aW9uSUQpIHsKLSAgICAgICAgdmlkZW9GcmFtZUJ1ZmZlck5vdEZvdW5kKGZyYW1lLmlkZW50
aWZpZXIoKSk7CisgICAgICAgIHRha2VDYWxsYmFjayhmcmFtZS5pZGVudGlmaWVyKCkpKG51bGxw
dHIpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIElQQzo6Q29ubmVjdGlvbjo6c2VuZCht
X2Nvbm5lY3Rpb25JRCwgTWVzc2FnZXM6OlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOjpHZXRW
aWRlb0ZyYW1lQnVmZmVyKGZyYW1lLm5ld1JlYWRSZWZlcmVuY2UoKSksIDAsIElQQzo6U2VuZE9w
dGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKKyAgICBJ
UEM6OkNvbm5lY3Rpb246OnNlbmQobV9jb25uZWN0aW9uSUQsIE1lc3NhZ2VzOjpSZW1vdGVWaWRl
b0ZyYW1lT2JqZWN0SGVhcDo6R2V0VmlkZW9GcmFtZUJ1ZmZlcihmcmFtZS5uZXdSZWFkUmVmZXJl
bmNlKCksIGNhblVzZUlPU3VyZmFjZSksIDAsIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNz
YWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXBQcm94eVByb2Nlc3Nvci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvci5oCmluZGV4IGYwZTc2ZjNi
YTRhNDUxNWYyY2EwYTNjNWU2NGM2NWM4OTI2NmZmMmEuLjZiZjM0YjY1ZmM2MWZjODYyNThkZmM1
Zjg1YzhlOGMyZDUyOGMwZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2Jq
ZWN0SGVhcFByb3h5UHJvY2Vzc29yLmgKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogICAgIH5S
ZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yKCk7CiAKICAgICB1c2luZyBD
YWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+JiYpPjsK
LSAgICB2b2lkIGdldFZpZGVvRnJhbWVCdWZmZXIoY29uc3QgUmVtb3RlVmlkZW9GcmFtZVByb3h5
JiwgQ2FsbGJhY2smJik7CisgICAgdm9pZCBnZXRWaWRlb0ZyYW1lQnVmZmVyKGNvbnN0IFJlbW90
ZVZpZGVvRnJhbWVQcm94eSYsIGJvb2wgY2FuVXNlSU9TdXJmY2UsIENhbGxiYWNrJiYpOwogCiBw
cml2YXRlOgogICAgIGV4cGxpY2l0IFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9j
ZXNzb3IoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mKTsKQEAgLTY1LDggKzY1LDcgQEAgcHJpdmF0ZToK
ICAgICAvLyBNZXNzYWdlcwogICAgIHZvaWQgc2V0U2hhcmVkVmlkZW9GcmFtZVNlbWFwaG9yZShJ
UEM6OlNlbWFwaG9yZSYmKTsKICAgICB2b2lkIHNldFNoYXJlZFZpZGVvRnJhbWVNZW1vcnkoY29u
c3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmKTsKLSAgICB2b2lkIHZpZGVvRnJhbWVCdWZmZXJO
b3RGb3VuZChSZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllcik7Ci0gICAgdm9pZCBuZXdWaWRlb0Zy
YW1lQnVmZmVyKFJlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIG5ld1ZpZGVv
RnJhbWVCdWZmZXIoUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8U2hh
cmVkVmlkZW9GcmFtZTo6QnVmZmVyPiYmKTsKIAogICAgIC8vIEdQVVByb2Nlc3NDb25uZWN0aW9u
OjpDbGllbnQKICAgICB2b2lkIGdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1l
T2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLm1lc3NhZ2VzLmluCmluZGV4IDFkNTU1MzZkZDhhNDU4
Y2JkNGIxNTgzZTJhZTEwMTQxMTQ2OTdhMTIuLjkzYzU4NWZjNGExOWY5NTkyMzI0ZTJlNzVjYTFj
Yjg0YWNlMzFhNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFt
ZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvci5tZXNzYWdlcy5pbgpAQCAtMjUsOCArMjUsNyBAQAog
bWVzc2FnZXMgLT4gUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3NvciB7CiAg
ICAgU2V0U2hhcmVkVmlkZW9GcmFtZVNlbWFwaG9yZShJUEM6OlNlbWFwaG9yZSBzZW1hcGhvcmUp
CiAgICAgU2V0U2hhcmVkVmlkZW9GcmFtZU1lbW9yeShXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBD
SGFuZGxlIHN0b3JhZ2VIYW5kbGUpCi0gICAgVmlkZW9GcmFtZUJ1ZmZlck5vdEZvdW5kKFdlYktp
dDo6UmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIgaWRlbnRpZmllcikKLSAgICBOZXdWaWRlb0Zy
YW1lQnVmZmVyKFdlYktpdDo6UmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIgaWRlbnRpZmllcikK
KyAgICBOZXdWaWRlb0ZyYW1lQnVmZmVyKFdlYktpdDo6UmVtb3RlVmlkZW9GcmFtZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OlNoYXJlZFZpZGVvRnJhbWU6OkJ1
ZmZlcj4gZnJhbWUpCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmNwcAppbmRleCA0MzVhYzM3Yjg0
ZmVlNmEzNzhhY2NjNzZhNzIyYjUyNTczNjRmODY3Li5jZDI5ZmFlN2I1YWYwZDdkM2NiNDQxZTRl
MzgyMGZjMzBhZTY3NjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvSU9TdXJmYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNhbXBs
ZUFWRk9iakMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZFZpZGVvRnJhbWVJbmZvLmg+Cisj
aW5jbHVkZSA8d2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8
d3RmL1Njb3BlLmg+CiAKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KQEAg
LTkwLDQxICs5MSw1NSBAQCBib29sIFNoYXJlZFZpZGVvRnJhbWVXcml0ZXI6OnByZXBhcmVXcml0
aW5nKGNvbnN0IFNoYXJlZFZpZGVvRnJhbWVJbmZvJiBpbmZvLCBjbwogCiBzdGQ6Om9wdGlvbmFs
PFNoYXJlZFZpZGVvRnJhbWU+IFNoYXJlZFZpZGVvRnJhbWVXcml0ZXI6OndyaXRlKE1lZGlhU2Ft
cGxlJiBmcmFtZSwgY29uc3QgRnVuY3Rpb248dm9pZChJUEM6OlNlbWFwaG9yZSYpPiYgbmV3U2Vt
YXBob3JlQ2FsbGJhY2ssIGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3QgU2hhcmVkTWVtb3J5OjpJ
UENIYW5kbGUmKT4mIG5ld01lbW9yeUNhbGxiYWNrKQogewotICAgIFNoYXJlZFZpZGVvRnJhbWUg
c2hhcmVkVmlkZW9GcmFtZSB7IGZyYW1lLnByZXNlbnRhdGlvblRpbWUoKSwgZnJhbWUudmlkZW9N
aXJyb3JlZCgpLCBmcmFtZS52aWRlb1JvdGF0aW9uKCksIG51bGxwdHIgfTsKLSAgICBpZiAoaXM8
UmVtb3RlVmlkZW9GcmFtZVByb3h5PihmcmFtZSkpIHsKLSAgICAgICAgc2hhcmVkVmlkZW9GcmFt
ZS5idWZmZXIgPSBkb3duY2FzdDxSZW1vdGVWaWRlb0ZyYW1lUHJveHk+KGZyYW1lKS5uZXdSZWFk
UmVmZXJlbmNlKCk7Ci0gICAgICAgIHJldHVybiBzaGFyZWRWaWRlb0ZyYW1lOwotICAgIH0KLSAg
ICBpZiAoaXM8TWVkaWFTYW1wbGVBVkZPYmpDPihmcmFtZSkpIHsKLSAgICAgICAgaWYgKGF1dG8g
cGl4ZWxCdWZmZXIgPSBkb3duY2FzdDxNZWRpYVNhbXBsZUFWRk9iakM+KGZyYW1lKS5waXhlbEJ1
ZmZlcigpKSB7Ci0gICAgICAgICAgICBpZiAoYXV0byBzdXJmYWNlID0gQ1ZQaXhlbEJ1ZmZlckdl
dElPU3VyZmFjZShwaXhlbEJ1ZmZlcikpIHsKLSAgICAgICAgICAgICAgICBzaGFyZWRWaWRlb0Zy
YW1lLmJ1ZmZlciA9IE1hY2hTZW5kUmlnaHQ6OmFkb3B0KElPU3VyZmFjZUNyZWF0ZU1hY2hQb3J0
KHN1cmZhY2UpKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gc2hhcmVkVmlkZW9GcmFtZTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAoIXdyaXRlKGZyYW1lLnBpeGVs
QnVmZmVyKCksIG5ld1NlbWFwaG9yZUNhbGxiYWNrLCBuZXdNZW1vcnlDYWxsYmFjaykpCisgICAg
YXV0byBidWZmZXIgPSB3cml0ZUJ1ZmZlcihmcmFtZSwgbmV3U2VtYXBob3JlQ2FsbGJhY2ssIG5l
d01lbW9yeUNhbGxiYWNrKTsKKyAgICBpZiAoIWJ1ZmZlcikKICAgICAgICAgcmV0dXJuIHsgfTsK
LSAgICByZXR1cm4gc2hhcmVkVmlkZW9GcmFtZTsKKyAgICByZXR1cm4gU2hhcmVkVmlkZW9GcmFt
ZSB7IGZyYW1lLnByZXNlbnRhdGlvblRpbWUoKSwgZnJhbWUudmlkZW9NaXJyb3JlZCgpLCBmcmFt
ZS52aWRlb1JvdGF0aW9uKCksIFdURk1vdmUoKmJ1ZmZlcikgfTsKIH0KIAotYm9vbCBTaGFyZWRW
aWRlb0ZyYW1lV3JpdGVyOjp3cml0ZShDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCBjb25z
dCBGdW5jdGlvbjx2b2lkKElQQzo6U2VtYXBob3JlJik+JiBuZXdTZW1hcGhvcmVDYWxsYmFjaywg
Y29uc3QgRnVuY3Rpb248dm9pZChjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYpPiYgbmV3
TWVtb3J5Q2FsbGJhY2spCitzdGQ6Om9wdGlvbmFsPFNoYXJlZFZpZGVvRnJhbWU6OkJ1ZmZlcj4g
U2hhcmVkVmlkZW9GcmFtZVdyaXRlcjo6d3JpdGVCdWZmZXIoTWVkaWFTYW1wbGUmIGZyYW1lLCBj
b25zdCBGdW5jdGlvbjx2b2lkKElQQzo6U2VtYXBob3JlJik+JiBuZXdTZW1hcGhvcmVDYWxsYmFj
aywgY29uc3QgRnVuY3Rpb248dm9pZChjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYpPiYg
bmV3TWVtb3J5Q2FsbGJhY2spCiB7CisgICAgaWYgKGlzPFJlbW90ZVZpZGVvRnJhbWVQcm94eT4o
ZnJhbWUpKQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8UmVtb3RlVmlkZW9GcmFtZVByb3h5Pihm
cmFtZSkubmV3UmVhZFJlZmVyZW5jZSgpOworCisgICAgcmV0dXJuIHdyaXRlQnVmZmVyKGZyYW1l
LnBpeGVsQnVmZmVyKCksIG5ld1NlbWFwaG9yZUNhbGxiYWNrLCBuZXdNZW1vcnlDYWxsYmFjayk7
Cit9CisKK3N0ZDo6b3B0aW9uYWw8U2hhcmVkVmlkZW9GcmFtZTo6QnVmZmVyPiBTaGFyZWRWaWRl
b0ZyYW1lV3JpdGVyOjp3cml0ZUJ1ZmZlcihDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCBj
b25zdCBGdW5jdGlvbjx2b2lkKElQQzo6U2VtYXBob3JlJik+JiBuZXdTZW1hcGhvcmVDYWxsYmFj
aywgY29uc3QgRnVuY3Rpb248dm9pZChjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYpPiYg
bmV3TWVtb3J5Q2FsbGJhY2ssIGJvb2wgY2FuVXNlSU9TdXJmYWNlKQoreworICAgIGlmICghcGl4
ZWxCdWZmZXIpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoY2FuVXNlSU9TdXJmYWNl
KSB7CisgICAgICAgIGlmIChhdXRvIHN1cmZhY2UgPSBDVlBpeGVsQnVmZmVyR2V0SU9TdXJmYWNl
KHBpeGVsQnVmZmVyKSkKKyAgICAgICAgICAgIHJldHVybiBNYWNoU2VuZFJpZ2h0OjphZG9wdChJ
T1N1cmZhY2VDcmVhdGVNYWNoUG9ydChzdXJmYWNlKSk7CisgICAgfQorCiAgICAgYXV0byBpbmZv
ID0gU2hhcmVkVmlkZW9GcmFtZUluZm86OmZyb21DVlBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyKTsK
ICAgICBpZiAoIXByZXBhcmVXcml0aW5nKGluZm8sIG5ld1NlbWFwaG9yZUNhbGxiYWNrLCBuZXdN
ZW1vcnlDYWxsYmFjaykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHsg
fTsKIAotICAgIHJldHVybiBpbmZvLndyaXRlUGl4ZWxCdWZmZXIocGl4ZWxCdWZmZXIsIHN0YXRp
Y19jYXN0PHVpbnQ4X3QqPihtX3N0b3JhZ2UtPmRhdGEoKSkpOworICAgIGlmICghaW5mby53cml0
ZVBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyLCBzdGF0aWNfY2FzdDx1aW50OF90Kj4obV9zdG9yYWdl
LT5kYXRhKCkpKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0K
IAogI2lmIFVTRShMSUJXRUJSVEMpCi1ib29sIFNoYXJlZFZpZGVvRnJhbWVXcml0ZXI6OndyaXRl
KGNvbnN0IHdlYnJ0Yzo6VmlkZW9GcmFtZSYgZnJhbWUsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoSVBD
OjpTZW1hcGhvcmUmKT4mIG5ld1NlbWFwaG9yZUNhbGxiYWNrLCBjb25zdCBGdW5jdGlvbjx2b2lk
KGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJik+JiBuZXdNZW1vcnlDYWxsYmFjaykKK3N0
ZDo6b3B0aW9uYWw8U2hhcmVkVmlkZW9GcmFtZTo6QnVmZmVyPiBTaGFyZWRWaWRlb0ZyYW1lV3Jp
dGVyOjp3cml0ZUJ1ZmZlcihjb25zdCB3ZWJydGM6OlZpZGVvRnJhbWUmIGZyYW1lLCBjb25zdCBG
dW5jdGlvbjx2b2lkKElQQzo6U2VtYXBob3JlJik+JiBuZXdTZW1hcGhvcmVDYWxsYmFjaywgY29u
c3QgRnVuY3Rpb248dm9pZChjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYpPiYgbmV3TWVt
b3J5Q2FsbGJhY2spCiB7CisgICAgaWYgKGF1dG8qIHByb3ZpZGVyID0gd2VicnRjOjp2aWRlb0Zy
YW1lQnVmZmVyUHJvdmlkZXIoZnJhbWUpKQorICAgICAgICByZXR1cm4gd3JpdGVCdWZmZXIoKnN0
YXRpY19jYXN0PFZpZGVvRnJhbWUqPihwcm92aWRlciksIG5ld1NlbWFwaG9yZUNhbGxiYWNrLCBu
ZXdNZW1vcnlDYWxsYmFjayk7CisKKyAgICBpZiAoYXV0byBwaXhlbEJ1ZmZlciA9IGFkb3B0Q0Yo
d2VicnRjOjpwaXhlbEJ1ZmZlckZyb21GcmFtZShmcmFtZSkpKQorICAgICAgICByZXR1cm4gd3Jp
dGVCdWZmZXIocGl4ZWxCdWZmZXIuZ2V0KCksIG5ld1NlbWFwaG9yZUNhbGxiYWNrLCBuZXdNZW1v
cnlDYWxsYmFjayk7CisKICAgICBhdXRvIGluZm8gPSBTaGFyZWRWaWRlb0ZyYW1lSW5mbzo6ZnJv
bVZpZGVvRnJhbWUoZnJhbWUpOwogICAgIGlmICghcHJlcGFyZVdyaXRpbmcoaW5mbywgbmV3U2Vt
YXBob3JlQ2FsbGJhY2ssIG5ld01lbW9yeUNhbGxiYWNrKSkKICAgICAgICAgcmV0dXJuIHsgfTsK
IAotICAgIHJldHVybiBpbmZvLndyaXRlVmlkZW9GcmFtZShmcmFtZSwgc3RhdGljX2Nhc3Q8dWlu
dDhfdCo+KG1fc3RvcmFnZS0+ZGF0YSgpKSk7CisgICAgaWYgKCFpbmZvLndyaXRlVmlkZW9GcmFt
ZShmcmFtZSwgc3RhdGljX2Nhc3Q8dWludDhfdCo+KG1fc3RvcmFnZS0+ZGF0YSgpKSkpCisgICAg
ICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAjZW5kaWYKIApAQCAtMTQz
LDcgKzE1OCw3IEBAIFNoYXJlZFZpZGVvRnJhbWVSZWFkZXI6OlNoYXJlZFZpZGVvRnJhbWVSZWFk
ZXIoUmVmUHRyPFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwCiAKIFNoYXJlZFZpZGVvRnJhbWVS
ZWFkZXI6OlNoYXJlZFZpZGVvRnJhbWVSZWFkZXIoKSA9IGRlZmF1bHQ7CiAKLVJldGFpblB0cjxD
VlBpeGVsQnVmZmVyUmVmPiBTaGFyZWRWaWRlb0ZyYW1lUmVhZGVyOjpyZWFkKCkKK1JldGFpblB0
cjxDVlBpeGVsQnVmZmVyUmVmPiBTaGFyZWRWaWRlb0ZyYW1lUmVhZGVyOjpyZWFkQnVmZmVyRnJv
bVNoYXJlZE1lbW9yeSgpCiB7CiAgICAgaWYgKCFtX3N0b3JhZ2UpCiAgICAgICAgIHJldHVybiB7
IH07CkBAIC0xNjksOSArMTg0LDkgQEAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFNoYXJl
ZFZpZGVvRnJhbWVSZWFkZXI6OnJlYWQoKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVJlZlB0
cjxNZWRpYVNhbXBsZT4gU2hhcmVkVmlkZW9GcmFtZVJlYWRlcjo6cmVhZChTaGFyZWRWaWRlb0Zy
YW1lJiYgc2hhcmVkVmlkZW9GcmFtZSkKK1JldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBTaGFy
ZWRWaWRlb0ZyYW1lUmVhZGVyOjpyZWFkQnVmZmVyKFNoYXJlZFZpZGVvRnJhbWU6OkJ1ZmZlciYm
IGJ1ZmZlcikKIHsKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3dpdGNoT24oV1RGTW92ZShzaGFy
ZWRWaWRlb0ZyYW1lLmJ1ZmZlciksCisgICAgcmV0dXJuIHN3aXRjaE9uKFdURk1vdmUoYnVmZmVy
KSwKICAgICBbdGhpc10oUmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UmJiByZWZlcmVuY2Up
IC0+IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiB7CiAgICAgICAgIEFTU0VSVChtX29iamVj
dEhlYXApOwogICAgICAgICBpZiAoIW1fb2JqZWN0SGVhcCkKQEAgLTE4OCw3ICsyMDMsNyBAQCBS
ZWZQdHI8TWVkaWFTYW1wbGU+IFNoYXJlZFZpZGVvRnJhbWVSZWFkZXI6OnJlYWQoU2hhcmVkVmlk
ZW9GcmFtZSYmIHNoYXJlZFZpZGVvRgogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
ICAgIHJldHVybiBXZWJDb3JlOjpjcmVhdGVDVlBpeGVsQnVmZmVyKHN1cmZhY2UtPnN1cmZhY2Uo
KSkudmFsdWVfb3IobnVsbHB0cik7CiAgICAgfSwgW3RoaXNdKHN0ZDo6bnVsbHB0cl90IHJlcHJl
c2VudGF0aW9uKSAtPiBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gewotICAgICAgICByZXR1
cm4gcmVhZCgpOworICAgICAgICByZXR1cm4gcmVhZEJ1ZmZlckZyb21TaGFyZWRNZW1vcnkoKTsK
ICAgICB9LCBbdGhpc10oSW50U2l6ZSBzaXplKSAtPiBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJl
Zj4gewogICAgICAgICBpZiAobV9ibGFja0ZyYW1lU2l6ZSAhPSBzaXplKSB7CiAgICAgICAgICAg
ICBtX2JsYWNrRnJhbWVTaXplID0gc2l6ZTsKQEAgLTE5OCw3ICsyMTMsMTEgQEAgUmVmUHRyPE1l
ZGlhU2FtcGxlPiBTaGFyZWRWaWRlb0ZyYW1lUmVhZGVyOjpyZWFkKFNoYXJlZFZpZGVvRnJhbWUm
JiBzaGFyZWRWaWRlb0YKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9ibGFja0ZyYW1lLmdl
dCgpOwogICAgIH0pOworfQogCitSZWZQdHI8TWVkaWFTYW1wbGU+IFNoYXJlZFZpZGVvRnJhbWVS
ZWFkZXI6OnJlYWQoU2hhcmVkVmlkZW9GcmFtZSYmIHNoYXJlZFZpZGVvRnJhbWUpCit7CisgICAg
YXV0byBwaXhlbEJ1ZmZlciA9IHJlYWRCdWZmZXIoV1RGTW92ZShzaGFyZWRWaWRlb0ZyYW1lLmJ1
ZmZlcikpOwogICAgIGlmICghcGl4ZWxCdWZmZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRW
aWRlb0ZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRW
aWRlb0ZyYW1lLmgKaW5kZXggNTkwNDdmY2ZiYzBiNjUxMjlmNjM2ODg4YjMxNWIyY2U4ZmRmMjNj
Yy4uNWFiNDZlODA2NjM1NDE2ZTZmZDRhMGVjYzE5ZDQ1ZjEyMzAxZDc3OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9GcmFtZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUu
aApAQCAtNTUsNyArNTUsOCBAQCBzdHJ1Y3QgU2hhcmVkVmlkZW9GcmFtZSB7CiAgICAgTWVkaWFU
aW1lIHRpbWU7CiAgICAgYm9vbCBtaXJyb3JlZCB7IGZhbHNlIH07CiAgICAgV2ViQ29yZTo6TWVk
aWFTYW1wbGU6OlZpZGVvUm90YXRpb24gcm90YXRpb24geyBXZWJDb3JlOjpNZWRpYVNhbXBsZTo6
VmlkZW9Sb3RhdGlvbjo6Tm9uZSB9OwotICAgIHN0ZDo6dmFyaWFudDxzdGQ6Om51bGxwdHJfdCwg
UmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UsIE1hY2hTZW5kUmlnaHQsIFdlYkNvcmU6Oklu
dFNpemU+IGJ1ZmZlcjsKKyAgICB1c2luZyBCdWZmZXIgPSBzdGQ6OnZhcmlhbnQ8c3RkOjpudWxs
cHRyX3QsIFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlLCBNYWNoU2VuZFJpZ2h0LCBXZWJD
b3JlOjpJbnRTaXplPjsKKyAgICBCdWZmZXIgYnVmZmVyOwogCiAgICAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNoYXJlZFZpZGVvRnJhbWU+IGRlY29kZShE
ZWNvZGVyJik7CkBAIC02Nyw5ICs2OCw5IEBAIHB1YmxpYzoKICAgICBTaGFyZWRWaWRlb0ZyYW1l
V3JpdGVyKCk7CiAKICAgICBzdGQ6Om9wdGlvbmFsPFNoYXJlZFZpZGVvRnJhbWU+IHdyaXRlKFdl
YkNvcmU6Ok1lZGlhU2FtcGxlJiwgY29uc3QgRnVuY3Rpb248dm9pZChJUEM6OlNlbWFwaG9yZSYp
PiYsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmKT4m
KTsKLSAgICBib29sIHdyaXRlKENWUGl4ZWxCdWZmZXJSZWYsIGNvbnN0IEZ1bmN0aW9uPHZvaWQo
SVBDOjpTZW1hcGhvcmUmKT4mLCBjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0IFNoYXJlZE1lbW9y
eTo6SVBDSGFuZGxlJik+Jik7CisgICAgc3RkOjpvcHRpb25hbDxTaGFyZWRWaWRlb0ZyYW1lOjpC
dWZmZXI+IHdyaXRlQnVmZmVyKENWUGl4ZWxCdWZmZXJSZWYsIGNvbnN0IEZ1bmN0aW9uPHZvaWQo
SVBDOjpTZW1hcGhvcmUmKT4mLCBjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0IFNoYXJlZE1lbW9y
eTo6SVBDSGFuZGxlJik+JiwgYm9vbCBjYW5TZW5kSU9TdXJmYWNlID0gdHJ1ZSk7CiAjaWYgVVNF
KExJQldFQlJUQykKLSAgICBib29sIHdyaXRlKGNvbnN0IHdlYnJ0Yzo6VmlkZW9GcmFtZSYsIGNv
bnN0IEZ1bmN0aW9uPHZvaWQoSVBDOjpTZW1hcGhvcmUmKT4mLCBjb25zdCBGdW5jdGlvbjx2b2lk
KGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJik+Jik7CisgICAgc3RkOjpvcHRpb25hbDxT
aGFyZWRWaWRlb0ZyYW1lOjpCdWZmZXI+IHdyaXRlQnVmZmVyKGNvbnN0IHdlYnJ0Yzo6VmlkZW9G
cmFtZSYsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoSVBDOjpTZW1hcGhvcmUmKT4mLCBjb25zdCBGdW5j
dGlvbjx2b2lkKGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJik+Jik7CiAjZW5kaWYKICAg
ICB2b2lkIGRpc2FibGUoKTsKIApAQCAtNzcsNiArNzgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
d2FpdChjb25zdCBGdW5jdGlvbjx2b2lkKElQQzo6U2VtYXBob3JlJik+Jik7CiAgICAgYm9vbCBh
bGxvY2F0ZVN0b3JhZ2Uoc2l6ZV90LCBjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0IFNoYXJlZE1l
bW9yeTo6SVBDSGFuZGxlJik+Jik7CiAgICAgYm9vbCBwcmVwYXJlV3JpdGluZyhjb25zdCBXZWJD
b3JlOjpTaGFyZWRWaWRlb0ZyYW1lSW5mbyYsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoSVBDOjpTZW1h
cGhvcmUmKT4mLCBjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFu
ZGxlJik+Jik7CisgICAgc3RkOjpvcHRpb25hbDxTaGFyZWRWaWRlb0ZyYW1lOjpCdWZmZXI+IHdy
aXRlQnVmZmVyKFdlYkNvcmU6Ok1lZGlhU2FtcGxlJiwgY29uc3QgRnVuY3Rpb248dm9pZChJUEM6
OlNlbWFwaG9yZSYpPiYsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3QgU2hhcmVkTWVtb3J5OjpJ
UENIYW5kbGUmKT4mKTsKIAogICAgIFVuaXF1ZVJlZjxJUEM6OlNlbWFwaG9yZT4gbV9zZW1hcGhv
cmU7CiAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbV9zdG9yYWdlOwpAQCAtOTQsMTEgKzk2LDEy
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNlbWFwaG9yZShJUEM6OlNlbWFwaG9yZSYmIHNlbWFw
aG9yZSkgeyBtX3NlbWFwaG9yZSA9IFdURk1vdmUoc2VtYXBob3JlKTsgfQogICAgIGJvb2wgc2V0
U2hhcmVkTWVtb3J5KGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJik7CiAKLSAgICBSZXRh
aW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcmVhZCgpOwogICAgIFJlZlB0cjxXZWJDb3JlOjpNZWRp
YVNhbXBsZT4gcmVhZChTaGFyZWRWaWRlb0ZyYW1lJiYpOworICAgIFJldGFpblB0cjxDVlBpeGVs
QnVmZmVyUmVmPiByZWFkQnVmZmVyKFNoYXJlZFZpZGVvRnJhbWU6OkJ1ZmZlciYmKTsKIAogcHJp
dmF0ZToKICAgICBDVlBpeGVsQnVmZmVyUG9vbFJlZiBwaXhlbEJ1ZmZlclBvb2woY29uc3QgV2Vi
Q29yZTo6U2hhcmVkVmlkZW9GcmFtZUluZm8mKTsKKyAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZl
clJlZj4gcmVhZEJ1ZmZlckZyb21TaGFyZWRNZW1vcnkoKTsKIAogICAgIFJlZlB0cjxSZW1vdGVW
aWRlb0ZyYW1lT2JqZWN0SGVhcD4gbV9vYmplY3RIZWFwOwogICAgIFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGl0eSBtX3Jlc291cmNlT3duZXI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453488</attachid>
            <date>2022-03-01 04:01:11 -0800</date>
            <delta_ts>2022-03-01 07:15:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237267-20220301130108.patch</filename>
            <type>text/plain</type>
            <size>36073</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA1M2YyZTg5MzhjY2UzMDIy
MGQ5NTlhMjNjNTNlZmQ3N2JkZTNlZTcuLjlmOTI1ZTYzNWUxYmZmY2EwZjBjZmY5NGYxNmI2ZDJh
ZjY1ODk2Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDMtMDEgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSByb3V0aW5lcyB0
byBleGNoYW5nZSBTaGFyZWRWaWRlb0ZyYW1lOjpCdWZmZXIgZGlyZWN0bHkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzI2NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERlZmluZSBleHBsaWN0bHkgU2hh
cmVkVmlkZW9GcmFtZTo6QnVmZmVyIGFzIFZhcmlhbnQgb2YgdGhlIHZhcmlvdXMgYnVmZmVyIHJl
cHJlc2VudGF0aW9ucy4KKyAgICAgICAgVGhpcyBhbGxvd3MgdG8gbW92ZSBtb3JlIGNvZGUgaW4g
U2hhcmVkVmlkZW9GcmFtZSBmb3IgaW5zdGFuY2UgYnkgYWRkaW5nIGRpcmVjdCBzdXBwb3J0IG9m
IHNlbmRpbmcgd2VicnRjOjpWaWRlb0ZyYW1lIGJ1ZmZlcnMgaW4gU2hhcmVkVmlkZW9GcmFtZS4K
KyAgICAgICAgUmV1c2UgdGhhdCBjb2RlIGluIExpYldlYlJUQ0NvZGVjcyBhcyBhIHJlZmFjdG9y
aW5nL3NpbXBsaWZpY2F0aW9uLgorICAgICAgICBSZXVzZSB0aGF0IGNvZGUgaW4gUmVtb3RlVmlk
ZW9GcmFtZU9iamVjdEhlYXAgd2hpY2ggYWxsb3dzIHRvIGV4Y2hhbmdlIElPU3VyZmFjZXMgaW4g
Y2FzZSBXZWJQcm9jZXNzIGNhbiB1c2UgdGhlbS4KKyAgICAgICAgVGhpcyBpcyB1c2VkIHdoZW4g
ZW5jb2Rpbmcgc3VjaCBmcmFtZXMgdXNpbmcgc29mdHdhcmUgZW5jb2RlcnMuCisKKyAgICAgICAg
Q292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuY3BwOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQ
VVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lmg6CisgICAgICAgICogR1BVUHJv
Y2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
R1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW06CisgICAgICAgICogV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93
ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29y
LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9i
amVjdEhlYXBQcm94eVByb2Nlc3Nvci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmNwcDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9GcmFtZS5oOgorCiAyMDIy
LTAzLTAxICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIE1pZ3Jh
dGUgdGhpcmQtcGFydHkgSW5kZXhlZERCIGRhdGEgdG8gR2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0Zy
YW1lT2JqZWN0SGVhcC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXAuY3BwCmluZGV4IGY4ZTdjZjFhNTgyN2YyOWQ4YmY4YjNmMThj
YzAzOWE0OTlhZTU5ODcuLjJjZjY3YTcxMjIzMDJjMTZmZjVlZGZhYWJmNTUzYTY2YWJjYTE0MDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0Zy
YW1lT2JqZWN0SGVhcC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmNwcApAQCAtMTAxLDQyICsxMDEsMjkgQEAgdm9pZCBS
ZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcDo6cmVsZWFzZVZpZGVvRnJhbWUoUmVtb3RlVmlkZW9G
cmFtZVdyaXRlUmVmZXJlbmMKIH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQotdm9pZCBSZW1vdGVW
aWRlb0ZyYW1lT2JqZWN0SGVhcDo6Z2V0VmlkZW9GcmFtZUJ1ZmZlcihSZW1vdGVWaWRlb0ZyYW1l
UmVhZFJlZmVyZW5jZSYmIHJlYWQpCit2b2lkIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOjpn
ZXRWaWRlb0ZyYW1lQnVmZmVyKFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlJiYgcmVhZCwg
Ym9vbCBjYW5TZW5kSU9TdXJmYWNlKQogewogICAgIGFzc2VydElzQ3VycmVudChyZW1vdGVWaWRl
b0ZyYW1lT2JqZWN0SGVhcFF1ZXVlKCkpOwogCiAgICAgYXV0byBpZGVudGlmaWVyID0gcmVhZC5p
ZGVudGlmaWVyKCk7Ci0gICAgYXV0byB2aWRlb0ZyYW1lID0gbV9oZWFwLnJldGlyZShXVEZNb3Zl
KHJlYWQpLCAwX3MpOwotCi0gICAgaWYgKCF2aWRlb0ZyYW1lKSB7Ci0gICAgICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nl
c3Nvcjo6VmlkZW9GcmFtZUJ1ZmZlck5vdEZvdW5kIHsgaWRlbnRpZmllciB9LCAwKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSB2aWRlb0ZyYW1lLT5w
aXhlbEJ1ZmZlcigpOwotICAgIGlmICghcGl4ZWxCdWZmZXIpIHsKLSAgICAgICAgbV9jb25uZWN0
aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vz
c29yOjpWaWRlb0ZyYW1lQnVmZmVyTm90Rm91bmQgeyBpZGVudGlmaWVyIH0sIDApOwotICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGJv
b2wgcmVzdWx0ID0gbV9zaGFyZWRWaWRlb0ZyYW1lV3JpdGVyLndyaXRlKHBpeGVsQnVmZmVyLAot
ICAgICAgICBbJl0oYXV0byYgc2VtYXBob3JlKSB7IG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvcjo6U2V0U2hhcmVkVmlk
ZW9GcmFtZVNlbWFwaG9yZSB7IHNlbWFwaG9yZSB9LCAwKTsgfSwKLSAgICAgICAgWyZdKGF1dG8m
IGhhbmRsZSkgeyBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVZpZGVvRnJhbWVP
YmplY3RIZWFwUHJveHlQcm9jZXNzb3I6OlNldFNoYXJlZFZpZGVvRnJhbWVNZW1vcnkgeyBoYW5k
bGUgfSwgMCk7IH0KLSAgICApOwotICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgQVNTRVJUX05PVF9SRUFDSEVEIG9uY2Ugd2Ugc3VwcG9ydCBlbm91Z2ggcGl4
ZWwgYnVmZmVyIHR5cGVzLgotICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJl
bW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3I6OlZpZGVvRnJhbWVCdWZmZXJO
b3RGb3VuZCB7IGlkZW50aWZpZXIgfSwgMCk7Ci0gICAgICAgIHJldHVybjsKKyAgICBhdXRvIHZp
ZGVvRnJhbWUgPSBnZXQoV1RGTW92ZShyZWFkKSk7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFNoYXJl
ZFZpZGVvRnJhbWU6OkJ1ZmZlcj4gYnVmZmVyOworICAgIGlmICh2aWRlb0ZyYW1lKSB7CisgICAg
ICAgIGJ1ZmZlciA9IG1fc2hhcmVkVmlkZW9GcmFtZVdyaXRlci53cml0ZUJ1ZmZlcih2aWRlb0Zy
YW1lLT5waXhlbEJ1ZmZlcigpLAorICAgICAgICAgICAgWyZdKGF1dG8mIHNlbWFwaG9yZSkgeyBt
X2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJv
eHlQcm9jZXNzb3I6OlNldFNoYXJlZFZpZGVvRnJhbWVTZW1hcGhvcmUgeyBzZW1hcGhvcmUgfSwg
MCk7IH0sCisgICAgICAgICAgICBbJl0oYXV0byYgaGFuZGxlKSB7IG1fY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvcjo6U2V0
U2hhcmVkVmlkZW9GcmFtZU1lbW9yeSB7IGhhbmRsZSB9LCAwKTsgfSwKKyAgICAgICAgICAgIGNh
blNlbmRJT1N1cmZhY2UpOworICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIEFTU0VSVChyZXN1
bHQpIG9uY2Ugd2Ugc3VwcG9ydCBlbm91Z2ggcGl4ZWwgYnVmZmVyIHR5cGVzLgogICAgIH0KLSAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFw
UHJveHlQcm9jZXNzb3I6Ok5ld1ZpZGVvRnJhbWVCdWZmZXIgeyBpZGVudGlmaWVyIH0sIDApOwor
ICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXBQcm94eVByb2Nlc3Nvcjo6TmV3VmlkZW9GcmFtZUJ1ZmZlciB7IGlkZW50aWZpZXIsICpidWZm
ZXIgfSwgMCk7CiB9CiAKIHZvaWQgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXA6OnBpeGVsQnVm
ZmVyKFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlJiYgcmVhZCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4pPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIGFzc2VydElzQ3VycmVudChyZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFF1ZXVl
KCkpOwogCi0gICAgYXV0byB2aWRlb0ZyYW1lID0gbV9oZWFwLnJldGlyZShXVEZNb3ZlKHJlYWQp
LCAwX3MpOworICAgIGF1dG8gdmlkZW9GcmFtZSA9IGdldChXVEZNb3ZlKHJlYWQpKTsKICAgICBp
ZiAoIXZpZGVvRnJhbWUpIHsKICAgICAgICAgQVNTRVJUX0lTX1RFU1RJTkdfSVBDKCk7CiAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKG51bGxwdHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmggYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuaAppbmRl
eCAxYmI0ZTBhNDNlMTFmN2YxYTg5MGU2OWM3NGU3Y2E4OTQ0YjE4ZmUzLi41M2VkNTZlMGFlMGRl
ZWY2MTU0YzhjZTA0YTliMTZjZjE1MGU2OGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuaApAQCAt
NTksNyArNTksNyBAQCBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2VzLgogICAgIHZvaWQgcmVsZWFz
ZVZpZGVvRnJhbWUoUmVtb3RlVmlkZW9GcmFtZVdyaXRlUmVmZXJlbmNlJiYpOwogI2lmIFBMQVRG
T1JNKENPQ09BKQotICAgIHZvaWQgZ2V0VmlkZW9GcmFtZUJ1ZmZlcihSZW1vdGVWaWRlb0ZyYW1l
UmVhZFJlZmVyZW5jZSYmKTsKKyAgICB2b2lkIGdldFZpZGVvRnJhbWVCdWZmZXIoUmVtb3RlVmlk
ZW9GcmFtZVJlYWRSZWZlcmVuY2UmJiwgYm9vbCBjYW5TZW5kSU9TdXJmYWNlKTsKICAgICB2b2lk
IHBpeGVsQnVmZmVyKFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlJiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+KT4mJik7CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLm1lc3NhZ2VzLmluCmluZGV4IDZmYThhYTJiY2Mz
NDQ4ZmRmNWQxNWUwZWMxOTdmNGQ4N2FiYzdiYmUuLmViOWE2OTZjMjgxOTliMGM0NjllYjIwYjQ1
ZGI3MmMyMmY3ZTI2N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAubWVzc2FnZXMu
aW4KQEAgLTI0LDcgKzI0LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShW
SURFTykKIG1lc3NhZ2VzIC0+IFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwIE5vdFJlZkNvdW50
ZWQgewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIEdldFZpZGVvRnJhbWVCdWZmZXIoV2ViS2l0
OjpSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSByZWFkKQorICAgIEdldFZpZGVvRnJhbWVC
dWZmZXIoV2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSByZWFkLCBib29sIGNh
blNlbmRJT1N1cmZhY2UpCiAgICAgUGl4ZWxCdWZmZXIoV2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1l
UmVhZFJlZmVyZW5jZSByZWFkKSAtPiAoUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHJlc3Vs
dCkgU3luY2hyb25vdXMKICNlbmRpZgogICAgIFJlbGVhc2VWaWRlb0ZyYW1lKFdlYktpdDo6UmVt
b3RlVmlkZW9GcmFtZVdyaXRlUmVmZXJlbmNlIHdyaXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oCmluZGV4IDg3NGZm
NjgzYmE3ZmU0YmEwYTBlNTI3ODkwZDZmODY2NTJmM2Y5ODAuLjE5MjY3MzhmOWUwMjgxOWM3ZjRm
YjlkYzhhZTUzNTk5M2MwNGU5MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5LmgKQEAgLTg4LDcgKzg4LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGNyZWF0ZUVuY29kZXIoUlRDRW5jb2RlcklkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYsIGJvb2wg
dXNlTG93TGF0ZW5jeSk7CiAgICAgdm9pZCByZWxlYXNlRW5jb2RlcihSVENFbmNvZGVySWRlbnRp
Zmllcik7CiAgICAgdm9pZCBpbml0aWFsaXplRW5jb2RlcihSVENFbmNvZGVySWRlbnRpZmllciwg
dWludDE2X3Qgd2lkdGgsIHVpbnQxNl90IGhlaWdodCwgdW5zaWduZWQgc3RhcnRCaXRyYXRlLCB1
bnNpZ25lZCBtYXhCaXRyYXRlLCB1bnNpZ25lZCBtaW5CaXRyYXRlLCB1aW50MzJfdCBtYXhGcmFt
ZXJhdGUpOwotICAgIHZvaWQgZW5jb2RlRnJhbWUoUlRDRW5jb2RlcklkZW50aWZpZXIsIFdlYkNv
cmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYsIHVpbnQzMl90IHRpbWVTdGFtcCwgYm9vbCBzaG91bGRF
bmNvZGVBc0tleUZyYW1lLCBzdGQ6Om9wdGlvbmFsPFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJl
bmNlPik7CisgICAgdm9pZCBlbmNvZGVGcmFtZShSVENFbmNvZGVySWRlbnRpZmllciwgU2hhcmVk
VmlkZW9GcmFtZSYmLCB1aW50MzJfdCB0aW1lU3RhbXAsIGJvb2wgc2hvdWxkRW5jb2RlQXNLZXlG
cmFtZSk7CiAgICAgdm9pZCBzZXRFbmNvZGVSYXRlcyhSVENFbmNvZGVySWRlbnRpZmllciwgdWlu
dDMyX3QgYml0UmF0ZSwgdWludDMyX3QgZnJhbWVSYXRlKTsKICAgICB2b2lkIHNldFNoYXJlZFZp
ZGVvRnJhbWVTZW1hcGhvcmUoUlRDRW5jb2RlcklkZW50aWZpZXIsIElQQzo6U2VtYXBob3JlJiYp
OwogICAgIHZvaWQgc2V0U2hhcmVkVmlkZW9GcmFtZU1lbW9yeShSVENFbmNvZGVySWRlbnRpZmll
ciwgY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1l
c3NhZ2VzLmluCmluZGV4IGRmYWY0YTI2YmQxZTMxMjE5MDM0YWJiMDY1MmRlMjNkOWNlMmQxYWEu
LmU2NDlkNzE0YTc3MjM4M2EyM2FiMDYzY2FmZjFiY2ZhN2E0NDBjY2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2Rl
Y3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzQsNyArMzQsNyBAQCBtZXNzYWdlcyAtPiBMaWJXZWJS
VENDb2RlY3NQcm94eSBOb3RSZWZDb3VudGVkIHsKICAgICBDcmVhdGVFbmNvZGVyKFdlYktpdDo6
UlRDRW5jb2RlcklkZW50aWZpZXIgaWQsIFN0cmluZyBmb3JtYXROYW1lLCBWZWN0b3I8c3RkOjpw
YWlyPFN0cmluZywgU3RyaW5nPj4gcGFyYW1ldGVycywgYm9vbCB1c2VMb3dMYXRlbmN5KTsKICAg
ICBSZWxlYXNlRW5jb2RlcihXZWJLaXQ6OlJUQ0VuY29kZXJJZGVudGlmaWVyIGlkKQogICAgIElu
aXRpYWxpemVFbmNvZGVyKFdlYktpdDo6UlRDRW5jb2RlcklkZW50aWZpZXIgaWQsIHVpbnQxNl90
IHdpZHRoLCB1aW50MTZfdCBoZWlnaHQsIHVuc2lnbmVkIHN0YXJ0Qml0cmF0ZSwgdW5zaWduZWQg
bWF4Qml0cmF0ZSwgdW5zaWduZWQgbWluQml0cmF0ZSwgdWludDMyX3QgbWF4RnJhbWVyYXRlKQot
ICAgIEVuY29kZUZyYW1lKFdlYktpdDo6UlRDRW5jb2RlcklkZW50aWZpZXIgaWQsIFdlYkNvcmU6
OlJlbW90ZVZpZGVvU2FtcGxlIHNhbXBsZSwgdWludDMyX3QgdGltZVN0YW1wLCBib29sIHNob3Vs
ZEVuY29kZUFzS2V5RnJhbWUsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1l
UmVhZFJlZmVyZW5jZT4gc2FtcGxlUmVmZXJlbmNlKQorICAgIEVuY29kZUZyYW1lKFdlYktpdDo6
UlRDRW5jb2RlcklkZW50aWZpZXIgaWQsIHN0cnVjdCBXZWJLaXQ6OlNoYXJlZFZpZGVvRnJhbWUg
YnVmZmVyLCB1aW50MzJfdCB0aW1lU3RhbXAsIGJvb2wgc2hvdWxkRW5jb2RlQXNLZXlGcmFtZSkK
ICAgICBTZXRFbmNvZGVSYXRlcyhXZWJLaXQ6OlJUQ0VuY29kZXJJZGVudGlmaWVyIGlkLCB1aW50
MzJfdCBiaXRSYXRlLCB1aW50MzJfdCBmcmFtZVJhdGUpCiAgICAgU2V0U2hhcmVkVmlkZW9GcmFt
ZVNlbWFwaG9yZShXZWJLaXQ6OlJUQ0VuY29kZXJJZGVudGlmaWVyIGlkLCBJUEM6OlNlbWFwaG9y
ZSBzZW1hcGhvcmUpCiAgICAgU2V0U2hhcmVkVmlkZW9GcmFtZU1lbW9yeShXZWJLaXQ6OlJUQ0Vu
Y29kZXJJZGVudGlmaWVyIGlkLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHN0b3Jh
Z2VIYW5kbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xp
YldlYlJUQ0NvZGVjc1Byb3h5Lm1tIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9M
aWJXZWJSVENDb2RlY3NQcm94eS5tbQppbmRleCBhNzY3MWQ4ZDcyMWY4Nzk1OGFhNzRhYjc5MmIz
YWQ0YWZhODA3YmI3Li42ZGM4NmUzNWE4ZGQ4Mjc3OTE0OGQ2ZDVmYzkwMWI0NGEyZGEyM2NiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVj
c1Byb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRD
Q29kZWNzUHJveHkubW0KQEAgLTE4NSw3ICsxODUsNyBAQCB2b2lkIExpYldlYlJUQ0NvZGVjc1By
b3h5OjpjcmVhdGVFbmNvZGVyKFJUQ0VuY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0
CiAgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjczo6Q29t
cGxldGVkRW5jb2RpbmcgeyBpZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UgeyBidWZmZXIs
IHNpemUgfSwgaW5mbyB9LCAwKTsKICAgICB9KS5nZXQoKSk7CiAgICAgd2VicnRjOjpzZXRMb2Nh
bEVuY29kZXJMb3dMYXRlbmN5KGVuY29kZXIsIHVzZUxvd0xhdGVuY3kpOwotICAgIGF1dG8gcmVz
dWx0ID0gbV9lbmNvZGVycy5hZGQoaWRlbnRpZmllciwgRW5jb2RlciB7IGVuY29kZXIsIG51bGxw
dHIgfSk7CisgICAgYXV0byByZXN1bHQgPSBtX2VuY29kZXJzLmFkZChpZGVudGlmaWVyLCBFbmNv
ZGVyIHsgZW5jb2RlciwgbWFrZVVuaXF1ZTxTaGFyZWRWaWRlb0ZyYW1lUmVhZGVyPihSZWYgeyBt
X3ZpZGVvRnJhbWVPYmplY3RIZWFwIH0sIG1fcmVzb3VyY2VPd25lcikgfSk7CiAgICAgQVNTRVJU
X1VOVVNFRChyZXN1bHQsIHJlc3VsdC5pc05ld0VudHJ5IHx8IGlzVGVzdGluZ0lQQygpKTsKICAg
ICBtX2hhc0VuY29kZXJzT3JEZWNvZGVycyA9IHRydWU7CiB9CkBAIC0yMzcsMzkgKzIzNywyNCBA
QCBzdGF0aWMgaW5saW5lIHdlYnJ0Yzo6VmlkZW9Sb3RhdGlvbiB0b1dlYlJUQ1ZpZGVvUm90YXRp
b24oV2ViQ29yZTo6TWVkaWFTYW1wbGU6OgogICAgIHJldHVybiB3ZWJydGM6OmtWaWRlb1JvdGF0
aW9uXzA7CiB9CiAKLXZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OmVuY29kZUZyYW1lKFJUQ0Vu
Y29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYg
c2FtcGxlLCB1aW50MzJfdCB0aW1lU3RhbXAsIGJvb2wgc2hvdWxkRW5jb2RlQXNLZXlGcmFtZSwg
c3RkOjpvcHRpb25hbDxSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZT4gc2FtcGxlUmVmZXJl
bmNlKQordm9pZCBMaWJXZWJSVENDb2RlY3NQcm94eTo6ZW5jb2RlRnJhbWUoUlRDRW5jb2Rlcklk
ZW50aWZpZXIgaWRlbnRpZmllciwgU2hhcmVkVmlkZW9GcmFtZSYmIHNoYXJlZFZpZGVvRnJhbWUs
IHVpbnQzMl90IHRpbWVTdGFtcCwgYm9vbCBzaG91bGRFbmNvZGVBc0tleUZyYW1lKQogewogICAg
IGFzc2VydElzQ3VycmVudCh3b3JrUXVldWUoKSk7Ci0gICAgUmV0YWluUHRyPENWUGl4ZWxCdWZm
ZXJSZWY+IHBpeGVsQnVmZmVyOwotICAgIGlmIChzYW1wbGVSZWZlcmVuY2UpIHsKLSAgICAgICAg
YXV0byBzYW1wbGUgPSBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwLT5nZXQoV1RGTW92ZSgqc2FtcGxl
UmVmZXJlbmNlKSk7Ci0gICAgICAgIGlmICghc2FtcGxlKQotICAgICAgICAgICAgcmV0dXJuOwot
Ci0gICAgICAgIGF1dG8gcGxhdGZvcm1TYW1wbGUgPSBzYW1wbGUtPnBsYXRmb3JtU2FtcGxlKCk7
Ci0gICAgICAgIEFTU0VSVChwbGF0Zm9ybVNhbXBsZS50eXBlID09IFdlYkNvcmU6OlBsYXRmb3Jt
U2FtcGxlOjpDTVNhbXBsZUJ1ZmZlclR5cGUpOwotICAgICAgICBwaXhlbEJ1ZmZlciA9IHN0YXRp
Y19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZl
cihwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpKTsKLSAgICB9Ci0KICAgICBh
dXRvKiBlbmNvZGVyID0gZmluZEVuY29kZXIoaWRlbnRpZmllcik7CiAgICAgaWYgKCFlbmNvZGVy
KSB7CiAgICAgICAgIEFTU0VSVF9JU19URVNUSU5HX0lQQygpOworICAgICAgICAvLyBNYWtlIHN1
cmUgdG8gcmVhZCBSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSB0byBwcmV2ZW50IG1lbW9y
eSBsZWFrcy4KKyAgICAgICAgaWYgKHN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVtb3RlVmlkZW9G
cmFtZVJlYWRSZWZlcmVuY2U+KHNoYXJlZFZpZGVvRnJhbWUuYnVmZmVyKSkKKyAgICAgICAgICAg
IG1fdmlkZW9GcmFtZU9iamVjdEhlYXAtPmdldChXVEZNb3ZlKHN0ZDo6Z2V0PFJlbW90ZVZpZGVv
RnJhbWVSZWFkUmVmZXJlbmNlPihzaGFyZWRWaWRlb0ZyYW1lLmJ1ZmZlcikpKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotI2lmICFQTEFURk9STShNQUNDQVRBTFlTVCkKLSAgICBpZiAoIXBp
eGVsQnVmZmVyKSB7Ci0gICAgICAgIGlmIChzYW1wbGUuc3VyZmFjZSgpKSB7Ci0gICAgICAgICAg
ICBpZiAoYXV0byBidWZmZXIgPSBXZWJDb3JlOjpjcmVhdGVDVlBpeGVsQnVmZmVyKHNhbXBsZS5z
dXJmYWNlKCkpKQotICAgICAgICAgICAgICAgIHBpeGVsQnVmZmVyID0gV1RGTW92ZSgqYnVmZmVy
KTsKLSAgICAgICAgfSBlbHNlIGlmIChlbmNvZGVyLT5mcmFtZVJlYWRlcikKLSAgICAgICAgICAg
IHBpeGVsQnVmZmVyID0gZW5jb2Rlci0+ZnJhbWVSZWFkZXItPnJlYWQoKTsKLQotICAgICAgICBp
ZiAoIXBpeGVsQnVmZmVyKQotICAgICAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBhdXRvIHBp
eGVsQnVmZmVyID0gZW5jb2Rlci0+ZnJhbWVSZWFkZXItPnJlYWRCdWZmZXIoV1RGTW92ZShzaGFy
ZWRWaWRlb0ZyYW1lLmJ1ZmZlcikpOworICAgIGlmICghcGl4ZWxCdWZmZXIpCisgICAgICAgIHJl
dHVybjsKIAotICAgIHdlYnJ0Yzo6ZW5jb2RlTG9jYWxFbmNvZGVyRnJhbWUoZW5jb2Rlci0+d2Vi
cnRjRW5jb2RlciwgcGl4ZWxCdWZmZXIuZ2V0KCksIHNhbXBsZS50aW1lKCkudG9UaW1lU2NhbGUo
MTAwMDAwMCkudGltZVZhbHVlKCksIHRpbWVTdGFtcCwgdG9XZWJSVENWaWRlb1JvdGF0aW9uKHNh
bXBsZS5yb3RhdGlvbigpKSwgc2hvdWxkRW5jb2RlQXNLZXlGcmFtZSk7CisjaWYgIVBMQVRGT1JN
KE1BQ0NBVEFMWVNUKQorICAgIHdlYnJ0Yzo6ZW5jb2RlTG9jYWxFbmNvZGVyRnJhbWUoZW5jb2Rl
ci0+d2VicnRjRW5jb2RlciwgcGl4ZWxCdWZmZXIuZ2V0KCksIHNoYXJlZFZpZGVvRnJhbWUudGlt
ZS50b1RpbWVTY2FsZSgxMDAwMDAwKS50aW1lVmFsdWUoKSwgdGltZVN0YW1wLCB0b1dlYlJUQ1Zp
ZGVvUm90YXRpb24oc2hhcmVkVmlkZW9GcmFtZS5yb3RhdGlvbiksIHNob3VsZEVuY29kZUFzS2V5
RnJhbWUpOwogI2VuZGlmCiB9CiAKQEAgLTI5NCw4ICsyNzksNiBAQCB2b2lkIExpYldlYlJUQ0Nv
ZGVjc1Byb3h5OjpzZXRTaGFyZWRWaWRlb0ZyYW1lU2VtYXBob3JlKFJUQ0VuY29kZXJJZGVudGlm
aWVyIGlkZQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCFlbmNvZGVyLT5mcmFt
ZVJlYWRlcikKLSAgICAgICAgZW5jb2Rlci0+ZnJhbWVSZWFkZXIgPSBtYWtlVW5pcXVlPFNoYXJl
ZFZpZGVvRnJhbWVSZWFkZXI+KFJlZiB7IG1fdmlkZW9GcmFtZU9iamVjdEhlYXAgfSwgbV9yZXNv
dXJjZU93bmVyKTsKICAgICBlbmNvZGVyLT5mcmFtZVJlYWRlci0+c2V0U2VtYXBob3JlKFdURk1v
dmUoc2VtYXBob3JlKSk7CiB9CiAKQEAgLTMwOCw4ICsyOTEsNiBAQCB2b2lkIExpYldlYlJUQ0Nv
ZGVjc1Byb3h5OjpzZXRTaGFyZWRWaWRlb0ZyYW1lTWVtb3J5KFJUQ0VuY29kZXJJZGVudGlmaWVy
IGlkZW50aQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCFlbmNvZGVyLT5mcmFt
ZVJlYWRlcikKLSAgICAgICAgZW5jb2Rlci0+ZnJhbWVSZWFkZXIgPSBtYWtlVW5pcXVlPFNoYXJl
ZFZpZGVvRnJhbWVSZWFkZXI+KFJlZiB7IG1fdmlkZW9GcmFtZU9iamVjdEhlYXAgfSwgbV9yZXNv
dXJjZU93bmVyKTsKICAgICBlbmNvZGVyLT5mcmFtZVJlYWRlci0+c2V0U2hhcmVkTWVtb3J5KGlw
Y0hhbmRsZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDViNmU5NTQ1N2I0MDdmNThmOGJlNTJhNDAzNWM1MzMwMzc5YTAzYTAu
LmNkMWZkNTE4OTk4ODBkNzc3OTBhY2VlYzExZDA4NDkxOTM3ZWJiMjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDEyMSw2ICs0MTIx
LDcgQEAKIAkJNDEzMUYzRTAxRjk4NzEyQzAwNTk5OTVBIC8qIFdlYlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2tDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
U2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxMzVGQkNGMUY0RkI3RjIwMDc0QzQ3QiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDYWNo
ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVTdG9yYWdl
RW5naW5lQ2FjaGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzNUZCRDAx
RjRGQjdGMjAwNzRDNDdCIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEzQzU0MjIyN0M5MEY0QzAwMkZDREE4IC8qIFJlbW90
ZVZpZGVvRnJhbWVPYmplY3RIZWFwLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVZpZGVvRnJhbWVP
YmplY3RIZWFwLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTND
OEIxMzI1NTE2QkZBMDBFNjUwNTUgLyogTGliV2ViUlRDQ29kZWNzLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gTGliV2ViUlRDQ29kZWNzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MTUwQTVBMDIzRTA2QzkxMDA1MTI2NEEgLyogR1BVUHJvY2Vzc1Nlc3Npb25QYXJhbWV0ZXJz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVVByb2Nlc3NTZXNzaW9uUGFy
YW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTUxODUzNTIyMjcwNEY1
MDA1NDMwQzYgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC02OTQ0LDYgKzY5NDUsNyBAQAogCQkJCTA3RTE5RjA2MjNENERDODgwMDk0
RkZCNCAvKiBSZW1vdGVUZXh0VHJhY2tQcm94eS5oICovLAogCQkJCTdCNUEzREE4MjdBN0RDQkMw
MDZDNkY5NyAvKiBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5jcHAgKi8sCiAJCQkJN0I1QTNE
QTcyN0E3RENCQzAwNkM2Rjk3IC8qIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmggKi8sCisJ
CQkJNDEzQzU0MjIyN0M5MEY0QzAwMkZDREE4IC8qIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFw
Lm1lc3NhZ2VzLmluICovLAogCQkJCTA3MUJDNTg0MjNDQzJDMDkwMDY4MEQ3QyAvKiBSZW1vdGVW
aWRlb1RyYWNrUHJveHkuY3BwICovLAogCQkJCTA3MUJDNTg1MjNDQzJDMDkwMDY4MEQ3QyAvKiBS
ZW1vdGVWaWRlb1RyYWNrUHJveHkuaCAqLywKIAkJCQkwN0UxOUYwNTIzRDREQzg4MDA5NEZGQjQg
LyogVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24uaCAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFt
ZVByb3h5LmNwcAppbmRleCA5NmJiYThlMGZjOTEzODcyZmFiYjc1ZTlkMjg2YWEyMWE5ODVjYzgy
Li5iMDBmZDI0ZDIxNTkwYjA5ZWQ0NjA5OTRkMzk0MmI0MGVmZDZjN2YzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0Zy
YW1lUHJveHkuY3BwCkBAIC0xMDcsMTAgKzEwNywxMCBAQCBDVlBpeGVsQnVmZmVyUmVmIFJlbW90
ZVZpZGVvRnJhbWVQcm94eTo6cGl4ZWxCdWZmZXIoKSBjb25zdAogICAgICAgICBhdXRvIHZpZGVv
RnJhbWVPYmplY3RIZWFwUHJveHkgPSBzdGQ6OmV4Y2hhbmdlKG1fdmlkZW9GcmFtZU9iamVjdEhl
YXBQcm94eSwgbnVsbHB0cik7CiAKICAgICAgICAgYm9vbCBjYW5TZW5kU3luYyA9IGlzTWFpblJ1
bkxvb3AoKTsgLy8gRklYTUU6IHdlIHNob3VsZCBiZSBhYmxlIHRvIHNlbmRTeW5jIGZyb20gb3Ro
ZXIgdGhyZWFkcyB0b28uCi0gICAgICAgIC8vIEN1cnJlbnRseSB3ZSBqdXN0IGtleSB3aXRoIHRo
aXMsIGFzIHRoZXJlIGlzIG5vIGNvbmRpdGlvbiBmb3IgImhhcyBhY2Nlc3MgdG8gSU9LaXQiLgot
ICAgICAgICBpZiAoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2hvdWxkVXNlUmVtb3RlUmVuZGVy
aW5nRm9yV2ViR0woKSB8fCAhY2FuU2VuZFN5bmMpIHsKKyAgICAgICAgYm9vbCBjYW5Vc2VJT1N1
cmZhY2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zaG91bGRVc2VSZW1vdGVSZW5kZXJpbmdG
b3JXZWJHTCgpOworICAgICAgICBpZiAoIWNhblVzZUlPU3VyZmFjZSB8fCAhY2FuU2VuZFN5bmMp
IHsKICAgICAgICAgICAgIEJpbmFyeVNlbWFwaG9yZSBzZW1hcGhvcmU7Ci0gICAgICAgICAgICB2
aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5LT5nZXRWaWRlb0ZyYW1lQnVmZmVyKCp0aGlzLCBbdGhp
cywgJnNlbWFwaG9yZV0oYXV0byBwaXhlbEJ1ZmZlcikgeworICAgICAgICAgICAgdmlkZW9GcmFt
ZU9iamVjdEhlYXBQcm94eS0+Z2V0VmlkZW9GcmFtZUJ1ZmZlcigqdGhpcywgY2FuVXNlSU9TdXJm
YWNlLCBbdGhpcywgJnNlbWFwaG9yZV0oYXV0byBwaXhlbEJ1ZmZlcikgewogICAgICAgICAgICAg
ICAgIG1fcGl4ZWxCdWZmZXIgPSBXVEZNb3ZlKHBpeGVsQnVmZmVyKTsKICAgICAgICAgICAgICAg
ICBzZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAgICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCmluZGV4
IDU4ZWNjMTgyZWE0OWNjNTJlYTUyZjM1ZGIxN2U5ODFjODk4OWFjYjMuLmNkZWY0NTNjNDIxZjBi
MzkwZmI4MWJmYWEzNDhmNjNkMDdiYTNlY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcApAQCAtNDQ3LDQ2ICs0
NDcsMjAgQEAgaW50MzJfdCBMaWJXZWJSVENDb2RlY3M6OmluaXRpYWxpemVFbmNvZGVyKEVuY29k
ZXImIGVuY29kZXIsIHVpbnQxNl90IHdpZHRoLCB1aW4KICAgICByZXR1cm4gMDsKIH0KIAotdGVt
cGxhdGU8dHlwZW5hbWUgQnVmZmVyPgotYm9vbCBjb3B5U2hhcmVkVmlkZW9GcmFtZShMaWJXZWJS
VENDb2RlY3M6OkVuY29kZXImIGVuY29kZXIsIEJ1ZmZlciYmIGZyYW1lQnVmZmVyKQotewotICAg
IHJldHVybiBlbmNvZGVyLnNoYXJlZFZpZGVvRnJhbWVXcml0ZXIud3JpdGUoZnJhbWVCdWZmZXIs
Ci0gICAgICAgIFsmXShhdXRvJiBzZW1hcGhvcmUpIHsgZW5jb2Rlci5jb25uZWN0aW9uLT5zZW5k
KE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6U2V0U2hhcmVkVmlkZW9GcmFtZVNlbWFw
aG9yZSB7IGVuY29kZXIuaWRlbnRpZmllciwgc2VtYXBob3JlIH0sIDApOyB9LAotICAgICAgICBb
Jl0oYXV0byYgaGFuZGxlKSB7IGVuY29kZXIuY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGli
V2ViUlRDQ29kZWNzUHJveHk6OlNldFNoYXJlZFZpZGVvRnJhbWVNZW1vcnkgeyBlbmNvZGVyLmlk
ZW50aWZpZXIsIGhhbmRsZSB9LCAwKTsgfQotICAgICk7Ci19Ci0KIGludDMyX3QgTGliV2ViUlRD
Q29kZWNzOjplbmNvZGVGcmFtZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCB3ZWJydGM6OlZpZGVv
RnJhbWUmIGZyYW1lLCBib29sIHNob3VsZEVuY29kZUFzS2V5RnJhbWUpCiB7CiAgICAgTG9ja2Vy
IGxvY2tlciB7IG1fZW5jb2RlcnNMb2NrIH07CiAgICAgaWYgKCFlbmNvZGVyLmNvbm5lY3Rpb24p
CiAgICAgICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CiAKLSAgICBzdGQ6Om9w
dGlvbmFsPFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlPiByZW1vdGVWaWRlb0ZyYW1lUmVh
ZFJlZmVyZW5jZTsKLSAgICBpZiAoYXV0byogcHJvdmlkZXIgPSB3ZWJydGM6OnZpZGVvRnJhbWVC
dWZmZXJQcm92aWRlcihmcmFtZSkpIHsKLSAgICAgICAgYXV0byogdmlkZW9GcmFtZSA9IHN0YXRp
Y19jYXN0PFZpZGVvRnJhbWUqPihwcm92aWRlcik7Ci0gICAgICAgIGlmIChpczxSZW1vdGVWaWRl
b0ZyYW1lUHJveHk+KHZpZGVvRnJhbWUpKQotICAgICAgICAgICAgcmVtb3RlVmlkZW9GcmFtZVJl
YWRSZWZlcmVuY2UgPSBkb3duY2FzdDxSZW1vdGVWaWRlb0ZyYW1lUHJveHk+KHZpZGVvRnJhbWUp
LT5uZXdSZWFkUmVmZXJlbmNlKCk7Ci0gICAgfQotCi0gICAgUmV0YWluUHRyPENWUGl4ZWxCdWZm
ZXJSZWY+IGJ1ZmZlcjsKLSAgICBpZiAoIXJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlKSB7
Ci0gICAgICAgIGJ1ZmZlciA9IGFkb3B0Q0Yod2VicnRjOjpwaXhlbEJ1ZmZlckZyb21GcmFtZShm
cmFtZSkpOwotICAgICAgICBpZiAoIWJ1ZmZlcikgewotICAgICAgICAgICAgLy8gYnVmZmVyIGlz
IG5vdCBuYXRpdmUsIHdlIG5lZWQgdG8gY29weSB0byBzaGFyZWQgdmlkZW8gZnJhbWUuCi0gICAg
ICAgICAgICBpZiAoIWNvcHlTaGFyZWRWaWRlb0ZyYW1lKGVuY29kZXIsIGZyYW1lKSkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOwotICAgICAgICB9Ci0g
ICAgfQotCi0gICAgYXV0byBzYW1wbGUgPSBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKGJ1ZmZl
ci5nZXQoKSwgTWVkaWFUaW1lKGZyYW1lLnRpbWVzdGFtcF91cygpICogMTAwMCwgMTAwMDAwMCks
IHRvTWVkaWFTYW1wbGVWaWRlb1JvdGF0aW9uKGZyYW1lLnJvdGF0aW9uKCkpLCBSZW1vdGVWaWRl
b1NhbXBsZTo6U2hvdWxkQ2hlY2tGb3JJT1N1cmZhY2U6Ok5vKTsKLSAgICBpZiAoYnVmZmVyICYm
ICFzYW1wbGUtPnN1cmZhY2UoKSkgewotICAgICAgICAvLyBidWZmZXIgaXMgbm90IElPU3VyZmFj
ZSwgd2UgbmVlZCB0byBjb3B5IHRvIHNoYXJlZCB2aWRlbyBmcmFtZS4KLSAgICAgICAgaWYgKCFj
b3B5U2hhcmVkVmlkZW9GcmFtZShlbmNvZGVyLCBidWZmZXIuZ2V0KCkpKQotICAgICAgICAgICAg
cmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsKLSAgICB9CisgICAgYXV0byBidWZmZXIg
PSBlbmNvZGVyLnNoYXJlZFZpZGVvRnJhbWVXcml0ZXIud3JpdGVCdWZmZXIoZnJhbWUsCisgICAg
ICAgIFsmXShhdXRvJiBzZW1hcGhvcmUpIHsgZW5jb2Rlci5jb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6U2V0U2hhcmVkVmlkZW9GcmFtZVNlbWFwaG9yZSB7
IGVuY29kZXIuaWRlbnRpZmllciwgc2VtYXBob3JlIH0sIDApOyB9LAorICAgICAgICBbJl0oYXV0
byYgaGFuZGxlKSB7IGVuY29kZXIuY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRD
Q29kZWNzUHJveHk6OlNldFNoYXJlZFZpZGVvRnJhbWVNZW1vcnkgeyBlbmNvZGVyLmlkZW50aWZp
ZXIsIGhhbmRsZSB9LCAwKTsgfSk7CisgICAgaWYgKCFidWZmZXIpCisgICAgICAgIHJldHVybiBX
RUJSVENfVklERU9fQ09ERUNfRVJST1I7CiAKLSAgICBlbmNvZGVyLmNvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpFbmNvZGVGcmFtZSB7IGVuY29kZXIuaWRl
bnRpZmllciwgKnNhbXBsZSwgZnJhbWUudGltZXN0YW1wKCksIHNob3VsZEVuY29kZUFzS2V5RnJh
bWUsIHJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlIH0sIDApOworICAgIFNoYXJlZFZpZGVv
RnJhbWUgc2hhcmVkVmlkZW9GcmFtZSB7IE1lZGlhVGltZShmcmFtZS50aW1lc3RhbXBfdXMoKSAq
IDEwMDAsIDEwMDAwMDApLCBmYWxzZSwgdG9NZWRpYVNhbXBsZVZpZGVvUm90YXRpb24oZnJhbWUu
cm90YXRpb24oKSksIFdURk1vdmUoKmJ1ZmZlcikgfTsKKyAgICBlbmNvZGVyLmNvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpFbmNvZGVGcmFtZSB7IGVuY29k
ZXIuaWRlbnRpZmllciwgc2hhcmVkVmlkZW9GcmFtZSwgZnJhbWUudGltZXN0YW1wKCksIHNob3Vs
ZEVuY29kZUFzS2V5RnJhbWUgfSwgMCk7CiAgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19P
SzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS5oCmluZGV4IGQ1
ZTVlZDMxMGEyNDMwOTQ2ODFmM2Q3Nzc5YmM0OGUyNWJlN2MxZTIuLmU3OTQ4YzUyODFhZGRjMDU1
ZWM3OWZhMDMyYTQ0NzI0NjM2MzU4MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0
SGVhcFByb3h5LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAgIH5SZW1vdGVWaWRlb0Zy
YW1lT2JqZWN0SGVhcFByb3h5KCkgPSBkZWZhdWx0OwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0g
ICAgdm9pZCBnZXRWaWRlb0ZyYW1lQnVmZmVyKGNvbnN0IFJlbW90ZVZpZGVvRnJhbWVQcm94eSYg
cHJveHksIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3I6OkNhbGxiYWNr
JiYgY2FsbGJhY2spIHsgbV9wcm9jZXNzb3ItPmdldFZpZGVvRnJhbWVCdWZmZXIocHJveHksIFdU
Rk1vdmUoY2FsbGJhY2spKTsgfQorICAgIHZvaWQgZ2V0VmlkZW9GcmFtZUJ1ZmZlcihjb25zdCBS
ZW1vdGVWaWRlb0ZyYW1lUHJveHkmIHByb3h5LCBib29sIGNhblVzZUlPU3VyZmFjZSwgUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvcjo6Q2FsbGJhY2smJiBjYWxsYmFjaykg
eyBtX3Byb2Nlc3Nvci0+Z2V0VmlkZW9GcmFtZUJ1ZmZlcihwcm94eSwgY2FuVXNlSU9TdXJmYWNl
LCBXVEZNb3ZlKGNhbGxiYWNrKSk7IH0KICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVj
dEhlYXBQcm94eVByb2Nlc3Nvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLmNwcAppbmRleCA2
ZDZjN2E4MmFmMTY4MmQwOTU0OWQyZTJjZTlkZGMzZGYxYzQzNTBkLi5jODcyNDZhYzcwZmVmYWJj
MWRiOTM0ZDZlMDIyY2E4OTM1ZmVlODJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29y
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRl
b0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLmNwcApAQCAtOTQsMjAgKzk0LDE3IEBAIFJl
bW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3I6OkNhbGxiYWNrIFJlbW90ZVZp
ZGVvRnJhbWVPYmplY3RIZWFwUHJvCiAgICAgcmV0dXJuIG1fY2FsbGJhY2tzLnRha2UoaWRlbnRp
Zmllcik7CiB9CiAKLXZvaWQgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nv
cjo6dmlkZW9GcmFtZUJ1ZmZlck5vdEZvdW5kKFJlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCit2b2lkIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3I6
Om5ld1ZpZGVvRnJhbWVCdWZmZXIoUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgc3RkOjpvcHRpb25hbDxTaGFyZWRWaWRlb0ZyYW1lOjpCdWZmZXI+JiYgc2hhcmVkVmlkZW9G
cmFtZUJ1ZmZlcikKIHsKKyAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZm
ZXI7CisgICAgaWYgKHNoYXJlZFZpZGVvRnJhbWVCdWZmZXIpCisgICAgICAgIHBpeGVsQnVmZmVy
ID0gbV9zaGFyZWRWaWRlb0ZyYW1lUmVhZGVyLnJlYWRCdWZmZXIoV1RGTW92ZSgqc2hhcmVkVmlk
ZW9GcmFtZUJ1ZmZlcikpOwogICAgIGlmIChhdXRvIGNhbGxiYWNrID0gdGFrZUNhbGxiYWNrKGlk
ZW50aWZpZXIpKQotICAgICAgICBjYWxsYmFjayhudWxscHRyKTsKLX0KKyAgICAgICAgY2FsbGJh
Y2soV1RGTW92ZShwaXhlbEJ1ZmZlcikpOwogCi12b2lkIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RI
ZWFwUHJveHlQcm9jZXNzb3I6Om5ld1ZpZGVvRnJhbWVCdWZmZXIoUmVtb3RlVmlkZW9GcmFtZUlk
ZW50aWZpZXIgaWRlbnRpZmllcikKLXsKLSAgICBhdXRvIHJlc3VsdCA9IG1fc2hhcmVkVmlkZW9G
cmFtZVJlYWRlci5yZWFkKCk7Ci0gICAgaWYgKGF1dG8gY2FsbGJhY2sgPSB0YWtlQ2FsbGJhY2so
aWRlbnRpZmllcikpCi0gICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7CiB9CiAKLXZv
aWQgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvcjo6Z2V0VmlkZW9GcmFt
ZUJ1ZmZlcihjb25zdCBSZW1vdGVWaWRlb0ZyYW1lUHJveHkmIGZyYW1lLCBDYWxsYmFjayYmIGNh
bGxiYWNrKQordm9pZCBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yOjpn
ZXRWaWRlb0ZyYW1lQnVmZmVyKGNvbnN0IFJlbW90ZVZpZGVvRnJhbWVQcm94eSYgZnJhbWUsIGJv
b2wgY2FuVXNlSU9TdXJmYWNlLCBDYWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIHsKICAgICAg
ICAgTG9ja2VyIGxvY2sobV9jYWxsYmFja3NMb2NrKTsKQEAgLTExNiwxMCArMTEzLDEwIEBAIHZv
aWQgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvcjo6Z2V0VmlkZW9GcmFt
ZUJ1ZmZlcihjb25zdCBSZW1vdGVWCiAgICAgfQogICAgIExvY2tlciBsb2NrKG1fY29ubmVjdGlv
bkxvY2spOwogICAgIGlmICghbV9jb25uZWN0aW9uSUQpIHsKLSAgICAgICAgdmlkZW9GcmFtZUJ1
ZmZlck5vdEZvdW5kKGZyYW1lLmlkZW50aWZpZXIoKSk7CisgICAgICAgIHRha2VDYWxsYmFjayhm
cmFtZS5pZGVudGlmaWVyKCkpKG51bGxwdHIpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAg
IElQQzo6Q29ubmVjdGlvbjo6c2VuZChtX2Nvbm5lY3Rpb25JRCwgTWVzc2FnZXM6OlJlbW90ZVZp
ZGVvRnJhbWVPYmplY3RIZWFwOjpHZXRWaWRlb0ZyYW1lQnVmZmVyKGZyYW1lLm5ld1JlYWRSZWZl
cmVuY2UoKSksIDAsIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0
aW5nRm9yU3luY1JlcGx5KTsKKyAgICBJUEM6OkNvbm5lY3Rpb246OnNlbmQobV9jb25uZWN0aW9u
SUQsIE1lc3NhZ2VzOjpSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcDo6R2V0VmlkZW9GcmFtZUJ1
ZmZlcihmcmFtZS5uZXdSZWFkUmVmZXJlbmNlKCksIGNhblVzZUlPU3VyZmFjZSksIDAsIElQQzo6
U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsK
IH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvci5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVBy
b2Nlc3Nvci5oCmluZGV4IGYwZTc2ZjNiYTRhNDUxNWYyY2EwYTNjNWU2NGM2NWM4OTI2NmZmMmEu
LjZiZjM0YjY1ZmM2MWZjODYyNThkZmM1Zjg1YzhlOGMyZDUyOGMwZjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RI
ZWFwUHJveHlQcm9jZXNzb3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLmgKQEAgLTU1LDcg
KzU1LDcgQEAgcHVibGljOgogICAgIH5SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJv
Y2Vzc29yKCk7CiAKICAgICB1c2luZyBDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+JiYpPjsKLSAgICB2b2lkIGdldFZpZGVvRnJhbWVCdWZmZXIoY29u
c3QgUmVtb3RlVmlkZW9GcmFtZVByb3h5JiwgQ2FsbGJhY2smJik7CisgICAgdm9pZCBnZXRWaWRl
b0ZyYW1lQnVmZmVyKGNvbnN0IFJlbW90ZVZpZGVvRnJhbWVQcm94eSYsIGJvb2wgY2FuVXNlSU9T
dXJmY2UsIENhbGxiYWNrJiYpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFJlbW90ZVZpZGVv
RnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mKTsKQEAg
LTY1LDggKzY1LDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZXNzYWdlcwogICAgIHZvaWQgc2V0U2hh
cmVkVmlkZW9GcmFtZVNlbWFwaG9yZShJUEM6OlNlbWFwaG9yZSYmKTsKICAgICB2b2lkIHNldFNo
YXJlZFZpZGVvRnJhbWVNZW1vcnkoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmKTsKLSAg
ICB2b2lkIHZpZGVvRnJhbWVCdWZmZXJOb3RGb3VuZChSZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmll
cik7Ci0gICAgdm9pZCBuZXdWaWRlb0ZyYW1lQnVmZmVyKFJlbW90ZVZpZGVvRnJhbWVJZGVudGlm
aWVyKTsKKyAgICB2b2lkIG5ld1ZpZGVvRnJhbWVCdWZmZXIoUmVtb3RlVmlkZW9GcmFtZUlkZW50
aWZpZXIsIHN0ZDo6b3B0aW9uYWw8U2hhcmVkVmlkZW9GcmFtZTo6QnVmZmVyPiYmKTsKIAogICAg
IC8vIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpDbGllbnQKICAgICB2b2lkIGdwdVByb2Nlc3NDb25u
ZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFw
UHJveHlQcm9jZXNzb3IubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLm1lc3NhZ2Vz
LmluCmluZGV4IDFkNTU1MzZkZDhhNDU4Y2JkNGIxNTgzZTJhZTEwMTQxMTQ2OTdhMTIuLjkzYzU4
NWZjNGExOWY5NTkyMzI0ZTJlNzVjYTFjYjg0YWNlMzFhNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJv
eHlQcm9jZXNzb3IubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvci5tZXNzYWdl
cy5pbgpAQCAtMjUsOCArMjUsNyBAQAogbWVzc2FnZXMgLT4gUmVtb3RlVmlkZW9GcmFtZU9iamVj
dEhlYXBQcm94eVByb2Nlc3NvciB7CiAgICAgU2V0U2hhcmVkVmlkZW9GcmFtZVNlbWFwaG9yZShJ
UEM6OlNlbWFwaG9yZSBzZW1hcGhvcmUpCiAgICAgU2V0U2hhcmVkVmlkZW9GcmFtZU1lbW9yeShX
ZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHN0b3JhZ2VIYW5kbGUpCi0gICAgVmlkZW9G
cmFtZUJ1ZmZlck5vdEZvdW5kKFdlYktpdDo6UmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIgaWRl
bnRpZmllcikKLSAgICBOZXdWaWRlb0ZyYW1lQnVmZmVyKFdlYktpdDo6UmVtb3RlVmlkZW9GcmFt
ZUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBOZXdWaWRlb0ZyYW1lQnVmZmVyKFdlYktpdDo6
UmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIgaWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxXZWJL
aXQ6OlNoYXJlZFZpZGVvRnJhbWU6OkJ1ZmZlcj4gZnJhbWUpCiB9CiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9GcmFt
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0Zy
YW1lLmNwcAppbmRleCA0MzVhYzM3Yjg0ZmVlNmEzNzhhY2NjNzZhNzIyYjUyNTczNjRmODY3Li4x
MWM0NzgyMmU3NjI0YTRmYmViNTM3ZDEyNTRhNmU0OWJlZTdkMGE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmNw
cApAQCAtMzcsNiArMzcsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZFZpZGVvRnJhbWVJ
bmZvLmg+CiAjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAKKyNpZiBVU0UoTElCV0VCUlRDKQorI2lu
Y2x1ZGUgPHdlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oPgorI2VuZGlmCisKICNp
bmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nv
cmVWaWRlb1NvZnRMaW5rLmg+CiAKQEAgLTkwLDQxICs5NCw1NSBAQCBib29sIFNoYXJlZFZpZGVv
RnJhbWVXcml0ZXI6OnByZXBhcmVXcml0aW5nKGNvbnN0IFNoYXJlZFZpZGVvRnJhbWVJbmZvJiBp
bmZvLCBjbwogCiBzdGQ6Om9wdGlvbmFsPFNoYXJlZFZpZGVvRnJhbWU+IFNoYXJlZFZpZGVvRnJh
bWVXcml0ZXI6OndyaXRlKE1lZGlhU2FtcGxlJiBmcmFtZSwgY29uc3QgRnVuY3Rpb248dm9pZChJ
UEM6OlNlbWFwaG9yZSYpPiYgbmV3U2VtYXBob3JlQ2FsbGJhY2ssIGNvbnN0IEZ1bmN0aW9uPHZv
aWQoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmKT4mIG5ld01lbW9yeUNhbGxiYWNrKQog
ewotICAgIFNoYXJlZFZpZGVvRnJhbWUgc2hhcmVkVmlkZW9GcmFtZSB7IGZyYW1lLnByZXNlbnRh
dGlvblRpbWUoKSwgZnJhbWUudmlkZW9NaXJyb3JlZCgpLCBmcmFtZS52aWRlb1JvdGF0aW9uKCks
IG51bGxwdHIgfTsKLSAgICBpZiAoaXM8UmVtb3RlVmlkZW9GcmFtZVByb3h5PihmcmFtZSkpIHsK
LSAgICAgICAgc2hhcmVkVmlkZW9GcmFtZS5idWZmZXIgPSBkb3duY2FzdDxSZW1vdGVWaWRlb0Zy
YW1lUHJveHk+KGZyYW1lKS5uZXdSZWFkUmVmZXJlbmNlKCk7Ci0gICAgICAgIHJldHVybiBzaGFy
ZWRWaWRlb0ZyYW1lOwotICAgIH0KLSAgICBpZiAoaXM8TWVkaWFTYW1wbGVBVkZPYmpDPihmcmFt
ZSkpIHsKLSAgICAgICAgaWYgKGF1dG8gcGl4ZWxCdWZmZXIgPSBkb3duY2FzdDxNZWRpYVNhbXBs
ZUFWRk9iakM+KGZyYW1lKS5waXhlbEJ1ZmZlcigpKSB7Ci0gICAgICAgICAgICBpZiAoYXV0byBz
dXJmYWNlID0gQ1ZQaXhlbEJ1ZmZlckdldElPU3VyZmFjZShwaXhlbEJ1ZmZlcikpIHsKLSAgICAg
ICAgICAgICAgICBzaGFyZWRWaWRlb0ZyYW1lLmJ1ZmZlciA9IE1hY2hTZW5kUmlnaHQ6OmFkb3B0
KElPU3VyZmFjZUNyZWF0ZU1hY2hQb3J0KHN1cmZhY2UpKTsKLSAgICAgICAgICAgICAgICByZXR1
cm4gc2hhcmVkVmlkZW9GcmFtZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLSAg
ICBpZiAoIXdyaXRlKGZyYW1lLnBpeGVsQnVmZmVyKCksIG5ld1NlbWFwaG9yZUNhbGxiYWNrLCBu
ZXdNZW1vcnlDYWxsYmFjaykpCisgICAgYXV0byBidWZmZXIgPSB3cml0ZUJ1ZmZlcihmcmFtZSwg
bmV3U2VtYXBob3JlQ2FsbGJhY2ssIG5ld01lbW9yeUNhbGxiYWNrKTsKKyAgICBpZiAoIWJ1ZmZl
cikKICAgICAgICAgcmV0dXJuIHsgfTsKLSAgICByZXR1cm4gc2hhcmVkVmlkZW9GcmFtZTsKKyAg
ICByZXR1cm4gU2hhcmVkVmlkZW9GcmFtZSB7IGZyYW1lLnByZXNlbnRhdGlvblRpbWUoKSwgZnJh
bWUudmlkZW9NaXJyb3JlZCgpLCBmcmFtZS52aWRlb1JvdGF0aW9uKCksIFdURk1vdmUoKmJ1ZmZl
cikgfTsKIH0KIAotYm9vbCBTaGFyZWRWaWRlb0ZyYW1lV3JpdGVyOjp3cml0ZShDVlBpeGVsQnVm
ZmVyUmVmIHBpeGVsQnVmZmVyLCBjb25zdCBGdW5jdGlvbjx2b2lkKElQQzo6U2VtYXBob3JlJik+
JiBuZXdTZW1hcGhvcmVDYWxsYmFjaywgY29uc3QgRnVuY3Rpb248dm9pZChjb25zdCBTaGFyZWRN
ZW1vcnk6OklQQ0hhbmRsZSYpPiYgbmV3TWVtb3J5Q2FsbGJhY2spCitzdGQ6Om9wdGlvbmFsPFNo
YXJlZFZpZGVvRnJhbWU6OkJ1ZmZlcj4gU2hhcmVkVmlkZW9GcmFtZVdyaXRlcjo6d3JpdGVCdWZm
ZXIoTWVkaWFTYW1wbGUmIGZyYW1lLCBjb25zdCBGdW5jdGlvbjx2b2lkKElQQzo6U2VtYXBob3Jl
Jik+JiBuZXdTZW1hcGhvcmVDYWxsYmFjaywgY29uc3QgRnVuY3Rpb248dm9pZChjb25zdCBTaGFy
ZWRNZW1vcnk6OklQQ0hhbmRsZSYpPiYgbmV3TWVtb3J5Q2FsbGJhY2spCiB7CisgICAgaWYgKGlz
PFJlbW90ZVZpZGVvRnJhbWVQcm94eT4oZnJhbWUpKQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8
UmVtb3RlVmlkZW9GcmFtZVByb3h5PihmcmFtZSkubmV3UmVhZFJlZmVyZW5jZSgpOworCisgICAg
cmV0dXJuIHdyaXRlQnVmZmVyKGZyYW1lLnBpeGVsQnVmZmVyKCksIG5ld1NlbWFwaG9yZUNhbGxi
YWNrLCBuZXdNZW1vcnlDYWxsYmFjayk7Cit9CisKK3N0ZDo6b3B0aW9uYWw8U2hhcmVkVmlkZW9G
cmFtZTo6QnVmZmVyPiBTaGFyZWRWaWRlb0ZyYW1lV3JpdGVyOjp3cml0ZUJ1ZmZlcihDVlBpeGVs
QnVmZmVyUmVmIHBpeGVsQnVmZmVyLCBjb25zdCBGdW5jdGlvbjx2b2lkKElQQzo6U2VtYXBob3Jl
Jik+JiBuZXdTZW1hcGhvcmVDYWxsYmFjaywgY29uc3QgRnVuY3Rpb248dm9pZChjb25zdCBTaGFy
ZWRNZW1vcnk6OklQQ0hhbmRsZSYpPiYgbmV3TWVtb3J5Q2FsbGJhY2ssIGJvb2wgY2FuVXNlSU9T
dXJmYWNlKQoreworICAgIGlmICghcGl4ZWxCdWZmZXIpCisgICAgICAgIHJldHVybiB7IH07CisK
KyAgICBpZiAoY2FuVXNlSU9TdXJmYWNlKSB7CisgICAgICAgIGlmIChhdXRvIHN1cmZhY2UgPSBD
VlBpeGVsQnVmZmVyR2V0SU9TdXJmYWNlKHBpeGVsQnVmZmVyKSkKKyAgICAgICAgICAgIHJldHVy
biBNYWNoU2VuZFJpZ2h0OjphZG9wdChJT1N1cmZhY2VDcmVhdGVNYWNoUG9ydChzdXJmYWNlKSk7
CisgICAgfQorCiAgICAgYXV0byBpbmZvID0gU2hhcmVkVmlkZW9GcmFtZUluZm86OmZyb21DVlBp
eGVsQnVmZmVyKHBpeGVsQnVmZmVyKTsKICAgICBpZiAoIXByZXBhcmVXcml0aW5nKGluZm8sIG5l
d1NlbWFwaG9yZUNhbGxiYWNrLCBuZXdNZW1vcnlDYWxsYmFjaykpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHJldHVybiBpbmZvLndyaXRlUGl4ZWxC
dWZmZXIocGl4ZWxCdWZmZXIsIHN0YXRpY19jYXN0PHVpbnQ4X3QqPihtX3N0b3JhZ2UtPmRhdGEo
KSkpOworICAgIGlmICghaW5mby53cml0ZVBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyLCBzdGF0aWNf
Y2FzdDx1aW50OF90Kj4obV9zdG9yYWdlLT5kYXRhKCkpKSkKKyAgICAgICAgcmV0dXJuIHsgfTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogI2lmIFVTRShMSUJXRUJSVEMpCi1ib29sIFNoYXJl
ZFZpZGVvRnJhbWVXcml0ZXI6OndyaXRlKGNvbnN0IHdlYnJ0Yzo6VmlkZW9GcmFtZSYgZnJhbWUs
IGNvbnN0IEZ1bmN0aW9uPHZvaWQoSVBDOjpTZW1hcGhvcmUmKT4mIG5ld1NlbWFwaG9yZUNhbGxi
YWNrLCBjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJik+
JiBuZXdNZW1vcnlDYWxsYmFjaykKK3N0ZDo6b3B0aW9uYWw8U2hhcmVkVmlkZW9GcmFtZTo6QnVm
ZmVyPiBTaGFyZWRWaWRlb0ZyYW1lV3JpdGVyOjp3cml0ZUJ1ZmZlcihjb25zdCB3ZWJydGM6OlZp
ZGVvRnJhbWUmIGZyYW1lLCBjb25zdCBGdW5jdGlvbjx2b2lkKElQQzo6U2VtYXBob3JlJik+JiBu
ZXdTZW1hcGhvcmVDYWxsYmFjaywgY29uc3QgRnVuY3Rpb248dm9pZChjb25zdCBTaGFyZWRNZW1v
cnk6OklQQ0hhbmRsZSYpPiYgbmV3TWVtb3J5Q2FsbGJhY2spCiB7CisgICAgaWYgKGF1dG8qIHBy
b3ZpZGVyID0gd2VicnRjOjp2aWRlb0ZyYW1lQnVmZmVyUHJvdmlkZXIoZnJhbWUpKQorICAgICAg
ICByZXR1cm4gd3JpdGVCdWZmZXIoKnN0YXRpY19jYXN0PFZpZGVvRnJhbWUqPihwcm92aWRlciks
IG5ld1NlbWFwaG9yZUNhbGxiYWNrLCBuZXdNZW1vcnlDYWxsYmFjayk7CisKKyAgICBpZiAoYXV0
byBwaXhlbEJ1ZmZlciA9IGFkb3B0Q0Yod2VicnRjOjpwaXhlbEJ1ZmZlckZyb21GcmFtZShmcmFt
ZSkpKQorICAgICAgICByZXR1cm4gd3JpdGVCdWZmZXIocGl4ZWxCdWZmZXIuZ2V0KCksIG5ld1Nl
bWFwaG9yZUNhbGxiYWNrLCBuZXdNZW1vcnlDYWxsYmFjayk7CisKICAgICBhdXRvIGluZm8gPSBT
aGFyZWRWaWRlb0ZyYW1lSW5mbzo6ZnJvbVZpZGVvRnJhbWUoZnJhbWUpOwogICAgIGlmICghcHJl
cGFyZVdyaXRpbmcoaW5mbywgbmV3U2VtYXBob3JlQ2FsbGJhY2ssIG5ld01lbW9yeUNhbGxiYWNr
KSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHJldHVybiBpbmZvLndyaXRlVmlkZW9GcmFt
ZShmcmFtZSwgc3RhdGljX2Nhc3Q8dWludDhfdCo+KG1fc3RvcmFnZS0+ZGF0YSgpKSk7CisgICAg
aWYgKCFpbmZvLndyaXRlVmlkZW9GcmFtZShmcmFtZSwgc3RhdGljX2Nhc3Q8dWludDhfdCo+KG1f
c3RvcmFnZS0+ZGF0YSgpKSkpCisgICAgICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIG51bGxw
dHI7CiB9CiAjZW5kaWYKIApAQCAtMTQzLDcgKzE2MSw3IEBAIFNoYXJlZFZpZGVvRnJhbWVSZWFk
ZXI6OlNoYXJlZFZpZGVvRnJhbWVSZWFkZXIoUmVmUHRyPFJlbW90ZVZpZGVvRnJhbWVPYmplY3RI
ZWFwCiAKIFNoYXJlZFZpZGVvRnJhbWVSZWFkZXI6OlNoYXJlZFZpZGVvRnJhbWVSZWFkZXIoKSA9
IGRlZmF1bHQ7CiAKLVJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBTaGFyZWRWaWRlb0ZyYW1l
UmVhZGVyOjpyZWFkKCkKK1JldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBTaGFyZWRWaWRlb0Zy
YW1lUmVhZGVyOjpyZWFkQnVmZmVyRnJvbVNoYXJlZE1lbW9yeSgpCiB7CiAgICAgaWYgKCFtX3N0
b3JhZ2UpCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xNjksOSArMTg3LDkgQEAgUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+IFNoYXJlZFZpZGVvRnJhbWVSZWFkZXI6OnJlYWQoKQogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKLVJlZlB0cjxNZWRpYVNhbXBsZT4gU2hhcmVkVmlkZW9GcmFtZVJl
YWRlcjo6cmVhZChTaGFyZWRWaWRlb0ZyYW1lJiYgc2hhcmVkVmlkZW9GcmFtZSkKK1JldGFpblB0
cjxDVlBpeGVsQnVmZmVyUmVmPiBTaGFyZWRWaWRlb0ZyYW1lUmVhZGVyOjpyZWFkQnVmZmVyKFNo
YXJlZFZpZGVvRnJhbWU6OkJ1ZmZlciYmIGJ1ZmZlcikKIHsKLSAgICBhdXRvIHBpeGVsQnVmZmVy
ID0gc3dpdGNoT24oV1RGTW92ZShzaGFyZWRWaWRlb0ZyYW1lLmJ1ZmZlciksCisgICAgcmV0dXJu
IHN3aXRjaE9uKFdURk1vdmUoYnVmZmVyKSwKICAgICBbdGhpc10oUmVtb3RlVmlkZW9GcmFtZVJl
YWRSZWZlcmVuY2UmJiByZWZlcmVuY2UpIC0+IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiB7
CiAgICAgICAgIEFTU0VSVChtX29iamVjdEhlYXApOwogICAgICAgICBpZiAoIW1fb2JqZWN0SGVh
cCkKQEAgLTE4OCw3ICsyMDYsNyBAQCBSZWZQdHI8TWVkaWFTYW1wbGU+IFNoYXJlZFZpZGVvRnJh
bWVSZWFkZXI6OnJlYWQoU2hhcmVkVmlkZW9GcmFtZSYmIHNoYXJlZFZpZGVvRgogICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIHJldHVybiBXZWJDb3JlOjpjcmVhdGVDVlBpeGVs
QnVmZmVyKHN1cmZhY2UtPnN1cmZhY2UoKSkudmFsdWVfb3IobnVsbHB0cik7CiAgICAgfSwgW3Ro
aXNdKHN0ZDo6bnVsbHB0cl90IHJlcHJlc2VudGF0aW9uKSAtPiBSZXRhaW5QdHI8Q1ZQaXhlbEJ1
ZmZlclJlZj4gewotICAgICAgICByZXR1cm4gcmVhZCgpOworICAgICAgICByZXR1cm4gcmVhZEJ1
ZmZlckZyb21TaGFyZWRNZW1vcnkoKTsKICAgICB9LCBbdGhpc10oSW50U2l6ZSBzaXplKSAtPiBS
ZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gewogICAgICAgICBpZiAobV9ibGFja0ZyYW1lU2l6
ZSAhPSBzaXplKSB7CiAgICAgICAgICAgICBtX2JsYWNrRnJhbWVTaXplID0gc2l6ZTsKQEAgLTE5
OCw3ICsyMTYsMTEgQEAgUmVmUHRyPE1lZGlhU2FtcGxlPiBTaGFyZWRWaWRlb0ZyYW1lUmVhZGVy
OjpyZWFkKFNoYXJlZFZpZGVvRnJhbWUmJiBzaGFyZWRWaWRlb0YKICAgICAgICAgfQogICAgICAg
ICByZXR1cm4gbV9ibGFja0ZyYW1lLmdldCgpOwogICAgIH0pOworfQogCitSZWZQdHI8TWVkaWFT
YW1wbGU+IFNoYXJlZFZpZGVvRnJhbWVSZWFkZXI6OnJlYWQoU2hhcmVkVmlkZW9GcmFtZSYmIHNo
YXJlZFZpZGVvRnJhbWUpCit7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHJlYWRCdWZmZXIoV1RG
TW92ZShzaGFyZWRWaWRlb0ZyYW1lLmJ1ZmZlcikpOwogICAgIGlmICghcGl4ZWxCdWZmZXIpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmgKaW5kZXggNTkwNDdmY2ZiYzBiNjUx
MjlmNjM2ODg4YjMxNWIyY2U4ZmRmMjNjYy4uNWFiNDZlODA2NjM1NDE2ZTZmZDRhMGVjYzE5ZDQ1
ZjEyMzAxZDc3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvU2hhcmVkVmlkZW9GcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuaApAQCAtNTUsNyArNTUsOCBAQCBzdHJ1Y3QgU2hhcmVk
VmlkZW9GcmFtZSB7CiAgICAgTWVkaWFUaW1lIHRpbWU7CiAgICAgYm9vbCBtaXJyb3JlZCB7IGZh
bHNlIH07CiAgICAgV2ViQ29yZTo6TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gcm90YXRpb24g
eyBXZWJDb3JlOjpNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSB9OwotICAgIHN0ZDo6
dmFyaWFudDxzdGQ6Om51bGxwdHJfdCwgUmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UsIE1h
Y2hTZW5kUmlnaHQsIFdlYkNvcmU6OkludFNpemU+IGJ1ZmZlcjsKKyAgICB1c2luZyBCdWZmZXIg
PSBzdGQ6OnZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJl
bmNlLCBNYWNoU2VuZFJpZ2h0LCBXZWJDb3JlOjpJbnRTaXplPjsKKyAgICBCdWZmZXIgYnVmZmVy
OwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNv
bnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNo
YXJlZFZpZGVvRnJhbWU+IGRlY29kZShEZWNvZGVyJik7CkBAIC02Nyw5ICs2OCw5IEBAIHB1Ymxp
YzoKICAgICBTaGFyZWRWaWRlb0ZyYW1lV3JpdGVyKCk7CiAKICAgICBzdGQ6Om9wdGlvbmFsPFNo
YXJlZFZpZGVvRnJhbWU+IHdyaXRlKFdlYkNvcmU6Ok1lZGlhU2FtcGxlJiwgY29uc3QgRnVuY3Rp
b248dm9pZChJUEM6OlNlbWFwaG9yZSYpPiYsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3QgU2hh
cmVkTWVtb3J5OjpJUENIYW5kbGUmKT4mKTsKLSAgICBib29sIHdyaXRlKENWUGl4ZWxCdWZmZXJS
ZWYsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoSVBDOjpTZW1hcGhvcmUmKT4mLCBjb25zdCBGdW5jdGlv
bjx2b2lkKGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJik+Jik7CisgICAgc3RkOjpvcHRp
b25hbDxTaGFyZWRWaWRlb0ZyYW1lOjpCdWZmZXI+IHdyaXRlQnVmZmVyKENWUGl4ZWxCdWZmZXJS
ZWYsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoSVBDOjpTZW1hcGhvcmUmKT4mLCBjb25zdCBGdW5jdGlv
bjx2b2lkKGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJik+JiwgYm9vbCBjYW5TZW5kSU9T
dXJmYWNlID0gdHJ1ZSk7CiAjaWYgVVNFKExJQldFQlJUQykKLSAgICBib29sIHdyaXRlKGNvbnN0
IHdlYnJ0Yzo6VmlkZW9GcmFtZSYsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoSVBDOjpTZW1hcGhvcmUm
KT4mLCBjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJik+
Jik7CisgICAgc3RkOjpvcHRpb25hbDxTaGFyZWRWaWRlb0ZyYW1lOjpCdWZmZXI+IHdyaXRlQnVm
ZmVyKGNvbnN0IHdlYnJ0Yzo6VmlkZW9GcmFtZSYsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoSVBDOjpT
ZW1hcGhvcmUmKT4mLCBjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBD
SGFuZGxlJik+Jik7CiAjZW5kaWYKICAgICB2b2lkIGRpc2FibGUoKTsKIApAQCAtNzcsNiArNzgs
NyBAQCBwcml2YXRlOgogICAgIGJvb2wgd2FpdChjb25zdCBGdW5jdGlvbjx2b2lkKElQQzo6U2Vt
YXBob3JlJik+Jik7CiAgICAgYm9vbCBhbGxvY2F0ZVN0b3JhZ2Uoc2l6ZV90LCBjb25zdCBGdW5j
dGlvbjx2b2lkKGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJik+Jik7CiAgICAgYm9vbCBw
cmVwYXJlV3JpdGluZyhjb25zdCBXZWJDb3JlOjpTaGFyZWRWaWRlb0ZyYW1lSW5mbyYsIGNvbnN0
IEZ1bmN0aW9uPHZvaWQoSVBDOjpTZW1hcGhvcmUmKT4mLCBjb25zdCBGdW5jdGlvbjx2b2lkKGNv
bnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJik+Jik7CisgICAgc3RkOjpvcHRpb25hbDxTaGFy
ZWRWaWRlb0ZyYW1lOjpCdWZmZXI+IHdyaXRlQnVmZmVyKFdlYkNvcmU6Ok1lZGlhU2FtcGxlJiwg
Y29uc3QgRnVuY3Rpb248dm9pZChJUEM6OlNlbWFwaG9yZSYpPiYsIGNvbnN0IEZ1bmN0aW9uPHZv
aWQoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmKT4mKTsKIAogICAgIFVuaXF1ZVJlZjxJ
UEM6OlNlbWFwaG9yZT4gbV9zZW1hcGhvcmU7CiAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbV9z
dG9yYWdlOwpAQCAtOTQsMTEgKzk2LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNlbWFwaG9y
ZShJUEM6OlNlbWFwaG9yZSYmIHNlbWFwaG9yZSkgeyBtX3NlbWFwaG9yZSA9IFdURk1vdmUoc2Vt
YXBob3JlKTsgfQogICAgIGJvb2wgc2V0U2hhcmVkTWVtb3J5KGNvbnN0IFNoYXJlZE1lbW9yeTo6
SVBDSGFuZGxlJik7CiAKLSAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcmVhZCgpOwog
ICAgIFJlZlB0cjxXZWJDb3JlOjpNZWRpYVNhbXBsZT4gcmVhZChTaGFyZWRWaWRlb0ZyYW1lJiYp
OworICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiByZWFkQnVmZmVyKFNoYXJlZFZpZGVv
RnJhbWU6OkJ1ZmZlciYmKTsKIAogcHJpdmF0ZToKICAgICBDVlBpeGVsQnVmZmVyUG9vbFJlZiBw
aXhlbEJ1ZmZlclBvb2woY29uc3QgV2ViQ29yZTo6U2hhcmVkVmlkZW9GcmFtZUluZm8mKTsKKyAg
ICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcmVhZEJ1ZmZlckZyb21TaGFyZWRNZW1vcnko
KTsKIAogICAgIFJlZlB0cjxSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcD4gbV9vYmplY3RIZWFw
OwogICAgIFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSBtX3Jlc291cmNlT3duZXI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453497</attachid>
            <date>2022-03-01 07:15:31 -0800</date>
            <delta_ts>2022-03-03 04:25:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237267-20220301161529.patch</filename>
            <type>text/plain</type>
            <size>36072</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY1YTU5YjAzZjUzMjgwMTk0
MWNlZGE3Y2ExNGM0ODg1NGRmYmU2YTEuLmM3NzkwNjkwOWYxMDNiZWZhNzdjNmYwZGIzMWU0YjRk
NjMzNDhmYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDMtMDEgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSByb3V0aW5lcyB0
byBleGNoYW5nZSBTaGFyZWRWaWRlb0ZyYW1lOjpCdWZmZXIgZGlyZWN0bHkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzI2NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERlZmluZSBleHBsaWN0bHkgU2hh
cmVkVmlkZW9GcmFtZTo6QnVmZmVyIGFzIFZhcmlhbnQgb2YgdGhlIHZhcmlvdXMgYnVmZmVyIHJl
cHJlc2VudGF0aW9ucy4KKyAgICAgICAgVGhpcyBhbGxvd3MgdG8gbW92ZSBtb3JlIGNvZGUgaW4g
U2hhcmVkVmlkZW9GcmFtZSBmb3IgaW5zdGFuY2UgYnkgYWRkaW5nIGRpcmVjdCBzdXBwb3J0IG9m
IHNlbmRpbmcgd2VicnRjOjpWaWRlb0ZyYW1lIGJ1ZmZlcnMgaW4gU2hhcmVkVmlkZW9GcmFtZS4K
KyAgICAgICAgUmV1c2UgdGhhdCBjb2RlIGluIExpYldlYlJUQ0NvZGVjcyBhcyBhIHJlZmFjdG9y
aW5nL3NpbXBsaWZpY2F0aW9uLgorICAgICAgICBSZXVzZSB0aGF0IGNvZGUgaW4gUmVtb3RlVmlk
ZW9GcmFtZU9iamVjdEhlYXAgd2hpY2ggYWxsb3dzIHRvIGV4Y2hhbmdlIElPU3VyZmFjZXMgaW4g
Y2FzZSBXZWJQcm9jZXNzIGNhbiB1c2UgdGhlbS4KKyAgICAgICAgVGhpcyBpcyB1c2VkIHdoZW4g
ZW5jb2Rpbmcgc3VjaCBmcmFtZXMgdXNpbmcgc29mdHdhcmUgZW5jb2RlcnMuCisKKyAgICAgICAg
Q292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuY3BwOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQ
VVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lmg6CisgICAgICAgICogR1BVUHJv
Y2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
R1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW06CisgICAgICAgICogV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93
ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29y
LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9i
amVjdEhlYXBQcm94eVByb2Nlc3Nvci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmNwcDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9GcmFtZS5oOgorCiAyMDIy
LTAzLTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1v
dmUgUmVtb3RlVmlkZW9TYW1wbGUgc3VwcG9ydCBmcm9tIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0Zy
YW1lT2JqZWN0SGVhcC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXAuY3BwCmluZGV4IGY4ZTdjZjFhNTgyN2YyOWQ4YmY4YjNmMThj
YzAzOWE0OTlhZTU5ODcuLjA4YjgwYTU4ZmVmOTVkMmFhYzcwY2VjZGU5Y2U2NzIwYTU3YTc5OTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0Zy
YW1lT2JqZWN0SGVhcC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmNwcApAQCAtMTAxLDQyICsxMDEsMjkgQEAgdm9pZCBS
ZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcDo6cmVsZWFzZVZpZGVvRnJhbWUoUmVtb3RlVmlkZW9G
cmFtZVdyaXRlUmVmZXJlbmMKIH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQotdm9pZCBSZW1vdGVW
aWRlb0ZyYW1lT2JqZWN0SGVhcDo6Z2V0VmlkZW9GcmFtZUJ1ZmZlcihSZW1vdGVWaWRlb0ZyYW1l
UmVhZFJlZmVyZW5jZSYmIHJlYWQpCit2b2lkIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOjpn
ZXRWaWRlb0ZyYW1lQnVmZmVyKFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlJiYgcmVhZCwg
Ym9vbCBjYW5TZW5kSU9TdXJmYWNlKQogewogICAgIGFzc2VydElzQ3VycmVudChyZW1vdGVWaWRl
b0ZyYW1lT2JqZWN0SGVhcFF1ZXVlKCkpOwogCiAgICAgYXV0byBpZGVudGlmaWVyID0gcmVhZC5p
ZGVudGlmaWVyKCk7Ci0gICAgYXV0byB2aWRlb0ZyYW1lID0gbV9oZWFwLnJldGlyZShXVEZNb3Zl
KHJlYWQpLCAwX3MpOwotCi0gICAgaWYgKCF2aWRlb0ZyYW1lKSB7Ci0gICAgICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nl
c3Nvcjo6VmlkZW9GcmFtZUJ1ZmZlck5vdEZvdW5kIHsgaWRlbnRpZmllciB9LCAwKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSB2aWRlb0ZyYW1lLT5w
aXhlbEJ1ZmZlcigpOwotICAgIGlmICghcGl4ZWxCdWZmZXIpIHsKLSAgICAgICAgbV9jb25uZWN0
aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vz
c29yOjpWaWRlb0ZyYW1lQnVmZmVyTm90Rm91bmQgeyBpZGVudGlmaWVyIH0sIDApOwotICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGJv
b2wgcmVzdWx0ID0gbV9zaGFyZWRWaWRlb0ZyYW1lV3JpdGVyLndyaXRlKHBpeGVsQnVmZmVyLAot
ICAgICAgICBbJl0oYXV0byYgc2VtYXBob3JlKSB7IG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvcjo6U2V0U2hhcmVkVmlk
ZW9GcmFtZVNlbWFwaG9yZSB7IHNlbWFwaG9yZSB9LCAwKTsgfSwKLSAgICAgICAgWyZdKGF1dG8m
IGhhbmRsZSkgeyBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVZpZGVvRnJhbWVP
YmplY3RIZWFwUHJveHlQcm9jZXNzb3I6OlNldFNoYXJlZFZpZGVvRnJhbWVNZW1vcnkgeyBoYW5k
bGUgfSwgMCk7IH0KLSAgICApOwotICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgQVNTRVJUX05PVF9SRUFDSEVEIG9uY2Ugd2Ugc3VwcG9ydCBlbm91Z2ggcGl4
ZWwgYnVmZmVyIHR5cGVzLgotICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJl
bW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3I6OlZpZGVvRnJhbWVCdWZmZXJO
b3RGb3VuZCB7IGlkZW50aWZpZXIgfSwgMCk7Ci0gICAgICAgIHJldHVybjsKKyAgICBhdXRvIHZp
ZGVvRnJhbWUgPSBnZXQoV1RGTW92ZShyZWFkKSk7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFNoYXJl
ZFZpZGVvRnJhbWU6OkJ1ZmZlcj4gYnVmZmVyOworICAgIGlmICh2aWRlb0ZyYW1lKSB7CisgICAg
ICAgIGJ1ZmZlciA9IG1fc2hhcmVkVmlkZW9GcmFtZVdyaXRlci53cml0ZUJ1ZmZlcih2aWRlb0Zy
YW1lLT5waXhlbEJ1ZmZlcigpLAorICAgICAgICAgICAgWyZdKGF1dG8mIHNlbWFwaG9yZSkgeyBt
X2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJv
eHlQcm9jZXNzb3I6OlNldFNoYXJlZFZpZGVvRnJhbWVTZW1hcGhvcmUgeyBzZW1hcGhvcmUgfSwg
MCk7IH0sCisgICAgICAgICAgICBbJl0oYXV0byYgaGFuZGxlKSB7IG1fY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvcjo6U2V0
U2hhcmVkVmlkZW9GcmFtZU1lbW9yeSB7IGhhbmRsZSB9LCAwKTsgfSwKKyAgICAgICAgICAgIGNh
blNlbmRJT1N1cmZhY2UpOworICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIEFTU0VSVChyZXN1
bHQpIG9uY2Ugd2Ugc3VwcG9ydCBlbm91Z2ggcGl4ZWwgYnVmZmVyIHR5cGVzLgogICAgIH0KLSAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFw
UHJveHlQcm9jZXNzb3I6Ok5ld1ZpZGVvRnJhbWVCdWZmZXIgeyBpZGVudGlmaWVyIH0sIDApOwor
ICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXBQcm94eVByb2Nlc3Nvcjo6TmV3VmlkZW9GcmFtZUJ1ZmZlciB7IGlkZW50aWZpZXIsIGJ1ZmZl
ciB9LCAwKTsKIH0KIAogdm9pZCBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcDo6cGl4ZWxCdWZm
ZXIoUmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UmJiByZWFkLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPik+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgYXNzZXJ0SXNDdXJyZW50KHJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUXVldWUo
KSk7CiAKLSAgICBhdXRvIHZpZGVvRnJhbWUgPSBtX2hlYXAucmV0aXJlKFdURk1vdmUocmVhZCks
IDBfcyk7CisgICAgYXV0byB2aWRlb0ZyYW1lID0gZ2V0KFdURk1vdmUocmVhZCkpOwogICAgIGlm
ICghdmlkZW9GcmFtZSkgewogICAgICAgICBBU1NFUlRfSVNfVEVTVElOR19JUEMoKTsKICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIobnVsbHB0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuaCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5oCmluZGV4
IDFiYjRlMGE0M2UxMWY3ZjFhODkwZTY5Yzc0ZTdjYTg5NDRiMThmZTMuLjUzZWQ1NmUwYWUwZGVl
ZjYxNTRjOGNlMDRhOWIxNmNmMTUwZTY4YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5oCkBAIC01
OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZXMuCiAgICAgdm9pZCByZWxlYXNl
VmlkZW9GcmFtZShSZW1vdGVWaWRlb0ZyYW1lV3JpdGVSZWZlcmVuY2UmJik7CiAjaWYgUExBVEZP
Uk0oQ09DT0EpCi0gICAgdm9pZCBnZXRWaWRlb0ZyYW1lQnVmZmVyKFJlbW90ZVZpZGVvRnJhbWVS
ZWFkUmVmZXJlbmNlJiYpOworICAgIHZvaWQgZ2V0VmlkZW9GcmFtZUJ1ZmZlcihSZW1vdGVWaWRl
b0ZyYW1lUmVhZFJlZmVyZW5jZSYmLCBib29sIGNhblNlbmRJT1N1cmZhY2UpOwogICAgIHZvaWQg
cGl4ZWxCdWZmZXIoUmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UmJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4pPiYmKTsKICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFt
ZU9iamVjdEhlYXAubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAubWVzc2FnZXMuaW4KaW5kZXggNmZhOGFhMmJjYzM0
NDhmZGY1ZDE1ZTBlYzE5N2Y0ZDg3YWJjN2JiZS4uZWI5YTY5NmMyODE5OWIwYzQ2OWViMjBiNDVk
YjcyYzIyZjdlMjY3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5tZXNzYWdlcy5p
bgpAQCAtMjQsNyArMjQsNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJ
REVPKQogbWVzc2FnZXMgLT4gUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAgTm90UmVmQ291bnRl
ZCB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgR2V0VmlkZW9GcmFtZUJ1ZmZlcihXZWJLaXQ6
OlJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlIHJlYWQpCisgICAgR2V0VmlkZW9GcmFtZUJ1
ZmZlcihXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlIHJlYWQsIGJvb2wgY2Fu
U2VuZElPU3VyZmFjZSkKICAgICBQaXhlbEJ1ZmZlcihXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVS
ZWFkUmVmZXJlbmNlIHJlYWQpIC0+IChSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcmVzdWx0
KSBTeW5jaHJvbm91cwogI2VuZGlmCiAgICAgUmVsZWFzZVZpZGVvRnJhbWUoV2ViS2l0OjpSZW1v
dGVWaWRlb0ZyYW1lV3JpdGVSZWZlcmVuY2Ugd3JpdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5LmgKaW5kZXggODc0ZmY2
ODNiYTdmZTRiYTBhMGU1Mjc4OTBkNmY4NjY1MmYzZjk4MC4uMTkyNjczOGY5ZTAyODE5YzdmNGZi
OWRjOGFlNTM1OTkzYzA0ZTkwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaApAQCAtODgsNyArODgsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgY3JlYXRlRW5jb2RlcihSVENFbmNvZGVySWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+JiwgYm9vbCB1
c2VMb3dMYXRlbmN5KTsKICAgICB2b2lkIHJlbGVhc2VFbmNvZGVyKFJUQ0VuY29kZXJJZGVudGlm
aWVyKTsKICAgICB2b2lkIGluaXRpYWxpemVFbmNvZGVyKFJUQ0VuY29kZXJJZGVudGlmaWVyLCB1
aW50MTZfdCB3aWR0aCwgdWludDE2X3QgaGVpZ2h0LCB1bnNpZ25lZCBzdGFydEJpdHJhdGUsIHVu
c2lnbmVkIG1heEJpdHJhdGUsIHVuc2lnbmVkIG1pbkJpdHJhdGUsIHVpbnQzMl90IG1heEZyYW1l
cmF0ZSk7Ci0gICAgdm9pZCBlbmNvZGVGcmFtZShSVENFbmNvZGVySWRlbnRpZmllciwgV2ViQ29y
ZTo6UmVtb3RlVmlkZW9TYW1wbGUmJiwgdWludDMyX3QgdGltZVN0YW1wLCBib29sIHNob3VsZEVu
Y29kZUFzS2V5RnJhbWUsIHN0ZDo6b3B0aW9uYWw8UmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVu
Y2U+KTsKKyAgICB2b2lkIGVuY29kZUZyYW1lKFJUQ0VuY29kZXJJZGVudGlmaWVyLCBTaGFyZWRW
aWRlb0ZyYW1lJiYsIHVpbnQzMl90IHRpbWVTdGFtcCwgYm9vbCBzaG91bGRFbmNvZGVBc0tleUZy
YW1lKTsKICAgICB2b2lkIHNldEVuY29kZVJhdGVzKFJUQ0VuY29kZXJJZGVudGlmaWVyLCB1aW50
MzJfdCBiaXRSYXRlLCB1aW50MzJfdCBmcmFtZVJhdGUpOwogICAgIHZvaWQgc2V0U2hhcmVkVmlk
ZW9GcmFtZVNlbWFwaG9yZShSVENFbmNvZGVySWRlbnRpZmllciwgSVBDOjpTZW1hcGhvcmUmJik7
CiAgICAgdm9pZCBzZXRTaGFyZWRWaWRlb0ZyYW1lTWVtb3J5KFJUQ0VuY29kZXJJZGVudGlmaWVy
LCBjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubWVz
c2FnZXMuaW4KaW5kZXggZGZhZjRhMjZiZDFlMzEyMTkwMzRhYmIwNjUyZGUyM2Q5Y2UyZDFhYS4u
ZTY0OWQ3MTRhNzcyMzgzYTIzYWIwNjNjYWZmMWJjZmE3YTQ0MGNjYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVj
c1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0zNCw3ICszNCw3IEBAIG1lc3NhZ2VzIC0+IExpYldlYlJU
Q0NvZGVjc1Byb3h5IE5vdFJlZkNvdW50ZWQgewogICAgIENyZWF0ZUVuY29kZXIoV2ViS2l0OjpS
VENFbmNvZGVySWRlbnRpZmllciBpZCwgU3RyaW5nIGZvcm1hdE5hbWUsIFZlY3RvcjxzdGQ6OnBh
aXI8U3RyaW5nLCBTdHJpbmc+PiBwYXJhbWV0ZXJzLCBib29sIHVzZUxvd0xhdGVuY3kpOwogICAg
IFJlbGVhc2VFbmNvZGVyKFdlYktpdDo6UlRDRW5jb2RlcklkZW50aWZpZXIgaWQpCiAgICAgSW5p
dGlhbGl6ZUVuY29kZXIoV2ViS2l0OjpSVENFbmNvZGVySWRlbnRpZmllciBpZCwgdWludDE2X3Qg
d2lkdGgsIHVpbnQxNl90IGhlaWdodCwgdW5zaWduZWQgc3RhcnRCaXRyYXRlLCB1bnNpZ25lZCBt
YXhCaXRyYXRlLCB1bnNpZ25lZCBtaW5CaXRyYXRlLCB1aW50MzJfdCBtYXhGcmFtZXJhdGUpCi0g
ICAgRW5jb2RlRnJhbWUoV2ViS2l0OjpSVENFbmNvZGVySWRlbnRpZmllciBpZCwgV2ViQ29yZTo6
UmVtb3RlVmlkZW9TYW1wbGUgc2FtcGxlLCB1aW50MzJfdCB0aW1lU3RhbXAsIGJvb2wgc2hvdWxk
RW5jb2RlQXNLZXlGcmFtZSwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVS
ZWFkUmVmZXJlbmNlPiBzYW1wbGVSZWZlcmVuY2UpCisgICAgRW5jb2RlRnJhbWUoV2ViS2l0OjpS
VENFbmNvZGVySWRlbnRpZmllciBpZCwgc3RydWN0IFdlYktpdDo6U2hhcmVkVmlkZW9GcmFtZSBi
dWZmZXIsIHVpbnQzMl90IHRpbWVTdGFtcCwgYm9vbCBzaG91bGRFbmNvZGVBc0tleUZyYW1lKQog
ICAgIFNldEVuY29kZVJhdGVzKFdlYktpdDo6UlRDRW5jb2RlcklkZW50aWZpZXIgaWQsIHVpbnQz
Ml90IGJpdFJhdGUsIHVpbnQzMl90IGZyYW1lUmF0ZSkKICAgICBTZXRTaGFyZWRWaWRlb0ZyYW1l
U2VtYXBob3JlKFdlYktpdDo6UlRDRW5jb2RlcklkZW50aWZpZXIgaWQsIElQQzo6U2VtYXBob3Jl
IHNlbWFwaG9yZSkKICAgICBTZXRTaGFyZWRWaWRlb0ZyYW1lTWVtb3J5KFdlYktpdDo6UlRDRW5j
b2RlcklkZW50aWZpZXIgaWQsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgc3RvcmFn
ZUhhbmRsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGli
V2ViUlRDQ29kZWNzUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xp
YldlYlJUQ0NvZGVjc1Byb3h5Lm1tCmluZGV4IGE3NjcxZDhkNzIxZjg3OTU4YWE3NGFiNzkyYjNh
ZDRhZmE4MDdiYjcuLjZkYzg2ZTM1YThkZDgyNzc5MTQ4ZDZkNWZjOTAxYjQ0YTJkYTIzY2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNz
UHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVEND
b2RlY3NQcm94eS5tbQpAQCAtMTg1LDcgKzE4NSw3IEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzUHJv
eHk6OmNyZWF0ZUVuY29kZXIoUlRDRW5jb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QK
ICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzOjpDb21w
bGV0ZWRFbmNvZGluZyB7IGlkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSB7IGJ1ZmZlciwg
c2l6ZSB9LCBpbmZvIH0sIDApOwogICAgIH0pLmdldCgpKTsKICAgICB3ZWJydGM6OnNldExvY2Fs
RW5jb2Rlckxvd0xhdGVuY3koZW5jb2RlciwgdXNlTG93TGF0ZW5jeSk7Ci0gICAgYXV0byByZXN1
bHQgPSBtX2VuY29kZXJzLmFkZChpZGVudGlmaWVyLCBFbmNvZGVyIHsgZW5jb2RlciwgbnVsbHB0
ciB9KTsKKyAgICBhdXRvIHJlc3VsdCA9IG1fZW5jb2RlcnMuYWRkKGlkZW50aWZpZXIsIEVuY29k
ZXIgeyBlbmNvZGVyLCBtYWtlVW5pcXVlPFNoYXJlZFZpZGVvRnJhbWVSZWFkZXI+KFJlZiB7IG1f
dmlkZW9GcmFtZU9iamVjdEhlYXAgfSwgbV9yZXNvdXJjZU93bmVyKSB9KTsKICAgICBBU1NFUlRf
VU5VU0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkgfHwgaXNUZXN0aW5nSVBDKCkpOwogICAg
IG1faGFzRW5jb2RlcnNPckRlY29kZXJzID0gdHJ1ZTsKIH0KQEAgLTIzNywzOSArMjM3LDI0IEBA
IHN0YXRpYyBpbmxpbmUgd2VicnRjOjpWaWRlb1JvdGF0aW9uIHRvV2ViUlRDVmlkZW9Sb3RhdGlv
bihXZWJDb3JlOjpNZWRpYVNhbXBsZTo6CiAgICAgcmV0dXJuIHdlYnJ0Yzo6a1ZpZGVvUm90YXRp
b25fMDsKIH0KIAotdm9pZCBMaWJXZWJSVENDb2RlY3NQcm94eTo6ZW5jb2RlRnJhbWUoUlRDRW5j
b2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmJiBz
YW1wbGUsIHVpbnQzMl90IHRpbWVTdGFtcCwgYm9vbCBzaG91bGRFbmNvZGVBc0tleUZyYW1lLCBz
dGQ6Om9wdGlvbmFsPFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlPiBzYW1wbGVSZWZlcmVu
Y2UpCit2b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5OjplbmNvZGVGcmFtZShSVENFbmNvZGVySWRl
bnRpZmllciBpZGVudGlmaWVyLCBTaGFyZWRWaWRlb0ZyYW1lJiYgc2hhcmVkVmlkZW9GcmFtZSwg
dWludDMyX3QgdGltZVN0YW1wLCBib29sIHNob3VsZEVuY29kZUFzS2V5RnJhbWUpCiB7CiAgICAg
YXNzZXJ0SXNDdXJyZW50KHdvcmtRdWV1ZSgpKTsKLSAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZl
clJlZj4gcGl4ZWxCdWZmZXI7Ci0gICAgaWYgKHNhbXBsZVJlZmVyZW5jZSkgewotICAgICAgICBh
dXRvIHNhbXBsZSA9IG1fdmlkZW9GcmFtZU9iamVjdEhlYXAtPmdldChXVEZNb3ZlKCpzYW1wbGVS
ZWZlcmVuY2UpKTsKLSAgICAgICAgaWYgKCFzYW1wbGUpCi0gICAgICAgICAgICByZXR1cm47Ci0K
LSAgICAgICAgYXV0byBwbGF0Zm9ybVNhbXBsZSA9IHNhbXBsZS0+cGxhdGZvcm1TYW1wbGUoKTsK
LSAgICAgICAgQVNTRVJUKHBsYXRmb3JtU2FtcGxlLnR5cGUgPT0gV2ViQ29yZTo6UGxhdGZvcm1T
YW1wbGU6OkNNU2FtcGxlQnVmZmVyVHlwZSk7Ci0gICAgICAgIHBpeGVsQnVmZmVyID0gc3RhdGlj
X2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVy
KHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcikpOwotICAgIH0KLQogICAgIGF1
dG8qIGVuY29kZXIgPSBmaW5kRW5jb2RlcihpZGVudGlmaWVyKTsKICAgICBpZiAoIWVuY29kZXIp
IHsKICAgICAgICAgQVNTRVJUX0lTX1RFU1RJTkdfSVBDKCk7CisgICAgICAgIC8vIE1ha2Ugc3Vy
ZSB0byByZWFkIFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlIHRvIHByZXZlbnQgbWVtb3J5
IGxlYWtzLgorICAgICAgICBpZiAoc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZW1vdGVWaWRlb0Zy
YW1lUmVhZFJlZmVyZW5jZT4oc2hhcmVkVmlkZW9GcmFtZS5idWZmZXIpKQorICAgICAgICAgICAg
bV92aWRlb0ZyYW1lT2JqZWN0SGVhcC0+Z2V0KFdURk1vdmUoc3RkOjpnZXQ8UmVtb3RlVmlkZW9G
cmFtZVJlYWRSZWZlcmVuY2U+KHNoYXJlZFZpZGVvRnJhbWUuYnVmZmVyKSkpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0jaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotICAgIGlmICghcGl4
ZWxCdWZmZXIpIHsKLSAgICAgICAgaWYgKHNhbXBsZS5zdXJmYWNlKCkpIHsKLSAgICAgICAgICAg
IGlmIChhdXRvIGJ1ZmZlciA9IFdlYkNvcmU6OmNyZWF0ZUNWUGl4ZWxCdWZmZXIoc2FtcGxlLnN1
cmZhY2UoKSkpCi0gICAgICAgICAgICAgICAgcGl4ZWxCdWZmZXIgPSBXVEZNb3ZlKCpidWZmZXIp
OwotICAgICAgICB9IGVsc2UgaWYgKGVuY29kZXItPmZyYW1lUmVhZGVyKQotICAgICAgICAgICAg
cGl4ZWxCdWZmZXIgPSBlbmNvZGVyLT5mcmFtZVJlYWRlci0+cmVhZCgpOwotCi0gICAgICAgIGlm
ICghcGl4ZWxCdWZmZXIpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIGF1dG8gcGl4
ZWxCdWZmZXIgPSBlbmNvZGVyLT5mcmFtZVJlYWRlci0+cmVhZEJ1ZmZlcihXVEZNb3ZlKHNoYXJl
ZFZpZGVvRnJhbWUuYnVmZmVyKSk7CisgICAgaWYgKCFwaXhlbEJ1ZmZlcikKKyAgICAgICAgcmV0
dXJuOwogCi0gICAgd2VicnRjOjplbmNvZGVMb2NhbEVuY29kZXJGcmFtZShlbmNvZGVyLT53ZWJy
dGNFbmNvZGVyLCBwaXhlbEJ1ZmZlci5nZXQoKSwgc2FtcGxlLnRpbWUoKS50b1RpbWVTY2FsZSgx
MDAwMDAwKS50aW1lVmFsdWUoKSwgdGltZVN0YW1wLCB0b1dlYlJUQ1ZpZGVvUm90YXRpb24oc2Ft
cGxlLnJvdGF0aW9uKCkpLCBzaG91bGRFbmNvZGVBc0tleUZyYW1lKTsKKyNpZiAhUExBVEZPUk0o
TUFDQ0FUQUxZU1QpCisgICAgd2VicnRjOjplbmNvZGVMb2NhbEVuY29kZXJGcmFtZShlbmNvZGVy
LT53ZWJydGNFbmNvZGVyLCBwaXhlbEJ1ZmZlci5nZXQoKSwgc2hhcmVkVmlkZW9GcmFtZS50aW1l
LnRvVGltZVNjYWxlKDEwMDAwMDApLnRpbWVWYWx1ZSgpLCB0aW1lU3RhbXAsIHRvV2ViUlRDVmlk
ZW9Sb3RhdGlvbihzaGFyZWRWaWRlb0ZyYW1lLnJvdGF0aW9uKSwgc2hvdWxkRW5jb2RlQXNLZXlG
cmFtZSk7CiAjZW5kaWYKIH0KIApAQCAtMjk0LDggKzI3OSw2IEBAIHZvaWQgTGliV2ViUlRDQ29k
ZWNzUHJveHk6OnNldFNoYXJlZFZpZGVvRnJhbWVTZW1hcGhvcmUoUlRDRW5jb2RlcklkZW50aWZp
ZXIgaWRlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoIWVuY29kZXItPmZyYW1l
UmVhZGVyKQotICAgICAgICBlbmNvZGVyLT5mcmFtZVJlYWRlciA9IG1ha2VVbmlxdWU8U2hhcmVk
VmlkZW9GcmFtZVJlYWRlcj4oUmVmIHsgbV92aWRlb0ZyYW1lT2JqZWN0SGVhcCB9LCBtX3Jlc291
cmNlT3duZXIpOwogICAgIGVuY29kZXItPmZyYW1lUmVhZGVyLT5zZXRTZW1hcGhvcmUoV1RGTW92
ZShzZW1hcGhvcmUpKTsKIH0KIApAQCAtMzA4LDggKzI5MSw2IEBAIHZvaWQgTGliV2ViUlRDQ29k
ZWNzUHJveHk6OnNldFNoYXJlZFZpZGVvRnJhbWVNZW1vcnkoUlRDRW5jb2RlcklkZW50aWZpZXIg
aWRlbnRpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoIWVuY29kZXItPmZyYW1l
UmVhZGVyKQotICAgICAgICBlbmNvZGVyLT5mcmFtZVJlYWRlciA9IG1ha2VVbmlxdWU8U2hhcmVk
VmlkZW9GcmFtZVJlYWRlcj4oUmVmIHsgbV92aWRlb0ZyYW1lT2JqZWN0SGVhcCB9LCBtX3Jlc291
cmNlT3duZXIpOwogICAgIGVuY29kZXItPmZyYW1lUmVhZGVyLT5zZXRTaGFyZWRNZW1vcnkoaXBj
SGFuZGxlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggMWVkY2EzMzYwYzQ4YTJiYjk4Yjk2YjFmZGFlOGQ5NzQ4YjY1ZjVhMi4u
YjRlZWU4NmEwMDZkNTkxM2ZhYjU5YzZjMDdkN2U2ZTliOThkMzhlYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MTIxLDYgKzQxMjEs
NyBAQAogCQk0MTMxRjNFMDFGOTg3MTJDMDA1OTk5NUEgLyogV2ViU2VydmljZVdvcmtlckZldGNo
VGFza0NsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDEzNUZCQ0YxRjRGQjdGMjAwNzRDNDdCIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNhY2hl
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZVN0b3JhZ2VF
bmdpbmVDYWNoZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTM1RkJEMDFG
NEZCN0YyMDA3NEM0N0IgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MTNDNTQyMjI3QzkwRjRDMDAyRkNEQTggLyogUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXAubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlVmlkZW9GcmFtZU9i
amVjdEhlYXAubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxM0M4
QjEzMjU1MTZCRkEwMEU2NTA1NSAvKiBMaWJXZWJSVENDb2RlY3MubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBMaWJXZWJSVENDb2RlY3MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxNTBBNUEwMjNFMDZDOTEwMDUxMjY0QSAvKiBHUFVQcm9jZXNzU2Vzc2lvblBhcmFtZXRlcnMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR1BVUHJvY2Vzc1Nlc3Npb25QYXJh
bWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTE4NTM1MjIyNzA0RjUw
MDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTY5NDgsNiArNjk0OSw3IEBACiAJCQkJMDdFMTlGMDYyM0Q0REM4ODAwOTRG
RkI0IC8qIFJlbW90ZVRleHRUcmFja1Byb3h5LmggKi8sCiAJCQkJN0I1QTNEQTgyN0E3RENCQzAw
NkM2Rjk3IC8qIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmNwcCAqLywKIAkJCQk3QjVBM0RB
NzI3QTdEQ0JDMDA2QzZGOTcgLyogUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuaCAqLywKKwkJ
CQk0MTNDNTQyMjI3QzkwRjRDMDAyRkNEQTggLyogUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAu
bWVzc2FnZXMuaW4gKi8sCiAJCQkJMDcxQkM1ODQyM0NDMkMwOTAwNjgwRDdDIC8qIFJlbW90ZVZp
ZGVvVHJhY2tQcm94eS5jcHAgKi8sCiAJCQkJMDcxQkM1ODUyM0NDMkMwOTAwNjgwRDdDIC8qIFJl
bW90ZVZpZGVvVHJhY2tQcm94eS5oICovLAogCQkJCTA3RTE5RjA1MjNENERDODgwMDk0RkZCNCAv
KiBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbi5oICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1l
UHJveHkuY3BwCmluZGV4IDk2YmJhOGUwZmM5MTM4NzJmYWJiNzVlOWQyODZhYTIxYTk4NWNjODIu
LmIwMGZkMjRkMjE1OTBiMDllZDQ2MDk5NGQzOTQyYjQwZWZkNmM3ZjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJh
bWVQcm94eS5jcHAKQEAgLTEwNywxMCArMTA3LDEwIEBAIENWUGl4ZWxCdWZmZXJSZWYgUmVtb3Rl
VmlkZW9GcmFtZVByb3h5OjpwaXhlbEJ1ZmZlcigpIGNvbnN0CiAgICAgICAgIGF1dG8gdmlkZW9G
cmFtZU9iamVjdEhlYXBQcm94eSA9IHN0ZDo6ZXhjaGFuZ2UobV92aWRlb0ZyYW1lT2JqZWN0SGVh
cFByb3h5LCBudWxscHRyKTsKIAogICAgICAgICBib29sIGNhblNlbmRTeW5jID0gaXNNYWluUnVu
TG9vcCgpOyAvLyBGSVhNRTogd2Ugc2hvdWxkIGJlIGFibGUgdG8gc2VuZFN5bmMgZnJvbSBvdGhl
ciB0aHJlYWRzIHRvby4KLSAgICAgICAgLy8gQ3VycmVudGx5IHdlIGp1c3Qga2V5IHdpdGggdGhp
cywgYXMgdGhlcmUgaXMgbm8gY29uZGl0aW9uIGZvciAiaGFzIGFjY2VzcyB0byBJT0tpdCIuCi0g
ICAgICAgIGlmIChXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zaG91bGRVc2VSZW1vdGVSZW5kZXJp
bmdGb3JXZWJHTCgpIHx8ICFjYW5TZW5kU3luYykgeworICAgICAgICBib29sIGNhblVzZUlPU3Vy
ZmFjZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNob3VsZFVzZVJlbW90ZVJlbmRlcmluZ0Zv
cldlYkdMKCk7CisgICAgICAgIGlmICghY2FuVXNlSU9TdXJmYWNlIHx8ICFjYW5TZW5kU3luYykg
ewogICAgICAgICAgICAgQmluYXJ5U2VtYXBob3JlIHNlbWFwaG9yZTsKLSAgICAgICAgICAgIHZp
ZGVvRnJhbWVPYmplY3RIZWFwUHJveHktPmdldFZpZGVvRnJhbWVCdWZmZXIoKnRoaXMsIFt0aGlz
LCAmc2VtYXBob3JlXShhdXRvIHBpeGVsQnVmZmVyKSB7CisgICAgICAgICAgICB2aWRlb0ZyYW1l
T2JqZWN0SGVhcFByb3h5LT5nZXRWaWRlb0ZyYW1lQnVmZmVyKCp0aGlzLCBjYW5Vc2VJT1N1cmZh
Y2UsIFt0aGlzLCAmc2VtYXBob3JlXShhdXRvIHBpeGVsQnVmZmVyKSB7CiAgICAgICAgICAgICAg
ICAgbV9waXhlbEJ1ZmZlciA9IFdURk1vdmUocGl4ZWxCdWZmZXIpOwogICAgICAgICAgICAgICAg
IHNlbWFwaG9yZS5zaWduYWwoKTsKICAgICAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKaW5kZXgg
NThlY2MxODJlYTQ5Y2M1MmVhNTJmMzVkYjE3ZTk4MWM4OTg5YWNiMy4uY2RlZjQ1M2M0MjFmMGIz
OTBmYjgxYmZhYTM0OGY2M2QwN2JhM2VjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCkBAIC00NDcsNDYgKzQ0
NywyMCBAQCBpbnQzMl90IExpYldlYlJUQ0NvZGVjczo6aW5pdGlhbGl6ZUVuY29kZXIoRW5jb2Rl
ciYgZW5jb2RlciwgdWludDE2X3Qgd2lkdGgsIHVpbgogICAgIHJldHVybiAwOwogfQogCi10ZW1w
bGF0ZTx0eXBlbmFtZSBCdWZmZXI+Ci1ib29sIGNvcHlTaGFyZWRWaWRlb0ZyYW1lKExpYldlYlJU
Q0NvZGVjczo6RW5jb2RlciYgZW5jb2RlciwgQnVmZmVyJiYgZnJhbWVCdWZmZXIpCi17Ci0gICAg
cmV0dXJuIGVuY29kZXIuc2hhcmVkVmlkZW9GcmFtZVdyaXRlci53cml0ZShmcmFtZUJ1ZmZlciwK
LSAgICAgICAgWyZdKGF1dG8mIHNlbWFwaG9yZSkgeyBlbmNvZGVyLmNvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpTZXRTaGFyZWRWaWRlb0ZyYW1lU2VtYXBo
b3JlIHsgZW5jb2Rlci5pZGVudGlmaWVyLCBzZW1hcGhvcmUgfSwgMCk7IH0sCi0gICAgICAgIFsm
XShhdXRvJiBoYW5kbGUpIHsgZW5jb2Rlci5jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJX
ZWJSVENDb2RlY3NQcm94eTo6U2V0U2hhcmVkVmlkZW9GcmFtZU1lbW9yeSB7IGVuY29kZXIuaWRl
bnRpZmllciwgaGFuZGxlIH0sIDApOyB9Ci0gICAgKTsKLX0KLQogaW50MzJfdCBMaWJXZWJSVEND
b2RlY3M6OmVuY29kZUZyYW1lKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IHdlYnJ0Yzo6VmlkZW9G
cmFtZSYgZnJhbWUsIGJvb2wgc2hvdWxkRW5jb2RlQXNLZXlGcmFtZSkKIHsKICAgICBMb2NrZXIg
bG9ja2VyIHsgbV9lbmNvZGVyc0xvY2sgfTsKICAgICBpZiAoIWVuY29kZXIuY29ubmVjdGlvbikK
ICAgICAgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsKIAotICAgIHN0ZDo6b3B0
aW9uYWw8UmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2U+IHJlbW90ZVZpZGVvRnJhbWVSZWFk
UmVmZXJlbmNlOwotICAgIGlmIChhdXRvKiBwcm92aWRlciA9IHdlYnJ0Yzo6dmlkZW9GcmFtZUJ1
ZmZlclByb3ZpZGVyKGZyYW1lKSkgewotICAgICAgICBhdXRvKiB2aWRlb0ZyYW1lID0gc3RhdGlj
X2Nhc3Q8VmlkZW9GcmFtZSo+KHByb3ZpZGVyKTsKLSAgICAgICAgaWYgKGlzPFJlbW90ZVZpZGVv
RnJhbWVQcm94eT4odmlkZW9GcmFtZSkpCi0gICAgICAgICAgICByZW1vdGVWaWRlb0ZyYW1lUmVh
ZFJlZmVyZW5jZSA9IGRvd25jYXN0PFJlbW90ZVZpZGVvRnJhbWVQcm94eT4odmlkZW9GcmFtZSkt
Pm5ld1JlYWRSZWZlcmVuY2UoKTsKLSAgICB9Ci0KLSAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZl
clJlZj4gYnVmZmVyOwotICAgIGlmICghcmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UpIHsK
LSAgICAgICAgYnVmZmVyID0gYWRvcHRDRih3ZWJydGM6OnBpeGVsQnVmZmVyRnJvbUZyYW1lKGZy
YW1lKSk7Ci0gICAgICAgIGlmICghYnVmZmVyKSB7Ci0gICAgICAgICAgICAvLyBidWZmZXIgaXMg
bm90IG5hdGl2ZSwgd2UgbmVlZCB0byBjb3B5IHRvIHNoYXJlZCB2aWRlbyBmcmFtZS4KLSAgICAg
ICAgICAgIGlmICghY29weVNoYXJlZFZpZGVvRnJhbWUoZW5jb2RlciwgZnJhbWUpKQotICAgICAg
ICAgICAgICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7Ci0gICAgICAgIH0KLSAg
ICB9Ci0KLSAgICBhdXRvIHNhbXBsZSA9IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUoYnVmZmVy
LmdldCgpLCBNZWRpYVRpbWUoZnJhbWUudGltZXN0YW1wX3VzKCkgKiAxMDAwLCAxMDAwMDAwKSwg
dG9NZWRpYVNhbXBsZVZpZGVvUm90YXRpb24oZnJhbWUucm90YXRpb24oKSksIFJlbW90ZVZpZGVv
U2FtcGxlOjpTaG91bGRDaGVja0ZvcklPU3VyZmFjZTo6Tm8pOwotICAgIGlmIChidWZmZXIgJiYg
IXNhbXBsZS0+c3VyZmFjZSgpKSB7Ci0gICAgICAgIC8vIGJ1ZmZlciBpcyBub3QgSU9TdXJmYWNl
LCB3ZSBuZWVkIHRvIGNvcHkgdG8gc2hhcmVkIHZpZGVvIGZyYW1lLgotICAgICAgICBpZiAoIWNv
cHlTaGFyZWRWaWRlb0ZyYW1lKGVuY29kZXIsIGJ1ZmZlci5nZXQoKSkpCi0gICAgICAgICAgICBy
ZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOwotICAgIH0KKyAgICBhdXRvIGJ1ZmZlciA9
IGVuY29kZXIuc2hhcmVkVmlkZW9GcmFtZVdyaXRlci53cml0ZUJ1ZmZlcihmcmFtZSwKKyAgICAg
ICAgWyZdKGF1dG8mIHNlbWFwaG9yZSkgeyBlbmNvZGVyLmNvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpTZXRTaGFyZWRWaWRlb0ZyYW1lU2VtYXBob3JlIHsg
ZW5jb2Rlci5pZGVudGlmaWVyLCBzZW1hcGhvcmUgfSwgMCk7IH0sCisgICAgICAgIFsmXShhdXRv
JiBoYW5kbGUpIHsgZW5jb2Rlci5jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVEND
b2RlY3NQcm94eTo6U2V0U2hhcmVkVmlkZW9GcmFtZU1lbW9yeSB7IGVuY29kZXIuaWRlbnRpZmll
ciwgaGFuZGxlIH0sIDApOyB9KTsKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIFdF
QlJUQ19WSURFT19DT0RFQ19FUlJPUjsKIAotICAgIGVuY29kZXIuY29ubmVjdGlvbi0+c2VuZChN
ZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OkVuY29kZUZyYW1lIHsgZW5jb2Rlci5pZGVu
dGlmaWVyLCAqc2FtcGxlLCBmcmFtZS50aW1lc3RhbXAoKSwgc2hvdWxkRW5jb2RlQXNLZXlGcmFt
ZSwgcmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UgfSwgMCk7CisgICAgU2hhcmVkVmlkZW9G
cmFtZSBzaGFyZWRWaWRlb0ZyYW1lIHsgTWVkaWFUaW1lKGZyYW1lLnRpbWVzdGFtcF91cygpICog
MTAwMCwgMTAwMDAwMCksIGZhbHNlLCB0b01lZGlhU2FtcGxlVmlkZW9Sb3RhdGlvbihmcmFtZS5y
b3RhdGlvbigpKSwgV1RGTW92ZSgqYnVmZmVyKSB9OworICAgIGVuY29kZXIuY29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OkVuY29kZUZyYW1lIHsgZW5jb2Rl
ci5pZGVudGlmaWVyLCBzaGFyZWRWaWRlb0ZyYW1lLCBmcmFtZS50aW1lc3RhbXAoKSwgc2hvdWxk
RW5jb2RlQXNLZXlGcmFtZSB9LCAwKTsKICAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09L
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9S
ZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5LmgKaW5kZXggZDVl
NWVkMzEwYTI0MzA5NDY4MWYzZDc3NzliYzQ4ZTI1YmU3YzFlMi4uZTc5NDhjNTI4MWFkZGMwNTVl
Yzc5ZmEwMzJhNDQ3MjQ2MzYzNTgxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RI
ZWFwUHJveHkuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgflJlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwUHJveHkoKSA9IGRlZmF1bHQ7CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAg
ICB2b2lkIGdldFZpZGVvRnJhbWVCdWZmZXIoY29uc3QgUmVtb3RlVmlkZW9GcmFtZVByb3h5JiBw
cm94eSwgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvcjo6Q2FsbGJhY2sm
JiBjYWxsYmFjaykgeyBtX3Byb2Nlc3Nvci0+Z2V0VmlkZW9GcmFtZUJ1ZmZlcihwcm94eSwgV1RG
TW92ZShjYWxsYmFjaykpOyB9CisgICAgdm9pZCBnZXRWaWRlb0ZyYW1lQnVmZmVyKGNvbnN0IFJl
bW90ZVZpZGVvRnJhbWVQcm94eSYgcHJveHksIGJvb2wgY2FuVXNlSU9TdXJmYWNlLCBSZW1vdGVW
aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yOjpDYWxsYmFjayYmIGNhbGxiYWNrKSB7
IG1fcHJvY2Vzc29yLT5nZXRWaWRlb0ZyYW1lQnVmZmVyKHByb3h5LCBjYW5Vc2VJT1N1cmZhY2Us
IFdURk1vdmUoY2FsbGJhY2spKTsgfQogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0
SGVhcFByb3h5UHJvY2Vzc29yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IuY3BwCmluZGV4IDZk
NmM3YTgyYWYxNjgyZDA5NTQ5ZDJlMmNlOWRkYzNkZjFjNDM1MGQuLmM4NzI0NmFjNzBmZWZhYmMx
ZGI5MzRkNmUwMjJjYTg5MzVmZWU4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVv
RnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IuY3BwCkBAIC05NCwyMCArOTQsMTcgQEAgUmVt
b3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvcjo6Q2FsbGJhY2sgUmVtb3RlVmlk
ZW9GcmFtZU9iamVjdEhlYXBQcm8KICAgICByZXR1cm4gbV9jYWxsYmFja3MudGFrZShpZGVudGlm
aWVyKTsKIH0KIAotdm9pZCBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29y
Ojp2aWRlb0ZyYW1lQnVmZmVyTm90Rm91bmQoUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIgaWRl
bnRpZmllcikKK3ZvaWQgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvcjo6
bmV3VmlkZW9GcmFtZUJ1ZmZlcihSZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllciBpZGVudGlmaWVy
LCBzdGQ6Om9wdGlvbmFsPFNoYXJlZFZpZGVvRnJhbWU6OkJ1ZmZlcj4mJiBzaGFyZWRWaWRlb0Zy
YW1lQnVmZmVyKQogeworICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZl
cjsKKyAgICBpZiAoc2hhcmVkVmlkZW9GcmFtZUJ1ZmZlcikKKyAgICAgICAgcGl4ZWxCdWZmZXIg
PSBtX3NoYXJlZFZpZGVvRnJhbWVSZWFkZXIucmVhZEJ1ZmZlcihXVEZNb3ZlKCpzaGFyZWRWaWRl
b0ZyYW1lQnVmZmVyKSk7CiAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSB0YWtlQ2FsbGJhY2soaWRl
bnRpZmllcikpCi0gICAgICAgIGNhbGxiYWNrKG51bGxwdHIpOwotfQorICAgICAgICBjYWxsYmFj
ayhXVEZNb3ZlKHBpeGVsQnVmZmVyKSk7CiAKLXZvaWQgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXBQcm94eVByb2Nlc3Nvcjo6bmV3VmlkZW9GcmFtZUJ1ZmZlcihSZW1vdGVWaWRlb0ZyYW1lSWRl
bnRpZmllciBpZGVudGlmaWVyKQotewotICAgIGF1dG8gcmVzdWx0ID0gbV9zaGFyZWRWaWRlb0Zy
YW1lUmVhZGVyLnJlYWQoKTsKLSAgICBpZiAoYXV0byBjYWxsYmFjayA9IHRha2VDYWxsYmFjayhp
ZGVudGlmaWVyKSkKLSAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKIH0KIAotdm9p
ZCBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yOjpnZXRWaWRlb0ZyYW1l
QnVmZmVyKGNvbnN0IFJlbW90ZVZpZGVvRnJhbWVQcm94eSYgZnJhbWUsIENhbGxiYWNrJiYgY2Fs
bGJhY2spCit2b2lkIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3I6Omdl
dFZpZGVvRnJhbWVCdWZmZXIoY29uc3QgUmVtb3RlVmlkZW9GcmFtZVByb3h5JiBmcmFtZSwgYm9v
bCBjYW5Vc2VJT1N1cmZhY2UsIENhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgewogICAgICAg
ICBMb2NrZXIgbG9jayhtX2NhbGxiYWNrc0xvY2spOwpAQCAtMTE2LDEwICsxMTMsMTAgQEAgdm9p
ZCBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yOjpnZXRWaWRlb0ZyYW1l
QnVmZmVyKGNvbnN0IFJlbW90ZVYKICAgICB9CiAgICAgTG9ja2VyIGxvY2sobV9jb25uZWN0aW9u
TG9jayk7CiAgICAgaWYgKCFtX2Nvbm5lY3Rpb25JRCkgewotICAgICAgICB2aWRlb0ZyYW1lQnVm
ZmVyTm90Rm91bmQoZnJhbWUuaWRlbnRpZmllcigpKTsKKyAgICAgICAgdGFrZUNhbGxiYWNrKGZy
YW1lLmlkZW50aWZpZXIoKSkobnVsbHB0cik7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAg
SVBDOjpDb25uZWN0aW9uOjpzZW5kKG1fY29ubmVjdGlvbklELCBNZXNzYWdlczo6UmVtb3RlVmlk
ZW9GcmFtZU9iamVjdEhlYXA6OkdldFZpZGVvRnJhbWVCdWZmZXIoZnJhbWUubmV3UmVhZFJlZmVy
ZW5jZSgpKSwgMCwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRp
bmdGb3JTeW5jUmVwbHkpOworICAgIElQQzo6Q29ubmVjdGlvbjo6c2VuZChtX2Nvbm5lY3Rpb25J
RCwgTWVzc2FnZXM6OlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOjpHZXRWaWRlb0ZyYW1lQnVm
ZmVyKGZyYW1lLm5ld1JlYWRSZWZlcmVuY2UoKSwgY2FuVXNlSU9TdXJmYWNlKSwgMCwgSVBDOjpT
ZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOwog
fQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9S
ZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJv
Y2Vzc29yLmgKaW5kZXggZjBlNzZmM2JhNGE0NTE1ZjJjYTBhM2M1ZTY0YzY1Yzg5MjY2ZmYyYS4u
NmJmMzRiNjVmYzYxZmM4NjI1OGRmYzVmODVjOGU4YzJkNTI4YzBmNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXBQcm94eVByb2Nlc3Nvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IuaApAQCAtNTUsNyAr
NTUsNyBAQCBwdWJsaWM6CiAgICAgflJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9j
ZXNzb3IoKTsKIAogICAgIHVzaW5nIENhbGxiYWNrID0gRnVuY3Rpb248dm9pZChSZXRhaW5QdHI8
Q1ZQaXhlbEJ1ZmZlclJlZj4mJik+OwotICAgIHZvaWQgZ2V0VmlkZW9GcmFtZUJ1ZmZlcihjb25z
dCBSZW1vdGVWaWRlb0ZyYW1lUHJveHkmLCBDYWxsYmFjayYmKTsKKyAgICB2b2lkIGdldFZpZGVv
RnJhbWVCdWZmZXIoY29uc3QgUmVtb3RlVmlkZW9GcmFtZVByb3h5JiwgYm9vbCBjYW5Vc2VJT1N1
cmZjZSwgQ2FsbGJhY2smJik7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgUmVtb3RlVmlkZW9G
cmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3NvcihHUFVQcm9jZXNzQ29ubmVjdGlvbiYpOwpAQCAt
NjUsOCArNjUsNyBAQCBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2VzCiAgICAgdm9pZCBzZXRTaGFy
ZWRWaWRlb0ZyYW1lU2VtYXBob3JlKElQQzo6U2VtYXBob3JlJiYpOwogICAgIHZvaWQgc2V0U2hh
cmVkVmlkZW9GcmFtZU1lbW9yeShjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYpOwotICAg
IHZvaWQgdmlkZW9GcmFtZUJ1ZmZlck5vdEZvdW5kKFJlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVy
KTsKLSAgICB2b2lkIG5ld1ZpZGVvRnJhbWVCdWZmZXIoUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZp
ZXIpOworICAgIHZvaWQgbmV3VmlkZW9GcmFtZUJ1ZmZlcihSZW1vdGVWaWRlb0ZyYW1lSWRlbnRp
Zmllciwgc3RkOjpvcHRpb25hbDxTaGFyZWRWaWRlb0ZyYW1lOjpCdWZmZXI+JiYpOwogCiAgICAg
Ly8gR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkNsaWVudAogICAgIHZvaWQgZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb25EaWRDbG9zZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQ
cm94eVByb2Nlc3Nvci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IubWVzc2FnZXMu
aW4KaW5kZXggMWQ1NTUzNmRkOGE0NThjYmQ0YjE1ODNlMmFlMTAxNDExNDY5N2ExMi4uOTNjNTg1
ZmM0YTE5Zjk1OTIzMjRlMmU3NWNhMWNiODRhY2UzMWE1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94
eVByb2Nlc3Nvci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLm1lc3NhZ2Vz
LmluCkBAIC0yNSw4ICsyNSw3IEBACiBtZXNzYWdlcyAtPiBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0
SGVhcFByb3h5UHJvY2Vzc29yIHsKICAgICBTZXRTaGFyZWRWaWRlb0ZyYW1lU2VtYXBob3JlKElQ
Qzo6U2VtYXBob3JlIHNlbWFwaG9yZSkKICAgICBTZXRTaGFyZWRWaWRlb0ZyYW1lTWVtb3J5KFdl
YktpdDo6U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgc3RvcmFnZUhhbmRsZSkKLSAgICBWaWRlb0Zy
YW1lQnVmZmVyTm90Rm91bmQoV2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllciBpZGVu
dGlmaWVyKQotICAgIE5ld1ZpZGVvRnJhbWVCdWZmZXIoV2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1l
SWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIE5ld1ZpZGVvRnJhbWVCdWZmZXIoV2ViS2l0OjpS
ZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllciBpZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFdlYktp
dDo6U2hhcmVkVmlkZW9GcmFtZTo6QnVmZmVyPiBmcmFtZSkKIH0KIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1l
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJh
bWUuY3BwCmluZGV4IDQzNWFjMzdiODRmZWU2YTM3OGFjY2M3NmE3MjJiNTI1NzM2NGY4NjcuLjEx
YzQ3ODIyZTc2MjRhNGZiZWI1MzdkMTI1NGE2ZTQ5YmVlN2QwYTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuY3Bw
CkBAIC0zNyw2ICszNywxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkVmlkZW9GcmFtZUlu
Zm8uaD4KICNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KIAorI2lmIFVTRShMSUJXRUJSVEMpCisjaW5j
bHVkZSA8d2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmg+CisjZW5kaWYKKwogI2lu
Y2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29y
ZVZpZGVvU29mdExpbmsuaD4KIApAQCAtOTAsNDEgKzk0LDU1IEBAIGJvb2wgU2hhcmVkVmlkZW9G
cmFtZVdyaXRlcjo6cHJlcGFyZVdyaXRpbmcoY29uc3QgU2hhcmVkVmlkZW9GcmFtZUluZm8mIGlu
Zm8sIGNvCiAKIHN0ZDo6b3B0aW9uYWw8U2hhcmVkVmlkZW9GcmFtZT4gU2hhcmVkVmlkZW9GcmFt
ZVdyaXRlcjo6d3JpdGUoTWVkaWFTYW1wbGUmIGZyYW1lLCBjb25zdCBGdW5jdGlvbjx2b2lkKElQ
Qzo6U2VtYXBob3JlJik+JiBuZXdTZW1hcGhvcmVDYWxsYmFjaywgY29uc3QgRnVuY3Rpb248dm9p
ZChjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYpPiYgbmV3TWVtb3J5Q2FsbGJhY2spCiB7
Ci0gICAgU2hhcmVkVmlkZW9GcmFtZSBzaGFyZWRWaWRlb0ZyYW1lIHsgZnJhbWUucHJlc2VudGF0
aW9uVGltZSgpLCBmcmFtZS52aWRlb01pcnJvcmVkKCksIGZyYW1lLnZpZGVvUm90YXRpb24oKSwg
bnVsbHB0ciB9OwotICAgIGlmIChpczxSZW1vdGVWaWRlb0ZyYW1lUHJveHk+KGZyYW1lKSkgewot
ICAgICAgICBzaGFyZWRWaWRlb0ZyYW1lLmJ1ZmZlciA9IGRvd25jYXN0PFJlbW90ZVZpZGVvRnJh
bWVQcm94eT4oZnJhbWUpLm5ld1JlYWRSZWZlcmVuY2UoKTsKLSAgICAgICAgcmV0dXJuIHNoYXJl
ZFZpZGVvRnJhbWU7Ci0gICAgfQotICAgIGlmIChpczxNZWRpYVNhbXBsZUFWRk9iakM+KGZyYW1l
KSkgewotICAgICAgICBpZiAoYXV0byBwaXhlbEJ1ZmZlciA9IGRvd25jYXN0PE1lZGlhU2FtcGxl
QVZGT2JqQz4oZnJhbWUpLnBpeGVsQnVmZmVyKCkpIHsKLSAgICAgICAgICAgIGlmIChhdXRvIHN1
cmZhY2UgPSBDVlBpeGVsQnVmZmVyR2V0SU9TdXJmYWNlKHBpeGVsQnVmZmVyKSkgewotICAgICAg
ICAgICAgICAgIHNoYXJlZFZpZGVvRnJhbWUuYnVmZmVyID0gTWFjaFNlbmRSaWdodDo6YWRvcHQo
SU9TdXJmYWNlQ3JlYXRlTWFjaFBvcnQoc3VyZmFjZSkpOwotICAgICAgICAgICAgICAgIHJldHVy
biBzaGFyZWRWaWRlb0ZyYW1lOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotICAg
IGlmICghd3JpdGUoZnJhbWUucGl4ZWxCdWZmZXIoKSwgbmV3U2VtYXBob3JlQ2FsbGJhY2ssIG5l
d01lbW9yeUNhbGxiYWNrKSkKKyAgICBhdXRvIGJ1ZmZlciA9IHdyaXRlQnVmZmVyKGZyYW1lLCBu
ZXdTZW1hcGhvcmVDYWxsYmFjaywgbmV3TWVtb3J5Q2FsbGJhY2spOworICAgIGlmICghYnVmZmVy
KQogICAgICAgICByZXR1cm4geyB9OwotICAgIHJldHVybiBzaGFyZWRWaWRlb0ZyYW1lOworICAg
IHJldHVybiBTaGFyZWRWaWRlb0ZyYW1lIHsgZnJhbWUucHJlc2VudGF0aW9uVGltZSgpLCBmcmFt
ZS52aWRlb01pcnJvcmVkKCksIGZyYW1lLnZpZGVvUm90YXRpb24oKSwgV1RGTW92ZSgqYnVmZmVy
KSB9OwogfQogCi1ib29sIFNoYXJlZFZpZGVvRnJhbWVXcml0ZXI6OndyaXRlKENWUGl4ZWxCdWZm
ZXJSZWYgcGl4ZWxCdWZmZXIsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoSVBDOjpTZW1hcGhvcmUmKT4m
IG5ld1NlbWFwaG9yZUNhbGxiYWNrLCBjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0IFNoYXJlZE1l
bW9yeTo6SVBDSGFuZGxlJik+JiBuZXdNZW1vcnlDYWxsYmFjaykKK3N0ZDo6b3B0aW9uYWw8U2hh
cmVkVmlkZW9GcmFtZTo6QnVmZmVyPiBTaGFyZWRWaWRlb0ZyYW1lV3JpdGVyOjp3cml0ZUJ1ZmZl
cihNZWRpYVNhbXBsZSYgZnJhbWUsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoSVBDOjpTZW1hcGhvcmUm
KT4mIG5ld1NlbWFwaG9yZUNhbGxiYWNrLCBjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0IFNoYXJl
ZE1lbW9yeTo6SVBDSGFuZGxlJik+JiBuZXdNZW1vcnlDYWxsYmFjaykKIHsKKyAgICBpZiAoaXM8
UmVtb3RlVmlkZW9GcmFtZVByb3h5PihmcmFtZSkpCisgICAgICAgIHJldHVybiBkb3duY2FzdDxS
ZW1vdGVWaWRlb0ZyYW1lUHJveHk+KGZyYW1lKS5uZXdSZWFkUmVmZXJlbmNlKCk7CisKKyAgICBy
ZXR1cm4gd3JpdGVCdWZmZXIoZnJhbWUucGl4ZWxCdWZmZXIoKSwgbmV3U2VtYXBob3JlQ2FsbGJh
Y2ssIG5ld01lbW9yeUNhbGxiYWNrKTsKK30KKworc3RkOjpvcHRpb25hbDxTaGFyZWRWaWRlb0Zy
YW1lOjpCdWZmZXI+IFNoYXJlZFZpZGVvRnJhbWVXcml0ZXI6OndyaXRlQnVmZmVyKENWUGl4ZWxC
dWZmZXJSZWYgcGl4ZWxCdWZmZXIsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoSVBDOjpTZW1hcGhvcmUm
KT4mIG5ld1NlbWFwaG9yZUNhbGxiYWNrLCBjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0IFNoYXJl
ZE1lbW9yeTo6SVBDSGFuZGxlJik+JiBuZXdNZW1vcnlDYWxsYmFjaywgYm9vbCBjYW5Vc2VJT1N1
cmZhY2UpCit7CisgICAgaWYgKCFwaXhlbEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIHsgfTsKKwor
ICAgIGlmIChjYW5Vc2VJT1N1cmZhY2UpIHsKKyAgICAgICAgaWYgKGF1dG8gc3VyZmFjZSA9IENW
UGl4ZWxCdWZmZXJHZXRJT1N1cmZhY2UocGl4ZWxCdWZmZXIpKQorICAgICAgICAgICAgcmV0dXJu
IE1hY2hTZW5kUmlnaHQ6OmFkb3B0KElPU3VyZmFjZUNyZWF0ZU1hY2hQb3J0KHN1cmZhY2UpKTsK
KyAgICB9CisKICAgICBhdXRvIGluZm8gPSBTaGFyZWRWaWRlb0ZyYW1lSW5mbzo6ZnJvbUNWUGl4
ZWxCdWZmZXIocGl4ZWxCdWZmZXIpOwogICAgIGlmICghcHJlcGFyZVdyaXRpbmcoaW5mbywgbmV3
U2VtYXBob3JlQ2FsbGJhY2ssIG5ld01lbW9yeUNhbGxiYWNrKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIGluZm8ud3JpdGVQaXhlbEJ1
ZmZlcihwaXhlbEJ1ZmZlciwgc3RhdGljX2Nhc3Q8dWludDhfdCo+KG1fc3RvcmFnZS0+ZGF0YSgp
KSk7CisgICAgaWYgKCFpbmZvLndyaXRlUGl4ZWxCdWZmZXIocGl4ZWxCdWZmZXIsIHN0YXRpY19j
YXN0PHVpbnQ4X3QqPihtX3N0b3JhZ2UtPmRhdGEoKSkpKQorICAgICAgICByZXR1cm4geyB9Owor
ICAgIHJldHVybiBudWxscHRyOwogfQogCiAjaWYgVVNFKExJQldFQlJUQykKLWJvb2wgU2hhcmVk
VmlkZW9GcmFtZVdyaXRlcjo6d3JpdGUoY29uc3Qgd2VicnRjOjpWaWRlb0ZyYW1lJiBmcmFtZSwg
Y29uc3QgRnVuY3Rpb248dm9pZChJUEM6OlNlbWFwaG9yZSYpPiYgbmV3U2VtYXBob3JlQ2FsbGJh
Y2ssIGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmKT4m
IG5ld01lbW9yeUNhbGxiYWNrKQorc3RkOjpvcHRpb25hbDxTaGFyZWRWaWRlb0ZyYW1lOjpCdWZm
ZXI+IFNoYXJlZFZpZGVvRnJhbWVXcml0ZXI6OndyaXRlQnVmZmVyKGNvbnN0IHdlYnJ0Yzo6Vmlk
ZW9GcmFtZSYgZnJhbWUsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoSVBDOjpTZW1hcGhvcmUmKT4mIG5l
d1NlbWFwaG9yZUNhbGxiYWNrLCBjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0IFNoYXJlZE1lbW9y
eTo6SVBDSGFuZGxlJik+JiBuZXdNZW1vcnlDYWxsYmFjaykKIHsKKyAgICBpZiAoYXV0byogcHJv
dmlkZXIgPSB3ZWJydGM6OnZpZGVvRnJhbWVCdWZmZXJQcm92aWRlcihmcmFtZSkpCisgICAgICAg
IHJldHVybiB3cml0ZUJ1ZmZlcigqc3RhdGljX2Nhc3Q8VmlkZW9GcmFtZSo+KHByb3ZpZGVyKSwg
bmV3U2VtYXBob3JlQ2FsbGJhY2ssIG5ld01lbW9yeUNhbGxiYWNrKTsKKworICAgIGlmIChhdXRv
IHBpeGVsQnVmZmVyID0gYWRvcHRDRih3ZWJydGM6OnBpeGVsQnVmZmVyRnJvbUZyYW1lKGZyYW1l
KSkpCisgICAgICAgIHJldHVybiB3cml0ZUJ1ZmZlcihwaXhlbEJ1ZmZlci5nZXQoKSwgbmV3U2Vt
YXBob3JlQ2FsbGJhY2ssIG5ld01lbW9yeUNhbGxiYWNrKTsKKwogICAgIGF1dG8gaW5mbyA9IFNo
YXJlZFZpZGVvRnJhbWVJbmZvOjpmcm9tVmlkZW9GcmFtZShmcmFtZSk7CiAgICAgaWYgKCFwcmVw
YXJlV3JpdGluZyhpbmZvLCBuZXdTZW1hcGhvcmVDYWxsYmFjaywgbmV3TWVtb3J5Q2FsbGJhY2sp
KQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIGluZm8ud3JpdGVWaWRlb0ZyYW1l
KGZyYW1lLCBzdGF0aWNfY2FzdDx1aW50OF90Kj4obV9zdG9yYWdlLT5kYXRhKCkpKTsKKyAgICBp
ZiAoIWluZm8ud3JpdGVWaWRlb0ZyYW1lKGZyYW1lLCBzdGF0aWNfY2FzdDx1aW50OF90Kj4obV9z
dG9yYWdlLT5kYXRhKCkpKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKIH0KICNlbmRpZgogCkBAIC0xNDMsNyArMTYxLDcgQEAgU2hhcmVkVmlkZW9GcmFtZVJlYWRl
cjo6U2hhcmVkVmlkZW9GcmFtZVJlYWRlcihSZWZQdHI8UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXAKIAogU2hhcmVkVmlkZW9GcmFtZVJlYWRlcjo6U2hhcmVkVmlkZW9GcmFtZVJlYWRlcigpID0g
ZGVmYXVsdDsKIAotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFNoYXJlZFZpZGVvRnJhbWVS
ZWFkZXI6OnJlYWQoKQorUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFNoYXJlZFZpZGVvRnJh
bWVSZWFkZXI6OnJlYWRCdWZmZXJGcm9tU2hhcmVkTWVtb3J5KCkKIHsKICAgICBpZiAoIW1fc3Rv
cmFnZSkKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTE2OSw5ICsxODcsOSBAQCBSZXRhaW5QdHI8
Q1ZQaXhlbEJ1ZmZlclJlZj4gU2hhcmVkVmlkZW9GcmFtZVJlYWRlcjo6cmVhZCgpCiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIAotUmVmUHRyPE1lZGlhU2FtcGxlPiBTaGFyZWRWaWRlb0ZyYW1lUmVh
ZGVyOjpyZWFkKFNoYXJlZFZpZGVvRnJhbWUmJiBzaGFyZWRWaWRlb0ZyYW1lKQorUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+IFNoYXJlZFZpZGVvRnJhbWVSZWFkZXI6OnJlYWRCdWZmZXIoU2hh
cmVkVmlkZW9GcmFtZTo6QnVmZmVyJiYgYnVmZmVyKQogewotICAgIGF1dG8gcGl4ZWxCdWZmZXIg
PSBzd2l0Y2hPbihXVEZNb3ZlKHNoYXJlZFZpZGVvRnJhbWUuYnVmZmVyKSwKKyAgICByZXR1cm4g
c3dpdGNoT24oV1RGTW92ZShidWZmZXIpLAogICAgIFt0aGlzXShSZW1vdGVWaWRlb0ZyYW1lUmVh
ZFJlZmVyZW5jZSYmIHJlZmVyZW5jZSkgLT4gUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHsK
ICAgICAgICAgQVNTRVJUKG1fb2JqZWN0SGVhcCk7CiAgICAgICAgIGlmICghbV9vYmplY3RIZWFw
KQpAQCAtMTg4LDcgKzIwNiw3IEBAIFJlZlB0cjxNZWRpYVNhbXBsZT4gU2hhcmVkVmlkZW9GcmFt
ZVJlYWRlcjo6cmVhZChTaGFyZWRWaWRlb0ZyYW1lJiYgc2hhcmVkVmlkZW9GCiAgICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OmNyZWF0ZUNWUGl4ZWxC
dWZmZXIoc3VyZmFjZS0+c3VyZmFjZSgpKS52YWx1ZV9vcihudWxscHRyKTsKICAgICB9LCBbdGhp
c10oc3RkOjpudWxscHRyX3QgcmVwcmVzZW50YXRpb24pIC0+IFJldGFpblB0cjxDVlBpeGVsQnVm
ZmVyUmVmPiB7Ci0gICAgICAgIHJldHVybiByZWFkKCk7CisgICAgICAgIHJldHVybiByZWFkQnVm
ZmVyRnJvbVNoYXJlZE1lbW9yeSgpOwogICAgIH0sIFt0aGlzXShJbnRTaXplIHNpemUpIC0+IFJl
dGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiB7CiAgICAgICAgIGlmIChtX2JsYWNrRnJhbWVTaXpl
ICE9IHNpemUpIHsKICAgICAgICAgICAgIG1fYmxhY2tGcmFtZVNpemUgPSBzaXplOwpAQCAtMTk4
LDcgKzIxNiwxMSBAQCBSZWZQdHI8TWVkaWFTYW1wbGU+IFNoYXJlZFZpZGVvRnJhbWVSZWFkZXI6
OnJlYWQoU2hhcmVkVmlkZW9GcmFtZSYmIHNoYXJlZFZpZGVvRgogICAgICAgICB9CiAgICAgICAg
IHJldHVybiBtX2JsYWNrRnJhbWUuZ2V0KCk7CiAgICAgfSk7Cit9CiAKK1JlZlB0cjxNZWRpYVNh
bXBsZT4gU2hhcmVkVmlkZW9GcmFtZVJlYWRlcjo6cmVhZChTaGFyZWRWaWRlb0ZyYW1lJiYgc2hh
cmVkVmlkZW9GcmFtZSkKK3sKKyAgICBhdXRvIHBpeGVsQnVmZmVyID0gcmVhZEJ1ZmZlcihXVEZN
b3ZlKHNoYXJlZFZpZGVvRnJhbWUuYnVmZmVyKSk7CiAgICAgaWYgKCFwaXhlbEJ1ZmZlcikKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuaAppbmRleCA1OTA0N2ZjZmJjMGI2NTEy
OWY2MzY4ODhiMzE1YjJjZThmZGYyM2NjLi41YWI0NmU4MDY2MzU0MTZlNmZkNGEwZWNjMTlkNDVm
MTIzMDFkNzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9TaGFyZWRWaWRlb0ZyYW1lLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93
ZWJydGMvU2hhcmVkVmlkZW9GcmFtZS5oCkBAIC01NSw3ICs1NSw4IEBAIHN0cnVjdCBTaGFyZWRW
aWRlb0ZyYW1lIHsKICAgICBNZWRpYVRpbWUgdGltZTsKICAgICBib29sIG1pcnJvcmVkIHsgZmFs
c2UgfTsKICAgICBXZWJDb3JlOjpNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiByb3RhdGlvbiB7
IFdlYkNvcmU6Ok1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lIH07Ci0gICAgc3RkOjp2
YXJpYW50PHN0ZDo6bnVsbHB0cl90LCBSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSwgTWFj
aFNlbmRSaWdodCwgV2ViQ29yZTo6SW50U2l6ZT4gYnVmZmVyOworICAgIHVzaW5nIEJ1ZmZlciA9
IHN0ZDo6dmFyaWFudDxzdGQ6Om51bGxwdHJfdCwgUmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVu
Y2UsIE1hY2hTZW5kUmlnaHQsIFdlYkNvcmU6OkludFNpemU+OworICAgIEJ1ZmZlciBidWZmZXI7
CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29u
c3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8U2hh
cmVkVmlkZW9GcmFtZT4gZGVjb2RlKERlY29kZXImKTsKQEAgLTY3LDkgKzY4LDkgQEAgcHVibGlj
OgogICAgIFNoYXJlZFZpZGVvRnJhbWVXcml0ZXIoKTsKIAogICAgIHN0ZDo6b3B0aW9uYWw8U2hh
cmVkVmlkZW9GcmFtZT4gd3JpdGUoV2ViQ29yZTo6TWVkaWFTYW1wbGUmLCBjb25zdCBGdW5jdGlv
bjx2b2lkKElQQzo6U2VtYXBob3JlJik+JiwgY29uc3QgRnVuY3Rpb248dm9pZChjb25zdCBTaGFy
ZWRNZW1vcnk6OklQQ0hhbmRsZSYpPiYpOwotICAgIGJvb2wgd3JpdGUoQ1ZQaXhlbEJ1ZmZlclJl
ZiwgY29uc3QgRnVuY3Rpb248dm9pZChJUEM6OlNlbWFwaG9yZSYpPiYsIGNvbnN0IEZ1bmN0aW9u
PHZvaWQoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmKT4mKTsKKyAgICBzdGQ6Om9wdGlv
bmFsPFNoYXJlZFZpZGVvRnJhbWU6OkJ1ZmZlcj4gd3JpdGVCdWZmZXIoQ1ZQaXhlbEJ1ZmZlclJl
ZiwgY29uc3QgRnVuY3Rpb248dm9pZChJUEM6OlNlbWFwaG9yZSYpPiYsIGNvbnN0IEZ1bmN0aW9u
PHZvaWQoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmKT4mLCBib29sIGNhblNlbmRJT1N1
cmZhY2UgPSB0cnVlKTsKICNpZiBVU0UoTElCV0VCUlRDKQotICAgIGJvb2wgd3JpdGUoY29uc3Qg
d2VicnRjOjpWaWRlb0ZyYW1lJiwgY29uc3QgRnVuY3Rpb248dm9pZChJUEM6OlNlbWFwaG9yZSYp
PiYsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmKT4m
KTsKKyAgICBzdGQ6Om9wdGlvbmFsPFNoYXJlZFZpZGVvRnJhbWU6OkJ1ZmZlcj4gd3JpdGVCdWZm
ZXIoY29uc3Qgd2VicnRjOjpWaWRlb0ZyYW1lJiwgY29uc3QgRnVuY3Rpb248dm9pZChJUEM6OlNl
bWFwaG9yZSYpPiYsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENI
YW5kbGUmKT4mKTsKICNlbmRpZgogICAgIHZvaWQgZGlzYWJsZSgpOwogCkBAIC03Nyw2ICs3OCw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCB3YWl0KGNvbnN0IEZ1bmN0aW9uPHZvaWQoSVBDOjpTZW1h
cGhvcmUmKT4mKTsKICAgICBib29sIGFsbG9jYXRlU3RvcmFnZShzaXplX3QsIGNvbnN0IEZ1bmN0
aW9uPHZvaWQoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmKT4mKTsKICAgICBib29sIHBy
ZXBhcmVXcml0aW5nKGNvbnN0IFdlYkNvcmU6OlNoYXJlZFZpZGVvRnJhbWVJbmZvJiwgY29uc3Qg
RnVuY3Rpb248dm9pZChJUEM6OlNlbWFwaG9yZSYpPiYsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29u
c3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmKT4mKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFNoYXJl
ZFZpZGVvRnJhbWU6OkJ1ZmZlcj4gd3JpdGVCdWZmZXIoV2ViQ29yZTo6TWVkaWFTYW1wbGUmLCBj
b25zdCBGdW5jdGlvbjx2b2lkKElQQzo6U2VtYXBob3JlJik+JiwgY29uc3QgRnVuY3Rpb248dm9p
ZChjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYpPiYpOwogCiAgICAgVW5pcXVlUmVmPElQ
Qzo6U2VtYXBob3JlPiBtX3NlbWFwaG9yZTsKICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtX3N0
b3JhZ2U7CkBAIC05NCwxMSArOTYsMTIgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2VtYXBob3Jl
KElQQzo6U2VtYXBob3JlJiYgc2VtYXBob3JlKSB7IG1fc2VtYXBob3JlID0gV1RGTW92ZShzZW1h
cGhvcmUpOyB9CiAgICAgYm9vbCBzZXRTaGFyZWRNZW1vcnkoY29uc3QgU2hhcmVkTWVtb3J5OjpJ
UENIYW5kbGUmKTsKIAotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiByZWFkKCk7CiAg
ICAgUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU2FtcGxlPiByZWFkKFNoYXJlZFZpZGVvRnJhbWUmJik7
CisgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHJlYWRCdWZmZXIoU2hhcmVkVmlkZW9G
cmFtZTo6QnVmZmVyJiYpOwogCiBwcml2YXRlOgogICAgIENWUGl4ZWxCdWZmZXJQb29sUmVmIHBp
eGVsQnVmZmVyUG9vbChjb25zdCBXZWJDb3JlOjpTaGFyZWRWaWRlb0ZyYW1lSW5mbyYpOworICAg
IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiByZWFkQnVmZmVyRnJvbVNoYXJlZE1lbW9yeSgp
OwogCiAgICAgUmVmUHRyPFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7
CiAgICAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5IG1fcmVzb3VyY2VPd25lcjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453718</attachid>
            <date>2022-03-03 04:25:14 -0800</date>
            <delta_ts>2022-03-04 01:16:18 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-237267-20220303132510.patch</filename>
            <type>text/plain</type>
            <size>36240</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI2N2ZhOGI3NGMyOWVmMDIy
Mzc5MWNjN2FjNzJlYmJiYWI4N2Q0ZTQuLmJjOGY4OGJmYmVjODRhZGMyMjliMWQ2NDhhNzViZDI2
MGZhMTQxZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDMtMDMgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSByb3V0aW5lcyB0
byBleGNoYW5nZSBTaGFyZWRWaWRlb0ZyYW1lOjpCdWZmZXIgZGlyZWN0bHkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzI2NworCisgICAgICAgIFJl
dmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBEZWZpbmUgZXhwbGljdGx5IFNoYXJl
ZFZpZGVvRnJhbWU6OkJ1ZmZlciBhcyBWYXJpYW50IG9mIHRoZSB2YXJpb3VzIGJ1ZmZlciByZXBy
ZXNlbnRhdGlvbnMuCisgICAgICAgIFRoaXMgYWxsb3dzIHRvIG1vdmUgbW9yZSBjb2RlIGluIFNo
YXJlZFZpZGVvRnJhbWUgZm9yIGluc3RhbmNlIGJ5IGFkZGluZyBkaXJlY3Qgc3VwcG9ydCBvZiBz
ZW5kaW5nIHdlYnJ0Yzo6VmlkZW9GcmFtZSBidWZmZXJzIGluIFNoYXJlZFZpZGVvRnJhbWUuCisg
ICAgICAgIFJldXNlIHRoYXQgY29kZSBpbiBMaWJXZWJSVENDb2RlY3MgYXMgYSByZWZhY3Rvcmlu
Zy9zaW1wbGlmaWNhdGlvbi4KKyAgICAgICAgUmV1c2UgdGhhdCBjb2RlIGluIFJlbW90ZVZpZGVv
RnJhbWVPYmplY3RIZWFwIHdoaWNoIGFsbG93cyB0byBleGNoYW5nZSBJT1N1cmZhY2VzIGluIGNh
c2UgV2ViUHJvY2VzcyBjYW4gdXNlIHRoZW0uCisgICAgICAgIFRoaXMgaXMgdXNlZCB3aGVuIGVu
Y29kaW5nIHN1Y2ggZnJhbWVzIHVzaW5nIHNvZnR3YXJlIGVuY29kZXJzLgorCisgICAgICAgIENv
dmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmNwcDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlh
L1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nl
c3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQ
VVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tOgorICAgICAgICAqIFdlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvci5j
cHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmpl
Y3RIZWFwUHJveHlQcm9jZXNzb3IuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMv
UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvci5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9GcmFtZS5jcHA6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuaDoKKwogMjAyMi0w
My0wMiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OIChyMjg5NDc0KTogY2FjaGVTdG9yYWdlUGF0aCBpcyBlbXB0eSBpbiBOZXR3b3JrU3RvcmFn
ZU1hbmFnZXI6OmxvY2FsT3JpZ2luU3RvcmFnZU1hbmFnZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5jcHAgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAu
Y3BwCmluZGV4IGY4ZTdjZjFhNTgyN2YyOWQ4YmY4YjNmMThjYzAzOWE0OTlhZTU5ODcuLjA4Yjgw
YTU4ZmVmOTVkMmFhYzcwY2VjZGU5Y2U2NzIwYTU3YTc5OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RI
ZWFwLmNwcApAQCAtMTAxLDQyICsxMDEsMjkgQEAgdm9pZCBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0
SGVhcDo6cmVsZWFzZVZpZGVvRnJhbWUoUmVtb3RlVmlkZW9GcmFtZVdyaXRlUmVmZXJlbmMKIH0K
IAogI2lmIFBMQVRGT1JNKENPQ09BKQotdm9pZCBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcDo6
Z2V0VmlkZW9GcmFtZUJ1ZmZlcihSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSYmIHJlYWQp
Cit2b2lkIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOjpnZXRWaWRlb0ZyYW1lQnVmZmVyKFJl
bW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlJiYgcmVhZCwgYm9vbCBjYW5TZW5kSU9TdXJmYWNl
KQogewogICAgIGFzc2VydElzQ3VycmVudChyZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFF1ZXVl
KCkpOwogCiAgICAgYXV0byBpZGVudGlmaWVyID0gcmVhZC5pZGVudGlmaWVyKCk7Ci0gICAgYXV0
byB2aWRlb0ZyYW1lID0gbV9oZWFwLnJldGlyZShXVEZNb3ZlKHJlYWQpLCAwX3MpOwotCi0gICAg
aWYgKCF2aWRlb0ZyYW1lKSB7Ci0gICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvcjo6VmlkZW9GcmFtZUJ1ZmZl
ck5vdEZvdW5kIHsgaWRlbnRpZmllciB9LCAwKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSB2aWRlb0ZyYW1lLT5waXhlbEJ1ZmZlcigpOwotICAgIGlm
ICghcGl4ZWxCdWZmZXIpIHsKLSAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yOjpWaWRlb0ZyYW1lQnVmZmVy
Tm90Rm91bmQgeyBpZGVudGlmaWVyIH0sIDApOwotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGJvb2wgcmVzdWx0ID0gbV9zaGFyZWRW
aWRlb0ZyYW1lV3JpdGVyLndyaXRlKHBpeGVsQnVmZmVyLAotICAgICAgICBbJl0oYXV0byYgc2Vt
YXBob3JlKSB7IG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlVmlkZW9GcmFtZU9i
amVjdEhlYXBQcm94eVByb2Nlc3Nvcjo6U2V0U2hhcmVkVmlkZW9GcmFtZVNlbWFwaG9yZSB7IHNl
bWFwaG9yZSB9LCAwKTsgfSwKLSAgICAgICAgWyZdKGF1dG8mIGhhbmRsZSkgeyBtX2Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNz
b3I6OlNldFNoYXJlZFZpZGVvRnJhbWVNZW1vcnkgeyBoYW5kbGUgfSwgMCk7IH0KLSAgICApOwot
ICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgQVNTRVJUX05P
VF9SRUFDSEVEIG9uY2Ugd2Ugc3VwcG9ydCBlbm91Z2ggcGl4ZWwgYnVmZmVyIHR5cGVzLgotICAg
ICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVZpZGVvRnJhbWVPYmplY3RI
ZWFwUHJveHlQcm9jZXNzb3I6OlZpZGVvRnJhbWVCdWZmZXJOb3RGb3VuZCB7IGlkZW50aWZpZXIg
fSwgMCk7Ci0gICAgICAgIHJldHVybjsKKyAgICBhdXRvIHZpZGVvRnJhbWUgPSBnZXQoV1RGTW92
ZShyZWFkKSk7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFNoYXJlZFZpZGVvRnJhbWU6OkJ1ZmZlcj4g
YnVmZmVyOworICAgIGlmICh2aWRlb0ZyYW1lKSB7CisgICAgICAgIGJ1ZmZlciA9IG1fc2hhcmVk
VmlkZW9GcmFtZVdyaXRlci53cml0ZUJ1ZmZlcih2aWRlb0ZyYW1lLT5waXhlbEJ1ZmZlcigpLAor
ICAgICAgICAgICAgWyZdKGF1dG8mIHNlbWFwaG9yZSkgeyBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVz
c2FnZXM6OlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3I6OlNldFNoYXJl
ZFZpZGVvRnJhbWVTZW1hcGhvcmUgeyBzZW1hcGhvcmUgfSwgMCk7IH0sCisgICAgICAgICAgICBb
Jl0oYXV0byYgaGFuZGxlKSB7IG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlVmlk
ZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvcjo6U2V0U2hhcmVkVmlkZW9GcmFtZU1lbW9y
eSB7IGhhbmRsZSB9LCAwKTsgfSwKKyAgICAgICAgICAgIGNhblNlbmRJT1N1cmZhY2UpOworICAg
ICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIEFTU0VSVChyZXN1bHQpIG9uY2Ugd2Ugc3VwcG9ydCBl
bm91Z2ggcGl4ZWwgYnVmZmVyIHR5cGVzLgogICAgIH0KLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6OlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3I6Ok5ld1Zp
ZGVvRnJhbWVCdWZmZXIgeyBpZGVudGlmaWVyIH0sIDApOworICAgIG1fY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvcjo6TmV3
VmlkZW9GcmFtZUJ1ZmZlciB7IGlkZW50aWZpZXIsIGJ1ZmZlciB9LCAwKTsKIH0KIAogdm9pZCBS
ZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcDo6cGl4ZWxCdWZmZXIoUmVtb3RlVmlkZW9GcmFtZVJl
YWRSZWZlcmVuY2UmJiByZWFkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJldGFpblB0cjxDVlBp
eGVsQnVmZmVyUmVmPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXNzZXJ0SXNDdXJy
ZW50KHJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUXVldWUoKSk7CiAKLSAgICBhdXRvIHZpZGVv
RnJhbWUgPSBtX2hlYXAucmV0aXJlKFdURk1vdmUocmVhZCksIDBfcyk7CisgICAgYXV0byB2aWRl
b0ZyYW1lID0gZ2V0KFdURk1vdmUocmVhZCkpOwogICAgIGlmICghdmlkZW9GcmFtZSkgewogICAg
ICAgICBBU1NFUlRfSVNfVEVTVElOR19JUEMoKTsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
bnVsbHB0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5oCmluZGV4IDFiYjRlMGE0M2UxMWY3ZjFhODkw
ZTY5Yzc0ZTdjYTg5NDRiMThmZTMuLjUzZWQ1NmUwYWUwZGVlZjYxNTRjOGNlMDRhOWIxNmNmMTUw
ZTY4YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVW
aWRlb0ZyYW1lT2JqZWN0SGVhcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5oCkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6
CiAgICAgLy8gTWVzc2FnZXMuCiAgICAgdm9pZCByZWxlYXNlVmlkZW9GcmFtZShSZW1vdGVWaWRl
b0ZyYW1lV3JpdGVSZWZlcmVuY2UmJik7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdm9pZCBn
ZXRWaWRlb0ZyYW1lQnVmZmVyKFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlJiYpOworICAg
IHZvaWQgZ2V0VmlkZW9GcmFtZUJ1ZmZlcihSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSYm
LCBib29sIGNhblNlbmRJT1N1cmZhY2UpOwogICAgIHZvaWQgcGl4ZWxCdWZmZXIoUmVtb3RlVmlk
ZW9GcmFtZVJlYWRSZWZlcmVuY2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXRhaW5QdHI8
Q1ZQaXhlbEJ1ZmZlclJlZj4pPiYmKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVj
dEhlYXAubWVzc2FnZXMuaW4KaW5kZXggNmZhOGFhMmJjYzM0NDhmZGY1ZDE1ZTBlYzE5N2Y0ZDg3
YWJjN2JiZS4uZWI5YTY5NmMyODE5OWIwYzQ2OWViMjBiNDVkYjcyYzIyZjdlMjY3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmpl
Y3RIZWFwLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5tZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNyBAQAog
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFZJREVPKQogbWVzc2FnZXMgLT4gUmVt
b3RlVmlkZW9GcmFtZU9iamVjdEhlYXAgTm90UmVmQ291bnRlZCB7CiAjaWYgUExBVEZPUk0oQ09D
T0EpCi0gICAgR2V0VmlkZW9GcmFtZUJ1ZmZlcihXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVSZWFk
UmVmZXJlbmNlIHJlYWQpCisgICAgR2V0VmlkZW9GcmFtZUJ1ZmZlcihXZWJLaXQ6OlJlbW90ZVZp
ZGVvRnJhbWVSZWFkUmVmZXJlbmNlIHJlYWQsIGJvb2wgY2FuU2VuZElPU3VyZmFjZSkKICAgICBQ
aXhlbEJ1ZmZlcihXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlIHJlYWQpIC0+
IChSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcmVzdWx0KSBTeW5jaHJvbm91cwogI2VuZGlm
CiAgICAgUmVsZWFzZVZpZGVvRnJhbWUoV2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1lV3JpdGVSZWZl
cmVuY2Ugd3JpdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRj
L0xpYldlYlJUQ0NvZGVjc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRj
L0xpYldlYlJUQ0NvZGVjc1Byb3h5LmgKaW5kZXggODc0ZmY2ODNiYTdmZTRiYTBhMGU1Mjc4OTBk
NmY4NjY1MmYzZjk4MC4uMTkyNjczOGY5ZTAyODE5YzdmNGZiOWRjOGFlNTM1OTkzYzA0ZTkwOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2Rl
Y3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRD
Q29kZWNzUHJveHkuaApAQCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRl
RW5jb2RlcihSVENFbmNvZGVySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmVjdG9y
PHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+JiwgYm9vbCB1c2VMb3dMYXRlbmN5KTsKICAgICB2
b2lkIHJlbGVhc2VFbmNvZGVyKFJUQ0VuY29kZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIGluaXRp
YWxpemVFbmNvZGVyKFJUQ0VuY29kZXJJZGVudGlmaWVyLCB1aW50MTZfdCB3aWR0aCwgdWludDE2
X3QgaGVpZ2h0LCB1bnNpZ25lZCBzdGFydEJpdHJhdGUsIHVuc2lnbmVkIG1heEJpdHJhdGUsIHVu
c2lnbmVkIG1pbkJpdHJhdGUsIHVpbnQzMl90IG1heEZyYW1lcmF0ZSk7Ci0gICAgdm9pZCBlbmNv
ZGVGcmFtZShSVENFbmNvZGVySWRlbnRpZmllciwgV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUm
JiwgdWludDMyX3QgdGltZVN0YW1wLCBib29sIHNob3VsZEVuY29kZUFzS2V5RnJhbWUsIHN0ZDo6
b3B0aW9uYWw8UmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2U+KTsKKyAgICB2b2lkIGVuY29k
ZUZyYW1lKFJUQ0VuY29kZXJJZGVudGlmaWVyLCBTaGFyZWRWaWRlb0ZyYW1lJiYsIHVpbnQzMl90
IHRpbWVTdGFtcCwgYm9vbCBzaG91bGRFbmNvZGVBc0tleUZyYW1lKTsKICAgICB2b2lkIHNldEVu
Y29kZVJhdGVzKFJUQ0VuY29kZXJJZGVudGlmaWVyLCB1aW50MzJfdCBiaXRSYXRlLCB1aW50MzJf
dCBmcmFtZVJhdGUpOwogICAgIHZvaWQgc2V0U2hhcmVkVmlkZW9GcmFtZVNlbWFwaG9yZShSVENF
bmNvZGVySWRlbnRpZmllciwgSVBDOjpTZW1hcGhvcmUmJik7CiAgICAgdm9pZCBzZXRTaGFyZWRW
aWRlb0ZyYW1lTWVtb3J5KFJUQ0VuY29kZXJJZGVudGlmaWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6
OklQQ0hhbmRsZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0
Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZGZhZjRh
MjZiZDFlMzEyMTkwMzRhYmIwNjUyZGUyM2Q5Y2UyZDFhYS4uZTY0OWQ3MTRhNzcyMzgzYTIzYWIw
NjNjYWZmMWJjZmE3YTQ0MGNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1lc3NhZ2VzLmluCkBA
IC0zNCw3ICszNCw3IEBAIG1lc3NhZ2VzIC0+IExpYldlYlJUQ0NvZGVjc1Byb3h5IE5vdFJlZkNv
dW50ZWQgewogICAgIENyZWF0ZUVuY29kZXIoV2ViS2l0OjpSVENFbmNvZGVySWRlbnRpZmllciBp
ZCwgU3RyaW5nIGZvcm1hdE5hbWUsIFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiBw
YXJhbWV0ZXJzLCBib29sIHVzZUxvd0xhdGVuY3kpOwogICAgIFJlbGVhc2VFbmNvZGVyKFdlYktp
dDo6UlRDRW5jb2RlcklkZW50aWZpZXIgaWQpCiAgICAgSW5pdGlhbGl6ZUVuY29kZXIoV2ViS2l0
OjpSVENFbmNvZGVySWRlbnRpZmllciBpZCwgdWludDE2X3Qgd2lkdGgsIHVpbnQxNl90IGhlaWdo
dCwgdW5zaWduZWQgc3RhcnRCaXRyYXRlLCB1bnNpZ25lZCBtYXhCaXRyYXRlLCB1bnNpZ25lZCBt
aW5CaXRyYXRlLCB1aW50MzJfdCBtYXhGcmFtZXJhdGUpCi0gICAgRW5jb2RlRnJhbWUoV2ViS2l0
OjpSVENFbmNvZGVySWRlbnRpZmllciBpZCwgV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUgc2Ft
cGxlLCB1aW50MzJfdCB0aW1lU3RhbXAsIGJvb2wgc2hvdWxkRW5jb2RlQXNLZXlGcmFtZSwgc3Rk
OjpvcHRpb25hbDxXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlPiBzYW1wbGVS
ZWZlcmVuY2UpCisgICAgRW5jb2RlRnJhbWUoV2ViS2l0OjpSVENFbmNvZGVySWRlbnRpZmllciBp
ZCwgc3RydWN0IFdlYktpdDo6U2hhcmVkVmlkZW9GcmFtZSBidWZmZXIsIHVpbnQzMl90IHRpbWVT
dGFtcCwgYm9vbCBzaG91bGRFbmNvZGVBc0tleUZyYW1lKQogICAgIFNldEVuY29kZVJhdGVzKFdl
YktpdDo6UlRDRW5jb2RlcklkZW50aWZpZXIgaWQsIHVpbnQzMl90IGJpdFJhdGUsIHVpbnQzMl90
IGZyYW1lUmF0ZSkKICAgICBTZXRTaGFyZWRWaWRlb0ZyYW1lU2VtYXBob3JlKFdlYktpdDo6UlRD
RW5jb2RlcklkZW50aWZpZXIgaWQsIElQQzo6U2VtYXBob3JlIHNlbWFwaG9yZSkKICAgICBTZXRT
aGFyZWRWaWRlb0ZyYW1lTWVtb3J5KFdlYktpdDo6UlRDRW5jb2RlcklkZW50aWZpZXIgaWQsIFdl
YktpdDo6U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgc3RvcmFnZUhhbmRsZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0g
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1t
CmluZGV4IGM5Njg5MjY2ZDk5NWQ3MTkzZjRlM2IzYTI2MjJiMDM5ZTc1NTI2MTQuLjdhZDZkNmEx
ZGI0YTczZmZjNzdhZWE0NzBlZjQyNGQ4ZjcxZmVmNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQpAQCAtMTg1
LDcgKzE4NSw3IEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OmNyZWF0ZUVuY29kZXIoUlRD
RW5jb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QKICAgICAgICAgY29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzOjpDb21wbGV0ZWRFbmNvZGluZyB7IGlkZW50
aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSB7IGJ1ZmZlciwgc2l6ZSB9LCBpbmZvIH0sIDApOwog
ICAgIH0pLmdldCgpKTsKICAgICB3ZWJydGM6OnNldExvY2FsRW5jb2Rlckxvd0xhdGVuY3koZW5j
b2RlciwgdXNlTG93TGF0ZW5jeSk7Ci0gICAgYXV0byByZXN1bHQgPSBtX2VuY29kZXJzLmFkZChp
ZGVudGlmaWVyLCBFbmNvZGVyIHsgZW5jb2RlciwgbnVsbHB0ciB9KTsKKyAgICBhdXRvIHJlc3Vs
dCA9IG1fZW5jb2RlcnMuYWRkKGlkZW50aWZpZXIsIEVuY29kZXIgeyBlbmNvZGVyLCBtYWtlVW5p
cXVlPFNoYXJlZFZpZGVvRnJhbWVSZWFkZXI+KFJlZiB7IG1fdmlkZW9GcmFtZU9iamVjdEhlYXAg
fSwgbV9yZXNvdXJjZU93bmVyKSB9KTsKICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0
LmlzTmV3RW50cnkgfHwgaXNUZXN0aW5nSVBDKCkpOwogICAgIG1faGFzRW5jb2RlcnNPckRlY29k
ZXJzID0gdHJ1ZTsKIH0KQEAgLTIzNywzOSArMjM3LDI0IEBAIHN0YXRpYyBpbmxpbmUgd2VicnRj
OjpWaWRlb1JvdGF0aW9uIHRvV2ViUlRDVmlkZW9Sb3RhdGlvbihXZWJDb3JlOjpNZWRpYVNhbXBs
ZTo6CiAgICAgcmV0dXJuIHdlYnJ0Yzo6a1ZpZGVvUm90YXRpb25fMDsKIH0KIAotdm9pZCBMaWJX
ZWJSVENDb2RlY3NQcm94eTo6ZW5jb2RlRnJhbWUoUlRDRW5jb2RlcklkZW50aWZpZXIgaWRlbnRp
ZmllciwgV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmJiBzYW1wbGUsIHVpbnQzMl90IHRpbWVT
dGFtcCwgYm9vbCBzaG91bGRFbmNvZGVBc0tleUZyYW1lLCBzdGQ6Om9wdGlvbmFsPFJlbW90ZVZp
ZGVvRnJhbWVSZWFkUmVmZXJlbmNlPiBzYW1wbGVSZWZlcmVuY2UpCit2b2lkIExpYldlYlJUQ0Nv
ZGVjc1Byb3h5OjplbmNvZGVGcmFtZShSVENFbmNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBT
aGFyZWRWaWRlb0ZyYW1lJiYgc2hhcmVkVmlkZW9GcmFtZSwgdWludDMyX3QgdGltZVN0YW1wLCBi
b29sIHNob3VsZEVuY29kZUFzS2V5RnJhbWUpCiB7CiAgICAgYXNzZXJ0SXNDdXJyZW50KHdvcmtR
dWV1ZSgpKTsKLSAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXI7Ci0g
ICAgaWYgKHNhbXBsZVJlZmVyZW5jZSkgewotICAgICAgICBhdXRvIHNhbXBsZSA9IG1fdmlkZW9G
cmFtZU9iamVjdEhlYXAtPmdldChXVEZNb3ZlKCpzYW1wbGVSZWZlcmVuY2UpKTsKLSAgICAgICAg
aWYgKCFzYW1wbGUpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgYXV0byBwbGF0Zm9y
bVNhbXBsZSA9IHNhbXBsZS0+cGxhdGZvcm1TYW1wbGUoKTsKLSAgICAgICAgQVNTRVJUKHBsYXRm
b3JtU2FtcGxlLnR5cGUgPT0gV2ViQ29yZTo6UGxhdGZvcm1TYW1wbGU6OkNNU2FtcGxlQnVmZmVy
VHlwZSk7Ci0gICAgICAgIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJl
Zj4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHBsYXRmb3JtU2FtcGxlLnNhbXBs
ZS5jbVNhbXBsZUJ1ZmZlcikpOwotICAgIH0KLQogICAgIGF1dG8qIGVuY29kZXIgPSBmaW5kRW5j
b2RlcihpZGVudGlmaWVyKTsKICAgICBpZiAoIWVuY29kZXIpIHsKICAgICAgICAgQVNTRVJUX0lT
X1RFU1RJTkdfSVBDKCk7CisgICAgICAgIC8vIE1ha2Ugc3VyZSB0byByZWFkIFJlbW90ZVZpZGVv
RnJhbWVSZWFkUmVmZXJlbmNlIHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzLgorICAgICAgICBpZiAo
c3RkOjpob2xkc19hbHRlcm5hdGl2ZTxSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZT4oc2hh
cmVkVmlkZW9GcmFtZS5idWZmZXIpKQorICAgICAgICAgICAgbV92aWRlb0ZyYW1lT2JqZWN0SGVh
cC0+Z2V0KFdURk1vdmUoc3RkOjpnZXQ8UmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2U+KHNo
YXJlZFZpZGVvRnJhbWUuYnVmZmVyKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0jaWYg
IVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotICAgIGlmICghcGl4ZWxCdWZmZXIpIHsKLSAgICAgICAg
aWYgKHNhbXBsZS5zdXJmYWNlKCkpIHsKLSAgICAgICAgICAgIGlmIChhdXRvIGJ1ZmZlciA9IFdl
YkNvcmU6OmNyZWF0ZUNWUGl4ZWxCdWZmZXIoc2FtcGxlLnN1cmZhY2UoKSkpCi0gICAgICAgICAg
ICAgICAgcGl4ZWxCdWZmZXIgPSBXVEZNb3ZlKCpidWZmZXIpOwotICAgICAgICB9IGVsc2UgaWYg
KGVuY29kZXItPmZyYW1lUmVhZGVyKQotICAgICAgICAgICAgcGl4ZWxCdWZmZXIgPSBlbmNvZGVy
LT5mcmFtZVJlYWRlci0+cmVhZCgpOwotCi0gICAgICAgIGlmICghcGl4ZWxCdWZmZXIpCi0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBlbmNvZGVyLT5m
cmFtZVJlYWRlci0+cmVhZEJ1ZmZlcihXVEZNb3ZlKHNoYXJlZFZpZGVvRnJhbWUuYnVmZmVyKSk7
CisgICAgaWYgKCFwaXhlbEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuOwogCi0gICAgd2VicnRjOjpl
bmNvZGVMb2NhbEVuY29kZXJGcmFtZShlbmNvZGVyLT53ZWJydGNFbmNvZGVyLCBwaXhlbEJ1ZmZl
ci5nZXQoKSwgc2FtcGxlLnRpbWUoKS50b1RpbWVTY2FsZSgxMDAwMDAwKS50aW1lVmFsdWUoKSwg
dGltZVN0YW1wLCB0b1dlYlJUQ1ZpZGVvUm90YXRpb24oc2FtcGxlLnJvdGF0aW9uKCkpLCBzaG91
bGRFbmNvZGVBc0tleUZyYW1lKTsKKyNpZiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisgICAgd2Vi
cnRjOjplbmNvZGVMb2NhbEVuY29kZXJGcmFtZShlbmNvZGVyLT53ZWJydGNFbmNvZGVyLCBwaXhl
bEJ1ZmZlci5nZXQoKSwgc2hhcmVkVmlkZW9GcmFtZS50aW1lLnRvVGltZVNjYWxlKDEwMDAwMDAp
LnRpbWVWYWx1ZSgpLCB0aW1lU3RhbXAsIHRvV2ViUlRDVmlkZW9Sb3RhdGlvbihzaGFyZWRWaWRl
b0ZyYW1lLnJvdGF0aW9uKSwgc2hvdWxkRW5jb2RlQXNLZXlGcmFtZSk7CiAjZW5kaWYKIH0KIApA
QCAtMjk0LDggKzI3OSw2IEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OnNldFNoYXJlZFZp
ZGVvRnJhbWVTZW1hcGhvcmUoUlRDRW5jb2RlcklkZW50aWZpZXIgaWRlCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBpZiAoIWVuY29kZXItPmZyYW1lUmVhZGVyKQotICAgICAgICBlbmNv
ZGVyLT5mcmFtZVJlYWRlciA9IG1ha2VVbmlxdWU8U2hhcmVkVmlkZW9GcmFtZVJlYWRlcj4oUmVm
IHsgbV92aWRlb0ZyYW1lT2JqZWN0SGVhcCB9LCBtX3Jlc291cmNlT3duZXIpOwogICAgIGVuY29k
ZXItPmZyYW1lUmVhZGVyLT5zZXRTZW1hcGhvcmUoV1RGTW92ZShzZW1hcGhvcmUpKTsKIH0KIApA
QCAtMzA4LDggKzI5MSw2IEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OnNldFNoYXJlZFZp
ZGVvRnJhbWVNZW1vcnkoUlRDRW5jb2RlcklkZW50aWZpZXIgaWRlbnRpCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBpZiAoIWVuY29kZXItPmZyYW1lUmVhZGVyKQotICAgICAgICBlbmNv
ZGVyLT5mcmFtZVJlYWRlciA9IG1ha2VVbmlxdWU8U2hhcmVkVmlkZW9GcmFtZVJlYWRlcj4oUmVm
IHsgbV92aWRlb0ZyYW1lT2JqZWN0SGVhcCB9LCBtX3Jlc291cmNlT3duZXIpOwogICAgIGVuY29k
ZXItPmZyYW1lUmVhZGVyLT5zZXRTaGFyZWRNZW1vcnkoaXBjSGFuZGxlKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDZlYTgx
ODlmYTJiZjg2ZWViZmQ3N2M2YzU2MGQ4MDgyODEwNWUzYS4uZWRiZGM5NDJkOTliNjM2NDg3MTM1
MDZiNTBlOWI0NDY0NGMxZTA5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MTMzLDYgKzQxMzMsNyBAQAogCQk0MTMxRjNFMDFGOTg3
MTJDMDA1OTk5NUEgLyogV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
Q2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzNUZCQ0YxRjRGQjdG
MjAwNzRDNDdCIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZXMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTM1RkJEMDFGNEZCN0YyMDA3NEM0N0IgLyogQ2Fj
aGVTdG9yYWdlRW5naW5lQ2FjaGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0MTNDNTQyMjI3QzkwRjRDMDAyRkNEQTggLyogUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAu
bWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAubWVzc2FnZXMuaW47
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxM0M4QjEzMjU1MTZCRkEwMEU2NTA1NSAv
KiBMaWJXZWJSVENDb2RlY3MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMaWJXZWJSVENDb2Rl
Y3MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTBBNUEwMjNFMDZDOTEwMDUx
MjY0QSAvKiBHUFVQcm9jZXNzU2Vzc2lvblBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gR1BVUHJvY2Vzc1Nlc3Npb25QYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxNTE4NTM1MjIyNzA0RjUwMDU0MzBDNiAvKiBTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VX
b3JrZXJGZXRjaFRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY5ODMsNiAr
Njk4NCw3IEBACiAJCQkJMDdFMTlGMDYyM0Q0REM4ODAwOTRGRkI0IC8qIFJlbW90ZVRleHRUcmFj
a1Byb3h5LmggKi8sCiAJCQkJN0I1QTNEQTgyN0E3RENCQzAwNkM2Rjk3IC8qIFJlbW90ZVZpZGVv
RnJhbWVPYmplY3RIZWFwLmNwcCAqLywKIAkJCQk3QjVBM0RBNzI3QTdEQ0JDMDA2QzZGOTcgLyog
UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuaCAqLywKKwkJCQk0MTNDNTQyMjI3QzkwRjRDMDAy
RkNEQTggLyogUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAubWVzc2FnZXMuaW4gKi8sCiAJCQkJ
MDcxQkM1ODQyM0NDMkMwOTAwNjgwRDdDIC8qIFJlbW90ZVZpZGVvVHJhY2tQcm94eS5jcHAgKi8s
CiAJCQkJMDcxQkM1ODUyM0NDMkMwOTAwNjgwRDdDIC8qIFJlbW90ZVZpZGVvVHJhY2tQcm94eS5o
ICovLAogCQkJCTA3RTE5RjA1MjNENERDODgwMDk0RkZCNCAvKiBUZXh0VHJhY2tQcml2YXRlUmVt
b3RlQ29uZmlndXJhdGlvbi5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuY3BwCmluZGV4IDk2YmJh
OGUwZmM5MTM4NzJmYWJiNzVlOWQyODZhYTIxYTk4NWNjODIuLmIwMGZkMjRkMjE1OTBiMDllZDQ2
MDk5NGQzOTQyYjQwZWZkNmM3ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5jcHAKQEAgLTEwNywx
MCArMTA3LDEwIEBAIENWUGl4ZWxCdWZmZXJSZWYgUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpwaXhl
bEJ1ZmZlcigpIGNvbnN0CiAgICAgICAgIGF1dG8gdmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSA9
IHN0ZDo6ZXhjaGFuZ2UobV92aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5LCBudWxscHRyKTsKIAog
ICAgICAgICBib29sIGNhblNlbmRTeW5jID0gaXNNYWluUnVuTG9vcCgpOyAvLyBGSVhNRTogd2Ug
c2hvdWxkIGJlIGFibGUgdG8gc2VuZFN5bmMgZnJvbSBvdGhlciB0aHJlYWRzIHRvby4KLSAgICAg
ICAgLy8gQ3VycmVudGx5IHdlIGp1c3Qga2V5IHdpdGggdGhpcywgYXMgdGhlcmUgaXMgbm8gY29u
ZGl0aW9uIGZvciAiaGFzIGFjY2VzcyB0byBJT0tpdCIuCi0gICAgICAgIGlmIChXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5zaG91bGRVc2VSZW1vdGVSZW5kZXJpbmdGb3JXZWJHTCgpIHx8ICFjYW5T
ZW5kU3luYykgeworICAgICAgICBib29sIGNhblVzZUlPU3VyZmFjZSA9IFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLnNob3VsZFVzZVJlbW90ZVJlbmRlcmluZ0ZvcldlYkdMKCk7CisgICAgICAgIGlm
ICghY2FuVXNlSU9TdXJmYWNlIHx8ICFjYW5TZW5kU3luYykgewogICAgICAgICAgICAgQmluYXJ5
U2VtYXBob3JlIHNlbWFwaG9yZTsKLSAgICAgICAgICAgIHZpZGVvRnJhbWVPYmplY3RIZWFwUHJv
eHktPmdldFZpZGVvRnJhbWVCdWZmZXIoKnRoaXMsIFt0aGlzLCAmc2VtYXBob3JlXShhdXRvIHBp
eGVsQnVmZmVyKSB7CisgICAgICAgICAgICB2aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5LT5nZXRW
aWRlb0ZyYW1lQnVmZmVyKCp0aGlzLCBjYW5Vc2VJT1N1cmZhY2UsIFt0aGlzLCAmc2VtYXBob3Jl
XShhdXRvIHBpeGVsQnVmZmVyKSB7CiAgICAgICAgICAgICAgICAgbV9waXhlbEJ1ZmZlciA9IFdU
Rk1vdmUocGl4ZWxCdWZmZXIpOwogICAgICAgICAgICAgICAgIHNlbWFwaG9yZS5zaWduYWwoKTsK
ICAgICAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKaW5kZXggZDc1YjlmZjdlMDIwM2UxYWMzMTQz
ODU3NzlkMjdmYzc3MmRhNjc1Yy4uYmI5OWE0ZDEzODJkZDE4MGIwMTRiZDhmMDYxNTNlZGUwN2I1
ODdkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGli
V2ViUlRDQ29kZWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9MaWJXZWJSVENDb2RlY3MuY3BwCkBAIC00ODIsMTUgKzQ4Miw2IEBAIGludDMyX3QgTGliV2Vi
UlRDQ29kZWNzOjppbml0aWFsaXplRW5jb2RlcihFbmNvZGVyJiBlbmNvZGVyLCB1aW50MTZfdCB3
aWR0aCwgdWluCiAgICAgcmV0dXJuIDA7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEJ1ZmZlcj4K
LWJvb2wgTGliV2ViUlRDQ29kZWNzOjpjb3B5U2hhcmVkVmlkZW9GcmFtZShMaWJXZWJSVENDb2Rl
Y3M6OkVuY29kZXImIGVuY29kZXIsIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgQnVmZmVy
JiYgZnJhbWVCdWZmZXIpCi17Ci0gICAgcmV0dXJuIGVuY29kZXIuc2hhcmVkVmlkZW9GcmFtZVdy
aXRlci53cml0ZShmcmFtZUJ1ZmZlciwKLSAgICAgICAgWyZdKGF1dG8mIHNlbWFwaG9yZSkgeyBj
b25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpTZXRTaGFyZWRW
aWRlb0ZyYW1lU2VtYXBob3JlIHsgZW5jb2Rlci5pZGVudGlmaWVyLCBzZW1hcGhvcmUgfSwgMCk7
IH0sCi0gICAgICAgIFsmXShhdXRvJiBoYW5kbGUpIHsgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2Vz
OjpMaWJXZWJSVENDb2RlY3NQcm94eTo6U2V0U2hhcmVkVmlkZW9GcmFtZU1lbW9yeSB7IGVuY29k
ZXIuaWRlbnRpZmllciwgaGFuZGxlIH0sIDApOyB9Ci0gICAgKTsKLX0KLQogaW50MzJfdCBMaWJX
ZWJSVENDb2RlY3M6OmVuY29kZUZyYW1lKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IHdlYnJ0Yzo6
VmlkZW9GcmFtZSYgZnJhbWUsIGJvb2wgc2hvdWxkRW5jb2RlQXNLZXlGcmFtZSkKIHsKICAgICBB
U1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CkBAIC01MDAsMzEgKzQ5MSwxNCBAQCBpbnQzMl90IExp
YldlYlJUQ0NvZGVjczo6ZW5jb2RlRnJhbWUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qgd2VicnRj
OjpWaWRlb0ZyYW1lJgogICAgIGlmICghY29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuIFdFQlJU
Q19WSURFT19DT0RFQ19FUlJPUjsKIAotICAgIHN0ZDo6b3B0aW9uYWw8UmVtb3RlVmlkZW9GcmFt
ZVJlYWRSZWZlcmVuY2U+IHJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlOwotICAgIGlmIChh
dXRvKiBwcm92aWRlciA9IHdlYnJ0Yzo6dmlkZW9GcmFtZUJ1ZmZlclByb3ZpZGVyKGZyYW1lKSkg
ewotICAgICAgICBhdXRvKiB2aWRlb0ZyYW1lID0gc3RhdGljX2Nhc3Q8VmlkZW9GcmFtZSo+KHBy
b3ZpZGVyKTsKLSAgICAgICAgaWYgKGlzPFJlbW90ZVZpZGVvRnJhbWVQcm94eT4odmlkZW9GcmFt
ZSkpCi0gICAgICAgICAgICByZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSA9IGRvd25jYXN0
PFJlbW90ZVZpZGVvRnJhbWVQcm94eT4odmlkZW9GcmFtZSktPm5ld1JlYWRSZWZlcmVuY2UoKTsK
LSAgICB9Ci0KLSAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gYnVmZmVyOwotICAgIGlm
ICghcmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UpIHsKLSAgICAgICAgYnVmZmVyID0gYWRv
cHRDRih3ZWJydGM6OnBpeGVsQnVmZmVyRnJvbUZyYW1lKGZyYW1lKSk7Ci0gICAgICAgIGlmICgh
YnVmZmVyKSB7Ci0gICAgICAgICAgICAvLyBidWZmZXIgaXMgbm90IG5hdGl2ZSwgd2UgbmVlZCB0
byBjb3B5IHRvIHNoYXJlZCB2aWRlbyBmcmFtZS4KLSAgICAgICAgICAgIGlmICghY29weVNoYXJl
ZFZpZGVvRnJhbWUoZW5jb2RlciwgKmNvbm5lY3Rpb24sIGZyYW1lKSkKLSAgICAgICAgICAgICAg
ICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOwotICAgICAgICB9Ci0gICAgfQotCi0g
ICAgYXV0byBzYW1wbGUgPSBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKGJ1ZmZlci5nZXQoKSwg
TWVkaWFUaW1lKGZyYW1lLnRpbWVzdGFtcF91cygpICogMTAwMCwgMTAwMDAwMCksIHRvTWVkaWFT
YW1wbGVWaWRlb1JvdGF0aW9uKGZyYW1lLnJvdGF0aW9uKCkpLCBSZW1vdGVWaWRlb1NhbXBsZTo6
U2hvdWxkQ2hlY2tGb3JJT1N1cmZhY2U6Ok5vKTsKLSAgICBpZiAoYnVmZmVyICYmICFzYW1wbGUt
PnN1cmZhY2UoKSkgewotICAgICAgICAvLyBidWZmZXIgaXMgbm90IElPU3VyZmFjZSwgd2UgbmVl
ZCB0byBjb3B5IHRvIHNoYXJlZCB2aWRlbyBmcmFtZS4KLSAgICAgICAgaWYgKCFjb3B5U2hhcmVk
VmlkZW9GcmFtZShlbmNvZGVyLCAqY29ubmVjdGlvbiwgYnVmZmVyLmdldCgpKSkKLSAgICAgICAg
ICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7Ci0gICAgfQorICAgIGF1dG8gYnVm
ZmVyID0gZW5jb2Rlci5zaGFyZWRWaWRlb0ZyYW1lV3JpdGVyLndyaXRlQnVmZmVyKGZyYW1lLAor
ICAgICAgICBbJl0oYXV0byYgc2VtYXBob3JlKSB7IGVuY29kZXIuY29ubmVjdGlvbi0+c2VuZChN
ZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OlNldFNoYXJlZFZpZGVvRnJhbWVTZW1hcGhv
cmUgeyBlbmNvZGVyLmlkZW50aWZpZXIsIHNlbWFwaG9yZSB9LCAwKTsgfSwKKyAgICAgICAgWyZd
KGF1dG8mIGhhbmRsZSkgeyBlbmNvZGVyLmNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldl
YlJUQ0NvZGVjc1Byb3h5OjpTZXRTaGFyZWRWaWRlb0ZyYW1lTWVtb3J5IHsgZW5jb2Rlci5pZGVu
dGlmaWVyLCBoYW5kbGUgfSwgMCk7IH0pOworICAgIGlmICghYnVmZmVyKQorICAgICAgICByZXR1
cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOwogCi0gICAgY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OkVuY29kZUZyYW1lIHsgZW5jb2Rlci5pZGVudGlm
aWVyLCAqc2FtcGxlLCBmcmFtZS50aW1lc3RhbXAoKSwgc2hvdWxkRW5jb2RlQXNLZXlGcmFtZSwg
cmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UgfSwgMCk7CisgICAgU2hhcmVkVmlkZW9GcmFt
ZSBzaGFyZWRWaWRlb0ZyYW1lIHsgTWVkaWFUaW1lKGZyYW1lLnRpbWVzdGFtcF91cygpICogMTAw
MCwgMTAwMDAwMCksIGZhbHNlLCB0b01lZGlhU2FtcGxlVmlkZW9Sb3RhdGlvbihmcmFtZS5yb3Rh
dGlvbigpKSwgV1RGTW92ZSgqYnVmZmVyKSB9OworICAgIGVuY29kZXIuY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OkVuY29kZUZyYW1lIHsgZW5jb2Rlci5p
ZGVudGlmaWVyLCBzaGFyZWRWaWRlb0ZyYW1lLCBmcmFtZS50aW1lc3RhbXAoKSwgc2hvdWxkRW5j
b2RlQXNLZXlGcmFtZSB9LCAwKTsKICAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09LOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1v
dGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5LmgKaW5kZXggZDVlNWVk
MzEwYTI0MzA5NDY4MWYzZDc3NzliYzQ4ZTI1YmU3YzFlMi4uZTc5NDhjNTI4MWFkZGMwNTVlYzc5
ZmEwMzJhNDQ3MjQ2MzYzNTgxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFw
UHJveHkuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgflJlbW90ZVZpZGVvRnJhbWVP
YmplY3RIZWFwUHJveHkoKSA9IGRlZmF1bHQ7CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICB2
b2lkIGdldFZpZGVvRnJhbWVCdWZmZXIoY29uc3QgUmVtb3RlVmlkZW9GcmFtZVByb3h5JiBwcm94
eSwgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvcjo6Q2FsbGJhY2smJiBj
YWxsYmFjaykgeyBtX3Byb2Nlc3Nvci0+Z2V0VmlkZW9GcmFtZUJ1ZmZlcihwcm94eSwgV1RGTW92
ZShjYWxsYmFjaykpOyB9CisgICAgdm9pZCBnZXRWaWRlb0ZyYW1lQnVmZmVyKGNvbnN0IFJlbW90
ZVZpZGVvRnJhbWVQcm94eSYgcHJveHksIGJvb2wgY2FuVXNlSU9TdXJmYWNlLCBSZW1vdGVWaWRl
b0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yOjpDYWxsYmFjayYmIGNhbGxiYWNrKSB7IG1f
cHJvY2Vzc29yLT5nZXRWaWRlb0ZyYW1lQnVmZmVyKHByb3h5LCBjYW5Vc2VJT1N1cmZhY2UsIFdU
Rk1vdmUoY2FsbGJhY2spKTsgfQogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVh
cFByb3h5UHJvY2Vzc29yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IuY3BwCmluZGV4IDZkNmM3
YTgyYWYxNjgyZDA5NTQ5ZDJlMmNlOWRkYzNkZjFjNDM1MGQuLmM4NzI0NmFjNzBmZWZhYmMxZGI5
MzRkNmUwMjJjYTg5MzVmZWU4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IuY3BwCkBAIC05NCwyMCArOTQsMTcgQEAgUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvcjo6Q2FsbGJhY2sgUmVtb3RlVmlkZW9G
cmFtZU9iamVjdEhlYXBQcm8KICAgICByZXR1cm4gbV9jYWxsYmFja3MudGFrZShpZGVudGlmaWVy
KTsKIH0KIAotdm9pZCBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yOjp2
aWRlb0ZyYW1lQnVmZmVyTm90Rm91bmQoUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKK3ZvaWQgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvcjo6bmV3
VmlkZW9GcmFtZUJ1ZmZlcihSZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllciBpZGVudGlmaWVyLCBz
dGQ6Om9wdGlvbmFsPFNoYXJlZFZpZGVvRnJhbWU6OkJ1ZmZlcj4mJiBzaGFyZWRWaWRlb0ZyYW1l
QnVmZmVyKQogeworICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlcjsK
KyAgICBpZiAoc2hhcmVkVmlkZW9GcmFtZUJ1ZmZlcikKKyAgICAgICAgcGl4ZWxCdWZmZXIgPSBt
X3NoYXJlZFZpZGVvRnJhbWVSZWFkZXIucmVhZEJ1ZmZlcihXVEZNb3ZlKCpzaGFyZWRWaWRlb0Zy
YW1lQnVmZmVyKSk7CiAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSB0YWtlQ2FsbGJhY2soaWRlbnRp
ZmllcikpCi0gICAgICAgIGNhbGxiYWNrKG51bGxwdHIpOwotfQorICAgICAgICBjYWxsYmFjayhX
VEZNb3ZlKHBpeGVsQnVmZmVyKSk7CiAKLXZvaWQgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQ
cm94eVByb2Nlc3Nvcjo6bmV3VmlkZW9GcmFtZUJ1ZmZlcihSZW1vdGVWaWRlb0ZyYW1lSWRlbnRp
ZmllciBpZGVudGlmaWVyKQotewotICAgIGF1dG8gcmVzdWx0ID0gbV9zaGFyZWRWaWRlb0ZyYW1l
UmVhZGVyLnJlYWQoKTsKLSAgICBpZiAoYXV0byBjYWxsYmFjayA9IHRha2VDYWxsYmFjayhpZGVu
dGlmaWVyKSkKLSAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKIH0KIAotdm9pZCBS
ZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yOjpnZXRWaWRlb0ZyYW1lQnVm
ZmVyKGNvbnN0IFJlbW90ZVZpZGVvRnJhbWVQcm94eSYgZnJhbWUsIENhbGxiYWNrJiYgY2FsbGJh
Y2spCit2b2lkIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3I6OmdldFZp
ZGVvRnJhbWVCdWZmZXIoY29uc3QgUmVtb3RlVmlkZW9GcmFtZVByb3h5JiBmcmFtZSwgYm9vbCBj
YW5Vc2VJT1N1cmZhY2UsIENhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgewogICAgICAgICBM
b2NrZXIgbG9jayhtX2NhbGxiYWNrc0xvY2spOwpAQCAtMTE2LDEwICsxMTMsMTAgQEAgdm9pZCBS
ZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yOjpnZXRWaWRlb0ZyYW1lQnVm
ZmVyKGNvbnN0IFJlbW90ZVYKICAgICB9CiAgICAgTG9ja2VyIGxvY2sobV9jb25uZWN0aW9uTG9j
ayk7CiAgICAgaWYgKCFtX2Nvbm5lY3Rpb25JRCkgewotICAgICAgICB2aWRlb0ZyYW1lQnVmZmVy
Tm90Rm91bmQoZnJhbWUuaWRlbnRpZmllcigpKTsKKyAgICAgICAgdGFrZUNhbGxiYWNrKGZyYW1l
LmlkZW50aWZpZXIoKSkobnVsbHB0cik7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgSVBD
OjpDb25uZWN0aW9uOjpzZW5kKG1fY29ubmVjdGlvbklELCBNZXNzYWdlczo6UmVtb3RlVmlkZW9G
cmFtZU9iamVjdEhlYXA6OkdldFZpZGVvRnJhbWVCdWZmZXIoZnJhbWUubmV3UmVhZFJlZmVyZW5j
ZSgpKSwgMCwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdG
b3JTeW5jUmVwbHkpOworICAgIElQQzo6Q29ubmVjdGlvbjo6c2VuZChtX2Nvbm5lY3Rpb25JRCwg
TWVzc2FnZXM6OlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOjpHZXRWaWRlb0ZyYW1lQnVmZmVy
KGZyYW1lLm5ld1JlYWRSZWZlcmVuY2UoKSwgY2FuVXNlSU9TdXJmYWNlKSwgMCwgSVBDOjpTZW5k
T3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOwogfQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1v
dGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vz
c29yLmgKaW5kZXggZjBlNzZmM2JhNGE0NTE1ZjJjYTBhM2M1ZTY0YzY1Yzg5MjY2ZmYyYS4uNmJm
MzRiNjVmYzYxZmM4NjI1OGRmYzVmODVjOGU4YzJkNTI4YzBmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQ
cm94eVByb2Nlc3Nvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IuaApAQCAtNTUsNyArNTUs
NyBAQCBwdWJsaWM6CiAgICAgflJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNz
b3IoKTsKIAogICAgIHVzaW5nIENhbGxiYWNrID0gRnVuY3Rpb248dm9pZChSZXRhaW5QdHI8Q1ZQ
aXhlbEJ1ZmZlclJlZj4mJik+OwotICAgIHZvaWQgZ2V0VmlkZW9GcmFtZUJ1ZmZlcihjb25zdCBS
ZW1vdGVWaWRlb0ZyYW1lUHJveHkmLCBDYWxsYmFjayYmKTsKKyAgICB2b2lkIGdldFZpZGVvRnJh
bWVCdWZmZXIoY29uc3QgUmVtb3RlVmlkZW9GcmFtZVByb3h5JiwgYm9vbCBjYW5Vc2VJT1N1cmZj
ZSwgQ2FsbGJhY2smJik7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgUmVtb3RlVmlkZW9GcmFt
ZU9iamVjdEhlYXBQcm94eVByb2Nlc3NvcihHUFVQcm9jZXNzQ29ubmVjdGlvbiYpOwpAQCAtNjUs
OCArNjUsNyBAQCBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2VzCiAgICAgdm9pZCBzZXRTaGFyZWRW
aWRlb0ZyYW1lU2VtYXBob3JlKElQQzo6U2VtYXBob3JlJiYpOwogICAgIHZvaWQgc2V0U2hhcmVk
VmlkZW9GcmFtZU1lbW9yeShjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYpOwotICAgIHZv
aWQgdmlkZW9GcmFtZUJ1ZmZlck5vdEZvdW5kKFJlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVyKTsK
LSAgICB2b2lkIG5ld1ZpZGVvRnJhbWVCdWZmZXIoUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIp
OworICAgIHZvaWQgbmV3VmlkZW9GcmFtZUJ1ZmZlcihSZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmll
ciwgc3RkOjpvcHRpb25hbDxTaGFyZWRWaWRlb0ZyYW1lOjpCdWZmZXI+JiYpOwogCiAgICAgLy8g
R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkNsaWVudAogICAgIHZvaWQgZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b25EaWRDbG9zZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94
eVByb2Nlc3Nvci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IubWVzc2FnZXMuaW4K
aW5kZXggMWQ1NTUzNmRkOGE0NThjYmQ0YjE1ODNlMmFlMTAxNDExNDY5N2ExMi4uOTNjNTg1ZmM0
YTE5Zjk1OTIzMjRlMmU3NWNhMWNiODRhY2UzMWE1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVBy
b2Nlc3Nvci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLm1lc3NhZ2VzLmlu
CkBAIC0yNSw4ICsyNSw3IEBACiBtZXNzYWdlcyAtPiBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVh
cFByb3h5UHJvY2Vzc29yIHsKICAgICBTZXRTaGFyZWRWaWRlb0ZyYW1lU2VtYXBob3JlKElQQzo6
U2VtYXBob3JlIHNlbWFwaG9yZSkKICAgICBTZXRTaGFyZWRWaWRlb0ZyYW1lTWVtb3J5KFdlYktp
dDo6U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgc3RvcmFnZUhhbmRsZSkKLSAgICBWaWRlb0ZyYW1l
QnVmZmVyTm90Rm91bmQoV2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllciBpZGVudGlm
aWVyKQotICAgIE5ld1ZpZGVvRnJhbWVCdWZmZXIoV2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1lSWRl
bnRpZmllciBpZGVudGlmaWVyKQorICAgIE5ld1ZpZGVvRnJhbWVCdWZmZXIoV2ViS2l0OjpSZW1v
dGVWaWRlb0ZyYW1lSWRlbnRpZmllciBpZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6
U2hhcmVkVmlkZW9GcmFtZTo6QnVmZmVyPiBmcmFtZSkKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUu
Y3BwCmluZGV4IGVlOTg5Yjc1N2RkMDZhYTIxMTMwOTdkMmI3Mzk0ZDJiM2I2YTYxYTcuLmQ4NDM3
NjY1OTRmZTRkMmM0OGI2ZTU5NWE4NmNkNTZhMzA5OWI0MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuY3BwCkBA
IC0zNyw2ICszNywxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkVmlkZW9GcmFtZUluZm8u
aD4KICNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KIAorI2lmIFVTRShMSUJXRUJSVEMpCisjaW5jbHVk
ZSA8d2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmg+CisjZW5kaWYKKwogI2luY2x1
ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29yZVZp
ZGVvU29mdExpbmsuaD4KIApAQCAtOTAsNDEgKzk0LDU1IEBAIGJvb2wgU2hhcmVkVmlkZW9GcmFt
ZVdyaXRlcjo6cHJlcGFyZVdyaXRpbmcoY29uc3QgU2hhcmVkVmlkZW9GcmFtZUluZm8mIGluZm8s
IGNvCiAKIHN0ZDo6b3B0aW9uYWw8U2hhcmVkVmlkZW9GcmFtZT4gU2hhcmVkVmlkZW9GcmFtZVdy
aXRlcjo6d3JpdGUoTWVkaWFTYW1wbGUmIGZyYW1lLCBjb25zdCBGdW5jdGlvbjx2b2lkKElQQzo6
U2VtYXBob3JlJik+JiBuZXdTZW1hcGhvcmVDYWxsYmFjaywgY29uc3QgRnVuY3Rpb248dm9pZChj
b25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYpPiYgbmV3TWVtb3J5Q2FsbGJhY2spCiB7Ci0g
ICAgU2hhcmVkVmlkZW9GcmFtZSBzaGFyZWRWaWRlb0ZyYW1lIHsgZnJhbWUucHJlc2VudGF0aW9u
VGltZSgpLCBmcmFtZS52aWRlb01pcnJvcmVkKCksIGZyYW1lLnZpZGVvUm90YXRpb24oKSwgbnVs
bHB0ciB9OwotICAgIGlmIChpczxSZW1vdGVWaWRlb0ZyYW1lUHJveHk+KGZyYW1lKSkgewotICAg
ICAgICBzaGFyZWRWaWRlb0ZyYW1lLmJ1ZmZlciA9IGRvd25jYXN0PFJlbW90ZVZpZGVvRnJhbWVQ
cm94eT4oZnJhbWUpLm5ld1JlYWRSZWZlcmVuY2UoKTsKLSAgICAgICAgcmV0dXJuIHNoYXJlZFZp
ZGVvRnJhbWU7Ci0gICAgfQotICAgIGlmIChpczxNZWRpYVNhbXBsZUFWRk9iakM+KGZyYW1lKSkg
ewotICAgICAgICBpZiAoYXV0byBwaXhlbEJ1ZmZlciA9IGRvd25jYXN0PE1lZGlhU2FtcGxlQVZG
T2JqQz4oZnJhbWUpLnBpeGVsQnVmZmVyKCkpIHsKLSAgICAgICAgICAgIGlmIChhdXRvIHN1cmZh
Y2UgPSBDVlBpeGVsQnVmZmVyR2V0SU9TdXJmYWNlKHBpeGVsQnVmZmVyKSkgewotICAgICAgICAg
ICAgICAgIHNoYXJlZFZpZGVvRnJhbWUuYnVmZmVyID0gTWFjaFNlbmRSaWdodDo6YWRvcHQoSU9T
dXJmYWNlQ3JlYXRlTWFjaFBvcnQoc3VyZmFjZSkpOwotICAgICAgICAgICAgICAgIHJldHVybiBz
aGFyZWRWaWRlb0ZyYW1lOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotICAgIGlm
ICghd3JpdGUoZnJhbWUucGl4ZWxCdWZmZXIoKSwgbmV3U2VtYXBob3JlQ2FsbGJhY2ssIG5ld01l
bW9yeUNhbGxiYWNrKSkKKyAgICBhdXRvIGJ1ZmZlciA9IHdyaXRlQnVmZmVyKGZyYW1lLCBuZXdT
ZW1hcGhvcmVDYWxsYmFjaywgbmV3TWVtb3J5Q2FsbGJhY2spOworICAgIGlmICghYnVmZmVyKQog
ICAgICAgICByZXR1cm4geyB9OwotICAgIHJldHVybiBzaGFyZWRWaWRlb0ZyYW1lOworICAgIHJl
dHVybiBTaGFyZWRWaWRlb0ZyYW1lIHsgZnJhbWUucHJlc2VudGF0aW9uVGltZSgpLCBmcmFtZS52
aWRlb01pcnJvcmVkKCksIGZyYW1lLnZpZGVvUm90YXRpb24oKSwgV1RGTW92ZSgqYnVmZmVyKSB9
OwogfQogCi1ib29sIFNoYXJlZFZpZGVvRnJhbWVXcml0ZXI6OndyaXRlKENWUGl4ZWxCdWZmZXJS
ZWYgcGl4ZWxCdWZmZXIsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoSVBDOjpTZW1hcGhvcmUmKT4mIG5l
d1NlbWFwaG9yZUNhbGxiYWNrLCBjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0IFNoYXJlZE1lbW9y
eTo6SVBDSGFuZGxlJik+JiBuZXdNZW1vcnlDYWxsYmFjaykKK3N0ZDo6b3B0aW9uYWw8U2hhcmVk
VmlkZW9GcmFtZTo6QnVmZmVyPiBTaGFyZWRWaWRlb0ZyYW1lV3JpdGVyOjp3cml0ZUJ1ZmZlcihN
ZWRpYVNhbXBsZSYgZnJhbWUsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoSVBDOjpTZW1hcGhvcmUmKT4m
IG5ld1NlbWFwaG9yZUNhbGxiYWNrLCBjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0IFNoYXJlZE1l
bW9yeTo6SVBDSGFuZGxlJik+JiBuZXdNZW1vcnlDYWxsYmFjaykKIHsKKyAgICBpZiAoaXM8UmVt
b3RlVmlkZW9GcmFtZVByb3h5PihmcmFtZSkpCisgICAgICAgIHJldHVybiBkb3duY2FzdDxSZW1v
dGVWaWRlb0ZyYW1lUHJveHk+KGZyYW1lKS5uZXdSZWFkUmVmZXJlbmNlKCk7CisKKyAgICByZXR1
cm4gd3JpdGVCdWZmZXIoZnJhbWUucGl4ZWxCdWZmZXIoKSwgbmV3U2VtYXBob3JlQ2FsbGJhY2ss
IG5ld01lbW9yeUNhbGxiYWNrKTsKK30KKworc3RkOjpvcHRpb25hbDxTaGFyZWRWaWRlb0ZyYW1l
OjpCdWZmZXI+IFNoYXJlZFZpZGVvRnJhbWVXcml0ZXI6OndyaXRlQnVmZmVyKENWUGl4ZWxCdWZm
ZXJSZWYgcGl4ZWxCdWZmZXIsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoSVBDOjpTZW1hcGhvcmUmKT4m
IG5ld1NlbWFwaG9yZUNhbGxiYWNrLCBjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0IFNoYXJlZE1l
bW9yeTo6SVBDSGFuZGxlJik+JiBuZXdNZW1vcnlDYWxsYmFjaywgYm9vbCBjYW5Vc2VJT1N1cmZh
Y2UpCit7CisgICAgaWYgKCFwaXhlbEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAg
IGlmIChjYW5Vc2VJT1N1cmZhY2UpIHsKKyAgICAgICAgaWYgKGF1dG8gc3VyZmFjZSA9IENWUGl4
ZWxCdWZmZXJHZXRJT1N1cmZhY2UocGl4ZWxCdWZmZXIpKQorICAgICAgICAgICAgcmV0dXJuIE1h
Y2hTZW5kUmlnaHQ6OmFkb3B0KElPU3VyZmFjZUNyZWF0ZU1hY2hQb3J0KHN1cmZhY2UpKTsKKyAg
ICB9CisKICAgICBhdXRvIGluZm8gPSBTaGFyZWRWaWRlb0ZyYW1lSW5mbzo6ZnJvbUNWUGl4ZWxC
dWZmZXIocGl4ZWxCdWZmZXIpOwogICAgIGlmICghcHJlcGFyZVdyaXRpbmcoaW5mbywgbmV3U2Vt
YXBob3JlQ2FsbGJhY2ssIG5ld01lbW9yeUNhbGxiYWNrKSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIGluZm8ud3JpdGVQaXhlbEJ1ZmZl
cihwaXhlbEJ1ZmZlciwgc3RhdGljX2Nhc3Q8dWludDhfdCo+KG1fc3RvcmFnZS0+ZGF0YSgpKSk7
CisgICAgaWYgKCFpbmZvLndyaXRlUGl4ZWxCdWZmZXIocGl4ZWxCdWZmZXIsIHN0YXRpY19jYXN0
PHVpbnQ4X3QqPihtX3N0b3JhZ2UtPmRhdGEoKSkpKQorICAgICAgICByZXR1cm4geyB9OworICAg
IHJldHVybiBudWxscHRyOwogfQogCiAjaWYgVVNFKExJQldFQlJUQykKLWJvb2wgU2hhcmVkVmlk
ZW9GcmFtZVdyaXRlcjo6d3JpdGUoY29uc3Qgd2VicnRjOjpWaWRlb0ZyYW1lJiBmcmFtZSwgY29u
c3QgRnVuY3Rpb248dm9pZChJUEM6OlNlbWFwaG9yZSYpPiYgbmV3U2VtYXBob3JlQ2FsbGJhY2ss
IGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmKT4mIG5l
d01lbW9yeUNhbGxiYWNrKQorc3RkOjpvcHRpb25hbDxTaGFyZWRWaWRlb0ZyYW1lOjpCdWZmZXI+
IFNoYXJlZFZpZGVvRnJhbWVXcml0ZXI6OndyaXRlQnVmZmVyKGNvbnN0IHdlYnJ0Yzo6VmlkZW9G
cmFtZSYgZnJhbWUsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoSVBDOjpTZW1hcGhvcmUmKT4mIG5ld1Nl
bWFwaG9yZUNhbGxiYWNrLCBjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0IFNoYXJlZE1lbW9yeTo6
SVBDSGFuZGxlJik+JiBuZXdNZW1vcnlDYWxsYmFjaykKIHsKKyAgICBpZiAoYXV0byogcHJvdmlk
ZXIgPSB3ZWJydGM6OnZpZGVvRnJhbWVCdWZmZXJQcm92aWRlcihmcmFtZSkpCisgICAgICAgIHJl
dHVybiB3cml0ZUJ1ZmZlcigqc3RhdGljX2Nhc3Q8VmlkZW9GcmFtZSo+KHByb3ZpZGVyKSwgbmV3
U2VtYXBob3JlQ2FsbGJhY2ssIG5ld01lbW9yeUNhbGxiYWNrKTsKKworICAgIGlmIChhdXRvIHBp
eGVsQnVmZmVyID0gYWRvcHRDRih3ZWJydGM6OnBpeGVsQnVmZmVyRnJvbUZyYW1lKGZyYW1lKSkp
CisgICAgICAgIHJldHVybiB3cml0ZUJ1ZmZlcihwaXhlbEJ1ZmZlci5nZXQoKSwgbmV3U2VtYXBo
b3JlQ2FsbGJhY2ssIG5ld01lbW9yeUNhbGxiYWNrKTsKKwogICAgIGF1dG8gaW5mbyA9IFNoYXJl
ZFZpZGVvRnJhbWVJbmZvOjpmcm9tVmlkZW9GcmFtZShmcmFtZSk7CiAgICAgaWYgKCFwcmVwYXJl
V3JpdGluZyhpbmZvLCBuZXdTZW1hcGhvcmVDYWxsYmFjaywgbmV3TWVtb3J5Q2FsbGJhY2spKQog
ICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIGluZm8ud3JpdGVWaWRlb0ZyYW1lKGZy
YW1lLCBzdGF0aWNfY2FzdDx1aW50OF90Kj4obV9zdG9yYWdlLT5kYXRhKCkpKTsKKyAgICBpZiAo
IWluZm8ud3JpdGVWaWRlb0ZyYW1lKGZyYW1lLCBzdGF0aWNfY2FzdDx1aW50OF90Kj4obV9zdG9y
YWdlLT5kYXRhKCkpKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
IH0KICNlbmRpZgogCkBAIC0xNDMsNyArMTYxLDcgQEAgU2hhcmVkVmlkZW9GcmFtZVJlYWRlcjo6
U2hhcmVkVmlkZW9GcmFtZVJlYWRlcihSZWZQdHI8UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAK
IAogU2hhcmVkVmlkZW9GcmFtZVJlYWRlcjo6U2hhcmVkVmlkZW9GcmFtZVJlYWRlcigpID0gZGVm
YXVsdDsKIAotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFNoYXJlZFZpZGVvRnJhbWVSZWFk
ZXI6OnJlYWQoKQorUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFNoYXJlZFZpZGVvRnJhbWVS
ZWFkZXI6OnJlYWRCdWZmZXJGcm9tU2hhcmVkTWVtb3J5KCkKIHsKICAgICBpZiAoIW1fc3RvcmFn
ZSkKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTE2OSw5ICsxODcsOSBAQCBSZXRhaW5QdHI8Q1ZQ
aXhlbEJ1ZmZlclJlZj4gU2hhcmVkVmlkZW9GcmFtZVJlYWRlcjo6cmVhZCgpCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAotUmVmUHRyPE1lZGlhU2FtcGxlPiBTaGFyZWRWaWRlb0ZyYW1lUmVhZGVy
OjpyZWFkKFNoYXJlZFZpZGVvRnJhbWUmJiBzaGFyZWRWaWRlb0ZyYW1lKQorUmV0YWluUHRyPENW
UGl4ZWxCdWZmZXJSZWY+IFNoYXJlZFZpZGVvRnJhbWVSZWFkZXI6OnJlYWRCdWZmZXIoU2hhcmVk
VmlkZW9GcmFtZTo6QnVmZmVyJiYgYnVmZmVyKQogewotICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBz
d2l0Y2hPbihXVEZNb3ZlKHNoYXJlZFZpZGVvRnJhbWUuYnVmZmVyKSwKKyAgICByZXR1cm4gc3dp
dGNoT24oV1RGTW92ZShidWZmZXIpLAogICAgIFt0aGlzXShSZW1vdGVWaWRlb0ZyYW1lUmVhZFJl
ZmVyZW5jZSYmIHJlZmVyZW5jZSkgLT4gUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHsKICAg
ICAgICAgQVNTRVJUKG1fb2JqZWN0SGVhcCk7CiAgICAgICAgIGlmICghbV9vYmplY3RIZWFwKQpA
QCAtMTg4LDcgKzIwNiw3IEBAIFJlZlB0cjxNZWRpYVNhbXBsZT4gU2hhcmVkVmlkZW9GcmFtZVJl
YWRlcjo6cmVhZChTaGFyZWRWaWRlb0ZyYW1lJiYgc2hhcmVkVmlkZW9GCiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OmNyZWF0ZUNWUGl4ZWxCdWZm
ZXIoc3VyZmFjZS0+c3VyZmFjZSgpKS52YWx1ZV9vcihudWxscHRyKTsKICAgICB9LCBbdGhpc10o
c3RkOjpudWxscHRyX3QgcmVwcmVzZW50YXRpb24pIC0+IFJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPiB7Ci0gICAgICAgIHJldHVybiByZWFkKCk7CisgICAgICAgIHJldHVybiByZWFkQnVmZmVy
RnJvbVNoYXJlZE1lbW9yeSgpOwogICAgIH0sIFt0aGlzXShJbnRTaXplIHNpemUpIC0+IFJldGFp
blB0cjxDVlBpeGVsQnVmZmVyUmVmPiB7CiAgICAgICAgIGlmIChtX2JsYWNrRnJhbWVTaXplICE9
IHNpemUpIHsKICAgICAgICAgICAgIG1fYmxhY2tGcmFtZVNpemUgPSBzaXplOwpAQCAtMTk4LDcg
KzIxNiwxMSBAQCBSZWZQdHI8TWVkaWFTYW1wbGU+IFNoYXJlZFZpZGVvRnJhbWVSZWFkZXI6OnJl
YWQoU2hhcmVkVmlkZW9GcmFtZSYmIHNoYXJlZFZpZGVvRgogICAgICAgICB9CiAgICAgICAgIHJl
dHVybiBtX2JsYWNrRnJhbWUuZ2V0KCk7CiAgICAgfSk7Cit9CiAKK1JlZlB0cjxNZWRpYVNhbXBs
ZT4gU2hhcmVkVmlkZW9GcmFtZVJlYWRlcjo6cmVhZChTaGFyZWRWaWRlb0ZyYW1lJiYgc2hhcmVk
VmlkZW9GcmFtZSkKK3sKKyAgICBhdXRvIHBpeGVsQnVmZmVyID0gcmVhZEJ1ZmZlcihXVEZNb3Zl
KHNoYXJlZFZpZGVvRnJhbWUuYnVmZmVyKSk7CiAgICAgaWYgKCFwaXhlbEJ1ZmZlcikKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuaAppbmRleCA1OTA0N2ZjZmJjMGI2NTEyOWY2
MzY4ODhiMzE1YjJjZThmZGYyM2NjLi41YWI0NmU4MDY2MzU0MTZlNmZkNGEwZWNjMTlkNDVmMTIz
MDFkNzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9T
aGFyZWRWaWRlb0ZyYW1lLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvU2hhcmVkVmlkZW9GcmFtZS5oCkBAIC01NSw3ICs1NSw4IEBAIHN0cnVjdCBTaGFyZWRWaWRl
b0ZyYW1lIHsKICAgICBNZWRpYVRpbWUgdGltZTsKICAgICBib29sIG1pcnJvcmVkIHsgZmFsc2Ug
fTsKICAgICBXZWJDb3JlOjpNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiByb3RhdGlvbiB7IFdl
YkNvcmU6Ok1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lIH07Ci0gICAgc3RkOjp2YXJp
YW50PHN0ZDo6bnVsbHB0cl90LCBSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSwgTWFjaFNl
bmRSaWdodCwgV2ViQ29yZTo6SW50U2l6ZT4gYnVmZmVyOworICAgIHVzaW5nIEJ1ZmZlciA9IHN0
ZDo6dmFyaWFudDxzdGQ6Om51bGxwdHJfdCwgUmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2Us
IE1hY2hTZW5kUmlnaHQsIFdlYkNvcmU6OkludFNpemU+OworICAgIEJ1ZmZlciBidWZmZXI7CiAK
ICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7
CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8U2hhcmVk
VmlkZW9GcmFtZT4gZGVjb2RlKERlY29kZXImKTsKQEAgLTY3LDkgKzY4LDkgQEAgcHVibGljOgog
ICAgIFNoYXJlZFZpZGVvRnJhbWVXcml0ZXIoKTsKIAogICAgIHN0ZDo6b3B0aW9uYWw8U2hhcmVk
VmlkZW9GcmFtZT4gd3JpdGUoV2ViQ29yZTo6TWVkaWFTYW1wbGUmLCBjb25zdCBGdW5jdGlvbjx2
b2lkKElQQzo6U2VtYXBob3JlJik+JiwgY29uc3QgRnVuY3Rpb248dm9pZChjb25zdCBTaGFyZWRN
ZW1vcnk6OklQQ0hhbmRsZSYpPiYpOwotICAgIGJvb2wgd3JpdGUoQ1ZQaXhlbEJ1ZmZlclJlZiwg
Y29uc3QgRnVuY3Rpb248dm9pZChJUEM6OlNlbWFwaG9yZSYpPiYsIGNvbnN0IEZ1bmN0aW9uPHZv
aWQoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmKT4mKTsKKyAgICBzdGQ6Om9wdGlvbmFs
PFNoYXJlZFZpZGVvRnJhbWU6OkJ1ZmZlcj4gd3JpdGVCdWZmZXIoQ1ZQaXhlbEJ1ZmZlclJlZiwg
Y29uc3QgRnVuY3Rpb248dm9pZChJUEM6OlNlbWFwaG9yZSYpPiYsIGNvbnN0IEZ1bmN0aW9uPHZv
aWQoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmKT4mLCBib29sIGNhblNlbmRJT1N1cmZh
Y2UgPSB0cnVlKTsKICNpZiBVU0UoTElCV0VCUlRDKQotICAgIGJvb2wgd3JpdGUoY29uc3Qgd2Vi
cnRjOjpWaWRlb0ZyYW1lJiwgY29uc3QgRnVuY3Rpb248dm9pZChJUEM6OlNlbWFwaG9yZSYpPiYs
IGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmKT4mKTsK
KyAgICBzdGQ6Om9wdGlvbmFsPFNoYXJlZFZpZGVvRnJhbWU6OkJ1ZmZlcj4gd3JpdGVCdWZmZXIo
Y29uc3Qgd2VicnRjOjpWaWRlb0ZyYW1lJiwgY29uc3QgRnVuY3Rpb248dm9pZChJUEM6OlNlbWFw
aG9yZSYpPiYsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5k
bGUmKT4mKTsKICNlbmRpZgogICAgIHZvaWQgZGlzYWJsZSgpOwogCkBAIC03Nyw2ICs3OCw3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCB3YWl0KGNvbnN0IEZ1bmN0aW9uPHZvaWQoSVBDOjpTZW1hcGhv
cmUmKT4mKTsKICAgICBib29sIGFsbG9jYXRlU3RvcmFnZShzaXplX3QsIGNvbnN0IEZ1bmN0aW9u
PHZvaWQoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmKT4mKTsKICAgICBib29sIHByZXBh
cmVXcml0aW5nKGNvbnN0IFdlYkNvcmU6OlNoYXJlZFZpZGVvRnJhbWVJbmZvJiwgY29uc3QgRnVu
Y3Rpb248dm9pZChJUEM6OlNlbWFwaG9yZSYpPiYsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3Qg
U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmKT4mKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFNoYXJlZFZp
ZGVvRnJhbWU6OkJ1ZmZlcj4gd3JpdGVCdWZmZXIoV2ViQ29yZTo6TWVkaWFTYW1wbGUmLCBjb25z
dCBGdW5jdGlvbjx2b2lkKElQQzo6U2VtYXBob3JlJik+JiwgY29uc3QgRnVuY3Rpb248dm9pZChj
b25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYpPiYpOwogCiAgICAgVW5pcXVlUmVmPElQQzo6
U2VtYXBob3JlPiBtX3NlbWFwaG9yZTsKICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtX3N0b3Jh
Z2U7CkBAIC05NCwxMSArOTYsMTIgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2VtYXBob3JlKElQ
Qzo6U2VtYXBob3JlJiYgc2VtYXBob3JlKSB7IG1fc2VtYXBob3JlID0gV1RGTW92ZShzZW1hcGhv
cmUpOyB9CiAgICAgYm9vbCBzZXRTaGFyZWRNZW1vcnkoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENI
YW5kbGUmKTsKIAotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiByZWFkKCk7CiAgICAg
UmVmUHRyPFdlYkNvcmU6Ok1lZGlhU2FtcGxlPiByZWFkKFNoYXJlZFZpZGVvRnJhbWUmJik7Cisg
ICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHJlYWRCdWZmZXIoU2hhcmVkVmlkZW9GcmFt
ZTo6QnVmZmVyJiYpOwogCiBwcml2YXRlOgogICAgIENWUGl4ZWxCdWZmZXJQb29sUmVmIHBpeGVs
QnVmZmVyUG9vbChjb25zdCBXZWJDb3JlOjpTaGFyZWRWaWRlb0ZyYW1lSW5mbyYpOworICAgIFJl
dGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiByZWFkQnVmZmVyRnJvbVNoYXJlZE1lbW9yeSgpOwog
CiAgICAgUmVmUHRyPFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7CiAg
ICAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5IG1fcmVzb3VyY2VPd25lcjsK
</data>

          </attachment>
      

    </bug>

</bugzilla>