<?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>204322</bug_id>
          
          <creation_ts>2019-11-18 15:02:32 -0800</creation_ts>
          <short_desc>Check if ITP is on before applying third-party cookie blocking</short_desc>
          <delta_ts>2019-11-18 22:30:56 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit 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=204109</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="John Wilander">wilander</reporter>
          <assigned_to name="John Wilander">wilander</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1591262</commentid>
    <comment_count>0</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-11-18 15:02:32 -0800</bug_when>
    <thetext>&lt;rdar://problem/57120772&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591264</commentid>
    <comment_count>1</comment_count>
      <attachid>383795</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-11-18 15:05:19 -0800</bug_when>
    <thetext>Created attachment 383795
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591265</commentid>
    <comment_count>2</comment_count>
      <attachid>383795</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-11-18 15:05:38 -0800</bug_when>
    <thetext>Comment on attachment 383795
Patch

Checking EWS before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591297</commentid>
    <comment_count>3</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-11-18 16:06:18 -0800</bug_when>
    <thetext>Looking into test failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591417</commentid>
    <comment_count>4</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-11-18 19:39:24 -0800</bug_when>
    <thetext>Found the issue. Trunk uses a different WebsiteDataStore for the TestRunner and I must turn ITP on/off on that store. New patch coming up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591419</commentid>
    <comment_count>5</comment_count>
      <attachid>383834</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-11-18 19:47:06 -0800</bug_when>
    <thetext>Created attachment 383834
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591420</commentid>
    <comment_count>6</comment_count>
      <attachid>383834</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-11-18 19:49:16 -0800</bug_when>
    <thetext>Comment on attachment 383834
Patch

Again checking EWS before landing. The only change is for TestController::setStatisticsEnabled() to use TestController::websiteDataStore() in the call to WKWebsiteDataStoreSetResourceLoadStatisticsEnabled().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591441</commentid>
    <comment_count>7</comment_count>
      <attachid>383834</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-18 22:30:54 -0800</bug_when>
    <thetext>Comment on attachment 383834
Patch

Clearing flags on attachment: 383834

Committed r252623: &lt;https://trac.webkit.org/changeset/252623&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591442</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-18 22:30:56 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383795</attachid>
            <date>2019-11-18 15:05:19 -0800</date>
            <delta_ts>2019-11-18 19:47:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204322-20191118150519.patch</filename>
            <type>text/plain</type>
            <size>18852</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MjU1OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE5LTExLTE4ICBKb2huIFdp
bGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIENoZWNrIGlmIElUUCBpcyBv
biBiZWZvcmUgYXBwbHlpbmcgdGhpcmQtcGFydHkgY29va2llIGJsb2NraW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQzMjIKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzU3MTIwNzcyPgorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6
IGFuZCBBbGV4ZXkgUHJvc2t1cnlha292LgorCisgICAgICAgIFRoaXMgY2hhbmdlIG1ha2VzIHN1
cmUgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uIGtub3dzCisgICAgICAgIHdoZXRoZXIg
SVRQIGlzIG9uIG9yIG9mZiBhbmQgY2hlY2tzIHRoYXQgZmlyc3QgdGhpbmcgaW4KKyAgICAgICAg
V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRCbG9ja0Nvb2tpZXMoKS4KKwor
ICAgICAgICBUaGlzIGNoZWNrIHdhcyBuZXZlciBuZWVkZWQgYmVmb3JlIHNpbmNlIGlmIElUUCB3
YXMgb2ZmLAorICAgICAgICB0aGVyZSB3b3VsZCBiZSBubyBjbGFzc2lmaWVkIGRvbWFpbnMgYW5k
IHRodXMgdGhlIGZ1bmN0aW9uCisgICAgICAgIHdvdWxkIGFsd2F5cyByZXR1cm4gZmFsc2UuIEhv
d2V2ZXIsCisgICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNTEzNTMv
d2Via2l0IGludHJvZHVjZWQKKyAgICAgICAgZnVsbCB0aGlyZC1wYXJ0eSBjb29raWUgYmxvY2tp
bmcgZm9yIHdlYnNpdGVzIHdpdGhvdXQgdXNlcgorICAgICAgICBpbnRlcmFjdGlvbiBhbmQgdGhh
dCBydWxlIGlzIGNoZWNrZWQgYmVmb3JlIGNoZWNraW5nIGRvbWFpbgorICAgICAgICBjbGFzc2lm
aWNhdGlvbi4gVGhlIGVmZmVjdCB3YXMgdW5jb25kaXRpb25hbCB0aGlyZC1wYXJ0eQorICAgICAg
ICBjb29raWUgYmxvY2tpbmcgaWYgSVRQIGlzIG9mZi4gVGhpcyBjaGFuZ2VzIGZpeGVzIHRoYXQg
YnVnLgorCisgICAgICAgIE5vdGUgdGhhdCB0aGlzIHBhdGNoIGFscmVhZHkgbGFuZGVkIGFzIGJy
YW5jaC1zcGVjaWZpYyBpbgorICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2Vz
ZXQvMjUyNTQ5L3dlYmtpdAorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9uby10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2hlbi1pdHAtaXMtb2Zm
Lmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2hvdWxkQmxv
Y2tUaGlyZFBhcnR5Q29va2llcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OnNob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXNCdXRLZWVwRmlyc3RQYXJ0
eUNvb2tpZXNGb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpzaG91bGRCbG9ja0Nvb2tpZXMgY29uc3QpOgorICAgICAgICAgICAgTm93IGNoZWNrcyB3
aGV0aGVyIElUUCBpcyBvbiBvciBvZmYuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RvcmFnZVNlc3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQpOgorCiAyMDE5LTExLTE4ICBB
bnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV0dXJuIHZhbHVl
IG9mIENTU1Byb3BlcnR5QW5pbWF0aW9uOjpibGVuZFByb3BlcnRpZXMoKSBpc24ndCB1c2VkIGFu
eXdoZXJlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwCShyZXZpc2lvbiAyNTI1NTgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OnBlcm1pdFByb2NlcwogCiBib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2hvdWxkQmxvY2tU
aGlyZFBhcnR5Q29va2llcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVnaXN0cmFibGVEb21h
aW4pIGNvbnN0CiB7Ci0gICAgaWYgKHJlZ2lzdHJhYmxlRG9tYWluLmlzRW1wdHkoKSkKKyAgICBp
ZiAoIW1faXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCB8fCByZWdpc3RyYWJsZURvbWFp
bi5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEFTU0VSVCghKG1fcmVn
aXN0cmFibGVEb21haW5zVG9CbG9ja0FuZERlbGV0ZUNvb2tpZXNGb3IuY29udGFpbnMocmVnaXN0
cmFibGVEb21haW4pICYmIG1fcmVnaXN0cmFibGVEb21haW5zVG9CbG9ja0J1dEtlZXBDb29raWVz
Rm9yLmNvbnRhaW5zKHJlZ2lzdHJhYmxlRG9tYWluKSkpOwpAQCAtNzAsNyArNzAsNyBAQCBib29s
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2hvdWxkQmxvY2tUCiAKIGJvb2wgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpzaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzQnV0S2VlcEZpcnN0UGFydHlD
b29raWVzRm9yKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZWdpc3RyYWJsZURvbWFpbikgY29u
c3QKIHsKLSAgICBpZiAocmVnaXN0cmFibGVEb21haW4uaXNFbXB0eSgpKQorICAgIGlmICghbV9p
c1Jlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkIHx8IHJlZ2lzdHJhYmxlRG9tYWluLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgQVNTRVJUKCEobV9yZWdpc3RyYWJs
ZURvbWFpbnNUb0Jsb2NrQW5kRGVsZXRlQ29va2llc0Zvci5jb250YWlucyhyZWdpc3RyYWJsZURv
bWFpbikgJiYgbV9yZWdpc3RyYWJsZURvbWFpbnNUb0Jsb2NrQnV0S2VlcENvb2tpZXNGb3IuY29u
dGFpbnMocmVnaXN0cmFibGVEb21haW4pKSk7CkBAIC04OCwxMSArODgsMTcgQEAgYm9vbCBOZXR3
b3JrU3RvcmFnZVNlc3Npb246Omhhc0hhZFVzZXJJbgogCiBib29sIE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6c2hvdWxkQmxvY2tDb29raWVzKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmll
cj4gcGFnZUlEKSBjb25zdAogeworICAgIGlmICghbV9pc1Jlc291cmNlTG9hZFN0YXRpc3RpY3NF
bmFibGVkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICByZXR1cm4gc2hvdWxkQmxvY2tD
b29raWVzKHJlcXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgcmVxdWVzdC51cmwoKSwgZnJh
bWVJRCwgcGFnZUlEKTsKIH0KICAgICAKIGJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91
bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29va2llcywgY29uc3QgVVJM
JiByZXNvdXJjZSwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQ
YWdlSWRlbnRpZmllcj4gcGFnZUlEKSBjb25zdAogeworICAgIGlmICghbV9pc1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NFbmFibGVkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBSZWdpc3Ry
YWJsZURvbWFpbiBmaXJzdFBhcnR5RG9tYWluIHsgZmlyc3RQYXJ0eUZvckNvb2tpZXMgfTsKICAg
ICBpZiAoZmlyc3RQYXJ0eURvbWFpbi5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RvcmFnZVNlc3Npb24uaAkocmV2aXNpb24gMjUyNTU4KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAkod29ya2luZyBjb3B5KQpA
QCAtMTQzLDYgKzE0Myw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6OnBhaXI8
U3RyaW5nLCBib29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBDb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRQcm94eSYpIGNvbnN0OwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xP
QURfU1RBVElTVElDUykKKyAgICB2b2lkIHNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVk
KGJvb2wgZW5hYmxlZCkgeyBtX2lzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQgPSBlbmFi
bGVkOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFn
ZUlkZW50aWZpZXI+KSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNob3VsZEJsb2Nr
Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHlGb3JDb29raWVzLCBjb25zdCBVUkwmIHJlc291
cmNlLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4p
IGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29v
a2llcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpIGNvbnN0OwpAQCAtMTg4LDYgKzE4OSw3IEBA
IHByaXZhdGU6CiAgICAgQ3JlZGVudGlhbFN0b3JhZ2UgbV9jcmVkZW50aWFsU3RvcmFnZTsKIAog
I2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgYm9vbCBtX2lzUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0VuYWJsZWQgPSBmYWxzZTsKICAgICBPcHRpb25hbDxTZWNvbmRzPiBj
bGllbnRTaWRlQ29va2llQ2FwKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5LCBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4pIGNvbnN0OwogICAgIEhhc2hTZXQ8UmVnaXN0cmFibGVE
b21haW4+IG1fcmVnaXN0cmFibGVEb21haW5zVG9CbG9ja0FuZERlbGV0ZUNvb2tpZXNGb3I7CiAg
ICAgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4gbV9yZWdpc3RyYWJsZURvbWFpbnNUb0Jsb2Nr
QnV0S2VlcENvb2tpZXNGb3I7CkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjUyNTU4KQorKysgU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMiBAQAorMjAx
OS0xMS0xOCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBD
aGVjayBpZiBJVFAgaXMgb24gYmVmb3JlIGFwcGx5aW5nIHRoaXJkLXBhcnR5IGNvb2tpZSBibG9j
a2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0
MzIyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzEyMDc3Mj4KKworICAgICAgICBSZXZpZXdl
ZCBieSBDaHJpcyBEdW1leiBhbmQgQWxleGV5IFByb3NrdXJ5YWtvdi4KKworICAgICAgICBUaGlz
IGNoYW5nZSBtYWtlcyBzdXJlIFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiBrbm93cwor
ICAgICAgICB3aGV0aGVyIElUUCBpcyBvbiBvciBvZmYgYW5kIGNoZWNrcyB0aGF0IGZpcnN0IHRo
aW5nIGluCisgICAgICAgIFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2hvdWxkQmxv
Y2tDb29raWVzKCkuCisKKyAgICAgICAgVGhpcyBjaGVjayB3YXMgbmV2ZXIgbmVlZGVkIGJlZm9y
ZSBzaW5jZSBpZiBJVFAgd2FzIG9mZiwKKyAgICAgICAgdGhlcmUgd291bGQgYmUgbm8gY2xhc3Np
ZmllZCBkb21haW5zIGFuZCB0aHVzIHRoZSBmdW5jdGlvbgorICAgICAgICB3b3VsZCBhbHdheXMg
cmV0dXJuIGZhbHNlLiBIb3dldmVyLAorICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9j
aGFuZ2VzZXQvMjUxMzUzL3dlYmtpdCBpbnRyb2R1Y2VkCisgICAgICAgIGZ1bGwgdGhpcmQtcGFy
dHkgY29va2llIGJsb2NraW5nIGZvciB3ZWJzaXRlcyB3aXRob3V0IHVzZXIKKyAgICAgICAgaW50
ZXJhY3Rpb24gYW5kIHRoYXQgcnVsZSBpcyBjaGVja2VkIGJlZm9yZSBjaGVja2luZyBkb21haW4K
KyAgICAgICAgY2xhc3NpZmljYXRpb24uIFRoZSBlZmZlY3Qgd2FzIHVuY29uZGl0aW9uYWwgdGhp
cmQtcGFydHkKKyAgICAgICAgY29va2llIGJsb2NraW5nIGlmIElUUCBpcyBvZmYuIFRoaXMgY2hh
bmdlcyBmaXhlcyB0aGF0IGJ1Zy4KKworICAgICAgICBOb3RlIHRoYXQgdGhpcyBwYXRjaCBhbHJl
YWR5IGxhbmRlZCBhcyBicmFuY2gtc3BlY2lmaWMgaW4KKyAgICAgICAgaHR0cHM6Ly90cmFjLndl
YmtpdC5vcmcvY2hhbmdlc2V0LzI1MjU0OS93ZWJraXQKKworICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246
OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKToKKyAgICAgICAgICAgIE5vdyB0ZWxs
cyBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24gdGhlIHN0YXR1cyBvZgorICAgICAgICAg
ICAgSVRQLgorCiAyMDE5LTExLTE4ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBXS1dlYlZpZXcubWVkaWFUeXBlIGlzIG51bGxhYmxlLCBub3QgbnVsbF9yZXNldHRh
YmxlCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uLmNwcAkocmV2aXNpb24gMjUyNTU4KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1Myw2ICsxNTMsOCBAQCB2
b2lkIE5ldHdvcmtTZXNzaW9uOjppbnZhbGlkYXRlQW5kQ2FuY2VsCiB2b2lkIE5ldHdvcmtTZXNz
aW9uOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChib29sIGVuYWJsZSkKIHsKICAg
ICBBU1NFUlQoIW1faXNJbnZhbGlkYXRlZCk7CisgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9u
ID0gbmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkpCisgICAgICAgIHN0b3JhZ2VTZXNzaW9uLT5zZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChlbmFibGUpOwogICAgIGlmICghZW5hYmxlKSB7
CiAgICAgICAgIGRlc3Ryb3lSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCk7CiAgICAgICAgIHJldHVy
bjsKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDI1MjU2NCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDI1IEBACisyMDE5LTExLTE4ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUu
Y29tPgorCisgICAgICAgIENoZWNrIGlmIElUUCBpcyBvbiBiZWZvcmUgYXBwbHlpbmcgdGhpcmQt
cGFydHkgY29va2llIGJsb2NraW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDQzMjIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3MTIwNzcyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6IGFuZCBBbGV4ZXkgUHJvc2t1cnlha292
LgorCisgICAgICAgIFRoaXMgaXMgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBhbGxvdyBhIGxheW91
dCB0ZXN0IHRvCisgICAgICAgIGRpc2FibGUgSVRQIGluIHRoZSBuZXR3b3JrIHByb2Nlc3MuCisK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RS
dW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldFN0YXRpc3RpY3NFbmFi
bGVkKToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGljc0RlYnVnTW9kZSk6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzRW5hYmxlZCk6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6
ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisKIDIwMTkt
MTEtMTggIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUg
anNjIGZyb20gUmVzb3VyY2VzIHRvIEhlbHBlcnMKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAyNTI1NTgpCisrKyBUb29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzI1NCw2ICsz
MjU0LDEyIEBAIHN0YXRpYyB2b2lkIHJlc291cmNlU3RhdGlzdGljc0Jvb2xlYW5SZXMKICAgICBj
b250ZXh0LT50ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CiB9CiAKK3ZvaWQgVGVzdENvbnRy
b2xsZXI6OnNldFN0YXRpc3RpY3NFbmFibGVkKGJvb2wgdmFsdWUpCit7CisgICAgYXV0byogZGF0
YVN0b3JlID0gV0tDb250ZXh0R2V0V2Vic2l0ZURhdGFTdG9yZShwbGF0Zm9ybUNvbnRleHQoKSk7
CisgICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQo
ZGF0YVN0b3JlLCB2YWx1ZSk7Cit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3Rp
Y3NEZWJ1Z01vZGUoYm9vbCB2YWx1ZSkKIHsKICAgICBSZXNvdXJjZVN0YXRpc3RpY3NDYWxsYmFj
a0NvbnRleHQgY29udGV4dCgqdGhpcyk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5oCShyZXZpc2lvbiAyNTI1NTgpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwNyw2ICsyMDcsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXMoYm9v
bCB2YWx1ZSkgeyBtX3Nob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyA9IHZhbHVl
OyB9CiAgICAgdm9pZCBzZXRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNj
ZXNzKGJvb2wgdmFsdWUpIHsgbV9zaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzID0gdmFsdWU7IH0KIAorICAgIHZvaWQgc2V0U3RhdGlzdGljc0VuYWJsZWQoYm9vbCB2
YWx1ZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzRGVidWdNb2RlKGJvb2wgdmFsdWUpOwogICAg
IHZvaWQgc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFdLU3RyaW5n
UmVmIGhvc3ROYW1lKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NMYXN0U2VlbihXS1N0cmluZ1Jl
ZiBob3N0TmFtZSwgZG91YmxlIHNlY29uZHMpOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHAJKHJldmlzaW9uIDI1MjU1OCkKKysrIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcxLDYgKzEw
NzEsMTMgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZAogICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc0VuYWJsZWQiKSkgeworICAgICAgICBB
U1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLQm9vbGVhbkdldFR5cGVJRCgpKTsK
KyAgICAgICAgV0tCb29sZWFuUmVmIHZhbHVlID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPiht
ZXNzYWdlQm9keSk7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRTdGF0
aXN0aWNzRW5hYmxlZChXS0Jvb2xlYW5HZXRWYWx1ZSh2YWx1ZSkpOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyht
ZXNzYWdlTmFtZSwgIlNldFN0YXRpc3RpY3NEZWJ1Z01vZGUiKSkgewogICAgICAgICBBU1NFUlQo
V0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLQm9vbGVhbkdldFR5cGVJRCgpKTsKICAgICAg
ICAgV0tCb29sZWFuUmVmIHZhbHVlID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihtZXNzYWdl
Qm9keSk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5jcHAJKHJldmlzaW9uIDI1MjU1OCkKKysrIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE0MDgsNiArMTQwOCwxMyBAQCB2b2lkIFRlc3RSdW5uZXI6OmNhbGxEaWRSZW1vdmVTd2lwZVNu
YXBzCiAgICAgY2FsbFRlc3RSdW5uZXJDYWxsYmFjayhEaWRSZW1vdmVTd2lwZVNuYXBzaG90Q2Fs
bGJhY2tJRCk7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGljc0VuYWJsZWQoYm9v
bCB2YWx1ZSkKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBh
ZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTZXRTdGF0aXN0aWNzRW5hYmxl
ZCIpKTsKKyAgICBXS1JldGFpblB0cjxXS0Jvb2xlYW5SZWY+IG1lc3NhZ2VCb2R5ID0gYWRvcHRX
SyhXS0Jvb2xlYW5DcmVhdGUodmFsdWUpKTsKKyAgICBXS0J1bmRsZVBvc3RTeW5jaHJvbm91c01l
c3NhZ2UoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLmJ1bmRsZSgpLCBtZXNzYWdlTmFtZS5n
ZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCksIG51bGxwdHIpOworfQorCiB2b2lkIFRlc3RSdW5uZXI6
OnNldFN0YXRpc3RpY3NEZWJ1Z01vZGUoYm9vbCB2YWx1ZSwgSlNWYWx1ZVJlZiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBjYWNoZVRlc3RSdW5uZXJDYWxsYmFjayhTZXRTdGF0aXN0aWNzRGVi
dWdNb2RlQ2FsbGJhY2tJRCwgY29tcGxldGlvbkhhbmRsZXIpOwpAQCAtMTQxNSw3ICsxNDIyLDYg
QEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzRGVidWdNb2RlKAogICAgIFdLUmV0YWlu
UHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoIlNldFN0YXRpc3RpY3NEZWJ1Z01vZGUiKSk7CiAgICAgV0tSZXRhaW5QdHI8
V0tCb29sZWFuUmVmPiBtZXNzYWdlQm9keSA9IGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKHZhbHVl
KSk7CiAgICAgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpz
aW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgp
LCBudWxscHRyKTsKLQogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnN0YXRpc3RpY3NDYWxsRGlkU2V0
RGVidWdNb2RlQ2FsbGJhY2soKQpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgJKHJldmlzaW9uIDI1MjU1OCkKKysrIFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zODAsNiArMzgwLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TW9ja0dhbWVwYWRC
dXR0b25WYWx1ZSh1bnNpZ25lZCBpbmRleCwgdW5zaWduZWQgYnV0dG9uSW5kZXgsIGRvdWJsZSB2
YWx1ZSk7CiAgICAgCiAgICAgLy8gUmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzCisgICAgdm9pZCBz
ZXRTdGF0aXN0aWNzRW5hYmxlZChib29sIHZhbHVlKTsKICAgICB2b2lkIGluc3RhbGxTdGF0aXN0
aWNzRGlkTW9kaWZ5RGF0YVJlY29yZHNDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKTsKICAg
ICB2b2lkIGluc3RhbGxTdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2soSlNWYWx1
ZVJlZiBjYWxsYmFjayk7CiAgICAgdm9pZCBpbnN0YWxsU3RhdGlzdGljc0RpZFJ1blRlbGVtZXRy
eUNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5u
ZXIuaWRsCShyZXZpc2lvbiAyNTI1NTgpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOTIs
NiArMjkyLDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIHZvaWQgZGlzY29ubmVjdE1v
Y2tHYW1lcGFkKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogCiAgICAgLy8gUmVzb3VyY2UgTG9hZCBT
dGF0aXN0aWNzCisgICAgdm9pZCBzZXRTdGF0aXN0aWNzRW5hYmxlZChib29sZWFuIHZhbHVlKTsK
ICAgICB2b2lkIGluc3RhbGxTdGF0aXN0aWNzRGlkTW9kaWZ5RGF0YVJlY29yZHNDYWxsYmFjayhv
YmplY3QgY2FsbGJhY2spOwogICAgIHZvaWQgaW5zdGFsbFN0YXRpc3RpY3NEaWRTY2FuRGF0YVJl
Y29yZHNDYWxsYmFjayhvYmplY3QgY2FsbGJhY2spOwogICAgIHZvaWQgaW5zdGFsbFN0YXRpc3Rp
Y3NEaWRSdW5UZWxlbWV0cnlDYWxsYmFjayhvYmplY3QgY2FsbGJhY2spOwpJbmRleDogTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2
aXNpb24gMjUyNTU4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTktMTEtMTggIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgQ2hlY2sgaWYgSVRQIGlzIG9uIGJlZm9yZSBhcHBseWluZyB0aGly
ZC1wYXJ0eSBjb29raWUgYmxvY2tpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNDMyMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTcxMjA3NzI+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXogYW5kIEFsZXhleSBQcm9za3VyeWFr
b3YuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm8tdGhp
cmQtcGFydHktY29va2llLWJsb2NraW5nLXdoZW4taXRwLWlzLW9mZi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9uby10aGly
ZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2hlbi1pdHAtaXMtb2ZmLmh0bWw6IEFkZGVkLgorCiAy
MDE5LTExLTE4ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAg
W1dlYiBBbmltYXRpb25zXSBSZXRhcmdldGVkIHRyYW5zaXRpb25zIHRhcmdldGluZyBhY2NlbGVy
YXRlZCBwcm9wZXJ0aWVzIGRvIG5vdCBzdG9wIHRoZSBvcmlnaW5hbCB0cmFuc2l0aW9uCkluZGV4
OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm8tdGhpcmQt
cGFydHktY29va2llLWJsb2NraW5nLXdoZW4taXRwLWlzLW9mZi1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25v
LXRoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy13aGVuLWl0cC1pcy1vZmYtZXhwZWN0ZWQudHh0
CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9uby10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2hlbi1pdHAtaXMtb2ZmLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE2IEBACitUZXN0cyB0aGF0IGV4
aXN0aW5nIHRoaXJkLXBhcnR5IGNvb2tpZXMgYXJlIG5vdCBibG9ja2VkIHdoZW4gSVRQIGlzIG9m
Zi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1m
cmFtZTEtLT4nCistLS0tLS0tLQorU2hvdWxkIHJlY2VpdmUgaXRzIGNvb2tpZS4KK1JlY2VpdmVk
IGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5j
b29raWU6IGZpcnN0UGFydHlDb29raWU9dmFsdWUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm8t
dGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdoZW4taXRwLWlzLW9mZi5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9uby10
aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2hlbi1pdHAtaXMtb2ZmLmh0bWwJKG5vbmV4aXN0
ZW50KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25v
LXRoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy13aGVuLWl0cC1pcy1vZmYuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVu
Ij4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgZXhpc3RpbmcgdGhpcmQtcGFydHkgY29va2ll
cyBhcmUgbm90IGJsb2NrZWQgd2hlbiBJVFAgaXMgb2ZmLiIpOworICAgIGpzVGVzdElzQXN5bmMg
PSB0cnVlOworCisgICAgY29uc3QgcGFydGl0aW9uSG9zdCA9ICIxMjcuMC4wLjE6ODAwMCI7Cisg
ICAgY29uc3QgcGFydGl0aW9uT3JpZ2luID0gImh0dHA6Ly8iICsgcGFydGl0aW9uSG9zdDsKKyAg
ICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAg
Y29uc3QgcmVzb3VyY2VQYXRoID0gIi9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcyI7
CisgICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGlyZFBhcnR5T3JpZ2luICsgcmVzb3Vy
Y2VQYXRoOworICAgIGNvbnN0IGZpcnN0UGFydHlDb29raWVOYW1lID0gImZpcnN0UGFydHlDb29r
aWUiOworICAgIGNvbnN0IHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgPSAiL3NldC1jb29r
aWUucGhwP25hbWU9IiArIGZpcnN0UGFydHlDb29raWVOYW1lICsgIiZ2YWx1ZT12YWx1ZSI7Cisg
ICAgY29uc3QgcmV0dXJuVXJsID0gcGFydGl0aW9uT3JpZ2luICsgIi9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL25vLXRoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy13aGVuLWl0cC1pcy1vZmYuaHRt
bCI7CisgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0LWNvb2tpZXMucGhwP25h
bWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZTsKKworICAgIGZ1bmN0aW9uIG9wZW5JZnJhbWUo
dXJsLCBvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAg
ICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7CisgICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9IG9u
TG9hZEhhbmRsZXI7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChlbGVtZW50KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBz
d2l0Y2ggKGRvY3VtZW50LmxvY2F0aW9uLmhhc2gpIHsKKyAgICAgICAgICAgIGNhc2UgIiNzdGVw
MSI6CisgICAgICAgICAgICAgICAgLy8gU2V0IGZpcnN0LXBhcnR5IGNvb2tpZSBmb3IgbG9jYWxo
b3N0LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5
QmFzZVVybCArIHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyByZXR1cm5Vcmwg
KyAiI3N0ZXAyIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgIiNz
dGVwMiI6CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMyI7
CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgY29va2llIGlzIG5vdCBibG9ja2Vk
IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xLgorICAgICAgICAgICAgICAgIG9wZW5JZnJh
bWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNo
b3VsZCByZWNlaXZlIGl0cyBjb29raWUuIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXMo
ZmFsc2UsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbmlz
aEpTVGVzdCgpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChkb2N1
bWVudC5sb2NhdGlvbi5oYXNoID09PSAiIikgeworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZh
bHNlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NF
bmFibGVkKGZhbHNlKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNU
ZXh0KCk7CisgICAgICAgICAgICAvLyBFbmFibGUgdGhlIGZsYWcgZXZlbiB0aG91Z2ggSVRQIGlz
IG9mZi4KKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZEJsb2NrVGhp
cmRQYXJ0eUNvb2tpZXModHJ1ZSwgcnVuVGVzdCk7CisgICAgICAgICAgICBkb2N1bWVudC5sb2Nh
dGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAgICAgfSk7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgcnVuVGVzdCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383834</attachid>
            <date>2019-11-18 19:47:06 -0800</date>
            <delta_ts>2019-11-18 22:30:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204322-20191118194705.patch</filename>
            <type>text/plain</type>
            <size>18711</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MjU1OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE5LTExLTE4ICBKb2huIFdp
bGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIENoZWNrIGlmIElUUCBpcyBv
biBiZWZvcmUgYXBwbHlpbmcgdGhpcmQtcGFydHkgY29va2llIGJsb2NraW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQzMjIKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzU3MTIwNzcyPgorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6
IGFuZCBBbGV4ZXkgUHJvc2t1cnlha292LgorCisgICAgICAgIFRoaXMgY2hhbmdlIG1ha2VzIHN1
cmUgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uIGtub3dzCisgICAgICAgIHdoZXRoZXIg
SVRQIGlzIG9uIG9yIG9mZiBhbmQgY2hlY2tzIHRoYXQgZmlyc3QgdGhpbmcgaW4KKyAgICAgICAg
V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRCbG9ja0Nvb2tpZXMoKS4KKwor
ICAgICAgICBUaGlzIGNoZWNrIHdhcyBuZXZlciBuZWVkZWQgYmVmb3JlIHNpbmNlIGlmIElUUCB3
YXMgb2ZmLAorICAgICAgICB0aGVyZSB3b3VsZCBiZSBubyBjbGFzc2lmaWVkIGRvbWFpbnMgYW5k
IHRodXMgdGhlIGZ1bmN0aW9uCisgICAgICAgIHdvdWxkIGFsd2F5cyByZXR1cm4gZmFsc2UuIEhv
d2V2ZXIsCisgICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNTEzNTMv
d2Via2l0IGludHJvZHVjZWQKKyAgICAgICAgZnVsbCB0aGlyZC1wYXJ0eSBjb29raWUgYmxvY2tp
bmcgZm9yIHdlYnNpdGVzIHdpdGhvdXQgdXNlcgorICAgICAgICBpbnRlcmFjdGlvbiBhbmQgdGhh
dCBydWxlIGlzIGNoZWNrZWQgYmVmb3JlIGNoZWNraW5nIGRvbWFpbgorICAgICAgICBjbGFzc2lm
aWNhdGlvbi4gVGhlIGVmZmVjdCB3YXMgdW5jb25kaXRpb25hbCB0aGlyZC1wYXJ0eQorICAgICAg
ICBjb29raWUgYmxvY2tpbmcgaWYgSVRQIGlzIG9mZi4gVGhpcyBjaGFuZ2VzIGZpeGVzIHRoYXQg
YnVnLgorCisgICAgICAgIE5vdGUgdGhhdCB0aGlzIHBhdGNoIGFscmVhZHkgbGFuZGVkIGFzIGJy
YW5jaC1zcGVjaWZpYyBpbgorICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2Vz
ZXQvMjUyNTQ5L3dlYmtpdAorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9uby10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2hlbi1pdHAtaXMtb2Zm
Lmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2hvdWxkQmxv
Y2tUaGlyZFBhcnR5Q29va2llcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OnNob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXNCdXRLZWVwRmlyc3RQYXJ0
eUNvb2tpZXNGb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpzaG91bGRCbG9ja0Nvb2tpZXMgY29uc3QpOgorICAgICAgICAgICAgTm93IGNoZWNrcyB3
aGV0aGVyIElUUCBpcyBvbiBvciBvZmYuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RvcmFnZVNlc3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQpOgorCiAyMDE5LTExLTE4ICBB
bnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV0dXJuIHZhbHVl
IG9mIENTU1Byb3BlcnR5QW5pbWF0aW9uOjpibGVuZFByb3BlcnRpZXMoKSBpc24ndCB1c2VkIGFu
eXdoZXJlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwCShyZXZpc2lvbiAyNTI1NTgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OnBlcm1pdFByb2NlcwogCiBib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2hvdWxkQmxvY2tU
aGlyZFBhcnR5Q29va2llcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVnaXN0cmFibGVEb21h
aW4pIGNvbnN0CiB7Ci0gICAgaWYgKHJlZ2lzdHJhYmxlRG9tYWluLmlzRW1wdHkoKSkKKyAgICBp
ZiAoIW1faXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCB8fCByZWdpc3RyYWJsZURvbWFp
bi5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEFTU0VSVCghKG1fcmVn
aXN0cmFibGVEb21haW5zVG9CbG9ja0FuZERlbGV0ZUNvb2tpZXNGb3IuY29udGFpbnMocmVnaXN0
cmFibGVEb21haW4pICYmIG1fcmVnaXN0cmFibGVEb21haW5zVG9CbG9ja0J1dEtlZXBDb29raWVz
Rm9yLmNvbnRhaW5zKHJlZ2lzdHJhYmxlRG9tYWluKSkpOwpAQCAtNzAsNyArNzAsNyBAQCBib29s
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2hvdWxkQmxvY2tUCiAKIGJvb2wgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpzaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzQnV0S2VlcEZpcnN0UGFydHlD
b29raWVzRm9yKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZWdpc3RyYWJsZURvbWFpbikgY29u
c3QKIHsKLSAgICBpZiAocmVnaXN0cmFibGVEb21haW4uaXNFbXB0eSgpKQorICAgIGlmICghbV9p
c1Jlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkIHx8IHJlZ2lzdHJhYmxlRG9tYWluLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgQVNTRVJUKCEobV9yZWdpc3RyYWJs
ZURvbWFpbnNUb0Jsb2NrQW5kRGVsZXRlQ29va2llc0Zvci5jb250YWlucyhyZWdpc3RyYWJsZURv
bWFpbikgJiYgbV9yZWdpc3RyYWJsZURvbWFpbnNUb0Jsb2NrQnV0S2VlcENvb2tpZXNGb3IuY29u
dGFpbnMocmVnaXN0cmFibGVEb21haW4pKSk7CkBAIC04OCwxMSArODgsMTcgQEAgYm9vbCBOZXR3
b3JrU3RvcmFnZVNlc3Npb246Omhhc0hhZFVzZXJJbgogCiBib29sIE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6c2hvdWxkQmxvY2tDb29raWVzKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmll
cj4gcGFnZUlEKSBjb25zdAogeworICAgIGlmICghbV9pc1Jlc291cmNlTG9hZFN0YXRpc3RpY3NF
bmFibGVkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICByZXR1cm4gc2hvdWxkQmxvY2tD
b29raWVzKHJlcXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgcmVxdWVzdC51cmwoKSwgZnJh
bWVJRCwgcGFnZUlEKTsKIH0KICAgICAKIGJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91
bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29va2llcywgY29uc3QgVVJM
JiByZXNvdXJjZSwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQ
YWdlSWRlbnRpZmllcj4gcGFnZUlEKSBjb25zdAogeworICAgIGlmICghbV9pc1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NFbmFibGVkKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBSZWdpc3Ry
YWJsZURvbWFpbiBmaXJzdFBhcnR5RG9tYWluIHsgZmlyc3RQYXJ0eUZvckNvb2tpZXMgfTsKICAg
ICBpZiAoZmlyc3RQYXJ0eURvbWFpbi5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RvcmFnZVNlc3Npb24uaAkocmV2aXNpb24gMjUyNTU4KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAkod29ya2luZyBjb3B5KQpA
QCAtMTQzLDYgKzE0Myw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6OnBhaXI8
U3RyaW5nLCBib29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBDb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRQcm94eSYpIGNvbnN0OwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xP
QURfU1RBVElTVElDUykKKyAgICB2b2lkIHNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVk
KGJvb2wgZW5hYmxlZCkgeyBtX2lzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQgPSBlbmFi
bGVkOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFn
ZUlkZW50aWZpZXI+KSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNob3VsZEJsb2Nr
Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHlGb3JDb29raWVzLCBjb25zdCBVUkwmIHJlc291
cmNlLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4p
IGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29v
a2llcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpIGNvbnN0OwpAQCAtMTg4LDYgKzE4OSw3IEBA
IHByaXZhdGU6CiAgICAgQ3JlZGVudGlhbFN0b3JhZ2UgbV9jcmVkZW50aWFsU3RvcmFnZTsKIAog
I2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgYm9vbCBtX2lzUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0VuYWJsZWQgPSBmYWxzZTsKICAgICBPcHRpb25hbDxTZWNvbmRzPiBj
bGllbnRTaWRlQ29va2llQ2FwKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5LCBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4pIGNvbnN0OwogICAgIEhhc2hTZXQ8UmVnaXN0cmFibGVE
b21haW4+IG1fcmVnaXN0cmFibGVEb21haW5zVG9CbG9ja0FuZERlbGV0ZUNvb2tpZXNGb3I7CiAg
ICAgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4gbV9yZWdpc3RyYWJsZURvbWFpbnNUb0Jsb2Nr
QnV0S2VlcENvb2tpZXNGb3I7CkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjUyNTU4KQorKysgU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMiBAQAorMjAx
OS0xMS0xOCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBD
aGVjayBpZiBJVFAgaXMgb24gYmVmb3JlIGFwcGx5aW5nIHRoaXJkLXBhcnR5IGNvb2tpZSBibG9j
a2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0
MzIyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzEyMDc3Mj4KKworICAgICAgICBSZXZpZXdl
ZCBieSBDaHJpcyBEdW1leiBhbmQgQWxleGV5IFByb3NrdXJ5YWtvdi4KKworICAgICAgICBUaGlz
IGNoYW5nZSBtYWtlcyBzdXJlIFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiBrbm93cwor
ICAgICAgICB3aGV0aGVyIElUUCBpcyBvbiBvciBvZmYgYW5kIGNoZWNrcyB0aGF0IGZpcnN0IHRo
aW5nIGluCisgICAgICAgIFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2hvdWxkQmxv
Y2tDb29raWVzKCkuCisKKyAgICAgICAgVGhpcyBjaGVjayB3YXMgbmV2ZXIgbmVlZGVkIGJlZm9y
ZSBzaW5jZSBpZiBJVFAgd2FzIG9mZiwKKyAgICAgICAgdGhlcmUgd291bGQgYmUgbm8gY2xhc3Np
ZmllZCBkb21haW5zIGFuZCB0aHVzIHRoZSBmdW5jdGlvbgorICAgICAgICB3b3VsZCBhbHdheXMg
cmV0dXJuIGZhbHNlLiBIb3dldmVyLAorICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9j
aGFuZ2VzZXQvMjUxMzUzL3dlYmtpdCBpbnRyb2R1Y2VkCisgICAgICAgIGZ1bGwgdGhpcmQtcGFy
dHkgY29va2llIGJsb2NraW5nIGZvciB3ZWJzaXRlcyB3aXRob3V0IHVzZXIKKyAgICAgICAgaW50
ZXJhY3Rpb24gYW5kIHRoYXQgcnVsZSBpcyBjaGVja2VkIGJlZm9yZSBjaGVja2luZyBkb21haW4K
KyAgICAgICAgY2xhc3NpZmljYXRpb24uIFRoZSBlZmZlY3Qgd2FzIHVuY29uZGl0aW9uYWwgdGhp
cmQtcGFydHkKKyAgICAgICAgY29va2llIGJsb2NraW5nIGlmIElUUCBpcyBvZmYuIFRoaXMgY2hh
bmdlcyBmaXhlcyB0aGF0IGJ1Zy4KKworICAgICAgICBOb3RlIHRoYXQgdGhpcyBwYXRjaCBhbHJl
YWR5IGxhbmRlZCBhcyBicmFuY2gtc3BlY2lmaWMgaW4KKyAgICAgICAgaHR0cHM6Ly90cmFjLndl
YmtpdC5vcmcvY2hhbmdlc2V0LzI1MjU0OS93ZWJraXQKKworICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246
OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKToKKyAgICAgICAgICAgIE5vdyB0ZWxs
cyBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24gdGhlIHN0YXR1cyBvZgorICAgICAgICAg
ICAgSVRQLgorCiAyMDE5LTExLTE4ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBXS1dlYlZpZXcubWVkaWFUeXBlIGlzIG51bGxhYmxlLCBub3QgbnVsbF9yZXNldHRh
YmxlCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uLmNwcAkocmV2aXNpb24gMjUyNTU4KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1Myw2ICsxNTMsOCBAQCB2
b2lkIE5ldHdvcmtTZXNzaW9uOjppbnZhbGlkYXRlQW5kQ2FuY2VsCiB2b2lkIE5ldHdvcmtTZXNz
aW9uOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChib29sIGVuYWJsZSkKIHsKICAg
ICBBU1NFUlQoIW1faXNJbnZhbGlkYXRlZCk7CisgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9u
ID0gbmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkpCisgICAgICAgIHN0b3JhZ2VTZXNzaW9uLT5zZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChlbmFibGUpOwogICAgIGlmICghZW5hYmxlKSB7
CiAgICAgICAgIGRlc3Ryb3lSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCk7CiAgICAgICAgIHJldHVy
bjsKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDI1MjU2NCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDI1IEBACisyMDE5LTExLTE4ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUu
Y29tPgorCisgICAgICAgIENoZWNrIGlmIElUUCBpcyBvbiBiZWZvcmUgYXBwbHlpbmcgdGhpcmQt
cGFydHkgY29va2llIGJsb2NraW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDQzMjIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3MTIwNzcyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6IGFuZCBBbGV4ZXkgUHJvc2t1cnlha292
LgorCisgICAgICAgIFRoaXMgaXMgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBhbGxvdyBhIGxheW91
dCB0ZXN0IHRvCisgICAgICAgIGRpc2FibGUgSVRQIGluIHRoZSBuZXR3b3JrIHByb2Nlc3MuCisK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RS
dW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldFN0YXRpc3RpY3NFbmFi
bGVkKToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGljc0RlYnVnTW9kZSk6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRTdGF0aXN0aWNzRW5hYmxlZCk6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6
ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisKIDIwMTkt
MTEtMTggIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUg
anNjIGZyb20gUmVzb3VyY2VzIHRvIEhlbHBlcnMKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAyNTI1NTgpCisrKyBUb29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzI1NCw2ICsz
MjU0LDExIEBAIHN0YXRpYyB2b2lkIHJlc291cmNlU3RhdGlzdGljc0Jvb2xlYW5SZXMKICAgICBj
b250ZXh0LT50ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CiB9CiAKK3ZvaWQgVGVzdENvbnRy
b2xsZXI6OnNldFN0YXRpc3RpY3NFbmFibGVkKGJvb2wgdmFsdWUpCit7CisgICAgV0tXZWJzaXRl
RGF0YVN0b3JlU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoVGVzdENvbnRyb2xsZXI6
OndlYnNpdGVEYXRhU3RvcmUoKSwgdmFsdWUpOworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpz
ZXRTdGF0aXN0aWNzRGVidWdNb2RlKGJvb2wgdmFsdWUpCiB7CiAgICAgUmVzb3VyY2VTdGF0aXN0
aWNzQ2FsbGJhY2tDb250ZXh0IGNvbnRleHQoKnRoaXMpOwpJbmRleDogVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaAkocmV2aXNpb24gMjUyNTU4KQorKysgVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDcsNiArMjA3
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2hvdWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlN
RVR5cGVzKGJvb2wgdmFsdWUpIHsgbV9zaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlw
ZXMgPSB2YWx1ZTsgfQogICAgIHZvaWQgc2V0U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFu
ZE1vdGlvbkFjY2Vzcyhib29sIHZhbHVlKSB7IG1fc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvbkFjY2VzcyA9IHZhbHVlOyB9CiAKKyAgICB2b2lkIHNldFN0YXRpc3RpY3NFbmFi
bGVkKGJvb2wgdmFsdWUpOwogICAgIHZvaWQgc2V0U3RhdGlzdGljc0RlYnVnTW9kZShib29sIHZh
bHVlKTsKICAgICB2b2lkIHNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9k
ZShXS1N0cmluZ1JlZiBob3N0TmFtZSk7CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzTGFzdFNlZW4o
V0tTdHJpbmdSZWYgaG9zdE5hbWUsIGRvdWJsZSBzZWNvbmRzKTsKSW5kZXg6IFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCShyZXZpc2lvbiAyNTI1NTgpCisrKyBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTA3MSw2ICsxMDcxLDEzIEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246
OmQKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJpbmdJc0Vx
dWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFN0YXRpc3RpY3NFbmFibGVkIikpIHsK
KyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0Jvb2xlYW5HZXRU
eXBlSUQoKSk7CisgICAgICAgIFdLQm9vbGVhblJlZiB2YWx1ZSA9IHN0YXRpY19jYXN0PFdLQm9v
bGVhblJlZj4obWVzc2FnZUJvZHkpOworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9u
KCkuc2V0U3RhdGlzdGljc0VuYWJsZWQoV0tCb29sZWFuR2V0VmFsdWUodmFsdWUpKTsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRG
OENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRTdGF0aXN0aWNzRGVidWdNb2RlIikpIHsKICAgICAg
ICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0Jvb2xlYW5HZXRUeXBlSUQo
KSk7CiAgICAgICAgIFdLQm9vbGVhblJlZiB2YWx1ZSA9IHN0YXRpY19jYXN0PFdLQm9vbGVhblJl
Zj4obWVzc2FnZUJvZHkpOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCShyZXZpc2lvbiAyNTI1NTgpCisrKyBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDA4LDYgKzE0MDgsMTMgQEAgdm9pZCBUZXN0UnVubmVyOjpjYWxsRGlkUmVt
b3ZlU3dpcGVTbmFwcwogICAgIGNhbGxUZXN0UnVubmVyQ2FsbGJhY2soRGlkUmVtb3ZlU3dpcGVT
bmFwc2hvdENhbGxiYWNrSUQpOwogfQogCit2b2lkIFRlc3RSdW5uZXI6OnNldFN0YXRpc3RpY3NF
bmFibGVkKGJvb2wgdmFsdWUpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3Nh
Z2VOYW1lID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2V0U3RhdGlz
dGljc0VuYWJsZWQiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tCb29sZWFuUmVmPiBtZXNzYWdlQm9k
eSA9IGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKHZhbHVlKSk7CisgICAgV0tCdW5kbGVQb3N0U3lu
Y2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVz
c2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCBudWxscHRyKTsKK30KKwogdm9pZCBU
ZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzRGVidWdNb2RlKGJvb2wgdmFsdWUsIEpTVmFsdWVSZWYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgY2FjaGVUZXN0UnVubmVyQ2FsbGJhY2soU2V0U3Rh
dGlzdGljc0RlYnVnTW9kZUNhbGxiYWNrSUQsIGNvbXBsZXRpb25IYW5kbGVyKTsKQEAgLTE0MTUs
NyArMTQyMiw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGljc0RlYnVnTW9kZSgKICAg
ICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9wdFdLKFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTZXRTdGF0aXN0aWNzRGVidWdNb2RlIikpOwogICAgIFdL
UmV0YWluUHRyPFdLQm9vbGVhblJlZj4gbWVzc2FnZUJvZHkgPSBhZG9wdFdLKFdLQm9vbGVhbkNy
ZWF0ZSh2YWx1ZSkpOwogICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShJbmplY3Rl
ZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVuZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdl
Qm9keS5nZXQoKSwgbnVsbHB0cik7Ci0KIH0KIAogdm9pZCBUZXN0UnVubmVyOjpzdGF0aXN0aWNz
Q2FsbERpZFNldERlYnVnTW9kZUNhbGxiYWNrKCkKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCShyZXZpc2lvbiAyNTI1NTgp
CisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMzgwLDYgKzM4MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1v
Y2tHYW1lcGFkQnV0dG9uVmFsdWUodW5zaWduZWQgaW5kZXgsIHVuc2lnbmVkIGJ1dHRvbkluZGV4
LCBkb3VibGUgdmFsdWUpOwogICAgIAogICAgIC8vIFJlc291cmNlIExvYWQgU3RhdGlzdGljcwor
ICAgIHZvaWQgc2V0U3RhdGlzdGljc0VuYWJsZWQoYm9vbCB2YWx1ZSk7CiAgICAgdm9pZCBpbnN0
YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRzQ2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxs
YmFjayk7CiAgICAgdm9pZCBpbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxi
YWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spOwogICAgIHZvaWQgaW5zdGFsbFN0YXRpc3RpY3NEaWRS
dW5UZWxlbWV0cnlDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKTsKSW5kZXg6IFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9UZXN0UnVubmVyLmlkbAkocmV2aXNpb24gMjUyNTU4KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMjkyLDYgKzI5Miw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICB2b2lkIGRp
c2Nvbm5lY3RNb2NrR2FtZXBhZCh1bnNpZ25lZCBsb25nIGluZGV4KTsKIAogICAgIC8vIFJlc291
cmNlIExvYWQgU3RhdGlzdGljcworICAgIHZvaWQgc2V0U3RhdGlzdGljc0VuYWJsZWQoYm9vbGVh
biB2YWx1ZSk7CiAgICAgdm9pZCBpbnN0YWxsU3RhdGlzdGljc0RpZE1vZGlmeURhdGFSZWNvcmRz
Q2FsbGJhY2sob2JqZWN0IGNhbGxiYWNrKTsKICAgICB2b2lkIGluc3RhbGxTdGF0aXN0aWNzRGlk
U2NhbkRhdGFSZWNvcmRzQ2FsbGJhY2sob2JqZWN0IGNhbGxiYWNrKTsKICAgICB2b2lkIGluc3Rh
bGxTdGF0aXN0aWNzRGlkUnVuVGVsZW1ldHJ5Q2FsbGJhY2sob2JqZWN0IGNhbGxiYWNrKTsKSW5k
ZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDI1MjU1OCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE5LTExLTE4ICBKb2huIFdpbGFuZGVyICA8d2ls
YW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIENoZWNrIGlmIElUUCBpcyBvbiBiZWZvcmUgYXBw
bHlpbmcgdGhpcmQtcGFydHkgY29va2llIGJsb2NraW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQzMjIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU3MTIwNzcyPgorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6IGFuZCBBbGV4ZXkg
UHJvc2t1cnlha292LgorCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL25vLXRoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy13aGVuLWl0cC1pcy1vZmYtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvbm8tdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdoZW4taXRwLWlzLW9mZi5odG1sOiBB
ZGRlZC4KKwogMjAxOS0xMS0xOCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgog
CiAgICAgICAgIFtXZWIgQW5pbWF0aW9uc10gUmV0YXJnZXRlZCB0cmFuc2l0aW9ucyB0YXJnZXRp
bmcgYWNjZWxlcmF0ZWQgcHJvcGVydGllcyBkbyBub3Qgc3RvcCB0aGUgb3JpZ2luYWwgdHJhbnNp
dGlvbgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L25vLXRoaXJkLXBhcnR5LWNvb2tpZS1ibG9ja2luZy13aGVuLWl0cC1pcy1vZmYtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9uby10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2hlbi1pdHAtaXMtb2ZmLWV4
cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3Mvbm8tdGhpcmQtcGFydHktY29va2llLWJsb2NraW5nLXdoZW4taXRw
LWlzLW9mZi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorVGVz
dHMgdGhhdCBleGlzdGluZyB0aGlyZC1wYXJ0eSBjb29raWVzIGFyZSBub3QgYmxvY2tlZCB3aGVu
IElUUCBpcyBvZmYuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCistLS0tLS0tLQorRnJh
bWU6ICc8IS0tZnJhbWUxLS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNlaXZlIGl0cyBjb29raWUu
CitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUg
ZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm8tdGhpcmQtcGFydHktY29va2ll
LWJsb2NraW5nLXdoZW4taXRwLWlzLW9mZi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9uby10aGlyZC1wYXJ0eS1jb29raWUt
YmxvY2tpbmctd2hlbi1pdHAtaXMtb2ZmLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL25vLXRoaXJkLXBhcnR5LWNvb2tp
ZS1ibG9ja2luZy13aGVuLWl0cC1pcy1vZmYuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDYwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxt
ZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0
PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGV4aXN0aW5nIHRoaXJkLXBhcnR5IGNvb2tp
ZXMgYXJlIG5vdCBibG9ja2VkIHdoZW4gSVRQIGlzIG9mZi4iKTsKKyAgICBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKworICAgIGNvbnN0IHBhcnRpdGlvbkhvc3QgPSAiMTI3LjAuMC4xOjgwMDAiOwor
ICAgIGNvbnN0IHBhcnRpdGlvbk9yaWdpbiA9ICJodHRwOi8vIiArIHBhcnRpdGlvbkhvc3Q7Cisg
ICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAg
IGNvbnN0IHJlc291cmNlUGF0aCA9ICIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMi
OworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0gdGhpcmRQYXJ0eU9yaWdpbiArIHJlc291
cmNlUGF0aDsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5Q29v
a2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9TZXRGaXJzdFBhcnR5Q29va2llID0gIi9zZXQtY29v
a2llLnBocD9uYW1lPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZSArICImdmFsdWU9dmFsdWUiOwor
ICAgIGNvbnN0IHJldHVyblVybCA9IHBhcnRpdGlvbk9yaWdpbiArICIvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9uby10aGlyZC1wYXJ0eS1jb29raWUtYmxvY2tpbmctd2hlbi1pdHAtaXMtb2ZmLmh0
bWwiOworICAgIGNvbnN0IHN1YlBhdGhUb0dldENvb2tpZXMgPSAiL2dldC1jb29raWVzLnBocD9u
YW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWU7CisKKyAgICBmdW5jdGlvbiBvcGVuSWZyYW1l
KHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGlmIChvbkxvYWRIYW5kbGVyKSB7Cisg
ICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgIH0KKyAg
ICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoZWxlbWVudCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAg
c3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7CisgICAgICAgICAgICBjYXNlICIiOgor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDIiOworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAg
ICAgICAgLy8gRW5hYmxlIHRoZSBmbGFnIGV2ZW4gdGhvdWdoIElUUCB3aWxsIGJlIHR1cm5lZCBv
ZmYuCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tU
aGlyZFBhcnR5Q29va2llcyh0cnVlLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworICAgICAgICAgICAgICAg
ICAgICBydW5UZXN0KCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAgICAgICAgICAgICAgIC8vIFNldCBm
aXJzdC1wYXJ0eSBjb29raWUgZm9yIGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5sb2NhdGlvbi5ocmVmID0gdGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9TZXRGaXJzdFBh
cnR5Q29va2llICsgIiMiICsgcmV0dXJuVXJsICsgIiNzdGVwMyI7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlICIjc3RlcDMiOgorICAgICAgICAgICAgICAgIC8vIENo
ZWNrIHRoYXQgdGhlIGNvb2tpZSBpcyBub3QgYmxvY2tlZCBmb3IgbG9jYWxob3N0IHVuZGVyIDEy
Ny4wLjAuMS4KKyAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsg
c3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBpdHMgY29va2ll
LiIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NFbmFibGVkKHRydWUpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NTaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzKGZhbHNlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
      

    </bug>

</bugzilla>