<?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>234515</bug_id>
          
          <creation_ts>2021-12-20 09:05:46 -0800</creation_ts>
          <short_desc>FetchRequest.clone does not need to be called with the current context</short_desc>
          <delta_ts>2022-01-03 00:19:14 -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>WebCore Misc.</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>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1825630</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-20 09:05:46 -0800</bug_when>
    <thetext>FetchRequest.clone does not need to be called with the current context</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825632</commentid>
    <comment_count>1</comment_count>
      <attachid>447608</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-20 09:12:14 -0800</bug_when>
    <thetext>Created attachment 447608
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826016</commentid>
    <comment_count>2</comment_count>
      <attachid>447720</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-21 08:55:53 -0800</bug_when>
    <thetext>Created attachment 447720
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826252</commentid>
    <comment_count>3</comment_count>
      <attachid>447790</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-22 02:03:25 -0800</bug_when>
    <thetext>Created attachment 447790
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826958</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-27 09:06:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/86939875&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827647</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-03 00:19:10 -0800</bug_when>
    <thetext>Committed r287532 (245667@main): &lt;https://commits.webkit.org/245667@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 447790.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447608</attachid>
            <date>2021-12-20 09:12:14 -0800</date>
            <delta_ts>2021-12-21 08:55:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234515-20211220181211.patch</filename>
            <type>text/plain</type>
            <size>27967</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MDY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2IyOTZiN2IwZGU3ZTcy
