<?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>230164</bug_id>
          
          <creation_ts>2021-09-10 12:04:20 -0700</creation_ts>
          <short_desc>Relax BroadcastChannel origin partitioning if iframe has storage access</short_desc>
          <delta_ts>2021-10-27 14:02:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=229814</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=232401</see_also>
          <bug_file_loc>https://github.com/whatwg/html/issues/5803</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>161472</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>kangil.han</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1792475</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-10 12:04:20 -0700</bug_when>
    <thetext>Relax BroadcastChannel origin partitioning if iframe has storage access.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792479</commentid>
    <comment_count>1</comment_count>
      <attachid>437896</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-10 12:08:20 -0700</bug_when>
    <thetext>Created attachment 437896
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792483</commentid>
    <comment_count>2</comment_count>
      <attachid>437897</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-10 12:16:15 -0700</bug_when>
    <thetext>Created attachment 437897
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792732</commentid>
    <comment_count>3</comment_count>
      <attachid>437963</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-11 14:19:38 -0700</bug_when>
    <thetext>Created attachment 437963
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792739</commentid>
    <comment_count>4</comment_count>
      <attachid>437968</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-11 16:01:57 -0700</bug_when>
    <thetext>Created attachment 437968
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792749</commentid>
    <comment_count>5</comment_count>
      <attachid>437973</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-11 17:40:36 -0700</bug_when>
    <thetext>Created attachment 437973
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793119</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-13 15:18:34 -0700</bug_when>
    <thetext>Committed r282366 (241629@main): &lt;https://commits.webkit.org/241629@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 437973.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793120</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-13 15:19:27 -0700</bug_when>
    <thetext>&lt;rdar://problem/83074931&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437896</attachid>
            <date>2021-09-10 12:08:20 -0700</date>
            <delta_ts>2021-09-10 12:16:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230164-20210910120819.patch</filename>
            <type>text/plain</type>
            <size>18790</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWRjNzNjZTMwY2UwYWQ1
ZjcyMDYwNWY4MjAyMjQ5N2M4N2QxMTVhNS4uMzhhN2MzN2E1MzFiYzU3MWI0MDdiMGFjYTFmNDU3
YjViZDFjYjY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTA5LTEwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVsYXggQnJvYWRjYXN0Q2hh
bm5lbCBvcmlnaW4gcGFydGl0aW9uaW5nIGlmIGlmcmFtZSBoYXMgc3RvcmFnZSBhY2Nlc3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDE2NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHIyODIxMDUs
IHdlIHN0YXJ0ZWQgcGFydGl0aW9uaW5nIG9yaWdpbnMgZm9yIEJyb2FkY2FzdENoYW5uZWwgdXNp
bmcgdG9wT3JpZ2luL2ZyYW1lT3JpZ2luLgorICAgICAgICBUaGlzIHByZXZlbnRzIGEgdG9wRnJh
bWUgb2Ygb3JpZ2luIEEgdG8gbWVzc2FnZSBhIHN1YmZyYW1lIG9mIG9yaWdpbiBBIGlmIHRoYXQg
c3ViZnJhbWUgaWYgdW5kZXIKKyAgICAgICAgYW5vdGhlciBkb21haW4gQi4gSG93ZXZlciwgdGhl
IGBkb2N1bWVudC5yZXF1ZXN0U3RvcmFnZUFjY2VzcygpYCBBUEkgZXhpc3RzIHRvIHJlbGF4IHN0
b3JhZ2UKKyAgICAgICAgcGFydGl0aW9uaW5nIGFuZCBHZWNrbyByZWxpZXMgb24gdGhpcyB0byBy
ZWxheCBCcm9hZGNhc3RDaGFubmVsIG9yaWdpbiBwYXJ0aXRpb25pbmcgYXMgd2VsbC4KKyAgICAg
ICAgVGhpcyBwYXRjaCBhbGlnbnMgV2ViS2l0J3MgYmVoYXZpb3Igd2l0aCBHZWNrby4KKworICAg
ICAgICBUZXN0OiBodHRwL3Rlc3RzL21lc3NhZ2luZy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlv
bmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLmh0bWwKKworICAgICAgICAqIGRvbS9Ccm9hZGNhc3RD
aGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBvc3RUb0Jyb2FkY2FzdENoYW5uZWxDb250
ZXh0VGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWw6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjptX2lkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6c2hv
dWxkRGlzYWJsZU9yaWdpblBhcnRpdGlvbmluZyk6CisgICAgICAgIChXZWJDb3JlOjpCcm9hZGNh
c3RDaGFubmVsOjpyZWdpc3RlckNoYW5uZWwpOgorICAgICAgICAoV2ViQ29yZTo6QnJvYWRjYXN0
Q2hhbm5lbDo6Y2hhbm5lbFdhc1JlZ2lzdGVyZWRGb3JPcmlnaW4pOgorICAgICAgICAoV2ViQ29y
ZTo6QnJvYWRjYXN0Q2hhbm5lbDo6cG9zdE1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QnJv
YWRjYXN0Q2hhbm5lbDo6cG9zdFNlcmlhbGl6ZWRNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6
OkJyb2FkY2FzdENoYW5uZWw6OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OkJyb2FkY2FzdENo
YW5uZWw6OnVucmVnaXN0ZXJDaGFubmVsKToKKyAgICAgICAgKFdlYkNvcmU6OkJyb2FkY2FzdENo
YW5uZWw6OmRpc3BhdGNoTWVzc2FnZVRvKToKKyAgICAgICAgKiBkb20vQnJvYWRjYXN0Q2hhbm5l
bC5oOgorCiAyMDIxLTA5LTA3ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtjc3MtZmxleGJveF0gQWRkIHN1cHBvcnQgZm9yIHNlbGYtc3RhcnQg
JiBzZWxmLWVuZCBjc3MtYWxpZ24tMyBwb3NpdGlvbmFsIGFsaWdubWVudCBwcm9wZXJ0aWVzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHAKaW5kZXggMWM2MjU2M2MxMTFlMjg2
NmUyMjg4ZTZlZGE2NDhiYzU5YWFmZmQzMC4uM2VkNWNhMDI3OThmYWM5NTljYzFlYTI5MGY2MjRm
YjczYzNkYzcxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5u
ZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmNwcApAQCAt
MjcsNiArMjcsOSBAQAogI2luY2x1ZGUgIkJyb2FkY2FzdENoYW5uZWwuaCIKIAogI2luY2x1ZGUg
IkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oIgorI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1
ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXZl
bnROYW1lcy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIK
QEAgLTU3LDYgKzYwLDMyIEBAIHN0YXRpYyBIYXNoTWFwPEJyb2FkY2FzdENoYW5uZWxJZGVudGlm
aWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mIGNoCiAgICAgcmV0dXJuIG1h
cDsKIH0KIAorc3RhdGljIHZvaWQgcG9zdFRvQnJvYWRjYXN0Q2hhbm5lbENvbnRleHRUaHJlYWQo
QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgY2hhbm5lbElkZW50aWZpZXIsIEZ1bmN0aW9uPHZv
aWQoQnJvYWRjYXN0Q2hhbm5lbCYpPiYmIGZ1bmN0aW9uKQoreworICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CisgICAgYXV0byBjb250ZXh0SWRlbnRpZmllciA9IGNoYW5uZWxUb0NvbnRleHRJ
ZGVudGlmaWVyKCkuZ2V0KGNoYW5uZWxJZGVudGlmaWVyKTsKKyAgICBpZiAoIWNvbnRleHRJZGVu
dGlmaWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpw
b3N0VGFza1RvKGNvbnRleHRJZGVudGlmaWVyLCBbY2hhbm5lbElkZW50aWZpZXIsIGZ1bmN0aW9u
ID0gV1RGTW92ZShmdW5jdGlvbildKGF1dG8mKSBtdXRhYmxlIHsKKyAgICAgICAgUmVmUHRyPEJy
b2FkY2FzdENoYW5uZWw+IGNoYW5uZWw7CisgICAgICAgIHsKKyAgICAgICAgICAgIExvY2tlciBs
b2NrZXIgeyBhbGxCcm9hZGNhc3RDaGFubmVsc0xvY2sgfTsKKyAgICAgICAgICAgIGNoYW5uZWwg
PSBhbGxCcm9hZGNhc3RDaGFubmVscygpLmdldChjaGFubmVsSWRlbnRpZmllcik7CisgICAgICAg
IH0KKyAgICAgICAgaWYgKGNoYW5uZWwpCisgICAgICAgICAgICBmdW5jdGlvbigqY2hhbm5lbCk7
CisgICAgfSk7Cit9CisKK1JlZjxCcm9hZGNhc3RDaGFubmVsPiBCcm9hZGNhc3RDaGFubmVsOjpj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1l
KQoreworICAgIGF1dG8gY2hhbm5lbCA9IGFkb3B0UmVmKCpuZXcgQnJvYWRjYXN0Q2hhbm5lbChj
b250ZXh0LCBuYW1lKSk7CisgICAgY2hhbm5lbC0+cmVnaXN0ZXJDaGFubmVsKCk7CisgICAgY2hh
bm5lbC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIGNoYW5uZWw7Cit9CisKIEJyb2Fk
Y2FzdENoYW5uZWw6OkJyb2FkY2FzdENoYW5uZWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0
KQogICAgICwgbV9uYW1lKG5hbWUpCkBAIC02NywxMiArOTYsNiBAQCBCcm9hZGNhc3RDaGFubmVs
OjpCcm9hZGNhc3RDaGFubmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0
IFN0cmluZwogICAgICAgICBMb2NrZXIgbG9ja2VyIHsgYWxsQnJvYWRjYXN0Q2hhbm5lbHNMb2Nr
IH07CiAgICAgICAgIGFsbEJyb2FkY2FzdENoYW5uZWxzKCkuYWRkKG1faWRlbnRpZmllciwgdGhp
cyk7CiAgICAgfQotCi0gICAgZW5zdXJlT25NYWluVGhyZWFkKFtvcmlnaW4gPSBjcm9zc1RocmVh
ZENvcHkobV9vcmlnaW4pLCBuYW1lID0gY3Jvc3NUaHJlYWRDb3B5KG1fbmFtZSksIGNvbnRleHRJ
ZGVudGlmaWVyID0gY29udGV4dC5jb250ZXh0SWRlbnRpZmllcigpLCBjaGFubmVsSWRlbnRpZmll
ciA9IG1faWRlbnRpZmllcl0oYXV0byYgZG9jdW1lbnQpIHsKLSAgICAgICAgaWYgKGF1dG8qIHBh
Z2UgPSBkb2N1bWVudC5wYWdlKCkpCi0gICAgICAgICAgICBwYWdlLT5icm9hZGNhc3RDaGFubmVs
UmVnaXN0cnkoKS5yZWdpc3RlckNoYW5uZWwob3JpZ2luLCBuYW1lLCBjaGFubmVsSWRlbnRpZmll
cik7Ci0gICAgICAgIGNoYW5uZWxUb0NvbnRleHRJZGVudGlmaWVyKCkuYWRkKGNoYW5uZWxJZGVu
dGlmaWVyLCBjb250ZXh0SWRlbnRpZmllcik7Ci0gICAgfSk7CiB9CiAKIEJyb2FkY2FzdENoYW5u
ZWw6On5Ccm9hZGNhc3RDaGFubmVsKCkKQEAgLTg0LDYgKzEwNyw1OSBAQCBCcm9hZGNhc3RDaGFu
bmVsOjp+QnJvYWRjYXN0Q2hhbm5lbCgpCiAgICAgfQogfQogCitzdGF0aWMgdm9pZCBzaG91bGRE
aXNhYmxlT3JpZ2luUGFydGl0aW9uaW5nKERvY3VtZW50JiBkb2N1bWVudCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIWRvY3Vt
ZW50LnNldHRpbmdzKCkuYnJvYWRjYXN0Q2hhbm5lbE9yaWdpblBhcnRpdGlvbmluZ0VuYWJsZWQo
KSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOworCisgICAgaWYgKCFk
b2N1bWVudC5zZXR0aW5ncygpLnN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkKCkpCisgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1l
bnQucGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKGZhbHNlKTsKKworICAgIGF1dG8gc3ViRnJhbWVEb21haW4gPSBSZWdpc3RyYWJsZURvbWFp
bjo6dW5jaGVja2VkQ3JlYXRlRnJvbUhvc3QoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS5ob3N0
KCkpOworICAgIGF1dG8gdG9wRnJhbWVEb21haW4gPSBSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVj
a2VkQ3JlYXRlRnJvbUhvc3QoZG9jdW1lbnQudG9wRG9jdW1lbnQoKS5zZWN1cml0eU9yaWdpbigp
Lmhvc3QoKSk7CisgICAgaWYgKHN1YkZyYW1lRG9tYWluID09IHRvcEZyYW1lRG9tYWluKQorICAg
ICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisKKyAgICBwYWdlLT5jaHJvbWUo
KS5jbGllbnQoKS5oYXNTdG9yYWdlQWNjZXNzKFdURk1vdmUoc3ViRnJhbWVEb21haW4pLCBXVEZN
b3ZlKHRvcEZyYW1lRG9tYWluKSwgKmRvY3VtZW50LmZyYW1lKCksIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKK30KKwordm9pZCBCcm9hZGNhc3RDaGFubmVsOjpyZWdpc3RlckNoYW5uZWwo
KQoreworICAgIGVuc3VyZU9uTWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRo
aXMpLCBuYW1lID0gY3Jvc3NUaHJlYWRDb3B5KG1fbmFtZSksIGNvbnRleHRJZGVudGlmaWVyID0g
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5jb250ZXh0SWRlbnRpZmllcigpLCBjaGFubmVsSWRl
bnRpZmllciA9IG1faWRlbnRpZmllcl0oYXV0byYgZG9jdW1lbnQpIG11dGFibGUgeworICAgICAg
ICBjaGFubmVsVG9Db250ZXh0SWRlbnRpZmllcigpLmFkZChjaGFubmVsSWRlbnRpZmllciwgY29u
dGV4dElkZW50aWZpZXIpOworICAgICAgICBzaG91bGREaXNhYmxlT3JpZ2luUGFydGl0aW9uaW5n
KGRvY3VtZW50LCBbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGRvY3Vt
ZW50ID0gbWFrZVJlZihkb2N1bWVudCksIG5hbWUgPSBXVEZNb3ZlKG5hbWUpLCBjaGFubmVsSWRl
bnRpZmllcl0oYm9vbCBpc09yaWdpblBhcnRpdGlvbmluZ0Rpc2FibGVkKSBtdXRhYmxlIHsKKyAg
ICAgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgICAgICAgICBhdXRvKiBwYWdl
ID0gZG9jdW1lbnQtPnBhZ2UoKTsKKyAgICAgICAgICAgIGlmICghcGFnZSkKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgICAgIENsaWVudE9yaWdpbiBvcmlnaW4gPSB7IGlzT3Jp
Z2luUGFydGl0aW9uaW5nRGlzYWJsZWQgPyBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS5kYXRh
KCkgOiBkb2N1bWVudC0+dG9wT3JpZ2luKCkuZGF0YSgpLCBkb2N1bWVudC0+c2VjdXJpdHlPcmln
aW4oKS5kYXRhKCkgfTsKKyAgICAgICAgICAgIHBhZ2UtPmJyb2FkY2FzdENoYW5uZWxSZWdpc3Ry
eSgpLnJlZ2lzdGVyQ2hhbm5lbChvcmlnaW4sIG5hbWUsIGNoYW5uZWxJZGVudGlmaWVyKTsKKyAg
ICAgICAgICAgIHBvc3RUb0Jyb2FkY2FzdENoYW5uZWxDb250ZXh0VGhyZWFkKGNoYW5uZWxJZGVu
dGlmaWVyLCBbb3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbiksIHByb3RlY3RlZFRoaXMg
PSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpXShhdXRvJiBjaGFubmVsKSBtdXRhYmxlIHsKKyAgICAg
ICAgICAgICAgICBjaGFubmVsLmNoYW5uZWxXYXNSZWdpc3RlcmVkRm9yT3JpZ2luKFdURk1vdmUo
b3JpZ2luKSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK3Zv
aWQgQnJvYWRjYXN0Q2hhbm5lbDo6Y2hhbm5lbFdhc1JlZ2lzdGVyZWRGb3JPcmlnaW4oQ2xpZW50
T3JpZ2luJiYgb3JpZ2luKQoreworICAgIEFTU0VSVCghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
IHx8IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNDb250ZXh0VGhyZWFkKCkpOworCisgICAg
bV9vcmlnaW4gPSBXVEZNb3ZlKG9yaWdpbik7CisgICAgbV9pc1JlZ2lzdGVyZWQgPSB0cnVlOwor
CisgICAgZm9yIChhdXRvJiYgbWVzc2FnZSA6IHN0ZDo6ZXhjaGFuZ2UobV9tZXNzYWdlc1RvQmVQ
b3N0ZWRBZnRlclJlZ2lzdHJhdGlvbiwgeyB9KSkKKyAgICAgICAgcG9zdFNlcmlhbGl6ZWRNZXNz
YWdlKFdURk1vdmUobWVzc2FnZSkpOworCisgICAgaWYgKG1faXNDbG9zZWQpCisgICAgICAgIHVu
cmVnaXN0ZXJDaGFubmVsKCk7Cit9CisKIEV4Y2VwdGlvbk9yPHZvaWQ+IEJyb2FkY2FzdENoYW5u
ZWw6OnBvc3RNZXNzYWdlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgSlNDOjpK
U1ZhbHVlIG1lc3NhZ2UpCiB7CiAgICAgaWYgKG1faXNDbG9zZWQpCkBAIC05NSwxOCArMTcxLDI3
IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEJyb2FkY2FzdENoYW5uZWw6OnBvc3RNZXNzYWdlKEpTQzo6
SlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjCiAgICAgICAgIHJldHVybiBtZXNzYWdlRGF0YS5y
ZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgQVNTRVJUKHBvcnRzLmlzRW1wdHkoKSk7CiAKLSAgICBl
bnN1cmVPbk1haW5UaHJlYWQoW29yaWdpbiA9IGNyb3NzVGhyZWFkQ29weShtX29yaWdpbiksIG5h
bWUgPSBjcm9zc1RocmVhZENvcHkobV9uYW1lKSwgaWRlbnRpZmllciA9IG1faWRlbnRpZmllciwg
bWVzc2FnZURhdGEgPSBtZXNzYWdlRGF0YS5yZWxlYXNlUmV0dXJuVmFsdWUoKV0oYXV0byYgZG9j
dW1lbnQpIG11dGFibGUgeworICAgIHBvc3RTZXJpYWxpemVkTWVzc2FnZShtZXNzYWdlRGF0YS5y
ZWxlYXNlUmV0dXJuVmFsdWUoKSk7CisgICAgcmV0dXJuIHsgfTsKK30KKwordm9pZCBCcm9hZGNh
c3RDaGFubmVsOjpwb3N0U2VyaWFsaXplZE1lc3NhZ2UoUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4mJiBtZXNzYWdlKQoreworICAgIGlmICghbV9pc1JlZ2lzdGVyZWQpIHsKKyAgICAgICAgbV9t
ZXNzYWdlc1RvQmVQb3N0ZWRBZnRlclJlZ2lzdHJhdGlvbi5hcHBlbmQoV1RGTW92ZShtZXNzYWdl
KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBlbnN1cmVPbk1haW5UaHJlYWQoW29y
aWdpbiA9IGNyb3NzVGhyZWFkQ29weShtX29yaWdpbiksIG5hbWUgPSBjcm9zc1RocmVhZENvcHko
bV9uYW1lKSwgaWRlbnRpZmllciA9IG1faWRlbnRpZmllciwgbWVzc2FnZSA9IFdURk1vdmUobWVz
c2FnZSldKGF1dG8mIGRvY3VtZW50KSBtdXRhYmxlIHsKICAgICAgICAgYXV0byogcGFnZSA9IGRv
Y3VtZW50LnBhZ2UoKTsKICAgICAgICAgaWYgKCFwYWdlKQogICAgICAgICAgICAgcmV0dXJuOwog
Ci0gICAgICAgIGF1dG8gYmxvYkhhbmRsZXMgPSBtZXNzYWdlRGF0YS0+YmxvYkhhbmRsZXMoKTsK
LSAgICAgICAgcGFnZS0+YnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KCkucG9zdE1lc3NhZ2Uob3Jp
Z2luLCBuYW1lLCBpZGVudGlmaWVyLCBXVEZNb3ZlKG1lc3NhZ2VEYXRhKSwgW2Jsb2JIYW5kbGVz
ID0gV1RGTW92ZShibG9iSGFuZGxlcyldIHsKLSAgICAgICAgICAgIC8vIEtlZXBzIEJsb2IgZGF0
YSBpbnNpZGUgbWVzc2FnZURhdGEgYWxpdmUgdW50aWwgdGhlIG1lc3NhZ2UgaGFzIGJlZW4gZGVs
aXZlcmVkLgorICAgICAgICBhdXRvIGJsb2JIYW5kbGVzID0gbWVzc2FnZS0+YmxvYkhhbmRsZXMo
KTsKKyAgICAgICAgcGFnZS0+YnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KCkucG9zdE1lc3NhZ2Uo
b3JpZ2luLCBuYW1lLCBpZGVudGlmaWVyLCBXVEZNb3ZlKG1lc3NhZ2UpLCBbYmxvYkhhbmRsZXMg
PSBXVEZNb3ZlKGJsb2JIYW5kbGVzKV0geworICAgICAgICAgICAgLy8gS2VlcHMgQmxvYiBkYXRh
IGluc2lkZSBtZXNzYWdlIGFsaXZlIHVudGlsIHRoZSBtZXNzYWdlIGhhcyBiZWVuIGRlbGl2ZXJl
ZC4KICAgICAgICAgfSk7CiAgICAgfSk7Ci0KLSAgICByZXR1cm4geyB9OwogfQogCiB2b2lkIEJy
b2FkY2FzdENoYW5uZWw6OmNsb3NlKCkKQEAgLTExNSw2ICsyMDAsMTMgQEAgdm9pZCBCcm9hZGNh
c3RDaGFubmVsOjpjbG9zZSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1faXNDbG9zZWQgPSB0
cnVlOworCisgICAgaWYgKG1faXNSZWdpc3RlcmVkKQorICAgICAgICB1bnJlZ2lzdGVyQ2hhbm5l
bCgpOworfQorCit2b2lkIEJyb2FkY2FzdENoYW5uZWw6OnVucmVnaXN0ZXJDaGFubmVsKCkKK3sK
ICAgICBlbnN1cmVPbk1haW5UaHJlYWQoW29yaWdpbiA9IGNyb3NzVGhyZWFkQ29weShtX29yaWdp
biksIG5hbWUgPSBjcm9zc1RocmVhZENvcHkobV9uYW1lKSwgY2hhbm5lbElkZW50aWZpZXIgPSBt
X2lkZW50aWZpZXJdKGF1dG8mIGRvY3VtZW50KSB7CiAgICAgICAgIGlmIChhdXRvKiBwYWdlID0g
ZG9jdW1lbnQucGFnZSgpKQogICAgICAgICAgICAgcGFnZS0+YnJvYWRjYXN0Q2hhbm5lbFJlZ2lz
dHJ5KCkudW5yZWdpc3RlckNoYW5uZWwob3JpZ2luLCBuYW1lLCBjaGFubmVsSWRlbnRpZmllcik7
CkBAIC0xMjUsMjAgKzIxNyw5IEBAIHZvaWQgQnJvYWRjYXN0Q2hhbm5lbDo6Y2xvc2UoKQogdm9p
ZCBCcm9hZGNhc3RDaGFubmVsOjpkaXNwYXRjaE1lc3NhZ2VUbyhCcm9hZGNhc3RDaGFubmVsSWRl
bnRpZmllciBjaGFubmVsSWRlbnRpZmllciwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBt
ZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBhdXRvIGNvbnRleHRJZGVudGlmaWVy
ID0gY2hhbm5lbFRvQ29udGV4dElkZW50aWZpZXIoKS5nZXQoY2hhbm5lbElkZW50aWZpZXIpOwot
ICAgIGlmICghY29udGV4dElkZW50aWZpZXIpCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFu
ZGxlcigpOwotCiAgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0
b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6cG9zdFRhc2tUbyhjb250ZXh0SWRlbnRpZmllciwgW2NoYW5uZWxJZGVudGlm
aWVyLCBtZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKSwgY2FsbGJhY2tBZ2dyZWdhdG9yID0gV1RG
TW92ZShjYWxsYmFja0FnZ3JlZ2F0b3IpXShhdXRvJikgbXV0YWJsZSB7Ci0gICAgICAgIFJlZlB0
cjxCcm9hZGNhc3RDaGFubmVsPiBjaGFubmVsOwotICAgICAgICB7Ci0gICAgICAgICAgICBMb2Nr
ZXIgbG9ja2VyIHsgYWxsQnJvYWRjYXN0Q2hhbm5lbHNMb2NrIH07Ci0gICAgICAgICAgICBjaGFu
bmVsID0gYWxsQnJvYWRjYXN0Q2hhbm5lbHMoKS5nZXQoY2hhbm5lbElkZW50aWZpZXIpOwotICAg
ICAgICB9Ci0gICAgICAgIGlmIChjaGFubmVsKQotICAgICAgICAgICAgY2hhbm5lbC0+ZGlzcGF0
Y2hNZXNzYWdlKFdURk1vdmUobWVzc2FnZSkpOwotCisgICAgcG9zdFRvQnJvYWRjYXN0Q2hhbm5l
bENvbnRleHRUaHJlYWQoY2hhbm5lbElkZW50aWZpZXIsIFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBX
VEZNb3ZlKGNhbGxiYWNrQWdncmVnYXRvciksIG1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpXShh
dXRvJiBjaGFubmVsKSBtdXRhYmxlIHsKKyAgICAgICAgY2hhbm5lbC5kaXNwYXRjaE1lc3NhZ2Uo
V1RGTW92ZShtZXNzYWdlKSk7CiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrQWdn
cmVnYXRvciA9IFdURk1vdmUoY2FsbGJhY2tBZ2dyZWdhdG9yKV0geyB9KTsKICAgICB9KTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5oCmluZGV4IDZkYTY4M2I5Y2MxMmZlN2E2
MjQzYzA1ZGM1ZWE5YzVkYTRhNzZhYWUuLjg1M2RjMWVlMTA3NjZmMzdiNTJhODZlODY0NzFmMjE2
YTcxMGU3Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVs
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuaApAQCAtMzEsNyAr
MzEsNyBAQAogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3Iu
aCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CisjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBKU0Mg
ewogY2xhc3MgSlNHbG9iYWxPYmplY3Q7CkBAIC00MiwxOSArNDIsMTQgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiAKLWNsYXNzIEJyb2FkY2Fz
dENoYW5uZWwgOiBwdWJsaWMgUmVmQ291bnRlZDxCcm9hZGNhc3RDaGFubmVsPiwgcHVibGljIEV2
ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgeworY2xhc3Mg
QnJvYWRjYXN0Q2hhbm5lbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxCcm9hZGNhc3RD
aGFubmVsPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBBY3RpdmVE
T01PYmplY3QgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQnJvYWRjYXN0Q2hhbm5lbCk7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxCcm9hZGNhc3RDaGFubmVsPiBjcmVhdGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lKQotICAgIHsKLSAg
ICAgICAgYXV0byBjaGFubmVsID0gYWRvcHRSZWYoKm5ldyBCcm9hZGNhc3RDaGFubmVsKGNvbnRl
eHQsIG5hbWUpKTsKLSAgICAgICAgY2hhbm5lbC0+c3VzcGVuZElmTmVlZGVkKCk7Ci0gICAgICAg
IHJldHVybiBjaGFubmVsOwotICAgIH0KKyAgICBzdGF0aWMgUmVmPEJyb2FkY2FzdENoYW5uZWw+
IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiBuYW1lKTsKICAg
ICB+QnJvYWRjYXN0Q2hhbm5lbCgpOwogCi0gICAgdXNpbmcgUmVmQ291bnRlZDxCcm9hZGNhc3RD
aGFubmVsPjo6cmVmOwotICAgIHVzaW5nIFJlZkNvdW50ZWQ8QnJvYWRjYXN0Q2hhbm5lbD46OmRl
cmVmOworICAgIHVzaW5nIFRocmVhZFNhZmVSZWZDb3VudGVkPEJyb2FkY2FzdENoYW5uZWw+Ojpy
ZWY7CisgICAgdXNpbmcgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QnJvYWRjYXN0Q2hhbm5lbD46OmRl
cmVmOwogCiAgICAgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0
IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQogICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbmFtZTsgfQpAQCAtNjcsMTQgKzYyLDE5IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgQnJvYWRjYXN0Q2hhbm5lbChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3Ry
aW5nJiBuYW1lKTsKIAorICAgIHZvaWQgcmVnaXN0ZXJDaGFubmVsKCk7CisgICAgdm9pZCBjaGFu
bmVsV2FzUmVnaXN0ZXJlZEZvck9yaWdpbihDbGllbnRPcmlnaW4mJik7CisgICAgdm9pZCB1bnJl
Z2lzdGVyQ2hhbm5lbCgpOworCisgICAgdm9pZCBwb3N0U2VyaWFsaXplZE1lc3NhZ2UoUmVmPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJik7CiAgICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2UoUmVmPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJik7CiAgICAgdm9pZCBlbnN1cmVPbk1haW5UaHJlYWQoRnVu
Y3Rpb248dm9pZChEb2N1bWVudCYpPiYmKTsKIAogICAgIC8vIEV2ZW50VGFyZ2V0CiAgICAgRXZl
bnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBCcm9hZGNhc3RDaGFubmVsRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CiAgICAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9Ci0g
ICAgdm9pZCByZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgUmVmQ291bnRlZDxCcm9hZGNhc3RDaGFu
bmVsPjo6cmVmKCk7IH0KLSAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IFJlZkNv
dW50ZWQ8QnJvYWRjYXN0Q2hhbm5lbD46OmRlcmVmKCk7IH0KKyAgICB2b2lkIHJlZkV2ZW50VGFy
Z2V0KCkgZmluYWwgeyBUaHJlYWRTYWZlUmVmQ291bnRlZDxCcm9hZGNhc3RDaGFubmVsPjo6cmVm
KCk7IH0KKyAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IFRocmVhZFNhZmVSZWZD
b3VudGVkPEJyb2FkY2FzdENoYW5uZWw+OjpkZXJlZigpOyB9CiAgICAgdm9pZCBldmVudExpc3Rl
bmVyc0RpZENoYW5nZSgpIGZpbmFsOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CkBAIC04Myw4
ICs4MywxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RvcCgpIGZpbmFsIHsgY2xvc2UoKTsgfQog
CiAgICAgY29uc3QgU3RyaW5nIG1fbmFtZTsKLSAgICBjb25zdCBDbGllbnRPcmlnaW4gbV9vcmln
aW47CisgICAgQ2xpZW50T3JpZ2luIG1fb3JpZ2luOworICAgIFZlY3RvcjxSZWY8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPj4gbV9tZXNzYWdlc1RvQmVQb3N0ZWRBZnRlclJlZ2lzdHJhdGlvbjsKICAg
ICBjb25zdCBCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgYm9v
bCBtX2lzUmVnaXN0ZXJlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzQ2xvc2VkIHsgZmFsc2Ug
fTsKICAgICBib29sIG1faGFzUmVsZXZhbnRFdmVudExpc3RlbmVyIHsgZmFsc2UgfTsKIH07CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggYWM2ODUxYmU2YjU2YTI4NjViMjQ3ZDNlNjNkZjA3MTZkYmJlM2RmZS4uMDA1YTJhYTkw
ZDI1M2I4YTM1MTJjZGQ3YzAzODEzM2YzYmQ0ZmQwYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisy
MDIxLTA5LTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVs
YXggQnJvYWRjYXN0Q2hhbm5lbCBvcmlnaW4gcGFydGl0aW9uaW5nIGlmIGlmcmFtZSBoYXMgc3Rv
cmFnZSBhY2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMDE2NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvbWVz
c2FnaW5nL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLXdpdGgtc3RvcmFnZS1hY2Nlc3Mt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21lc3NhZ2luZy9icm9h
ZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNhc3RjaGFu
bmVsLXBhcnRpdGlvbmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL21lc3NhZ2luZy9yZXNvdXJjZXMvYnJvYWRjYXN0Y2hhbm5l
bC1wYXJ0aXRpb25pbmctd2l0aC1zdG9yYWdlLWFjY2Vzcy1wb3B1cC5odG1sOiBBZGRlZC4KKwog
MjAyMS0wOS0wNyAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbY3NzLWZsZXhib3hdIEFkZCBzdXBwb3J0IGZvciBzZWxmLXN0YXJ0ICYgc2VsZi1l
bmQgY3NzLWFsaWduLTMgcG9zaXRpb25hbCBhbGlnbm1lbnQgcHJvcGVydGllcwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0
aXRpb25pbmctd2l0aC1zdG9yYWdlLWFjY2Vzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lc3NhZ2luZy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy13aXRoLXN0
b3JhZ2UtYWNjZXNzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NjJhOGFjOTZiYzdiYTVjZjIz
MDIyMjFmMWIzMzc2Y2UxNGY2YTRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZXNzYWdpbmcvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctd2l0aC1zdG9y
YWdlLWFjY2Vzcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdHMgdGhhdCBCcm9h
ZGNhc3RDaGFubmVsJ3Mgb3JpZ2luIHBhcnRpdGlvbmluZyBjYW4gYmUgcmVsYXhlZCB2aWEgcmVx
dWVzdFN0b3JhZ2VBY2Nlc3MoKQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBSZWNlaXZlZCBtZXNzYWdlIGZyb20gc2FtZS1vcmlnaW4gaWZyYW1lIHdpdGggc3RvcmFnZSBh
Y2Nlc3MgdW5kZXIgY3Jvc3Mtb3JpZ2luIHBvcHVwCitQQVNTIGdvdE1lc3NhZ2VGcm9tU2FtZU9y
aWdpbklmcmFtZVVuZGVyQ3Jvc3NPcmlnaW5Qb3B1cCBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLXdp
dGgtc3RvcmFnZS1hY2Nlc3MuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5n
L2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLXdpdGgtc3RvcmFnZS1hY2Nlc3MuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lMmFjMzdkNDJjZTU1YTUyZTM1NzE1ZDE0ZTg5OTQ5ZTA4MmRkNjljCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcvYnJvYWRjYXN0
Y2hhbm5lbC1wYXJ0aXRpb25pbmctd2l0aC1zdG9yYWdlLWFjY2Vzcy5odG1sCkBAIC0wLDAgKzEs
MzAgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgQnJvYWRjYXN0
Q2hhbm5lbE9yaWdpblBhcnRpdGlvbmluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8Ym9k
eT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgQnJvYWRjYXN0Q2hhbm5lbCdzIG9y
aWdpbiBwYXJ0aXRpb25pbmcgY2FuIGJlIHJlbGF4ZWQgdmlhIHJlcXVlc3RTdG9yYWdlQWNjZXNz
KCkiKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitsZXQgYmMgPSBuZXcgQnJvYWRjYXN0Q2hh
bm5lbCgiYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctd2l0aC1zdG9yYWdlLWFjY2VzcyIp
OworCitsZXQgZ290TWVzc2FnZUZyb21TYW1lT3JpZ2luSWZyYW1lVW5kZXJDcm9zc09yaWdpblBv
cHVwID0gZmFsc2U7CitiYy5vbm1lc3NhZ2UgPSAobWVzc2FnZSkgPT4geworICAgIGlmIChtZXNz
YWdlLmRhdGEgPT0gInNhbWUtb3JpZ2luLWlmcmFtZS11bmRlci1jcm9zcy1vcmlnaW4tcG9wdXAt
d2l0aC1zdG9yYWdlLWFjY2VzcyIpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgiUmVjZWl2ZWQgbWVz
c2FnZSBmcm9tIHNhbWUtb3JpZ2luIGlmcmFtZSB3aXRoIHN0b3JhZ2UgYWNjZXNzIHVuZGVyIGNy
b3NzLW9yaWdpbiBwb3B1cCIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJnb3RNZXNzYWdlRnJv
bVNhbWVPcmlnaW5JZnJhbWVVbmRlckNyb3NzT3JpZ2luUG9wdXAiKTsKKyAgICAgICAgZ290TWVz
c2FnZUZyb21TYW1lT3JpZ2luSWZyYW1lVW5kZXJDcm9zc09yaWdpblBvcHVwID0gdHJ1ZTsKKyAg
ICB9IGVsc2UgeworICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCB1bmV4cGVjdGVkIG1lc3Nh
Z2U6ICIgKyBtZXNzYWdlLmRhdGEpOworICAgIH0KKworICAgIGlmIChnb3RNZXNzYWdlRnJvbVNh
bWVPcmlnaW5JZnJhbWVVbmRlckNyb3NzT3JpZ2luUG9wdXApCisgICAgICAgIHNldFRpbWVvdXQo
ZmluaXNoSlNUZXN0LCAxMDAwKTsKK307CisKK29ubG9hZCA9ICgpID0+IHsKKyAgICBvcGVuKCJo
dHRwOi8vbG9jYWxob3N0OjgwMDAvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNhc3RjaGFubmVs
LXBhcnRpdGlvbmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLXBvcHVwLmh0bWwiKTsKK307Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy13aXRo
LXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNz
YWdpbmcvcmVzb3VyY2VzL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLXdpdGgtc3RvcmFn
ZS1hY2Nlc3MtaWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGQzN2RiZjdlZDRkNTk5YjcyOTg3ZTk5
ZjkzMDAwYThkYjIxZWU2OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy13aXRo
LXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQ+CitwYXJ0aXRpb25lZENoYW5uZWwgPSBuZXcg
QnJvYWRjYXN0Q2hhbm5lbCgiYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctd2l0aC1zdG9y
YWdlLWFjY2VzcyIpOworcGFydGl0aW9uZWRDaGFubmVsLnBvc3RNZXNzYWdlKCJzYW1lLW9yaWdp
bi1pZnJhbWUtdW5kZXItY3Jvc3Mtb3JpZ2luLXBvcHVwLXdpdGhvdXQtc3RvcmFnZS1hY2Nlc3Mt
MSIpOworCitpbnRlcm5hbHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsKKyAgICBkb2N1bWVudC5y
ZXF1ZXN0U3RvcmFnZUFjY2VzcygpLnRoZW4oKCkgPT4geworICAgICAgICB1bnBhcnRpdGlvbmVk
Q2hhbm5lbCA9IG5ldyBCcm9hZGNhc3RDaGFubmVsKCJicm9hZGNhc3RjaGFubmVsLXBhcnRpdGlv
bmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzIik7CisgICAgICAgIHVucGFydGl0aW9uZWRDaGFubmVs
LnBvc3RNZXNzYWdlKCJzYW1lLW9yaWdpbi1pZnJhbWUtdW5kZXItY3Jvc3Mtb3JpZ2luLXBvcHVw
LXdpdGgtc3RvcmFnZS1hY2Nlc3MiKTsKKworICAgICAgICBwYXJ0aXRpb25lZENoYW5uZWwucG9z
dE1lc3NhZ2UoInNhbWUtb3JpZ2luLWlmcmFtZS11bmRlci1jcm9zcy1vcmlnaW4tcG9wdXAtd2l0
aG91dC1zdG9yYWdlLWFjY2Vzcy0yIik7CisgICAgfSk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcv
cmVzb3VyY2VzL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLXdpdGgtc3RvcmFnZS1hY2Nl
c3MtcG9wdXAuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291cmNl
cy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLXBvcHVw
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjg2YTFlOWVlNjU5ZGQ5NTYzM2I2YjNjMWUwM2JhNGI4NDhlMmJl
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL3Jl
c291cmNlcy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy13aXRoLXN0b3JhZ2UtYWNjZXNz
LXBvcHVwLmh0bWwKQEAgLTAsMCArMSw2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJv
ZHk+Cis8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL21lc3NhZ2luZy9yZXNvdXJj
ZXMvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctd2l0aC1zdG9yYWdlLWFjY2Vzcy1pZnJh
bWUuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437897</attachid>
            <date>2021-09-10 12:16:15 -0700</date>
            <delta_ts>2021-09-11 14:19:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230164-20210910121615.patch</filename>
            <type>text/plain</type>
            <size>18881</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWRjNzNjZTMwY2UwYWQ1
