<?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>193710</bug_id>
          
          <creation_ts>2019-01-22 22:02:12 -0800</creation_ts>
          <short_desc>[SOUP] Remove libsoup cruft from WebProcess</short_desc>
          <delta_ts>2019-02-05 08:03:28 -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>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1497238</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-01-22 22:02:12 -0800</bug_when>
    <thetext>SoupNetworkSession is no longer accessible from the web process because it&apos;s owned (indirectly) by NetworkProcess after r240292. It doesn&apos;t make sense to have any libsoup code under WebProcess anymore. The current libsoup code consists of:

 * Unused stuff to be removed
 * Stuff unrelated to libsoup, which should move to a WebProcessGLib.cpp
 * WebKitSoupRequestInputStream, which is only used by NetworkProcess and should move there</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497239</commentid>
    <comment_count>1</comment_count>
      <attachid>359855</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-01-22 22:05:35 -0800</bug_when>
    <thetext>Created attachment 359855
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497368</commentid>
    <comment_count>2</comment_count>
      <attachid>359855</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-23 09:26:56 -0800</bug_when>
    <thetext>Comment on attachment 359855
Patch

Clearing flags on attachment: 359855

Committed r240341: &lt;https://trac.webkit.org/changeset/240341&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497369</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-23 09:26:58 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359855</attachid>
            <date>2019-01-22 22:05:35 -0800</date>
            <delta_ts>2019-01-23 09:26:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193710-20190123000534.patch</filename>
            <type>text/plain</type>
            <size>34881</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMzE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFkM2JkMTAyNDUzZGZkYTZi