YjkwN2E3N2RkMjVlNTY2NTAyMDEyZDQ4Yy4uNjA2ZjhmZjNmMjc5MzcwNjBiM2E0ODY2MGI3NDI1
MTQ1ODhhMjYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIxLTEyLTIwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGZXRjaFJlcXVlc3QuY2xv
bmUgZG9lcyBub3QgbmVlZCB0byBiZSBjYWxsZWQgd2l0aCB0aGUgY3VycmVudCBjb250ZXh0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ1MTUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIEZldGNo
UmVxdWVzdCwgRmV0Y2hSZXNwb25zZSBhbmQgRmV0Y2hCb2R5T3duZXIgdGFrZSBhIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGluc3RlYWQgb2YgYSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ji4KKyAg
ICAgICAgVGhpcyBhbGxvd3MgY2xvbmluZyBGZXRjaFJlcXVlc3QgYW5kIEZldGNoUmVzcG9uc2Ug
d2l0aCB0aGUgY29udGV4dCBvZiB0aGUgb3JpZ2luYWwgcmVxdWVzdCBvciByZXNwb25zZS4KKwor
ICAgICAgICBVcGRhdGUgY2FsbCBzaXRlLCBhcyB3ZWxsIGFzIGZvciBBYm9ydFNpZ25hbC4KKwor
ICAgICAgICBGb3IgRmV0Y2hSZXNwb25zZSwgd2UgZGlkIGEgY2hhbmdlIHRvIHRocm93IGluIGNh
c2Ugb2YgY2xvbmluZyBGZXRjaFJlc3BvbnNlIG9uIGEgc3RvcHBlZCBjb250ZXh0LgorICAgICAg
ICBJdCBhcHBlYXJlZCB0aGF0IEZpcmVmb3ggaXMgbm90IGRvaW5nIHRoYXQsIGFuZCBDaHJvbWUg
aXMgb25seSBkb2luZyB0aGF0IGluIHNvbWUgc3BlY2lmaWMgY2FzZXMuCisgICAgICAgIEZvciB0
aGF0IHJlYXNvbiwgaXQgaXMgYmV0dGVyIHRvIGdvIGJhY2sgdG8gb3VyIHByZXZpb3VzIGJlaGF2
aW9yIG9mIG5vdCB0aHJvd2luZy4KKworICAgICAgICBUbyBlYXNlIHRlc3RpbmcsIHdlIGFkZCBh
biBpbnRlcm5hbHMgQVBJIHRvIGNoZWNrIHdoZXRoZXIgYSByZXF1ZXN0L3Jlc3BvbnNlIGlzIGxp
bmtlZCB0byBhIGNsb3NlZCBjb250ZXh0LgorCisgICAgICAgIENvdmVyZWQgYnkgdXBkYXRlZCB0
ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwOgorICAgICAgICAq
IE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuY3BwOgorICAgICAgICAqIE1vZHVsZXMvZmV0
Y2gvRmV0Y2hCb2R5T3duZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVz
dC5jcHA6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaDoKKyAgICAgICAg
KiBNb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5pZGw6CisgICAgICAgICogTW9kdWxlcy9mZXRj
aC9GZXRjaFJlc3BvbnNlLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9u
c2UuaDoKKyAgICAgICAgKiBkb20vQWJvcnRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBkb20v
QWJvcnRTaWduYWwuY3BwOgorICAgICAgICAqIGRvbS9BYm9ydFNpZ25hbC5oOgorICAgICAgICAq
IGRvbS9BY3RpdmVET01PYmplY3QuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVy
bmFscy5pZGw6CisgICAgICAgICogdGVzdGluZy9TZXJ2aWNlV29ya2VySW50ZXJuYWxzLmNwcDoK
KwogMjAyMS0xMi0yMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAg
ICAgVXBkYXRlIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyIGtleSBmcmFtZSBBUEkgYWNjb3JkaW5n
IGxhdGVzdCBzcGVjIHByb3Bvc2FsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2NhY2hlL0RPTUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2Fj
aGUuY3BwCmluZGV4IDk2ZmFmZjJkZjQ1NzA3YWE3MGRmNDBlZmRkZWQ4YzUxNmIzNTU1NzIuLmZh
OWU5MGQwNWYzZGQ1NGYwZDVmMTRlNmM1YzJlZDczOTRlM2ZmNGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwCkBAIC04Myw3ICs4Myw3IEBAIHN0YXRpYyBSZWY8
RmV0Y2hSZXNwb25zZT4gY3JlYXRlUmVzcG9uc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgY29uc3QKIHsKICAgICBhdXRvIHJlc291cmNlUmVzcG9uc2UgPSByZWNvcmQucmVzcG9u
c2U7CiAgICAgcmVzb3VyY2VSZXNwb25zZS5zZXRTb3VyY2UoUmVzb3VyY2VSZXNwb25zZTo6U291
cmNlOjpET01DYWNoZSk7Ci0gICAgYXV0byByZXNwb25zZSA9IEZldGNoUmVzcG9uc2U6OmNyZWF0
ZShjb250ZXh0LCBzdGQ6Om51bGxvcHQsIHJlY29yZC5yZXNwb25zZUhlYWRlcnNHdWFyZCwgV1RG
TW92ZShyZXNvdXJjZVJlc3BvbnNlKSk7CisgICAgYXV0byByZXNwb25zZSA9IEZldGNoUmVzcG9u
c2U6OmNyZWF0ZSgmY29udGV4dCwgc3RkOjpudWxsb3B0LCByZWNvcmQucmVzcG9uc2VIZWFkZXJz
R3VhcmQsIFdURk1vdmUocmVzb3VyY2VSZXNwb25zZSkpOwogICAgIHJlc3BvbnNlLT5zZXRCb2R5
RGF0YShjb3B5UmVzcG9uc2VCb2R5KHJlY29yZC5yZXNwb25zZUJvZHkpLCByZWNvcmQucmVzcG9u
c2VCb2R5U2l6ZSk7CiAgICAgcmV0dXJuIHJlc3BvbnNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmNwcAppbmRleCA4ODRjOGI4NzgzOTE5OTBj
Mzc3NWMyMWM4M2MwMTExM2NjMDgxYTVjLi4xNmIyMjE3MjUwZTU4ZWIyOWI4YTc2YmYzMjY2MTZi
ZTlhZjg5NmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNo
Qm9keU93bmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9k
eU93bmVyLmNwcApAQCAtNDEsOCArNDEsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUZl
dGNoQm9keU93bmVyOjpGZXRjaEJvZHlPd25lcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBzdGQ6Om9wdGlvbmFsPEZldGNoQm9keT4mJiBib2R5LCBSZWY8RmV0Y2hIZWFkZXJzPiYm
IGhlYWRlcnMpCi0gICAgOiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCitGZXRjaEJvZHlPd25l
cjo6RmV0Y2hCb2R5T3duZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgc3RkOjpv
cHRpb25hbDxGZXRjaEJvZHk+JiYgYm9keSwgUmVmPEZldGNoSGVhZGVycz4mJiBoZWFkZXJzKQor
ICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCiAgICAgLCBtX2JvZHkoV1RGTW92ZShib2R5
KSkKICAgICAsIG1faGVhZGVycyhXVEZNb3ZlKGhlYWRlcnMpKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5oCmluZGV4IDllMTAyY2MxMjc0Mzc0NzRm
M2ZjYzE2OWM3NTk0YzViZWFlNDA1NzcuLjMxY2YxMmFhNzQ5NjhhNDQwODVjMzIzNWNjYzUyMjVk
OTllMTE4OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hC
b2R5T3duZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93
bmVyLmgKQEAgLTQyLDcgKzQyLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGZXRj
aEJvZHlPd25lciA6IHB1YmxpYyBSZWZDb3VudGVkPEZldGNoQm9keU93bmVyPiwgcHVibGljIEFj
dGl2ZURPTU9iamVjdCwgcHVibGljIENhbk1ha2VXZWFrUHRyPEZldGNoQm9keU93bmVyPiB7CiBw
dWJsaWM6Ci0gICAgRmV0Y2hCb2R5T3duZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIHN0ZDo6
b3B0aW9uYWw8RmV0Y2hCb2R5PiYmLCBSZWY8RmV0Y2hIZWFkZXJzPiYmKTsKICAgICB+RmV0Y2hC
b2R5T3duZXIoKTsKIAogICAgIGJvb2wgYm9keVVzZWQoKSBjb25zdCB7IHJldHVybiBpc0Rpc3R1
cmJlZCgpOyB9CkBAIC03Myw2ICs3Miw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIGNv
bnRlbnRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50VHlwZTsgfQogCiBwcm90ZWN0ZWQ6
CisgICAgRmV0Y2hCb2R5T3duZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIHN0ZDo6b3B0aW9u
YWw8RmV0Y2hCb2R5PiYmLCBSZWY8RmV0Y2hIZWFkZXJzPiYmKTsKKwogICAgIGNvbnN0IEZldGNo
Qm9keSYgYm9keSgpIGNvbnN0IHsgcmV0dXJuICptX2JvZHk7IH0KICAgICBGZXRjaEJvZHkmIGJv
ZHkoKSB7IHJldHVybiAqbV9ib2R5OyB9CiAgICAgYm9vbCBpc0JvZHlOdWxsKCkgY29uc3QgeyBy
ZXR1cm4gIW1fYm9keTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRj
aC9GZXRjaFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJl
cXVlc3QuY3BwCmluZGV4IDkwNjFmNTEzN2M4OGE1YzhmNTQwYTExOThmMzg2YjUwYjI1ZDdhNjEu
LjVhOWZlNTQwZTM1MWMwOTYzY2JjNTExMDIzN2IwODliMzc0NTg5MTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5jcHAKQEAgLTI3NCw3ICsyNzQsNyBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBGZXRjaFJlcXVlc3Q6OnNldEJvZHkoRmV0Y2hSZXF1ZXN0JiBy
ZXF1ZXN0KQogCiBFeGNlcHRpb25PcjxSZWY8RmV0Y2hSZXF1ZXN0Pj4gRmV0Y2hSZXF1ZXN0Ojpj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSW5mbyYmIGlucHV0LCBJbml0
JiYgaW5pdCkKIHsKLSAgICBhdXRvIHJlcXVlc3QgPSBhZG9wdFJlZigqbmV3IEZldGNoUmVxdWVz
dChjb250ZXh0LCBzdGQ6Om51bGxvcHQsIEZldGNoSGVhZGVyczo6Y3JlYXRlKEZldGNoSGVhZGVy
czo6R3VhcmQ6OlJlcXVlc3QpLCB7IH0sIHsgfSwgeyB9KSk7CisgICAgYXV0byByZXF1ZXN0ID0g
YWRvcHRSZWYoKm5ldyBGZXRjaFJlcXVlc3QoJmNvbnRleHQsIHN0ZDo6bnVsbG9wdCwgRmV0Y2hI
ZWFkZXJzOjpjcmVhdGUoRmV0Y2hIZWFkZXJzOjpHdWFyZDo6UmVxdWVzdCksIHsgfSwgeyB9LCB7
IH0pKTsKIAogICAgIGlmIChzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFN0cmluZz4oaW5wdXQpKSB7
CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gcmVxdWVzdC0+aW5pdGlhbGl6ZVdpdGgoc3RkOjpnZXQ8
U3RyaW5nPihpbnB1dCksIFdURk1vdmUoaW5pdCkpOwpAQCAtMzE4LDEyICszMTgsMTIgQEAgUmVz
b3VyY2VSZXF1ZXN0IEZldGNoUmVxdWVzdDo6cmVzb3VyY2VSZXF1ZXN0KCkgY29uc3QKICAgICBy
ZXR1cm4gcmVxdWVzdDsKIH0KIAotRXhjZXB0aW9uT3I8UmVmPEZldGNoUmVxdWVzdD4+IEZldGNo
UmVxdWVzdDo6Y2xvbmUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKK0V4Y2VwdGlv
bk9yPFJlZjxGZXRjaFJlcXVlc3Q+PiBGZXRjaFJlcXVlc3Q6OmNsb25lKCkKIHsKICAgICBpZiAo
aXNEaXN0dXJiZWRPckxvY2tlZCgpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVy
cm9yLCAiQm9keSBpcyBkaXN0dXJiZWQgb3IgbG9ja2VkIl9zIH07CiAKLSAgICBhdXRvIGNsb25l
ID0gYWRvcHRSZWYoKm5ldyBGZXRjaFJlcXVlc3QoY29udGV4dCwgc3RkOjpudWxsb3B0LCBGZXRj
aEhlYWRlcnM6OmNyZWF0ZShtX2hlYWRlcnMuZ2V0KCkpLCBSZXNvdXJjZVJlcXVlc3QgeyBtX3Jl
cXVlc3QgfSwgRmV0Y2hPcHRpb25zIHsgbV9vcHRpb25zIH0sIFN0cmluZyB7IG1fcmVmZXJyZXIg
fSkpOworICAgIGF1dG8gY2xvbmUgPSBhZG9wdFJlZigqbmV3IEZldGNoUmVxdWVzdChzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCksIHN0ZDo6bnVsbG9wdCwgRmV0Y2hIZWFkZXJzOjpjcmVhdGUobV9o
ZWFkZXJzLmdldCgpKSwgUmVzb3VyY2VSZXF1ZXN0IHsgbV9yZXF1ZXN0IH0sIEZldGNoT3B0aW9u
cyB7IG1fb3B0aW9ucyB9LCBTdHJpbmcgeyBtX3JlZmVycmVyIH0pKTsKICAgICBjbG9uZS0+Y2xv
bmVCb2R5KCp0aGlzKTsKICAgICBjbG9uZS0+c2V0TmF2aWdhdGlvblByZWxvYWRJZGVudGlmaWVy
KG1fbmF2aWdhdGlvblByZWxvYWRJZGVudGlmaWVyKTsKICAgICBjbG9uZS0+bV9zaWduYWwtPnNp
Z25hbEZvbGxvdyhtX3NpZ25hbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZldGNoL0ZldGNoUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRj
aFJlcXVlc3QuaAppbmRleCA4NjA5OWQ5M2Q1NzAxNmY4YWJjN2FhYzc5YTE5ZjVjYWY5MzgyOTQ2
Li4wY2E2NDdjYzk3MmU5MzVjOThmMzAyNjRjYmJhMzhiOGFjOWIyMTdiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVi
bGljOgogICAgIHVzaW5nIFJlZGlyZWN0ID0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDsKIAogICAg
IHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8RmV0Y2hSZXF1ZXN0Pj4gY3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmLCBJbmZvJiYsIEluaXQmJik7Ci0gICAgc3RhdGljIFJlZjxGZXRjaFJlcXVl
c3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBzdGQ6Om9wdGlvbmFs
PEZldGNoQm9keT4mJiBib2R5LCBSZWY8RmV0Y2hIZWFkZXJzPiYmIGhlYWRlcnMsIFJlc291cmNl
UmVxdWVzdCYmIHJlcXVlc3QsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIFN0cmluZyYmIHJlZmVy
cmVyKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEZldGNoUmVxdWVzdChjb250ZXh0LCBXVEZNb3Zl
KGJvZHkpLCBXVEZNb3ZlKGhlYWRlcnMpLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKG9wdGlv
bnMpLCBXVEZNb3ZlKHJlZmVycmVyKSkpOyB9CisgICAgc3RhdGljIFJlZjxGZXRjaFJlcXVlc3Q+
IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBzdGQ6Om9wdGlvbmFsPEZl
dGNoQm9keT4mJiBib2R5LCBSZWY8RmV0Y2hIZWFkZXJzPiYmIGhlYWRlcnMsIFJlc291cmNlUmVx
dWVzdCYmIHJlcXVlc3QsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIFN0cmluZyYmIHJlZmVycmVy
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEZldGNoUmVxdWVzdCgmY29udGV4dCwgV1RGTW92ZShi
b2R5KSwgV1RGTW92ZShoZWFkZXJzKSwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShvcHRpb25z
KSwgV1RGTW92ZShyZWZlcnJlcikpKTsgfQogCiAgICAgY29uc3QgU3RyaW5nJiBtZXRob2QoKSBj
b25zdCB7IHJldHVybiBtX3JlcXVlc3QuaHR0cE1ldGhvZCgpOyB9CiAgICAgY29uc3QgU3RyaW5n
JiB1cmxTdHJpbmcoKSBjb25zdDsKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogCiAgICAgY29u
c3QgU3RyaW5nJiBpbnRlZ3JpdHkoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMuaW50ZWdyaXR5
OyB9CiAKLSAgICBFeGNlcHRpb25PcjxSZWY8RmV0Y2hSZXF1ZXN0Pj4gY2xvbmUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYpOworICAgIEV4Y2VwdGlvbk9yPFJlZjxGZXRjaFJlcXVlc3Q+PiBjbG9u
ZSgpOwogCiAgICAgY29uc3QgRmV0Y2hPcHRpb25zJiBmZXRjaE9wdGlvbnMoKSBjb25zdCB7IHJl
dHVybiBtX29wdGlvbnM7IH0KICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGludGVybmFsUmVx
dWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdDsgfQpAQCAtODUsNyArODUsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXROYXZpZ2F0aW9uUHJlbG9hZElkZW50aWZpZXIoRmV0Y2hJZGVudGlm
aWVyIGlkZW50aWZpZXIpIHsgbV9uYXZpZ2F0aW9uUHJlbG9hZElkZW50aWZpZXIgPSBpZGVudGlm
aWVyOyB9CiAKIHByaXZhdGU6Ci0gICAgRmV0Y2hSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBzdGQ6Om9wdGlvbmFsPEZldGNoQm9keT4mJiwgUmVmPEZldGNoSGVhZGVycz4mJiwgUmVz
b3VyY2VSZXF1ZXN0JiYsIEZldGNoT3B0aW9ucyYmLCBTdHJpbmcmJiByZWZlcnJlcik7CisgICAg
RmV0Y2hSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBzdGQ6Om9wdGlvbmFsPEZldGNo
Qm9keT4mJiwgUmVmPEZldGNoSGVhZGVycz4mJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIEZldGNoT3B0
aW9ucyYmLCBTdHJpbmcmJiByZWZlcnJlcik7CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBpbml0
aWFsaXplT3B0aW9ucyhjb25zdCBJbml0Jik7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gaW5pdGlh
bGl6ZVdpdGgoRmV0Y2hSZXF1ZXN0JiwgSW5pdCYmKTsKQEAgLTEwMyw3ICsxMDMsNyBAQCBwcml2
YXRlOgogICAgIEZldGNoSWRlbnRpZmllciBtX25hdmlnYXRpb25QcmVsb2FkSWRlbnRpZmllcjsK
IH07CiAKLWlubGluZSBGZXRjaFJlcXVlc3Q6OkZldGNoUmVxdWVzdChTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0LCBzdGQ6Om9wdGlvbmFsPEZldGNoQm9keT4mJiBib2R5LCBSZWY8RmV0
Y2hIZWFkZXJzPiYmIGhlYWRlcnMsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZldGNoT3B0
aW9ucyYmIG9wdGlvbnMsIFN0cmluZyYmIHJlZmVycmVyKQoraW5saW5lIEZldGNoUmVxdWVzdDo6
RmV0Y2hSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIHN0ZDo6b3B0aW9u
YWw8RmV0Y2hCb2R5PiYmIGJvZHksIFJlZjxGZXRjaEhlYWRlcnM+JiYgaGVhZGVycywgUmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCwgRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgU3RyaW5nJiYgcmVm
ZXJyZXIpCiAgICAgOiBGZXRjaEJvZHlPd25lcihjb250ZXh0LCBXVEZNb3ZlKGJvZHkpLCBXVEZN
b3ZlKGhlYWRlcnMpKQogICAgICwgbV9yZXF1ZXN0KFdURk1vdmUocmVxdWVzdCkpCiAgICAgLCBt
X29wdGlvbnMoV1RGTW92ZShvcHRpb25zKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0
Y2gvRmV0Y2hSZXF1ZXN0LmlkbAppbmRleCA5Y2RhNTcxYjI4NmNjNjg3YWIzZGY1ZDg5YTA5YmIz
ODNjNDc2NGE3Li5lNzJiMTE1YWY1Y2NiNDYxMTAxZGZjNDBkODY2NjY1YjgxYjJmODY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaWRsCkBAIC0zMiw2
ICszMiw3IEBAIHR5cGVkZWYgKEZldGNoUmVxdWVzdCBvciBVU1ZTdHJpbmcpIFJlcXVlc3RJbmZv
OwogCiBbCiAgICAgQWN0aXZlRE9NT2JqZWN0LAorICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfRVhQ
T1JULAogICAgIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpLAogICAgIEdlbmVyYXRlSXNSZWFjaGFi
bGU9SW1wbCwKICAgICBJbnRlcmZhY2VOYW1lPVJlcXVlc3QsCkBAIC01Nyw3ICs1OCw3IEBAIHR5
cGVkZWYgKEZldGNoUmVxdWVzdCBvciBVU1ZTdHJpbmcpIFJlcXVlc3RJbmZvOwogICAgIC8vIHJl
YWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzSGlzdG9yeU5hdmlnYXRpb247CiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIEFib3J0U2lnbmFsIHNpZ25hbDsKIAotICAgIFtDYWxsV2l0aD1TY3JpcHRF
eGVjdXRpb25Db250ZXh0LCBOZXdPYmplY3RdIEZldGNoUmVxdWVzdCBjbG9uZSgpOworICAgIFtO
ZXdPYmplY3RdIEZldGNoUmVxdWVzdCBjbG9uZSgpOwogfTsKIAogRmV0Y2hSZXF1ZXN0IGluY2x1
ZGVzIEZldGNoQm9keTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gv
RmV0Y2hSZXNwb25zZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVz
cG9uc2UuY3BwCmluZGV4IGM4MTA4MmY1OTQ1YWJkZmVlNDQyOTc3YmUyNTkzODViYzIyZGIzOTEu
LjExOThhZWU2NzRhODBjMjYzMGU1ZTJhN2YwY2UwYzg4MjE4OTVmM2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcApAQCAtNDgsNyArNDgsNyBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgaXNOdWxsQm9keVN0YXR1cyhpbnQgc3RhdHVzKQogICAgIHJl
dHVybiBzdGF0dXMgPT0gMTAxIHx8IHN0YXR1cyA9PSAyMDQgfHwgc3RhdHVzID09IDIwNSB8fCBz
dGF0dXMgPT0gMzA0OwogfQogCi1SZWY8RmV0Y2hSZXNwb25zZT4gRmV0Y2hSZXNwb25zZTo6Y3Jl
YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHN0ZDo6b3B0aW9uYWw8RmV0Y2hC
b2R5PiYmIGJvZHksIEZldGNoSGVhZGVyczo6R3VhcmQgZ3VhcmQsIFJlc291cmNlUmVzcG9uc2Um
JiByZXNwb25zZSkKK1JlZjxGZXRjaFJlc3BvbnNlPiBGZXRjaFJlc3BvbnNlOjpjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgc3RkOjpvcHRpb25hbDxGZXRjaEJvZHk+JiYg
Ym9keSwgRmV0Y2hIZWFkZXJzOjpHdWFyZCBndWFyZCwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3Bv
bnNlKQogewogICAgIGJvb2wgaXNTeW50aGV0aWMgPSByZXNwb25zZS50eXBlKCkgPT0gUmVzb3Vy
Y2VSZXNwb25zZTo6VHlwZTo6RGVmYXVsdCB8fCByZXNwb25zZS50eXBlKCkgPT0gUmVzb3VyY2VS
ZXNwb25zZTo6VHlwZTo6RXJyb3I7CiAgICAgYm9vbCBpc09wYXF1ZSA9IHJlc3BvbnNlLnRhaW50
aW5nKCkgPT0gUmVzb3VyY2VSZXNwb25zZTo6VGFpbnRpbmc6Ok9wYXF1ZTsKQEAgLTEyNiw3ICsx
MjYsNyBAQCBFeGNlcHRpb25PcjxSZWY8RmV0Y2hSZXNwb25zZT4+IEZldGNoUmVzcG9uc2U6OmNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjbwogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQu
CiAgICAgCiAgICAgLy8gMTIuIFJldHVybiByLgotICAgIGF1dG8gciA9IGFkb3B0UmVmKCpuZXcg
RmV0Y2hSZXNwb25zZShjb250ZXh0LCBXVEZNb3ZlKGV4dHJhY3RlZEJvZHkpLCBXVEZNb3ZlKGhl
YWRlcnMpLCB7IH0pKTsKKyAgICBhdXRvIHIgPSBhZG9wdFJlZigqbmV3IEZldGNoUmVzcG9uc2Uo
JmNvbnRleHQsIFdURk1vdmUoZXh0cmFjdGVkQm9keSksIFdURk1vdmUoaGVhZGVycyksIHsgfSkp
OwogCiAgICAgci0+bV9jb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlOwogICAgIGF1dG8gbWltZVR5
cGUgPSBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKTsKQEAgLTE0MSw3
ICsxNDEsNyBAQCBFeGNlcHRpb25PcjxSZWY8RmV0Y2hSZXNwb25zZT4+IEZldGNoUmVzcG9uc2U6
OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjbwogCiBSZWY8RmV0Y2hSZXNwb25zZT4g
RmV0Y2hSZXNwb25zZTo6ZXJyb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKIHsK
LSAgICBhdXRvIHJlc3BvbnNlID0gYWRvcHRSZWYoKm5ldyBGZXRjaFJlc3BvbnNlKGNvbnRleHQs
IHsgfSwgRmV0Y2hIZWFkZXJzOjpjcmVhdGUoRmV0Y2hIZWFkZXJzOjpHdWFyZDo6SW1tdXRhYmxl
KSwgeyB9KSk7CisgICAgYXV0byByZXNwb25zZSA9IGFkb3B0UmVmKCpuZXcgRmV0Y2hSZXNwb25z
ZSgmY29udGV4dCwgeyB9LCBGZXRjaEhlYWRlcnM6OmNyZWF0ZShGZXRjaEhlYWRlcnM6Okd1YXJk
OjpJbW11dGFibGUpLCB7IH0pKTsKICAgICByZXNwb25zZS0+bV9pbnRlcm5hbFJlc3BvbnNlLnNl
dFR5cGUoVHlwZTo6RXJyb3IpOwogICAgIHJldHVybiByZXNwb25zZTsKIH0KQEAgLTE1NiwxNCAr
MTU2LDE0IEBAIEV4Y2VwdGlvbk9yPFJlZjxGZXRjaFJlc3BvbnNlPj4gRmV0Y2hSZXNwb25zZTo6
cmVkaXJlY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IFR5cGVFcnJvciwgIlJlZGlyZWN0aW9uIFVSTCBjb250YWlucyBjcmVkZW50aWFscyJfcyB9
OwogICAgIGlmICghUmVzb3VyY2VSZXNwb25zZTo6aXNSZWRpcmVjdGlvblN0YXR1c0NvZGUoc3Rh
dHVzKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFJhbmdlRXJyb3IsIG1ha2VTdHJpbmco
IlN0YXR1cyBjb2RlICIsIHN0YXR1cywgImlzIG5vdCBhIHJlZGlyZWN0aW9uIHN0YXR1cyBjb2Rl
IikgfTsKLSAgICBhdXRvIHJlZGlyZWN0UmVzcG9uc2UgPSBhZG9wdFJlZigqbmV3IEZldGNoUmVz
cG9uc2UoY29udGV4dCwgeyB9LCBGZXRjaEhlYWRlcnM6OmNyZWF0ZShGZXRjaEhlYWRlcnM6Okd1
YXJkOjpJbW11dGFibGUpLCB7IH0pKTsKKyAgICBhdXRvIHJlZGlyZWN0UmVzcG9uc2UgPSBhZG9w
dFJlZigqbmV3IEZldGNoUmVzcG9uc2UoJmNvbnRleHQsIHsgfSwgRmV0Y2hIZWFkZXJzOjpjcmVh
dGUoRmV0Y2hIZWFkZXJzOjpHdWFyZDo6SW1tdXRhYmxlKSwgeyB9KSk7CiAgICAgcmVkaXJlY3RS
ZXNwb25zZS0+bV9pbnRlcm5hbFJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKHN0YXR1cyk7CiAg
ICAgcmVkaXJlY3RSZXNwb25zZS0+bV9pbnRlcm5hbFJlc3BvbnNlLnNldEhUVFBIZWFkZXJGaWVs
ZChIVFRQSGVhZGVyTmFtZTo6TG9jYXRpb24sIHJlcXVlc3RVUkwuc3RyaW5nKCkpOwogICAgIHJl
ZGlyZWN0UmVzcG9uc2UtPm1faGVhZGVycy0+ZmFzdFNldChIVFRQSGVhZGVyTmFtZTo6TG9jYXRp
b24sIHJlcXVlc3RVUkwuc3RyaW5nKCkpOwogICAgIHJldHVybiByZWRpcmVjdFJlc3BvbnNlOwog
fQogCi1GZXRjaFJlc3BvbnNlOjpGZXRjaFJlc3BvbnNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIHN0ZDo6b3B0aW9uYWw8RmV0Y2hCb2R5PiYmIGJvZHksIFJlZjxGZXRjaEhlYWRl
cnM+JiYgaGVhZGVycywgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlKQorRmV0Y2hSZXNwb25z
ZTo6RmV0Y2hSZXNwb25zZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBzdGQ6Om9w
dGlvbmFsPEZldGNoQm9keT4mJiBib2R5LCBSZWY8RmV0Y2hIZWFkZXJzPiYmIGhlYWRlcnMsIFJl
c291cmNlUmVzcG9uc2UmJiByZXNwb25zZSkKICAgICA6IEZldGNoQm9keU93bmVyKGNvbnRleHQs
IFdURk1vdmUoYm9keSksIFdURk1vdmUoaGVhZGVycykpCiAgICAgLCBtX2ludGVybmFsUmVzcG9u
c2UoV1RGTW92ZShyZXNwb25zZSkpCiB7CkBAIC0xNzEsMTggKzE3MSwxNCBAQCBGZXRjaFJlc3Bv
bnNlOjpGZXRjaFJlc3BvbnNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHN0ZDo6
b3B0aW9uYWw8RmV0YwogCiBFeGNlcHRpb25PcjxSZWY8RmV0Y2hSZXNwb25zZT4+IEZldGNoUmVz
cG9uc2U6OmNsb25lKCkKIHsKLSAgICBpZiAoaXNDb250ZXh0U3RvcHBlZCgpKQotICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJDb250ZXh0IGlzIHN0b3BwZWQi
X3MgfTsKLQogICAgIGlmIChpc0Rpc3R1cmJlZE9yTG9ja2VkKCkpCiAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBUeXBlRXJyb3IsICJCb2R5IGlzIGRpc3R1cmJlZCBvciBsb2NrZWQiX3MgfTsK
IAotICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIGF1dG8mIGNvbnRl
eHQgPSAqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwotCiAgICAgLy8gSWYgbG9hZGluZywgbGV0
J3MgY3JlYXRlIGEgc3RyZWFtIHNvIHRoYXQgZGF0YSBpcyB0ZWVkIG9uIGJvdGggY2xvbmVzLgog
ICAgIGlmIChpc0xvYWRpbmcoKSAmJiAhbV9yZWFkYWJsZVN0cmVhbVNvdXJjZSkgewotICAgICAg
ICBhdXRvKiBnbG9iYWxPYmplY3QgPSBjb250ZXh0Lmdsb2JhbE9iamVjdCgpOworICAgICAgICBh
dXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworCisgICAgICAgIGF1dG8q
IGdsb2JhbE9iamVjdCA9IGNvbnRleHQgPyBjb250ZXh0LT5nbG9iYWxPYmplY3QoKSA6IG51bGxw
dHI7CiAgICAgICAgIGlmICghZ2xvYmFsT2JqZWN0KQogICAgICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ29udGV4dCBpcyBzdG9wcGVkIl9zIH07CiAKQEAg
LTE5NSw3ICsxOTEsNyBAQCBFeGNlcHRpb25PcjxSZWY8RmV0Y2hSZXNwb25zZT4+IEZldGNoUmVz
cG9uc2U6OmNsb25lKCkKICAgICBpZiAobV9pbnRlcm5hbFJlc3BvbnNlLnR5cGUoKSA9PSBSZXNv
dXJjZVJlc3BvbnNlOjpUeXBlOjpEZWZhdWx0KQogICAgICAgICBtX2ludGVybmFsUmVzcG9uc2Uu
c2V0SFRUUEhlYWRlckZpZWxkcyhIVFRQSGVhZGVyTWFwIHsgaGVhZGVycygpLmludGVybmFsSGVh
ZGVycygpIH0pOwogCi0gICAgYXV0byBjbG9uZSA9IEZldGNoUmVzcG9uc2U6OmNyZWF0ZShjb250
ZXh0LCBzdGQ6Om51bGxvcHQsIGhlYWRlcnMoKS5ndWFyZCgpLCBSZXNvdXJjZVJlc3BvbnNlIHsg
bV9pbnRlcm5hbFJlc3BvbnNlIH0pOworICAgIGF1dG8gY2xvbmUgPSBGZXRjaFJlc3BvbnNlOjpj
cmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzdGQ6Om51bGxvcHQsIGhlYWRlcnMoKS5n
dWFyZCgpLCBSZXNvdXJjZVJlc3BvbnNlIHsgbV9pbnRlcm5hbFJlc3BvbnNlIH0pOwogICAgIGNs
b25lLT5jbG9uZUJvZHkoKnRoaXMpOwogICAgIGNsb25lLT5tX29wYXF1ZUxvYWRJZGVudGlmaWVy
ID0gbV9vcGFxdWVMb2FkSWRlbnRpZmllcjsKICAgICBjbG9uZS0+bV9ib2R5U2l6ZVdpdGhQYWRk
aW5nID0gbV9ib2R5U2l6ZVdpdGhQYWRkaW5nOwpAQCAtMjUwLDcgKzI0Niw3IEBAIHZvaWQgRmV0
Y2hSZXNwb25zZTo6ZmV0Y2goU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgRmV0Y2hS
ZXF1ZXN0JiByZXF1ZXN0CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxGZXRj
aChjb250ZXh0LCByZXF1ZXN0LnVybCgpLnN0cmluZygpKTsKIAotICAgIGF1dG8gcmVzcG9uc2Ug
PSBhZG9wdFJlZigqbmV3IEZldGNoUmVzcG9uc2UoY29udGV4dCwgRmV0Y2hCb2R5IHsgfSwgRmV0
Y2hIZWFkZXJzOjpjcmVhdGUoRmV0Y2hIZWFkZXJzOjpHdWFyZDo6SW1tdXRhYmxlKSwgeyB9KSk7
CisgICAgYXV0byByZXNwb25zZSA9IGFkb3B0UmVmKCpuZXcgRmV0Y2hSZXNwb25zZSgmY29udGV4
dCwgRmV0Y2hCb2R5IHsgfSwgRmV0Y2hIZWFkZXJzOjpjcmVhdGUoRmV0Y2hIZWFkZXJzOjpHdWFy
ZDo6SW1tdXRhYmxlKSwgeyB9KSk7CiAKICAgICByZXNwb25zZS0+Ym9keSgpLmNvbnN1bWVyKCku
c2V0QXNMb2FkaW5nKCk7CiAKQEAgLTUyNiw2ICs1MjIsNyBAQCB2b2lkIEZldGNoUmVzcG9uc2U6
OmNhbmNlbCgpCiAKIHZvaWQgRmV0Y2hSZXNwb25zZTo6c3RvcCgpCiB7CisgICAgZnByaW50Zihz
dGRlcnIsICJGZXRjaFJlc3BvbnNlOjpzdG9wICVwXG4iLCB0aGlzKTsKICAgICBSZWZQdHI8RmV0
Y2hSZXNwb25zZT4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKICAgICBGZXRjaEJvZHlPd25lcjo6c3Rv
cCgpOwogICAgIGlmIChhdXRvIGJvZHlMb2FkZXIgPSBXVEZNb3ZlKG1fYm9keUxvYWRlcikpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5oCmluZGV4IDZiMDUw
NWQ4OGIxMzJlMjhjYjk1NGFiOWEwZTdlZmU4MTNmNzAyYWYuLjNjYzlkMWJlZjY0ZDMxNDg3ODcx
OTUwODA0NWJkYTQ4MWQ0N2U2MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmV0Y2gvRmV0Y2hSZXNwb25zZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gv
RmV0Y2hSZXNwb25zZS5oCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgc3RkOjpv
cHRpb25hbDxGZXRjaEhlYWRlcnM6OkluaXQ+IGhlYWRlcnM7CiAgICAgfTsKIAotICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBSZWY8RmV0Y2hSZXNwb25zZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBzdGQ6Om9wdGlvbmFsPEZldGNoQm9keT4mJiwgRmV0Y2hIZWFkZXJzOjpHdWFy
ZCwgUmVzb3VyY2VSZXNwb25zZSYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZl
dGNoUmVzcG9uc2U+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwgc3RkOjpvcHRpb25h
bDxGZXRjaEJvZHk+JiYsIEZldGNoSGVhZGVyczo6R3VhcmQsIFJlc291cmNlUmVzcG9uc2UmJik7
CiAKICAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPEZldGNoUmVzcG9uc2U+PiBjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYsIHN0ZDo6b3B0aW9uYWw8RmV0Y2hCb2R5OjpJbml0PiYmLCBJ
bml0JiYpOwogICAgIHN0YXRpYyBSZWY8RmV0Y2hSZXNwb25zZT4gZXJyb3IoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYpOwpAQCAtMTEyLDcgKzExMiw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1dh
c21NSU1FVHlwZSgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIEZldGNoUmVzcG9uc2UoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIHN0ZDo6b3B0aW9uYWw8RmV0Y2hCb2R5PiYmLCBSZWY8RmV0Y2hI
ZWFkZXJzPiYmLCBSZXNvdXJjZVJlc3BvbnNlJiYpOworICAgIEZldGNoUmVzcG9uc2UoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIHN0ZDo6b3B0aW9uYWw8RmV0Y2hCb2R5PiYmLCBSZWY8RmV0Y2hI
ZWFkZXJzPiYmLCBSZXNvdXJjZVJlc3BvbnNlJiYpOwogCiAgICAgdm9pZCBzdG9wKCkgZmluYWw7
CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Fib3J0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vQWJvcnRDb250cm9sbGVyLmNwcAppbmRleCBlYjUyYTYxOGEwZTM3ODZmNzBh
ZWMxNjFlMDNlMDE4MTEzZTVkMjQ1Li4yMTRmNzE2OGEzNGQ1MzU4NTIyOTI2MTM2NDc4MzBlNDNk
NjJjOGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQWJvcnRDb250cm9sbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQWJvcnRDb250cm9sbGVyLmNwcApAQCAtNDEsNyAr
NDEsNyBAQCBSZWY8QWJvcnRDb250cm9sbGVyPiBBYm9ydENvbnRyb2xsZXI6OmNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogfQogCiBBYm9ydENvbnRyb2xsZXI6OkFib3J0
Q29udHJvbGxlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQotICAgIDogbV9zaWdu
YWwoQWJvcnRTaWduYWw6OmNyZWF0ZShjb250ZXh0KSkKKyAgICA6IG1fc2lnbmFsKEFib3J0U2ln
bmFsOjpjcmVhdGUoJmNvbnRleHQpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQWJvcnRTaWduYWwuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Fib3J0U2lnbmFsLmNw
cAppbmRleCBhMWUwNDc1ZTE3YTVjZjAyN2IzY2I0NGUyZjZhOTM3ZDVhYjAwNjdiLi5kNDk3NWY2
ZGE0OGZmMjEyZTRiNDQ5NTIzZTFlNGYxMGUyZmUxZjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vQWJvcnRTaWduYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BYm9ydFNp
Z25hbC5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEX0lNUEwoQWJvcnRTaWduYWwpOwogCi1SZWY8QWJvcnRTaWduYWw+IEFi
b3J0U2lnbmFsOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKK1JlZjxB
Ym9ydFNpZ25hbD4gQWJvcnRTaWduYWw6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0KQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFib3J0U2lnbmFsKGNvbnRleHQp
KTsKIH0KQEAgLTUwLDExICs1MCwxMSBAQCBSZWY8QWJvcnRTaWduYWw+IEFib3J0U2lnbmFsOjph
Ym9ydChKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBTY3JpcHRFeGVjdQogICAgIEFT
U0VSVChyZWFzb24pOwogICAgIGlmIChyZWFzb24uaXNVbmRlZmluZWQoKSkKICAgICAgICAgcmVh
c29uID0gdG9KUygmZ2xvYmFsT2JqZWN0LCAmZ2xvYmFsT2JqZWN0LCBET01FeGNlcHRpb246OmNy
ZWF0ZShBYm9ydEVycm9yKSk7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWJvcnRTaWduYWwo
Y29udGV4dCwgQWJvcnRlZDo6WWVzLCByZWFzb24pKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBBYm9ydFNpZ25hbCgmY29udGV4dCwgQWJvcnRlZDo6WWVzLCByZWFzb24pKTsKIH0KIAotQWJv
cnRTaWduYWw6OkFib3J0U2lnbmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEFi
b3J0ZWQgYWJvcnRlZCwgSlNDOjpKU1ZhbHVlIHJlYXNvbikKLSAgICA6IENvbnRleHREZXN0cnVj
dGlvbk9ic2VydmVyKCZjb250ZXh0KQorQWJvcnRTaWduYWw6OkFib3J0U2lnbmFsKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEFib3J0ZWQgYWJvcnRlZCwgSlNDOjpKU1ZhbHVlIHJl
YXNvbikKKyAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyKGNvbnRleHQpCiAgICAgLCBt
X2Fib3J0ZWQoYWJvcnRlZCA9PSBBYm9ydGVkOjpZZXMpCiAgICAgLCBtX3JlYXNvbihyZWFzb24p
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQWJvcnRTaWduYWwuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9BYm9ydFNpZ25hbC5oCmluZGV4IGRlNGJiODFmM2E1MzM3MGVkNGI0ZmZi
ZjRmZWRlOTU1NmUwNjMzYmMuLjRmMjIxYWM5YjcwZWU5ZDNjY2M4ZTA4ZDYxNzkxM2FhNzZkZTM3
Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BYm9ydFNpZ25hbC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9BYm9ydFNpZ25hbC5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBBYm9ydFNpZ25hbCBmaW5hbCA6IHB1YmxpYyBS
ZWZDb3VudGVkPEFib3J0U2lnbmFsPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEs
IHByaXZhdGUgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIgewogICAgIFdURl9NQUtFX0lTT19B
TExPQ0FURURfRVhQT1JUKEFib3J0U2lnbmFsLCBXRUJDT1JFX0VYUE9SVCk7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxBYm9ydFNpZ25hbD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
KTsKKyAgICBzdGF0aWMgUmVmPEFib3J0U2lnbmFsPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCopOwogCiAgICAgc3RhdGljIFJlZjxBYm9ydFNpZ25hbD4gYWJvcnQoSlNET01HbG9iYWxP
YmplY3QmLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgSlNDOjpKU1ZhbHVlIHJlYXNvbik7CiAK
QEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGVudW0gY2xhc3MgQWJv
cnRlZCA6IGJvb2wgeyBObywgWWVzIH07Ci0gICAgZXhwbGljaXQgQWJvcnRTaWduYWwoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIEFib3J0ZWQgPSBBYm9ydGVkOjpObywgSlNDOjpKU1ZhbHVlIHJl
YXNvbiA9IEpTQzo6anNVbmRlZmluZWQoKSk7CisgICAgZXhwbGljaXQgQWJvcnRTaWduYWwoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIEFib3J0ZWQgPSBBYm9ydGVkOjpObywgSlNDOjpKU1ZhbHVl
IHJlYXNvbiA9IEpTQzo6anNVbmRlZmluZWQoKSk7CiAKICAgICAvLyBFdmVudFRhcmdldC4KICAg
ICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIEFib3J0U2lnbmFsRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vQWN0aXZlRE9NT2JqZWN0LmgKaW5kZXggMGU3OTRhMmEwNjA5ZWIyZWJlMzFlM2U2Mzkw
NTI2NWQyYzgzYTRjZi4uMTU4MzFhYjQ1NzM3YmFmOWMxMjU3Y2Q3Njk5ZWJiNTY5MjVhODg2NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuaApAQCAtMTAwLDcgKzEwMCw3IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGVuZGluZ0FjdGl2aXR5PFQ+KHRo
aXNPYmplY3QpKTsKICAgICB9CiAKLSAgICBib29sIGlzQ29udGV4dFN0b3BwZWQoKSBjb25zdDsK
KyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzQ29udGV4dFN0b3BwZWQoKSBjb25zdDsKICAgICBi
b29sIGlzQWxsb3dlZFRvUnVuU2NyaXB0KCkgY29uc3Q7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGQ4ZDcxNGFjZjI1NWNh
NzFkZTgyZTkwODI3ODljMzNkYzk5OGE3NGEuLjIwYzYwN2Y4ZDY0MjM2MjFkY2JiYTRhMGM4ZDQy
OTNiOTUyYzExNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTc5LDYg
Kzc5LDcgQEAKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXh0ZW5kYWJsZUV2
ZW50LmgiCiAjaW5jbHVkZSAiRXh0ZW5zaW9uU3R5bGVTaGVldHMuaCIKKyNpbmNsdWRlICJGZXRj
aFJlcXVlc3QuaCIKICNpbmNsdWRlICJGZXRjaFJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiRmlsZS5o
IgogI2luY2x1ZGUgIkZsb2F0UXVhZC5oIgpAQCAtOTE4LDYgKzkxOSwxNSBAQCB2b2lkIEludGVy
bmFsczo6c2V0U3RyaWN0UmF3UmVzb3VyY2VWYWxpZGF0aW9uUG9saWN5RGlzYWJsZWQoYm9vbCBk
aXNhYmxlZCkKICAgICBmcmFtZSgpLT5sb2FkZXIoKS5zZXRTdHJpY3RSYXdSZXNvdXJjZVZhbGlk
YXRpb25Qb2xpY3lEaXNhYmxlZEZvclRlc3RpbmcoZGlzYWJsZWQpOwogfQogCitib29sIEludGVy
bmFsczo6aXNGZXRjaE9iamVjdENvbnRleHRTdG9wcGVkKGNvbnN0IEZldGNoT2JqZWN0JiBvYmpl
Y3QpCit7CisgICAgcmV0dXJuIHN3aXRjaE9uKG9iamVjdCwgW10oY29uc3QgUmVmUHRyPEZldGNo
UmVxdWVzdD4mIHJlcXVlc3QpIHsKKyAgICAgICAgcmV0dXJuIHJlcXVlc3QtPmlzQ29udGV4dFN0
b3BwZWQoKTsKKyAgICB9LCBbXShhdXRvJiByZXNwb25zZSkgeworICAgICAgICByZXR1cm4gcmVz
cG9uc2UtPmlzQ29udGV4dFN0b3BwZWQoKTsKKyAgICB9KTsKK30KKwogdm9pZCBJbnRlcm5hbHM6
OmNsZWFyTWVtb3J5Q2FjaGUoKQogewogICAgIE1lbW9yeUNhY2hlOjpzaW5nbGV0b24oKS5ldmlj
dFJlc291cmNlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggZmJjMTIxOTUx
ZWEzOWRkMTQ4ZDc1YWUyMzc3NjQ4ODBmMGIzZTFkNS4uOTFhZjU3ZjBlZGEyZWY5NTgyY2Y4ODQz
ZDdhMmZiYzRlZjFlMmUzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC02Nyw2
ICs2Nyw3IEBAIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEV2ZW50TGlz
dGVuZXI7CiBjbGFzcyBFeHRlbmRhYmxlRXZlbnQ7CitjbGFzcyBGZXRjaFJlcXVlc3Q7CiBjbGFz
cyBGZXRjaFJlc3BvbnNlOwogY2xhc3MgRmlsZTsKIGNsYXNzIEZyYW1lOwpAQCAtMTg5LDYgKzE5
MCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE92ZXJyaWRlUmVzb3VyY2VMb2FkUHJpb3JpdHko
UmVzb3VyY2VMb2FkUHJpb3JpdHkpOwogICAgIHZvaWQgc2V0U3RyaWN0UmF3UmVzb3VyY2VWYWxp
ZGF0aW9uUG9saWN5RGlzYWJsZWQoYm9vbCk7CiAKKyAgICB1c2luZyBGZXRjaE9iamVjdCA9IHN0
ZDo6dmFyaWFudDxSZWZQdHI8RmV0Y2hSZXF1ZXN0PiwgUmVmUHRyPEZldGNoUmVzcG9uc2U+PjsK
KyAgICBib29sIGlzRmV0Y2hPYmplY3RDb250ZXh0U3RvcHBlZChjb25zdCBGZXRjaE9iamVjdCYp
OworCiAgICAgdm9pZCBjbGVhck1lbW9yeUNhY2hlKCk7CiAgICAgdm9pZCBwcnVuZU1lbW9yeUNh
Y2hlVG9TaXplKHVuc2lnbmVkIHNpemUpOwogICAgIHZvaWQgZGVzdHJveURlY29kZWREYXRhRm9y
QWxsSW1hZ2VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggMjM0YzIz
NjI2YzA0ZTFmY2QyYTJlNWNjMmE0NDk1MTJiMzZlZmFkZi4uNzFiZmYzNDFjY2ZjYWQ5OTE5NGIz
YjdlMTdkYjhhNGJmZjVkYjcwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApA
QCAtMzA1LDYgKzMwNSw4IEBAIGVudW0gSEVWQ1BhcmFtZXRlckNvZGVjIHsKICAgICByZXF1aXJl
ZCBET01Qb2ludFJlYWRPbmx5IGJvdHRvbUxlZnQ7CiB9OwogCit0eXBlZGVmIChGZXRjaFJlcXVl
c3Qgb3IgRmV0Y2hSZXNwb25zZSkgRmV0Y2hPYmplY3Q7CisKIFsKICAgICBFeHBvcnRNYWNybz1X
RUJDT1JFX1RFU1RTVVBQT1JUX0VYUE9SVCwKICAgICBMZWdhY3lOb0ludGVyZmFjZU9iamVjdCwK
QEAgLTMzNyw2ICszMzksOCBAQCBlbnVtIEhFVkNQYXJhbWV0ZXJDb2RlYyB7CiAgICAgdW5kZWZp
bmVkIHNldE92ZXJyaWRlUmVzb3VyY2VMb2FkUHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHkg
cHJpb3JpdHkpOwogICAgIHVuZGVmaW5lZCBzZXRTdHJpY3RSYXdSZXNvdXJjZVZhbGlkYXRpb25Q
b2xpY3lEaXNhYmxlZChib29sZWFuIGRpc2FibGVkKTsKIAorICAgIGJvb2xlYW4gaXNGZXRjaE9i
amVjdENvbnRleHRTdG9wcGVkKEZldGNoT2JqZWN0IG9iamVjdCk7CisKICAgICB1bmRlZmluZWQg
Y2xlYXJCYWNrRm9yd2FyZENhY2hlKCk7CiAgICAgdW5zaWduZWQgbG9uZyBiYWNrRm9yd2FyZENh
Y2hlU2l6ZSgpOwogICAgIHVuZGVmaW5lZCBwcmV2ZW50RG9jdW1lbnRGcm9tRW50ZXJpbmdCYWNr
Rm9yd2FyZENhY2hlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1NlcnZp
Y2VXb3JrZXJJbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9TZXJ2aWNlV29y
a2VySW50ZXJuYWxzLmNwcAppbmRleCA5YzQ4YjY5ODBiYzUwZjgwMGMxNDg5Y2U0MTRkZTYwZDZi
N2E0Zjg4Li5mOGQ2YzdhYWIyMGRkODI5NDlmMzdhYjkxNTBlODk1ZDc1YzU5ZTQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1NlcnZpY2VXb3JrZXJJbnRlcm5hbHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5jcHAKQEAg
LTEyOSw3ICsxMjksNyBAQCBSZWY8RmV0Y2hSZXNwb25zZT4gU2VydmljZVdvcmtlckludGVybmFs
czo6Y3JlYXRlT3BhcXVlV2l0aEJsb2JCb2R5UmVzcG9uc2UoU2NyaQogICAgIFJlc291cmNlUmVz
cG9uc2UgcmVzcG9uc2U7CiAgICAgcmVzcG9uc2Uuc2V0VHlwZShSZXNvdXJjZVJlc3BvbnNlOjpU
eXBlOjpDb3JzKTsKICAgICByZXNwb25zZS5zZXRUYWludGluZyhSZXNvdXJjZVJlc3BvbnNlOjpU
YWludGluZzo6T3BhcXVlKTsKLSAgICBhdXRvIGZldGNoUmVzcG9uc2UgPSBGZXRjaFJlc3BvbnNl
OjpjcmVhdGUoY29udGV4dCwgRmV0Y2hCb2R5Ojpmcm9tRm9ybURhdGEoY29udGV4dCwgZm9ybURh
dGEpLCBGZXRjaEhlYWRlcnM6Okd1YXJkOjpSZXNwb25zZSwgV1RGTW92ZShyZXNwb25zZSkpOwor
ICAgIGF1dG8gZmV0Y2hSZXNwb25zZSA9IEZldGNoUmVzcG9uc2U6OmNyZWF0ZSgmY29udGV4dCwg
RmV0Y2hCb2R5Ojpmcm9tRm9ybURhdGEoY29udGV4dCwgZm9ybURhdGEpLCBGZXRjaEhlYWRlcnM6
Okd1YXJkOjpSZXNwb25zZSwgV1RGTW92ZShyZXNwb25zZSkpOwogICAgIGZldGNoUmVzcG9uc2Ut
PmluaXRpYWxpemVPcGFxdWVMb2FkSWRlbnRpZmllckZvclRlc3RpbmcoKTsKICAgICByZXR1cm4g
ZmV0Y2hSZXNwb25zZTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyODgwMGM1MWVmYTg1Yjg2OWYzYjIxMjI0NWU1MmRk
NjU4Mjc1ZmZlLi42MGZkZmVkODVhNTIxYzE0NjcxODM2NzE1NzlmZGM1MmUxYzBjN2JmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMTItMjAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgorCisgICAgICAgIEZldGNoUmVxdWVzdC5jbG9uZSBkb2VzIG5vdCBuZWVkIHRvIGJl
IGNhbGxlZCB3aXRoIHRoZSBjdXJyZW50IGNvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDUxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC93cHQvZmV0Y2gvY2xvbmUtcmVhbG0tZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvd3B0L2ZldGNoL2Nsb25lLXJlYWxtLmh0bWw6Cisg
ICAgICAgICogaHR0cC93cHQvZmV0Y2gvcmVzb3VyY2VzL2Nsb25lLXJlYWxtLWlmcmFtZS5odG1s
OiBBZGRlZC4KKwogMjAyMS0xMi0yMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgVXBkYXRlIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyIGtleSBmcmFtZSBBUEkg
YWNjb3JkaW5nIGxhdGVzdCBzcGVjIHByb3Bvc2FsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9mZXRjaC9jbG9uZS1yZWFsbS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC9mZXRjaC9jbG9uZS1yZWFsbS1leHBlY3RlZC50eHQKaW5kZXggYTkxNzM1YzA1NjI4OGQw
YjBhMmQ0NjM3MmRlY2Q3NDZiMGE0ZGZiMi4uNjA4NzY2YTQ3YTZhZjNlMjc0OGZiZjVmMDdjZWI3
YmYzZjMwOTc5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvY2xvbmUt
cmVhbG0tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL2Nsb25l
LXJlYWxtLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDQgQEAKIAotUEFTUyBDbG9uaW5nIGEgcmVz
cG9uc2UgZmFpbHMgd2hlbiBpdHMgZnJhbWUgaXMgZGV0YWNoZWQKK1BBU1MgQ2xvbmluZyBhIHJl
c3BvbnNlIHN1Y2NlZWRzIGV2ZW4gaWYgaXRzIGJvZHkgaXMgc3RyZWFtIGJhc2VkCitQQVNTIENs
b25pbmcgcmVxdWVzdC9yZXNwb25zZSB3aGVuIGl0cyBmcmFtZSBpcyBkZXRhY2hlZAogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9jbG9uZS1yZWFsbS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvY2xvbmUtcmVhbG0uaHRtbAppbmRleCBhNTJmMjIzYjQ5
MWI0OTA5MDAyYWE4YzhhMzNkMzdhOTRiZjdhMTEyLi4wOTVmMGYzYmY0YmFkNTc5ZDM0ZmIxMWVj
OWM1NGQzOWZiYmUwOTc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9j
bG9uZS1yZWFsbS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL2Nsb25lLXJl
YWxtLmh0bWwKQEAgLTE1LDE4ICsxNSwzNiBAQCBmdW5jdGlvbiB3aXRoX2lmcmFtZSh1cmwpIHsK
ICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUpOwogICAgIH0pOwogfQorCiBw
cm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKICAgICBjb25zdCBmcmFtZSA9IGF3YWl0IHdpdGhf
aWZyYW1lKCcvJyk7CiAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmcmFtZS5jb250ZW50V2lu
ZG93LmZldGNoKCcvJyk7CiAgICAgYXdhaXQgcmVzcG9uc2UuY2xvbmUoKS50ZXh0KCk7CiAgICAg
ZnJhbWUucmVtb3ZlKCk7Ci0gICAgdHJ5IHsKLSAgICAgICAgcmVzcG9uc2UuY2xvbmUoKTsKLSAg
ICAgICAgYXNzZXJ0X25vdF9yZWFjaGVkKCk7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgICBh
c3NlcnRfZXF1YWxzKGUubmFtZSwgJ0ludmFsaWRTdGF0ZUVycm9yJyk7CisgICAgcmVzcG9uc2Uu
Y2xvbmUoKTsKK30sICJDbG9uaW5nIGEgcmVzcG9uc2Ugc3VjY2VlZHMgZXZlbiBpZiBpdHMgYm9k
eSBpcyBzdHJlYW0gYmFzZWQiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgICAg
bGV0IGZyYW1lID0gYXdhaXQgd2l0aF9pZnJhbWUoJy9XZWJLaXQvZmV0Y2gvcmVzb3VyY2VzL2Ns
b25lLXJlYWxtLWlmcmFtZS5odG1sJyk7CisKKyAgICBpZiAod2luZG93LmludGVybmFscykgewor
ICAgICAgICBhc3NlcnRfZmFsc2UoaW50ZXJuYWxzLmlzRmV0Y2hPYmplY3RDb250ZXh0U3RvcHBl
ZCh0ZXN0UmVzcG9uc2UpLCAicmVzcG9uc2UgYmVmb3JlIik7CisgICAgICAgIGFzc2VydF9mYWxz
ZShpbnRlcm5hbHMuaXNGZXRjaE9iamVjdENvbnRleHRTdG9wcGVkKHRlc3RSZXF1ZXN0KSwgInJl
cXVlc3QgYmVmb3JlIik7CisgICAgfQorCisgICAgZnJhbWUucmVtb3ZlKCk7CisKKyAgICBjb25z
dCBjbG9uZWRSZXNwb25zZSA9IHRlc3RSZXNwb25zZS5jbG9uZSgpOworICAgIGNvbnN0IGNsb25l
ZFJlcXVlc3QgPSB0ZXN0UmVxdWVzdC5jbG9uZSgpOworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpIHsKKyAgICAgICAgYXNzZXJ0X3RydWUoaW50ZXJuYWxzLmlzRmV0Y2hPYmplY3RDb250ZXh0
U3RvcHBlZCh0ZXN0UmVzcG9uc2UpLCAicmVzcG9uc2UgYWZ0ZXIiKTsKKyAgICAgICAgYXNzZXJ0
X3RydWUoaW50ZXJuYWxzLmlzRmV0Y2hPYmplY3RDb250ZXh0U3RvcHBlZChjbG9uZWRSZXNwb25z
ZSksICJjbG9uZWRSZXNwb25zZSIpOworICAgICAgICBhc3NlcnRfdHJ1ZShpbnRlcm5hbHMuaXNG
ZXRjaE9iamVjdENvbnRleHRTdG9wcGVkKHRlc3RSZXF1ZXN0KSwgInJlcXVlc3QgYWZ0ZXIiKTsK
KyAgICAgICAgYXNzZXJ0X3RydWUoaW50ZXJuYWxzLmlzRmV0Y2hPYmplY3RDb250ZXh0U3RvcHBl
ZChjbG9uZWRSZXF1ZXN0KSwgImNsb25lZFJlcXVlc3QiKTsKICAgICB9Ci19LCAiQ2xvbmluZyBh
IHJlc3BvbnNlIGZhaWxzIHdoZW4gaXRzIGZyYW1lIGlzIGRldGFjaGVkIik7Cit9LCAiQ2xvbmlu
ZyByZXF1ZXN0L3Jlc3BvbnNlIHdoZW4gaXRzIGZyYW1lIGlzIGRldGFjaGVkIik7CisKIDwvc2Ny
aXB0PgogICAgIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L2ZldGNoL3Jlc291cmNlcy9jbG9uZS1yZWFsbS1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvd3B0L2ZldGNoL3Jlc291cmNlcy9jbG9uZS1yZWFsbS1pZnJhbWUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mNDUxNGJjNTM2Nzk3NmFjODkyNGZjNzQyOWM0YjkyOGJlOGM5MmQwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVzb3VyY2VzL2Nsb25lLXJlYWxt
LWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAg
ICA8Ym9keT4KKzxzY3JpcHQ+Cit3aW5kb3cucGFyZW50LnRlc3RSZXF1ZXN0ID0gbmV3IFJlcXVl
c3QoJy8nKTsKK3dpbmRvdy5wYXJlbnQudGVzdFJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCd0ZXh0
Jyk7Cis8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447720</attachid>
            <date>2021-12-21 08:55:53 -0800</date>
            <delta_ts>2021-12-22 02:03:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234515-20211221175551.patch</filename>
            <type>text/plain</type>
            <size>27404</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3Mjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTJjOWJmNzhlZmU3ODY3
NzQ2NzRmZDZmNTgwODNjZjA1OGUzMGU3Yy4uZjNmYjU1NjFlMmE1Zjg5NWQ0NDY2NjcyMmY4Yjk5
N2E0Njc0ODg5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIxLTEyLTIxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGZXRjaFJlcXVlc3QuY2xv
bmUgZG9lcyBub3QgbmVlZCB0byBiZSBjYWxsZWQgd2l0aCB0aGUgY3VycmVudCBjb250ZXh0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ1MTUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIEZldGNo
UmVxdWVzdCwgRmV0Y2hSZXNwb25zZSBhbmQgRmV0Y2hCb2R5T3duZXIgdGFrZSBhIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGluc3RlYWQgb2YgYSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ji4KKyAg
ICAgICAgVGhpcyBhbGxvd3MgY2xvbmluZyBGZXRjaFJlcXVlc3QgYW5kIEZldGNoUmVzcG9uc2Ug
d2l0aCB0aGUgY29udGV4dCBvZiB0aGUgb3JpZ2luYWwgcmVxdWVzdCBvciByZXNwb25zZS4KKwor
ICAgICAgICBVcGRhdGUgY2FsbCBzaXRlLCBhcyB3ZWxsIGFzIGZvciBBYm9ydFNpZ25hbC4KKwor
ICAgICAgICBGb3IgRmV0Y2hSZXNwb25zZSwgd2UgZGlkIGEgY2hhbmdlIHRvIHRocm93IGluIGNh
c2Ugb2YgY2xvbmluZyBGZXRjaFJlc3BvbnNlIG9uIGEgc3RvcHBlZCBjb250ZXh0LgorICAgICAg
ICBJdCBhcHBlYXJlZCB0aGF0IEZpcmVmb3ggaXMgbm90IGRvaW5nIHRoYXQsIGFuZCBDaHJvbWUg
aXMgb25seSBkb2luZyB0aGF0IGluIHNvbWUgc3BlY2lmaWMgY2FzZXMuCisgICAgICAgIEZvciB0
aGF0IHJlYXNvbiwgaXQgaXMgYmV0dGVyIHRvIGdvIGJhY2sgdG8gb3VyIHByZXZpb3VzIGJlaGF2
aW9yIG9mIG5vdCB0aHJvd2luZy4KKworICAgICAgICBUbyBlYXNlIHRlc3RpbmcsIHdlIGFkZCBh
biBpbnRlcm5hbHMgQVBJIHRvIGNoZWNrIHdoZXRoZXIgYSByZXF1ZXN0L3Jlc3BvbnNlIGlzIGxp
bmtlZCB0byBhIGNsb3NlZCBjb250ZXh0LgorCisgICAgICAgIENvdmVyZWQgYnkgdXBkYXRlZCB0
ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwOgorICAgICAgICAq
IE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuY3BwOgorICAgICAgICAqIE1vZHVsZXMvZmV0
Y2gvRmV0Y2hCb2R5T3duZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVz
dC5jcHA6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaDoKKyAgICAgICAg
KiBNb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5pZGw6CisgICAgICAgICogTW9kdWxlcy9mZXRj
aC9GZXRjaFJlc3BvbnNlLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9u
c2UuaDoKKyAgICAgICAgKiBkb20vQWJvcnRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBkb20v
QWJvcnRTaWduYWwuY3BwOgorICAgICAgICAqIGRvbS9BYm9ydFNpZ25hbC5oOgorICAgICAgICAq
IGRvbS9BY3RpdmVET01PYmplY3QuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVy
bmFscy5pZGw6CisgICAgICAgICogdGVzdGluZy9TZXJ2aWNlV29ya2VySW50ZXJuYWxzLmNwcDoK
KwogMjAyMS0xMi0yMCAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4K
IAogICAgICAgICBbV2luXSBNU1ZDIHJlcG9ydHMgIkRvd25sb2FkQnVuZGxlV2luLmNwcCg4Nyk6
IGVycm9yIEMyMzYyOiBpbml0aWFsaXphdGlvbiBvZiAnbWFnaWMnIGlzIHNraXBwZWQgYnkgJ2dv
dG8gZXhpdCciIHdpdGggL3N0ZDpjKysyMApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9jYWNoZS9ET01DYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RP
TUNhY2hlLmNwcAppbmRleCA5NmZhZmYyZGY0NTcwN2FhNzBkZjQwZWZkZGVkOGM1MTZiMzU1NTcy
Li5mYTllOTBkMDVmM2RkNTRmMGQ1ZjE0ZTZjNWMyZWQ3Mzk0ZTNmZjRkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcApAQCAtODMsNyArODMsNyBAQCBzdGF0aWMg
UmVmPEZldGNoUmVzcG9uc2U+IGNyZWF0ZVJlc3BvbnNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIGNvbnN0CiB7CiAgICAgYXV0byByZXNvdXJjZVJlc3BvbnNlID0gcmVjb3JkLnJl
c3BvbnNlOwogICAgIHJlc291cmNlUmVzcG9uc2Uuc2V0U291cmNlKFJlc291cmNlUmVzcG9uc2U6
OlNvdXJjZTo6RE9NQ2FjaGUpOwotICAgIGF1dG8gcmVzcG9uc2UgPSBGZXRjaFJlc3BvbnNlOjpj
cmVhdGUoY29udGV4dCwgc3RkOjpudWxsb3B0LCByZWNvcmQucmVzcG9uc2VIZWFkZXJzR3VhcmQs
IFdURk1vdmUocmVzb3VyY2VSZXNwb25zZSkpOworICAgIGF1dG8gcmVzcG9uc2UgPSBGZXRjaFJl
c3BvbnNlOjpjcmVhdGUoJmNvbnRleHQsIHN0ZDo6bnVsbG9wdCwgcmVjb3JkLnJlc3BvbnNlSGVh
ZGVyc0d1YXJkLCBXVEZNb3ZlKHJlc291cmNlUmVzcG9uc2UpKTsKICAgICByZXNwb25zZS0+c2V0
Qm9keURhdGEoY29weVJlc3BvbnNlQm9keShyZWNvcmQucmVzcG9uc2VCb2R5KSwgcmVjb3JkLnJl
c3BvbnNlQm9keVNpemUpOwogICAgIHJldHVybiByZXNwb25zZTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5jcHAKaW5kZXggYTYzMzEwOGI1NDc3
ODM5M2ZjNTQ3NTAwMzJhOWEyZTg2YWRlN2ZjYy4uNTM1NDBjZmRjNDYwYjQwZjNjYWEyNzY0ZDkz
YTExZDQ4NmRmY2EwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9G
ZXRjaEJvZHlPd25lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRj
aEJvZHlPd25lci5jcHAKQEAgLTQxLDggKzQxLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1GZXRjaEJvZHlPd25lcjo6RmV0Y2hCb2R5T3duZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgc3RkOjpvcHRpb25hbDxGZXRjaEJvZHk+JiYgYm9keSwgUmVmPEZldGNoSGVhZGVy
cz4mJiBoZWFkZXJzKQotICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQorRmV0Y2hCb2R5
T3duZXI6OkZldGNoQm9keU93bmVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIHN0
ZDo6b3B0aW9uYWw8RmV0Y2hCb2R5PiYmIGJvZHksIFJlZjxGZXRjaEhlYWRlcnM+JiYgaGVhZGVy
cykKKyAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0KQogICAgICwgbV9ib2R5KFdURk1vdmUo
Ym9keSkpCiAgICAgLCBtX2hlYWRlcnMoV1RGTW92ZShoZWFkZXJzKSkKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuaAppbmRleCA1Y2E3ZTM5NmM0MjI3
MDE5MzU2YjA4MDZlNGVlZGJlOTVlOTI4ZjRiLi4zMWNmMTJhYTc0OTY4YTQ0MDg1YzMyMzVjY2M1
MjI1ZDk5ZTExODliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0Zl
dGNoQm9keU93bmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJv
ZHlPd25lci5oCkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIGNv
bnRlbnRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50VHlwZTsgfQogCiBwcm90ZWN0ZWQ6
Ci0gICAgRmV0Y2hCb2R5T3duZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIHN0ZDo6b3B0aW9u
YWw8RmV0Y2hCb2R5PiYmLCBSZWY8RmV0Y2hIZWFkZXJzPiYmKTsKKyAgICBGZXRjaEJvZHlPd25l
cihTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwgc3RkOjpvcHRpb25hbDxGZXRjaEJvZHk+JiYsIFJl
ZjxGZXRjaEhlYWRlcnM+JiYpOwogCiAgICAgY29uc3QgRmV0Y2hCb2R5JiBib2R5KCkgY29uc3Qg
eyByZXR1cm4gKm1fYm9keTsgfQogICAgIEZldGNoQm9keSYgYm9keSgpIHsgcmV0dXJuICptX2Jv
ZHk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1
ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmNwcApp
bmRleCBjNzZmNmM4YmZhYmIxYTYwYzk2NTI3MTQxMzA4ZjEzNTI5OGQyOThkLi5iMGQxZDgyZThl
ZWMxMTNiYjA1YTRlZGYwMTljZmRmMmRhNzcyYTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwCkBAIC0yNzQsNyArMjc0LDcgQEAgRXhjZXB0aW9u
T3I8dm9pZD4gRmV0Y2hSZXF1ZXN0OjpzZXRCb2R5KEZldGNoUmVxdWVzdCYgcmVxdWVzdCkKIAog
RXhjZXB0aW9uT3I8UmVmPEZldGNoUmVxdWVzdD4+IEZldGNoUmVxdWVzdDo6Y3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEluZm8mJiBpbnB1dCwgSW5pdCYmIGluaXQpCiB7
Ci0gICAgYXV0byByZXF1ZXN0ID0gYWRvcHRSZWYoKm5ldyBGZXRjaFJlcXVlc3QoY29udGV4dCwg
c3RkOjpudWxsb3B0LCBGZXRjaEhlYWRlcnM6OmNyZWF0ZShGZXRjaEhlYWRlcnM6Okd1YXJkOjpS
ZXF1ZXN0KSwgeyB9LCB7IH0sIHsgfSkpOworICAgIGF1dG8gcmVxdWVzdCA9IGFkb3B0UmVmKCpu
ZXcgRmV0Y2hSZXF1ZXN0KCZjb250ZXh0LCBzdGQ6Om51bGxvcHQsIEZldGNoSGVhZGVyczo6Y3Jl
YXRlKEZldGNoSGVhZGVyczo6R3VhcmQ6OlJlcXVlc3QpLCB7IH0sIHsgfSwgeyB9KSk7CiAgICAg
cmVxdWVzdC0+c3VzcGVuZElmTmVlZGVkKCk7CiAKICAgICBpZiAoc3RkOjpob2xkc19hbHRlcm5h
dGl2ZTxTdHJpbmc+KGlucHV0KSkgewpAQCAtMjkyLDcgKzI5Miw3IEBAIEV4Y2VwdGlvbk9yPFJl
ZjxGZXRjaFJlcXVlc3Q+PiBGZXRjaFJlcXVlc3Q6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250CiAKIFJlZjxGZXRjaFJlcXVlc3Q+IEZldGNoUmVxdWVzdDo6Y3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHN0ZDo6b3B0aW9uYWw8RmV0Y2hCb2R5PiYmIGJv
ZHksIFJlZjxGZXRjaEhlYWRlcnM+JiYgaGVhZGVycywgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVz
dCwgRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgU3RyaW5nJiYgcmVmZXJyZXIpCiB7Ci0gICAgYXV0
byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IEZldGNoUmVxdWVzdChjb250ZXh0LCBXVEZNb3ZlKGJv
ZHkpLCBXVEZNb3ZlKGhlYWRlcnMpLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKG9wdGlvbnMp
LCBXVEZNb3ZlKHJlZmVycmVyKSkpOworICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBG
ZXRjaFJlcXVlc3QoJmNvbnRleHQsIFdURk1vdmUoYm9keSksIFdURk1vdmUoaGVhZGVycyksIFdU
Rk1vdmUocmVxdWVzdCksIFdURk1vdmUob3B0aW9ucyksIFdURk1vdmUocmVmZXJyZXIpKSk7CiAg
ICAgcmVzdWx0LT5zdXNwZW5kSWZOZWVkZWQoKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAt
MzI2LDEyICszMjYsMTIgQEAgUmVzb3VyY2VSZXF1ZXN0IEZldGNoUmVxdWVzdDo6cmVzb3VyY2VS
ZXF1ZXN0KCkgY29uc3QKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KIAotRXhjZXB0aW9uT3I8UmVm
PEZldGNoUmVxdWVzdD4+IEZldGNoUmVxdWVzdDo6Y2xvbmUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCkKK0V4Y2VwdGlvbk9yPFJlZjxGZXRjaFJlcXVlc3Q+PiBGZXRjaFJlcXVlc3Q6
OmNsb25lKCkKIHsKICAgICBpZiAoaXNEaXN0dXJiZWRPckxvY2tlZCgpKQogICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiQm9keSBpcyBkaXN0dXJiZWQgb3IgbG9ja2VkIl9z
IH07CiAKLSAgICBhdXRvIGNsb25lID0gYWRvcHRSZWYoKm5ldyBGZXRjaFJlcXVlc3QoY29udGV4
dCwgc3RkOjpudWxsb3B0LCBGZXRjaEhlYWRlcnM6OmNyZWF0ZShtX2hlYWRlcnMuZ2V0KCkpLCBS
ZXNvdXJjZVJlcXVlc3QgeyBtX3JlcXVlc3QgfSwgRmV0Y2hPcHRpb25zIHsgbV9vcHRpb25zIH0s
IFN0cmluZyB7IG1fcmVmZXJyZXIgfSkpOworICAgIGF1dG8gY2xvbmUgPSBhZG9wdFJlZigqbmV3
IEZldGNoUmVxdWVzdChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHN0ZDo6bnVsbG9wdCwgRmV0
Y2hIZWFkZXJzOjpjcmVhdGUobV9oZWFkZXJzLmdldCgpKSwgUmVzb3VyY2VSZXF1ZXN0IHsgbV9y
ZXF1ZXN0IH0sIEZldGNoT3B0aW9ucyB7IG1fb3B0aW9ucyB9LCBTdHJpbmcgeyBtX3JlZmVycmVy
IH0pKTsKICAgICBjbG9uZS0+c3VzcGVuZElmTmVlZGVkKCk7CiAgICAgY2xvbmUtPmNsb25lQm9k
eSgqdGhpcyk7CiAgICAgY2xvbmUtPnNldE5hdmlnYXRpb25QcmVsb2FkSWRlbnRpZmllcihtX25h
dmlnYXRpb25QcmVsb2FkSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRj
aC9GZXRjaFJlcXVlc3QuaAppbmRleCBmNDkwNWQ4MTEzZTUyZjI2ZWE5MzA1ZTVmNWI2YjE0ODRk
ODNmNDQ3Li43MGIyOGM3N2U3Y2NmMGVlYzRkNWFlZDA0N2FkMWQzYTNhMGRmMDQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmgKQEAgLTczLDcgKzczLDcg
QEAgcHVibGljOgogCiAgICAgY29uc3QgU3RyaW5nJiBpbnRlZ3JpdHkoKSBjb25zdCB7IHJldHVy
biBtX29wdGlvbnMuaW50ZWdyaXR5OyB9CiAKLSAgICBFeGNlcHRpb25PcjxSZWY8RmV0Y2hSZXF1
ZXN0Pj4gY2xvbmUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworICAgIEV4Y2VwdGlvbk9yPFJl
ZjxGZXRjaFJlcXVlc3Q+PiBjbG9uZSgpOwogCiAgICAgY29uc3QgRmV0Y2hPcHRpb25zJiBmZXRj
aE9wdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnM7IH0KICAgICBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIGludGVybmFsUmVxdWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdDsgfQpA
QCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXROYXZpZ2F0aW9uUHJlbG9hZElk
ZW50aWZpZXIoRmV0Y2hJZGVudGlmaWVyIGlkZW50aWZpZXIpIHsgbV9uYXZpZ2F0aW9uUHJlbG9h
ZElkZW50aWZpZXIgPSBpZGVudGlmaWVyOyB9CiAKIHByaXZhdGU6Ci0gICAgRmV0Y2hSZXF1ZXN0
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBzdGQ6Om9wdGlvbmFsPEZldGNoQm9keT4mJiwgUmVm
PEZldGNoSGVhZGVycz4mJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIEZldGNoT3B0aW9ucyYmLCBTdHJp
bmcmJiByZWZlcnJlcik7CisgICAgRmV0Y2hSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBzdGQ6Om9wdGlvbmFsPEZldGNoQm9keT4mJiwgUmVmPEZldGNoSGVhZGVycz4mJiwgUmVzb3Vy
Y2VSZXF1ZXN0JiYsIEZldGNoT3B0aW9ucyYmLCBTdHJpbmcmJiByZWZlcnJlcik7CiAKICAgICBF
eGNlcHRpb25Pcjx2b2lkPiBpbml0aWFsaXplT3B0aW9ucyhjb25zdCBJbml0Jik7CiAgICAgRXhj
ZXB0aW9uT3I8dm9pZD4gaW5pdGlhbGl6ZVdpdGgoRmV0Y2hSZXF1ZXN0JiwgSW5pdCYmKTsKQEAg
LTEwMyw3ICsxMDMsNyBAQCBwcml2YXRlOgogICAgIEZldGNoSWRlbnRpZmllciBtX25hdmlnYXRp
b25QcmVsb2FkSWRlbnRpZmllcjsKIH07CiAKLWlubGluZSBGZXRjaFJlcXVlc3Q6OkZldGNoUmVx
dWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBzdGQ6Om9wdGlvbmFsPEZldGNo
Qm9keT4mJiBib2R5LCBSZWY8RmV0Y2hIZWFkZXJzPiYmIGhlYWRlcnMsIFJlc291cmNlUmVxdWVz
dCYmIHJlcXVlc3QsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIFN0cmluZyYmIHJlZmVycmVyKQor
aW5saW5lIEZldGNoUmVxdWVzdDo6RmV0Y2hSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIHN0ZDo6b3B0aW9uYWw8RmV0Y2hCb2R5PiYmIGJvZHksIFJlZjxGZXRjaEhlYWRl
cnM+JiYgaGVhZGVycywgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgRmV0Y2hPcHRpb25zJiYg
b3B0aW9ucywgU3RyaW5nJiYgcmVmZXJyZXIpCiAgICAgOiBGZXRjaEJvZHlPd25lcihjb250ZXh0
LCBXVEZNb3ZlKGJvZHkpLCBXVEZNb3ZlKGhlYWRlcnMpKQogICAgICwgbV9yZXF1ZXN0KFdURk1v
dmUocmVxdWVzdCkpCiAgICAgLCBtX29wdGlvbnMoV1RGTW92ZShvcHRpb25zKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmlkbAppbmRleCA5Y2RhNTcxYjI4
NmNjNjg3YWIzZGY1ZDg5YTA5YmIzODNjNDc2NGE3Li5lNzJiMTE1YWY1Y2NiNDYxMTAxZGZjNDBk
ODY2NjY1YjgxYjJmODY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0ZldGNoUmVxdWVzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRj
aFJlcXVlc3QuaWRsCkBAIC0zMiw2ICszMiw3IEBAIHR5cGVkZWYgKEZldGNoUmVxdWVzdCBvciBV
U1ZTdHJpbmcpIFJlcXVlc3RJbmZvOwogCiBbCiAgICAgQWN0aXZlRE9NT2JqZWN0LAorICAgIEV4
cG9ydE1hY3JvPVdFQkNPUkVfRVhQT1JULAogICAgIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpLAog
ICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbCwKICAgICBJbnRlcmZhY2VOYW1lPVJlcXVlc3Qs
CkBAIC01Nyw3ICs1OCw3IEBAIHR5cGVkZWYgKEZldGNoUmVxdWVzdCBvciBVU1ZTdHJpbmcpIFJl
cXVlc3RJbmZvOwogICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzSGlzdG9yeU5h
dmlnYXRpb247CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEFib3J0U2lnbmFsIHNpZ25hbDsKIAot
ICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBOZXdPYmplY3RdIEZldGNoUmVx
dWVzdCBjbG9uZSgpOworICAgIFtOZXdPYmplY3RdIEZldGNoUmVxdWVzdCBjbG9uZSgpOwogfTsK
IAogRmV0Y2hSZXF1ZXN0IGluY2x1ZGVzIEZldGNoQm9keTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCmluZGV4IDBlN2IwMDVlODlhM2QxNzQwYjFj
ZjlhZGZmOGI0ZjJmMmZjNDNjOTkuLjg3MWJmYmUyYmExNTVjNGZhOGVmNmU2YjkzOTAwNTM4ZWE2
YjI1ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNw
b25zZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNl
LmNwcApAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNOdWxsQm9keVN0YXR1
cyhpbnQgc3RhdHVzKQogICAgIHJldHVybiBzdGF0dXMgPT0gMTAxIHx8IHN0YXR1cyA9PSAyMDQg
fHwgc3RhdHVzID09IDIwNSB8fCBzdGF0dXMgPT0gMzA0OwogfQogCi1SZWY8RmV0Y2hSZXNwb25z
ZT4gRmV0Y2hSZXNwb25zZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IHN0ZDo6b3B0aW9uYWw8RmV0Y2hCb2R5PiYmIGJvZHksIEZldGNoSGVhZGVyczo6R3VhcmQgZ3Vh
cmQsIFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSkKK1JlZjxGZXRjaFJlc3BvbnNlPiBGZXRj
aFJlc3BvbnNlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgc3RkOjpv
cHRpb25hbDxGZXRjaEJvZHk+JiYgYm9keSwgRmV0Y2hIZWFkZXJzOjpHdWFyZCBndWFyZCwgUmVz
b3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlKQogewogICAgIGJvb2wgaXNTeW50aGV0aWMgPSByZXNw
b25zZS50eXBlKCkgPT0gUmVzb3VyY2VSZXNwb25zZTo6VHlwZTo6RGVmYXVsdCB8fCByZXNwb25z
ZS50eXBlKCkgPT0gUmVzb3VyY2VSZXNwb25zZTo6VHlwZTo6RXJyb3I7CiAgICAgYm9vbCBpc09w
YXF1ZSA9IHJlc3BvbnNlLnRhaW50aW5nKCkgPT0gUmVzb3VyY2VSZXNwb25zZTo6VGFpbnRpbmc6
Ok9wYXF1ZTsKQEAgLTEyNyw3ICsxMjcsNyBAQCBFeGNlcHRpb25PcjxSZWY8RmV0Y2hSZXNwb25z
ZT4+IEZldGNoUmVzcG9uc2U6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjbwogICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQuCiAgICAgCiAgICAgLy8gMTIuIFJldHVybiByLgotICAgIGF1
dG8gciA9IGFkb3B0UmVmKCpuZXcgRmV0Y2hSZXNwb25zZShjb250ZXh0LCBXVEZNb3ZlKGV4dHJh
Y3RlZEJvZHkpLCBXVEZNb3ZlKGhlYWRlcnMpLCB7IH0pKTsKKyAgICBhdXRvIHIgPSBhZG9wdFJl
ZigqbmV3IEZldGNoUmVzcG9uc2UoJmNvbnRleHQsIFdURk1vdmUoZXh0cmFjdGVkQm9keSksIFdU
Rk1vdmUoaGVhZGVycyksIHsgfSkpOwogICAgIHItPnN1c3BlbmRJZk5lZWRlZCgpOwogCiAgICAg
ci0+bV9jb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlOwpAQCAtMTQzLDcgKzE0Myw3IEBAIEV4Y2Vw
dGlvbk9yPFJlZjxGZXRjaFJlc3BvbnNlPj4gRmV0Y2hSZXNwb25zZTo6Y3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvCiAKIFJlZjxGZXRjaFJlc3BvbnNlPiBGZXRjaFJlc3BvbnNlOjpl
cnJvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogewotICAgIGF1dG8gcmVzcG9u
c2UgPSBhZG9wdFJlZigqbmV3IEZldGNoUmVzcG9uc2UoY29udGV4dCwgeyB9LCBGZXRjaEhlYWRl
cnM6OmNyZWF0ZShGZXRjaEhlYWRlcnM6Okd1YXJkOjpJbW11dGFibGUpLCB7IH0pKTsKKyAgICBh
dXRvIHJlc3BvbnNlID0gYWRvcHRSZWYoKm5ldyBGZXRjaFJlc3BvbnNlKCZjb250ZXh0LCB7IH0s
IEZldGNoSGVhZGVyczo6Y3JlYXRlKEZldGNoSGVhZGVyczo6R3VhcmQ6OkltbXV0YWJsZSksIHsg
fSkpOwogICAgIHJlc3BvbnNlLT5zdXNwZW5kSWZOZWVkZWQoKTsKICAgICByZXNwb25zZS0+bV9p
bnRlcm5hbFJlc3BvbnNlLnNldFR5cGUoVHlwZTo6RXJyb3IpOwogICAgIHJldHVybiByZXNwb25z
ZTsKQEAgLTE1OSw3ICsxNTksNyBAQCBFeGNlcHRpb25PcjxSZWY8RmV0Y2hSZXNwb25zZT4+IEZl
dGNoUmVzcG9uc2U6OnJlZGlyZWN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmCiAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJSZWRpcmVjdGlvbiBVUkwgY29udGFpbnMgY3Jl
ZGVudGlhbHMiX3MgfTsKICAgICBpZiAoIVJlc291cmNlUmVzcG9uc2U6OmlzUmVkaXJlY3Rpb25T
dGF0dXNDb2RlKHN0YXR1cykpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBSYW5nZUVycm9y
LCBtYWtlU3RyaW5nKCJTdGF0dXMgY29kZSAiLCBzdGF0dXMsICJpcyBub3QgYSByZWRpcmVjdGlv
biBzdGF0dXMgY29kZSIpIH07Ci0gICAgYXV0byByZWRpcmVjdFJlc3BvbnNlID0gYWRvcHRSZWYo
Km5ldyBGZXRjaFJlc3BvbnNlKGNvbnRleHQsIHsgfSwgRmV0Y2hIZWFkZXJzOjpjcmVhdGUoRmV0
Y2hIZWFkZXJzOjpHdWFyZDo6SW1tdXRhYmxlKSwgeyB9KSk7CisgICAgYXV0byByZWRpcmVjdFJl
c3BvbnNlID0gYWRvcHRSZWYoKm5ldyBGZXRjaFJlc3BvbnNlKCZjb250ZXh0LCB7IH0sIEZldGNo
SGVhZGVyczo6Y3JlYXRlKEZldGNoSGVhZGVyczo6R3VhcmQ6OkltbXV0YWJsZSksIHsgfSkpOwog
ICAgIHJlZGlyZWN0UmVzcG9uc2UtPnN1c3BlbmRJZk5lZWRlZCgpOwogICAgIHJlZGlyZWN0UmVz
cG9uc2UtPm1faW50ZXJuYWxSZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29kZShzdGF0dXMpOwogICAg
IHJlZGlyZWN0UmVzcG9uc2UtPm1faW50ZXJuYWxSZXNwb25zZS5zZXRIVFRQSGVhZGVyRmllbGQo
SFRUUEhlYWRlck5hbWU6OkxvY2F0aW9uLCByZXF1ZXN0VVJMLnN0cmluZygpKTsKQEAgLTE2Nyw3
ICsxNjcsNyBAQCBFeGNlcHRpb25PcjxSZWY8RmV0Y2hSZXNwb25zZT4+IEZldGNoUmVzcG9uc2U6
OnJlZGlyZWN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmCiAgICAgcmV0dXJuIHJlZGlyZWN0UmVz
cG9uc2U7CiB9CiAKLUZldGNoUmVzcG9uc2U6OkZldGNoUmVzcG9uc2UoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgc3RkOjpvcHRpb25hbDxGZXRjaEJvZHk+JiYgYm9keSwgUmVmPEZl
dGNoSGVhZGVycz4mJiBoZWFkZXJzLCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UpCitGZXRj
aFJlc3BvbnNlOjpGZXRjaFJlc3BvbnNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IHN0ZDo6b3B0aW9uYWw8RmV0Y2hCb2R5PiYmIGJvZHksIFJlZjxGZXRjaEhlYWRlcnM+JiYgaGVh
ZGVycywgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlKQogICAgIDogRmV0Y2hCb2R5T3duZXIo
Y29udGV4dCwgV1RGTW92ZShib2R5KSwgV1RGTW92ZShoZWFkZXJzKSkKICAgICAsIG1faW50ZXJu
YWxSZXNwb25zZShXVEZNb3ZlKHJlc3BvbnNlKSkKIHsKQEAgLTE3NSwxOCArMTc1LDE0IEBAIEZl
dGNoUmVzcG9uc2U6OkZldGNoUmVzcG9uc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgc3RkOjpvcHRpb25hbDxGZXRjCiAKIEV4Y2VwdGlvbk9yPFJlZjxGZXRjaFJlc3BvbnNlPj4g
RmV0Y2hSZXNwb25zZTo6Y2xvbmUoKQogewotICAgIGlmIChpc0NvbnRleHRTdG9wcGVkKCkpCi0g
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNvbnRleHQgaXMg
c3RvcHBlZCJfcyB9OwotCiAgICAgaWYgKGlzRGlzdHVyYmVkT3JMb2NrZWQoKSkKICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkJvZHkgaXMgZGlzdHVyYmVkIG9yIGxvY2tl
ZCJfcyB9OwogCi0gICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgYXV0
byYgY29udGV4dCA9ICpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0KICAgICAvLyBJZiBsb2Fk
aW5nLCBsZXQncyBjcmVhdGUgYSBzdHJlYW0gc28gdGhhdCBkYXRhIGlzIHRlZWQgb24gYm90aCBj
bG9uZXMuCiAgICAgaWYgKGlzTG9hZGluZygpICYmICFtX3JlYWRhYmxlU3RyZWFtU291cmNlKSB7
Ci0gICAgICAgIGF1dG8qIGdsb2JhbE9iamVjdCA9IGNvbnRleHQuZ2xvYmFsT2JqZWN0KCk7Cisg
ICAgICAgIGF1dG8qIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CisKKyAgICAg
ICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gY29udGV4dCA/IGNvbnRleHQtPmdsb2JhbE9iamVjdCgp
IDogbnVsbHB0cjsKICAgICAgICAgaWYgKCFnbG9iYWxPYmplY3QpCiAgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJDb250ZXh0IGlzIHN0b3BwZWQiX3Mg
fTsKIApAQCAtMTk5LDcgKzE5NSw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxGZXRjaFJlc3BvbnNlPj4g
RmV0Y2hSZXNwb25zZTo6Y2xvbmUoKQogICAgIGlmIChtX2ludGVybmFsUmVzcG9uc2UudHlwZSgp
ID09IFJlc291cmNlUmVzcG9uc2U6OlR5cGU6OkRlZmF1bHQpCiAgICAgICAgIG1faW50ZXJuYWxS
ZXNwb25zZS5zZXRIVFRQSGVhZGVyRmllbGRzKEhUVFBIZWFkZXJNYXAgeyBoZWFkZXJzKCkuaW50
ZXJuYWxIZWFkZXJzKCkgfSk7CiAKLSAgICBhdXRvIGNsb25lID0gRmV0Y2hSZXNwb25zZTo6Y3Jl
YXRlKGNvbnRleHQsIHN0ZDo6bnVsbG9wdCwgaGVhZGVycygpLmd1YXJkKCksIFJlc291cmNlUmVz
cG9uc2UgeyBtX2ludGVybmFsUmVzcG9uc2UgfSk7CisgICAgYXV0byBjbG9uZSA9IEZldGNoUmVz
cG9uc2U6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHN0ZDo6bnVsbG9wdCwgaGVh
ZGVycygpLmd1YXJkKCksIFJlc291cmNlUmVzcG9uc2UgeyBtX2ludGVybmFsUmVzcG9uc2UgfSk7
CiAgICAgY2xvbmUtPmNsb25lQm9keSgqdGhpcyk7CiAgICAgY2xvbmUtPm1fb3BhcXVlTG9hZElk
ZW50aWZpZXIgPSBtX29wYXF1ZUxvYWRJZGVudGlmaWVyOwogICAgIGNsb25lLT5tX2JvZHlTaXpl
V2l0aFBhZGRpbmcgPSBtX2JvZHlTaXplV2l0aFBhZGRpbmc7CkBAIC0yNTQsNyArMjUwLDcgQEAg
dm9pZCBGZXRjaFJlc3BvbnNlOjpmZXRjaChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
LCBGZXRjaFJlcXVlc3QmIHJlcXVlc3QKIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
d2lsbEZldGNoKGNvbnRleHQsIHJlcXVlc3QudXJsKCkuc3RyaW5nKCkpOwogCi0gICAgYXV0byBy
ZXNwb25zZSA9IGFkb3B0UmVmKCpuZXcgRmV0Y2hSZXNwb25zZShjb250ZXh0LCBGZXRjaEJvZHkg
eyB9LCBGZXRjaEhlYWRlcnM6OmNyZWF0ZShGZXRjaEhlYWRlcnM6Okd1YXJkOjpJbW11dGFibGUp
LCB7IH0pKTsKKyAgICBhdXRvIHJlc3BvbnNlID0gYWRvcHRSZWYoKm5ldyBGZXRjaFJlc3BvbnNl
KCZjb250ZXh0LCBGZXRjaEJvZHkgeyB9LCBGZXRjaEhlYWRlcnM6OmNyZWF0ZShGZXRjaEhlYWRl
cnM6Okd1YXJkOjpJbW11dGFibGUpLCB7IH0pKTsKICAgICByZXNwb25zZS0+c3VzcGVuZElmTmVl
ZGVkKCk7CiAKICAgICByZXNwb25zZS0+Ym9keSgpLmNvbnN1bWVyKCkuc2V0QXNMb2FkaW5nKCk7
CkBAIC01MzEsNiArNTI3LDcgQEAgdm9pZCBGZXRjaFJlc3BvbnNlOjpjYW5jZWwoKQogCiB2b2lk
IEZldGNoUmVzcG9uc2U6OnN0b3AoKQogeworICAgIGZwcmludGYoc3RkZXJyLCAiRmV0Y2hSZXNw
b25zZTo6c3RvcCAlcFxuIiwgdGhpcyk7CiAgICAgUmVmUHRyPEZldGNoUmVzcG9uc2U+IHByb3Rl
Y3RlZFRoaXModGhpcyk7CiAgICAgRmV0Y2hCb2R5T3duZXI6OnN0b3AoKTsKICAgICBpZiAoYXV0
byBib2R5TG9hZGVyID0gV1RGTW92ZShtX2JvZHlMb2FkZXIpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaAppbmRleCA2YjA1MDVkODhiMTMyZTI4Y2I5NTRh
YjlhMGU3ZWZlODEzZjcwMmFmLi4zY2M5ZDFiZWY2NGQzMTQ4Nzg3MTk1MDgwNDViZGE0ODFkNDdl
NjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9u
c2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaApA
QCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8RmV0Y2hIZWFk
ZXJzOjpJbml0PiBoZWFkZXJzOwogICAgIH07CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
UmVmPEZldGNoUmVzcG9uc2U+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwgc3RkOjpv
cHRpb25hbDxGZXRjaEJvZHk+JiYsIEZldGNoSGVhZGVyczo6R3VhcmQsIFJlc291cmNlUmVzcG9u
c2UmJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGZXRjaFJlc3BvbnNlPiBjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIHN0ZDo6b3B0aW9uYWw8RmV0Y2hCb2R5PiYmLCBG
ZXRjaEhlYWRlcnM6Okd1YXJkLCBSZXNvdXJjZVJlc3BvbnNlJiYpOwogCiAgICAgc3RhdGljIEV4
Y2VwdGlvbk9yPFJlZjxGZXRjaFJlc3BvbnNlPj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBzdGQ6Om9wdGlvbmFsPEZldGNoQm9keTo6SW5pdD4mJiwgSW5pdCYmKTsKICAgICBzdGF0
aWMgUmVmPEZldGNoUmVzcG9uc2U+IGVycm9yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKQEAg
LTExMiw3ICsxMTIsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNXYXNtTUlNRVR5cGUoKSBjb25z
dDsKIAogcHJpdmF0ZToKLSAgICBGZXRjaFJlc3BvbnNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
LCBzdGQ6Om9wdGlvbmFsPEZldGNoQm9keT4mJiwgUmVmPEZldGNoSGVhZGVycz4mJiwgUmVzb3Vy
Y2VSZXNwb25zZSYmKTsKKyAgICBGZXRjaFJlc3BvbnNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBzdGQ6Om9wdGlvbmFsPEZldGNoQm9keT4mJiwgUmVmPEZldGNoSGVhZGVycz4mJiwgUmVzb3Vy
Y2VSZXNwb25zZSYmKTsKIAogICAgIHZvaWQgc3RvcCgpIGZpbmFsOwogICAgIGNvbnN0IGNoYXIq
IGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9BYm9ydENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Fib3J0
Q29udHJvbGxlci5jcHAKaW5kZXggZWI1MmE2MThhMGUzNzg2ZjcwYWVjMTYxZTAzZTAxODExM2U1
ZDI0NS4uMjE0ZjcxNjhhMzRkNTM1ODUyMjkyNjEzNjQ3ODMwZTQzZDYyYzhmZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0Fib3J0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0Fib3J0Q29udHJvbGxlci5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgUmVmPEFib3J0
Q29udHJvbGxlcj4gQWJvcnRDb250cm9sbGVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCkKIH0KIAogQWJvcnRDb250cm9sbGVyOjpBYm9ydENvbnRyb2xsZXIoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKLSAgICA6IG1fc2lnbmFsKEFib3J0U2lnbmFsOjpj
cmVhdGUoY29udGV4dCkpCisgICAgOiBtX3NpZ25hbChBYm9ydFNpZ25hbDo6Y3JlYXRlKCZjb250
ZXh0KSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Fib3J0U2lnbmFs
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BYm9ydFNpZ25hbC5jcHAKaW5kZXggYTFlMDQ3NWUx
N2E1Y2YwMjdiM2NiNDRlMmY2YTkzN2Q1YWIwMDY3Yi4uZDQ5NzVmNmRhNDhmZjIxMmU0YjQ0OTUy
M2UxZTRmMTBlMmZlMWYxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Fib3J0U2ln
bmFsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQWJvcnRTaWduYWwuY3BwCkBAIC0zOSw3
ICszOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9J
TVBMKEFib3J0U2lnbmFsKTsKIAotUmVmPEFib3J0U2lnbmFsPiBBYm9ydFNpZ25hbDo6Y3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCitSZWY8QWJvcnRTaWduYWw+IEFib3J0
U2lnbmFsOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBBYm9ydFNpZ25hbChjb250ZXh0KSk7CiB9CkBAIC01MCwxMSAr
NTAsMTEgQEAgUmVmPEFib3J0U2lnbmFsPiBBYm9ydFNpZ25hbDo6YWJvcnQoSlNET01HbG9iYWxP
YmplY3QmIGdsb2JhbE9iamVjdCwgU2NyaXB0RXhlY3UKICAgICBBU1NFUlQocmVhc29uKTsKICAg
ICBpZiAocmVhc29uLmlzVW5kZWZpbmVkKCkpCiAgICAgICAgIHJlYXNvbiA9IHRvSlMoJmdsb2Jh
bE9iamVjdCwgJmdsb2JhbE9iamVjdCwgRE9NRXhjZXB0aW9uOjpjcmVhdGUoQWJvcnRFcnJvcikp
OwotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFib3J0U2lnbmFsKGNvbnRleHQsIEFib3J0ZWQ6
OlllcywgcmVhc29uKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWJvcnRTaWduYWwoJmNv
bnRleHQsIEFib3J0ZWQ6OlllcywgcmVhc29uKSk7CiB9CiAKLUFib3J0U2lnbmFsOjpBYm9ydFNp
Z25hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBBYm9ydGVkIGFib3J0ZWQsIEpT
Qzo6SlNWYWx1ZSByZWFzb24pCi0gICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmY29u
dGV4dCkKK0Fib3J0U2lnbmFsOjpBYm9ydFNpZ25hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBBYm9ydGVkIGFib3J0ZWQsIEpTQzo6SlNWYWx1ZSByZWFzb24pCisgICAgOiBDb250
ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcihjb250ZXh0KQogICAgICwgbV9hYm9ydGVkKGFib3J0ZWQg
PT0gQWJvcnRlZDo6WWVzKQogICAgICwgbV9yZWFzb24ocmVhc29uKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0Fib3J0U2lnbmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQWJv
cnRTaWduYWwuaAppbmRleCBkZTRiYjgxZjNhNTMzNzBlZDRiNGZmYmY0ZmVkZTk1NTZlMDYzM2Jj
Li40ZjIyMWFjOWI3MGVlOWQzY2NjOGUwOGQ2MTc5MTNhYTc2ZGUzN2NhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vQWJvcnRTaWduYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
QWJvcnRTaWduYWwuaApAQCAtNDIsNyArNDIsNyBAQCBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250
ZXh0OwogY2xhc3MgQWJvcnRTaWduYWwgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxBYm9ydFNp
Z25hbD4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwcml2YXRlIENvbnRleHRE
ZXN0cnVjdGlvbk9ic2VydmVyIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0VYUE9SVChB
Ym9ydFNpZ25hbCwgV0VCQ09SRV9FWFBPUlQpOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QWJv
cnRTaWduYWw+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CisgICAgc3RhdGljIFJl
ZjxBYm9ydFNpZ25hbD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKIAogICAgIHN0
YXRpYyBSZWY8QWJvcnRTaWduYWw+IGFib3J0KEpTRE9NR2xvYmFsT2JqZWN0JiwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYsIEpTQzo6SlNWYWx1ZSByZWFzb24pOwogCkBAIC02Niw3ICs2Niw3IEBA
IHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBlbnVtIGNsYXNzIEFib3J0ZWQgOiBib29sIHsgTm8s
IFllcyB9OwotICAgIGV4cGxpY2l0IEFib3J0U2lnbmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
LCBBYm9ydGVkID0gQWJvcnRlZDo6Tm8sIEpTQzo6SlNWYWx1ZSByZWFzb24gPSBKU0M6OmpzVW5k
ZWZpbmVkKCkpOworICAgIGV4cGxpY2l0IEFib3J0U2lnbmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBBYm9ydGVkID0gQWJvcnRlZDo6Tm8sIEpTQzo6SlNWYWx1ZSByZWFzb24gPSBKU0M6Ompz
VW5kZWZpbmVkKCkpOwogCiAgICAgLy8gRXZlbnRUYXJnZXQuCiAgICAgRXZlbnRUYXJnZXRJbnRl
cmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBBYm9ydFNp
Z25hbEV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9i
amVjdC5oCmluZGV4IDBlNzk0YTJhMDYwOWViMmViZTMxZTNlNjM5MDUyNjVkMmM4M2E0Y2YuLjE1
ODMxYWI0NTczN2JhZjljMTI1N2NkNzY5OWViYjU2OTI1YTg4NjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
QWN0aXZlRE9NT2JqZWN0LmgKQEAgLTEwMCw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFBlbmRpbmdBY3Rpdml0eTxUPih0aGlzT2JqZWN0KSk7CiAgICAg
fQogCi0gICAgYm9vbCBpc0NvbnRleHRTdG9wcGVkKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCBpc0NvbnRleHRTdG9wcGVkKCkgY29uc3Q7CiAgICAgYm9vbCBpc0FsbG93ZWRUb1J1
blNjcmlwdCgpIGNvbnN0OwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBkOGQ3MTRhY2YyNTVjYTcxZGU4MmU5MDgyNzg5YzMz
ZGM5OThhNzRhLi4yMGM2MDdmOGQ2NDIzNjIxZGNiYmE0YTBjOGQ0MjkzYjk1MmMxMTZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC03OSw2ICs3OSw3IEBACiAjaW5jbHVk
ZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkV4dGVuZGFibGVFdmVudC5oIgogI2luY2x1ZGUg
IkV4dGVuc2lvblN0eWxlU2hlZXRzLmgiCisjaW5jbHVkZSAiRmV0Y2hSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiRmV0Y2hSZXNwb25zZS5oIgogI2luY2x1ZGUgIkZpbGUuaCIKICNpbmNsdWRlICJGbG9h
dFF1YWQuaCIKQEAgLTkxOCw2ICs5MTksMTUgQEAgdm9pZCBJbnRlcm5hbHM6OnNldFN0cmljdFJh
d1Jlc291cmNlVmFsaWRhdGlvblBvbGljeURpc2FibGVkKGJvb2wgZGlzYWJsZWQpCiAgICAgZnJh
bWUoKS0+bG9hZGVyKCkuc2V0U3RyaWN0UmF3UmVzb3VyY2VWYWxpZGF0aW9uUG9saWN5RGlzYWJs
ZWRGb3JUZXN0aW5nKGRpc2FibGVkKTsKIH0KIAorYm9vbCBJbnRlcm5hbHM6OmlzRmV0Y2hPYmpl
Y3RDb250ZXh0U3RvcHBlZChjb25zdCBGZXRjaE9iamVjdCYgb2JqZWN0KQoreworICAgIHJldHVy
biBzd2l0Y2hPbihvYmplY3QsIFtdKGNvbnN0IFJlZlB0cjxGZXRjaFJlcXVlc3Q+JiByZXF1ZXN0
KSB7CisgICAgICAgIHJldHVybiByZXF1ZXN0LT5pc0NvbnRleHRTdG9wcGVkKCk7CisgICAgfSwg
W10oYXV0byYgcmVzcG9uc2UpIHsKKyAgICAgICAgcmV0dXJuIHJlc3BvbnNlLT5pc0NvbnRleHRT
dG9wcGVkKCk7CisgICAgfSk7Cit9CisKIHZvaWQgSW50ZXJuYWxzOjpjbGVhck1lbW9yeUNhY2hl
KCkKIHsKICAgICBNZW1vcnlDYWNoZTo6c2luZ2xldG9uKCkuZXZpY3RSZXNvdXJjZXMoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGZiYzEyMTk1MWVhMzlkZDE0OGQ3NWFlMjM3
NzY0ODgwZjBiM2UxZDUuLjkxYWY1N2YwZWRhMmVmOTU4MmNmODg0M2Q3YTJmYmM0ZWYxZTJlM2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNjcsNiArNjcsNyBAQCBjbGFzcyBE
b2N1bWVudDsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBFdmVudExpc3RlbmVyOwogY2xhc3MgRXh0
ZW5kYWJsZUV2ZW50OworY2xhc3MgRmV0Y2hSZXF1ZXN0OwogY2xhc3MgRmV0Y2hSZXNwb25zZTsK
IGNsYXNzIEZpbGU7CiBjbGFzcyBGcmFtZTsKQEAgLTE4OSw2ICsxOTAsOSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRPdmVycmlkZVJlc291cmNlTG9hZFByaW9yaXR5KFJlc291cmNlTG9hZFByaW9y
aXR5KTsKICAgICB2b2lkIHNldFN0cmljdFJhd1Jlc291cmNlVmFsaWRhdGlvblBvbGljeURpc2Fi
bGVkKGJvb2wpOwogCisgICAgdXNpbmcgRmV0Y2hPYmplY3QgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRy
PEZldGNoUmVxdWVzdD4sIFJlZlB0cjxGZXRjaFJlc3BvbnNlPj47CisgICAgYm9vbCBpc0ZldGNo
T2JqZWN0Q29udGV4dFN0b3BwZWQoY29uc3QgRmV0Y2hPYmplY3QmKTsKKwogICAgIHZvaWQgY2xl
YXJNZW1vcnlDYWNoZSgpOwogICAgIHZvaWQgcHJ1bmVNZW1vcnlDYWNoZVRvU2l6ZSh1bnNpZ25l
ZCBzaXplKTsKICAgICB2b2lkIGRlc3Ryb3lEZWNvZGVkRGF0YUZvckFsbEltYWdlcygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDIzNGMyMzYyNmMwNGUxZmNkMmEyZTVj
YzJhNDQ5NTEyYjM2ZWZhZGYuLjcxYmZmMzQxY2NmY2FkOTkxOTRiM2I3ZTE3ZGI4YTRiZmY1ZGI3
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTMwNSw2ICszMDUsOCBA
QCBlbnVtIEhFVkNQYXJhbWV0ZXJDb2RlYyB7CiAgICAgcmVxdWlyZWQgRE9NUG9pbnRSZWFkT25s
eSBib3R0b21MZWZ0OwogfTsKIAordHlwZWRlZiAoRmV0Y2hSZXF1ZXN0IG9yIEZldGNoUmVzcG9u
c2UpIEZldGNoT2JqZWN0OworCiBbCiAgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9URVNUU1VQUE9S
VF9FWFBPUlQsCiAgICAgTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QsCkBAIC0zMzcsNiArMzM5LDgg
QEAgZW51bSBIRVZDUGFyYW1ldGVyQ29kZWMgewogICAgIHVuZGVmaW5lZCBzZXRPdmVycmlkZVJl
c291cmNlTG9hZFByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KTsKICAgICB1
bmRlZmluZWQgc2V0U3RyaWN0UmF3UmVzb3VyY2VWYWxpZGF0aW9uUG9saWN5RGlzYWJsZWQoYm9v
bGVhbiBkaXNhYmxlZCk7CiAKKyAgICBib29sZWFuIGlzRmV0Y2hPYmplY3RDb250ZXh0U3RvcHBl
ZChGZXRjaE9iamVjdCBvYmplY3QpOworCiAgICAgdW5kZWZpbmVkIGNsZWFyQmFja0ZvcndhcmRD
YWNoZSgpOwogICAgIHVuc2lnbmVkIGxvbmcgYmFja0ZvcndhcmRDYWNoZVNpemUoKTsKICAgICB1
bmRlZmluZWQgcHJldmVudERvY3VtZW50RnJvbUVudGVyaW5nQmFja0ZvcndhcmRDYWNoZSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9TZXJ2aWNlV29ya2VySW50ZXJuYWxz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5jcHAK
aW5kZXggNjI1MjhkYTIwNmZhM2JlMzYyODA3ZTQ1ZWVkMGY4NWNkZGY1ODRlMC4uNzg0ZjMyNjEx
YjhjYjI4ZDBmYzhmODliMzU5OWFiNWJhNjQwNGRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9TZXJ2aWNlV29ya2VySW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL1NlcnZpY2VXb3JrZXJJbnRlcm5hbHMuY3BwCkBAIC0xMjksNyArMTI5LDcgQEAg
UmVmPEZldGNoUmVzcG9uc2U+IFNlcnZpY2VXb3JrZXJJbnRlcm5hbHM6OmNyZWF0ZU9wYXF1ZVdp
dGhCbG9iQm9keVJlc3BvbnNlKFNjcmkKICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlOwog
ICAgIHJlc3BvbnNlLnNldFR5cGUoUmVzb3VyY2VSZXNwb25zZTo6VHlwZTo6Q29ycyk7CiAgICAg
cmVzcG9uc2Uuc2V0VGFpbnRpbmcoUmVzb3VyY2VSZXNwb25zZTo6VGFpbnRpbmc6Ok9wYXF1ZSk7
Ci0gICAgYXV0byBmZXRjaFJlc3BvbnNlID0gRmV0Y2hSZXNwb25zZTo6Y3JlYXRlKGNvbnRleHQs
IEZldGNoQm9keTo6ZnJvbUZvcm1EYXRhKGNvbnRleHQsIGZvcm1EYXRhKSwgRmV0Y2hIZWFkZXJz
OjpHdWFyZDo6UmVzcG9uc2UsIFdURk1vdmUocmVzcG9uc2UpKTsKKyAgICBhdXRvIGZldGNoUmVz
cG9uc2UgPSBGZXRjaFJlc3BvbnNlOjpjcmVhdGUoJmNvbnRleHQsIEZldGNoQm9keTo6ZnJvbUZv
cm1EYXRhKGNvbnRleHQsIGZvcm1EYXRhKSwgRmV0Y2hIZWFkZXJzOjpHdWFyZDo6UmVzcG9uc2Us
IFdURk1vdmUocmVzcG9uc2UpKTsKICAgICBmZXRjaFJlc3BvbnNlLT5pbml0aWFsaXplT3BhcXVl
TG9hZElkZW50aWZpZXJGb3JUZXN0aW5nKCk7CiAgICAgcmV0dXJuIGZldGNoUmVzcG9uc2U7CiB9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggMDhjMDc4N2NmMjM4NTZhOTM1YWRiYWIzNDlkNTk5ODJhN2NlZDk4MC4uZmUwZTg3
ZjA3OTY2ODJhZDFiZmFiMmQzYmIzNWE4MWI1ZDg3M2I4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDIxLTEyLTIxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAg
ICBGZXRjaFJlcXVlc3QuY2xvbmUgZG9lcyBub3QgbmVlZCB0byBiZSBjYWxsZWQgd2l0aCB0aGUg
Y3VycmVudCBjb250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzQ1MTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGh0dHAvd3B0L2ZldGNoL2Nsb25lLXJlYWxtLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBodHRwL3dwdC9mZXRjaC9jbG9uZS1yZWFsbS5odG1sOgorICAgICAgICAqIGh0dHAvd3B0
L2ZldGNoL3Jlc291cmNlcy9jbG9uZS1yZWFsbS1pZnJhbWUuaHRtbDogQWRkZWQuCisKIDIwMjEt
MTItMjAgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IGdhcmRlbiBHUFUgUHJvY2VzcyB0ZXN0IGV4cGVjdGF0aW9ucwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC93cHQvZmV0Y2gvY2xvbmUtcmVhbG0tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvZmV0Y2gvY2xvbmUtcmVhbG0tZXhwZWN0ZWQudHh0CmluZGV4IGE5MTczNWMw
NTYyODhkMGIwYTJkNDYzNzJkZWNkNzQ2YjBhNGRmYjIuLjYwODc2NmE0N2E2YWYzZTI3NDhmYmY1
ZjA3Y2ViN2JmM2YzMDk3OWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNo
L2Nsb25lLXJlYWxtLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRj
aC9jbG9uZS1yZWFsbS1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw0IEBACiAKLVBBU1MgQ2xvbmlu
ZyBhIHJlc3BvbnNlIGZhaWxzIHdoZW4gaXRzIGZyYW1lIGlzIGRldGFjaGVkCitQQVNTIENsb25p
bmcgYSByZXNwb25zZSBzdWNjZWVkcyBldmVuIGlmIGl0cyBib2R5IGlzIHN0cmVhbSBiYXNlZAor
UEFTUyBDbG9uaW5nIHJlcXVlc3QvcmVzcG9uc2Ugd2hlbiBpdHMgZnJhbWUgaXMgZGV0YWNoZWQK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvY2xvbmUtcmVhbG0uaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL2Nsb25lLXJlYWxtLmh0bWwKaW5kZXggYTUy
ZjIyM2I0OTFiNDkwOTAwMmFhOGM4YTMzZDM3YTk0YmY3YTExMi4uMDk1ZjBmM2JmNGJhZDU3OWQz
NGZiMTFlYzljNTRkMzlmYmJlMDk3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
ZmV0Y2gvY2xvbmUtcmVhbG0uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9j
bG9uZS1yZWFsbS5odG1sCkBAIC0xNSwxOCArMTUsMzYgQEAgZnVuY3Rpb24gd2l0aF9pZnJhbWUo
dXJsKSB7CiAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZyYW1lKTsKICAgICB9KTsK
IH0KKwogcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CiAgICAgY29uc3QgZnJhbWUgPSBhd2Fp
dCB3aXRoX2lmcmFtZSgnLycpOwogICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZnJhbWUuY29u
dGVudFdpbmRvdy5mZXRjaCgnLycpOwogICAgIGF3YWl0IHJlc3BvbnNlLmNsb25lKCkudGV4dCgp
OwogICAgIGZyYW1lLnJlbW92ZSgpOwotICAgIHRyeSB7Ci0gICAgICAgIHJlc3BvbnNlLmNsb25l
KCk7Ci0gICAgICAgIGFzc2VydF9ub3RfcmVhY2hlZCgpOwotICAgIH0gY2F0Y2ggKGUpIHsKLSAg
ICAgICAgYXNzZXJ0X2VxdWFscyhlLm5hbWUsICdJbnZhbGlkU3RhdGVFcnJvcicpOworICAgIHJl
c3BvbnNlLmNsb25lKCk7Cit9LCAiQ2xvbmluZyBhIHJlc3BvbnNlIHN1Y2NlZWRzIGV2ZW4gaWYg
aXRzIGJvZHkgaXMgc3RyZWFtIGJhc2VkIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAodCkgPT4g
eworICAgIGxldCBmcmFtZSA9IGF3YWl0IHdpdGhfaWZyYW1lKCcvV2ViS2l0L2ZldGNoL3Jlc291
cmNlcy9jbG9uZS1yZWFsbS1pZnJhbWUuaHRtbCcpOworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpIHsKKyAgICAgICAgYXNzZXJ0X2ZhbHNlKGludGVybmFscy5pc0ZldGNoT2JqZWN0Q29udGV4
dFN0b3BwZWQodGVzdFJlc3BvbnNlKSwgInJlc3BvbnNlIGJlZm9yZSIpOworICAgICAgICBhc3Nl
cnRfZmFsc2UoaW50ZXJuYWxzLmlzRmV0Y2hPYmplY3RDb250ZXh0U3RvcHBlZCh0ZXN0UmVxdWVz
dCksICJyZXF1ZXN0IGJlZm9yZSIpOworICAgIH0KKworICAgIGZyYW1lLnJlbW92ZSgpOworCisg
ICAgY29uc3QgY2xvbmVkUmVzcG9uc2UgPSB0ZXN0UmVzcG9uc2UuY2xvbmUoKTsKKyAgICBjb25z
dCBjbG9uZWRSZXF1ZXN0ID0gdGVzdFJlcXVlc3QuY2xvbmUoKTsKKworICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKSB7CisgICAgICAgIGFzc2VydF90cnVlKGludGVybmFscy5pc0ZldGNoT2JqZWN0
Q29udGV4dFN0b3BwZWQodGVzdFJlc3BvbnNlKSwgInJlc3BvbnNlIGFmdGVyIik7CisgICAgICAg
IGFzc2VydF90cnVlKGludGVybmFscy5pc0ZldGNoT2JqZWN0Q29udGV4dFN0b3BwZWQoY2xvbmVk
UmVzcG9uc2UpLCAiY2xvbmVkUmVzcG9uc2UiKTsKKyAgICAgICAgYXNzZXJ0X3RydWUoaW50ZXJu
YWxzLmlzRmV0Y2hPYmplY3RDb250ZXh0U3RvcHBlZCh0ZXN0UmVxdWVzdCksICJyZXF1ZXN0IGFm
dGVyIik7CisgICAgICAgIGFzc2VydF90cnVlKGludGVybmFscy5pc0ZldGNoT2JqZWN0Q29udGV4
dFN0b3BwZWQoY2xvbmVkUmVxdWVzdCksICJjbG9uZWRSZXF1ZXN0Iik7CiAgICAgfQotfSwgIkNs
b25pbmcgYSByZXNwb25zZSBmYWlscyB3aGVuIGl0cyBmcmFtZSBpcyBkZXRhY2hlZCIpOworfSwg
IkNsb25pbmcgcmVxdWVzdC9yZXNwb25zZSB3aGVuIGl0cyBmcmFtZSBpcyBkZXRhY2hlZCIpOwor
CiA8L3NjcmlwdD4KICAgICA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3dwdC9mZXRjaC9yZXNvdXJjZXMvY2xvbmUtcmVhbG0taWZyYW1lLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXNvdXJjZXMvY2xvbmUtcmVhbG0taWZyYW1lLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjQ1MTRiYzUzNjc5NzZhYzg5MjRmYzc0MjljNGI5MjhiZThjOTJkMAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3Jlc291cmNlcy9jbG9u
ZS1yZWFsbS1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0
bWw+CisgICAgPGJvZHk+Cis8c2NyaXB0Pgord2luZG93LnBhcmVudC50ZXN0UmVxdWVzdCA9IG5l
dyBSZXF1ZXN0KCcvJyk7Cit3aW5kb3cucGFyZW50LnRlc3RSZXNwb25zZSA9IG5ldyBSZXNwb25z
ZSgndGV4dCcpOworPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447790</attachid>
            <date>2021-12-22 02:03:25 -0800</date>
            <delta_ts>2022-01-03 00:19:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234515-20211222110323.patch</filename>
            <type>text/plain</type>
            <size>26579</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3Mjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTJjOWJmNzhlZmU3ODY3
NzQ2NzRmZDZmNTgwODNjZjA1OGUzMGU3Yy4uODliOTRmMTQxYmMzMWNmOTFkOGNhNmQ5MDExNDA1
YWY2ZmIyMWI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTEyLTIxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGZXRjaFJlcXVlc3QuY2xv
bmUgZG9lcyBub3QgbmVlZCB0byBiZSBjYWxsZWQgd2l0aCB0aGUgY3VycmVudCBjb250ZXh0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ1MTUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIEZldGNo
UmVxdWVzdCwgRmV0Y2hSZXNwb25zZSBhbmQgRmV0Y2hCb2R5T3duZXIgdGFrZSBhIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGluc3RlYWQgb2YgYSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ji4KKyAg
ICAgICAgVGhpcyBhbGxvd3MgY2xvbmluZyBGZXRjaFJlcXVlc3QgYW5kIEZldGNoUmVzcG9uc2Ug
d2l0aCB0aGUgY29udGV4dCBvZiB0aGUgb3JpZ2luYWwgcmVxdWVzdCBvciByZXNwb25zZS4KKwor
ICAgICAgICBVcGRhdGUgY2FsbCBzaXRlLCBhcyB3ZWxsIGFzIGZvciBBYm9ydFNpZ25hbC4KKwor
ICAgICAgICBGb3IgRmV0Y2hSZXNwb25zZSwgd2UgZGlkIGEgY2hhbmdlIHRvIHRocm93IGluIGNh
c2Ugb2YgY2xvbmluZyBGZXRjaFJlc3BvbnNlIG9uIGEgc3RvcHBlZCBjb250ZXh0LgorICAgICAg
ICBJdCBhcHBlYXJlZCB0aGF0IEZpcmVmb3ggaXMgbm90IGRvaW5nIHRoYXQsIGFuZCBDaHJvbWUg
aXMgb25seSBkb2luZyB0aGF0IGluIHNvbWUgc3BlY2lmaWMgY2FzZXMuCisgICAgICAgIEZvciB0
aGF0IHJlYXNvbiwgaXQgaXMgYmV0dGVyIHRvIGdvIGJhY2sgdG8gb3VyIHByZXZpb3VzIGJlaGF2
aW9yIG9mIG5vdCB0aHJvd2luZy4KKworICAgICAgICBUbyBlYXNlIHRlc3RpbmcsIHdlIGFkZCBh
biBpbnRlcm5hbHMgQVBJIHRvIGNoZWNrIHdoZXRoZXIgYSByZXF1ZXN0L3Jlc3BvbnNlIGlzIGxp
bmtlZCB0byBhIGNsb3NlZCBjb250ZXh0LgorCisgICAgICAgIENvdmVyZWQgYnkgdXBkYXRlZCB0
ZXN0cy4KKworICAgICAgICAqIE1vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwOgorICAgICAgICAq
IE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuY3BwOgorICAgICAgICAqIE1vZHVsZXMvZmV0
Y2gvRmV0Y2hCb2R5T3duZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVz
dC5jcHA6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaDoKKyAgICAgICAg
KiBNb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5pZGw6CisgICAgICAgICogTW9kdWxlcy9mZXRj
aC9GZXRjaFJlc3BvbnNlLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9u
c2UuaDoKKyAgICAgICAgKiBkb20vQWJvcnRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBkb20v
QWJvcnRTaWduYWwuY3BwOgorICAgICAgICAqIGRvbS9BYm9ydFNpZ25hbC5oOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKyAgICAgICAgKiB0ZXN0aW5nL1NlcnZp
Y2VXb3JrZXJJbnRlcm5hbHMuY3BwOgorCiAyMDIxLTEyLTIwICBGdWppaSBIaXJvbm9yaSAgPEhp
cm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5dIE1TVkMgcmVwb3J0cyAiRG93
bmxvYWRCdW5kbGVXaW4uY3BwKDg3KTogZXJyb3IgQzIzNjI6IGluaXRpYWxpemF0aW9uIG9mICdt
YWdpYycgaXMgc2tpcHBlZCBieSAnZ290byBleGl0JyIgd2l0aCAvc3RkOmMrKzIwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwCmluZGV4IDk2ZmFmZjJkZjQ1NzA3YWE3
MGRmNDBlZmRkZWQ4YzUxNmIzNTU1NzIuLmZhOWU5MGQwNWYzZGQ1NGYwZDVmMTRlNmM1YzJlZDcz
OTRlM2ZmNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2Fj
aGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwCkBA
IC04Myw3ICs4Myw3IEBAIHN0YXRpYyBSZWY8RmV0Y2hSZXNwb25zZT4gY3JlYXRlUmVzcG9uc2Uo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QKIHsKICAgICBhdXRvIHJlc291
cmNlUmVzcG9uc2UgPSByZWNvcmQucmVzcG9uc2U7CiAgICAgcmVzb3VyY2VSZXNwb25zZS5zZXRT
b3VyY2UoUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpET01DYWNoZSk7Ci0gICAgYXV0byByZXNw
b25zZSA9IEZldGNoUmVzcG9uc2U6OmNyZWF0ZShjb250ZXh0LCBzdGQ6Om51bGxvcHQsIHJlY29y
ZC5yZXNwb25zZUhlYWRlcnNHdWFyZCwgV1RGTW92ZShyZXNvdXJjZVJlc3BvbnNlKSk7CisgICAg
YXV0byByZXNwb25zZSA9IEZldGNoUmVzcG9uc2U6OmNyZWF0ZSgmY29udGV4dCwgc3RkOjpudWxs
b3B0LCByZWNvcmQucmVzcG9uc2VIZWFkZXJzR3VhcmQsIFdURk1vdmUocmVzb3VyY2VSZXNwb25z
ZSkpOwogICAgIHJlc3BvbnNlLT5zZXRCb2R5RGF0YShjb3B5UmVzcG9uc2VCb2R5KHJlY29yZC5y
ZXNwb25zZUJvZHkpLCByZWNvcmQucmVzcG9uc2VCb2R5U2l6ZSk7CiAgICAgcmV0dXJuIHJlc3Bv
bnNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJv
ZHlPd25lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVy
LmNwcAppbmRleCBhNjMzMTA4YjU0Nzc4MzkzZmM1NDc1MDAzMmE5YTJlODZhZGU3ZmNjLi41MzU0
MGNmZGM0NjBiNDBmM2NhYTI3NjRkOTNhMTFkNDg2ZGZjYTBhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmNwcApAQCAtNDEsOCArNDEsOCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUZldGNoQm9keU93bmVyOjpGZXRjaEJvZHlPd25lcihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBzdGQ6Om9wdGlvbmFsPEZldGNoQm9keT4m
JiBib2R5LCBSZWY8RmV0Y2hIZWFkZXJzPiYmIGhlYWRlcnMpCi0gICAgOiBBY3RpdmVET01PYmpl
Y3QoJmNvbnRleHQpCitGZXRjaEJvZHlPd25lcjo6RmV0Y2hCb2R5T3duZXIoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgc3RkOjpvcHRpb25hbDxGZXRjaEJvZHk+JiYgYm9keSwgUmVm
PEZldGNoSGVhZGVycz4mJiBoZWFkZXJzKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQp
CiAgICAgLCBtX2JvZHkoV1RGTW92ZShib2R5KSkKICAgICAsIG1faGVhZGVycyhXVEZNb3ZlKGhl
YWRlcnMpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRj
aEJvZHlPd25lci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25l
ci5oCmluZGV4IDVjYTdlMzk2YzQyMjcwMTkzNTZiMDgwNmU0ZWVkYmU5NWU5MjhmNGIuLjMxY2Yx
MmFhNzQ5NjhhNDQwODVjMzIzNWNjYzUyMjVkOTllMTE4OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmgKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGlj
OgogICAgIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUoKSBjb25zdCB7IHJldHVybiBtX2NvbnRl
bnRUeXBlOyB9CiAKIHByb3RlY3RlZDoKLSAgICBGZXRjaEJvZHlPd25lcihTY3JpcHRFeGVjdXRp
b25Db250ZXh0Jiwgc3RkOjpvcHRpb25hbDxGZXRjaEJvZHk+JiYsIFJlZjxGZXRjaEhlYWRlcnM+
JiYpOworICAgIEZldGNoQm9keU93bmVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBzdGQ6Om9w
dGlvbmFsPEZldGNoQm9keT4mJiwgUmVmPEZldGNoSGVhZGVycz4mJik7CiAKICAgICBjb25zdCBG
ZXRjaEJvZHkmIGJvZHkoKSBjb25zdCB7IHJldHVybiAqbV9ib2R5OyB9CiAgICAgRmV0Y2hCb2R5
JiBib2R5KCkgeyByZXR1cm4gKm1fYm9keTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
ZXRjaC9GZXRjaFJlcXVlc3QuY3BwCmluZGV4IGM3NmY2YzhiZmFiYjFhNjBjOTY1MjcxNDEzMDhm
MTM1Mjk4ZDI5OGQuLmIwZDFkODJlOGVlYzExM2JiMDVhNGVkZjAxOWNmZGYyZGE3NzJhMWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5jcHAKQEAgLTI3
NCw3ICsyNzQsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBGZXRjaFJlcXVlc3Q6OnNldEJvZHkoRmV0
Y2hSZXF1ZXN0JiByZXF1ZXN0KQogCiBFeGNlcHRpb25PcjxSZWY8RmV0Y2hSZXF1ZXN0Pj4gRmV0
Y2hSZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSW5mbyYm
IGlucHV0LCBJbml0JiYgaW5pdCkKIHsKLSAgICBhdXRvIHJlcXVlc3QgPSBhZG9wdFJlZigqbmV3
IEZldGNoUmVxdWVzdChjb250ZXh0LCBzdGQ6Om51bGxvcHQsIEZldGNoSGVhZGVyczo6Y3JlYXRl
KEZldGNoSGVhZGVyczo6R3VhcmQ6OlJlcXVlc3QpLCB7IH0sIHsgfSwgeyB9KSk7CisgICAgYXV0
byByZXF1ZXN0ID0gYWRvcHRSZWYoKm5ldyBGZXRjaFJlcXVlc3QoJmNvbnRleHQsIHN0ZDo6bnVs
bG9wdCwgRmV0Y2hIZWFkZXJzOjpjcmVhdGUoRmV0Y2hIZWFkZXJzOjpHdWFyZDo6UmVxdWVzdCks
IHsgfSwgeyB9LCB7IH0pKTsKICAgICByZXF1ZXN0LT5zdXNwZW5kSWZOZWVkZWQoKTsKIAogICAg
IGlmIChzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFN0cmluZz4oaW5wdXQpKSB7CkBAIC0yOTIsNyAr
MjkyLDcgQEAgRXhjZXB0aW9uT3I8UmVmPEZldGNoUmVxdWVzdD4+IEZldGNoUmVxdWVzdDo6Y3Jl
YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnQKIAogUmVmPEZldGNoUmVxdWVzdD4gRmV0
Y2hSZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgc3RkOjpv
cHRpb25hbDxGZXRjaEJvZHk+JiYgYm9keSwgUmVmPEZldGNoSGVhZGVycz4mJiBoZWFkZXJzLCBS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zLCBTdHJpbmcm
JiByZWZlcnJlcikKIHsKLSAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgRmV0Y2hSZXF1
ZXN0KGNvbnRleHQsIFdURk1vdmUoYm9keSksIFdURk1vdmUoaGVhZGVycyksIFdURk1vdmUocmVx
dWVzdCksIFdURk1vdmUob3B0aW9ucyksIFdURk1vdmUocmVmZXJyZXIpKSk7CisgICAgYXV0byBy
ZXN1bHQgPSBhZG9wdFJlZigqbmV3IEZldGNoUmVxdWVzdCgmY29udGV4dCwgV1RGTW92ZShib2R5
KSwgV1RGTW92ZShoZWFkZXJzKSwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShvcHRpb25zKSwg
V1RGTW92ZShyZWZlcnJlcikpKTsKICAgICByZXN1bHQtPnN1c3BlbmRJZk5lZWRlZCgpOwogICAg
IHJldHVybiByZXN1bHQ7CiB9CkBAIC0zMjYsMTIgKzMyNiwxMiBAQCBSZXNvdXJjZVJlcXVlc3Qg
RmV0Y2hSZXF1ZXN0OjpyZXNvdXJjZVJlcXVlc3QoKSBjb25zdAogICAgIHJldHVybiByZXF1ZXN0
OwogfQogCi1FeGNlcHRpb25PcjxSZWY8RmV0Y2hSZXF1ZXN0Pj4gRmV0Y2hSZXF1ZXN0OjpjbG9u
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQorRXhjZXB0aW9uT3I8UmVmPEZldGNo
UmVxdWVzdD4+IEZldGNoUmVxdWVzdDo6Y2xvbmUoKQogewogICAgIGlmIChpc0Rpc3R1cmJlZE9y
TG9ja2VkKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJCb2R5IGlz
IGRpc3R1cmJlZCBvciBsb2NrZWQiX3MgfTsKIAotICAgIGF1dG8gY2xvbmUgPSBhZG9wdFJlZigq
bmV3IEZldGNoUmVxdWVzdChjb250ZXh0LCBzdGQ6Om51bGxvcHQsIEZldGNoSGVhZGVyczo6Y3Jl
YXRlKG1faGVhZGVycy5nZXQoKSksIFJlc291cmNlUmVxdWVzdCB7IG1fcmVxdWVzdCB9LCBGZXRj
aE9wdGlvbnMgeyBtX29wdGlvbnMgfSwgU3RyaW5nIHsgbV9yZWZlcnJlciB9KSk7CisgICAgYXV0
byBjbG9uZSA9IGFkb3B0UmVmKCpuZXcgRmV0Y2hSZXF1ZXN0KHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSwgc3RkOjpudWxsb3B0LCBGZXRjaEhlYWRlcnM6OmNyZWF0ZShtX2hlYWRlcnMuZ2V0KCkp
LCBSZXNvdXJjZVJlcXVlc3QgeyBtX3JlcXVlc3QgfSwgRmV0Y2hPcHRpb25zIHsgbV9vcHRpb25z
IH0sIFN0cmluZyB7IG1fcmVmZXJyZXIgfSkpOwogICAgIGNsb25lLT5zdXNwZW5kSWZOZWVkZWQo
KTsKICAgICBjbG9uZS0+Y2xvbmVCb2R5KCp0aGlzKTsKICAgICBjbG9uZS0+c2V0TmF2aWdhdGlv
blByZWxvYWRJZGVudGlmaWVyKG1fbmF2aWdhdGlvblByZWxvYWRJZGVudGlmaWVyKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5oCmluZGV4IGY0OTA1ZDgxMTNl
NTJmMjZlYTkzMDVlNWY1YjZiMTQ4NGQ4M2Y0NDcuLjcwYjI4Yzc3ZTdjY2YwZWVjNGQ1YWVkMDQ3
YWQxZDNhM2EwZGYwNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gv
RmV0Y2hSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJl
cXVlc3QuaApAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBTdHJpbmcmIGlu
dGVncml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucy5pbnRlZ3JpdHk7IH0KIAotICAgIEV4
Y2VwdGlvbk9yPFJlZjxGZXRjaFJlcXVlc3Q+PiBjbG9uZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
Jik7CisgICAgRXhjZXB0aW9uT3I8UmVmPEZldGNoUmVxdWVzdD4+IGNsb25lKCk7CiAKICAgICBj
b25zdCBGZXRjaE9wdGlvbnMmIGZldGNoT3B0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9u
czsgfQogICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgaW50ZXJuYWxSZXF1ZXN0KCkgY29uc3Qg
eyByZXR1cm4gbV9yZXF1ZXN0OyB9CkBAIC04NSw3ICs4NSw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldE5hdmlnYXRpb25QcmVsb2FkSWRlbnRpZmllcihGZXRjaElkZW50aWZpZXIgaWRlbnRpZmll
cikgeyBtX25hdmlnYXRpb25QcmVsb2FkSWRlbnRpZmllciA9IGlkZW50aWZpZXI7IH0KIAogcHJp
dmF0ZToKLSAgICBGZXRjaFJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIHN0ZDo6b3B0
aW9uYWw8RmV0Y2hCb2R5PiYmLCBSZWY8RmV0Y2hIZWFkZXJzPiYmLCBSZXNvdXJjZVJlcXVlc3Qm
JiwgRmV0Y2hPcHRpb25zJiYsIFN0cmluZyYmIHJlZmVycmVyKTsKKyAgICBGZXRjaFJlcXVlc3Qo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIHN0ZDo6b3B0aW9uYWw8RmV0Y2hCb2R5PiYmLCBSZWY8
RmV0Y2hIZWFkZXJzPiYmLCBSZXNvdXJjZVJlcXVlc3QmJiwgRmV0Y2hPcHRpb25zJiYsIFN0cmlu
ZyYmIHJlZmVycmVyKTsKIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGluaXRpYWxpemVPcHRpb25z
KGNvbnN0IEluaXQmKTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBpbml0aWFsaXplV2l0aChGZXRj
aFJlcXVlc3QmLCBJbml0JiYpOwpAQCAtMTAzLDcgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAgRmV0
Y2hJZGVudGlmaWVyIG1fbmF2aWdhdGlvblByZWxvYWRJZGVudGlmaWVyOwogfTsKIAotaW5saW5l
IEZldGNoUmVxdWVzdDo6RmV0Y2hSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIHN0ZDo6b3B0aW9uYWw8RmV0Y2hCb2R5PiYmIGJvZHksIFJlZjxGZXRjaEhlYWRlcnM+JiYg
aGVhZGVycywgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgRmV0Y2hPcHRpb25zJiYgb3B0aW9u
cywgU3RyaW5nJiYgcmVmZXJyZXIpCitpbmxpbmUgRmV0Y2hSZXF1ZXN0OjpGZXRjaFJlcXVlc3Qo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgc3RkOjpvcHRpb25hbDxGZXRjaEJvZHk+
JiYgYm9keSwgUmVmPEZldGNoSGVhZGVycz4mJiBoZWFkZXJzLCBSZXNvdXJjZVJlcXVlc3QmJiBy
ZXF1ZXN0LCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zLCBTdHJpbmcmJiByZWZlcnJlcikKICAgICA6
IEZldGNoQm9keU93bmVyKGNvbnRleHQsIFdURk1vdmUoYm9keSksIFdURk1vdmUoaGVhZGVycykp
CiAgICAgLCBtX3JlcXVlc3QoV1RGTW92ZShyZXF1ZXN0KSkKICAgICAsIG1fb3B0aW9ucyhXVEZN
b3ZlKG9wdGlvbnMpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9G
ZXRjaFJlcXVlc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVl
c3QuaWRsCmluZGV4IDljZGE1NzFiMjg2Y2M2ODdhYjNkZjVkODlhMDliYjM4M2M0NzY0YTcuLmU3
MmIxMTVhZjVjY2I0NjExMDFkZmM0MGQ4NjY2NjViODFiMmY4NjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5pZGwKQEAgLTMyLDYgKzMyLDcgQEAgdHlw
ZWRlZiAoRmV0Y2hSZXF1ZXN0IG9yIFVTVlN0cmluZykgUmVxdWVzdEluZm87CiAKIFsKICAgICBB
Y3RpdmVET01PYmplY3QsCisgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCiAgICAgRXhw
b3NlZD0oV2luZG93LFdvcmtlciksCiAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsLAogICAg
IEludGVyZmFjZU5hbWU9UmVxdWVzdCwKQEAgLTU3LDcgKzU4LDcgQEAgdHlwZWRlZiAoRmV0Y2hS
ZXF1ZXN0IG9yIFVTVlN0cmluZykgUmVxdWVzdEluZm87CiAgICAgLy8gcmVhZG9ubHkgYXR0cmli
dXRlIGJvb2xlYW4gaXNIaXN0b3J5TmF2aWdhdGlvbjsKICAgICByZWFkb25seSBhdHRyaWJ1dGUg
QWJvcnRTaWduYWwgc2lnbmFsOwogCi0gICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQsIE5ld09iamVjdF0gRmV0Y2hSZXF1ZXN0IGNsb25lKCk7CisgICAgW05ld09iamVjdF0gRmV0
Y2hSZXF1ZXN0IGNsb25lKCk7CiB9OwogCiBGZXRjaFJlcXVlc3QgaW5jbHVkZXMgRmV0Y2hCb2R5
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHAKaW5k
ZXggMGU3YjAwNWU4OWEzZDE3NDBiMWNmOWFkZmY4YjRmMmYyZmM0M2M5OS4uYzI1YWIzZWI4M2Rj
NWFjMGEzYjE3MDI0MGY4MjFhYTA4NGExZDBlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBpc051bGxCb2R5U3RhdHVzKGludCBzdGF0dXMpCiAgICAgcmV0dXJuIHN0YXR1cyA9
PSAxMDEgfHwgc3RhdHVzID09IDIwNCB8fCBzdGF0dXMgPT0gMjA1IHx8IHN0YXR1cyA9PSAzMDQ7
CiB9CiAKLVJlZjxGZXRjaFJlc3BvbnNlPiBGZXRjaFJlc3BvbnNlOjpjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgc3RkOjpvcHRpb25hbDxGZXRjaEJvZHk+JiYgYm9keSwg
RmV0Y2hIZWFkZXJzOjpHdWFyZCBndWFyZCwgUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlKQor
UmVmPEZldGNoUmVzcG9uc2U+IEZldGNoUmVzcG9uc2U6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCBzdGQ6Om9wdGlvbmFsPEZldGNoQm9keT4mJiBib2R5LCBGZXRjaEhl
YWRlcnM6Okd1YXJkIGd1YXJkLCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UpCiB7CiAgICAg
Ym9vbCBpc1N5bnRoZXRpYyA9IHJlc3BvbnNlLnR5cGUoKSA9PSBSZXNvdXJjZVJlc3BvbnNlOjpU
eXBlOjpEZWZhdWx0IHx8IHJlc3BvbnNlLnR5cGUoKSA9PSBSZXNvdXJjZVJlc3BvbnNlOjpUeXBl
OjpFcnJvcjsKICAgICBib29sIGlzT3BhcXVlID0gcmVzcG9uc2UudGFpbnRpbmcoKSA9PSBSZXNv
dXJjZVJlc3BvbnNlOjpUYWludGluZzo6T3BhcXVlOwpAQCAtMTI3LDcgKzEyNyw3IEBAIEV4Y2Vw
dGlvbk9yPFJlZjxGZXRjaFJlc3BvbnNlPj4gRmV0Y2hSZXNwb25zZTo6Y3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvCiAgICAgLy8gRklYTUU6IEltcGxlbWVudC4KICAgICAKICAgICAv
LyAxMi4gUmV0dXJuIHIuCi0gICAgYXV0byByID0gYWRvcHRSZWYoKm5ldyBGZXRjaFJlc3BvbnNl
KGNvbnRleHQsIFdURk1vdmUoZXh0cmFjdGVkQm9keSksIFdURk1vdmUoaGVhZGVycyksIHsgfSkp
OworICAgIGF1dG8gciA9IGFkb3B0UmVmKCpuZXcgRmV0Y2hSZXNwb25zZSgmY29udGV4dCwgV1RG
TW92ZShleHRyYWN0ZWRCb2R5KSwgV1RGTW92ZShoZWFkZXJzKSwgeyB9KSk7CiAgICAgci0+c3Vz
cGVuZElmTmVlZGVkKCk7CiAKICAgICByLT5tX2NvbnRlbnRUeXBlID0gY29udGVudFR5cGU7CkBA
IC0xNDMsNyArMTQzLDcgQEAgRXhjZXB0aW9uT3I8UmVmPEZldGNoUmVzcG9uc2U+PiBGZXRjaFJl
c3BvbnNlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY28KIAogUmVmPEZldGNoUmVz
cG9uc2U+IEZldGNoUmVzcG9uc2U6OmVycm9yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQpCiB7Ci0gICAgYXV0byByZXNwb25zZSA9IGFkb3B0UmVmKCpuZXcgRmV0Y2hSZXNwb25zZShj
b250ZXh0LCB7IH0sIEZldGNoSGVhZGVyczo6Y3JlYXRlKEZldGNoSGVhZGVyczo6R3VhcmQ6Oklt
bXV0YWJsZSksIHsgfSkpOworICAgIGF1dG8gcmVzcG9uc2UgPSBhZG9wdFJlZigqbmV3IEZldGNo
UmVzcG9uc2UoJmNvbnRleHQsIHsgfSwgRmV0Y2hIZWFkZXJzOjpjcmVhdGUoRmV0Y2hIZWFkZXJz
OjpHdWFyZDo6SW1tdXRhYmxlKSwgeyB9KSk7CiAgICAgcmVzcG9uc2UtPnN1c3BlbmRJZk5lZWRl
ZCgpOwogICAgIHJlc3BvbnNlLT5tX2ludGVybmFsUmVzcG9uc2Uuc2V0VHlwZShUeXBlOjpFcnJv
cik7CiAgICAgcmV0dXJuIHJlc3BvbnNlOwpAQCAtMTU5LDcgKzE1OSw3IEBAIEV4Y2VwdGlvbk9y
PFJlZjxGZXRjaFJlc3BvbnNlPj4gRmV0Y2hSZXNwb25zZTo6cmVkaXJlY3QoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlJlZGly
ZWN0aW9uIFVSTCBjb250YWlucyBjcmVkZW50aWFscyJfcyB9OwogICAgIGlmICghUmVzb3VyY2VS
ZXNwb25zZTo6aXNSZWRpcmVjdGlvblN0YXR1c0NvZGUoc3RhdHVzKSkKICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IFJhbmdlRXJyb3IsIG1ha2VTdHJpbmcoIlN0YXR1cyBjb2RlICIsIHN0YXR1
cywgImlzIG5vdCBhIHJlZGlyZWN0aW9uIHN0YXR1cyBjb2RlIikgfTsKLSAgICBhdXRvIHJlZGly
ZWN0UmVzcG9uc2UgPSBhZG9wdFJlZigqbmV3IEZldGNoUmVzcG9uc2UoY29udGV4dCwgeyB9LCBG
ZXRjaEhlYWRlcnM6OmNyZWF0ZShGZXRjaEhlYWRlcnM6Okd1YXJkOjpJbW11dGFibGUpLCB7IH0p
KTsKKyAgICBhdXRvIHJlZGlyZWN0UmVzcG9uc2UgPSBhZG9wdFJlZigqbmV3IEZldGNoUmVzcG9u
c2UoJmNvbnRleHQsIHsgfSwgRmV0Y2hIZWFkZXJzOjpjcmVhdGUoRmV0Y2hIZWFkZXJzOjpHdWFy
ZDo6SW1tdXRhYmxlKSwgeyB9KSk7CiAgICAgcmVkaXJlY3RSZXNwb25zZS0+c3VzcGVuZElmTmVl
ZGVkKCk7CiAgICAgcmVkaXJlY3RSZXNwb25zZS0+bV9pbnRlcm5hbFJlc3BvbnNlLnNldEhUVFBT
dGF0dXNDb2RlKHN0YXR1cyk7CiAgICAgcmVkaXJlY3RSZXNwb25zZS0+bV9pbnRlcm5hbFJlc3Bv
bnNlLnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6TG9jYXRpb24sIHJlcXVlc3RV
Ukwuc3RyaW5nKCkpOwpAQCAtMTY3LDcgKzE2Nyw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxGZXRjaFJl
c3BvbnNlPj4gRmV0Y2hSZXNwb25zZTo6cmVkaXJlY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYK
ICAgICByZXR1cm4gcmVkaXJlY3RSZXNwb25zZTsKIH0KIAotRmV0Y2hSZXNwb25zZTo6RmV0Y2hS
ZXNwb25zZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBzdGQ6Om9wdGlvbmFsPEZl
dGNoQm9keT4mJiBib2R5LCBSZWY8RmV0Y2hIZWFkZXJzPiYmIGhlYWRlcnMsIFJlc291cmNlUmVz
cG9uc2UmJiByZXNwb25zZSkKK0ZldGNoUmVzcG9uc2U6OkZldGNoUmVzcG9uc2UoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgc3RkOjpvcHRpb25hbDxGZXRjaEJvZHk+JiYgYm9keSwg
UmVmPEZldGNoSGVhZGVycz4mJiBoZWFkZXJzLCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2Up
CiAgICAgOiBGZXRjaEJvZHlPd25lcihjb250ZXh0LCBXVEZNb3ZlKGJvZHkpLCBXVEZNb3ZlKGhl
YWRlcnMpKQogICAgICwgbV9pbnRlcm5hbFJlc3BvbnNlKFdURk1vdmUocmVzcG9uc2UpKQogewpA
QCAtMTc1LDE4ICsxNzUsMTQgQEAgRmV0Y2hSZXNwb25zZTo6RmV0Y2hSZXNwb25zZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBzdGQ6Om9wdGlvbmFsPEZldGMKIAogRXhjZXB0aW9u
T3I8UmVmPEZldGNoUmVzcG9uc2U+PiBGZXRjaFJlc3BvbnNlOjpjbG9uZSgpCiB7Ci0gICAgaWYg
KGlzQ29udGV4dFN0b3BwZWQoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRT
dGF0ZUVycm9yLCAiQ29udGV4dCBpcyBzdG9wcGVkIl9zIH07Ci0KICAgICBpZiAoaXNEaXN0dXJi
ZWRPckxvY2tlZCgpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiQm9k
eSBpcyBkaXN0dXJiZWQgb3IgbG9ja2VkIl9zIH07CiAKLSAgICBBU1NFUlQoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKTsKLSAgICBhdXRvJiBjb250ZXh0ID0gKnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKTsKLQogICAgIC8vIElmIGxvYWRpbmcsIGxldCdzIGNyZWF0ZSBhIHN0cmVhbSBzbyB0aGF0
IGRhdGEgaXMgdGVlZCBvbiBib3RoIGNsb25lcy4KICAgICBpZiAoaXNMb2FkaW5nKCkgJiYgIW1f
cmVhZGFibGVTdHJlYW1Tb3VyY2UpIHsKLSAgICAgICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gY29u
dGV4dC5nbG9iYWxPYmplY3QoKTsKKyAgICAgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKTsKKworICAgICAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSBjb250ZXh0ID8g
Y29udGV4dC0+Z2xvYmFsT2JqZWN0KCkgOiBudWxscHRyOwogICAgICAgICBpZiAoIWdsb2JhbE9i
amVjdCkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwg
IkNvbnRleHQgaXMgc3RvcHBlZCJfcyB9OwogCkBAIC0xOTksNyArMTk1LDcgQEAgRXhjZXB0aW9u
T3I8UmVmPEZldGNoUmVzcG9uc2U+PiBGZXRjaFJlc3BvbnNlOjpjbG9uZSgpCiAgICAgaWYgKG1f
aW50ZXJuYWxSZXNwb25zZS50eXBlKCkgPT0gUmVzb3VyY2VSZXNwb25zZTo6VHlwZTo6RGVmYXVs
dCkKICAgICAgICAgbV9pbnRlcm5hbFJlc3BvbnNlLnNldEhUVFBIZWFkZXJGaWVsZHMoSFRUUEhl
YWRlck1hcCB7IGhlYWRlcnMoKS5pbnRlcm5hbEhlYWRlcnMoKSB9KTsKIAotICAgIGF1dG8gY2xv
bmUgPSBGZXRjaFJlc3BvbnNlOjpjcmVhdGUoY29udGV4dCwgc3RkOjpudWxsb3B0LCBoZWFkZXJz
KCkuZ3VhcmQoKSwgUmVzb3VyY2VSZXNwb25zZSB7IG1faW50ZXJuYWxSZXNwb25zZSB9KTsKKyAg
ICBhdXRvIGNsb25lID0gRmV0Y2hSZXNwb25zZTo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSwgc3RkOjpudWxsb3B0LCBoZWFkZXJzKCkuZ3VhcmQoKSwgUmVzb3VyY2VSZXNwb25zZSB7
IG1faW50ZXJuYWxSZXNwb25zZSB9KTsKICAgICBjbG9uZS0+Y2xvbmVCb2R5KCp0aGlzKTsKICAg
ICBjbG9uZS0+bV9vcGFxdWVMb2FkSWRlbnRpZmllciA9IG1fb3BhcXVlTG9hZElkZW50aWZpZXI7
CiAgICAgY2xvbmUtPm1fYm9keVNpemVXaXRoUGFkZGluZyA9IG1fYm9keVNpemVXaXRoUGFkZGlu
ZzsKQEAgLTI1NCw3ICsyNTAsNyBAQCB2b2lkIEZldGNoUmVzcG9uc2U6OmZldGNoKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEZldGNoUmVxdWVzdCYgcmVxdWVzdAogCiAgICAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRmV0Y2goY29udGV4dCwgcmVxdWVzdC51cmwoKS5z
dHJpbmcoKSk7CiAKLSAgICBhdXRvIHJlc3BvbnNlID0gYWRvcHRSZWYoKm5ldyBGZXRjaFJlc3Bv
bnNlKGNvbnRleHQsIEZldGNoQm9keSB7IH0sIEZldGNoSGVhZGVyczo6Y3JlYXRlKEZldGNoSGVh
ZGVyczo6R3VhcmQ6OkltbXV0YWJsZSksIHsgfSkpOworICAgIGF1dG8gcmVzcG9uc2UgPSBhZG9w
dFJlZigqbmV3IEZldGNoUmVzcG9uc2UoJmNvbnRleHQsIEZldGNoQm9keSB7IH0sIEZldGNoSGVh
ZGVyczo6Y3JlYXRlKEZldGNoSGVhZGVyczo6R3VhcmQ6OkltbXV0YWJsZSksIHsgfSkpOwogICAg
IHJlc3BvbnNlLT5zdXNwZW5kSWZOZWVkZWQoKTsKIAogICAgIHJlc3BvbnNlLT5ib2R5KCkuY29u
c3VtZXIoKS5zZXRBc0xvYWRpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9G
ZXRjaFJlc3BvbnNlLmgKaW5kZXggNmIwNTA1ZDg4YjEzMmUyOGNiOTU0YWI5YTBlN2VmZTgxM2Y3
MDJhZi4uM2NjOWQxYmVmNjRkMzE0ODc4NzE5NTA4MDQ1YmRhNDgxZDQ3ZTYwZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmgKQEAgLTU3LDcgKzU3LDcg
QEAgcHVibGljOgogICAgICAgICBzdGQ6Om9wdGlvbmFsPEZldGNoSGVhZGVyczo6SW5pdD4gaGVh
ZGVyczsKICAgICB9OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGZXRjaFJlc3Bv
bnNlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIHN0ZDo6b3B0aW9uYWw8RmV0Y2hC
b2R5PiYmLCBGZXRjaEhlYWRlcnM6Okd1YXJkLCBSZXNvdXJjZVJlc3BvbnNlJiYpOworICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RmV0Y2hSZXNwb25zZT4gY3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBzdGQ6Om9wdGlvbmFsPEZldGNoQm9keT4mJiwgRmV0Y2hIZWFkZXJzOjpH
dWFyZCwgUmVzb3VyY2VSZXNwb25zZSYmKTsKIAogICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8
RmV0Y2hSZXNwb25zZT4+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwgc3RkOjpvcHRp
b25hbDxGZXRjaEJvZHk6OkluaXQ+JiYsIEluaXQmJik7CiAgICAgc3RhdGljIFJlZjxGZXRjaFJl
c3BvbnNlPiBlcnJvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CkBAIC0xMTIsNyArMTEyLDcg
QEAgcHVibGljOgogICAgIGJvb2wgaGFzV2FzbU1JTUVUeXBlKCkgY29uc3Q7CiAKIHByaXZhdGU6
Ci0gICAgRmV0Y2hSZXNwb25zZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwgc3RkOjpvcHRpb25h
bDxGZXRjaEJvZHk+JiYsIFJlZjxGZXRjaEhlYWRlcnM+JiYsIFJlc291cmNlUmVzcG9uc2UmJik7
CisgICAgRmV0Y2hSZXNwb25zZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwgc3RkOjpvcHRpb25h
bDxGZXRjaEJvZHk+JiYsIFJlZjxGZXRjaEhlYWRlcnM+JiYsIFJlc291cmNlUmVzcG9uc2UmJik7
CiAKICAgICB2b2lkIHN0b3AoKSBmaW5hbDsKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQWJv
cnRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BYm9ydENvbnRyb2xsZXIuY3Bw
CmluZGV4IGViNTJhNjE4YTBlMzc4NmY3MGFlYzE2MWUwM2UwMTgxMTNlNWQyNDUuLjIxNGY3MTY4
YTM0ZDUzNTg1MjI5MjYxMzY0NzgzMGU0M2Q2MmM4ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9BYm9ydENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BYm9y
dENvbnRyb2xsZXIuY3BwCkBAIC00MSw3ICs0MSw3IEBAIFJlZjxBYm9ydENvbnRyb2xsZXI+IEFi
b3J0Q29udHJvbGxlcjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiB9
CiAKIEFib3J0Q29udHJvbGxlcjo6QWJvcnRDb250cm9sbGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQpCi0gICAgOiBtX3NpZ25hbChBYm9ydFNpZ25hbDo6Y3JlYXRlKGNvbnRleHQp
KQorICAgIDogbV9zaWduYWwoQWJvcnRTaWduYWw6OmNyZWF0ZSgmY29udGV4dCkpCiB7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BYm9ydFNpZ25hbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vQWJvcnRTaWduYWwuY3BwCmluZGV4IGExZTA0NzVlMTdhNWNmMDI3YjNjYjQ0
ZTJmNmE5MzdkNWFiMDA2N2IuLmQ0OTc1ZjZkYTQ4ZmYyMTJlNGI0NDk1MjNlMWU0ZjEwZTJmZTFm
MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BYm9ydFNpZ25hbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0Fib3J0U2lnbmFsLmNwcApAQCAtMzksNyArMzksNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChBYm9ydFNpZ25h
bCk7CiAKLVJlZjxBYm9ydFNpZ25hbD4gQWJvcnRTaWduYWw6OmNyZWF0ZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0KQorUmVmPEFib3J0U2lnbmFsPiBBYm9ydFNpZ25hbDo6Y3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQWJvcnRTaWduYWwoY29udGV4dCkpOwogfQpAQCAtNTAsMTEgKzUwLDExIEBAIFJlZjxB
Ym9ydFNpZ25hbD4gQWJvcnRTaWduYWw6OmFib3J0KEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxP
YmplY3QsIFNjcmlwdEV4ZWN1CiAgICAgQVNTRVJUKHJlYXNvbik7CiAgICAgaWYgKHJlYXNvbi5p
c1VuZGVmaW5lZCgpKQogICAgICAgICByZWFzb24gPSB0b0pTKCZnbG9iYWxPYmplY3QsICZnbG9i
YWxPYmplY3QsIERPTUV4Y2VwdGlvbjo6Y3JlYXRlKEFib3J0RXJyb3IpKTsKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBBYm9ydFNpZ25hbChjb250ZXh0LCBBYm9ydGVkOjpZZXMsIHJlYXNvbikp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFib3J0U2lnbmFsKCZjb250ZXh0LCBBYm9ydGVk
OjpZZXMsIHJlYXNvbikpOwogfQogCi1BYm9ydFNpZ25hbDo6QWJvcnRTaWduYWwoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgQWJvcnRlZCBhYm9ydGVkLCBKU0M6OkpTVmFsdWUgcmVh
c29uKQotICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmNvbnRleHQpCitBYm9ydFNp
Z25hbDo6QWJvcnRTaWduYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgQWJvcnRl
ZCBhYm9ydGVkLCBKU0M6OkpTVmFsdWUgcmVhc29uKQorICAgIDogQ29udGV4dERlc3RydWN0aW9u
T2JzZXJ2ZXIoY29udGV4dCkKICAgICAsIG1fYWJvcnRlZChhYm9ydGVkID09IEFib3J0ZWQ6Olll
cykKICAgICAsIG1fcmVhc29uKHJlYXNvbikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9BYm9ydFNpZ25hbC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Fib3J0U2lnbmFsLmgKaW5k
ZXggZGU0YmI4MWYzYTUzMzcwZWQ0YjRmZmJmNGZlZGU5NTU2ZTA2MzNiYy4uNGYyMjFhYzliNzBl
ZTlkM2NjYzhlMDhkNjE3OTEzYWE3NmRlMzdjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0Fib3J0U2lnbmFsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Fib3J0U2lnbmFsLmgK
QEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIEFi
b3J0U2lnbmFsIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8QWJvcnRTaWduYWw+LCBwdWJsaWMg
RXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHJpdmF0ZSBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNl
cnZlciB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9FWFBPUlQoQWJvcnRTaWduYWwsIFdF
QkNPUkVfRVhQT1JUKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEFib3J0U2lnbmFsPiBjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworICAgIHN0YXRpYyBSZWY8QWJvcnRTaWduYWw+
IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAKICAgICBzdGF0aWMgUmVmPEFib3J0
U2lnbmFsPiBhYm9ydChKU0RPTUdsb2JhbE9iamVjdCYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
LCBKU0M6OkpTVmFsdWUgcmVhc29uKTsKIApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAKIHBy
aXZhdGU6CiAgICAgZW51bSBjbGFzcyBBYm9ydGVkIDogYm9vbCB7IE5vLCBZZXMgfTsKLSAgICBl
eHBsaWNpdCBBYm9ydFNpZ25hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgQWJvcnRlZCA9IEFi
b3J0ZWQ6Ok5vLCBKU0M6OkpTVmFsdWUgcmVhc29uID0gSlNDOjpqc1VuZGVmaW5lZCgpKTsKKyAg
ICBleHBsaWNpdCBBYm9ydFNpZ25hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgQWJvcnRlZCA9
IEFib3J0ZWQ6Ok5vLCBKU0M6OkpTVmFsdWUgcmVhc29uID0gSlNDOjpqc1VuZGVmaW5lZCgpKTsK
IAogICAgIC8vIEV2ZW50VGFyZ2V0LgogICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFy
Z2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gQWJvcnRTaWduYWxFdmVudFRhcmdl
dEludGVyZmFjZVR5cGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBk
OGQ3MTRhY2YyNTVjYTcxZGU4MmU5MDgyNzg5YzMzZGM5OThhNzRhLi4yMGM2MDdmOGQ2NDIzNjIx
ZGNiYmE0YTBjOGQ0MjkzYjk1MmMxMTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCkBAIC03OSw2ICs3OSw3IEBACiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUg
IkV4dGVuZGFibGVFdmVudC5oIgogI2luY2x1ZGUgIkV4dGVuc2lvblN0eWxlU2hlZXRzLmgiCisj
aW5jbHVkZSAiRmV0Y2hSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRmV0Y2hSZXNwb25zZS5oIgogI2lu
Y2x1ZGUgIkZpbGUuaCIKICNpbmNsdWRlICJGbG9hdFF1YWQuaCIKQEAgLTkxOCw2ICs5MTksMTUg
QEAgdm9pZCBJbnRlcm5hbHM6OnNldFN0cmljdFJhd1Jlc291cmNlVmFsaWRhdGlvblBvbGljeURp
c2FibGVkKGJvb2wgZGlzYWJsZWQpCiAgICAgZnJhbWUoKS0+bG9hZGVyKCkuc2V0U3RyaWN0UmF3
UmVzb3VyY2VWYWxpZGF0aW9uUG9saWN5RGlzYWJsZWRGb3JUZXN0aW5nKGRpc2FibGVkKTsKIH0K
IAorYm9vbCBJbnRlcm5hbHM6OmlzRmV0Y2hPYmplY3RDb250ZXh0U3RvcHBlZChjb25zdCBGZXRj
aE9iamVjdCYgb2JqZWN0KQoreworICAgIHJldHVybiBzd2l0Y2hPbihvYmplY3QsIFtdKGNvbnN0
IFJlZlB0cjxGZXRjaFJlcXVlc3Q+JiByZXF1ZXN0KSB7CisgICAgICAgIHJldHVybiByZXF1ZXN0
LT5pc0NvbnRleHRTdG9wcGVkKCk7CisgICAgfSwgW10oYXV0byYgcmVzcG9uc2UpIHsKKyAgICAg
ICAgcmV0dXJuIHJlc3BvbnNlLT5pc0NvbnRleHRTdG9wcGVkKCk7CisgICAgfSk7Cit9CisKIHZv
aWQgSW50ZXJuYWxzOjpjbGVhck1lbW9yeUNhY2hlKCkKIHsKICAgICBNZW1vcnlDYWNoZTo6c2lu
Z2xldG9uKCkuZXZpY3RSZXNvdXJjZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmlu
ZGV4IGZiYzEyMTk1MWVhMzlkZDE0OGQ3NWFlMjM3NzY0ODgwZjBiM2UxZDUuLjkxYWY1N2YwZWRh
MmVmOTU4MmNmODg0M2Q3YTJmYmM0ZWYxZTJlM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaApAQCAtNjcsNiArNjcsNyBAQCBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEVsZW1lbnQ7CiBj
bGFzcyBFdmVudExpc3RlbmVyOwogY2xhc3MgRXh0ZW5kYWJsZUV2ZW50OworY2xhc3MgRmV0Y2hS
ZXF1ZXN0OwogY2xhc3MgRmV0Y2hSZXNwb25zZTsKIGNsYXNzIEZpbGU7CiBjbGFzcyBGcmFtZTsK
QEAgLTE4OSw2ICsxOTAsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRPdmVycmlkZVJlc291cmNl
TG9hZFByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5KTsKICAgICB2b2lkIHNldFN0cmljdFJh
d1Jlc291cmNlVmFsaWRhdGlvblBvbGljeURpc2FibGVkKGJvb2wpOwogCisgICAgdXNpbmcgRmV0
Y2hPYmplY3QgPSBzdGQ6OnZhcmlhbnQ8UmVmUHRyPEZldGNoUmVxdWVzdD4sIFJlZlB0cjxGZXRj
aFJlc3BvbnNlPj47CisgICAgYm9vbCBpc0ZldGNoT2JqZWN0Q29udGV4dFN0b3BwZWQoY29uc3Qg
RmV0Y2hPYmplY3QmKTsKKwogICAgIHZvaWQgY2xlYXJNZW1vcnlDYWNoZSgpOwogICAgIHZvaWQg
cHJ1bmVNZW1vcnlDYWNoZVRvU2l6ZSh1bnNpZ25lZCBzaXplKTsKICAgICB2b2lkIGRlc3Ryb3lE
ZWNvZGVkRGF0YUZvckFsbEltYWdlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CmluZGV4IDIzNGMyMzYyNmMwNGUxZmNkMmEyZTVjYzJhNDQ5NTEyYjM2ZWZhZGYuLjcxYmZmMzQx
Y2NmY2FkOTkxOTRiM2I3ZTE3ZGI4YTRiZmY1ZGI3MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwKQEAgLTMwNSw2ICszMDUsOCBAQCBlbnVtIEhFVkNQYXJhbWV0ZXJDb2RlYyB7
CiAgICAgcmVxdWlyZWQgRE9NUG9pbnRSZWFkT25seSBib3R0b21MZWZ0OwogfTsKIAordHlwZWRl
ZiAoRmV0Y2hSZXF1ZXN0IG9yIEZldGNoUmVzcG9uc2UpIEZldGNoT2JqZWN0OworCiBbCiAgICAg
RXhwb3J0TWFjcm89V0VCQ09SRV9URVNUU1VQUE9SVF9FWFBPUlQsCiAgICAgTGVnYWN5Tm9JbnRl
cmZhY2VPYmplY3QsCkBAIC0zMzcsNiArMzM5LDggQEAgZW51bSBIRVZDUGFyYW1ldGVyQ29kZWMg
ewogICAgIHVuZGVmaW5lZCBzZXRPdmVycmlkZVJlc291cmNlTG9hZFByaW9yaXR5KFJlc291cmNl
TG9hZFByaW9yaXR5IHByaW9yaXR5KTsKICAgICB1bmRlZmluZWQgc2V0U3RyaWN0UmF3UmVzb3Vy
Y2VWYWxpZGF0aW9uUG9saWN5RGlzYWJsZWQoYm9vbGVhbiBkaXNhYmxlZCk7CiAKKyAgICBib29s
ZWFuIGlzRmV0Y2hPYmplY3RDb250ZXh0U3RvcHBlZChGZXRjaE9iamVjdCBvYmplY3QpOworCiAg
ICAgdW5kZWZpbmVkIGNsZWFyQmFja0ZvcndhcmRDYWNoZSgpOwogICAgIHVuc2lnbmVkIGxvbmcg
YmFja0ZvcndhcmRDYWNoZVNpemUoKTsKICAgICB1bmRlZmluZWQgcHJldmVudERvY3VtZW50RnJv
bUVudGVyaW5nQmFja0ZvcndhcmRDYWNoZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9TZXJ2aWNlV29ya2VySW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvU2VydmljZVdvcmtlckludGVybmFscy5jcHAKaW5kZXggNjI1MjhkYTIwNmZhM2JlMzYyODA3
ZTQ1ZWVkMGY4NWNkZGY1ODRlMC4uNzg0ZjMyNjExYjhjYjI4ZDBmYzhmODliMzU5OWFiNWJhNjQw
NGRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9TZXJ2aWNlV29ya2VySW50
ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1NlcnZpY2VXb3JrZXJJbnRl
cm5hbHMuY3BwCkBAIC0xMjksNyArMTI5LDcgQEAgUmVmPEZldGNoUmVzcG9uc2U+IFNlcnZpY2VX
b3JrZXJJbnRlcm5hbHM6OmNyZWF0ZU9wYXF1ZVdpdGhCbG9iQm9keVJlc3BvbnNlKFNjcmkKICAg
ICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlOwogICAgIHJlc3BvbnNlLnNldFR5cGUoUmVzb3Vy
Y2VSZXNwb25zZTo6VHlwZTo6Q29ycyk7CiAgICAgcmVzcG9uc2Uuc2V0VGFpbnRpbmcoUmVzb3Vy
Y2VSZXNwb25zZTo6VGFpbnRpbmc6Ok9wYXF1ZSk7Ci0gICAgYXV0byBmZXRjaFJlc3BvbnNlID0g
RmV0Y2hSZXNwb25zZTo6Y3JlYXRlKGNvbnRleHQsIEZldGNoQm9keTo6ZnJvbUZvcm1EYXRhKGNv
bnRleHQsIGZvcm1EYXRhKSwgRmV0Y2hIZWFkZXJzOjpHdWFyZDo6UmVzcG9uc2UsIFdURk1vdmUo
cmVzcG9uc2UpKTsKKyAgICBhdXRvIGZldGNoUmVzcG9uc2UgPSBGZXRjaFJlc3BvbnNlOjpjcmVh
dGUoJmNvbnRleHQsIEZldGNoQm9keTo6ZnJvbUZvcm1EYXRhKGNvbnRleHQsIGZvcm1EYXRhKSwg
RmV0Y2hIZWFkZXJzOjpHdWFyZDo6UmVzcG9uc2UsIFdURk1vdmUocmVzcG9uc2UpKTsKICAgICBm
ZXRjaFJlc3BvbnNlLT5pbml0aWFsaXplT3BhcXVlTG9hZElkZW50aWZpZXJGb3JUZXN0aW5nKCk7
CiAgICAgcmV0dXJuIGZldGNoUmVzcG9uc2U7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDhjMDc4N2NmMjM4NTZhOTM1
YWRiYWIzNDlkNTk5ODJhN2NlZDk4MC4uZmUwZTg3ZjA3OTY2ODJhZDFiZmFiMmQzYmIzNWE4MWI1
ZDg3M2I4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTEyLTIxICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGZXRjaFJlcXVlc3QuY2xvbmUgZG9lcyBu
b3QgbmVlZCB0byBiZSBjYWxsZWQgd2l0aCB0aGUgY3VycmVudCBjb250ZXh0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ1MTUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvd3B0L2ZldGNoL2Ns
b25lLXJlYWxtLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3dwdC9mZXRjaC9jbG9uZS1y
ZWFsbS5odG1sOgorICAgICAgICAqIGh0dHAvd3B0L2ZldGNoL3Jlc291cmNlcy9jbG9uZS1yZWFs
bS1pZnJhbWUuaHRtbDogQWRkZWQuCisKIDIwMjEtMTItMjAgIEpvbiBMZWUgIDxqb25sZWVAYXBw
bGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGdhcmRlbiBHUFUgUHJvY2VzcyB0ZXN0IGV4
cGVjdGF0aW9ucwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvY2xvbmUt
cmVhbG0tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvY2xvbmUtcmVh
bG0tZXhwZWN0ZWQudHh0CmluZGV4IGE5MTczNWMwNTYyODhkMGIwYTJkNDYzNzJkZWNkNzQ2YjBh
NGRmYjIuLjYwODc2NmE0N2E2YWYzZTI3NDhmYmY1ZjA3Y2ViN2JmM2YzMDk3OWQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL2Nsb25lLXJlYWxtLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9jbG9uZS1yZWFsbS1leHBlY3RlZC50eHQK
QEAgLTEsMyArMSw0IEBACiAKLVBBU1MgQ2xvbmluZyBhIHJlc3BvbnNlIGZhaWxzIHdoZW4gaXRz
IGZyYW1lIGlzIGRldGFjaGVkCitQQVNTIENsb25pbmcgYSByZXNwb25zZSBzdWNjZWVkcyBldmVu
IGlmIGl0cyBib2R5IGlzIHN0cmVhbSBiYXNlZAorUEFTUyBDbG9uaW5nIHJlcXVlc3QvcmVzcG9u
c2Ugd2hlbiBpdHMgZnJhbWUgaXMgZGV0YWNoZWQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC93cHQvZmV0Y2gvY2xvbmUtcmVhbG0uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Zl
dGNoL2Nsb25lLXJlYWxtLmh0bWwKaW5kZXggYTUyZjIyM2I0OTFiNDkwOTAwMmFhOGM4YTMzZDM3
YTk0YmY3YTExMi4uMDk1ZjBmM2JmNGJhZDU3OWQzNGZiMTFlYzljNTRkMzlmYmJlMDk3NiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvY2xvbmUtcmVhbG0uaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9jbG9uZS1yZWFsbS5odG1sCkBAIC0xNSwxOCAr
MTUsMzYgQEAgZnVuY3Rpb24gd2l0aF9pZnJhbWUodXJsKSB7CiAgICAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGZyYW1lKTsKICAgICB9KTsKIH0KKwogcHJvbWlzZV90ZXN0KGFzeW5jICh0
KSA9PiB7CiAgICAgY29uc3QgZnJhbWUgPSBhd2FpdCB3aXRoX2lmcmFtZSgnLycpOwogICAgIGNv
bnN0IHJlc3BvbnNlID0gYXdhaXQgZnJhbWUuY29udGVudFdpbmRvdy5mZXRjaCgnLycpOwogICAg
IGF3YWl0IHJlc3BvbnNlLmNsb25lKCkudGV4dCgpOwogICAgIGZyYW1lLnJlbW92ZSgpOwotICAg
IHRyeSB7Ci0gICAgICAgIHJlc3BvbnNlLmNsb25lKCk7Ci0gICAgICAgIGFzc2VydF9ub3RfcmVh
Y2hlZCgpOwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm5hbWUs
ICdJbnZhbGlkU3RhdGVFcnJvcicpOworICAgIHJlc3BvbnNlLmNsb25lKCk7Cit9LCAiQ2xvbmlu
ZyBhIHJlc3BvbnNlIHN1Y2NlZWRzIGV2ZW4gaWYgaXRzIGJvZHkgaXMgc3RyZWFtIGJhc2VkIik7
CisKK3Byb21pc2VfdGVzdChhc3luYyAodCkgPT4geworICAgIGxldCBmcmFtZSA9IGF3YWl0IHdp
dGhfaWZyYW1lKCcvV2ViS2l0L2ZldGNoL3Jlc291cmNlcy9jbG9uZS1yZWFsbS1pZnJhbWUuaHRt
bCcpOworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgYXNzZXJ0X2ZhbHNl
KGludGVybmFscy5pc0ZldGNoT2JqZWN0Q29udGV4dFN0b3BwZWQodGVzdFJlc3BvbnNlKSwgInJl
c3BvbnNlIGJlZm9yZSIpOworICAgICAgICBhc3NlcnRfZmFsc2UoaW50ZXJuYWxzLmlzRmV0Y2hP
YmplY3RDb250ZXh0U3RvcHBlZCh0ZXN0UmVxdWVzdCksICJyZXF1ZXN0IGJlZm9yZSIpOworICAg
IH0KKworICAgIGZyYW1lLnJlbW92ZSgpOworCisgICAgY29uc3QgY2xvbmVkUmVzcG9uc2UgPSB0
ZXN0UmVzcG9uc2UuY2xvbmUoKTsKKyAgICBjb25zdCBjbG9uZWRSZXF1ZXN0ID0gdGVzdFJlcXVl
c3QuY2xvbmUoKTsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGFzc2Vy
dF90cnVlKGludGVybmFscy5pc0ZldGNoT2JqZWN0Q29udGV4dFN0b3BwZWQodGVzdFJlc3BvbnNl
KSwgInJlc3BvbnNlIGFmdGVyIik7CisgICAgICAgIGFzc2VydF90cnVlKGludGVybmFscy5pc0Zl
dGNoT2JqZWN0Q29udGV4dFN0b3BwZWQoY2xvbmVkUmVzcG9uc2UpLCAiY2xvbmVkUmVzcG9uc2Ui
KTsKKyAgICAgICAgYXNzZXJ0X3RydWUoaW50ZXJuYWxzLmlzRmV0Y2hPYmplY3RDb250ZXh0U3Rv
cHBlZCh0ZXN0UmVxdWVzdCksICJyZXF1ZXN0IGFmdGVyIik7CisgICAgICAgIGFzc2VydF90cnVl
KGludGVybmFscy5pc0ZldGNoT2JqZWN0Q29udGV4dFN0b3BwZWQoY2xvbmVkUmVxdWVzdCksICJj
bG9uZWRSZXF1ZXN0Iik7CiAgICAgfQotfSwgIkNsb25pbmcgYSByZXNwb25zZSBmYWlscyB3aGVu
IGl0cyBmcmFtZSBpcyBkZXRhY2hlZCIpOworfSwgIkNsb25pbmcgcmVxdWVzdC9yZXNwb25zZSB3
aGVuIGl0cyBmcmFtZSBpcyBkZXRhY2hlZCIpOworCiA8L3NjcmlwdD4KICAgICA8L2JvZHk+CiA8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXNvdXJjZXMv
Y2xvbmUtcmVhbG0taWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXNv
dXJjZXMvY2xvbmUtcmVhbG0taWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQ1MTRiYzUzNjc5NzZh
Yzg5MjRmYzc0MjljNGI5MjhiZThjOTJkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvd3B0L2ZldGNoL3Jlc291cmNlcy9jbG9uZS1yZWFsbS1pZnJhbWUuaHRtbApAQCAtMCww
ICsxLDkgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPGJvZHk+Cis8c2NyaXB0Pgor
d2luZG93LnBhcmVudC50ZXN0UmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCcvJyk7Cit3aW5kb3cucGFy
ZW50LnRlc3RSZXNwb25zZSA9IG5ldyBSZXNwb25zZSgndGV4dCcpOworPC9zY3JpcHQ+CisgICAg
PC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>