ZjcyMDYwNWY4MjAyMjQ5N2M4N2QxMTVhNS4uMzhhN2MzN2E1MzFiYzU3MWI0MDdiMGFjYTFmNDU3
YjViZDFjYjY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTA5LTEwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVsYXggQnJvYWRjYXN0Q2hh
bm5lbCBvcmlnaW4gcGFydGl0aW9uaW5nIGlmIGlmcmFtZSBoYXMgc3RvcmFnZSBhY2Nlc3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDE2NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHIyODIxMDUs
IHdlIHN0YXJ0ZWQgcGFydGl0aW9uaW5nIG9yaWdpbnMgZm9yIEJyb2FkY2FzdENoYW5uZWwgdXNp
bmcgdG9wT3JpZ2luL2ZyYW1lT3JpZ2luLgorICAgICAgICBUaGlzIHByZXZlbnRzIGEgdG9wRnJh
bWUgb2Ygb3JpZ2luIEEgdG8gbWVzc2FnZSBhIHN1YmZyYW1lIG9mIG9yaWdpbiBBIGlmIHRoYXQg
c3ViZnJhbWUgaWYgdW5kZXIKKyAgICAgICAgYW5vdGhlciBkb21haW4gQi4gSG93ZXZlciwgdGhl
IGBkb2N1bWVudC5yZXF1ZXN0U3RvcmFnZUFjY2VzcygpYCBBUEkgZXhpc3RzIHRvIHJlbGF4IHN0
b3JhZ2UKKyAgICAgICAgcGFydGl0aW9uaW5nIGFuZCBHZWNrbyByZWxpZXMgb24gdGhpcyB0byBy
ZWxheCBCcm9hZGNhc3RDaGFubmVsIG9yaWdpbiBwYXJ0aXRpb25pbmcgYXMgd2VsbC4KKyAgICAg
ICAgVGhpcyBwYXRjaCBhbGlnbnMgV2ViS2l0J3MgYmVoYXZpb3Igd2l0aCBHZWNrby4KKworICAg
ICAgICBUZXN0OiBodHRwL3Rlc3RzL21lc3NhZ2luZy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlv
bmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLmh0bWwKKworICAgICAgICAqIGRvbS9Ccm9hZGNhc3RD
aGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBvc3RUb0Jyb2FkY2FzdENoYW5uZWxDb250
ZXh0VGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWw6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjptX2lkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6c2hv
dWxkRGlzYWJsZU9yaWdpblBhcnRpdGlvbmluZyk6CisgICAgICAgIChXZWJDb3JlOjpCcm9hZGNh
c3RDaGFubmVsOjpyZWdpc3RlckNoYW5uZWwpOgorICAgICAgICAoV2ViQ29yZTo6QnJvYWRjYXN0
Q2hhbm5lbDo6Y2hhbm5lbFdhc1JlZ2lzdGVyZWRGb3JPcmlnaW4pOgorICAgICAgICAoV2ViQ29y
ZTo6QnJvYWRjYXN0Q2hhbm5lbDo6cG9zdE1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QnJv
YWRjYXN0Q2hhbm5lbDo6cG9zdFNlcmlhbGl6ZWRNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6
OkJyb2FkY2FzdENoYW5uZWw6OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OkJyb2FkY2FzdENo
YW5uZWw6OnVucmVnaXN0ZXJDaGFubmVsKToKKyAgICAgICAgKFdlYkNvcmU6OkJyb2FkY2FzdENo
YW5uZWw6OmRpc3BhdGNoTWVzc2FnZVRvKToKKyAgICAgICAgKiBkb20vQnJvYWRjYXN0Q2hhbm5l
bC5oOgorCiAyMDIxLTA5LTA3ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtjc3MtZmxleGJveF0gQWRkIHN1cHBvcnQgZm9yIHNlbGYtc3RhcnQg
JiBzZWxmLWVuZCBjc3MtYWxpZ24tMyBwb3NpdGlvbmFsIGFsaWdubWVudCBwcm9wZXJ0aWVzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHAKaW5kZXggMWM2MjU2M2MxMTFlMjg2
NmUyMjg4ZTZlZGE2NDhiYzU5YWFmZmQzMC4uZGEwZmU2NDVjMmMyYTA1Yjc3NWExODdkNzY0ZTli
ZTUwZjE0MTVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5u
ZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmNwcApAQCAt
MjcsNiArMjcsOSBAQAogI2luY2x1ZGUgIkJyb2FkY2FzdENoYW5uZWwuaCIKIAogI2luY2x1ZGUg
IkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oIgorI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1
ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXZl
bnROYW1lcy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIK
QEAgLTU3LDYgKzYwLDMyIEBAIHN0YXRpYyBIYXNoTWFwPEJyb2FkY2FzdENoYW5uZWxJZGVudGlm
aWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mIGNoCiAgICAgcmV0dXJuIG1h
cDsKIH0KIAorc3RhdGljIHZvaWQgcG9zdFRvQnJvYWRjYXN0Q2hhbm5lbENvbnRleHRUaHJlYWQo
QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgY2hhbm5lbElkZW50aWZpZXIsIEZ1bmN0aW9uPHZv
aWQoQnJvYWRjYXN0Q2hhbm5lbCYpPiYmIGZ1bmN0aW9uKQoreworICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CisgICAgYXV0byBjb250ZXh0SWRlbnRpZmllciA9IGNoYW5uZWxUb0NvbnRleHRJ
ZGVudGlmaWVyKCkuZ2V0KGNoYW5uZWxJZGVudGlmaWVyKTsKKyAgICBpZiAoIWNvbnRleHRJZGVu
dGlmaWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpw
b3N0VGFza1RvKGNvbnRleHRJZGVudGlmaWVyLCBbY2hhbm5lbElkZW50aWZpZXIsIGZ1bmN0aW9u
ID0gV1RGTW92ZShmdW5jdGlvbildKGF1dG8mKSBtdXRhYmxlIHsKKyAgICAgICAgUmVmUHRyPEJy
b2FkY2FzdENoYW5uZWw+IGNoYW5uZWw7CisgICAgICAgIHsKKyAgICAgICAgICAgIExvY2tlciBs
b2NrZXIgeyBhbGxCcm9hZGNhc3RDaGFubmVsc0xvY2sgfTsKKyAgICAgICAgICAgIGNoYW5uZWwg
PSBhbGxCcm9hZGNhc3RDaGFubmVscygpLmdldChjaGFubmVsSWRlbnRpZmllcik7CisgICAgICAg
IH0KKyAgICAgICAgaWYgKGNoYW5uZWwpCisgICAgICAgICAgICBmdW5jdGlvbigqY2hhbm5lbCk7
CisgICAgfSk7Cit9CisKK1JlZjxCcm9hZGNhc3RDaGFubmVsPiBCcm9hZGNhc3RDaGFubmVsOjpj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1l
KQoreworICAgIGF1dG8gY2hhbm5lbCA9IGFkb3B0UmVmKCpuZXcgQnJvYWRjYXN0Q2hhbm5lbChj
b250ZXh0LCBuYW1lKSk7CisgICAgY2hhbm5lbC0+cmVnaXN0ZXJDaGFubmVsKCk7CisgICAgY2hh
bm5lbC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIGNoYW5uZWw7Cit9CisKIEJyb2Fk
Y2FzdENoYW5uZWw6OkJyb2FkY2FzdENoYW5uZWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0
KQogICAgICwgbV9uYW1lKG5hbWUpCkBAIC02NywxMiArOTYsNiBAQCBCcm9hZGNhc3RDaGFubmVs
OjpCcm9hZGNhc3RDaGFubmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0
IFN0cmluZwogICAgICAgICBMb2NrZXIgbG9ja2VyIHsgYWxsQnJvYWRjYXN0Q2hhbm5lbHNMb2Nr
IH07CiAgICAgICAgIGFsbEJyb2FkY2FzdENoYW5uZWxzKCkuYWRkKG1faWRlbnRpZmllciwgdGhp
cyk7CiAgICAgfQotCi0gICAgZW5zdXJlT25NYWluVGhyZWFkKFtvcmlnaW4gPSBjcm9zc1RocmVh
ZENvcHkobV9vcmlnaW4pLCBuYW1lID0gY3Jvc3NUaHJlYWRDb3B5KG1fbmFtZSksIGNvbnRleHRJ
ZGVudGlmaWVyID0gY29udGV4dC5jb250ZXh0SWRlbnRpZmllcigpLCBjaGFubmVsSWRlbnRpZmll
ciA9IG1faWRlbnRpZmllcl0oYXV0byYgZG9jdW1lbnQpIHsKLSAgICAgICAgaWYgKGF1dG8qIHBh
Z2UgPSBkb2N1bWVudC5wYWdlKCkpCi0gICAgICAgICAgICBwYWdlLT5icm9hZGNhc3RDaGFubmVs
UmVnaXN0cnkoKS5yZWdpc3RlckNoYW5uZWwob3JpZ2luLCBuYW1lLCBjaGFubmVsSWRlbnRpZmll
cik7Ci0gICAgICAgIGNoYW5uZWxUb0NvbnRleHRJZGVudGlmaWVyKCkuYWRkKGNoYW5uZWxJZGVu
dGlmaWVyLCBjb250ZXh0SWRlbnRpZmllcik7Ci0gICAgfSk7CiB9CiAKIEJyb2FkY2FzdENoYW5u
ZWw6On5Ccm9hZGNhc3RDaGFubmVsKCkKQEAgLTg0LDYgKzEwNyw2MCBAQCBCcm9hZGNhc3RDaGFu
bmVsOjp+QnJvYWRjYXN0Q2hhbm5lbCgpCiAgICAgfQogfQogCitzdGF0aWMgdm9pZCBzaG91bGRE
aXNhYmxlT3JpZ2luUGFydGl0aW9uaW5nKERvY3VtZW50JiBkb2N1bWVudCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIWRvY3Vt
ZW50LnNldHRpbmdzKCkuYnJvYWRjYXN0Q2hhbm5lbE9yaWdpblBhcnRpdGlvbmluZ0VuYWJsZWQo
KSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOworCisgICAgaWYgKCFk
b2N1bWVudC5zZXR0aW5ncygpLnN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkKCkpCisgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1l
bnQucGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKGZhbHNlKTsKKworICAgIGF1dG8gc3ViRnJhbWVEb21haW4gPSBSZWdpc3RyYWJsZURvbWFp
bjo6dW5jaGVja2VkQ3JlYXRlRnJvbUhvc3QoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS5ob3N0
KCkpOworICAgIGF1dG8gdG9wRnJhbWVEb21haW4gPSBSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVj
a2VkQ3JlYXRlRnJvbUhvc3QoZG9jdW1lbnQudG9wRG9jdW1lbnQoKS5zZWN1cml0eU9yaWdpbigp
Lmhvc3QoKSk7CisgICAgaWYgKHN1YkZyYW1lRG9tYWluID09IHRvcEZyYW1lRG9tYWluKQorICAg
ICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisKKyAgICBwYWdlLT5jaHJvbWUo
KS5jbGllbnQoKS5oYXNTdG9yYWdlQWNjZXNzKFdURk1vdmUoc3ViRnJhbWVEb21haW4pLCBXVEZN
b3ZlKHRvcEZyYW1lRG9tYWluKSwgKmRvY3VtZW50LmZyYW1lKCksIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKK30KKwordm9pZCBCcm9hZGNhc3RDaGFubmVsOjpyZWdpc3RlckNoYW5uZWwo
KQoreworICAgIGVuc3VyZU9uTWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRo
aXMpLCBuYW1lID0gY3Jvc3NUaHJlYWRDb3B5KG1fbmFtZSksIGNvbnRleHRJZGVudGlmaWVyID0g
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5jb250ZXh0SWRlbnRpZmllcigpLCBjaGFubmVsSWRl
bnRpZmllciA9IG1faWRlbnRpZmllcl0oYXV0byYgZG9jdW1lbnQpIG11dGFibGUgeworICAgICAg
ICBjaGFubmVsVG9Db250ZXh0SWRlbnRpZmllcigpLmFkZChjaGFubmVsSWRlbnRpZmllciwgY29u
dGV4dElkZW50aWZpZXIpOworICAgICAgICBzaG91bGREaXNhYmxlT3JpZ2luUGFydGl0aW9uaW5n
KGRvY3VtZW50LCBbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGRvY3Vt
ZW50ID0gbWFrZVJlZihkb2N1bWVudCksIG5hbWUgPSBXVEZNb3ZlKG5hbWUpLCBjaGFubmVsSWRl
bnRpZmllcl0oYm9vbCBpc09yaWdpblBhcnRpdGlvbmluZ0Rpc2FibGVkKSBtdXRhYmxlIHsKKyAg
ICAgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgICAgICAgICBhdXRvKiBwYWdl
ID0gZG9jdW1lbnQtPnBhZ2UoKTsKKyAgICAgICAgICAgIGlmICghcGFnZSkKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgICAgIENsaWVudE9yaWdpbiBvcmlnaW4gPSB7IGlzT3Jp
Z2luUGFydGl0aW9uaW5nRGlzYWJsZWQgPyBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS5kYXRh
KCkgOiBkb2N1bWVudC0+dG9wT3JpZ2luKCkuZGF0YSgpLCBkb2N1bWVudC0+c2VjdXJpdHlPcmln
aW4oKS5kYXRhKCkgfTsKKyAgICAgICAgICAgIHBhZ2UtPmJyb2FkY2FzdENoYW5uZWxSZWdpc3Ry
eSgpLnJlZ2lzdGVyQ2hhbm5lbChvcmlnaW4sIG5hbWUsIGNoYW5uZWxJZGVudGlmaWVyKTsKKyAg
ICAgICAgICAgIHBvc3RUb0Jyb2FkY2FzdENoYW5uZWxDb250ZXh0VGhyZWFkKGNoYW5uZWxJZGVu
dGlmaWVyLCBbb3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbiksIHByb3RlY3RlZFRoaXMg
PSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpXShhdXRvJiBjaGFubmVsKSBtdXRhYmxlIHsKKyAgICAg
ICAgICAgICAgICBjaGFubmVsLmNoYW5uZWxXYXNSZWdpc3RlcmVkRm9yT3JpZ2luKFdURk1vdmUo
b3JpZ2luKSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK3Zv
aWQgQnJvYWRjYXN0Q2hhbm5lbDo6Y2hhbm5lbFdhc1JlZ2lzdGVyZWRGb3JPcmlnaW4oQ2xpZW50
T3JpZ2luJiYgb3JpZ2luKQoreworICAgIEFTU0VSVCghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
IHx8IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNDb250ZXh0VGhyZWFkKCkpOworICAgIEFT
U0VSVCghbV9pc1JlZ2lzdGVyZWQpOworCisgICAgbV9vcmlnaW4gPSBXVEZNb3ZlKG9yaWdpbik7
CisgICAgbV9pc1JlZ2lzdGVyZWQgPSB0cnVlOworCisgICAgZm9yIChhdXRvJiYgbWVzc2FnZSA6
IHN0ZDo6ZXhjaGFuZ2UobV9tZXNzYWdlc1RvQmVQb3N0ZWRBZnRlclJlZ2lzdHJhdGlvbiwgeyB9
KSkKKyAgICAgICAgcG9zdFNlcmlhbGl6ZWRNZXNzYWdlKFdURk1vdmUobWVzc2FnZSkpOworCisg
ICAgaWYgKG1faXNDbG9zZWQpCisgICAgICAgIHVucmVnaXN0ZXJDaGFubmVsKCk7Cit9CisKIEV4
Y2VwdGlvbk9yPHZvaWQ+IEJyb2FkY2FzdENoYW5uZWw6OnBvc3RNZXNzYWdlKEpTQzo6SlNHbG9i
YWxPYmplY3QmIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIG1lc3NhZ2UpCiB7CiAgICAgaWYg
KG1faXNDbG9zZWQpCkBAIC05NSwxOCArMTcyLDI3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEJyb2Fk
Y2FzdENoYW5uZWw6OnBvc3RNZXNzYWdlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVj
CiAgICAgICAgIHJldHVybiBtZXNzYWdlRGF0YS5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgQVNT
RVJUKHBvcnRzLmlzRW1wdHkoKSk7CiAKLSAgICBlbnN1cmVPbk1haW5UaHJlYWQoW29yaWdpbiA9
IGNyb3NzVGhyZWFkQ29weShtX29yaWdpbiksIG5hbWUgPSBjcm9zc1RocmVhZENvcHkobV9uYW1l
KSwgaWRlbnRpZmllciA9IG1faWRlbnRpZmllciwgbWVzc2FnZURhdGEgPSBtZXNzYWdlRGF0YS5y
ZWxlYXNlUmV0dXJuVmFsdWUoKV0oYXV0byYgZG9jdW1lbnQpIG11dGFibGUgeworICAgIGlmICht
X2lzUmVnaXN0ZXJlZCkKKyAgICAgICAgcG9zdFNlcmlhbGl6ZWRNZXNzYWdlKG1lc3NhZ2VEYXRh
LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKKyAgICBlbHNlCisgICAgICAgIG1fbWVzc2FnZXNUb0Jl
UG9zdGVkQWZ0ZXJSZWdpc3RyYXRpb24uYXBwZW5kKG1lc3NhZ2VEYXRhLnJlbGVhc2VSZXR1cm5W
YWx1ZSgpKTsKKworICAgIHJldHVybiB7IH07Cit9CisKK3ZvaWQgQnJvYWRjYXN0Q2hhbm5lbDo6
cG9zdFNlcmlhbGl6ZWRNZXNzYWdlKFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2Fn
ZSkKK3sKKyAgICBBU1NFUlQobV9pc1JlZ2lzdGVyZWQpOworICAgIGVuc3VyZU9uTWFpblRocmVh
ZChbb3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KG1fb3JpZ2luKSwgbmFtZSA9IGNyb3NzVGhyZWFk
Q29weShtX25hbWUpLCBpZGVudGlmaWVyID0gbV9pZGVudGlmaWVyLCBtZXNzYWdlID0gV1RGTW92
ZShtZXNzYWdlKV0oYXV0byYgZG9jdW1lbnQpIG11dGFibGUgewogICAgICAgICBhdXRvKiBwYWdl
ID0gZG9jdW1lbnQucGFnZSgpOwogICAgICAgICBpZiAoIXBhZ2UpCiAgICAgICAgICAgICByZXR1
cm47CiAKLSAgICAgICAgYXV0byBibG9iSGFuZGxlcyA9IG1lc3NhZ2VEYXRhLT5ibG9iSGFuZGxl
cygpOwotICAgICAgICBwYWdlLT5icm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoKS5wb3N0TWVzc2Fn
ZShvcmlnaW4sIG5hbWUsIGlkZW50aWZpZXIsIFdURk1vdmUobWVzc2FnZURhdGEpLCBbYmxvYkhh
bmRsZXMgPSBXVEZNb3ZlKGJsb2JIYW5kbGVzKV0gewotICAgICAgICAgICAgLy8gS2VlcHMgQmxv
YiBkYXRhIGluc2lkZSBtZXNzYWdlRGF0YSBhbGl2ZSB1bnRpbCB0aGUgbWVzc2FnZSBoYXMgYmVl
biBkZWxpdmVyZWQuCisgICAgICAgIGF1dG8gYmxvYkhhbmRsZXMgPSBtZXNzYWdlLT5ibG9iSGFu
ZGxlcygpOworICAgICAgICBwYWdlLT5icm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoKS5wb3N0TWVz
c2FnZShvcmlnaW4sIG5hbWUsIGlkZW50aWZpZXIsIFdURk1vdmUobWVzc2FnZSksIFtibG9iSGFu
ZGxlcyA9IFdURk1vdmUoYmxvYkhhbmRsZXMpXSB7CisgICAgICAgICAgICAvLyBLZWVwcyBCbG9i
IGRhdGEgaW5zaWRlIG1lc3NhZ2UgYWxpdmUgdW50aWwgdGhlIG1lc3NhZ2UgaGFzIGJlZW4gZGVs
aXZlcmVkLgogICAgICAgICB9KTsKICAgICB9KTsKLQotICAgIHJldHVybiB7IH07CiB9CiAKIHZv
aWQgQnJvYWRjYXN0Q2hhbm5lbDo6Y2xvc2UoKQpAQCAtMTE1LDYgKzIwMSwxNCBAQCB2b2lkIEJy
b2FkY2FzdENoYW5uZWw6OmNsb3NlKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9pc0Nsb3Nl
ZCA9IHRydWU7CisKKyAgICBpZiAobV9pc1JlZ2lzdGVyZWQpCisgICAgICAgIHVucmVnaXN0ZXJD
aGFubmVsKCk7Cit9CisKK3ZvaWQgQnJvYWRjYXN0Q2hhbm5lbDo6dW5yZWdpc3RlckNoYW5uZWwo
KQoreworICAgIEFTU0VSVChtX2lzUmVnaXN0ZXJlZCk7CiAgICAgZW5zdXJlT25NYWluVGhyZWFk
KFtvcmlnaW4gPSBjcm9zc1RocmVhZENvcHkobV9vcmlnaW4pLCBuYW1lID0gY3Jvc3NUaHJlYWRD
b3B5KG1fbmFtZSksIGNoYW5uZWxJZGVudGlmaWVyID0gbV9pZGVudGlmaWVyXShhdXRvJiBkb2N1
bWVudCkgewogICAgICAgICBpZiAoYXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKSkKICAgICAg
ICAgICAgIHBhZ2UtPmJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSgpLnVucmVnaXN0ZXJDaGFubmVs
KG9yaWdpbiwgbmFtZSwgY2hhbm5lbElkZW50aWZpZXIpOwpAQCAtMTI1LDIwICsyMTksOSBAQCB2
b2lkIEJyb2FkY2FzdENoYW5uZWw6OmNsb3NlKCkKIHZvaWQgQnJvYWRjYXN0Q2hhbm5lbDo6ZGlz
cGF0Y2hNZXNzYWdlVG8oQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgY2hhbm5lbElkZW50aWZp
ZXIsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7Ci0gICAgYXV0byBjb250ZXh0SWRlbnRpZmllciA9IGNoYW5uZWxUb0NvbnRleHRJZGVu
dGlmaWVyKCkuZ2V0KGNoYW5uZWxJZGVudGlmaWVyKTsKLSAgICBpZiAoIWNvbnRleHRJZGVudGlm
aWVyKQotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKLQogICAgIGF1dG8gY2Fs
bGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnBvc3RUYXNrVG8o
Y29udGV4dElkZW50aWZpZXIsIFtjaGFubmVsSWRlbnRpZmllciwgbWVzc2FnZSA9IFdURk1vdmUo
bWVzc2FnZSksIGNhbGxiYWNrQWdncmVnYXRvciA9IFdURk1vdmUoY2FsbGJhY2tBZ2dyZWdhdG9y
KV0oYXV0byYpIG11dGFibGUgewotICAgICAgICBSZWZQdHI8QnJvYWRjYXN0Q2hhbm5lbD4gY2hh
bm5lbDsKLSAgICAgICAgewotICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IGFsbEJyb2FkY2Fz
dENoYW5uZWxzTG9jayB9OwotICAgICAgICAgICAgY2hhbm5lbCA9IGFsbEJyb2FkY2FzdENoYW5u
ZWxzKCkuZ2V0KGNoYW5uZWxJZGVudGlmaWVyKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoY2hh
bm5lbCkKLSAgICAgICAgICAgIGNoYW5uZWwtPmRpc3BhdGNoTWVzc2FnZShXVEZNb3ZlKG1lc3Nh
Z2UpKTsKLQorICAgIHBvc3RUb0Jyb2FkY2FzdENoYW5uZWxDb250ZXh0VGhyZWFkKGNoYW5uZWxJ
ZGVudGlmaWVyLCBbY2FsbGJhY2tBZ2dyZWdhdG9yID0gV1RGTW92ZShjYWxsYmFja0FnZ3JlZ2F0
b3IpLCBtZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKV0oYXV0byYgY2hhbm5lbCkgbXV0YWJsZSB7
CisgICAgICAgIGNoYW5uZWwuZGlzcGF0Y2hNZXNzYWdlKFdURk1vdmUobWVzc2FnZSkpOwogICAg
ICAgICBjYWxsT25NYWluVGhyZWFkKFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBXVEZNb3ZlKGNhbGxi
YWNrQWdncmVnYXRvcildIHsgfSk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2Fz
dENoYW5uZWwuaAppbmRleCA2ZGE2ODNiOWNjMTJmZTdhNjI0M2MwNWRjNWVhOWM1ZGE0YTc2YWFl
Li44NTNkYzFlZTEwNzY2ZjM3YjUyYTg2ZTg2NDcxZjIxNmE3MTBlN2NiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ccm9hZGNhc3RDaGFubmVsLmgKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJFdmVu
dFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRT
YWZlUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEpTR2xvYmFsT2JqZWN0
OwpAQCAtNDIsMTkgKzQyLDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2VyaWFs
aXplZFNjcmlwdFZhbHVlOwogCi1jbGFzcyBCcm9hZGNhc3RDaGFubmVsIDogcHVibGljIFJlZkNv
dW50ZWQ8QnJvYWRjYXN0Q2hhbm5lbD4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRh
LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKK2NsYXNzIEJyb2FkY2FzdENoYW5uZWwgOiBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QnJvYWRjYXN0Q2hhbm5lbD4sIHB1YmxpYyBFdmVudFRh
cmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKICAgICBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEKEJyb2FkY2FzdENoYW5uZWwpOwogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8QnJvYWRjYXN0Q2hhbm5lbD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIGNvbnN0IFN0cmluZyYgbmFtZSkKLSAgICB7Ci0gICAgICAgIGF1dG8gY2hhbm5lbCA9IGFk
b3B0UmVmKCpuZXcgQnJvYWRjYXN0Q2hhbm5lbChjb250ZXh0LCBuYW1lKSk7Ci0gICAgICAgIGNo
YW5uZWwtPnN1c3BlbmRJZk5lZWRlZCgpOwotICAgICAgICByZXR1cm4gY2hhbm5lbDsKLSAgICB9
CisgICAgc3RhdGljIFJlZjxCcm9hZGNhc3RDaGFubmVsPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIGNvbnN0IFN0cmluZyYgbmFtZSk7CiAgICAgfkJyb2FkY2FzdENoYW5uZWwoKTsK
IAotICAgIHVzaW5nIFJlZkNvdW50ZWQ8QnJvYWRjYXN0Q2hhbm5lbD46OnJlZjsKLSAgICB1c2lu
ZyBSZWZDb3VudGVkPEJyb2FkY2FzdENoYW5uZWw+OjpkZXJlZjsKKyAgICB1c2luZyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxCcm9hZGNhc3RDaGFubmVsPjo6cmVmOworICAgIHVzaW5nIFRocmVhZFNh
ZmVSZWZDb3VudGVkPEJyb2FkY2FzdENoYW5uZWw+OjpkZXJlZjsKIAogICAgIEJyb2FkY2FzdENo
YW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7
IH0KICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KQEAg
LTY3LDE0ICs2MiwxOSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEJyb2FkY2FzdENoYW5uZWwo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgbmFtZSk7CiAKKyAgICB2b2lk
IHJlZ2lzdGVyQ2hhbm5lbCgpOworICAgIHZvaWQgY2hhbm5lbFdhc1JlZ2lzdGVyZWRGb3JPcmln
aW4oQ2xpZW50T3JpZ2luJiYpOworICAgIHZvaWQgdW5yZWdpc3RlckNoYW5uZWwoKTsKKworICAg
IHZvaWQgcG9zdFNlcmlhbGl6ZWRNZXNzYWdlKFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYp
OwogICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlKFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYp
OwogICAgIHZvaWQgZW5zdXJlT25NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQoRG9jdW1lbnQmKT4m
Jik7CiAKICAgICAvLyBFdmVudFRhcmdldAogICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50
VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gQnJvYWRjYXN0Q2hhbm5lbEV2
ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBBY3RpdmVET01PYmpl
Y3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQotICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQo
KSBmaW5hbCB7IFJlZkNvdW50ZWQ8QnJvYWRjYXN0Q2hhbm5lbD46OnJlZigpOyB9Ci0gICAgdm9p
ZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBSZWZDb3VudGVkPEJyb2FkY2FzdENoYW5uZWw+
OjpkZXJlZigpOyB9CisgICAgdm9pZCByZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8QnJvYWRjYXN0Q2hhbm5lbD46OnJlZigpOyB9CisgICAgdm9pZCBkZXJlZkV2
ZW50VGFyZ2V0KCkgZmluYWwgeyBUaHJlYWRTYWZlUmVmQ291bnRlZDxCcm9hZGNhc3RDaGFubmVs
Pjo6ZGVyZWYoKTsgfQogICAgIHZvaWQgZXZlbnRMaXN0ZW5lcnNEaWRDaGFuZ2UoKSBmaW5hbDsK
IAogICAgIC8vIEFjdGl2ZURPTU9iamVjdApAQCAtODMsOCArODMsMTAgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHN0b3AoKSBmaW5hbCB7IGNsb3NlKCk7IH0KIAogICAgIGNvbnN0IFN0cmluZyBtX25h
bWU7Ci0gICAgY29uc3QgQ2xpZW50T3JpZ2luIG1fb3JpZ2luOworICAgIENsaWVudE9yaWdpbiBt
X29yaWdpbjsKKyAgICBWZWN0b3I8UmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4+IG1fbWVzc2Fn
ZXNUb0JlUG9zdGVkQWZ0ZXJSZWdpc3RyYXRpb247CiAgICAgY29uc3QgQnJvYWRjYXN0Q2hhbm5l
bElkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIGJvb2wgbV9pc1JlZ2lzdGVyZWQgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9pc0Nsb3NlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc1JlbGV2
YW50RXZlbnRMaXN0ZW5lciB7IGZhbHNlIH07CiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGFjNjg1MWJlNmI1NmEyODY1
YjI0N2QzZTYzZGYwNzE2ZGJiZTNkZmUuLjAwNWEyYWE5MGQyNTNiOGEzNTEyY2RkN2MwMzgxMzNm
M2JkNGZkMGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wOS0xMCAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbGF4IEJyb2FkY2FzdENoYW5uZWwgb3Jp
Z2luIHBhcnRpdGlvbmluZyBpZiBpZnJhbWUgaGFzIHN0b3JhZ2UgYWNjZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAxNjQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3QgY292
ZXJhZ2UuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL21lc3NhZ2luZy9icm9hZGNhc3RjaGFubmVs
LXBhcnRpdGlvbmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9tZXNzYWdpbmcvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25p
bmctd2l0aC1zdG9yYWdlLWFjY2Vzcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L21lc3NhZ2luZy9yZXNvdXJjZXMvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctd2l0aC1z
dG9yYWdlLWFjY2Vzcy1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9t
ZXNzYWdpbmcvcmVzb3VyY2VzL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLXdpdGgtc3Rv
cmFnZS1hY2Nlc3MtcG9wdXAuaHRtbDogQWRkZWQuCisKIDIwMjEtMDktMDcgIFNlcmdpbyBWaWxs
YXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW2Nzcy1mbGV4Ym94XSBB
ZGQgc3VwcG9ydCBmb3Igc2VsZi1zdGFydCAmIHNlbGYtZW5kIGNzcy1hbGlnbi0zIHBvc2l0aW9u
YWwgYWxpZ25tZW50IHByb3BlcnRpZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVzc2FnaW5nL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLXdpdGgtc3RvcmFnZS1h
Y2Nlc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcvYnJv
YWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctd2l0aC1zdG9yYWdlLWFjY2Vzcy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTYyYThhYzk2YmM3YmE1Y2YyMzAyMjIxZjFiMzM3NmNlMTRmNmE0YQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL2Jyb2Fk
Y2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLXdpdGgtc3RvcmFnZS1hY2Nlc3MtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3RzIHRoYXQgQnJvYWRjYXN0Q2hhbm5lbCdzIG9yaWdpbiBw
YXJ0aXRpb25pbmcgY2FuIGJlIHJlbGF4ZWQgdmlhIHJlcXVlc3RTdG9yYWdlQWNjZXNzKCkKKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgUmVjZWl2ZWQgbWVzc2FnZSBmcm9t
IHNhbWUtb3JpZ2luIGlmcmFtZSB3aXRoIHN0b3JhZ2UgYWNjZXNzIHVuZGVyIGNyb3NzLW9yaWdp
biBwb3B1cAorUEFTUyBnb3RNZXNzYWdlRnJvbVNhbWVPcmlnaW5JZnJhbWVVbmRlckNyb3NzT3Jp
Z2luUG9wdXAgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2lu
Zy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9icm9hZGNhc3RjaGFubmVsLXBhcnRp
dGlvbmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTJhYzM3ZDQyY2U1
NWE1MmUzNTcxNWQxNGU4OTk0OWUwODJkZDY5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLXdp
dGgtc3RvcmFnZS1hY2Nlc3MuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD48
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIEJyb2FkY2FzdENoYW5uZWxPcmlnaW5QYXJ0aXRpb25p
bmdFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9u
KCJUZXN0cyB0aGF0IEJyb2FkY2FzdENoYW5uZWwncyBvcmlnaW4gcGFydGl0aW9uaW5nIGNhbiBi
ZSByZWxheGVkIHZpYSByZXF1ZXN0U3RvcmFnZUFjY2VzcygpIik7Citqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKworbGV0IGJjID0gbmV3IEJyb2FkY2FzdENoYW5uZWwoImJyb2FkY2FzdGNoYW5uZWwt
cGFydGl0aW9uaW5nLXdpdGgtc3RvcmFnZS1hY2Nlc3MiKTsKKworbGV0IGdvdE1lc3NhZ2VGcm9t
U2FtZU9yaWdpbklmcmFtZVVuZGVyQ3Jvc3NPcmlnaW5Qb3B1cCA9IGZhbHNlOworYmMub25tZXNz
YWdlID0gKG1lc3NhZ2UpID0+IHsKKyAgICBpZiAobWVzc2FnZS5kYXRhID09ICJzYW1lLW9yaWdp
bi1pZnJhbWUtdW5kZXItY3Jvc3Mtb3JpZ2luLXBvcHVwLXdpdGgtc3RvcmFnZS1hY2Nlc3MiKSB7
CisgICAgICAgIHRlc3RQYXNzZWQoIlJlY2VpdmVkIG1lc3NhZ2UgZnJvbSBzYW1lLW9yaWdpbiBp
ZnJhbWUgd2l0aCBzdG9yYWdlIGFjY2VzcyB1bmRlciBjcm9zcy1vcmlnaW4gcG9wdXAiKTsKKyAg
ICAgICAgc2hvdWxkQmVGYWxzZSgiZ290TWVzc2FnZUZyb21TYW1lT3JpZ2luSWZyYW1lVW5kZXJD
cm9zc09yaWdpblBvcHVwIik7CisgICAgICAgIGdvdE1lc3NhZ2VGcm9tU2FtZU9yaWdpbklmcmFt
ZVVuZGVyQ3Jvc3NPcmlnaW5Qb3B1cCA9IHRydWU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVz
dEZhaWxlZCgiUmVjZWl2ZWQgdW5leHBlY3RlZCBtZXNzYWdlOiAiICsgbWVzc2FnZS5kYXRhKTsK
KyAgICB9CisKKyAgICBpZiAoZ290TWVzc2FnZUZyb21TYW1lT3JpZ2luSWZyYW1lVW5kZXJDcm9z
c09yaWdpblBvcHVwKQorICAgICAgICBzZXRUaW1lb3V0KGZpbmlzaEpTVGVzdCwgMTAwMCk7Cit9
OworCitvbmxvYWQgPSAoKSA9PiB7CisgICAgb3BlbigiaHR0cDovL2xvY2FsaG9zdDo4MDAwL21l
c3NhZ2luZy9yZXNvdXJjZXMvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctd2l0aC1zdG9y
YWdlLWFjY2Vzcy1wb3B1cC5odG1sIik7Cit9OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9yZXNvdXJjZXMv
YnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctd2l0aC1zdG9yYWdlLWFjY2Vzcy1pZnJhbWUu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNh
c3RjaGFubmVsLXBhcnRpdGlvbmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjhkMzdkYmY3ZWQ0ZDU5OWI3Mjk4N2U5OWY5MzAwMGE4ZGIyMWVlNjgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9yZXNvdXJjZXMv
YnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctd2l0aC1zdG9yYWdlLWFjY2Vzcy1pZnJhbWUu
aHRtbApAQCAtMCwwICsxLDE4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8
c2NyaXB0PgorcGFydGl0aW9uZWRDaGFubmVsID0gbmV3IEJyb2FkY2FzdENoYW5uZWwoImJyb2Fk
Y2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLXdpdGgtc3RvcmFnZS1hY2Nlc3MiKTsKK3BhcnRpdGlv
bmVkQ2hhbm5lbC5wb3N0TWVzc2FnZSgic2FtZS1vcmlnaW4taWZyYW1lLXVuZGVyLWNyb3NzLW9y
aWdpbi1wb3B1cC13aXRob3V0LXN0b3JhZ2UtYWNjZXNzLTEiKTsKKworaW50ZXJuYWxzLndpdGhV
c2VyR2VzdHVyZSgoKSA9PiB7CisgICAgZG9jdW1lbnQucmVxdWVzdFN0b3JhZ2VBY2Nlc3MoKS50
aGVuKCgpID0+IHsKKyAgICAgICAgdW5wYXJ0aXRpb25lZENoYW5uZWwgPSBuZXcgQnJvYWRjYXN0
Q2hhbm5lbCgiYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctd2l0aC1zdG9yYWdlLWFjY2Vz
cyIpOworICAgICAgICB1bnBhcnRpdGlvbmVkQ2hhbm5lbC5wb3N0TWVzc2FnZSgic2FtZS1vcmln
aW4taWZyYW1lLXVuZGVyLWNyb3NzLW9yaWdpbi1wb3B1cC13aXRoLXN0b3JhZ2UtYWNjZXNzIik7
CisKKyAgICAgICAgcGFydGl0aW9uZWRDaGFubmVsLnBvc3RNZXNzYWdlKCJzYW1lLW9yaWdpbi1p
ZnJhbWUtdW5kZXItY3Jvc3Mtb3JpZ2luLXBvcHVwLXdpdGhvdXQtc3RvcmFnZS1hY2Nlc3MtMiIp
OworICAgIH0pOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNhc3RjaGFu
bmVsLXBhcnRpdGlvbmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLXBvcHVwLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9yZXNvdXJjZXMvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0
aXRpb25pbmctd2l0aC1zdG9yYWdlLWFjY2Vzcy1wb3B1cC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4NmEx
ZTllZTY1OWRkOTU2MzNiNmIzYzFlMDNiYTRiODQ4ZTJiZTUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9yZXNvdXJjZXMvYnJvYWRjYXN0Y2hhbm5l
bC1wYXJ0aXRpb25pbmctd2l0aC1zdG9yYWdlLWFjY2Vzcy1wb3B1cC5odG1sCkBAIC0wLDAgKzEs
NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9tZXNzYWdpbmcvcmVzb3VyY2VzL2Jyb2FkY2FzdGNoYW5uZWwtcGFy
dGl0aW9uaW5nLXdpdGgtc3RvcmFnZS1hY2Nlc3MtaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorPC9i
b2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437963</attachid>
            <date>2021-09-11 14:19:38 -0700</date>
            <delta_ts>2021-09-11 16:01:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230164-20210911141938.patch</filename>
            <type>text/plain</type>
            <size>21611</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDdjZDZiMjgwNjA5ODA0
NWNkNTQ5NTQ2MTBkOGEyZTg2YzE3NzBlYi4uZjExYWUwZGE2MWY1MjNiZjU4NTdiZjBhYjY2MGQ0
ZWQ5NTBjY2U0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTA5LTExICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVsYXggQnJvYWRjYXN0Q2hh
bm5lbCBvcmlnaW4gcGFydGl0aW9uaW5nIGlmIGlmcmFtZSBoYXMgc3RvcmFnZSBhY2Nlc3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDE2NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHIyODIxMDUs
IHdlIHN0YXJ0ZWQgcGFydGl0aW9uaW5nIG9yaWdpbnMgZm9yIEJyb2FkY2FzdENoYW5uZWwgdXNp
bmcgdG9wT3JpZ2luL2ZyYW1lT3JpZ2luLgorICAgICAgICBUaGlzIHByZXZlbnRzIGEgdG9wRnJh
bWUgb2Ygb3JpZ2luIEEgdG8gbWVzc2FnZSBhIHN1YmZyYW1lIG9mIG9yaWdpbiBBIGlmIHRoYXQg
c3ViZnJhbWUgaWYgdW5kZXIKKyAgICAgICAgYW5vdGhlciBkb21haW4gQi4gSG93ZXZlciwgdGhl
IGBkb2N1bWVudC5yZXF1ZXN0U3RvcmFnZUFjY2VzcygpYCBBUEkgZXhpc3RzIHRvIHJlbGF4IHN0
b3JhZ2UKKyAgICAgICAgcGFydGl0aW9uaW5nIGFuZCBHZWNrbyByZWxpZXMgb24gdGhpcyB0byBy
ZWxheCBCcm9hZGNhc3RDaGFubmVsIG9yaWdpbiBwYXJ0aXRpb25pbmcgYXMgd2VsbC4KKyAgICAg
ICAgVGhpcyBwYXRjaCBhbGlnbnMgV2ViS2l0J3MgYmVoYXZpb3Igd2l0aCBHZWNrby4KKworICAg
ICAgICBUZXN0OiBodHRwL3Rlc3RzL21lc3NhZ2luZy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlv
bmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLmh0bWwKKworICAgICAgICAqIGRvbS9Ccm9hZGNhc3RD
aGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZFBhcnRpdGlvbk9yaWdpbik6Cisg
ICAgICAgIChXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsOjpNYWluVGhyZWFkQnJpZGdlOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbDo6TWFpblRocmVhZEJyaWRn
ZTo6bmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsOjpNYWlu
VGhyZWFkQnJpZGdlOjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJyb2Fk
Y2FzdENoYW5uZWw6Ok1haW5UaHJlYWRCcmlkZ2U6Ok1haW5UaHJlYWRCcmlkZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbDo6TWFpblRocmVhZEJyaWRnZTo6ZW5zdXJlT25N
YWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWw6Ok1haW5UaHJl
YWRCcmlkZ2U6OnJlZ2lzdGVyQ2hhbm5lbCk6CisgICAgICAgIChXZWJDb3JlOjpCcm9hZGNhc3RD
aGFubmVsOjpNYWluVGhyZWFkQnJpZGdlOjp1bnJlZ2lzdGVyQ2hhbm5lbCk6CisgICAgICAgIChX
ZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsOjpNYWluVGhyZWFkQnJpZGdlOjpwb3N0TWVzc2FnZSk6
CisgICAgICAgIChXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsOjpCcm9hZGNhc3RDaGFubmVsKToK
KyAgICAgICAgKFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWw6On5Ccm9hZGNhc3RDaGFubmVsKToK
KyAgICAgICAgKFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWw6OmlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbDo6bmFtZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsOjpwb3N0TWVzc2FnZSk6CisgICAgICAgIChXZWJD
b3JlOjpCcm9hZGNhc3RDaGFubmVsOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpCcm9hZGNh
c3RDaGFubmVsOjpkaXNwYXRjaE1lc3NhZ2UpOgorICAgICAgICAqIGRvbS9Ccm9hZGNhc3RDaGFu
bmVsLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkNocm9tZUNsaWVudDo6aGFzUGFnZUxldmVsU3RvcmFnZUFjY2VzcyBjb25zdCk6CisKIDIwMjEt
MDktMTEgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUg
cmVzdCBvZiB0aGUgTGVnYWN5SW5saW5lVGV4dEJveCBwYWludGluZyBjb2RlIHRvIFRleHRCb3hQ
YWludGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGExZGYwNzAwOWZkMmU3MWZiNTNhNTMyYWMyNGQ3NmEzMjFmYWI1
ZDQuLjFkOGQyM2ZkMTViODE4OWRkOWYxNmJiNDAwZDQyYTBhOGZhNTRkYjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMjEtMDktMTEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KKworICAgICAgICBSZWxheCBCcm9hZGNhc3RDaGFubmVsIG9yaWdpbiBwYXJ0aXRpb25pbmcg
aWYgaWZyYW1lIGhhcyBzdG9yYWdlIGFjY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMTY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6aGFzUGFnZUxl
dmVsU3RvcmFnZUFjY2VzcyBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKwogMjAyMS0wOS0xMSAgRGF2aWQgS2lsemVyICA8ZGRr
aWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2
ZXIoKSBzaG91bGQgdXNlIHdlYWsgb2JzZXJ2ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0
Q2hhbm5lbC5jcHAKaW5kZXggMWM2MjU2M2MxMTFlMjg2NmUyMjg4ZTZlZGE2NDhiYzU5YWFmZmQz
MC4uMWZkMDY1NWIyOWJjM2JhMTQ2NmVlNGJjYTlkNWM4N2U1YjRkNDNjNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmNwcApAQCAtMjcsNiArMjcsOCBAQAogI2luY2x1ZGUg
IkJyb2FkY2FzdENoYW5uZWwuaCIKIAogI2luY2x1ZGUgIkJyb2FkY2FzdENoYW5uZWxSZWdpc3Ry
eS5oIgorI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2lu
Y2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKICNpbmNsdWRl
ICJQYWdlLmgiCkBAIC01NywzMyArNTksMTM3IEBAIHN0YXRpYyBIYXNoTWFwPEJyb2FkY2FzdENo
YW5uZWxJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mIGNoCiAg
ICAgcmV0dXJuIG1hcDsKIH0KIAotQnJvYWRjYXN0Q2hhbm5lbDo6QnJvYWRjYXN0Q2hhbm5lbChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUpCi0gICAg
OiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCi0gICAgLCBtX25hbWUobmFtZSkKLSAgICAsIG1f
b3JpZ2luIHsgY29udGV4dC5zZXR0aW5nc1ZhbHVlcygpLmJyb2FkY2FzdENoYW5uZWxPcmlnaW5Q
YXJ0aXRpb25pbmdFbmFibGVkID8gY29udGV4dC50b3BPcmlnaW4oKS5kYXRhKCkgOiBjb250ZXh0
LnNlY3VyaXR5T3JpZ2luKCktPmRhdGEoKSwgY29udGV4dC5zZWN1cml0eU9yaWdpbigpLT5kYXRh
KCkgfQotICAgICwgbV9pZGVudGlmaWVyKEJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyOjpnZW5l
cmF0ZVRocmVhZFNhZmUoKSkKK3N0YXRpYyBib29sIHNob3VsZFBhcnRpdGlvbk9yaWdpbihEb2N1
bWVudCYgZG9jdW1lbnQpCiB7CisgICAgaWYgKCFkb2N1bWVudC5zZXR0aW5ncygpLmJyb2FkY2Fz
dENoYW5uZWxPcmlnaW5QYXJ0aXRpb25pbmdFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGlmICghZG9jdW1lbnQuc2V0dGluZ3MoKS5zdG9yYWdlQWNjZXNzQVBJRW5hYmxl
ZCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5w
YWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVy
biAhcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuaGFzUGFnZUxldmVsU3RvcmFnZUFjY2VzcyhSZWdp
c3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbUhvc3QoZG9jdW1lbnQudG9wRG9jdW1l
bnQoKS5zZWN1cml0eU9yaWdpbigpLmhvc3QoKSksIFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNr
ZWRDcmVhdGVGcm9tSG9zdChkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmhvc3QoKSkpOworfQor
CitjbGFzcyBCcm9hZGNhc3RDaGFubmVsOjpNYWluVGhyZWFkQnJpZGdlIDogcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGVkPE1haW5UaHJlYWRCcmlkZ2UsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6
Ok1haW4+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE1haW5UaHJlYWRCcmlkZ2U+IGNyZWF0
ZShCcm9hZGNhc3RDaGFubmVsJiBjaGFubmVsLCBjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgewot
ICAgICAgICBMb2NrZXIgbG9ja2VyIHsgYWxsQnJvYWRjYXN0Q2hhbm5lbHNMb2NrIH07Ci0gICAg
ICAgIGFsbEJyb2FkY2FzdENoYW5uZWxzKCkuYWRkKG1faWRlbnRpZmllciwgdGhpcyk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1haW5UaHJlYWRCcmlkZ2UoY2hhbm5lbCwgbmFtZSkp
OworICAgIH0KKworICAgIHZvaWQgcmVnaXN0ZXJDaGFubmVsKCk7CisgICAgdm9pZCB1bnJlZ2lz
dGVyQ2hhbm5lbCgpOworICAgIHZvaWQgcG9zdE1lc3NhZ2UoUmVmPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4mJik7CisKKyAgICBTdHJpbmcgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZS5pc29s
YXRlZENvcHkoKTsgfQorICAgIEJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIo
KSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKworcHJpdmF0ZToKKyAgICBNYWluVGhy
ZWFkQnJpZGdlKEJyb2FkY2FzdENoYW5uZWwmLCBjb25zdCBTdHJpbmcmIG5hbWUpOworCisgICAg
dm9pZCBlbnN1cmVPbk1haW5UaHJlYWQoRnVuY3Rpb248dm9pZChEb2N1bWVudCYpPiYmKTsKKwor
ICAgIFdlYWtQdHI8QnJvYWRjYXN0Q2hhbm5lbD4gbV9icm9hZGNhc3RDaGFubmVsOworICAgIGNv
bnN0IEJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBjb25zdCBT
dHJpbmcgbV9uYW1lOyAvLyBNYWluIHRocmVhZCBvbmx5LgorICAgIENsaWVudE9yaWdpbiBtX29y
aWdpbjsgLy8gTWFpbiB0aHJlYWQgb25seS4KK307CisKK0Jyb2FkY2FzdENoYW5uZWw6Ok1haW5U
aHJlYWRCcmlkZ2U6Ok1haW5UaHJlYWRCcmlkZ2UoQnJvYWRjYXN0Q2hhbm5lbCYgY2hhbm5lbCwg
Y29uc3QgU3RyaW5nJiBuYW1lKQorICAgIDogbV9icm9hZGNhc3RDaGFubmVsKG1ha2VXZWFrUHRy
KGNoYW5uZWwpKQorICAgICwgbV9pZGVudGlmaWVyKEJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVy
OjpnZW5lcmF0ZVRocmVhZFNhZmUoKSkKKyAgICAsIG1fbmFtZShuYW1lLmlzb2xhdGVkQ29weSgp
KQoreworfQorCit2b2lkIEJyb2FkY2FzdENoYW5uZWw6Ok1haW5UaHJlYWRCcmlkZ2U6OmVuc3Vy
ZU9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKERvY3VtZW50Jik+JiYgdGFzaykKK3sKKyAgICBB
U1NFUlQobV9icm9hZGNhc3RDaGFubmVsKTsKKyAgICBpZiAoIW1fYnJvYWRjYXN0Q2hhbm5lbCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogY29udGV4dCA9IG1fYnJvYWRjYXN0Q2hhbm5l
bC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmICghY29udGV4dCkKKyAgICAgICAg
cmV0dXJuOworICAgIEFTU0VSVChjb250ZXh0LT5pc0NvbnRleHRUaHJlYWQoKSk7CisKKyAgICBS
ZWYgcHJvdGVjdGVkVGhpcyB7ICp0aGlzIH07CisgICAgaWYgKGlzPERvY3VtZW50PigqY29udGV4
dCkpCisgICAgICAgIHRhc2soZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KSk7CisgICAgZWxz
ZSB7CisgICAgICAgIGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPigqY29udGV4dCkudGhyZWFk
KCkud29ya2VyTG9hZGVyUHJveHkoKS5wb3N0VGFza1RvTG9hZGVyKFtwcm90ZWN0ZWRUaGlzID0g
V1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgdGFzayA9IFdURk1vdmUodGFzayldKGF1dG8mIGNvbnRl
eHQpIHsKKyAgICAgICAgICAgIHRhc2soZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpKTsKKyAg
ICAgICAgfSk7CiAgICAgfQorfQogCi0gICAgZW5zdXJlT25NYWluVGhyZWFkKFtvcmlnaW4gPSBj
cm9zc1RocmVhZENvcHkobV9vcmlnaW4pLCBuYW1lID0gY3Jvc3NUaHJlYWRDb3B5KG1fbmFtZSks
IGNvbnRleHRJZGVudGlmaWVyID0gY29udGV4dC5jb250ZXh0SWRlbnRpZmllcigpLCBjaGFubmVs
SWRlbnRpZmllciA9IG1faWRlbnRpZmllcl0oYXV0byYgZG9jdW1lbnQpIHsKK3ZvaWQgQnJvYWRj
YXN0Q2hhbm5lbDo6TWFpblRocmVhZEJyaWRnZTo6cmVnaXN0ZXJDaGFubmVsKCkKK3sKKyAgICBl
bnN1cmVPbk1haW5UaHJlYWQoW3RoaXMsIGNvbnRleHRJZGVudGlmaWVyID0gbV9icm9hZGNhc3RD
aGFubmVsLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmNvbnRleHRJZGVudGlmaWVyKCldKGF1
dG8mIGRvY3VtZW50KSB7CisgICAgICAgIG1fb3JpZ2luID0geyBzaG91bGRQYXJ0aXRpb25Pcmln
aW4oZG9jdW1lbnQpID8gZG9jdW1lbnQudG9wT3JpZ2luKCkuZGF0YSgpIDogZG9jdW1lbnQuc2Vj
dXJpdHlPcmlnaW4oKS5kYXRhKCksIGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpIH07
CisgICAgICAgIGlmIChhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpKQorICAgICAgICAgICAg
cGFnZS0+YnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KCkucmVnaXN0ZXJDaGFubmVsKG1fb3JpZ2lu
LCBtX25hbWUsIG1faWRlbnRpZmllcik7CisgICAgICAgIGNoYW5uZWxUb0NvbnRleHRJZGVudGlm
aWVyKCkuYWRkKG1faWRlbnRpZmllciwgY29udGV4dElkZW50aWZpZXIpOworICAgIH0pOworfQor
Cit2b2lkIEJyb2FkY2FzdENoYW5uZWw6Ok1haW5UaHJlYWRCcmlkZ2U6OnVucmVnaXN0ZXJDaGFu
bmVsKCkKK3sKKyAgICBlbnN1cmVPbk1haW5UaHJlYWQoW3RoaXNdKGF1dG8mIGRvY3VtZW50KSB7
CiAgICAgICAgIGlmIChhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpKQotICAgICAgICAgICAg
cGFnZS0+YnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KCkucmVnaXN0ZXJDaGFubmVsKG9yaWdpbiwg
bmFtZSwgY2hhbm5lbElkZW50aWZpZXIpOwotICAgICAgICBjaGFubmVsVG9Db250ZXh0SWRlbnRp
ZmllcigpLmFkZChjaGFubmVsSWRlbnRpZmllciwgY29udGV4dElkZW50aWZpZXIpOworICAgICAg
ICAgICAgcGFnZS0+YnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KCkudW5yZWdpc3RlckNoYW5uZWwo
bV9vcmlnaW4sIG1fbmFtZSwgbV9pZGVudGlmaWVyKTsKKyAgICAgICAgY2hhbm5lbFRvQ29udGV4
dElkZW50aWZpZXIoKS5yZW1vdmUobV9pZGVudGlmaWVyKTsKKyAgICB9KTsKK30KKwordm9pZCBC
cm9hZGNhc3RDaGFubmVsOjpNYWluVGhyZWFkQnJpZGdlOjpwb3N0TWVzc2FnZShSZWY8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UpCit7CisgICAgZW5zdXJlT25NYWluVGhyZWFkKFt0
aGlzLCBtZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKV0oYXV0byYgZG9jdW1lbnQpIG11dGFibGUg
eworICAgICAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOworICAgICAgICBpZiAoIXBh
Z2UpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYXV0byBibG9iSGFuZGxlcyA9IG1l
c3NhZ2UtPmJsb2JIYW5kbGVzKCk7CisgICAgICAgIHBhZ2UtPmJyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeSgpLnBvc3RNZXNzYWdlKG1fb3JpZ2luLCBtX25hbWUsIG1faWRlbnRpZmllciwgV1RGTW92
ZShtZXNzYWdlKSwgW2Jsb2JIYW5kbGVzID0gV1RGTW92ZShibG9iSGFuZGxlcyldIHsKKyAgICAg
ICAgICAgIC8vIEtlZXBzIEJsb2IgZGF0YSBpbnNpZGUgbWVzc2FnZURhdGEgYWxpdmUgdW50aWwg
dGhlIG1lc3NhZ2UgaGFzIGJlZW4gZGVsaXZlcmVkLgorICAgICAgICB9KTsKICAgICB9KTsKIH0K
IAorQnJvYWRjYXN0Q2hhbm5lbDo6QnJvYWRjYXN0Q2hhbm5lbChTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUpCisgICAgOiBBY3RpdmVET01PYmplY3Qo
JmNvbnRleHQpCisgICAgLCBtX21haW5UaHJlYWRCcmlkZ2UoTWFpblRocmVhZEJyaWRnZTo6Y3Jl
YXRlKCp0aGlzLCBuYW1lKSkKK3sKKyAgICB7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBhbGxC
cm9hZGNhc3RDaGFubmVsc0xvY2sgfTsKKyAgICAgICAgYWxsQnJvYWRjYXN0Q2hhbm5lbHMoKS5h
ZGQobV9tYWluVGhyZWFkQnJpZGdlLT5pZGVudGlmaWVyKCksIHRoaXMpOworICAgIH0KKyAgICBt
X21haW5UaHJlYWRCcmlkZ2UtPnJlZ2lzdGVyQ2hhbm5lbCgpOworfQorCiBCcm9hZGNhc3RDaGFu
bmVsOjp+QnJvYWRjYXN0Q2hhbm5lbCgpCiB7CiAgICAgY2xvc2UoKTsKICAgICB7CiAgICAgICAg
IExvY2tlciBsb2NrZXIgeyBhbGxCcm9hZGNhc3RDaGFubmVsc0xvY2sgfTsKLSAgICAgICAgYWxs
QnJvYWRjYXN0Q2hhbm5lbHMoKS5yZW1vdmUobV9pZGVudGlmaWVyKTsKKyAgICAgICAgYWxsQnJv
YWRjYXN0Q2hhbm5lbHMoKS5yZW1vdmUobV9tYWluVGhyZWFkQnJpZGdlLT5pZGVudGlmaWVyKCkp
OwogICAgIH0KIH0KIAorQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgQnJvYWRjYXN0Q2hhbm5l
bDo6aWRlbnRpZmllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbWFpblRocmVhZEJyaWRnZS0+
aWRlbnRpZmllcigpOworfQorCitTdHJpbmcgQnJvYWRjYXN0Q2hhbm5lbDo6bmFtZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fbWFpblRocmVhZEJyaWRnZS0+bmFtZSgpOworfQorCiBFeGNlcHRp
b25Pcjx2b2lkPiBCcm9hZGNhc3RDaGFubmVsOjpwb3N0TWVzc2FnZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0JiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBtZXNzYWdlKQogewogICAgIGlmIChtX2lz
Q2xvc2VkKQpAQCAtOTUsMTcgKzIwMSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEJyb2FkY2FzdENo
YW5uZWw6OnBvc3RNZXNzYWdlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjCiAgICAg
ICAgIHJldHVybiBtZXNzYWdlRGF0YS5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgQVNTRVJUKHBv
cnRzLmlzRW1wdHkoKSk7CiAKLSAgICBlbnN1cmVPbk1haW5UaHJlYWQoW29yaWdpbiA9IGNyb3Nz
VGhyZWFkQ29weShtX29yaWdpbiksIG5hbWUgPSBjcm9zc1RocmVhZENvcHkobV9uYW1lKSwgaWRl
bnRpZmllciA9IG1faWRlbnRpZmllciwgbWVzc2FnZURhdGEgPSBtZXNzYWdlRGF0YS5yZWxlYXNl
UmV0dXJuVmFsdWUoKV0oYXV0byYgZG9jdW1lbnQpIG11dGFibGUgewotICAgICAgICBhdXRvKiBw
YWdlID0gZG9jdW1lbnQucGFnZSgpOwotICAgICAgICBpZiAoIXBhZ2UpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgYXV0byBibG9iSGFuZGxlcyA9IG1lc3NhZ2VEYXRhLT5ibG9iSGFu
ZGxlcygpOwotICAgICAgICBwYWdlLT5icm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoKS5wb3N0TWVz
c2FnZShvcmlnaW4sIG5hbWUsIGlkZW50aWZpZXIsIFdURk1vdmUobWVzc2FnZURhdGEpLCBbYmxv
YkhhbmRsZXMgPSBXVEZNb3ZlKGJsb2JIYW5kbGVzKV0gewotICAgICAgICAgICAgLy8gS2VlcHMg
QmxvYiBkYXRhIGluc2lkZSBtZXNzYWdlRGF0YSBhbGl2ZSB1bnRpbCB0aGUgbWVzc2FnZSBoYXMg
YmVlbiBkZWxpdmVyZWQuCi0gICAgICAgIH0pOwotICAgIH0pOwotCisgICAgbV9tYWluVGhyZWFk
QnJpZGdlLT5wb3N0TWVzc2FnZShtZXNzYWdlRGF0YS5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAg
ICAgcmV0dXJuIHsgfTsKIH0KIApAQCAtMTE1LDExICsyMTEsNyBAQCB2b2lkIEJyb2FkY2FzdENo
YW5uZWw6OmNsb3NlKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9pc0Nsb3NlZCA9IHRydWU7
Ci0gICAgZW5zdXJlT25NYWluVGhyZWFkKFtvcmlnaW4gPSBjcm9zc1RocmVhZENvcHkobV9vcmln
aW4pLCBuYW1lID0gY3Jvc3NUaHJlYWRDb3B5KG1fbmFtZSksIGNoYW5uZWxJZGVudGlmaWVyID0g
bV9pZGVudGlmaWVyXShhdXRvJiBkb2N1bWVudCkgewotICAgICAgICBpZiAoYXV0byogcGFnZSA9
IGRvY3VtZW50LnBhZ2UoKSkKLSAgICAgICAgICAgIHBhZ2UtPmJyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeSgpLnVucmVnaXN0ZXJDaGFubmVsKG9yaWdpbiwgbmFtZSwgY2hhbm5lbElkZW50aWZpZXIp
OwotICAgICAgICBjaGFubmVsVG9Db250ZXh0SWRlbnRpZmllcigpLnJlbW92ZShjaGFubmVsSWRl
bnRpZmllcik7Ci0gICAgfSk7CisgICAgbV9tYWluVGhyZWFkQnJpZGdlLT51bnJlZ2lzdGVyQ2hh
bm5lbCgpOwogfQogCiB2b2lkIEJyb2FkY2FzdENoYW5uZWw6OmRpc3BhdGNoTWVzc2FnZVRvKEJy
b2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIGNoYW5uZWxJZGVudGlmaWVyLCBSZWY8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKQEAgLTE0OSwyNiArMjQxLDExIEBAIHZvaWQgQnJvYWRjYXN0Q2hhbm5l
bDo6ZGlzcGF0Y2hNZXNzYWdlKFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlz
LCBUYXNrU291cmNlOjpQb3N0ZWRNZXNzYWdlUXVldWUsIFt0aGlzLCBtZXNzYWdlID0gV1RGTW92
ZShtZXNzYWdlKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKCFtX2lzQ2xvc2VkKQotICAgICAg
ICAgICAgZGlzcGF0Y2hFdmVudChNZXNzYWdlRXZlbnQ6OmNyZWF0ZSh7IH0sIFdURk1vdmUobWVz
c2FnZSksIG1fb3JpZ2luLmNsaWVudE9yaWdpbi50b1N0cmluZygpKSk7CisgICAgICAgIGlmICgh
bV9pc0Nsb3NlZCAmJiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgICAgICBkaXNw
YXRjaEV2ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKHsgfSwgV1RGTW92ZShtZXNzYWdlKSwgc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygpKSk7CiAg
ICAgfSk7CiB9CiAKLXZvaWQgQnJvYWRjYXN0Q2hhbm5lbDo6ZW5zdXJlT25NYWluVGhyZWFkKEZ1
bmN0aW9uPHZvaWQoRG9jdW1lbnQmKT4mJiB0YXNrKQotewotICAgIGF1dG8qIGNvbnRleHQgPSBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0gICAgaWYgKCFjb250ZXh0KQotICAgICAgICByZXR1
cm47Ci0KLSAgICBpZiAoaXM8RG9jdW1lbnQ+KCpjb250ZXh0KSkKLSAgICAgICAgdGFzayhkb3du
Y2FzdDxEb2N1bWVudD4oKmNvbnRleHQpKTsKLSAgICBlbHNlIHsKLSAgICAgICAgZG93bmNhc3Q8
V29ya2VyR2xvYmFsU2NvcGU+KCpjb250ZXh0KS50aHJlYWQoKS53b3JrZXJMb2FkZXJQcm94eSgp
LnBvc3RUYXNrVG9Mb2FkZXIoW3Rhc2sgPSBXVEZNb3ZlKHRhc2spXShhdXRvJiBjb250ZXh0KSB7
Ci0gICAgICAgICAgICB0YXNrKGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSk7Ci0gICAgICAg
IH0pOwotICAgIH0KLX0KLQogY29uc3QgY2hhciogQnJvYWRjYXN0Q2hhbm5lbDo6YWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuICJCcm9hZGNhc3RDaGFubmVsIjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5oCmluZGV4IDZkYTY4M2I5Y2MxMmZlN2E2MjQz
YzA1ZGM1ZWE5YzVkYTRhNzZhYWUuLjlkMDkwMTVjN2VmYmVmYzkzNDIyNzE3NmUyM2ZlYzIzNzc4
YmZjMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuaApAQCAtNTYsOCArNTYs
OCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUmVmQ291bnRlZDxCcm9hZGNhc3RDaGFubmVsPjo6cmVm
OwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8QnJvYWRjYXN0Q2hhbm5lbD46OmRlcmVmOwogCi0gICAg
QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1f
aWRlbnRpZmllcjsgfQotICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bmFtZTsgfQorICAgIEJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25z
dDsKKyAgICBTdHJpbmcgbmFtZSgpIGNvbnN0OwogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcG9z
dE1lc3NhZ2UoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSBtZXNzYWdlKTsKICAg
ICB2b2lkIGNsb3NlKCk7CkBAIC04Miw5ICs4Miw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCB2aXJ0
dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBzdG9wKCkgZmlu
YWwgeyBjbG9zZSgpOyB9CiAKLSAgICBjb25zdCBTdHJpbmcgbV9uYW1lOwotICAgIGNvbnN0IENs
aWVudE9yaWdpbiBtX29yaWdpbjsKLSAgICBjb25zdCBCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmll
ciBtX2lkZW50aWZpZXI7CisgICAgY2xhc3MgTWFpblRocmVhZEJyaWRnZTsKKyAgICBSZWY8TWFp
blRocmVhZEJyaWRnZT4gbV9tYWluVGhyZWFkQnJpZGdlOwogICAgIGJvb2wgbV9pc0Nsb3NlZCB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc1JlbGV2YW50RXZlbnRMaXN0ZW5lciB7IGZhbHNlIH07
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggNzkxNmJlMDliN2JmMzk2Mjlm
MDAxYTU2NGMxZmM0Njk5NDg3NjQxNy4uZDJhMjRmOTUxNTYyYTc3ZWQ1YTk2YmUxNGQyYmI3NWRi
MjIyMWUwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC01NTQsNiArNTU0LDcg
QEAgcHVibGljOgogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgdmly
dHVhbCB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiAvKnN1YkZyYW1l
RG9tYWluKi8sIFJlZ2lzdHJhYmxlRG9tYWluJiYgLyp0b3BGcmFtZURvbWFpbiovLCBGcmFtZSYs
IFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikg
eyBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0
b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0cmFi
bGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWUmLCBTdG9yYWdlQWNjZXNzU2NvcGUgc2Nv
cGUsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXF1ZXN0U3RvcmFnZUFjY2Vzc1Jlc3Vs
dCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoeyBTdG9yYWdlQWNj
ZXNzV2FzR3JhbnRlZDo6Tm8sIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bjo6Tm8sIHNjb3Bl
LCBXVEZNb3ZlKHRvcEZyYW1lRG9tYWluKSwgV1RGTW92ZShzdWJGcmFtZURvbWFpbikgfSk7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgaGFzUGFnZUxldmVsU3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgLyp0b3BMZXZlbERvbWFpbiovLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
LypyZXNvdXJjZURvbWFpbiovKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA3
ZDM0ZWUxOWUwMTdjOTYwNTJlMGVmN2E2OTNhODI5Y2IzMTRmNWNjLi5jZGRlMTM4ODM0M2RkMjU4
NTUwYzc0ZTNjZmNiNzAxYjU0NTNjOThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTQ0
MSw2ICsxNDQxLDExIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0U3RvcmFnZUFjY2Vz
cyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSCiAgICAgQVNTRVJUKHdlYkZy
YW1lKTsKICAgICBtX3BhZ2UucmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV1RGTW92ZShzdWJGcmFtZURv
bWFpbiksIFdURk1vdmUodG9wRnJhbWVEb21haW4pLCAqd2ViRnJhbWUsIHNjb3BlLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CisKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpoYXNQYWdl
TGV2ZWxTdG9yYWdlQWNjZXNzKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiB0b3BM
ZXZlbERvbWFpbiwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9t
YWluKSBjb25zdAoreworICAgIHJldHVybiBtX3BhZ2UuaGFzUGFnZUxldmVsU3RvcmFnZUFjY2Vz
cyh0b3BMZXZlbERvbWFpbiwgcmVzb3VyY2VEb21haW4pOworfQogI2VuZGlmCiAKICNpZiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDBiNzZjNTI2ZGJj
ZjFmYTgxMmQxMWEyMWVlNzBjZWM3MTFlOTYzMDQuLmE4NGQyYjgyNWYyNzE1OWM3MmQ1MjJlZTNk
OTY5OTJmM2ZjM2VlMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTQxMCw2ICs0MTAsNyBAQCBw
cml2YXRlOgogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgdm9pZCBo
YXNTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21h
aW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6
OkZyYW1lJiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKICAg
ICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYg
c3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21h
aW4sIFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Njb3BlLCBXVEY6OkNv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UmVxdWVzdFN0b3JhZ2VBY2Nlc3NSZXN1bHQp
PiYmKSBmaW5hbDsKKyAgICBib29sIGhhc1BhZ2VMZXZlbFN0b3JhZ2VBY2Nlc3MoY29uc3QgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4mIHRvcExldmVsRG9tYWluLCBjb25zdCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4pIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNjZDRiNmRhMTE5ODY3NmNh
ZTA0ZWQyYzI2YTk2N2U3MDIzMjcwYzIuLmExZDI4OWY4YzFmNDA1YzE4OWM2Njc5OWQ1ODNkNTMy
YzIxYzU2ZjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wOS0xMSAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbGF4IEJyb2FkY2FzdENoYW5uZWwgb3Jp
Z2luIHBhcnRpdGlvbmluZyBpZiBpZnJhbWUgaGFzIHN0b3JhZ2UgYWNjZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAxNjQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3QgY292
ZXJhZ2UuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL21lc3NhZ2luZy9icm9hZGNhc3RjaGFubmVs
LXBhcnRpdGlvbmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9tZXNzYWdpbmcvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25p
bmctd2l0aC1zdG9yYWdlLWFjY2Vzcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L21lc3NhZ2luZy9yZXNvdXJjZXMvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctd2l0aC1z
dG9yYWdlLWFjY2Vzcy1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9t
ZXNzYWdpbmcvcmVzb3VyY2VzL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLXdpdGgtc3Rv
cmFnZS1hY2Nlc3MtcG9wdXAuaHRtbDogQWRkZWQuCisKIDIwMjEtMDktMTEgIFBoaWxpcHBlIE5v
cm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHTElCXSBNZWRpYVNlc3Np
b24gaXMgbm90IGVuYWJsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVz
c2FnaW5nL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLXdpdGgtc3RvcmFnZS1hY2Nlc3Mt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcvYnJvYWRjYXN0
Y2hhbm5lbC1wYXJ0aXRpb25pbmctd2l0aC1zdG9yYWdlLWFjY2Vzcy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTYyYThhYzk2YmM3YmE1Y2YyMzAyMjIxZjFiMzM3NmNlMTRmNmE0YQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL2Jyb2FkY2FzdGNo
YW5uZWwtcGFydGl0aW9uaW5nLXdpdGgtc3RvcmFnZS1hY2Nlc3MtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTEgQEAKK1Rlc3RzIHRoYXQgQnJvYWRjYXN0Q2hhbm5lbCdzIG9yaWdpbiBwYXJ0aXRp
b25pbmcgY2FuIGJlIHJlbGF4ZWQgdmlhIHJlcXVlc3RTdG9yYWdlQWNjZXNzKCkKKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgUmVjZWl2ZWQgbWVzc2FnZSBmcm9tIHNhbWUt
b3JpZ2luIGlmcmFtZSB3aXRoIHN0b3JhZ2UgYWNjZXNzIHVuZGVyIGNyb3NzLW9yaWdpbiBwb3B1
cAorUEFTUyBnb3RNZXNzYWdlRnJvbVNhbWVPcmlnaW5JZnJhbWVVbmRlckNyb3NzT3JpZ2luUG9w
dXAgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9icm9h
ZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmlu
Zy13aXRoLXN0b3JhZ2UtYWNjZXNzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTJhYzM3ZDQyY2U1NWE1MmUz
NTcxNWQxNGU4OTk0OWUwODJkZDY5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVzc2FnaW5nL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLXdpdGgtc3Rv
cmFnZS1hY2Nlc3MuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIEJyb2FkY2FzdENoYW5uZWxPcmlnaW5QYXJ0aXRpb25pbmdFbmFi
bGVkPXRydWUgXSAtLT4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0
cyB0aGF0IEJyb2FkY2FzdENoYW5uZWwncyBvcmlnaW4gcGFydGl0aW9uaW5nIGNhbiBiZSByZWxh
eGVkIHZpYSByZXF1ZXN0U3RvcmFnZUFjY2VzcygpIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KworbGV0IGJjID0gbmV3IEJyb2FkY2FzdENoYW5uZWwoImJyb2FkY2FzdGNoYW5uZWwtcGFydGl0
aW9uaW5nLXdpdGgtc3RvcmFnZS1hY2Nlc3MiKTsKKworbGV0IGdvdE1lc3NhZ2VGcm9tU2FtZU9y
aWdpbklmcmFtZVVuZGVyQ3Jvc3NPcmlnaW5Qb3B1cCA9IGZhbHNlOworYmMub25tZXNzYWdlID0g
KG1lc3NhZ2UpID0+IHsKKyAgICBpZiAobWVzc2FnZS5kYXRhID09ICJzYW1lLW9yaWdpbi1pZnJh
bWUtdW5kZXItY3Jvc3Mtb3JpZ2luLXBvcHVwLXdpdGgtc3RvcmFnZS1hY2Nlc3MiKSB7CisgICAg
ICAgIHRlc3RQYXNzZWQoIlJlY2VpdmVkIG1lc3NhZ2UgZnJvbSBzYW1lLW9yaWdpbiBpZnJhbWUg
d2l0aCBzdG9yYWdlIGFjY2VzcyB1bmRlciBjcm9zcy1vcmlnaW4gcG9wdXAiKTsKKyAgICAgICAg
c2hvdWxkQmVGYWxzZSgiZ290TWVzc2FnZUZyb21TYW1lT3JpZ2luSWZyYW1lVW5kZXJDcm9zc09y
aWdpblBvcHVwIik7CisgICAgICAgIGdvdE1lc3NhZ2VGcm9tU2FtZU9yaWdpbklmcmFtZVVuZGVy
Q3Jvc3NPcmlnaW5Qb3B1cCA9IHRydWU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdEZhaWxl
ZCgiUmVjZWl2ZWQgdW5leHBlY3RlZCBtZXNzYWdlOiAiICsgbWVzc2FnZS5kYXRhKTsKKyAgICB9
CisKKyAgICBpZiAoZ290TWVzc2FnZUZyb21TYW1lT3JpZ2luSWZyYW1lVW5kZXJDcm9zc09yaWdp
blBvcHVwKQorICAgICAgICBzZXRUaW1lb3V0KGZpbmlzaEpTVGVzdCwgMTAwMCk7Cit9OworCitv
bmxvYWQgPSAoKSA9PiB7CisgICAgb3BlbigiaHR0cDovL2xvY2FsaG9zdDo4MDAwL21lc3NhZ2lu
Zy9yZXNvdXJjZXMvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctd2l0aC1zdG9yYWdlLWFj
Y2Vzcy1wb3B1cC5odG1sIik7Cit9OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9yZXNvdXJjZXMvYnJvYWRj
YXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctd2l0aC1zdG9yYWdlLWFjY2Vzcy1pZnJhbWUuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNhc3RjaGFu
bmVsLXBhcnRpdGlvbmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjhkMzdkYmY3ZWQ0ZDU5OWI3Mjk4N2U5OWY5MzAwMGE4ZGIyMWVlNjgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9yZXNvdXJjZXMvYnJvYWRj
YXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctd2l0aC1zdG9yYWdlLWFjY2Vzcy1pZnJhbWUuaHRtbApA
QCAtMCwwICsxLDE4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0
PgorcGFydGl0aW9uZWRDaGFubmVsID0gbmV3IEJyb2FkY2FzdENoYW5uZWwoImJyb2FkY2FzdGNo
YW5uZWwtcGFydGl0aW9uaW5nLXdpdGgtc3RvcmFnZS1hY2Nlc3MiKTsKK3BhcnRpdGlvbmVkQ2hh
bm5lbC5wb3N0TWVzc2FnZSgic2FtZS1vcmlnaW4taWZyYW1lLXVuZGVyLWNyb3NzLW9yaWdpbi1w
b3B1cC13aXRob3V0LXN0b3JhZ2UtYWNjZXNzLTEiKTsKKworaW50ZXJuYWxzLndpdGhVc2VyR2Vz
dHVyZSgoKSA9PiB7CisgICAgZG9jdW1lbnQucmVxdWVzdFN0b3JhZ2VBY2Nlc3MoKS50aGVuKCgp
ID0+IHsKKyAgICAgICAgdW5wYXJ0aXRpb25lZENoYW5uZWwgPSBuZXcgQnJvYWRjYXN0Q2hhbm5l
bCgiYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctd2l0aC1zdG9yYWdlLWFjY2VzcyIpOwor
ICAgICAgICB1bnBhcnRpdGlvbmVkQ2hhbm5lbC5wb3N0TWVzc2FnZSgic2FtZS1vcmlnaW4taWZy
YW1lLXVuZGVyLWNyb3NzLW9yaWdpbi1wb3B1cC13aXRoLXN0b3JhZ2UtYWNjZXNzIik7CisKKyAg
ICAgICAgcGFydGl0aW9uZWRDaGFubmVsLnBvc3RNZXNzYWdlKCJzYW1lLW9yaWdpbi1pZnJhbWUt
dW5kZXItY3Jvc3Mtb3JpZ2luLXBvcHVwLXdpdGhvdXQtc3RvcmFnZS1hY2Nlc3MtMiIpOworICAg
IH0pOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNhc3RjaGFubmVsLXBh
cnRpdGlvbmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLXBvcHVwLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lc3NhZ2luZy9yZXNvdXJjZXMvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25p
bmctd2l0aC1zdG9yYWdlLWFjY2Vzcy1wb3B1cC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4NmExZTllZTY1
OWRkOTU2MzNiNmIzYzFlMDNiYTRiODQ4ZTJiZTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9yZXNvdXJjZXMvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0
aXRpb25pbmctd2l0aC1zdG9yYWdlLWFjY2Vzcy1wb3B1cC5odG1sCkBAIC0wLDAgKzEsNiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9tZXNzYWdpbmcvcmVzb3VyY2VzL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9u
aW5nLXdpdGgtc3RvcmFnZS1hY2Nlc3MtaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5Pgor
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437968</attachid>
            <date>2021-09-11 16:01:57 -0700</date>
            <delta_ts>2021-09-11 17:40:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230164-20210911160157.patch</filename>
            <type>text/plain</type>
            <size>23440</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDdjZDZiMjgwNjA5ODA0
NWNkNTQ5NTQ2MTBkOGEyZTg2YzE3NzBlYi4uZjExYWUwZGE2MWY1MjNiZjU4NTdiZjBhYjY2MGQ0
ZWQ5NTBjY2U0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTA5LTExICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVsYXggQnJvYWRjYXN0Q2hh
bm5lbCBvcmlnaW4gcGFydGl0aW9uaW5nIGlmIGlmcmFtZSBoYXMgc3RvcmFnZSBhY2Nlc3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDE2NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHIyODIxMDUs
IHdlIHN0YXJ0ZWQgcGFydGl0aW9uaW5nIG9yaWdpbnMgZm9yIEJyb2FkY2FzdENoYW5uZWwgdXNp
bmcgdG9wT3JpZ2luL2ZyYW1lT3JpZ2luLgorICAgICAgICBUaGlzIHByZXZlbnRzIGEgdG9wRnJh
bWUgb2Ygb3JpZ2luIEEgdG8gbWVzc2FnZSBhIHN1YmZyYW1lIG9mIG9yaWdpbiBBIGlmIHRoYXQg
c3ViZnJhbWUgaWYgdW5kZXIKKyAgICAgICAgYW5vdGhlciBkb21haW4gQi4gSG93ZXZlciwgdGhl
IGBkb2N1bWVudC5yZXF1ZXN0U3RvcmFnZUFjY2VzcygpYCBBUEkgZXhpc3RzIHRvIHJlbGF4IHN0
b3JhZ2UKKyAgICAgICAgcGFydGl0aW9uaW5nIGFuZCBHZWNrbyByZWxpZXMgb24gdGhpcyB0byBy
ZWxheCBCcm9hZGNhc3RDaGFubmVsIG9yaWdpbiBwYXJ0aXRpb25pbmcgYXMgd2VsbC4KKyAgICAg
ICAgVGhpcyBwYXRjaCBhbGlnbnMgV2ViS2l0J3MgYmVoYXZpb3Igd2l0aCBHZWNrby4KKworICAg
ICAgICBUZXN0OiBodHRwL3Rlc3RzL21lc3NhZ2luZy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlv
bmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLmh0bWwKKworICAgICAgICAqIGRvbS9Ccm9hZGNhc3RD
aGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZFBhcnRpdGlvbk9yaWdpbik6Cisg
ICAgICAgIChXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsOjpNYWluVGhyZWFkQnJpZGdlOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbDo6TWFpblRocmVhZEJyaWRn
ZTo6bmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsOjpNYWlu
VGhyZWFkQnJpZGdlOjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJyb2Fk
Y2FzdENoYW5uZWw6Ok1haW5UaHJlYWRCcmlkZ2U6Ok1haW5UaHJlYWRCcmlkZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbDo6TWFpblRocmVhZEJyaWRnZTo6ZW5zdXJlT25N
YWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWw6Ok1haW5UaHJl
YWRCcmlkZ2U6OnJlZ2lzdGVyQ2hhbm5lbCk6CisgICAgICAgIChXZWJDb3JlOjpCcm9hZGNhc3RD
aGFubmVsOjpNYWluVGhyZWFkQnJpZGdlOjp1bnJlZ2lzdGVyQ2hhbm5lbCk6CisgICAgICAgIChX
ZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsOjpNYWluVGhyZWFkQnJpZGdlOjpwb3N0TWVzc2FnZSk6
CisgICAgICAgIChXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsOjpCcm9hZGNhc3RDaGFubmVsKToK
KyAgICAgICAgKFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWw6On5Ccm9hZGNhc3RDaGFubmVsKToK
KyAgICAgICAgKFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWw6OmlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbDo6bmFtZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsOjpwb3N0TWVzc2FnZSk6CisgICAgICAgIChXZWJD
b3JlOjpCcm9hZGNhc3RDaGFubmVsOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpCcm9hZGNh
c3RDaGFubmVsOjpkaXNwYXRjaE1lc3NhZ2UpOgorICAgICAgICAqIGRvbS9Ccm9hZGNhc3RDaGFu
bmVsLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkNocm9tZUNsaWVudDo6aGFzUGFnZUxldmVsU3RvcmFnZUFjY2VzcyBjb25zdCk6CisKIDIwMjEt
MDktMTEgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUg
cmVzdCBvZiB0aGUgTGVnYWN5SW5saW5lVGV4dEJveCBwYWludGluZyBjb2RlIHRvIFRleHRCb3hQ
YWludGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGExZGYwNzAwOWZkMmU3MWZiNTNhNTMyYWMyNGQ3NmEzMjFmYWI1
ZDQuLjFkOGQyM2ZkMTViODE4OWRkOWYxNmJiNDAwZDQyYTBhOGZhNTRkYjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMjEtMDktMTEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KKworICAgICAgICBSZWxheCBCcm9hZGNhc3RDaGFubmVsIG9yaWdpbiBwYXJ0aXRpb25pbmcg
aWYgaWZyYW1lIGhhcyBzdG9yYWdlIGFjY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMTY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6aGFzUGFnZUxl
dmVsU3RvcmFnZUFjY2VzcyBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKwogMjAyMS0wOS0xMSAgRGF2aWQgS2lsemVyICA8ZGRr
aWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2
ZXIoKSBzaG91bGQgdXNlIHdlYWsgb2JzZXJ2ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0
Q2hhbm5lbC5jcHAKaW5kZXggMWM2MjU2M2MxMTFlMjg2NmUyMjg4ZTZlZGE2NDhiYzU5YWFmZmQz
MC4uMWZkMDY1NWIyOWJjM2JhMTQ2NmVlNGJjYTlkNWM4N2U1YjRkNDNjNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmNwcApAQCAtMjcsNiArMjcsOCBAQAogI2luY2x1ZGUg
IkJyb2FkY2FzdENoYW5uZWwuaCIKIAogI2luY2x1ZGUgIkJyb2FkY2FzdENoYW5uZWxSZWdpc3Ry
eS5oIgorI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2lu
Y2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKICNpbmNsdWRl
ICJQYWdlLmgiCkBAIC01NywzMyArNTksMTM3IEBAIHN0YXRpYyBIYXNoTWFwPEJyb2FkY2FzdENo
YW5uZWxJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mIGNoCiAg
ICAgcmV0dXJuIG1hcDsKIH0KIAotQnJvYWRjYXN0Q2hhbm5lbDo6QnJvYWRjYXN0Q2hhbm5lbChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUpCi0gICAg
OiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCi0gICAgLCBtX25hbWUobmFtZSkKLSAgICAsIG1f
b3JpZ2luIHsgY29udGV4dC5zZXR0aW5nc1ZhbHVlcygpLmJyb2FkY2FzdENoYW5uZWxPcmlnaW5Q
YXJ0aXRpb25pbmdFbmFibGVkID8gY29udGV4dC50b3BPcmlnaW4oKS5kYXRhKCkgOiBjb250ZXh0
LnNlY3VyaXR5T3JpZ2luKCktPmRhdGEoKSwgY29udGV4dC5zZWN1cml0eU9yaWdpbigpLT5kYXRh
KCkgfQotICAgICwgbV9pZGVudGlmaWVyKEJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyOjpnZW5l
cmF0ZVRocmVhZFNhZmUoKSkKK3N0YXRpYyBib29sIHNob3VsZFBhcnRpdGlvbk9yaWdpbihEb2N1
bWVudCYgZG9jdW1lbnQpCiB7CisgICAgaWYgKCFkb2N1bWVudC5zZXR0aW5ncygpLmJyb2FkY2Fz
dENoYW5uZWxPcmlnaW5QYXJ0aXRpb25pbmdFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGlmICghZG9jdW1lbnQuc2V0dGluZ3MoKS5zdG9yYWdlQWNjZXNzQVBJRW5hYmxl
ZCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5w
YWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVy
biAhcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuaGFzUGFnZUxldmVsU3RvcmFnZUFjY2VzcyhSZWdp
c3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbUhvc3QoZG9jdW1lbnQudG9wRG9jdW1l
bnQoKS5zZWN1cml0eU9yaWdpbigpLmhvc3QoKSksIFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNr
ZWRDcmVhdGVGcm9tSG9zdChkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmhvc3QoKSkpOworfQor
CitjbGFzcyBCcm9hZGNhc3RDaGFubmVsOjpNYWluVGhyZWFkQnJpZGdlIDogcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGVkPE1haW5UaHJlYWRCcmlkZ2UsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6
Ok1haW4+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE1haW5UaHJlYWRCcmlkZ2U+IGNyZWF0
ZShCcm9hZGNhc3RDaGFubmVsJiBjaGFubmVsLCBjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgewot
ICAgICAgICBMb2NrZXIgbG9ja2VyIHsgYWxsQnJvYWRjYXN0Q2hhbm5lbHNMb2NrIH07Ci0gICAg
ICAgIGFsbEJyb2FkY2FzdENoYW5uZWxzKCkuYWRkKG1faWRlbnRpZmllciwgdGhpcyk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1haW5UaHJlYWRCcmlkZ2UoY2hhbm5lbCwgbmFtZSkp
OworICAgIH0KKworICAgIHZvaWQgcmVnaXN0ZXJDaGFubmVsKCk7CisgICAgdm9pZCB1bnJlZ2lz
dGVyQ2hhbm5lbCgpOworICAgIHZvaWQgcG9zdE1lc3NhZ2UoUmVmPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4mJik7CisKKyAgICBTdHJpbmcgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZS5pc29s
YXRlZENvcHkoKTsgfQorICAgIEJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIo
KSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKworcHJpdmF0ZToKKyAgICBNYWluVGhy
ZWFkQnJpZGdlKEJyb2FkY2FzdENoYW5uZWwmLCBjb25zdCBTdHJpbmcmIG5hbWUpOworCisgICAg
dm9pZCBlbnN1cmVPbk1haW5UaHJlYWQoRnVuY3Rpb248dm9pZChEb2N1bWVudCYpPiYmKTsKKwor
ICAgIFdlYWtQdHI8QnJvYWRjYXN0Q2hhbm5lbD4gbV9icm9hZGNhc3RDaGFubmVsOworICAgIGNv
bnN0IEJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBjb25zdCBT
dHJpbmcgbV9uYW1lOyAvLyBNYWluIHRocmVhZCBvbmx5LgorICAgIENsaWVudE9yaWdpbiBtX29y
aWdpbjsgLy8gTWFpbiB0aHJlYWQgb25seS4KK307CisKK0Jyb2FkY2FzdENoYW5uZWw6Ok1haW5U
aHJlYWRCcmlkZ2U6Ok1haW5UaHJlYWRCcmlkZ2UoQnJvYWRjYXN0Q2hhbm5lbCYgY2hhbm5lbCwg
Y29uc3QgU3RyaW5nJiBuYW1lKQorICAgIDogbV9icm9hZGNhc3RDaGFubmVsKG1ha2VXZWFrUHRy
KGNoYW5uZWwpKQorICAgICwgbV9pZGVudGlmaWVyKEJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVy
OjpnZW5lcmF0ZVRocmVhZFNhZmUoKSkKKyAgICAsIG1fbmFtZShuYW1lLmlzb2xhdGVkQ29weSgp
KQoreworfQorCit2b2lkIEJyb2FkY2FzdENoYW5uZWw6Ok1haW5UaHJlYWRCcmlkZ2U6OmVuc3Vy
ZU9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKERvY3VtZW50Jik+JiYgdGFzaykKK3sKKyAgICBB
U1NFUlQobV9icm9hZGNhc3RDaGFubmVsKTsKKyAgICBpZiAoIW1fYnJvYWRjYXN0Q2hhbm5lbCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogY29udGV4dCA9IG1fYnJvYWRjYXN0Q2hhbm5l
bC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmICghY29udGV4dCkKKyAgICAgICAg
cmV0dXJuOworICAgIEFTU0VSVChjb250ZXh0LT5pc0NvbnRleHRUaHJlYWQoKSk7CisKKyAgICBS
ZWYgcHJvdGVjdGVkVGhpcyB7ICp0aGlzIH07CisgICAgaWYgKGlzPERvY3VtZW50PigqY29udGV4
dCkpCisgICAgICAgIHRhc2soZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KSk7CisgICAgZWxz
ZSB7CisgICAgICAgIGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPigqY29udGV4dCkudGhyZWFk
KCkud29ya2VyTG9hZGVyUHJveHkoKS5wb3N0VGFza1RvTG9hZGVyKFtwcm90ZWN0ZWRUaGlzID0g
V1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgdGFzayA9IFdURk1vdmUodGFzayldKGF1dG8mIGNvbnRl
eHQpIHsKKyAgICAgICAgICAgIHRhc2soZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpKTsKKyAg
ICAgICAgfSk7CiAgICAgfQorfQogCi0gICAgZW5zdXJlT25NYWluVGhyZWFkKFtvcmlnaW4gPSBj
cm9zc1RocmVhZENvcHkobV9vcmlnaW4pLCBuYW1lID0gY3Jvc3NUaHJlYWRDb3B5KG1fbmFtZSks
IGNvbnRleHRJZGVudGlmaWVyID0gY29udGV4dC5jb250ZXh0SWRlbnRpZmllcigpLCBjaGFubmVs
SWRlbnRpZmllciA9IG1faWRlbnRpZmllcl0oYXV0byYgZG9jdW1lbnQpIHsKK3ZvaWQgQnJvYWRj
YXN0Q2hhbm5lbDo6TWFpblRocmVhZEJyaWRnZTo6cmVnaXN0ZXJDaGFubmVsKCkKK3sKKyAgICBl
bnN1cmVPbk1haW5UaHJlYWQoW3RoaXMsIGNvbnRleHRJZGVudGlmaWVyID0gbV9icm9hZGNhc3RD
aGFubmVsLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmNvbnRleHRJZGVudGlmaWVyKCldKGF1
dG8mIGRvY3VtZW50KSB7CisgICAgICAgIG1fb3JpZ2luID0geyBzaG91bGRQYXJ0aXRpb25Pcmln
aW4oZG9jdW1lbnQpID8gZG9jdW1lbnQudG9wT3JpZ2luKCkuZGF0YSgpIDogZG9jdW1lbnQuc2Vj
dXJpdHlPcmlnaW4oKS5kYXRhKCksIGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpIH07
CisgICAgICAgIGlmIChhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpKQorICAgICAgICAgICAg
cGFnZS0+YnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KCkucmVnaXN0ZXJDaGFubmVsKG1fb3JpZ2lu
LCBtX25hbWUsIG1faWRlbnRpZmllcik7CisgICAgICAgIGNoYW5uZWxUb0NvbnRleHRJZGVudGlm
aWVyKCkuYWRkKG1faWRlbnRpZmllciwgY29udGV4dElkZW50aWZpZXIpOworICAgIH0pOworfQor
Cit2b2lkIEJyb2FkY2FzdENoYW5uZWw6Ok1haW5UaHJlYWRCcmlkZ2U6OnVucmVnaXN0ZXJDaGFu
bmVsKCkKK3sKKyAgICBlbnN1cmVPbk1haW5UaHJlYWQoW3RoaXNdKGF1dG8mIGRvY3VtZW50KSB7
CiAgICAgICAgIGlmIChhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpKQotICAgICAgICAgICAg
cGFnZS0+YnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KCkucmVnaXN0ZXJDaGFubmVsKG9yaWdpbiwg
bmFtZSwgY2hhbm5lbElkZW50aWZpZXIpOwotICAgICAgICBjaGFubmVsVG9Db250ZXh0SWRlbnRp
ZmllcigpLmFkZChjaGFubmVsSWRlbnRpZmllciwgY29udGV4dElkZW50aWZpZXIpOworICAgICAg
ICAgICAgcGFnZS0+YnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KCkudW5yZWdpc3RlckNoYW5uZWwo
bV9vcmlnaW4sIG1fbmFtZSwgbV9pZGVudGlmaWVyKTsKKyAgICAgICAgY2hhbm5lbFRvQ29udGV4
dElkZW50aWZpZXIoKS5yZW1vdmUobV9pZGVudGlmaWVyKTsKKyAgICB9KTsKK30KKwordm9pZCBC
cm9hZGNhc3RDaGFubmVsOjpNYWluVGhyZWFkQnJpZGdlOjpwb3N0TWVzc2FnZShSZWY8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UpCit7CisgICAgZW5zdXJlT25NYWluVGhyZWFkKFt0
aGlzLCBtZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKV0oYXV0byYgZG9jdW1lbnQpIG11dGFibGUg
eworICAgICAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOworICAgICAgICBpZiAoIXBh
Z2UpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYXV0byBibG9iSGFuZGxlcyA9IG1l
c3NhZ2UtPmJsb2JIYW5kbGVzKCk7CisgICAgICAgIHBhZ2UtPmJyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeSgpLnBvc3RNZXNzYWdlKG1fb3JpZ2luLCBtX25hbWUsIG1faWRlbnRpZmllciwgV1RGTW92
ZShtZXNzYWdlKSwgW2Jsb2JIYW5kbGVzID0gV1RGTW92ZShibG9iSGFuZGxlcyldIHsKKyAgICAg
ICAgICAgIC8vIEtlZXBzIEJsb2IgZGF0YSBpbnNpZGUgbWVzc2FnZURhdGEgYWxpdmUgdW50aWwg
dGhlIG1lc3NhZ2UgaGFzIGJlZW4gZGVsaXZlcmVkLgorICAgICAgICB9KTsKICAgICB9KTsKIH0K
IAorQnJvYWRjYXN0Q2hhbm5lbDo6QnJvYWRjYXN0Q2hhbm5lbChTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUpCisgICAgOiBBY3RpdmVET01PYmplY3Qo
JmNvbnRleHQpCisgICAgLCBtX21haW5UaHJlYWRCcmlkZ2UoTWFpblRocmVhZEJyaWRnZTo6Y3Jl
YXRlKCp0aGlzLCBuYW1lKSkKK3sKKyAgICB7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBhbGxC
cm9hZGNhc3RDaGFubmVsc0xvY2sgfTsKKyAgICAgICAgYWxsQnJvYWRjYXN0Q2hhbm5lbHMoKS5h
ZGQobV9tYWluVGhyZWFkQnJpZGdlLT5pZGVudGlmaWVyKCksIHRoaXMpOworICAgIH0KKyAgICBt
X21haW5UaHJlYWRCcmlkZ2UtPnJlZ2lzdGVyQ2hhbm5lbCgpOworfQorCiBCcm9hZGNhc3RDaGFu
bmVsOjp+QnJvYWRjYXN0Q2hhbm5lbCgpCiB7CiAgICAgY2xvc2UoKTsKICAgICB7CiAgICAgICAg
IExvY2tlciBsb2NrZXIgeyBhbGxCcm9hZGNhc3RDaGFubmVsc0xvY2sgfTsKLSAgICAgICAgYWxs
QnJvYWRjYXN0Q2hhbm5lbHMoKS5yZW1vdmUobV9pZGVudGlmaWVyKTsKKyAgICAgICAgYWxsQnJv
YWRjYXN0Q2hhbm5lbHMoKS5yZW1vdmUobV9tYWluVGhyZWFkQnJpZGdlLT5pZGVudGlmaWVyKCkp
OwogICAgIH0KIH0KIAorQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgQnJvYWRjYXN0Q2hhbm5l
bDo6aWRlbnRpZmllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbWFpblRocmVhZEJyaWRnZS0+
aWRlbnRpZmllcigpOworfQorCitTdHJpbmcgQnJvYWRjYXN0Q2hhbm5lbDo6bmFtZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fbWFpblRocmVhZEJyaWRnZS0+bmFtZSgpOworfQorCiBFeGNlcHRp
b25Pcjx2b2lkPiBCcm9hZGNhc3RDaGFubmVsOjpwb3N0TWVzc2FnZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0JiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBtZXNzYWdlKQogewogICAgIGlmIChtX2lz
Q2xvc2VkKQpAQCAtOTUsMTcgKzIwMSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEJyb2FkY2FzdENo
YW5uZWw6OnBvc3RNZXNzYWdlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjCiAgICAg
ICAgIHJldHVybiBtZXNzYWdlRGF0YS5yZWxlYXNlRXhjZXB0aW9uKCk7CiAgICAgQVNTRVJUKHBv
cnRzLmlzRW1wdHkoKSk7CiAKLSAgICBlbnN1cmVPbk1haW5UaHJlYWQoW29yaWdpbiA9IGNyb3Nz
VGhyZWFkQ29weShtX29yaWdpbiksIG5hbWUgPSBjcm9zc1RocmVhZENvcHkobV9uYW1lKSwgaWRl
bnRpZmllciA9IG1faWRlbnRpZmllciwgbWVzc2FnZURhdGEgPSBtZXNzYWdlRGF0YS5yZWxlYXNl
UmV0dXJuVmFsdWUoKV0oYXV0byYgZG9jdW1lbnQpIG11dGFibGUgewotICAgICAgICBhdXRvKiBw
YWdlID0gZG9jdW1lbnQucGFnZSgpOwotICAgICAgICBpZiAoIXBhZ2UpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgYXV0byBibG9iSGFuZGxlcyA9IG1lc3NhZ2VEYXRhLT5ibG9iSGFu
ZGxlcygpOwotICAgICAgICBwYWdlLT5icm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoKS5wb3N0TWVz
c2FnZShvcmlnaW4sIG5hbWUsIGlkZW50aWZpZXIsIFdURk1vdmUobWVzc2FnZURhdGEpLCBbYmxv
YkhhbmRsZXMgPSBXVEZNb3ZlKGJsb2JIYW5kbGVzKV0gewotICAgICAgICAgICAgLy8gS2VlcHMg
QmxvYiBkYXRhIGluc2lkZSBtZXNzYWdlRGF0YSBhbGl2ZSB1bnRpbCB0aGUgbWVzc2FnZSBoYXMg
YmVlbiBkZWxpdmVyZWQuCi0gICAgICAgIH0pOwotICAgIH0pOwotCisgICAgbV9tYWluVGhyZWFk
QnJpZGdlLT5wb3N0TWVzc2FnZShtZXNzYWdlRGF0YS5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAg
ICAgcmV0dXJuIHsgfTsKIH0KIApAQCAtMTE1LDExICsyMTEsNyBAQCB2b2lkIEJyb2FkY2FzdENo
YW5uZWw6OmNsb3NlKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9pc0Nsb3NlZCA9IHRydWU7
Ci0gICAgZW5zdXJlT25NYWluVGhyZWFkKFtvcmlnaW4gPSBjcm9zc1RocmVhZENvcHkobV9vcmln
aW4pLCBuYW1lID0gY3Jvc3NUaHJlYWRDb3B5KG1fbmFtZSksIGNoYW5uZWxJZGVudGlmaWVyID0g
bV9pZGVudGlmaWVyXShhdXRvJiBkb2N1bWVudCkgewotICAgICAgICBpZiAoYXV0byogcGFnZSA9
IGRvY3VtZW50LnBhZ2UoKSkKLSAgICAgICAgICAgIHBhZ2UtPmJyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeSgpLnVucmVnaXN0ZXJDaGFubmVsKG9yaWdpbiwgbmFtZSwgY2hhbm5lbElkZW50aWZpZXIp
OwotICAgICAgICBjaGFubmVsVG9Db250ZXh0SWRlbnRpZmllcigpLnJlbW92ZShjaGFubmVsSWRl
bnRpZmllcik7Ci0gICAgfSk7CisgICAgbV9tYWluVGhyZWFkQnJpZGdlLT51bnJlZ2lzdGVyQ2hh
bm5lbCgpOwogfQogCiB2b2lkIEJyb2FkY2FzdENoYW5uZWw6OmRpc3BhdGNoTWVzc2FnZVRvKEJy
b2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIGNoYW5uZWxJZGVudGlmaWVyLCBSZWY8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKQEAgLTE0OSwyNiArMjQxLDExIEBAIHZvaWQgQnJvYWRjYXN0Q2hhbm5l
bDo6ZGlzcGF0Y2hNZXNzYWdlKFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlz
LCBUYXNrU291cmNlOjpQb3N0ZWRNZXNzYWdlUXVldWUsIFt0aGlzLCBtZXNzYWdlID0gV1RGTW92
ZShtZXNzYWdlKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKCFtX2lzQ2xvc2VkKQotICAgICAg
ICAgICAgZGlzcGF0Y2hFdmVudChNZXNzYWdlRXZlbnQ6OmNyZWF0ZSh7IH0sIFdURk1vdmUobWVz
c2FnZSksIG1fb3JpZ2luLmNsaWVudE9yaWdpbi50b1N0cmluZygpKSk7CisgICAgICAgIGlmICgh
bV9pc0Nsb3NlZCAmJiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgICAgICBkaXNw
YXRjaEV2ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKHsgfSwgV1RGTW92ZShtZXNzYWdlKSwgc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygpKSk7CiAg
ICAgfSk7CiB9CiAKLXZvaWQgQnJvYWRjYXN0Q2hhbm5lbDo6ZW5zdXJlT25NYWluVGhyZWFkKEZ1
bmN0aW9uPHZvaWQoRG9jdW1lbnQmKT4mJiB0YXNrKQotewotICAgIGF1dG8qIGNvbnRleHQgPSBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0gICAgaWYgKCFjb250ZXh0KQotICAgICAgICByZXR1
cm47Ci0KLSAgICBpZiAoaXM8RG9jdW1lbnQ+KCpjb250ZXh0KSkKLSAgICAgICAgdGFzayhkb3du
Y2FzdDxEb2N1bWVudD4oKmNvbnRleHQpKTsKLSAgICBlbHNlIHsKLSAgICAgICAgZG93bmNhc3Q8
V29ya2VyR2xvYmFsU2NvcGU+KCpjb250ZXh0KS50aHJlYWQoKS53b3JrZXJMb2FkZXJQcm94eSgp
LnBvc3RUYXNrVG9Mb2FkZXIoW3Rhc2sgPSBXVEZNb3ZlKHRhc2spXShhdXRvJiBjb250ZXh0KSB7
Ci0gICAgICAgICAgICB0YXNrKGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSk7Ci0gICAgICAg
IH0pOwotICAgIH0KLX0KLQogY29uc3QgY2hhciogQnJvYWRjYXN0Q2hhbm5lbDo6YWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuICJCcm9hZGNhc3RDaGFubmVsIjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5oCmluZGV4IDZkYTY4M2I5Y2MxMmZlN2E2MjQz
YzA1ZGM1ZWE5YzVkYTRhNzZhYWUuLjlkMDkwMTVjN2VmYmVmYzkzNDIyNzE3NmUyM2ZlYzIzNzc4
YmZjMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuaApAQCAtNTYsOCArNTYs
OCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUmVmQ291bnRlZDxCcm9hZGNhc3RDaGFubmVsPjo6cmVm
OwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8QnJvYWRjYXN0Q2hhbm5lbD46OmRlcmVmOwogCi0gICAg
QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1f
aWRlbnRpZmllcjsgfQotICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bmFtZTsgfQorICAgIEJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25z
dDsKKyAgICBTdHJpbmcgbmFtZSgpIGNvbnN0OwogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcG9z
dE1lc3NhZ2UoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSBtZXNzYWdlKTsKICAg
ICB2b2lkIGNsb3NlKCk7CkBAIC04Miw5ICs4Miw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCB2aXJ0
dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBzdG9wKCkgZmlu
YWwgeyBjbG9zZSgpOyB9CiAKLSAgICBjb25zdCBTdHJpbmcgbV9uYW1lOwotICAgIGNvbnN0IENs
aWVudE9yaWdpbiBtX29yaWdpbjsKLSAgICBjb25zdCBCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmll
ciBtX2lkZW50aWZpZXI7CisgICAgY2xhc3MgTWFpblRocmVhZEJyaWRnZTsKKyAgICBSZWY8TWFp
blRocmVhZEJyaWRnZT4gbV9tYWluVGhyZWFkQnJpZGdlOwogICAgIGJvb2wgbV9pc0Nsb3NlZCB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc1JlbGV2YW50RXZlbnRMaXN0ZW5lciB7IGZhbHNlIH07
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggNzkxNmJlMDliN2JmMzk2Mjlm
MDAxYTU2NGMxZmM0Njk5NDg3NjQxNy4uZDJhMjRmOTUxNTYyYTc3ZWQ1YTk2YmUxNGQyYmI3NWRi
MjIyMWUwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC01NTQsNiArNTU0LDcg
QEAgcHVibGljOgogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgdmly
dHVhbCB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiAvKnN1YkZyYW1l
RG9tYWluKi8sIFJlZ2lzdHJhYmxlRG9tYWluJiYgLyp0b3BGcmFtZURvbWFpbiovLCBGcmFtZSYs
IFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikg
eyBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0
b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0cmFi
bGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWUmLCBTdG9yYWdlQWNjZXNzU2NvcGUgc2Nv
cGUsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXF1ZXN0U3RvcmFnZUFjY2Vzc1Jlc3Vs
dCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoeyBTdG9yYWdlQWNj
ZXNzV2FzR3JhbnRlZDo6Tm8sIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bjo6Tm8sIHNjb3Bl
LCBXVEZNb3ZlKHRvcEZyYW1lRG9tYWluKSwgV1RGTW92ZShzdWJGcmFtZURvbWFpbikgfSk7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgaGFzUGFnZUxldmVsU3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgLyp0b3BMZXZlbERvbWFpbiovLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
LypyZXNvdXJjZURvbWFpbiovKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA3
ZDM0ZWUxOWUwMTdjOTYwNTJlMGVmN2E2OTNhODI5Y2IzMTRmNWNjLi5jZGRlMTM4ODM0M2RkMjU4
NTUwYzc0ZTNjZmNiNzAxYjU0NTNjOThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTQ0
MSw2ICsxNDQxLDExIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0U3RvcmFnZUFjY2Vz
cyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSCiAgICAgQVNTRVJUKHdlYkZy
YW1lKTsKICAgICBtX3BhZ2UucmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV1RGTW92ZShzdWJGcmFtZURv
bWFpbiksIFdURk1vdmUodG9wRnJhbWVEb21haW4pLCAqd2ViRnJhbWUsIHNjb3BlLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CisKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpoYXNQYWdl
TGV2ZWxTdG9yYWdlQWNjZXNzKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiB0b3BM
ZXZlbERvbWFpbiwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9t
YWluKSBjb25zdAoreworICAgIHJldHVybiBtX3BhZ2UuaGFzUGFnZUxldmVsU3RvcmFnZUFjY2Vz
cyh0b3BMZXZlbERvbWFpbiwgcmVzb3VyY2VEb21haW4pOworfQogI2VuZGlmCiAKICNpZiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDBiNzZjNTI2ZGJj
ZjFmYTgxMmQxMWEyMWVlNzBjZWM3MTFlOTYzMDQuLmE4NGQyYjgyNWYyNzE1OWM3MmQ1MjJlZTNk
OTY5OTJmM2ZjM2VlMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTQxMCw2ICs0MTAsNyBAQCBw
cml2YXRlOgogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgdm9pZCBo
YXNTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21h
aW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6
OkZyYW1lJiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKICAg
ICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYg
c3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21h
aW4sIFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Njb3BlLCBXVEY6OkNv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UmVxdWVzdFN0b3JhZ2VBY2Nlc3NSZXN1bHQp
PiYmKSBmaW5hbDsKKyAgICBib29sIGhhc1BhZ2VMZXZlbFN0b3JhZ2VBY2Nlc3MoY29uc3QgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4mIHRvcExldmVsRG9tYWluLCBjb25zdCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4pIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNjZDRiNmRhMTE5ODY3NmNh
ZTA0ZWQyYzI2YTk2N2U3MDIzMjcwYzIuLmExZDI4OWY4YzFmNDA1YzE4OWM2Njc5OWQ1ODNkNTMy
YzIxYzU2ZjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wOS0xMSAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbGF4IEJyb2FkY2FzdENoYW5uZWwgb3Jp
Z2luIHBhcnRpdGlvbmluZyBpZiBpZnJhbWUgaGFzIHN0b3JhZ2UgYWNjZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAxNjQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3QgY292
ZXJhZ2UuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL21lc3NhZ2luZy9icm9hZGNhc3RjaGFubmVs
LXBhcnRpdGlvbmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9tZXNzYWdpbmcvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25p
bmctd2l0aC1zdG9yYWdlLWFjY2Vzcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L21lc3NhZ2luZy9yZXNvdXJjZXMvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctd2l0aC1z
dG9yYWdlLWFjY2Vzcy1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9t
ZXNzYWdpbmcvcmVzb3VyY2VzL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLXdpdGgtc3Rv
cmFnZS1hY2Nlc3MtcG9wdXAuaHRtbDogQWRkZWQuCisKIDIwMjEtMDktMTEgIFBoaWxpcHBlIE5v
cm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHTElCXSBNZWRpYVNlc3Np
b24gaXMgbm90IGVuYWJsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVz
c2FnaW5nL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLXdpdGgtc3RvcmFnZS1hY2Nlc3Mt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcvYnJvYWRjYXN0
Y2hhbm5lbC1wYXJ0aXRpb25pbmctd2l0aC1zdG9yYWdlLWFjY2Vzcy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTYyYThhYzk2YmM3YmE1Y2YyMzAyMjIxZjFiMzM3NmNlMTRmNmE0YQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL2Jyb2FkY2FzdGNo
YW5uZWwtcGFydGl0aW9uaW5nLXdpdGgtc3RvcmFnZS1hY2Nlc3MtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTEgQEAKK1Rlc3RzIHRoYXQgQnJvYWRjYXN0Q2hhbm5lbCdzIG9yaWdpbiBwYXJ0aXRp
b25pbmcgY2FuIGJlIHJlbGF4ZWQgdmlhIHJlcXVlc3RTdG9yYWdlQWNjZXNzKCkKKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgUmVjZWl2ZWQgbWVzc2FnZSBmcm9tIHNhbWUt
b3JpZ2luIGlmcmFtZSB3aXRoIHN0b3JhZ2UgYWNjZXNzIHVuZGVyIGNyb3NzLW9yaWdpbiBwb3B1
cAorUEFTUyBnb3RNZXNzYWdlRnJvbVNhbWVPcmlnaW5JZnJhbWVVbmRlckNyb3NzT3JpZ2luUG9w
dXAgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9icm9h
ZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmlu
Zy13aXRoLXN0b3JhZ2UtYWNjZXNzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTJhYzM3ZDQyY2U1NWE1MmUz
NTcxNWQxNGU4OTk0OWUwODJkZDY5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVzc2FnaW5nL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLXdpdGgtc3Rv
cmFnZS1hY2Nlc3MuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIEJyb2FkY2FzdENoYW5uZWxPcmlnaW5QYXJ0aXRpb25pbmdFbmFi
bGVkPXRydWUgXSAtLT4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0
cyB0aGF0IEJyb2FkY2FzdENoYW5uZWwncyBvcmlnaW4gcGFydGl0aW9uaW5nIGNhbiBiZSByZWxh
eGVkIHZpYSByZXF1ZXN0U3RvcmFnZUFjY2VzcygpIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KworbGV0IGJjID0gbmV3IEJyb2FkY2FzdENoYW5uZWwoImJyb2FkY2FzdGNoYW5uZWwtcGFydGl0
aW9uaW5nLXdpdGgtc3RvcmFnZS1hY2Nlc3MiKTsKKworbGV0IGdvdE1lc3NhZ2VGcm9tU2FtZU9y
aWdpbklmcmFtZVVuZGVyQ3Jvc3NPcmlnaW5Qb3B1cCA9IGZhbHNlOworYmMub25tZXNzYWdlID0g
KG1lc3NhZ2UpID0+IHsKKyAgICBpZiAobWVzc2FnZS5kYXRhID09ICJzYW1lLW9yaWdpbi1pZnJh
bWUtdW5kZXItY3Jvc3Mtb3JpZ2luLXBvcHVwLXdpdGgtc3RvcmFnZS1hY2Nlc3MiKSB7CisgICAg
ICAgIHRlc3RQYXNzZWQoIlJlY2VpdmVkIG1lc3NhZ2UgZnJvbSBzYW1lLW9yaWdpbiBpZnJhbWUg
d2l0aCBzdG9yYWdlIGFjY2VzcyB1bmRlciBjcm9zcy1vcmlnaW4gcG9wdXAiKTsKKyAgICAgICAg
c2hvdWxkQmVGYWxzZSgiZ290TWVzc2FnZUZyb21TYW1lT3JpZ2luSWZyYW1lVW5kZXJDcm9zc09y
aWdpblBvcHVwIik7CisgICAgICAgIGdvdE1lc3NhZ2VGcm9tU2FtZU9yaWdpbklmcmFtZVVuZGVy
Q3Jvc3NPcmlnaW5Qb3B1cCA9IHRydWU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdEZhaWxl
ZCgiUmVjZWl2ZWQgdW5leHBlY3RlZCBtZXNzYWdlOiAiICsgbWVzc2FnZS5kYXRhKTsKKyAgICB9
CisKKyAgICBpZiAoZ290TWVzc2FnZUZyb21TYW1lT3JpZ2luSWZyYW1lVW5kZXJDcm9zc09yaWdp
blBvcHVwKQorICAgICAgICBzZXRUaW1lb3V0KGZpbmlzaEpTVGVzdCwgMTAwMCk7Cit9OworCitv
bmxvYWQgPSAoKSA9PiB7CisgICAgb3BlbigiaHR0cDovL2xvY2FsaG9zdDo4MDAwL21lc3NhZ2lu
Zy9yZXNvdXJjZXMvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctd2l0aC1zdG9yYWdlLWFj
Y2Vzcy1wb3B1cC5odG1sIik7Cit9OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9yZXNvdXJjZXMvYnJvYWRj
YXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctd2l0aC1zdG9yYWdlLWFjY2Vzcy1pZnJhbWUuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNhc3RjaGFu
bmVsLXBhcnRpdGlvbmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjhkMzdkYmY3ZWQ0ZDU5OWI3Mjk4N2U5OWY5MzAwMGE4ZGIyMWVlNjgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9yZXNvdXJjZXMvYnJvYWRj
YXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctd2l0aC1zdG9yYWdlLWFjY2Vzcy1pZnJhbWUuaHRtbApA
QCAtMCwwICsxLDE4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0
PgorcGFydGl0aW9uZWRDaGFubmVsID0gbmV3IEJyb2FkY2FzdENoYW5uZWwoImJyb2FkY2FzdGNo
YW5uZWwtcGFydGl0aW9uaW5nLXdpdGgtc3RvcmFnZS1hY2Nlc3MiKTsKK3BhcnRpdGlvbmVkQ2hh
bm5lbC5wb3N0TWVzc2FnZSgic2FtZS1vcmlnaW4taWZyYW1lLXVuZGVyLWNyb3NzLW9yaWdpbi1w
b3B1cC13aXRob3V0LXN0b3JhZ2UtYWNjZXNzLTEiKTsKKworaW50ZXJuYWxzLndpdGhVc2VyR2Vz
dHVyZSgoKSA9PiB7CisgICAgZG9jdW1lbnQucmVxdWVzdFN0b3JhZ2VBY2Nlc3MoKS50aGVuKCgp
ID0+IHsKKyAgICAgICAgdW5wYXJ0aXRpb25lZENoYW5uZWwgPSBuZXcgQnJvYWRjYXN0Q2hhbm5l
bCgiYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctd2l0aC1zdG9yYWdlLWFjY2VzcyIpOwor
ICAgICAgICB1bnBhcnRpdGlvbmVkQ2hhbm5lbC5wb3N0TWVzc2FnZSgic2FtZS1vcmlnaW4taWZy
YW1lLXVuZGVyLWNyb3NzLW9yaWdpbi1wb3B1cC13aXRoLXN0b3JhZ2UtYWNjZXNzIik7CisKKyAg
ICAgICAgcGFydGl0aW9uZWRDaGFubmVsLnBvc3RNZXNzYWdlKCJzYW1lLW9yaWdpbi1pZnJhbWUt
dW5kZXItY3Jvc3Mtb3JpZ2luLXBvcHVwLXdpdGhvdXQtc3RvcmFnZS1hY2Nlc3MtMiIpOworICAg
IH0pOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNhc3RjaGFubmVsLXBh
cnRpdGlvbmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLXBvcHVwLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lc3NhZ2luZy9yZXNvdXJjZXMvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25p
bmctd2l0aC1zdG9yYWdlLWFjY2Vzcy1wb3B1cC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4NmExZTllZTY1
OWRkOTU2MzNiNmIzYzFlMDNiYTRiODQ4ZTJiZTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9yZXNvdXJjZXMvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0
aXRpb25pbmctd2l0aC1zdG9yYWdlLWFjY2Vzcy1wb3B1cC5odG1sCkBAIC0wLDAgKzEsNiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9tZXNzYWdpbmcvcmVzb3VyY2VzL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9u
aW5nLXdpdGgtc3RvcmFnZS1hY2Nlc3MtaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IGVjMmU1MTJhMzRiOTk3OGNjNDVkOGZmOGU1NDE5NzQ4NmI1MjExZDEuLmRiZDNlYmVm
YjY2ODFhOGZlNjZiNDE3NDBmMGU2NGYxZDhkMmRjNTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTc5LDYgKzc5LDkgQEAgZWRpdGluZy9h
c3luYy1jbGlwYm9hcmQvY2xpcGJvYXJkLXJlYWQtdGV4dC1mcm9tLXBsYXRmb3JtLmh0bWwgWyBT
a2lwIF0KIGVkaXRpbmcvYXN5bmMtY2xpcGJvYXJkL2NsaXBib2FyZC1yZWFkLXRleHQtc2FtZS1v
cmlnaW4uaHRtbCBbIFNraXAgXQogZWRpdGluZy9hc3luYy1jbGlwYm9hcmQvc2FuaXRpemUtd2hl
bi1yZWFkaW5nLW1hcmt1cC5odG1sIFsgU2tpcCBdCiAKKyMgTm8gcmVxdWVzdFN0b3JhZ2VBY2Nl
c3MoKSBzdXBwb3J0IGZvciBXSzEuCitodHRwL3Rlc3RzL21lc3NhZ2luZy9icm9hZGNhc3RjaGFu
bmVsLXBhcnRpdGlvbmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLmh0bWwgWyBTa2lwIF0KKwogaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL0Nsb3NlLTEwMDAtcmVhc29u
LmFueS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2Vic29ja2V0cy9DbG9zZS0xMDAwLXJlYXNvbi5hbnkud29ya2VyLmh0bWwgWyBQYXNzIEZh
aWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL2JpbmFy
eS8wMDEuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDljMTQyMzA5OGZiYmJmZDM2MWY0YjY1ZTMwMTNjMzM4MzRlNDA2
MDAuLmFhNDVkZDM1Y2Q1OGVjZDcyMzE4ZTY0NWUxMDY2MWUwZDJkNWI0MjAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC00NjM5LDYgKzQ2MzksNyBAQCBm
YXN0L3RleHQvb2Zmc2V0Rm9yUG9zaXRpb24tY29tcGxleC1mYWxsYmFjay5odG1sIFsgUGFzcyBG
YWlsdXJlIF0KICMgTm8gQnJvYWRjYXN0Q2hhbm5lbCBzdXBwb3J0IG9uIFdpbmRvd3MuCiBmYXN0
L2h0bWwvYnJvYWRjYXN0LWNoYW5uZWwtYmV0d2Vlbi1kaWZmZXJlbnQtc2Vzc2lvbnMuaHRtbCBb
IFNraXAgXQogaHR0cC90ZXN0cy9tZXNzYWdpbmcvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25p
bmcuaHRtbCBbIFNraXAgXQoraHR0cC90ZXN0cy9tZXNzYWdpbmcvYnJvYWRjYXN0Y2hhbm5lbC1w
YXJ0aXRpb25pbmctd2l0aC1zdG9yYWdlLWFjY2Vzcy5odG1sIFsgU2tpcCBdCiAKICMgVGhpcyB0
ZXN0IGlzIHNraXBwZWQgYmVjYXVzZSB0aGUgbmVjZXNzYXJ5IGZlYXR1cmUgZmxhZyBmdW5jdGlv
bmFsaXR5IHNwZWNpZmljIHRvIHRoZSBXaW5kb3dzIFdlYktpdCBsZWdhY3kgcG9ydCBpcwogIyBu
b3QgaW1wbGVtZW50ZWQuICBUaGUgZmVhdHVyZSBmbGFncyBpbiBxdWVzdGlvbiBhcmUgQ1NTQ291
bnRlclN0eWxlQXRSdWxlc0VuYWJsZWQgYW5kIENTU0NvdW50ZXJTdHlsZUF0UnVsZUltYWdlU3lt
Ym9sc0VuYWJsZWQuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437973</attachid>
            <date>2021-09-11 17:40:36 -0700</date>
            <delta_ts>2021-09-13 15:18:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230164-20210911174036.patch</filename>
            <type>text/plain</type>
            <size>23511</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDdjZDZiMjgwNjA5ODA0
NWNkNTQ5NTQ2MTBkOGEyZTg2YzE3NzBlYi4uZjExYWUwZGE2MWY1MjNiZjU4NTdiZjBhYjY2MGQ0
ZWQ5NTBjY2U0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTA5LTExICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVsYXggQnJvYWRjYXN0Q2hh
bm5lbCBvcmlnaW4gcGFydGl0aW9uaW5nIGlmIGlmcmFtZSBoYXMgc3RvcmFnZSBhY2Nlc3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDE2NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHIyODIxMDUs
IHdlIHN0YXJ0ZWQgcGFydGl0aW9uaW5nIG9yaWdpbnMgZm9yIEJyb2FkY2FzdENoYW5uZWwgdXNp
bmcgdG9wT3JpZ2luL2ZyYW1lT3JpZ2luLgorICAgICAgICBUaGlzIHByZXZlbnRzIGEgdG9wRnJh
bWUgb2Ygb3JpZ2luIEEgdG8gbWVzc2FnZSBhIHN1YmZyYW1lIG9mIG9yaWdpbiBBIGlmIHRoYXQg
c3ViZnJhbWUgaWYgdW5kZXIKKyAgICAgICAgYW5vdGhlciBkb21haW4gQi4gSG93ZXZlciwgdGhl
IGBkb2N1bWVudC5yZXF1ZXN0U3RvcmFnZUFjY2VzcygpYCBBUEkgZXhpc3RzIHRvIHJlbGF4IHN0
b3JhZ2UKKyAgICAgICAgcGFydGl0aW9uaW5nIGFuZCBHZWNrbyByZWxpZXMgb24gdGhpcyB0byBy
ZWxheCBCcm9hZGNhc3RDaGFubmVsIG9yaWdpbiBwYXJ0aXRpb25pbmcgYXMgd2VsbC4KKyAgICAg
ICAgVGhpcyBwYXRjaCBhbGlnbnMgV2ViS2l0J3MgYmVoYXZpb3Igd2l0aCBHZWNrby4KKworICAg
ICAgICBUZXN0OiBodHRwL3Rlc3RzL21lc3NhZ2luZy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlv
bmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLmh0bWwKKworICAgICAgICAqIGRvbS9Ccm9hZGNhc3RD
aGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZFBhcnRpdGlvbk9yaWdpbik6Cisg
ICAgICAgIChXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsOjpNYWluVGhyZWFkQnJpZGdlOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbDo6TWFpblRocmVhZEJyaWRn
ZTo6bmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsOjpNYWlu
VGhyZWFkQnJpZGdlOjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJyb2Fk
Y2FzdENoYW5uZWw6Ok1haW5UaHJlYWRCcmlkZ2U6Ok1haW5UaHJlYWRCcmlkZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbDo6TWFpblRocmVhZEJyaWRnZTo6ZW5zdXJlT25N
YWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWw6Ok1haW5UaHJl
YWRCcmlkZ2U6OnJlZ2lzdGVyQ2hhbm5lbCk6CisgICAgICAgIChXZWJDb3JlOjpCcm9hZGNhc3RD
aGFubmVsOjpNYWluVGhyZWFkQnJpZGdlOjp1bnJlZ2lzdGVyQ2hhbm5lbCk6CisgICAgICAgIChX
ZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsOjpNYWluVGhyZWFkQnJpZGdlOjpwb3N0TWVzc2FnZSk6
CisgICAgICAgIChXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsOjpCcm9hZGNhc3RDaGFubmVsKToK
KyAgICAgICAgKFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWw6On5Ccm9hZGNhc3RDaGFubmVsKToK
KyAgICAgICAgKFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWw6OmlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbDo6bmFtZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsOjpwb3N0TWVzc2FnZSk6CisgICAgICAgIChXZWJD
b3JlOjpCcm9hZGNhc3RDaGFubmVsOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpCcm9hZGNh
c3RDaGFubmVsOjpkaXNwYXRjaE1lc3NhZ2UpOgorICAgICAgICAqIGRvbS9Ccm9hZGNhc3RDaGFu
bmVsLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkNocm9tZUNsaWVudDo6aGFzUGFnZUxldmVsU3RvcmFnZUFjY2VzcyBjb25zdCk6CisKIDIwMjEt
MDktMTEgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUg
cmVzdCBvZiB0aGUgTGVnYWN5SW5saW5lVGV4dEJveCBwYWludGluZyBjb2RlIHRvIFRleHRCb3hQ
YWludGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGExZGYwNzAwOWZkMmU3MWZiNTNhNTMyYWMyNGQ3NmEzMjFmYWI1
ZDQuLjFkOGQyM2ZkMTViODE4OWRkOWYxNmJiNDAwZDQyYTBhOGZhNTRkYjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMjEtMDktMTEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KKworICAgICAgICBSZWxheCBCcm9hZGNhc3RDaGFubmVsIG9yaWdpbiBwYXJ0aXRpb25pbmcg
aWYgaWZyYW1lIGhhcyBzdG9yYWdlIGFjY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMTY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6aGFzUGFnZUxl
dmVsU3RvcmFnZUFjY2VzcyBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKwogMjAyMS0wOS0xMSAgRGF2aWQgS2lsemVyICA8ZGRr
aWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2
ZXIoKSBzaG91bGQgdXNlIHdlYWsgb2JzZXJ2ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0
Q2hhbm5lbC5jcHAKaW5kZXggMWM2MjU2M2MxMTFlMjg2NmUyMjg4ZTZlZGE2NDhiYzU5YWFmZmQz
MC4uMWU5NTcyZTg0ODg5ODBlM2NmNjdlZTUxZDkzNTM5ZTlhNTZmZTgzYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmNwcApAQCAtMjcsNiArMjcsOCBAQAogI2luY2x1ZGUg
IkJyb2FkY2FzdENoYW5uZWwuaCIKIAogI2luY2x1ZGUgIkJyb2FkY2FzdENoYW5uZWxSZWdpc3Ry
eS5oIgorI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2lu
Y2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKICNpbmNsdWRl
ICJQYWdlLmgiCkBAIC01NywzMyArNTksMTQxIEBAIHN0YXRpYyBIYXNoTWFwPEJyb2FkY2FzdENo
YW5uZWxJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mIGNoCiAg
ICAgcmV0dXJuIG1hcDsKIH0KIAotQnJvYWRjYXN0Q2hhbm5lbDo6QnJvYWRjYXN0Q2hhbm5lbChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUpCi0gICAg
OiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCi0gICAgLCBtX25hbWUobmFtZSkKLSAgICAsIG1f
b3JpZ2luIHsgY29udGV4dC5zZXR0aW5nc1ZhbHVlcygpLmJyb2FkY2FzdENoYW5uZWxPcmlnaW5Q
YXJ0aXRpb25pbmdFbmFibGVkID8gY29udGV4dC50b3BPcmlnaW4oKS5kYXRhKCkgOiBjb250ZXh0
LnNlY3VyaXR5T3JpZ2luKCktPmRhdGEoKSwgY29udGV4dC5zZWN1cml0eU9yaWdpbigpLT5kYXRh
KCkgfQotICAgICwgbV9pZGVudGlmaWVyKEJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyOjpnZW5l
cmF0ZVRocmVhZFNhZmUoKSkKK3N0YXRpYyBib29sIHNob3VsZFBhcnRpdGlvbk9yaWdpbihEb2N1
bWVudCYgZG9jdW1lbnQpCiB7CisgICAgaWYgKCFkb2N1bWVudC5zZXR0aW5ncygpLmJyb2FkY2Fz
dENoYW5uZWxPcmlnaW5QYXJ0aXRpb25pbmdFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgaWYgKCFkb2N1
bWVudC5zZXR0aW5ncygpLnN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkKCkpCisgICAgICAgIHJldHVy
biB0cnVlOworCisgICAgYXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKTsKKyAgICBpZiAoIXBh
Z2UpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuICFwYWdlLT5jaHJvbWUoKS5j
bGllbnQoKS5oYXNQYWdlTGV2ZWxTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNo
ZWNrZWRDcmVhdGVGcm9tSG9zdChkb2N1bWVudC50b3BEb2N1bWVudCgpLnNlY3VyaXR5T3JpZ2lu
KCkuaG9zdCgpKSwgUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KGRv
Y3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuaG9zdCgpKSk7CisjZWxzZQorICAgIHJldHVybiB0cnVl
OworI2VuZGlmCit9CisKK2NsYXNzIEJyb2FkY2FzdENoYW5uZWw6Ok1haW5UaHJlYWRCcmlkZ2Ug
OiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8TWFpblRocmVhZEJyaWRnZSwgV1RGOjpEZXN0
cnVjdGlvblRocmVhZDo6TWFpbj4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8TWFpblRocmVh
ZEJyaWRnZT4gY3JlYXRlKEJyb2FkY2FzdENoYW5uZWwmIGNoYW5uZWwsIGNvbnN0IFN0cmluZyYg
bmFtZSkKICAgICB7Ci0gICAgICAgIExvY2tlciBsb2NrZXIgeyBhbGxCcm9hZGNhc3RDaGFubmVs
c0xvY2sgfTsKLSAgICAgICAgYWxsQnJvYWRjYXN0Q2hhbm5lbHMoKS5hZGQobV9pZGVudGlmaWVy
LCB0aGlzKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWFpblRocmVhZEJyaWRnZShj
aGFubmVsLCBuYW1lKSk7CisgICAgfQorCisgICAgdm9pZCByZWdpc3RlckNoYW5uZWwoKTsKKyAg
ICB2b2lkIHVucmVnaXN0ZXJDaGFubmVsKCk7CisgICAgdm9pZCBwb3N0TWVzc2FnZShSZWY8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiYmKTsKKworICAgIFN0cmluZyBuYW1lKCkgY29uc3QgeyByZXR1
cm4gbV9uYW1lLmlzb2xhdGVkQ29weSgpOyB9CisgICAgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZp
ZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorCitwcml2YXRl
OgorICAgIE1haW5UaHJlYWRCcmlkZ2UoQnJvYWRjYXN0Q2hhbm5lbCYsIGNvbnN0IFN0cmluZyYg
bmFtZSk7CisKKyAgICB2b2lkIGVuc3VyZU9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKERvY3Vt
ZW50Jik+JiYpOworCisgICAgV2Vha1B0cjxCcm9hZGNhc3RDaGFubmVsPiBtX2Jyb2FkY2FzdENo
YW5uZWw7CisgICAgY29uc3QgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgbV9pZGVudGlmaWVy
OworICAgIGNvbnN0IFN0cmluZyBtX25hbWU7IC8vIE1haW4gdGhyZWFkIG9ubHkuCisgICAgQ2xp
ZW50T3JpZ2luIG1fb3JpZ2luOyAvLyBNYWluIHRocmVhZCBvbmx5LgorfTsKKworQnJvYWRjYXN0
Q2hhbm5lbDo6TWFpblRocmVhZEJyaWRnZTo6TWFpblRocmVhZEJyaWRnZShCcm9hZGNhc3RDaGFu
bmVsJiBjaGFubmVsLCBjb25zdCBTdHJpbmcmIG5hbWUpCisgICAgOiBtX2Jyb2FkY2FzdENoYW5u
ZWwobWFrZVdlYWtQdHIoY2hhbm5lbCkpCisgICAgLCBtX2lkZW50aWZpZXIoQnJvYWRjYXN0Q2hh
bm5lbElkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpKQorICAgICwgbV9uYW1lKG5hbWUu
aXNvbGF0ZWRDb3B5KCkpCit7Cit9CisKK3ZvaWQgQnJvYWRjYXN0Q2hhbm5lbDo6TWFpblRocmVh
ZEJyaWRnZTo6ZW5zdXJlT25NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQoRG9jdW1lbnQmKT4mJiB0
YXNrKQoreworICAgIEFTU0VSVChtX2Jyb2FkY2FzdENoYW5uZWwpOworICAgIGlmICghbV9icm9h
ZGNhc3RDaGFubmVsKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBjb250ZXh0ID0gbV9i
cm9hZGNhc3RDaGFubmVsLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAgaWYgKCFjb250
ZXh0KQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKGNvbnRleHQtPmlzQ29udGV4dFRocmVh
ZCgpKTsKKworICAgIFJlZiBwcm90ZWN0ZWRUaGlzIHsgKnRoaXMgfTsKKyAgICBpZiAoaXM8RG9j
dW1lbnQ+KCpjb250ZXh0KSkKKyAgICAgICAgdGFzayhkb3duY2FzdDxEb2N1bWVudD4oKmNvbnRl
eHQpKTsKKyAgICBlbHNlIHsKKyAgICAgICAgZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KCpj
b250ZXh0KS50aHJlYWQoKS53b3JrZXJMb2FkZXJQcm94eSgpLnBvc3RUYXNrVG9Mb2FkZXIoW3By
b3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCB0YXNrID0gV1RGTW92ZSh0YXNr
KV0oYXV0byYgY29udGV4dCkgeworICAgICAgICAgICAgdGFzayhkb3duY2FzdDxEb2N1bWVudD4o
Y29udGV4dCkpOworICAgICAgICB9KTsKICAgICB9Cit9CiAKLSAgICBlbnN1cmVPbk1haW5UaHJl
YWQoW29yaWdpbiA9IGNyb3NzVGhyZWFkQ29weShtX29yaWdpbiksIG5hbWUgPSBjcm9zc1RocmVh
ZENvcHkobV9uYW1lKSwgY29udGV4dElkZW50aWZpZXIgPSBjb250ZXh0LmNvbnRleHRJZGVudGlm
aWVyKCksIGNoYW5uZWxJZGVudGlmaWVyID0gbV9pZGVudGlmaWVyXShhdXRvJiBkb2N1bWVudCkg
ewordm9pZCBCcm9hZGNhc3RDaGFubmVsOjpNYWluVGhyZWFkQnJpZGdlOjpyZWdpc3RlckNoYW5u
ZWwoKQoreworICAgIGVuc3VyZU9uTWFpblRocmVhZChbdGhpcywgY29udGV4dElkZW50aWZpZXIg
PSBtX2Jyb2FkY2FzdENoYW5uZWwtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+Y29udGV4dElk
ZW50aWZpZXIoKV0oYXV0byYgZG9jdW1lbnQpIHsKKyAgICAgICAgbV9vcmlnaW4gPSB7IHNob3Vs
ZFBhcnRpdGlvbk9yaWdpbihkb2N1bWVudCkgPyBkb2N1bWVudC50b3BPcmlnaW4oKS5kYXRhKCkg
OiBkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmRhdGEoKSwgZG9jdW1lbnQuc2VjdXJpdHlPcmln
aW4oKS5kYXRhKCkgfTsKKyAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCkp
CisgICAgICAgICAgICBwYWdlLT5icm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoKS5yZWdpc3RlckNo
YW5uZWwobV9vcmlnaW4sIG1fbmFtZSwgbV9pZGVudGlmaWVyKTsKKyAgICAgICAgY2hhbm5lbFRv
Q29udGV4dElkZW50aWZpZXIoKS5hZGQobV9pZGVudGlmaWVyLCBjb250ZXh0SWRlbnRpZmllcik7
CisgICAgfSk7Cit9CisKK3ZvaWQgQnJvYWRjYXN0Q2hhbm5lbDo6TWFpblRocmVhZEJyaWRnZTo6
dW5yZWdpc3RlckNoYW5uZWwoKQoreworICAgIGVuc3VyZU9uTWFpblRocmVhZChbdGhpc10oYXV0
byYgZG9jdW1lbnQpIHsKICAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCkp
Ci0gICAgICAgICAgICBwYWdlLT5icm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoKS5yZWdpc3RlckNo
YW5uZWwob3JpZ2luLCBuYW1lLCBjaGFubmVsSWRlbnRpZmllcik7Ci0gICAgICAgIGNoYW5uZWxU
b0NvbnRleHRJZGVudGlmaWVyKCkuYWRkKGNoYW5uZWxJZGVudGlmaWVyLCBjb250ZXh0SWRlbnRp
Zmllcik7CisgICAgICAgICAgICBwYWdlLT5icm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoKS51bnJl
Z2lzdGVyQ2hhbm5lbChtX29yaWdpbiwgbV9uYW1lLCBtX2lkZW50aWZpZXIpOworICAgICAgICBj
aGFubmVsVG9Db250ZXh0SWRlbnRpZmllcigpLnJlbW92ZShtX2lkZW50aWZpZXIpOworICAgIH0p
OworfQorCit2b2lkIEJyb2FkY2FzdENoYW5uZWw6Ok1haW5UaHJlYWRCcmlkZ2U6OnBvc3RNZXNz
YWdlKFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSkKK3sKKyAgICBlbnN1cmVP
bk1haW5UaHJlYWQoW3RoaXMsIG1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpXShhdXRvJiBkb2N1
bWVudCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCk7Cisg
ICAgICAgIGlmICghcGFnZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBhdXRvIGJs
b2JIYW5kbGVzID0gbWVzc2FnZS0+YmxvYkhhbmRsZXMoKTsKKyAgICAgICAgcGFnZS0+YnJvYWRj
YXN0Q2hhbm5lbFJlZ2lzdHJ5KCkucG9zdE1lc3NhZ2UobV9vcmlnaW4sIG1fbmFtZSwgbV9pZGVu
dGlmaWVyLCBXVEZNb3ZlKG1lc3NhZ2UpLCBbYmxvYkhhbmRsZXMgPSBXVEZNb3ZlKGJsb2JIYW5k
bGVzKV0geworICAgICAgICAgICAgLy8gS2VlcHMgQmxvYiBkYXRhIGluc2lkZSBtZXNzYWdlRGF0
YSBhbGl2ZSB1bnRpbCB0aGUgbWVzc2FnZSBoYXMgYmVlbiBkZWxpdmVyZWQuCisgICAgICAgIH0p
OwogICAgIH0pOwogfQogCitCcm9hZGNhc3RDaGFubmVsOjpCcm9hZGNhc3RDaGFubmVsKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSkKKyAgICA6IEFj
dGl2ZURPTU9iamVjdCgmY29udGV4dCkKKyAgICAsIG1fbWFpblRocmVhZEJyaWRnZShNYWluVGhy
ZWFkQnJpZGdlOjpjcmVhdGUoKnRoaXMsIG5hbWUpKQoreworICAgIHsKKyAgICAgICAgTG9ja2Vy
IGxvY2tlciB7IGFsbEJyb2FkY2FzdENoYW5uZWxzTG9jayB9OworICAgICAgICBhbGxCcm9hZGNh
c3RDaGFubmVscygpLmFkZChtX21haW5UaHJlYWRCcmlkZ2UtPmlkZW50aWZpZXIoKSwgdGhpcyk7
CisgICAgfQorICAgIG1fbWFpblRocmVhZEJyaWRnZS0+cmVnaXN0ZXJDaGFubmVsKCk7Cit9CisK
IEJyb2FkY2FzdENoYW5uZWw6On5Ccm9hZGNhc3RDaGFubmVsKCkKIHsKICAgICBjbG9zZSgpOwog
ICAgIHsKICAgICAgICAgTG9ja2VyIGxvY2tlciB7IGFsbEJyb2FkY2FzdENoYW5uZWxzTG9jayB9
OwotICAgICAgICBhbGxCcm9hZGNhc3RDaGFubmVscygpLnJlbW92ZShtX2lkZW50aWZpZXIpOwor
ICAgICAgICBhbGxCcm9hZGNhc3RDaGFubmVscygpLnJlbW92ZShtX21haW5UaHJlYWRCcmlkZ2Ut
PmlkZW50aWZpZXIoKSk7CiAgICAgfQogfQogCitCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBC
cm9hZGNhc3RDaGFubmVsOjppZGVudGlmaWVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9tYWlu
VGhyZWFkQnJpZGdlLT5pZGVudGlmaWVyKCk7Cit9CisKK1N0cmluZyBCcm9hZGNhc3RDaGFubmVs
OjpuYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9tYWluVGhyZWFkQnJpZGdlLT5uYW1lKCk7
Cit9CisKIEV4Y2VwdGlvbk9yPHZvaWQ+IEJyb2FkY2FzdENoYW5uZWw6OnBvc3RNZXNzYWdlKEpT
Qzo6SlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIG1lc3NhZ2UpCiB7
CiAgICAgaWYgKG1faXNDbG9zZWQpCkBAIC05NSwxNyArMjA1LDcgQEAgRXhjZXB0aW9uT3I8dm9p
ZD4gQnJvYWRjYXN0Q2hhbm5lbDo6cG9zdE1lc3NhZ2UoSlNDOjpKU0dsb2JhbE9iamVjdCYgZ2xv
YmFsT2JqZWMKICAgICAgICAgcmV0dXJuIG1lc3NhZ2VEYXRhLnJlbGVhc2VFeGNlcHRpb24oKTsK
ICAgICBBU1NFUlQocG9ydHMuaXNFbXB0eSgpKTsKIAotICAgIGVuc3VyZU9uTWFpblRocmVhZChb
b3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KG1fb3JpZ2luKSwgbmFtZSA9IGNyb3NzVGhyZWFkQ29w
eShtX25hbWUpLCBpZGVudGlmaWVyID0gbV9pZGVudGlmaWVyLCBtZXNzYWdlRGF0YSA9IG1lc3Nh
Z2VEYXRhLnJlbGVhc2VSZXR1cm5WYWx1ZSgpXShhdXRvJiBkb2N1bWVudCkgbXV0YWJsZSB7Ci0g
ICAgICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCk7Ci0gICAgICAgIGlmICghcGFnZSkK
LSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBhdXRvIGJsb2JIYW5kbGVzID0gbWVzc2Fn
ZURhdGEtPmJsb2JIYW5kbGVzKCk7Ci0gICAgICAgIHBhZ2UtPmJyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeSgpLnBvc3RNZXNzYWdlKG9yaWdpbiwgbmFtZSwgaWRlbnRpZmllciwgV1RGTW92ZShtZXNz
YWdlRGF0YSksIFtibG9iSGFuZGxlcyA9IFdURk1vdmUoYmxvYkhhbmRsZXMpXSB7Ci0gICAgICAg
ICAgICAvLyBLZWVwcyBCbG9iIGRhdGEgaW5zaWRlIG1lc3NhZ2VEYXRhIGFsaXZlIHVudGlsIHRo
ZSBtZXNzYWdlIGhhcyBiZWVuIGRlbGl2ZXJlZC4KLSAgICAgICAgfSk7Ci0gICAgfSk7Ci0KKyAg
ICBtX21haW5UaHJlYWRCcmlkZ2UtPnBvc3RNZXNzYWdlKG1lc3NhZ2VEYXRhLnJlbGVhc2VSZXR1
cm5WYWx1ZSgpKTsKICAgICByZXR1cm4geyB9OwogfQogCkBAIC0xMTUsMTEgKzIxNSw3IEBAIHZv
aWQgQnJvYWRjYXN0Q2hhbm5lbDo6Y2xvc2UoKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2lz
Q2xvc2VkID0gdHJ1ZTsKLSAgICBlbnN1cmVPbk1haW5UaHJlYWQoW29yaWdpbiA9IGNyb3NzVGhy
ZWFkQ29weShtX29yaWdpbiksIG5hbWUgPSBjcm9zc1RocmVhZENvcHkobV9uYW1lKSwgY2hhbm5l
bElkZW50aWZpZXIgPSBtX2lkZW50aWZpZXJdKGF1dG8mIGRvY3VtZW50KSB7Ci0gICAgICAgIGlm
IChhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpKQotICAgICAgICAgICAgcGFnZS0+YnJvYWRj
YXN0Q2hhbm5lbFJlZ2lzdHJ5KCkudW5yZWdpc3RlckNoYW5uZWwob3JpZ2luLCBuYW1lLCBjaGFu
bmVsSWRlbnRpZmllcik7Ci0gICAgICAgIGNoYW5uZWxUb0NvbnRleHRJZGVudGlmaWVyKCkucmVt
b3ZlKGNoYW5uZWxJZGVudGlmaWVyKTsKLSAgICB9KTsKKyAgICBtX21haW5UaHJlYWRCcmlkZ2Ut
PnVucmVnaXN0ZXJDaGFubmVsKCk7CiB9CiAKIHZvaWQgQnJvYWRjYXN0Q2hhbm5lbDo6ZGlzcGF0
Y2hNZXNzYWdlVG8oQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgY2hhbm5lbElkZW50aWZpZXIs
IFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTQ5LDI2ICsyNDUsMTEgQEAgdm9pZCBC
cm9hZGNhc3RDaGFubmVsOjpkaXNwYXRjaE1lc3NhZ2UoUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4mJiBtZXNzYWdlKQogICAgICAgICByZXR1cm47CiAKICAgICBxdWV1ZVRhc2tLZWVwaW5nT2Jq
ZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6OlBvc3RlZE1lc3NhZ2VRdWV1ZSwgW3RoaXMsIG1l
c3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpXSgpIG11dGFibGUgewotICAgICAgICBpZiAoIW1faXND
bG9zZWQpCi0gICAgICAgICAgICBkaXNwYXRjaEV2ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKHsg
fSwgV1RGTW92ZShtZXNzYWdlKSwgbV9vcmlnaW4uY2xpZW50T3JpZ2luLnRvU3RyaW5nKCkpKTsK
KyAgICAgICAgaWYgKCFtX2lzQ2xvc2VkICYmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAg
ICAgICAgICAgIGRpc3BhdGNoRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVhdGUoeyB9LCBXVEZNb3Zl
KG1lc3NhZ2UpLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCktPnRv
U3RyaW5nKCkpKTsKICAgICB9KTsKIH0KIAotdm9pZCBCcm9hZGNhc3RDaGFubmVsOjplbnN1cmVP
bk1haW5UaHJlYWQoRnVuY3Rpb248dm9pZChEb2N1bWVudCYpPiYmIHRhc2spCi17Ci0gICAgYXV0
byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICBpZiAoIWNvbnRleHQp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChpczxEb2N1bWVudD4oKmNvbnRleHQpKQotICAg
ICAgICB0YXNrKGRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCkpOwotICAgIGVsc2UgewotICAg
ICAgICBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oKmNvbnRleHQpLnRocmVhZCgpLndvcmtl
ckxvYWRlclByb3h5KCkucG9zdFRhc2tUb0xvYWRlcihbdGFzayA9IFdURk1vdmUodGFzayldKGF1
dG8mIGNvbnRleHQpIHsKLSAgICAgICAgICAgIHRhc2soZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRl
eHQpKTsKLSAgICAgICAgfSk7Ci0gICAgfQotfQotCiBjb25zdCBjaGFyKiBCcm9hZGNhc3RDaGFu
bmVsOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKIHsKICAgICByZXR1cm4gIkJyb2FkY2Fz
dENoYW5uZWwiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5u
ZWwuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmgKaW5kZXggNmRhNjgz
YjljYzEyZmU3YTYyNDNjMDVkYzVlYTljNWRhNGE3NmFhZS4uOWQwOTAxNWM3ZWZiZWZjOTM0MjI3
MTc2ZTIzZmVjMjM3NzhiZmMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2Fk
Y2FzdENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5o
CkBAIC01Niw4ICs1Niw4IEBAIHB1YmxpYzoKICAgICB1c2luZyBSZWZDb3VudGVkPEJyb2FkY2Fz
dENoYW5uZWw+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxCcm9hZGNhc3RDaGFubmVsPjo6
ZGVyZWY7CiAKLSAgICBCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9Ci0gICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29u
c3QgeyByZXR1cm4gbV9uYW1lOyB9CisgICAgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgaWRl
bnRpZmllcigpIGNvbnN0OworICAgIFN0cmluZyBuYW1lKCkgY29uc3Q7CiAKICAgICBFeGNlcHRp
b25Pcjx2b2lkPiBwb3N0TWVzc2FnZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpKU1ZhbHVl
IG1lc3NhZ2UpOwogICAgIHZvaWQgY2xvc2UoKTsKQEAgLTgyLDkgKzgyLDggQEAgcHJpdmF0ZToK
ICAgICBib29sIHZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBmaW5hbDsKICAgICB2
b2lkIHN0b3AoKSBmaW5hbCB7IGNsb3NlKCk7IH0KIAotICAgIGNvbnN0IFN0cmluZyBtX25hbWU7
Ci0gICAgY29uc3QgQ2xpZW50T3JpZ2luIG1fb3JpZ2luOwotICAgIGNvbnN0IEJyb2FkY2FzdENo
YW5uZWxJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBjbGFzcyBNYWluVGhyZWFkQnJpZGdl
OworICAgIFJlZjxNYWluVGhyZWFkQnJpZGdlPiBtX21haW5UaHJlYWRCcmlkZ2U7CiAgICAgYm9v
bCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKICAgICBib29sIG1faGFzUmVsZXZhbnRFdmVudExpc3Rl
bmVyIHsgZmFsc2UgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA3OTE2
YmUwOWI3YmYzOTYyOWYwMDFhNTY0YzFmYzQ2OTk0ODc2NDE3Li5kMmEyNGY5NTE1NjJhNzdlZDVh
OTZiZTE0ZDJiYjc1ZGIyMjIxZTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAg
LTU1NCw2ICs1NTQsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKICAgICB2aXJ0dWFsIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFp
biYmIC8qc3ViRnJhbWVEb21haW4qLywgUmVnaXN0cmFibGVEb21haW4mJiAvKnRvcEZyYW1lRG9t
YWluKi8sIEZyYW1lJiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsgfQogICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9t
YWluLCBSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZSYsIFN0b3JhZ2VB
Y2Nlc3NTY29wZSBzY29wZSwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlcXVlc3RTdG9y
YWdlQWNjZXNzUmVzdWx0KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxl
cih7IFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpObywgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1No
b3duOjpObywgc2NvcGUsIFdURk1vdmUodG9wRnJhbWVEb21haW4pLCBXVEZNb3ZlKHN1YkZyYW1l
RG9tYWluKSB9KTsgfQorICAgIHZpcnR1YWwgYm9vbCBoYXNQYWdlTGV2ZWxTdG9yYWdlQWNjZXNz
KGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiAvKnRvcExldmVsRG9tYWluKi8sIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiAvKnJlc291cmNlRG9tYWluKi8pIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwCmluZGV4IDdkMzRlZTE5ZTAxN2M5NjA1MmUwZWY3YTY5M2E4MjljYjMxNGY1Y2MuLmNk
ZGUxMzg4MzQzZGQyNTg1NTBjNzRlM2NmY2I3MDFiNTQ1M2M5OGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwCkBAIC0xNDQxLDYgKzE0NDEsMTEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVl
c3RTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFIKICAg
ICBBU1NFUlQod2ViRnJhbWUpOwogICAgIG1fcGFnZS5yZXF1ZXN0U3RvcmFnZUFjY2VzcyhXVEZN
b3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BGcmFtZURvbWFpbiksICp3ZWJGcmFtZSwg
c2NvcGUsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KKworYm9vbCBXZWJDaHJvbWVD
bGllbnQ6Omhhc1BhZ2VMZXZlbFN0b3JhZ2VBY2Nlc3MoY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4mIHRvcExldmVsRG9tYWluLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biYgcmVzb3VyY2VEb21haW4pIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS5oYXNQYWdlTGV2
ZWxTdG9yYWdlQWNjZXNzKHRvcExldmVsRG9tYWluLCByZXNvdXJjZURvbWFpbik7Cit9CiAjZW5k
aWYKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5k
ZXggMGI3NmM1MjZkYmNmMWZhODEyZDExYTIxZWU3MGNlYzcxMWU5NjMwNC4uYTg0ZDJiODI1ZjI3
MTU5YzcyZDUyMmVlM2Q5Njk5MmYzZmMzZWUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtNDEw
LDYgKzQxMCw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKICAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
JiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURv
bWFpbiwgV2ViQ29yZTo6RnJhbWUmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYpIGZpbmFsOwogICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
JiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNz
U2NvcGUsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpSZXF1ZXN0U3RvcmFn
ZUFjY2Vzc1Jlc3VsdCk+JiYpIGZpbmFsOworICAgIGJvb2wgaGFzUGFnZUxldmVsU3RvcmFnZUFj
Y2Vzcyhjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgdG9wTGV2ZWxEb21haW4sIGNv
bnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbikgY29uc3QgZmlu
YWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2Nk
NGI2ZGExMTk4Njc2Y2FlMDRlZDJjMjZhOTY3ZTcwMjMyNzBjMi4uYTFkMjg5ZjhjMWY0MDVjMTg5
YzY2Nzk5ZDU4M2Q1MzJjMjFjNTZmMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA5LTEx
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVsYXggQnJvYWRj
YXN0Q2hhbm5lbCBvcmlnaW4gcGFydGl0aW9uaW5nIGlmIGlmcmFtZSBoYXMgc3RvcmFnZSBhY2Nl
c3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDE2
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBs
YXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvbWVzc2FnaW5nL2Jy
b2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLXdpdGgtc3RvcmFnZS1hY2Nlc3MtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21lc3NhZ2luZy9icm9hZGNhc3RjaGFu
bmVsLXBhcnRpdGlvbmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNhc3RjaGFubmVsLXBhcnRp
dGlvbmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL21lc3NhZ2luZy9yZXNvdXJjZXMvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRp
b25pbmctd2l0aC1zdG9yYWdlLWFjY2Vzcy1wb3B1cC5odG1sOiBBZGRlZC4KKwogMjAyMS0wOS0x
MSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dM
SUJdIE1lZGlhU2Vzc2lvbiBpcyBub3QgZW5hYmxlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZXNzYWdpbmcvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctd2l0aC1z
dG9yYWdlLWFjY2Vzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3Nh
Z2luZy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NjJhOGFjOTZiYzdiYTVjZjIzMDIyMjFmMWIzMzc2Y2Ux
NGY2YTRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdp
bmcvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctd2l0aC1zdG9yYWdlLWFjY2Vzcy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdHMgdGhhdCBCcm9hZGNhc3RDaGFubmVsJ3Mg
b3JpZ2luIHBhcnRpdGlvbmluZyBjYW4gYmUgcmVsYXhlZCB2aWEgcmVxdWVzdFN0b3JhZ2VBY2Nl
c3MoKQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBSZWNlaXZlZCBtZXNz
YWdlIGZyb20gc2FtZS1vcmlnaW4gaWZyYW1lIHdpdGggc3RvcmFnZSBhY2Nlc3MgdW5kZXIgY3Jv
c3Mtb3JpZ2luIHBvcHVwCitQQVNTIGdvdE1lc3NhZ2VGcm9tU2FtZU9yaWdpbklmcmFtZVVuZGVy
Q3Jvc3NPcmlnaW5Qb3B1cCBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVzc2FnaW5nL2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLXdpdGgtc3RvcmFnZS1hY2Nl
c3MuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL2Jyb2FkY2FzdGNoYW5u
ZWwtcGFydGl0aW9uaW5nLXdpdGgtc3RvcmFnZS1hY2Nlc3MuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMmFj
MzdkNDJjZTU1YTUyZTM1NzE1ZDE0ZTg5OTQ5ZTA4MmRkNjljCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcvYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRp
b25pbmctd2l0aC1zdG9yYWdlLWFjY2Vzcy5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQ
RSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgQnJvYWRjYXN0Q2hhbm5lbE9yaWdpblBh
cnRpdGlvbmluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3Jj
PSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oIlRlc3RzIHRoYXQgQnJvYWRjYXN0Q2hhbm5lbCdzIG9yaWdpbiBwYXJ0aXRpb25p
bmcgY2FuIGJlIHJlbGF4ZWQgdmlhIHJlcXVlc3RTdG9yYWdlQWNjZXNzKCkiKTsKK2pzVGVzdElz
QXN5bmMgPSB0cnVlOworCitsZXQgYmMgPSBuZXcgQnJvYWRjYXN0Q2hhbm5lbCgiYnJvYWRjYXN0
Y2hhbm5lbC1wYXJ0aXRpb25pbmctd2l0aC1zdG9yYWdlLWFjY2VzcyIpOworCitsZXQgZ290TWVz
c2FnZUZyb21TYW1lT3JpZ2luSWZyYW1lVW5kZXJDcm9zc09yaWdpblBvcHVwID0gZmFsc2U7Citi
Yy5vbm1lc3NhZ2UgPSAobWVzc2FnZSkgPT4geworICAgIGlmIChtZXNzYWdlLmRhdGEgPT0gInNh
bWUtb3JpZ2luLWlmcmFtZS11bmRlci1jcm9zcy1vcmlnaW4tcG9wdXAtd2l0aC1zdG9yYWdlLWFj
Y2VzcyIpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgiUmVjZWl2ZWQgbWVzc2FnZSBmcm9tIHNhbWUt
b3JpZ2luIGlmcmFtZSB3aXRoIHN0b3JhZ2UgYWNjZXNzIHVuZGVyIGNyb3NzLW9yaWdpbiBwb3B1
cCIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJnb3RNZXNzYWdlRnJvbVNhbWVPcmlnaW5JZnJh
bWVVbmRlckNyb3NzT3JpZ2luUG9wdXAiKTsKKyAgICAgICAgZ290TWVzc2FnZUZyb21TYW1lT3Jp
Z2luSWZyYW1lVW5kZXJDcm9zc09yaWdpblBvcHVwID0gdHJ1ZTsKKyAgICB9IGVsc2UgeworICAg
ICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCB1bmV4cGVjdGVkIG1lc3NhZ2U6ICIgKyBtZXNzYWdl
LmRhdGEpOworICAgIH0KKworICAgIGlmIChnb3RNZXNzYWdlRnJvbVNhbWVPcmlnaW5JZnJhbWVV
bmRlckNyb3NzT3JpZ2luUG9wdXApCisgICAgICAgIHNldFRpbWVvdXQoZmluaXNoSlNUZXN0LCAx
MDAwKTsKK307CisKK29ubG9hZCA9ICgpID0+IHsKKyAgICBvcGVuKCJodHRwOi8vbG9jYWxob3N0
OjgwMDAvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy13
aXRoLXN0b3JhZ2UtYWNjZXNzLXBvcHVwLmh0bWwiKTsKK307Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL3Jl
c291cmNlcy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy13aXRoLXN0b3JhZ2UtYWNjZXNz
LWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcvcmVzb3VyY2Vz
L2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLXdpdGgtc3RvcmFnZS1hY2Nlc3MtaWZyYW1l
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOGQzN2RiZjdlZDRkNTk5YjcyOTg3ZTk5ZjkzMDAwYThkYjIxZWU2
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL3Jl
c291cmNlcy9icm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy13aXRoLXN0b3JhZ2UtYWNjZXNz
LWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
Ym9keT4KKzxzY3JpcHQ+CitwYXJ0aXRpb25lZENoYW5uZWwgPSBuZXcgQnJvYWRjYXN0Q2hhbm5l
bCgiYnJvYWRjYXN0Y2hhbm5lbC1wYXJ0aXRpb25pbmctd2l0aC1zdG9yYWdlLWFjY2VzcyIpOwor
cGFydGl0aW9uZWRDaGFubmVsLnBvc3RNZXNzYWdlKCJzYW1lLW9yaWdpbi1pZnJhbWUtdW5kZXIt
Y3Jvc3Mtb3JpZ2luLXBvcHVwLXdpdGhvdXQtc3RvcmFnZS1hY2Nlc3MtMSIpOworCitpbnRlcm5h
bHMud2l0aFVzZXJHZXN0dXJlKCgpID0+IHsKKyAgICBkb2N1bWVudC5yZXF1ZXN0U3RvcmFnZUFj
Y2VzcygpLnRoZW4oKCkgPT4geworICAgICAgICB1bnBhcnRpdGlvbmVkQ2hhbm5lbCA9IG5ldyBC
cm9hZGNhc3RDaGFubmVsKCJicm9hZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy13aXRoLXN0b3Jh
Z2UtYWNjZXNzIik7CisgICAgICAgIHVucGFydGl0aW9uZWRDaGFubmVsLnBvc3RNZXNzYWdlKCJz
YW1lLW9yaWdpbi1pZnJhbWUtdW5kZXItY3Jvc3Mtb3JpZ2luLXBvcHVwLXdpdGgtc3RvcmFnZS1h
Y2Nlc3MiKTsKKworICAgICAgICBwYXJ0aXRpb25lZENoYW5uZWwucG9zdE1lc3NhZ2UoInNhbWUt
b3JpZ2luLWlmcmFtZS11bmRlci1jcm9zcy1vcmlnaW4tcG9wdXAtd2l0aG91dC1zdG9yYWdlLWFj
Y2Vzcy0yIik7CisgICAgfSk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcvcmVzb3VyY2VzL2Jyb2Fk
Y2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLXdpdGgtc3RvcmFnZS1hY2Nlc3MtcG9wdXAuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNhc3RjaGFu
bmVsLXBhcnRpdGlvbmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLXBvcHVwLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjg2YTFlOWVlNjU5ZGQ5NTYzM2I2YjNjMWUwM2JhNGI4NDhlMmJlNQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291cmNlcy9icm9hZGNh
c3RjaGFubmVsLXBhcnRpdGlvbmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLXBvcHVwLmh0bWwKQEAg
LTAsMCArMSw2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8aWZyYW1lIHNy
Yz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL21lc3NhZ2luZy9yZXNvdXJjZXMvYnJvYWRjYXN0Y2hh
bm5lbC1wYXJ0aXRpb25pbmctd2l0aC1zdG9yYWdlLWFjY2Vzcy1pZnJhbWUuaHRtbCI+PC9pZnJh
bWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggZWMyZTUxMmEzNGI5OTc4Y2M0NWQ4ZmY4ZTU0MTk3NDg2YjUy
MTFkMS4uZGJkM2ViZWZiNjY4MWE4ZmU2NmI0MTc0MGYwZTY0ZjFkOGQyZGM1MyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNzksNiArNzks
OSBAQCBlZGl0aW5nL2FzeW5jLWNsaXBib2FyZC9jbGlwYm9hcmQtcmVhZC10ZXh0LWZyb20tcGxh
dGZvcm0uaHRtbCBbIFNraXAgXQogZWRpdGluZy9hc3luYy1jbGlwYm9hcmQvY2xpcGJvYXJkLXJl
YWQtdGV4dC1zYW1lLW9yaWdpbi5odG1sIFsgU2tpcCBdCiBlZGl0aW5nL2FzeW5jLWNsaXBib2Fy
ZC9zYW5pdGl6ZS13aGVuLXJlYWRpbmctbWFya3VwLmh0bWwgWyBTa2lwIF0KIAorIyBObyByZXF1
ZXN0U3RvcmFnZUFjY2VzcygpIHN1cHBvcnQgZm9yIFdLMS4KK2h0dHAvdGVzdHMvbWVzc2FnaW5n
L2Jyb2FkY2FzdGNoYW5uZWwtcGFydGl0aW9uaW5nLXdpdGgtc3RvcmFnZS1hY2Nlc3MuaHRtbCBb
IFNraXAgXQorCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvQ2xv
c2UtMTAwMC1yZWFzb24uYW55Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL0Nsb3NlLTEwMDAtcmVhc29uLmFueS53b3JrZXIu
aHRtbCBbIFBhc3MgRmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnNvY2tldHMvYmluYXJ5LzAwMS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOWMxNDIzMDk4ZmJiYmZkMzYxZjRiNjVl
MzAxM2MzMzgzNGU0MDYwMC4uYWE0NWRkMzVjZDU4ZWNkNzIzMThlNjQ1ZTEwNjYxZTBkMmQ1YjQy
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ2Mzks
NiArNDYzOSw3IEBAIGZhc3QvdGV4dC9vZmZzZXRGb3JQb3NpdGlvbi1jb21wbGV4LWZhbGxiYWNr
Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogIyBObyBCcm9hZGNhc3RDaGFubmVsIHN1cHBvcnQgb24g
V2luZG93cy4KIGZhc3QvaHRtbC9icm9hZGNhc3QtY2hhbm5lbC1iZXR3ZWVuLWRpZmZlcmVudC1z
ZXNzaW9ucy5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL21lc3NhZ2luZy9icm9hZGNhc3RjaGFu
bmVsLXBhcnRpdGlvbmluZy5odG1sIFsgU2tpcCBdCitodHRwL3Rlc3RzL21lc3NhZ2luZy9icm9h
ZGNhc3RjaGFubmVsLXBhcnRpdGlvbmluZy13aXRoLXN0b3JhZ2UtYWNjZXNzLmh0bWwgWyBTa2lw
IF0KIAogIyBUaGlzIHRlc3QgaXMgc2tpcHBlZCBiZWNhdXNlIHRoZSBuZWNlc3NhcnkgZmVhdHVy
ZSBmbGFnIGZ1bmN0aW9uYWxpdHkgc3BlY2lmaWMgdG8gdGhlIFdpbmRvd3MgV2ViS2l0IGxlZ2Fj
eSBwb3J0IGlzCiAjIG5vdCBpbXBsZW1lbnRlZC4gIFRoZSBmZWF0dXJlIGZsYWdzIGluIHF1ZXN0
aW9uIGFyZSBDU1NDb3VudGVyU3R5bGVBdFJ1bGVzRW5hYmxlZCBhbmQgQ1NTQ291bnRlclN0eWxl
QXRSdWxlSW1hZ2VTeW1ib2xzRW5hYmxlZC4K
</data>

          </attachment>
      

    </bug>

</bugzilla>