NmM1OWIyZTRlMmFiNzZjMTZiNGFmZjIuLjc3OTFhZDAyMzllN2EzYThhYWFkY2QyYjRiZDViNDBh
NmRlYjdlMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTktMDEtMjIgIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtTT1VQXSBSZW1v
dmUgbGlic291cCBjcnVmdCBmcm9tIFdlYlByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzcxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFNvdXBOZXR3b3JrU2Vzc2lvbiBpcyBubyBsb25nZXIg
YWNjZXNzaWJsZSBmcm9tIHRoZSB3ZWIgcHJvY2VzcyBiZWNhdXNlIGl0J3Mgb3duZWQKKyAgICAg
ICAgKGluZGlyZWN0bHkpIGJ5IE5ldHdvcmtQcm9jZXNzIGFmdGVyIHIyNDAyOTIuIEl0IGRvZXNu
J3QgbWFrZSBzZW5zZSB0byBoYXZlIGFueSBsaWJzb3VwCisgICAgICAgIGNvZGUgdW5kZXIgV2Vi
UHJvY2VzcyBhbnltb3JlLiBUaGUgY3VycmVudCBsaWJzb3VwIGNvZGUgY29uc2lzdHMgb2YgKGEp
IHVudXNlZCBzdHVmZiB0byBiZQorICAgICAgICByZW1vdmVkLCAoYikgc3R1ZmYgdW5yZWxhdGVk
IHRvIGxpYnNvdXAsIHdoaWNoIHNob3VsZCBtb3ZlIHRvIGEgV2ViUHJvY2Vzc0dMaWIuY3BwLCBh
bmQgKGMpCisgICAgICAgIFdlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0sIHdoaWNoIGlzIG9u
bHkgdXNlZCBieSBOZXR3b3JrUHJvY2VzcyBhbmQgc2hvdWxkIG1vdmUgdGhlcmUKKworICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHA6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVx
dWVzdElucHV0U3RyZWFtLmNwcC4KKyAgICAgICAgKEFzeW5jUmVhZERhdGE6OkFzeW5jUmVhZERh
dGEpOgorICAgICAgICAod2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVJlYWRBc3luY1Jlc3Vs
dENvbXBsZXRlKToKKyAgICAgICAgKHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1QZW5kaW5n
UmVhZEFzeW5jQ29tcGxldGUpOgorICAgICAgICAod2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVh
bUhhc0RhdGFUb1JlYWQpOgorICAgICAgICAod2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbUlz
V2FpdGluZ0ZvckRhdGEpOgorICAgICAgICAod2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVJl
YWRBc3luYyk6CisgICAgICAgICh3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUmVhZEZpbmlz
aCk6CisgICAgICAgICh3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtRmluYWxpemUpOgorICAg
ICAgICAod2Via2l0X3NvdXBfcmVxdWVzdF9pbnB1dF9zdHJlYW1faW5pdCk6CisgICAgICAgICh3
ZWJraXRfc291cF9yZXF1ZXN0X2lucHV0X3N0cmVhbV9jbGFzc19pbml0KToKKyAgICAgICAgKHdl
YmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1OZXcpOgorICAgICAgICAod2Via2l0U291cFJlcXVl
c3RJbnB1dFN0cmVhbUFkZERhdGEpOgorICAgICAgICAod2Via2l0U291cFJlcXVlc3RJbnB1dFN0
cmVhbURpZEZhaWxXaXRoRXJyb3IpOgorICAgICAgICAod2Via2l0U291cFJlcXVlc3RJbnB1dFN0
cmVhbUZpbmlzaGVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBS
ZXF1ZXN0SW5wdXRTdHJlYW0uaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0uaC4KKyAgICAgICAgKiBTb3VyY2Vz
R1RLLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzV1BFLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
c291cC9XZWJQcm9jZXNzUG9vbFNvdXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UG9vbDo6c2V0TmV0d29ya1Byb3h5U2V0dGluZ3MpOiBEb24ndCBzZW5kIG1lc3NhZ2UgdG8gd2Vi
IHByb2Nlc3Nlcy4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vz
cy9nbGliL1dlYlByb2Nlc3NHTGliLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnBsYXRmb3JtVGVybWluYXRlKToKKwogMjAxOS0wMS0yMiAgTWljaGFlbCBDYXRhbnph
cm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBhdHRlbXB0
IHRvIGZpeCBHVEsvV1BFIGJvdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42ZGRjODFhMzZkODQ5Y2JjMjgzNzkzYjYxNzA2N2EyN2UyOWQ5MWYwCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYktpdFNv
dXBSZXF1ZXN0SW5wdXRTdHJlYW0uY3BwCkBAIC0wLDAgKzEsMTgyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmgiCisKKyNpbmNsdWRlIDx3dGYvTWFpblRocmVh
ZC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworc3RydWN0IEFzeW5jUmVh
ZERhdGEgeworICAgIEFzeW5jUmVhZERhdGEoR1JlZlB0cjxHVGFzaz4mJiB0YXNrLCB2b2lkKiBi
dWZmZXIsIGdzaXplIGNvdW50KQorICAgICAgICA6IHRhc2soV1RGTW92ZSh0YXNrKSkKKyAgICAg
ICAgLCBidWZmZXIoYnVmZmVyKQorICAgICAgICAsIGNvdW50KGNvdW50KQorICAgIHsKKyAgICB9
CisKKyAgICBHUmVmUHRyPEdUYXNrPiB0YXNrOworICAgIHZvaWQqIGJ1ZmZlcjsKKyAgICBzaXpl
X3QgY291bnQ7Cit9OworCitzdHJ1Y3QgX1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1Qcml2
YXRlIHsKKyAgICB1aW50NjRfdCBjb250ZW50TGVuZ3RoOworICAgIHVpbnQ2NF90IGJ5dGVzUmVj
ZWl2ZWQ7CisgICAgdWludDY0X3QgYnl0ZXNSZWFkOworCisgICAgR1VuaXF1ZVB0cjxHRXJyb3I+
IGVycm9yOworCisgICAgc3RkOjp1bmlxdWVfcHRyPEFzeW5jUmVhZERhdGE+IHBlbmRpbmdBc3lu
Y1JlYWQ7Cit9OworCitHX0RFRklORV9UWVBFKFdlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0s
IHdlYmtpdF9zb3VwX3JlcXVlc3RfaW5wdXRfc3RyZWFtLCBHX1RZUEVfTUVNT1JZX0lOUFVUX1NU
UkVBTSkKKworc3RhdGljIHZvaWQgd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVJlYWRBc3lu
Y1Jlc3VsdENvbXBsZXRlKEdUYXNrKiB0YXNrLCB2b2lkKiBidWZmZXIsIGdzaXplIGNvdW50KQor
eworICAgIFdlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0qIHN0cmVhbSA9IFdFQktJVF9TT1VQ
X1JFUVVFU1RfSU5QVVRfU1RSRUFNKGdfdGFza19nZXRfc291cmNlX29iamVjdCh0YXNrKSk7Cisg
ICAgR0Vycm9yKiBlcnJvciA9IG51bGxwdHI7CisgICAgZ3NzaXplIGJ5dGVzUmVhZCA9IEdfSU5Q
VVRfU1RSRUFNX0dFVF9DTEFTUyhzdHJlYW0pLT5yZWFkX2ZuKEdfSU5QVVRfU1RSRUFNKHN0cmVh
bSksIGJ1ZmZlciwgY291bnQsIGdfdGFza19nZXRfY2FuY2VsbGFibGUodGFzayksICZlcnJvcik7
CisgICAgaWYgKCFlcnJvcikgeworICAgICAgICBzdHJlYW0tPnByaXYtPmJ5dGVzUmVhZCArPSBi
eXRlc1JlYWQ7CisgICAgICAgIGdfdGFza19yZXR1cm5faW50KHRhc2ssIGJ5dGVzUmVhZCk7Cisg
ICAgfSBlbHNlCisgICAgICAgIGdfdGFza19yZXR1cm5fZXJyb3IodGFzaywgZXJyb3IpOworfQor
CitzdGF0aWMgdm9pZCB3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUGVuZGluZ1JlYWRBc3lu
Y0NvbXBsZXRlKFdlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0qIHN0cmVhbSkKK3sKKyAgICBp
ZiAoYXV0byBkYXRhID0gV1RGTW92ZShzdHJlYW0tPnByaXYtPnBlbmRpbmdBc3luY1JlYWQpKQor
ICAgICAgICB3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUmVhZEFzeW5jUmVzdWx0Q29tcGxl
dGUoZGF0YS0+dGFzay5nZXQoKSwgZGF0YS0+YnVmZmVyLCBkYXRhLT5jb3VudCk7Cit9CisKK3N0
YXRpYyBib29sIHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1IYXNEYXRhVG9SZWFkKFdlYktp
dFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0qIHN0cmVhbSkKK3sKKyAgICByZXR1cm4gc3RyZWFtLT5w
cml2LT5ieXRlc1JlYWQgPCBzdHJlYW0tPnByaXYtPmJ5dGVzUmVjZWl2ZWQ7Cit9CisKK3N0YXRp
YyBib29sIHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1Jc1dhaXRpbmdGb3JEYXRhKFdlYktp
dFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0qIHN0cmVhbSkKK3sKKyAgICByZXR1cm4gIXN0cmVhbS0+
cHJpdi0+Y29udGVudExlbmd0aCB8fCBzdHJlYW0tPnByaXYtPmJ5dGVzUmVjZWl2ZWQgPCBzdHJl
YW0tPnByaXYtPmNvbnRlbnRMZW5ndGg7Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdFNvdXBSZXF1
ZXN0SW5wdXRTdHJlYW1SZWFkQXN5bmMoR0lucHV0U3RyZWFtKiBpbnB1dFN0cmVhbSwgdm9pZCog
YnVmZmVyLCBnc2l6ZSBjb3VudCwgaW50IC8qcHJpb3JpdHkqLywgR0NhbmNlbGxhYmxlKiBjYW5j
ZWxsYWJsZSwgR0FzeW5jUmVhZHlDYWxsYmFjayBjYWxsYmFjaywgZ3BvaW50ZXIgdXNlckRhdGEp
Cit7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICBXZWJLaXRTb3VwUmVxdWVz
dElucHV0U3RyZWFtKiBzdHJlYW0gPSBXRUJLSVRfU09VUF9SRVFVRVNUX0lOUFVUX1NUUkVBTShp
bnB1dFN0cmVhbSk7CisgICAgR1JlZlB0cjxHVGFzaz4gdGFzayA9IGFkb3B0R1JlZihnX3Rhc2tf
bmV3KHN0cmVhbSwgY2FuY2VsbGFibGUsIGNhbGxiYWNrLCB1c2VyRGF0YSkpOworCisgICAgaWYg
KCF3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtSGFzRGF0YVRvUmVhZChzdHJlYW0pICYmICF3
ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtSXNXYWl0aW5nRm9yRGF0YShzdHJlYW0pKSB7Cisg
ICAgICAgIGdfdGFza19yZXR1cm5faW50KHRhc2suZ2V0KCksIDApOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgaWYgKHN0cmVhbS0+cHJpdi0+ZXJyb3IuZ2V0KCkpIHsKKyAgICAgICAg
Z190YXNrX3JldHVybl9lcnJvcih0YXNrLmdldCgpLCBzdHJlYW0tPnByaXYtPmVycm9yLnJlbGVh
c2UoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAod2Via2l0U291cFJlcXVl
c3RJbnB1dFN0cmVhbUhhc0RhdGFUb1JlYWQoc3RyZWFtKSkgeworICAgICAgICB3ZWJraXRTb3Vw
UmVxdWVzdElucHV0U3RyZWFtUmVhZEFzeW5jUmVzdWx0Q29tcGxldGUodGFzay5nZXQoKSwgYnVm
ZmVyLCBjb3VudCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzdHJlYW0tPnByaXYt
PnBlbmRpbmdBc3luY1JlYWQgPSBzdGQ6Om1ha2VfdW5pcXVlPEFzeW5jUmVhZERhdGE+KFdURk1v
dmUodGFzayksIGJ1ZmZlciwgY291bnQpOworfQorCitzdGF0aWMgZ3NzaXplIHdlYmtpdFNvdXBS
ZXF1ZXN0SW5wdXRTdHJlYW1SZWFkRmluaXNoKEdJbnB1dFN0cmVhbSogaW5wdXRTdHJlYW0sIEdB
c3luY1Jlc3VsdCogcmVzdWx0LCBHRXJyb3IqKiBlcnJvcikKK3sKKyAgICBnX3JldHVybl92YWxf
aWZfZmFpbChnX3Rhc2tfaXNfdmFsaWQocmVzdWx0LCBpbnB1dFN0cmVhbSksIDApOworCisgICAg
cmV0dXJuIGdfdGFza19wcm9wYWdhdGVfaW50KEdfVEFTSyhyZXN1bHQpLCBlcnJvcik7Cit9CisK
K3N0YXRpYyB2b2lkIHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1GaW5hbGl6ZShHT2JqZWN0
KiBvYmplY3QpCit7CisgICAgV0VCS0lUX1NPVVBfUkVRVUVTVF9JTlBVVF9TVFJFQU0ob2JqZWN0
KS0+cHJpdi0+fldlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1Qcml2YXRlKCk7CisgICAgR19P
QkpFQ1RfQ0xBU1Mod2Via2l0X3NvdXBfcmVxdWVzdF9pbnB1dF9zdHJlYW1fcGFyZW50X2NsYXNz
KS0+ZmluYWxpemUob2JqZWN0KTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0X3NvdXBfcmVxdWVz
dF9pbnB1dF9zdHJlYW1faW5pdChXZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtKiBzdHJlYW0p
Cit7CisgICAgV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVByaXZhdGUqIHByaXYgPSBHX1RZ
UEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoc3RyZWFtLCBXRUJLSVRfVFlQRV9TT1VQX1JFUVVFU1Rf
SU5QVVRfU1RSRUFNLCBXZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUHJpdmF0ZSk7CisgICAg
c3RyZWFtLT5wcml2ID0gcHJpdjsKKyAgICBuZXcgKHByaXYpIFdlYktpdFNvdXBSZXF1ZXN0SW5w
dXRTdHJlYW1Qcml2YXRlKCk7Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdF9zb3VwX3JlcXVlc3Rf
aW5wdXRfc3RyZWFtX2NsYXNzX2luaXQoV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbUNsYXNz
KiByZXF1ZXN0U3RyZWFtQ2xhc3MpCit7CisgICAgR09iamVjdENsYXNzKiBnT2JqZWN0Q2xhc3Mg
PSBHX09CSkVDVF9DTEFTUyhyZXF1ZXN0U3RyZWFtQ2xhc3MpOworICAgIGdPYmplY3RDbGFzcy0+
ZmluYWxpemUgPSB3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtRmluYWxpemU7CisKKyAgICBH
SW5wdXRTdHJlYW1DbGFzcyogaW5wdXRTdHJlYW1DbGFzcyA9IEdfSU5QVVRfU1RSRUFNX0NMQVNT
KHJlcXVlc3RTdHJlYW1DbGFzcyk7CisgICAgaW5wdXRTdHJlYW1DbGFzcy0+cmVhZF9hc3luYyA9
IHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1SZWFkQXN5bmM7CisgICAgaW5wdXRTdHJlYW1D
bGFzcy0+cmVhZF9maW5pc2ggPSB3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUmVhZEZpbmlz
aDsKKworICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShyZXF1ZXN0U3RyZWFtQ2xhc3MsIHNp
emVvZihXZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUHJpdmF0ZSkpOworfQorCitHSW5wdXRT
dHJlYW0qIHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1OZXcodWludDY0X3QgY29udGVudExl
bmd0aCkKK3sKKyAgICBXZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtKiBzdHJlYW0gPSBXRUJL
SVRfU09VUF9SRVFVRVNUX0lOUFVUX1NUUkVBTShnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfU09V
UF9SRVFVRVNUX0lOUFVUX1NUUkVBTSwgTlVMTCkpOworICAgIHN0cmVhbS0+cHJpdi0+Y29udGVu
dExlbmd0aCA9IGNvbnRlbnRMZW5ndGg7CisgICAgcmV0dXJuIEdfSU5QVVRfU1RSRUFNKHN0cmVh
bSk7Cit9CisKK3ZvaWQgd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbUFkZERhdGEoV2ViS2l0
U291cFJlcXVlc3RJbnB1dFN0cmVhbSogc3RyZWFtLCBjb25zdCB2b2lkKiBkYXRhLCBzaXplX3Qg
ZGF0YUxlbmd0aCkKK3sKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgaWYg
KHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1GaW5pc2hlZChzdHJlYW0pKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAoZGF0YUxlbmd0aCkgeworICAgICAgICAvLyBUcnVuY2F0ZSB0aGUg
ZGF0YUxlbmd0aCB0byB0aGUgY29udGVudExlbmd0aCBpZiBpdCdzIGtub3duLgorICAgICAgICBp
ZiAoc3RyZWFtLT5wcml2LT5jb250ZW50TGVuZ3RoICYmIHN0cmVhbS0+cHJpdi0+Ynl0ZXNSZWNl
aXZlZCArIGRhdGFMZW5ndGggPiBzdHJlYW0tPnByaXYtPmNvbnRlbnRMZW5ndGgpCisgICAgICAg
ICAgICBkYXRhTGVuZ3RoID0gc3RyZWFtLT5wcml2LT5jb250ZW50TGVuZ3RoIC0gc3RyZWFtLT5w
cml2LT5ieXRlc1JlY2VpdmVkOworICAgICAgICBzdHJlYW0tPnByaXYtPmJ5dGVzUmVjZWl2ZWQg
Kz0gZGF0YUxlbmd0aDsKKyAgICAgICAgZ19tZW1vcnlfaW5wdXRfc3RyZWFtX2FkZF9kYXRhKEdf
TUVNT1JZX0lOUFVUX1NUUkVBTShzdHJlYW0pLCBnX21lbWR1cChkYXRhLCBkYXRhTGVuZ3RoKSwg
ZGF0YUxlbmd0aCwgZ19mcmVlKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBXZSBoYXZlIHJl
Y2VpdmVkIGFsbCB0aGUgZGF0YSwgc2V0IGNvbnRlbnRMZW5ndGggdG8gYnl0ZXNSZWNlaXZlZCB0
byBpbmRpY2F0ZSB3ZSBoYXZlIGZpbmlzaGVkLgorICAgICAgICBzdHJlYW0tPnByaXYtPmNvbnRl
bnRMZW5ndGggPSBzdHJlYW0tPnByaXYtPmJ5dGVzUmVjZWl2ZWQ7CisgICAgICAgIC8vIElmIHRo
ZXJlJ3MgYSBwZW5kaW5nIHJlYWQgdG8gY29tcGxldGUsIHJlYWRfZm4gd2lsbCByZXR1cm4gMCBi
ZWNhdXNlIHdlIGhhdmVuJ3QgYWRkZWQgbW9yZSBkYXRhIHRvIHRoZQorICAgICAgICAvLyBtZW1v
cnkgaW5wdXQgc3RyZWFtLiBBbmQgaWYgdGhlcmUgaXNuJ3QgYSBwZW5kaW5nIHJlYWQsIHRoZSBu
ZXh0IGNhbGwgdG8gcmVhZF9hc3luYyB3aWxsIHJldHVybiAwIHRvbywgYmVjYXVzZQorICAgICAg
ICAvLyB3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtRmluaXNoZWQoKSBpcyBub3cgVFJVRS4K
KyAgICB9CisKKyAgICB3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUGVuZGluZ1JlYWRBc3lu
Y0NvbXBsZXRlKHN0cmVhbSk7Cit9CisKK3ZvaWQgd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVh
bURpZEZhaWxXaXRoRXJyb3IoV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbSogc3RyZWFtLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVycm9yKQoreworICAgIEdVbmlx
dWVQdHI8R0Vycm9yPiBlcnJvcihnX2Vycm9yX25ldyhnX3F1YXJrX2Zyb21fc3RyaW5nKHJlc291
cmNlRXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSksIHJlc291cmNlRXJyb3IuZXJyb3JDb2Rl
KCksICIlcyIsIHJlc291cmNlRXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCkuZGF0
YSgpKSk7CisgICAgaWYgKGF1dG8gZGF0YSA9IFdURk1vdmUoc3RyZWFtLT5wcml2LT5wZW5kaW5n
QXN5bmNSZWFkKSkKKyAgICAgICAgZ190YXNrX3JldHVybl9lcnJvcihkYXRhLT50YXNrLmdldCgp
LCBlcnJvci5yZWxlYXNlKCkpOworICAgIGVsc2UgeworICAgICAgICBzdHJlYW0tPnByaXYtPmNv
bnRlbnRMZW5ndGggPSBzdHJlYW0tPnByaXYtPmJ5dGVzUmVjZWl2ZWQ7CisgICAgICAgIHN0cmVh
bS0+cHJpdi0+ZXJyb3IgPSBXVEZNb3ZlKGVycm9yKTsKKyAgICB9Cit9CisKK2Jvb2wgd2Via2l0
U291cFJlcXVlc3RJbnB1dFN0cmVhbUZpbmlzaGVkKFdlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJl
YW0qIHN0cmVhbSkKK3sKKyAgICByZXR1cm4gIXdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1J
c1dhaXRpbmdGb3JEYXRhKHN0cmVhbSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zOTliMGI0NWQ2ZjVhM2UxZWQ4ZWQyNTc5MDk5MzZjN2Q2MjI2N2M0Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYktp
dFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0uaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZUVycm9yLmg+CisjaW5jbHVkZSA8Z2lvL2dpby5oPgorCitHX0JFR0lOX0RFQ0xT
CisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfU09VUF9SRVFVRVNUX0lOUFVUX1NUUkVBTSAgICAgICAg
ICAgICh3ZWJraXRfc291cF9yZXF1ZXN0X2lucHV0X3N0cmVhbV9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBXRUJLSVRfU09VUF9SRVFVRVNUX0lOUFVUX1NUUkVBTShvYmplY3QpICAgICAgICAgKEdfVFlQ
RV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmplY3QpLCBXRUJLSVRfVFlQRV9TT1VQX1JFUVVFU1Rf
SU5QVVRfU1RSRUFNLCBXZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtKSkKKyNkZWZpbmUgV0VC
S0lUX0lTX1NPVVBfUkVRVUVTVF9JTlBVVF9TVFJFQU0ob2JqZWN0KSAgICAgIChHX1RZUEVfQ0hF
Q0tfSU5TVEFOQ0VfVFlQRSgob2JqZWN0KSwgV0VCS0lUX1RZUEVfU09VUF9SRVFVRVNUX0lOUFVU
X1NUUkVBTSkpCisjZGVmaW5lIFdFQktJVF9TT1VQX1JFUVVFU1RfSU5QVVRfU1RSRUFNX0NMQVNT
KGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgV0VCS0lUX1RZUEVf
U09VUF9SRVFVRVNUX0lOUFVUX1NUUkVBTSwgV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbUNs
YXNzKSkKKyNkZWZpbmUgV0VCS0lUX0lTX1NPVVBfUkVRVUVTVF9JTlBVVF9TVFJFQU1fQ0xBU1Mo
a2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCBXRUJLSVRfVFlQRV9TT1VQ
X1JFUVVFU1RfSU5QVVRfU1RSRUFNKSkKKyNkZWZpbmUgV0VCS0lUX1NPVVBfUkVRVUVTVF9JTlBV
VF9TVFJFQU1fR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmop
LCBXRUJLSVRfVFlQRV9TT1VQX1JFUVVFU1RfSU5QVVRfU1RSRUFNLCBXZWJLaXRTb3VwUmVxdWVz
dElucHV0U3RyZWFtQ2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0U291cFJlcXVlc3RJ
bnB1dFN0cmVhbSBXZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtOwordHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1DbGFzcyBXZWJLaXRTb3VwUmVxdWVzdElucHV0
U3RyZWFtQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVh
bVByaXZhdGUgV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVByaXZhdGU7CisKK3N0cnVjdCBf
V2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbSB7CisgICAgR01lbW9yeUlucHV0U3RyZWFtIHBh
cmVudDsKKworICAgIFdlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1Qcml2YXRlKiBwcml2Owor
fTsKKworc3RydWN0IF9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtQ2xhc3MgeworICAgIEdN
ZW1vcnlJbnB1dFN0cmVhbUNsYXNzIHBhcmVudDsKK307CisKK0dUeXBlIHdlYmtpdF9zb3VwX3Jl
cXVlc3RfaW5wdXRfc3RyZWFtX2dldF90eXBlKCk7CitHSW5wdXRTdHJlYW0qIHdlYmtpdFNvdXBS
ZXF1ZXN0SW5wdXRTdHJlYW1OZXcodWludDY0X3QgY29udGVudExlbmd0aCk7Cit2b2lkIHdlYmtp
dFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1BZGREYXRhKFdlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJl
YW0qLCBjb25zdCB2b2lkKiBkYXRhLCBzaXplX3QgZGF0YUxlbmd0aCk7Cit2b2lkIHdlYmtpdFNv
dXBSZXF1ZXN0SW5wdXRTdHJlYW1EaWRGYWlsV2l0aEVycm9yKFdlYktpdFNvdXBSZXF1ZXN0SW5w
dXRTdHJlYW0qLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7Citib29sIHdlYmtpdFNv
dXBSZXF1ZXN0SW5wdXRTdHJlYW1GaW5pc2hlZChXZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFt
Kik7CisKK0dfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsu
dHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAppbmRleCBiMDhkNzIzYjRhZWU2MGI0
MTllN2I5M2UyMWQ4ODY0NDI5NWQxN2YzLi5hNzE4ODA1MTU5NGZlYzczNTEzMGM2ZWY2OGNmNDAy
Njg4NjI0MzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQKQEAgLTQyLDYgKzQyLDcgQEAgTmV0d29ya1By
b2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc01haW5Tb3VwLmNwcAogTmV0d29ya1Byb2Nlc3Mvc291
cC9OZXR3b3JrUHJvY2Vzc1NvdXAuY3BwCiBOZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtTZXNz
aW9uU291cC5jcHAKIE5ldHdvcmtQcm9jZXNzL3NvdXAvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRT
b3VwLmNwcAorTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFt
LmNwcAogCiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50LmNwcAog
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENNb25pdG9yLmNwcApAQCAtNDEyLDEwICs0
MTMsOSBAQCBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYkluc3BlY3RvclVJR3RrLmNwcAogV2Vi
UHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcAogV2ViUHJvY2Vzcy9XZWJQYWdlL2d0
ay9XZWJQcmludE9wZXJhdGlvbkd0ay5jcHAKIAorV2ViUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NH
TGliLmNwcAorCiBXZWJQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvckRpc3BsYXkuY3BwCiBX
ZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFpbkd0ay5jcHAKIAotV2ViUHJvY2Vzcy9zb3VwL1dl
YktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0uY3BwCi1XZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vz
c1NvdXAuY3BwCi0KIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbk5v
bmUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0IGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzV1BFLnR4dAppbmRleCA1MTE5Y2FlNTZiYzA2ZjIyOTczZjY3MzNjMDg0
MzdhYjJlM2UzZTEyLi4xNmI4OTkzMDhmZmVhN2FiMDFhMTY5YzY5N2M2ZTc3N2FlNDM1MGIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQvU291cmNlc1dQRS50eHQKQEAgLTM4LDYgKzM4LDcgQEAgTmV0d29ya1Byb2Nlc3Mvc291cC9O
ZXR3b3JrUHJvY2Vzc01haW5Tb3VwLmNwcAogTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJv
Y2Vzc1NvdXAuY3BwCiBOZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtTZXNzaW9uU291cC5jcHAK
IE5ldHdvcmtQcm9jZXNzL3NvdXAvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcAorTmV0
d29ya1Byb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcAogCiBOZXR3
b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50LmNwcAogTmV0d29ya1Byb2Nl
c3Mvd2VicnRjL05ldHdvcmtSVENNb25pdG9yLmNwcApAQCAtMjUwLDcgKzI1MSw2IEBAIFdlYlBy
b2Nlc3MvV2ViUGFnZS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyLmNwcAogV2ViUHJvY2Vzcy9XZWJQ
YWdlL3dwZS9XZWJJbnNwZWN0b3JVSVdQRS5jcHAKIFdlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2Vi
UGFnZVdQRS5jcHAKIAotV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJl
YW0uY3BwCi1XZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwCitXZWJQcm9jZXNzL2ds
aWIvV2ViUHJvY2Vzc0dMaWIuY3BwCiAKIFdlYlByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NNYWluV1BF
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvc291cC9XZWJQcm9jZXNz
UG9vbFNvdXAuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvc291cC9XZWJQcm9jZXNzUG9v
bFNvdXAuY3BwCmluZGV4IDQ3MWVlMTY2MjIxMDNiNDdmOTQwZGU3NWY3NGZlNmVlZjAxMjQ0MWIu
LjM1ODZiYzNmZjAzNjhkNWQwOTdlNDg3YzI0NThlNDY1MzQxZjVhODAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1Bvb2xTb3VwLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NQb29sU291cC5jcHAKQEAgLTU2
LDcgKzU2LDYgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0SWdub3JlVExTRXJyb3JzKGJvb2wg
aWdub3JlVExTRXJyb3JzKQogdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0TmV0d29ya1Byb3h5U2V0
dGluZ3MoY29uc3QgV2ViQ29yZTo6U291cE5ldHdvcmtQcm94eVNldHRpbmdzJiBzZXR0aW5ncykK
IHsKICAgICBtX25ldHdvcmtQcm94eVNldHRpbmdzID0gc2V0dGluZ3M7Ci0gICAgc2VuZFRvQWxs
UHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTZXROZXR3b3JrUHJveHlTZXR0aW5ncyht
X25ldHdvcmtQcm94eVNldHRpbmdzKSk7CiAgICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MpCiAgICAg
ICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRO
ZXR3b3JrUHJveHlTZXR0aW5ncyhtX25ldHdvcmtQcm94eVNldHRpbmdzKSwgMCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCAxOTc3ODQ1YjkwNjkwMjM0ZjQ2OTcw
YWViZjBjYWYzNTRiZDU4YTZhLi44ZDAyMTMzOTQ4MTgxNTBiNTBlMjI0NDRmOWVjMmIzZWM3YzU2
NzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTczLDcgKzczLDYg
QEAgc3RydWN0IE1vY2tNZWRpYURldmljZTsKIHN0cnVjdCBQbHVnaW5JbmZvOwogc3RydWN0IFBy
ZXdhcm1JbmZvcm1hdGlvbjsKIHN0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7Ci1zdHJ1Y3QgU291
cE5ldHdvcmtQcm94eVNldHRpbmdzOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogc3Ry
dWN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTsKQEAgLTMxOSw5ICszMTgsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgZ2FtZXBhZENvbm5lY3RlZChjb25zdCBHYW1lcGFkRGF0YSYpOwogICAgIHZv
aWQgZ2FtZXBhZERpc2Nvbm5lY3RlZCh1bnNpZ25lZCBpbmRleCk7CiAjZW5kaWYKLSNpZiBVU0Uo
U09VUCkKLSAgICB2b2lkIHNldE5ldHdvcmtQcm94eVNldHRpbmdzKGNvbnN0IFdlYkNvcmU6OlNv
dXBOZXR3b3JrUHJveHlTZXR0aW5ncyYpOwotI2VuZGlmCisKICNpZiBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCiAgICAgdm9pZCBlc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29y
a1Byb2Nlc3ModWludDY0X3QgcGFnZUdyb3VwSUQsIHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2Vi
UHJlZmVyZW5jZXNTdG9yZSYsIFBBTDo6U2Vzc2lvbklEKTsKICAgICB2b2lkIHJlZ2lzdGVyU2Vy
dmljZVdvcmtlckNsaWVudHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggYzllMzBjMWU2NTcxNjBhZDE5YmQzNjQ0YzY0MTZmZDNk
YjA2MjZhNy4uNmY2Y2EzNjJlZmM2Mjg2ZTg5ZmY0NmRjZTgwMmRiY2JlZmU4NzcyMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTEw
OSwxMCArMTA5LDYgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAg
ICAgR2FtZXBhZERpc2Nvbm5lY3RlZCh1bnNpZ25lZCBpbmRleCkKICNlbmRpZgogCi0jaWYgVVNF
KFNPVVApCi0gICAgU2V0TmV0d29ya1Byb3h5U2V0dGluZ3Moc3RydWN0IFdlYkNvcmU6OlNvdXBO
ZXR3b3JrUHJveHlTZXR0aW5ncyBzZXR0aW5ncykKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFNFUlZJ
Q0VfV09SS0VSKQogICAgIEVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3Jr
UHJvY2Vzcyh1aW50NjRfdCBwYWdlR3JvdXBJRCwgdWludDY0X3QgcGFnZUlELCBzdHJ1Y3QgV2Vi
S2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlIHN0b3JlLCBQQUw6OlNlc3Npb25JRCBpbml0aWFsU2Vz
c2lvbklEKQogICAgIFJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudHMoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc0dMaWIuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc0dMaWIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3
ZGE1MmRlNWVkMDViZWE2N2Q5ZjU0YTRkY2FlZGY4ZWE4MTMyNDAKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzR0xpYi5jcHAKQEAgLTAs
MCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTEgTW90b3JvbGEgTW9i
aWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBNT1RPUk9MQSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBNT1RPUk9MQSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisKKyNpbmNsdWRlICJXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9HU3RyZWFtZXJD
b21tb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lbW9yeUNhY2hlLmg+CisKKyNpZiBQTEFURk9S
TShXQVlMQU5EKQorI2luY2x1ZGUgIldheWxhbmRDb21wb3NpdG9yRGlzcGxheS5oIgorI2VuZGlm
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtU2V0Q2Fj
aGVNb2RlbChDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCit7CisgICAgV2ViQ29yZTo6TWVtb3J5Q2Fj
aGU6OnNpbmdsZXRvbigpLnNldERpc2FibGVkKGNhY2hlTW9kZWwgPT0gQ2FjaGVNb2RlbDo6RG9j
dW1lbnRWaWV3ZXIpOworfQorCit2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdl
YlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCit7Cisj
aWYgUExBVEZPUk0oV0FZTEFORCkKKyAgICBtX3dheWxhbmRDb21wb3NpdG9yRGlzcGxheSA9IFdh
eWxhbmRDb21wb3NpdG9yRGlzcGxheTo6Y3JlYXRlKHBhcmFtZXRlcnMud2F5bGFuZENvbXBvc2l0
b3JEaXNwbGF5TmFtZSk7CisjZW5kaWYKKyNpZiBVU0UoR1NUUkVBTUVSKQorICAgIFdlYkNvcmU6
OmluaXRpYWxpemVHU3RyZWFtZXIoV1RGTW92ZShwYXJhbWV0ZXJzLmdzdHJlYW1lck9wdGlvbnMp
KTsKKyNlbmRpZgorfQorCit2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtVGVybWluYXRlKCkKK3sK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0uY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZGRjODFhMzZkODQ5Y2JjMjgzNzkzYjYxNzA2
N2EyN2UyOWQ5MWYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRT
dHJlYW0uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTgyICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldl
YktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0uaCIKLQotI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFk
Lmg+Ci0jaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KLSNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgotCi1zdHJ1Y3QgQXN5bmNSZWFk
RGF0YSB7Ci0gICAgQXN5bmNSZWFkRGF0YShHUmVmUHRyPEdUYXNrPiYmIHRhc2ssIHZvaWQqIGJ1
ZmZlciwgZ3NpemUgY291bnQpCi0gICAgICAgIDogdGFzayhXVEZNb3ZlKHRhc2spKQotICAgICAg
ICAsIGJ1ZmZlcihidWZmZXIpCi0gICAgICAgICwgY291bnQoY291bnQpCi0gICAgewotICAgIH0K
LQotICAgIEdSZWZQdHI8R1Rhc2s+IHRhc2s7Ci0gICAgdm9pZCogYnVmZmVyOwotICAgIHNpemVf
dCBjb3VudDsKLX07Ci0KLXN0cnVjdCBfV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVByaXZh
dGUgewotICAgIHVpbnQ2NF90IGNvbnRlbnRMZW5ndGg7Ci0gICAgdWludDY0X3QgYnl0ZXNSZWNl
aXZlZDsKLSAgICB1aW50NjRfdCBieXRlc1JlYWQ7Ci0KLSAgICBHVW5pcXVlUHRyPEdFcnJvcj4g
ZXJyb3I7Ci0KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8QXN5bmNSZWFkRGF0YT4gcGVuZGluZ0FzeW5j
UmVhZDsKLX07Ci0KLUdfREVGSU5FX1RZUEUoV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbSwg
d2Via2l0X3NvdXBfcmVxdWVzdF9pbnB1dF9zdHJlYW0sIEdfVFlQRV9NRU1PUllfSU5QVVRfU1RS
RUFNKQotCi1zdGF0aWMgdm9pZCB3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUmVhZEFzeW5j
UmVzdWx0Q29tcGxldGUoR1Rhc2sqIHRhc2ssIHZvaWQqIGJ1ZmZlciwgZ3NpemUgY291bnQpCi17
Ci0gICAgV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbSogc3RyZWFtID0gV0VCS0lUX1NPVVBf
UkVRVUVTVF9JTlBVVF9TVFJFQU0oZ190YXNrX2dldF9zb3VyY2Vfb2JqZWN0KHRhc2spKTsKLSAg
ICBHRXJyb3IqIGVycm9yID0gbnVsbHB0cjsKLSAgICBnc3NpemUgYnl0ZXNSZWFkID0gR19JTlBV
VF9TVFJFQU1fR0VUX0NMQVNTKHN0cmVhbSktPnJlYWRfZm4oR19JTlBVVF9TVFJFQU0oc3RyZWFt
KSwgYnVmZmVyLCBjb3VudCwgZ190YXNrX2dldF9jYW5jZWxsYWJsZSh0YXNrKSwgJmVycm9yKTsK
LSAgICBpZiAoIWVycm9yKSB7Ci0gICAgICAgIHN0cmVhbS0+cHJpdi0+Ynl0ZXNSZWFkICs9IGJ5
dGVzUmVhZDsKLSAgICAgICAgZ190YXNrX3JldHVybl9pbnQodGFzaywgYnl0ZXNSZWFkKTsKLSAg
ICB9IGVsc2UKLSAgICAgICAgZ190YXNrX3JldHVybl9lcnJvcih0YXNrLCBlcnJvcik7Ci19Ci0K
LXN0YXRpYyB2b2lkIHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1QZW5kaW5nUmVhZEFzeW5j
Q29tcGxldGUoV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbSogc3RyZWFtKQotewotICAgIGlm
IChhdXRvIGRhdGEgPSBXVEZNb3ZlKHN0cmVhbS0+cHJpdi0+cGVuZGluZ0FzeW5jUmVhZCkpCi0g
ICAgICAgIHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1SZWFkQXN5bmNSZXN1bHRDb21wbGV0
ZShkYXRhLT50YXNrLmdldCgpLCBkYXRhLT5idWZmZXIsIGRhdGEtPmNvdW50KTsKLX0KLQotc3Rh
dGljIGJvb2wgd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbUhhc0RhdGFUb1JlYWQoV2ViS2l0
U291cFJlcXVlc3RJbnB1dFN0cmVhbSogc3RyZWFtKQotewotICAgIHJldHVybiBzdHJlYW0tPnBy
aXYtPmJ5dGVzUmVhZCA8IHN0cmVhbS0+cHJpdi0+Ynl0ZXNSZWNlaXZlZDsKLX0KLQotc3RhdGlj
IGJvb2wgd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbUlzV2FpdGluZ0ZvckRhdGEoV2ViS2l0
U291cFJlcXVlc3RJbnB1dFN0cmVhbSogc3RyZWFtKQotewotICAgIHJldHVybiAhc3RyZWFtLT5w
cml2LT5jb250ZW50TGVuZ3RoIHx8IHN0cmVhbS0+cHJpdi0+Ynl0ZXNSZWNlaXZlZCA8IHN0cmVh
bS0+cHJpdi0+Y29udGVudExlbmd0aDsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0U291cFJlcXVl
c3RJbnB1dFN0cmVhbVJlYWRBc3luYyhHSW5wdXRTdHJlYW0qIGlucHV0U3RyZWFtLCB2b2lkKiBi
dWZmZXIsIGdzaXplIGNvdW50LCBpbnQgLypwcmlvcml0eSovLCBHQ2FuY2VsbGFibGUqIGNhbmNl
bGxhYmxlLCBHQXN5bmNSZWFkeUNhbGxiYWNrIGNhbGxiYWNrLCBncG9pbnRlciB1c2VyRGF0YSkK
LXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIFdlYktpdFNvdXBSZXF1ZXN0
SW5wdXRTdHJlYW0qIHN0cmVhbSA9IFdFQktJVF9TT1VQX1JFUVVFU1RfSU5QVVRfU1RSRUFNKGlu
cHV0U3RyZWFtKTsKLSAgICBHUmVmUHRyPEdUYXNrPiB0YXNrID0gYWRvcHRHUmVmKGdfdGFza19u
ZXcoc3RyZWFtLCBjYW5jZWxsYWJsZSwgY2FsbGJhY2ssIHVzZXJEYXRhKSk7Ci0KLSAgICBpZiAo
IXdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1IYXNEYXRhVG9SZWFkKHN0cmVhbSkgJiYgIXdl
YmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1Jc1dhaXRpbmdGb3JEYXRhKHN0cmVhbSkpIHsKLSAg
ICAgICAgZ190YXNrX3JldHVybl9pbnQodGFzay5nZXQoKSwgMCk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBpZiAoc3RyZWFtLT5wcml2LT5lcnJvci5nZXQoKSkgewotICAgICAgICBn
X3Rhc2tfcmV0dXJuX2Vycm9yKHRhc2suZ2V0KCksIHN0cmVhbS0+cHJpdi0+ZXJyb3IucmVsZWFz
ZSgpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICh3ZWJraXRTb3VwUmVxdWVz
dElucHV0U3RyZWFtSGFzRGF0YVRvUmVhZChzdHJlYW0pKSB7Ci0gICAgICAgIHdlYmtpdFNvdXBS
ZXF1ZXN0SW5wdXRTdHJlYW1SZWFkQXN5bmNSZXN1bHRDb21wbGV0ZSh0YXNrLmdldCgpLCBidWZm
ZXIsIGNvdW50KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHN0cmVhbS0+cHJpdi0+
cGVuZGluZ0FzeW5jUmVhZCA9IHN0ZDo6bWFrZV91bmlxdWU8QXN5bmNSZWFkRGF0YT4oV1RGTW92
ZSh0YXNrKSwgYnVmZmVyLCBjb3VudCk7Ci19Ci0KLXN0YXRpYyBnc3NpemUgd2Via2l0U291cFJl
cXVlc3RJbnB1dFN0cmVhbVJlYWRGaW5pc2goR0lucHV0U3RyZWFtKiBpbnB1dFN0cmVhbSwgR0Fz
eW5jUmVzdWx0KiByZXN1bHQsIEdFcnJvcioqIGVycm9yKQotewotICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKGdfdGFza19pc192YWxpZChyZXN1bHQsIGlucHV0U3RyZWFtKSwgMCk7Ci0KLSAgICBy
ZXR1cm4gZ190YXNrX3Byb3BhZ2F0ZV9pbnQoR19UQVNLKHJlc3VsdCksIGVycm9yKTsKLX0KLQot
c3RhdGljIHZvaWQgd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbUZpbmFsaXplKEdPYmplY3Qq
IG9iamVjdCkKLXsKLSAgICBXRUJLSVRfU09VUF9SRVFVRVNUX0lOUFVUX1NUUkVBTShvYmplY3Qp
LT5wcml2LT5+V2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVByaXZhdGUoKTsKLSAgICBHX09C
SkVDVF9DTEFTUyh3ZWJraXRfc291cF9yZXF1ZXN0X2lucHV0X3N0cmVhbV9wYXJlbnRfY2xhc3Mp
LT5maW5hbGl6ZShvYmplY3QpOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfc291cF9yZXF1ZXN0
X2lucHV0X3N0cmVhbV9pbml0KFdlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0qIHN0cmVhbSkK
LXsKLSAgICBXZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtUHJpdmF0ZSogcHJpdiA9IEdfVFlQ
RV9JTlNUQU5DRV9HRVRfUFJJVkFURShzdHJlYW0sIFdFQktJVF9UWVBFX1NPVVBfUkVRVUVTVF9J
TlBVVF9TVFJFQU0sIFdlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1Qcml2YXRlKTsKLSAgICBz
dHJlYW0tPnByaXYgPSBwcml2OwotICAgIG5ldyAocHJpdikgV2ViS2l0U291cFJlcXVlc3RJbnB1
dFN0cmVhbVByaXZhdGUoKTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X3NvdXBfcmVxdWVzdF9p
bnB1dF9zdHJlYW1fY2xhc3NfaW5pdChXZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtQ2xhc3Mq
IHJlcXVlc3RTdHJlYW1DbGFzcykKLXsKLSAgICBHT2JqZWN0Q2xhc3MqIGdPYmplY3RDbGFzcyA9
IEdfT0JKRUNUX0NMQVNTKHJlcXVlc3RTdHJlYW1DbGFzcyk7Ci0gICAgZ09iamVjdENsYXNzLT5m
aW5hbGl6ZSA9IHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1GaW5hbGl6ZTsKLQotICAgIEdJ
bnB1dFN0cmVhbUNsYXNzKiBpbnB1dFN0cmVhbUNsYXNzID0gR19JTlBVVF9TVFJFQU1fQ0xBU1Mo
cmVxdWVzdFN0cmVhbUNsYXNzKTsKLSAgICBpbnB1dFN0cmVhbUNsYXNzLT5yZWFkX2FzeW5jID0g
d2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVJlYWRBc3luYzsKLSAgICBpbnB1dFN0cmVhbUNs
YXNzLT5yZWFkX2ZpbmlzaCA9IHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1SZWFkRmluaXNo
OwotCi0gICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKHJlcXVlc3RTdHJlYW1DbGFzcywgc2l6
ZW9mKFdlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1Qcml2YXRlKSk7Ci19Ci0KLUdJbnB1dFN0
cmVhbSogd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbU5ldyh1aW50NjRfdCBjb250ZW50TGVu
Z3RoKQotewotICAgIFdlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0qIHN0cmVhbSA9IFdFQktJ
VF9TT1VQX1JFUVVFU1RfSU5QVVRfU1RSRUFNKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9TT1VQ
X1JFUVVFU1RfSU5QVVRfU1RSRUFNLCBOVUxMKSk7Ci0gICAgc3RyZWFtLT5wcml2LT5jb250ZW50
TGVuZ3RoID0gY29udGVudExlbmd0aDsKLSAgICByZXR1cm4gR19JTlBVVF9TVFJFQU0oc3RyZWFt
KTsKLX0KLQotdm9pZCB3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFtQWRkRGF0YShXZWJLaXRT
b3VwUmVxdWVzdElucHV0U3RyZWFtKiBzdHJlYW0sIGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBk
YXRhTGVuZ3RoKQotewotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBpZiAo
d2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbUZpbmlzaGVkKHN0cmVhbSkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIGlmIChkYXRhTGVuZ3RoKSB7Ci0gICAgICAgIC8vIFRydW5jYXRlIHRoZSBk
YXRhTGVuZ3RoIHRvIHRoZSBjb250ZW50TGVuZ3RoIGlmIGl0J3Mga25vd24uCi0gICAgICAgIGlm
IChzdHJlYW0tPnByaXYtPmNvbnRlbnRMZW5ndGggJiYgc3RyZWFtLT5wcml2LT5ieXRlc1JlY2Vp
dmVkICsgZGF0YUxlbmd0aCA+IHN0cmVhbS0+cHJpdi0+Y29udGVudExlbmd0aCkKLSAgICAgICAg
ICAgIGRhdGFMZW5ndGggPSBzdHJlYW0tPnByaXYtPmNvbnRlbnRMZW5ndGggLSBzdHJlYW0tPnBy
aXYtPmJ5dGVzUmVjZWl2ZWQ7Ci0gICAgICAgIHN0cmVhbS0+cHJpdi0+Ynl0ZXNSZWNlaXZlZCAr
PSBkYXRhTGVuZ3RoOwotICAgICAgICBnX21lbW9yeV9pbnB1dF9zdHJlYW1fYWRkX2RhdGEoR19N
RU1PUllfSU5QVVRfU1RSRUFNKHN0cmVhbSksIGdfbWVtZHVwKGRhdGEsIGRhdGFMZW5ndGgpLCBk
YXRhTGVuZ3RoLCBnX2ZyZWUpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIFdlIGhhdmUgcmVj
ZWl2ZWQgYWxsIHRoZSBkYXRhLCBzZXQgY29udGVudExlbmd0aCB0byBieXRlc1JlY2VpdmVkIHRv
IGluZGljYXRlIHdlIGhhdmUgZmluaXNoZWQuCi0gICAgICAgIHN0cmVhbS0+cHJpdi0+Y29udGVu
dExlbmd0aCA9IHN0cmVhbS0+cHJpdi0+Ynl0ZXNSZWNlaXZlZDsKLSAgICAgICAgLy8gSWYgdGhl
cmUncyBhIHBlbmRpbmcgcmVhZCB0byBjb21wbGV0ZSwgcmVhZF9mbiB3aWxsIHJldHVybiAwIGJl
Y2F1c2Ugd2UgaGF2ZW4ndCBhZGRlZCBtb3JlIGRhdGEgdG8gdGhlCi0gICAgICAgIC8vIG1lbW9y
eSBpbnB1dCBzdHJlYW0uIEFuZCBpZiB0aGVyZSBpc24ndCBhIHBlbmRpbmcgcmVhZCwgdGhlIG5l
eHQgY2FsbCB0byByZWFkX2FzeW5jIHdpbGwgcmV0dXJuIDAgdG9vLCBiZWNhdXNlCi0gICAgICAg
IC8vIHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1GaW5pc2hlZCgpIGlzIG5vdyBUUlVFLgot
ICAgIH0KLQotICAgIHdlYmtpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1QZW5kaW5nUmVhZEFzeW5j
Q29tcGxldGUoc3RyZWFtKTsKLX0KLQotdm9pZCB3ZWJraXRTb3VwUmVxdWVzdElucHV0U3RyZWFt
RGlkRmFpbFdpdGhFcnJvcihXZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtKiBzdHJlYW0sIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IpCi17Ci0gICAgR1VuaXF1
ZVB0cjxHRXJyb3I+IGVycm9yKGdfZXJyb3JfbmV3KGdfcXVhcmtfZnJvbV9zdHJpbmcocmVzb3Vy
Y2VFcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpKSwgcmVzb3VyY2VFcnJvci5lcnJvckNvZGUo
KSwgIiVzIiwgcmVzb3VyY2VFcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRh
KCkpKTsKLSAgICBpZiAoYXV0byBkYXRhID0gV1RGTW92ZShzdHJlYW0tPnByaXYtPnBlbmRpbmdB
c3luY1JlYWQpKQotICAgICAgICBnX3Rhc2tfcmV0dXJuX2Vycm9yKGRhdGEtPnRhc2suZ2V0KCks
IGVycm9yLnJlbGVhc2UoKSk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIHN0cmVhbS0+cHJpdi0+Y29u
dGVudExlbmd0aCA9IHN0cmVhbS0+cHJpdi0+Ynl0ZXNSZWNlaXZlZDsKLSAgICAgICAgc3RyZWFt
LT5wcml2LT5lcnJvciA9IFdURk1vdmUoZXJyb3IpOwotICAgIH0KLX0KLQotYm9vbCB3ZWJraXRT
b3VwUmVxdWVzdElucHV0U3RyZWFtRmluaXNoZWQoV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVh
bSogc3RyZWFtKQotewotICAgIHJldHVybiAhd2Via2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbUlz
V2FpdGluZ0ZvckRhdGEoc3RyZWFtKTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0uaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0uaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDdlMjY0ZDU3ZTQ0MjExMWQ2MWM0Y2ZjZmNmZWIyODFk
YTFlODc4ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFt
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEyIElnYWxpYSBTLkwuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgot
ICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
Ci0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgotICovCi0KLSNpZm5kZWYgV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbV9oCi0j
ZGVmaW5lIFdlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1faAotCi0jaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZUVycm9yLmg+Ci0jaW5jbHVkZSA8Z2lvL2dpby5oPgotCi1HX0JFR0lOX0RFQ0xT
Ci0KLSNkZWZpbmUgV0VCS0lUX1RZUEVfU09VUF9SRVFVRVNUX0lOUFVUX1NUUkVBTSAgICAgICAg
ICAgICh3ZWJraXRfc291cF9yZXF1ZXN0X2lucHV0X3N0cmVhbV9nZXRfdHlwZSgpKQotI2RlZmlu
ZSBXRUJLSVRfU09VUF9SRVFVRVNUX0lOUFVUX1NUUkVBTShvYmplY3QpICAgICAgICAgKEdfVFlQ
RV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmplY3QpLCBXRUJLSVRfVFlQRV9TT1VQX1JFUVVFU1Rf
SU5QVVRfU1RSRUFNLCBXZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtKSkKLSNkZWZpbmUgV0VC
S0lUX0lTX1NPVVBfUkVRVUVTVF9JTlBVVF9TVFJFQU0ob2JqZWN0KSAgICAgIChHX1RZUEVfQ0hF
Q0tfSU5TVEFOQ0VfVFlQRSgob2JqZWN0KSwgV0VCS0lUX1RZUEVfU09VUF9SRVFVRVNUX0lOUFVU
X1NUUkVBTSkpCi0jZGVmaW5lIFdFQktJVF9TT1VQX1JFUVVFU1RfSU5QVVRfU1RSRUFNX0NMQVNT
KGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgV0VCS0lUX1RZUEVf
U09VUF9SRVFVRVNUX0lOUFVUX1NUUkVBTSwgV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbUNs
YXNzKSkKLSNkZWZpbmUgV0VCS0lUX0lTX1NPVVBfUkVRVUVTVF9JTlBVVF9TVFJFQU1fQ0xBU1Mo
a2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCBXRUJLSVRfVFlQRV9TT1VQ
X1JFUVVFU1RfSU5QVVRfU1RSRUFNKSkKLSNkZWZpbmUgV0VCS0lUX1NPVVBfUkVRVUVTVF9JTlBV
VF9TVFJFQU1fR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmop
LCBXRUJLSVRfVFlQRV9TT1VQX1JFUVVFU1RfSU5QVVRfU1RSRUFNLCBXZWJLaXRTb3VwUmVxdWVz
dElucHV0U3RyZWFtQ2xhc3MpKQotCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0U291cFJlcXVlc3RJ
bnB1dFN0cmVhbSBXZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtOwotdHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1DbGFzcyBXZWJLaXRTb3VwUmVxdWVzdElucHV0
U3RyZWFtQ2xhc3M7Ci10eXBlZGVmIHN0cnVjdCBfV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVh
bVByaXZhdGUgV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbVByaXZhdGU7Ci0KLXN0cnVjdCBf
V2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbSB7Ci0gICAgR01lbW9yeUlucHV0U3RyZWFtIHBh
cmVudDsKLQotICAgIFdlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1Qcml2YXRlKiBwcml2Owot
fTsKLQotc3RydWN0IF9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtQ2xhc3MgewotICAgIEdN
ZW1vcnlJbnB1dFN0cmVhbUNsYXNzIHBhcmVudDsKLX07Ci0KLUdUeXBlIHdlYmtpdF9zb3VwX3Jl
cXVlc3RfaW5wdXRfc3RyZWFtX2dldF90eXBlKCk7Ci1HSW5wdXRTdHJlYW0qIHdlYmtpdFNvdXBS
ZXF1ZXN0SW5wdXRTdHJlYW1OZXcodWludDY0X3QgY29udGVudExlbmd0aCk7Ci12b2lkIHdlYmtp
dFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW1BZGREYXRhKFdlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJl
YW0qLCBjb25zdCB2b2lkKiBkYXRhLCBzaXplX3QgZGF0YUxlbmd0aCk7Ci12b2lkIHdlYmtpdFNv
dXBSZXF1ZXN0SW5wdXRTdHJlYW1EaWRGYWlsV2l0aEVycm9yKFdlYktpdFNvdXBSZXF1ZXN0SW5w
dXRTdHJlYW0qLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7Ci1ib29sIHdlYmtpdFNv
dXBSZXF1ZXN0SW5wdXRTdHJlYW1GaW5pc2hlZChXZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFt
Kik7Ci0KLUdfRU5EX0RFQ0xTCi0KLSNlbmRpZiAvLyBXZWJLaXRTb3VwUmVxdWVzdElucHV0U3Ry
ZWFtX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nl
c3NTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3Vw
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzA1ODg3Njc3MzE5YWRkM2UxZGRi
NWQ5Yjg1Mzk4N2U0YjdlZDkyZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5j
cHAKKysrIC9kZXYvbnVsbApAQCAtMSw2OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIFBvcnRpb25zIENvcHlyaWdo
dCAoYykgMjAxMSBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIE1PVE9ST0xBIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IE1PVE9ST0xBIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYlByb2Nl
c3MuaCIKLQotI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKLSNpbmNs
dWRlIDxXZWJDb3JlL0dTdHJlYW1lckNvbW1vbi5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5
Q2FjaGUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgotI2lu
Y2x1ZGUgPFdlYkNvcmUvU291cE5ldHdvcmtTZXNzaW9uLmg+Ci0KLSNpZiBQTEFURk9STShXQVlM
QU5EKQotI2luY2x1ZGUgIldheWxhbmRDb21wb3NpdG9yRGlzcGxheS5oIgotI2VuZGlmCi0KLW5h
bWVzcGFjZSBXZWJLaXQgewotCi12b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2Rl
bChDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCi17Ci0gICAgV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnNp
bmdsZXRvbigpLnNldERpc2FibGVkKGNhY2hlTW9kZWwgPT0gQ2FjaGVNb2RlbDo6RG9jdW1lbnRW
aWV3ZXIpOwotfQotCi12b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCi17Ci0gICAgaWYg
KHBhcmFtZXRlcnMucHJveHlTZXR0aW5ncy5tb2RlICE9IFdlYkNvcmU6OlNvdXBOZXR3b3JrUHJv
eHlTZXR0aW5nczo6TW9kZTo6RGVmYXVsdCkKLSAgICAgICAgc2V0TmV0d29ya1Byb3h5U2V0dGlu
Z3MocGFyYW1ldGVycy5wcm94eVNldHRpbmdzKTsKLQotI2lmIFBMQVRGT1JNKFdBWUxBTkQpCi0g
ICAgbV93YXlsYW5kQ29tcG9zaXRvckRpc3BsYXkgPSBXYXlsYW5kQ29tcG9zaXRvckRpc3BsYXk6
OmNyZWF0ZShwYXJhbWV0ZXJzLndheWxhbmRDb21wb3NpdG9yRGlzcGxheU5hbWUpOwotI2VuZGlm
Ci0jaWYgVVNFKEdTVFJFQU1FUikKLSAgICBXZWJDb3JlOjppbml0aWFsaXplR1N0cmVhbWVyKFdU
Rk1vdmUocGFyYW1ldGVycy5nc3RyZWFtZXJPcHRpb25zKSk7Ci0jZW5kaWYKLX0KLQotdm9pZCBX
ZWJQcm9jZXNzOjpwbGF0Zm9ybVRlcm1pbmF0ZSgpCi17Ci19Ci0KLXZvaWQgV2ViUHJvY2Vzczo6
c2V0TmV0d29ya1Byb3h5U2V0dGluZ3MoY29uc3QgV2ViQ29yZTo6U291cE5ldHdvcmtQcm94eVNl
dHRpbmdzJiBzZXR0aW5ncykKLXsKLSAgICBXZWJDb3JlOjpTb3VwTmV0d29ya1Nlc3Npb246OnNl
dFByb3h5U2V0dGluZ3Moc2V0dGluZ3MpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
      

    </bug>

</bugzilla>