<?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>215562</bug_id>
          
          <creation_ts>2020-08-17 03:00:12 -0700</creation_ts>
          <short_desc>Resolve with the class used to define the Custom Element</short_desc>
          <delta_ts>2020-08-25 19:43:11 -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>Platform</component>
          <version>Other</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=215830</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>
          
          <blocked>154907</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrea Giammarchi">andrea.giammarchi</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>clopez</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>youennf</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1680757</commentid>
    <comment_count>0</comment_count>
    <who name="Andrea Giammarchi">andrea.giammarchi</who>
    <bug_when>2020-08-17 03:00:12 -0700</bug_when>
    <thetext>Accordingly with https://github.com/whatwg/html/issues/5552, `whenDefined` should resolve with the class used to define the custom element in the registry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680983</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-17 17:28:50 -0700</bug_when>
    <thetext>&lt;rdar://problem/67282709&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681919</commentid>
    <comment_count>2</comment_count>
      <attachid>406998</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-08-20 19:47:29 -0700</bug_when>
    <thetext>Created attachment 406998
Implements the new behavior</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681920</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-08-20 19:48:32 -0700</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681921</commentid>
    <comment_count>4</comment_count>
      <attachid>406998</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-20 19:54:25 -0700</bug_when>
    <thetext>Comment on attachment 406998
Implements the new behavior

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

&gt; Source/WebCore/bindings/js/JSDOMPromiseDeferred.h:80
&gt; +        JSC::JSGlobalObject* lexicalGlobalObject = globalObject();

auto

&gt; Source/WebCore/dom/CustomElementRegistry.cpp:81
&gt;      if (auto promise = m_promiseMap.take(localName))
&gt; -        promise.value()-&gt;resolve();
&gt; +        return WTFMove(*promise);
&gt; +    return nullptr;

No if statement needed:

    return m_promiseMap.take(localName);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681922</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-08-20 20:17:52 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #4)
&gt; Comment on attachment 406998 [details]
&gt; Implements the new behavior
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=406998&amp;action=review
&gt;
&gt; &gt; Source/WebCore/dom/CustomElementRegistry.cpp:81
&gt; &gt;      if (auto promise = m_promiseMap.take(localName))
&gt; &gt; -        promise.value()-&gt;resolve();
&gt; &gt; +        return WTFMove(*promise);
&gt; &gt; +    return nullptr;
&gt; 
&gt; No if statement needed:
&gt; 
&gt;     return m_promiseMap.take(localName);

That&apos;s what I thought but I was getting (and still getting) this error:

./dom/CustomElementRegistry.cpp:79:12: error: no viable conversion from returned value of type &apos;WTF::HashMap&lt;WTF::AtomString, WTF::Ref&lt;WebCore::DeferredPromise, WTF::DumbPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;, WTF::DefaultHash&lt;WTF::AtomString&gt;, WTF::HashTraits&lt;WTF::AtomString&gt;, WTF::HashTraits&lt;WTF::Ref&lt;WebCore::DeferredPromise, WTF::DumbPtrTraits&lt;WebCore::DeferredPromise&gt; &gt; &gt; &gt;::MappedTakeType&apos; (aka &apos;Optional&lt;Ref&lt;WebCore::DeferredPromise&gt; &gt;&apos;) to function return type &apos;RefPtr&lt;WebCore::DeferredPromise&gt;&apos;
    return m_promiseMap.take(localName);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681971</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-21 09:15:53 -0700</bug_when>
    <thetext>I see. You’ll have to write it this way for now, but we should either change RefHashTraits::TakeType to RefPtr in HashTraits.h, or add a constructor for RefPtr that takes Optional&lt;Ref&gt;&amp;&amp; in RefPtr.h, or possibly do both. Then we can come back here and re-simplify this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682782</commentid>
    <comment_count>7</comment_count>
      <attachid>407227</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-08-25 13:54:22 -0700</bug_when>
    <thetext>Created attachment 407227
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682783</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-08-25 13:54:49 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #6)
&gt; I see. You’ll have to write it this way for now, but we should either change
&gt; RefHashTraits::TakeType to RefPtr in HashTraits.h, or add a constructor for
&gt; RefPtr that takes Optional&lt;Ref&gt;&amp;&amp; in RefPtr.h, or possibly do both. Then we
&gt; can come back here and re-simplify this.

Yeah, let me work on that next.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682792</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-25 14:22:17 -0700</bug_when>
    <thetext>Committed r266142: &lt;https://trac.webkit.org/changeset/266142&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 407227.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406998</attachid>
            <date>2020-08-20 19:47:29 -0700</date>
            <delta_ts>2020-08-25 13:54:20 -0700</delta_ts>
            <desc>Implements the new behavior</desc>
            <filename>bug-215562-20200820194728.patch</filename>
            <type>text/plain</type>
            <size>14267</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1OTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzllM2QxYjhmN2EyNDVm
MDU0MDBiZDcxZWQ3YWRhZDZkYTcxMGM3Zi4uZGQyYWMwZTMxMGU3ZjM3MzNmNjhkNzM5NDk3ZGFl
MTExOGJhMjc3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA4LTIwICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlc29sdmUgd2l0aCB0aGUg
Y2xhc3MgdXNlZCB0byBkZWZpbmUgdGhlIEN1c3RvbSBFbGVtZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU1NjIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnRlZCB0aGUgbmV3IGJlaGF2
aW9yIHRvIHJlc29sdmUgY3VzdG9tRWxlbWVudHMud2hlbkRlZmluZWQofikKKyAgICAgICAgd2l0
aCB0aGUgY3VzdG9tIGVsZW1lbnQncyBjb25zdHJ1Y3RvciB3aGVuIGl0J3MgZGVmaW5lZC4KKwor
ICAgICAgICBUZXN0OiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVt
ZW50cy9DdXN0b21FbGVtZW50UmVnaXN0cnkuaHRtbAorCisgICAgICAgICogYmluZGluZ3MvanMv
SlNDdXN0b21FbGVtZW50UmVnaXN0cnlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlND
dXN0b21FbGVtZW50UmVnaXN0cnk6OmRlZmluZSk6CisgICAgICAgIChXZWJDb3JlOjp3aGVuRGVm
aW5lZFByb21pc2UpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVk
Lmg6CisgICAgICAgIChXZWJDb3JlOjpEZWZlcnJlZFByb21pc2U6OnJlc29sdmVXaXRoSlNWYWx1
ZSk6IEFkZGVkLgorICAgICAgICAqIGRvbS9DdXN0b21FbGVtZW50UmVnaXN0cnkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5OjphZGRFbGVtZW50RGVmaW5pdGlv
bik6IE1hZGUgdGhpcyByZXR1cm4gRGVmZXJyZWRQcm9taXNlLgorICAgICAgICAqIGRvbS9DdXN0
b21FbGVtZW50UmVnaXN0cnkuaDoKKwogMjAyMC0wOC0xOSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJp
bmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBUaGlyZCBwYXJ0eSBkb21haW5zIGFyZSBu
b3Qgc3RvcmVkIGluIHRoZSBjYXNlIG9mIGJhY2svZm9yd2FyZCBuYXZpZ2F0aW9ucwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50UmVnaXN0cnlD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50UmVn
aXN0cnlDdXN0b20uY3BwCmluZGV4IDY1Mjc1N2ZmMTExZGEwNDc0YWU0MWM5NjM2OGY2OGIwNjA5
OTc4ZDguLjM5OThhMzBiMDM3NGE1ZjdiNGNjNWVkYjkyZDFlYjAzY2I5YzI5M2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Q3Vz
dG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRS
ZWdpc3RyeUN1c3RvbS5jcHAKQEAgLTE2OSw3ICsxNjksOCBAQCBKU1ZhbHVlIEpTQ3VzdG9tRWxl
bWVudFJlZ2lzdHJ5OjpkZWZpbmUoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbAogICAgIGFkZFRvR2xvYmFsT2JqZWN0V2l0aFByaXZhdGVOYW1lKGFkb3B0ZWRDYWxsYmFj
ayk7CiAgICAgYWRkVG9HbG9iYWxPYmplY3RXaXRoUHJpdmF0ZU5hbWUoYXR0cmlidXRlQ2hhbmdl
ZENhbGxiYWNrKTsKIAotICAgIHJlZ2lzdHJ5LmFkZEVsZW1lbnREZWZpbml0aW9uKFdURk1vdmUo
ZWxlbWVudEludGVyZmFjZSkpOworICAgIGlmIChhdXRvIHByb21pc2UgPSByZWdpc3RyeS5hZGRF
bGVtZW50RGVmaW5pdGlvbihXVEZNb3ZlKGVsZW1lbnRJbnRlcmZhY2UpKSkKKyAgICAgICAgcHJv
bWlzZS0+cmVzb2x2ZVdpdGhKU1ZhbHVlKGNvbnN0cnVjdG9yKTsKIAogICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwogfQpAQCAtMTkwLDggKzE5MSw4IEBAIHN0YXRpYyBKU1ZhbHVlIHdoZW5EZWZp
bmVkUHJvbWlzZShKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
CiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KIAotICAgIGlmIChyZWdpc3Ry
eS5maW5kSW50ZXJmYWNlKGxvY2FsTmFtZSkpIHsKLSAgICAgICAgRGVmZXJyZWRQcm9taXNlOjpj
cmVhdGUoZ2xvYmFsT2JqZWN0LCBwcm9taXNlKS0+cmVzb2x2ZSgpOworICAgIGlmIChhdXRvKiBl
bGVtZW50SW50ZXJmYWNlID0gcmVnaXN0cnkuZmluZEludGVyZmFjZShsb2NhbE5hbWUpKSB7Cisg
ICAgICAgIERlZmVycmVkUHJvbWlzZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgcHJvbWlzZSktPnJl
c29sdmVXaXRoSlNWYWx1ZShlbGVtZW50SW50ZXJmYWNlLT5jb25zdHJ1Y3RvcigpKTsKICAgICAg
ICAgcmV0dXJuICZwcm9taXNlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVmZXJyZWQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmgKaW5kZXggYWQ4MDNjZDhjMTIzOTU4Yzk3ZmJi
N2E2MGY0M2E1NjNhM2E1NzNlYy4uMTA0NjQ5YTQyMDk2ODU5MDI3NDE4ZjA5NzhkMWI5NzUxOWM3
M2M1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Qcm9taXNl
RGVmZXJyZWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VE
ZWZlcnJlZC5oCkBAIC03MCw2ICs3MCwxOCBAQCBwdWJsaWM6CiAgICAgICAgIHJlc29sdmUoKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRvSlM8SURMVHlwZT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpn
bG9iYWxPYmplY3QoKSwgc3RkOjpmb3J3YXJkPHR5cGVuYW1lIElETFR5cGU6OlBhcmFtZXRlclR5
cGU+KHZhbHVlKSkpOwogICAgIH0KIAorICAgIHZvaWQgcmVzb2x2ZVdpdGhKU1ZhbHVlKEpTQzo6
SlNWYWx1ZSByZXNvbHV0aW9uKQorICAgIHsKKyAgICAgICAgaWYgKHNob3VsZElnbm9yZVJlcXVl
c3RUb0Z1bGZpbGwoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBBU1NFUlQoZGVm
ZXJyZWQoKSk7CisgICAgICAgIEFTU0VSVChnbG9iYWxPYmplY3QoKSk7CisgICAgICAgIEpTQzo6
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QgPSBnbG9iYWxPYmplY3QoKTsKKyAg
ICAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9ja2VyKGxleGljYWxHbG9iYWxPYmplY3QpOworICAg
ICAgICByZXNvbHZlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCByZXNvbHV0aW9uKTsKKyAgICB9CisK
ICAgICB2b2lkIHJlc29sdmUoKQogICAgIHsKICAgICAgICAgaWYgKHNob3VsZElnbm9yZVJlcXVl
c3RUb0Z1bGZpbGwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVt
ZW50UmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1lbnRSZWdpc3Ry
eS5jcHAKaW5kZXggMTkzNzlkZDljMmU2NWRlZjEzNmE0ZTMyYzJlNDliNjFiMzc5MmY2ZC4uNjhj
NzhkNTMwMTc3ZGUzZWU4ZjQxYmY0YmYwOTBlZTA0YTIwY2U0ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgc3RhdGlj
IHZvaWQgZW5xdWV1ZVVwZ3JhZGVJblNoYWRvd0luY2x1ZGluZ1RyZWVPcmRlcihDb250YWluZXJO
b2RlJiBub2RlLCBKU0N1c3QKICAgICB9CiB9CiAKLXZvaWQgQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5
OjphZGRFbGVtZW50RGVmaW5pdGlvbihSZWY8SlNDdXN0b21FbGVtZW50SW50ZXJmYWNlPiYmIGVs
ZW1lbnRJbnRlcmZhY2UpCitSZWZQdHI8RGVmZXJyZWRQcm9taXNlPiBDdXN0b21FbGVtZW50UmVn
aXN0cnk6OmFkZEVsZW1lbnREZWZpbml0aW9uKFJlZjxKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U+
JiYgZWxlbWVudEludGVyZmFjZSkKIHsKICAgICBBdG9tU3RyaW5nIGxvY2FsTmFtZSA9IGVsZW1l
bnRJbnRlcmZhY2UtPm5hbWUoKS5sb2NhbE5hbWUoKTsKICAgICBBU1NFUlQoIW1fbmFtZU1hcC5j
b250YWlucyhsb2NhbE5hbWUpKTsKQEAgLTc3LDcgKzc3LDggQEAgdm9pZCBDdXN0b21FbGVtZW50
UmVnaXN0cnk6OmFkZEVsZW1lbnREZWZpbml0aW9uKFJlZjxKU0N1c3RvbUVsZW1lbnRJbnRlcmZh
Y2U+JiYKICAgICAgICAgZW5xdWV1ZVVwZ3JhZGVJblNoYWRvd0luY2x1ZGluZ1RyZWVPcmRlcigq
ZG9jdW1lbnQsIGVsZW1lbnRJbnRlcmZhY2UuZ2V0KCkpOwogCiAgICAgaWYgKGF1dG8gcHJvbWlz
ZSA9IG1fcHJvbWlzZU1hcC50YWtlKGxvY2FsTmFtZSkpCi0gICAgICAgIHByb21pc2UudmFsdWUo
KS0+cmVzb2x2ZSgpOworICAgICAgICByZXR1cm4gV1RGTW92ZSgqcHJvbWlzZSk7CisgICAgcmV0
dXJuIG51bGxwdHI7CiB9CiAKIEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZSogQ3VzdG9tRWxlbWVu
dFJlZ2lzdHJ5OjpmaW5kSW50ZXJmYWNlKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmgKaW5kZXggZGVjNzgyNDQx
NzBhZjdkZWFiM2FkNjliZGYyOGVkOTBlNWVkNjU2My4uNzgyMGU3YzYyZTI2MmVjNWNjZDhkNmU3
N2VjNzMyMDY2MzQ5M2RmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVs
ZW1lbnRSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50UmVn
aXN0cnkuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxDdXN0b21F
bGVtZW50UmVnaXN0cnk+IGNyZWF0ZShET01XaW5kb3cmLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
Kik7CiAgICAgfkN1c3RvbUVsZW1lbnRSZWdpc3RyeSgpOwogCi0gICAgdm9pZCBhZGRFbGVtZW50
RGVmaW5pdGlvbihSZWY8SlNDdXN0b21FbGVtZW50SW50ZXJmYWNlPiYmKTsKKyAgICBSZWZQdHI8
RGVmZXJyZWRQcm9taXNlPiBhZGRFbGVtZW50RGVmaW5pdGlvbihSZWY8SlNDdXN0b21FbGVtZW50
SW50ZXJmYWNlPiYmKTsKIAogICAgIGJvb2wmIGVsZW1lbnREZWZpbml0aW9uSXNSdW5uaW5nKCkg
eyByZXR1cm4gbV9lbGVtZW50RGVmaW5pdGlvbklzUnVubmluZzsgfQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwppbmRleCA5MjUzMThhMjM3YjEwOWQyNDk0MDVjZGU3ZTAxYjdhNjE5ZjBk
ZjllLi40NjZlNGFiMWVjNDRjMzQ5ODJlOTQ2YTYzNmNhMWU3MjhiMjkzMTViIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wOC0yMCAgUnlvc3Vr
ZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXNvbHZlIHdpdGggdGhlIGNs
YXNzIHVzZWQgdG8gZGVmaW5lIHRoZSBDdXN0b20gRWxlbWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1NTYyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmUtc3luYydlZCB0aGUgdGVzdCB3aXRoIHRo
YXQgaW4gaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbC8yNTAz
My4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvQ3VzdG9t
RWxlbWVudFJlZ2lzdHJ5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvY3VzdG9tLWVsZW1lbnRzL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5odG1sOgorCiAyMDIwLTA4
LTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQmxvYiBpcyBt
aXNzaW5nIHRleHQoKSAmIGFycmF5QnVmZmVyKCkgb3BlcmF0aW9ucwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMv
Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL0N1c3RvbUVsZW1lbnRSZWdp
c3RyeS1leHBlY3RlZC50eHQKaW5kZXggYWI1YTk5OGU4OGZkODIzOGM2ZjM2MjJlZTY3NWQ2NzYz
ODUyYzZkZS4uY2ViN2M1YzViNjEwZjc2MjQzNzhlMWUxNjMyYTM3ZTBkYTJiNmIwMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20t
ZWxlbWVudHMvQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9DdXN0
b21FbGVtZW50UmVnaXN0cnktZXhwZWN0ZWQudHh0CkBAIC00Myw0ICs0Myw1IEBAIFBBU1MgY3Vz
dG9tRWxlbWVudHMud2hlbkRlZmluZWQgbXVzdCByZXR1cm4gYSByZWplY3RlZCBwcm9taXNlIHdo
ZW4gdGhlIGdpdmVuIG5hCiBQQVNTIGN1c3RvbUVsZW1lbnRzLndoZW5EZWZpbmVkIG11c3QgcmV0
dXJuIGEgcmVzb2x2ZWQgcHJvbWlzZSB3aGVuIHRoZSByZWdpc3RyeSBjb250YWlucyB0aGUgZW50
cnkgd2l0aCB0aGUgZ2l2ZW4gbmFtZSAKIFBBU1MgY3VzdG9tRWxlbWVudHMud2hlbkRlZmluZWQg
bXVzdCByZXR1cm4gYSBuZXcgcmVzb2x2ZWQgcHJvbWlzZSBlYWNoIHRpbWUgaW52b2tlZCB3aGVu
IHRoZSByZWdpc3RyeSBjb250YWlucyB0aGUgZW50cnkgd2l0aCB0aGUgZ2l2ZW4gbmFtZSAKIFBB
U1MgQSBwcm9taXNlIHJldHVybmVkIGJ5IGN1c3RvbUVsZW1lbnRzLndoZW5EZWZpbmVkIG11c3Qg
YmUgcmVzb2x2ZWQgYnkgImRlZmluZSIgCitQQVNTIEEgcHJvbWlzZSByZXR1cm5lZCBieSBjdXN0
b21FbGVtZW50cy53aGVuRGVmaW5lZCBtdXN0IGJlIHJlc29sdmVkIHdpdGggdGhlIGRlZmluZWQg
Y2xhc3MgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMv
Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5Lmh0bWwKaW5kZXggY2M4MWUzYTJjZDM5NDVjZWFjNGZmNDYx
YjE0OTAzYzM5MDFiMWJhNC4uMTQ5NjE2ZDE2NTIyOTlkOTgzMThmNGJmMGZkOGQ3YWMxODM4ZjEz
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jdXN0b20tZWxlbWVudHMvQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Lmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvQ3Vz
dG9tRWxlbWVudFJlZ2lzdHJ5Lmh0bWwKQEAgLTY1NSw3ICs2NTUsOCBAQCBwcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24gKCkgewogfSwgJ2N1c3RvbUVsZW1lbnRzLndoZW5EZWZpbmVkIG11c3QgcmV0dXJu
IGEgcmVqZWN0ZWQgcHJvbWlzZSB3aGVuIHRoZSBnaXZlbiBuYW1lIGlzIG5vdCBhIHZhbGlkIGN1
c3RvbSBlbGVtZW50IG5hbWUnKTsKIAogcHJvbWlzZV90ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICBj
dXN0b21FbGVtZW50cy5kZWZpbmUoJ3ByZWV4aXN0aW5nLWN1c3RvbS1lbGVtZW50JywgY2xhc3Mg
ZXh0ZW5kcyBIVE1MRWxlbWVudCB7IH0pOworICAgIGNsYXNzIFByZWV4aXN0aW5nQ3VzdG9tRWxl
bWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHsgfTsKKyAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUo
J3ByZWV4aXN0aW5nLWN1c3RvbS1lbGVtZW50JywgUHJlZXhpc3RpbmdDdXN0b21FbGVtZW50KTsK
IAogICAgIHZhciBwcm9taXNlID0gY3VzdG9tRWxlbWVudHMud2hlbkRlZmluZWQoJ3ByZWV4aXN0
aW5nLWN1c3RvbS1lbGVtZW50Jyk7CiAgICAgcHJvbWlzZS50aGVuKGZ1bmN0aW9uICh2YWx1ZSkg
eyBwcm9taXNlLnJlc29sdmVkID0gdmFsdWU7IH0sIGZ1bmN0aW9uICh2YWx1ZSkgeyBwcm9taXNl
LnJlamVjdGVkID0gdmFsdWU7IH0pOwpAQCAtNjY1LDggKzY2Niw4IEBAIHByb21pc2VfdGVzdChm
dW5jdGlvbiAoKSB7CiAKICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlv
biAoKSB7CiAgICAgICAgIGFzc2VydF90cnVlKCdyZXNvbHZlZCcgaW4gcHJvbWlzZSwgJ1RoZSBw
cm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBiZSByZXNvbHZlZCB3aGVuIGEg
Y3VzdG9tIGVsZW1lbnQgaXMgZGVmaW5lZCcpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKHByb21p
c2UucmVzb2x2ZWQsIHVuZGVmaW5lZCwKLSAgICAgICAgICAgICdUaGUgcHJvbWlzZSByZXR1cm5l
ZCBieSAid2hlbkRlZmluZWQiIG11c3QgYmUgcmVzb2x2ZWQgd2l0aCAidW5kZWZpbmVkIiB3aGVu
IGEgY3VzdG9tIGVsZW1lbnQgaXMgZGVmaW5lZCcpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHBy
b21pc2UucmVzb2x2ZWQsIFByZWV4aXN0aW5nQ3VzdG9tRWxlbWVudCwKKyAgICAgICAgICAgICdU
aGUgcHJvbWlzZSByZXR1cm5lZCBieSAid2hlbkRlZmluZWQiIG11c3QgYmUgcmVzb2x2ZWQgd2l0
aCB0aGUgY29uc3RydWN0b3Igb2YgdGhlIGVsZW1lbnQgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGlz
IGRlZmluZWQnKTsKICAgICAgICAgYXNzZXJ0X2ZhbHNlKCdyZWplY3RlZCcgaW4gcHJvbWlzZSwg
J1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBub3QgYmUgcmVqZWN0
ZWQgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGlzIGRlZmluZWQnKTsKICAgICB9KTsKIH0sICdjdXN0
b21FbGVtZW50cy53aGVuRGVmaW5lZCBtdXN0IHJldHVybiBhIHJlc29sdmVkIHByb21pc2Ugd2hl
biB0aGUgcmVnaXN0cnkgY29udGFpbnMgdGhlIGVudHJ5IHdpdGggdGhlIGdpdmVuIG5hbWUnKTsK
QEAgLTY4OCwxNiArNjg5LDE3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7CiAKICAgICBy
ZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgIGFzc2Vy
dF90cnVlKCdyZXNvbHZlZCcgaW4gcHJvbWlzZTEsICdUaGUgcHJvbWlzZSByZXR1cm5lZCBieSAi
d2hlbkRlZmluZWQiIG11c3QgYmUgcmVzb2x2ZWQgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGlzIGRl
ZmluZWQnKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhwcm9taXNlMS5yZXNvbHZlZCwgdW5kZWZp
bmVkLCAnVGhlIHByb21pc2UgcmV0dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IGJlIHJlc29s
dmVkIHdpdGggInVuZGVmaW5lZCIgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGlzIGRlZmluZWQnKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhwcm9taXNlMS5yZXNvbHZlZCwgQW5vdGhlckV4aXN0aW5n
Q3VzdG9tRWxlbWVudCwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVz
dCBiZSByZXNvbHZlZCB3aXRoIHRoZSBjb25zdHJ1Y3RvciBvZiB0aGUgZWxlbWVudCB3aGVuIGEg
Y3VzdG9tIGVsZW1lbnQgaXMgZGVmaW5lZCcpOwogICAgICAgICBhc3NlcnRfZmFsc2UoJ3JlamVj
dGVkJyBpbiBwcm9taXNlMSwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIg
bXVzdCBub3QgYmUgcmVqZWN0ZWQgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGlzIGRlZmluZWQnKTsK
IAogICAgICAgICBhc3NlcnRfdHJ1ZSgncmVzb2x2ZWQnIGluIHByb21pc2UyLCAnVGhlIHByb21p
c2UgcmV0dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IGJlIHJlc29sdmVkIHdoZW4gYSBjdXN0
b20gZWxlbWVudCBpcyBkZWZpbmVkJyk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMocHJvbWlzZTIu
cmVzb2x2ZWQsIHVuZGVmaW5lZCwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5l
ZCIgbXVzdCBiZSByZXNvbHZlZCB3aXRoICJ1bmRlZmluZWQiIHdoZW4gYSBjdXN0b20gZWxlbWVu
dCBpcyBkZWZpbmVkJyk7CisgICAgICAgIGFzc2VydF9lcXVhbHMocHJvbWlzZTIucmVzb2x2ZWQs
IEFub3RoZXJFeGlzdGluZ0N1c3RvbUVsZW1lbnQsICdUaGUgcHJvbWlzZSByZXR1cm5lZCBieSAi
d2hlbkRlZmluZWQiIG11c3QgYmUgcmVzb2x2ZWQgd2l0aCB0aGUgY29uc3RydWN0b3Igb2YgdGhl
IGVsZW1lbnQgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGlzIGRlZmluZWQnKTsKICAgICAgICAgYXNz
ZXJ0X2ZhbHNlKCdyZWplY3RlZCcgaW4gcHJvbWlzZTIsICdUaGUgcHJvbWlzZSByZXR1cm5lZCBi
eSAid2hlbkRlZmluZWQiIG11c3Qgbm90IGJlIHJlamVjdGVkIHdoZW4gYSBjdXN0b20gZWxlbWVu
dCBpcyBkZWZpbmVkJyk7CiAgICAgfSk7CiB9LCAnY3VzdG9tRWxlbWVudHMud2hlbkRlZmluZWQg
bXVzdCByZXR1cm4gYSBuZXcgcmVzb2x2ZWQgcHJvbWlzZSBlYWNoIHRpbWUgaW52b2tlZCB3aGVu
IHRoZSByZWdpc3RyeSBjb250YWlucyB0aGUgZW50cnkgd2l0aCB0aGUgZ2l2ZW4gbmFtZScpOwog
CiBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIGNsYXNzIEVsZW1lbnREZWZpbmVkQWZ0
ZXJXaGVuRGVmaW5lZCBleHRlbmRzIEhUTUxFbGVtZW50IHsgfTsKICAgICB2YXIgcHJvbWlzZSA9
IGN1c3RvbUVsZW1lbnRzLndoZW5EZWZpbmVkKCdlbGVtZW50LWRlZmluZWQtYWZ0ZXItd2hlbmRl
ZmluZWQnKTsKICAgICBwcm9taXNlLnRoZW4oZnVuY3Rpb24gKHZhbHVlKSB7IHByb21pc2UucmVz
b2x2ZWQgPSB2YWx1ZTsgfSwgZnVuY3Rpb24gKHZhbHVlKSB7IHByb21pc2UucmVqZWN0ZWQgPSB2
YWx1ZTsgfSk7CiAKQEAgLTcxMCw3ICs3MTIsNyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkg
ewogICAgICAgICBhc3NlcnRfZmFsc2UoJ3JlamVjdGVkJyBpbiBwcm9taXNlLCAnVGhlIHByb21p
c2UgcmV0dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IG5vdCBiZSByZWplY3RlZCB1bnRpbCB0
aGUgZWxlbWVudCBpcyBkZWZpbmVkJyk7CiAgICAgICAgIGFzc2VydF9lcXVhbHMoY3VzdG9tRWxl
bWVudHMud2hlbkRlZmluZWQoJ2VsZW1lbnQtZGVmaW5lZC1hZnRlci13aGVuZGVmaW5lZCcpLCBw
cm9taXNlLAogICAgICAgICAgICAgJyJ3aGVuRGVmaW5lZCIgbXVzdCByZXR1cm4gdGhlIHNhbWUg
dW5yZXNvbHZlZCBwcm9taXNlIGJlZm9yZSB0aGUgY3VzdG9tIGVsZW1lbnQgaXMgZGVmaW5lZCcp
OwotICAgICAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2VsZW1lbnQtZGVmaW5lZC1hZnRlci13
aGVuZGVmaW5lZCcsIGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnQgeyB9KTsKKyAgICAgICAgY3Vz
dG9tRWxlbWVudHMuZGVmaW5lKCdlbGVtZW50LWRlZmluZWQtYWZ0ZXItd2hlbmRlZmluZWQnLCBF
bGVtZW50RGVmaW5lZEFmdGVyV2hlbkRlZmluZWQpOwogICAgICAgICBhc3NlcnRfZmFsc2UoJ3Jl
c29sdmVkJyBpbiBwcm9taXNlLCAnVGhlIHByb21pc2UgcmV0dXJuZWQgYnkgIndoZW5EZWZpbmVk
IiBtdXN0IG5vdCBiZSByZXNvbHZlZCB1bnRpbCB0aGUgZW5kIG9mIHRoZSBuZXh0IG1pY3JvdGFz
aycpOwogICAgICAgICBhc3NlcnRfZmFsc2UoJ3JlamVjdGVkJyBpbiBwcm9taXNlLCAnVGhlIHBy
b21pc2UgcmV0dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IG5vdCBiZSByZWplY3RlZCB1bnRp
bCB0aGUgZW5kIG9mIHRoZSBuZXh0IG1pY3JvdGFzaycpOwogCkBAIC03MjEsMTcgKzcyMywyNCBA
QCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgewogICAgICAgICBhc3NlcnRfZmFsc2UoJ3JlamVj
dGVkJyBpbiBwcm9taXNlQWZ0ZXJEZWZpbmUsICdUaGUgcHJvbWlzZSByZXR1cm5lZCBieSAid2hl
bkRlZmluZWQiIG11c3Qgbm90IGJlIHJlamVjdGVkIHVudGlsIHRoZSBlbmQgb2YgdGhlIG5leHQg
bWljcm90YXNrJyk7CiAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgIGFzc2VydF90
cnVlKCdyZXNvbHZlZCcgaW4gcHJvbWlzZSwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVu
RGVmaW5lZCIgbXVzdCBiZSByZXNvbHZlZCB3aGVuIGEgY3VzdG9tIGVsZW1lbnQgaXMgZGVmaW5l
ZCcpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKHByb21pc2UucmVzb2x2ZWQsIHVuZGVmaW5lZCwK
LSAgICAgICAgICAgICdUaGUgcHJvbWlzZSByZXR1cm5lZCBieSAid2hlbkRlZmluZWQiIG11c3Qg
YmUgcmVzb2x2ZWQgd2l0aCAidW5kZWZpbmVkIiB3aGVuIGEgY3VzdG9tIGVsZW1lbnQgaXMgZGVm
aW5lZCcpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHByb21pc2UucmVzb2x2ZWQsIEVsZW1lbnRE
ZWZpbmVkQWZ0ZXJXaGVuRGVmaW5lZCwKKyAgICAgICAgICAgICdUaGUgcHJvbWlzZSByZXR1cm5l
ZCBieSAid2hlbkRlZmluZWQiIG11c3QgYmUgcmVzb2x2ZWQgd2l0aCB0aGUgY29uc3RydWN0b3Ig
b2YgdGhlIGVsZW1lbnQgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGlzIGRlZmluZWQnKTsKICAgICAg
ICAgYXNzZXJ0X2ZhbHNlKCdyZWplY3RlZCcgaW4gcHJvbWlzZSwgJ1RoZSBwcm9taXNlIHJldHVy
bmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBub3QgYmUgcmVqZWN0ZWQgd2hlbiBhIGN1c3RvbSBl
bGVtZW50IGlzIGRlZmluZWQnKTsKIAogICAgICAgICBhc3NlcnRfdHJ1ZSgncmVzb2x2ZWQnIGlu
IHByb21pc2VBZnRlckRlZmluZSwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5l
ZCIgbXVzdCBiZSByZXNvbHZlZCB3aGVuIGEgY3VzdG9tIGVsZW1lbnQgaXMgZGVmaW5lZCcpOwot
ICAgICAgICBhc3NlcnRfZXF1YWxzKHByb21pc2VBZnRlckRlZmluZS5yZXNvbHZlZCwgdW5kZWZp
bmVkLAotICAgICAgICAgICAgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIg
bXVzdCBiZSByZXNvbHZlZCB3aXRoICJ1bmRlZmluZWQiIHdoZW4gYSBjdXN0b20gZWxlbWVudCBp
cyBkZWZpbmVkJyk7CisgICAgICAgIGFzc2VydF9lcXVhbHMocHJvbWlzZUFmdGVyRGVmaW5lLnJl
c29sdmVkLCBFbGVtZW50RGVmaW5lZEFmdGVyV2hlbkRlZmluZWQsCisgICAgICAgICAgICAnVGhl
IHByb21pc2UgcmV0dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IGJlIHJlc29sdmVkIHdpdGgg
dGhlIGNvbnN0cnVjdG9yIG9mIHRoZSBlbGVtZW50IHdoZW4gYSBjdXN0b20gZWxlbWVudCBpcyBk
ZWZpbmVkJyk7CiAgICAgICAgIGFzc2VydF9mYWxzZSgncmVqZWN0ZWQnIGluIHByb21pc2VBZnRl
ckRlZmluZSwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBub3Qg
YmUgcmVqZWN0ZWQgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGlzIGRlZmluZWQnKTsKICAgICB9KTsK
IH0sICdBIHByb21pc2UgcmV0dXJuZWQgYnkgY3VzdG9tRWxlbWVudHMud2hlbkRlZmluZWQgbXVz
dCBiZSByZXNvbHZlZCBieSAiZGVmaW5lIicpOwogCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkg
eworICAgIGNsYXNzIFJlc29sdmVkQ3VzdG9tRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHt9
OworICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgncmVzb2x2ZWQtY3VzdG9tLWVsZW1lbnQnLCBS
ZXNvbHZlZEN1c3RvbUVsZW1lbnQpOworICAgIHJldHVybiBjdXN0b21FbGVtZW50cy53aGVuRGVm
aW5lZCgncmVzb2x2ZWQtY3VzdG9tLWVsZW1lbnQnKS50aGVuKGZ1bmN0aW9uICh2YWx1ZSkgewor
ICAgICAgICBhc3NlcnRfdHJ1ZSh2YWx1ZSA9PT0gUmVzb2x2ZWRDdXN0b21FbGVtZW50LCAnVGhl
IHByb21pc2UgcmV0dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IHJlc29sdmUgd2l0aCB0aGUg
ZGVmaW5lZCBjbGFzcycpOworICAgIH0pOworfSwgJ0EgcHJvbWlzZSByZXR1cm5lZCBieSBjdXN0
b21FbGVtZW50cy53aGVuRGVmaW5lZCBtdXN0IGJlIHJlc29sdmVkIHdpdGggdGhlIGRlZmluZWQg
Y2xhc3MnKQogPC9zY3JpcHQ+CiA8L2JvZHk+Ci08L2h0bWw+Cis8L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407227</attachid>
            <date>2020-08-25 13:54:22 -0700</date>
            <delta_ts>2020-08-25 14:22:18 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-215562-20200825135422.patch</filename>
            <type>text/plain</type>
            <size>14945</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmUyYmQ5NWQzYTgzMTg2
ZTViYmRkYTU4YjU1NDQ2MTlhYzQ4Njg2OS4uNzQ3NjBiMTk2YTM2OTQ3MmEyOGE1OWQyMWZkYzI3
NmI4YzkxYThiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA4LTIwICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlc29sdmUgd2l0aCB0aGUg
Y2xhc3MgdXNlZCB0byBkZWZpbmUgdGhlIEN1c3RvbSBFbGVtZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU1NjIKKworICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBJbXBsZW1lbnRlZCB0aGUgbmV3IGJlaGF2aW9y
IHRvIHJlc29sdmUgY3VzdG9tRWxlbWVudHMud2hlbkRlZmluZWQofikKKyAgICAgICAgd2l0aCB0
aGUgY3VzdG9tIGVsZW1lbnQncyBjb25zdHJ1Y3RvciB3aGVuIGl0J3MgZGVmaW5lZC4KKworICAg
ICAgICBUZXN0OiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50
cy9DdXN0b21FbGVtZW50UmVnaXN0cnkuaHRtbAorCisgICAgICAgICogYmluZGluZ3MvanMvSlND
dXN0b21FbGVtZW50UmVnaXN0cnlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDdXN0
b21FbGVtZW50UmVnaXN0cnk6OmRlZmluZSk6CisgICAgICAgIChXZWJDb3JlOjp3aGVuRGVmaW5l
ZFByb21pc2UpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmg6
CisgICAgICAgIChXZWJDb3JlOjpEZWZlcnJlZFByb21pc2U6OnJlc29sdmVXaXRoSlNWYWx1ZSk6
IEFkZGVkLgorICAgICAgICAqIGRvbS9DdXN0b21FbGVtZW50UmVnaXN0cnkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5OjphZGRFbGVtZW50RGVmaW5pdGlvbik6
IE1hZGUgdGhpcyByZXR1cm4gRGVmZXJyZWRQcm9taXNlLgorICAgICAgICAqIGRvbS9DdXN0b21F
bGVtZW50UmVnaXN0cnkuaDoKKwogMjAyMC0wOC0yNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0Bh
cHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogcmVuYW1lIGBTY3JpcHREZWJ1Z1Nl
cnZlcmAgc3ViY2xhc3Nlcy9tZXRob2RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRSZWdpc3RyeUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRSZWdpc3RyeUN1c3RvbS5jcHAKaW5kZXggNjUy
NzU3ZmYxMTFkYTA0NzRhZTQxYzk2MzY4ZjY4YjA2MDk5NzhkOC4uMzk5OGEzMGIwMzc0YTVmN2I0
Y2M1ZWRiOTJkMWViMDNjYjljMjkzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDdXN0b21FbGVtZW50UmVnaXN0cnlDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Q3VzdG9tLmNwcApAQCAtMTY5
LDcgKzE2OSw4IEBAIEpTVmFsdWUgSlNDdXN0b21FbGVtZW50UmVnaXN0cnk6OmRlZmluZShKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsCiAgICAgYWRkVG9HbG9iYWxPYmpl
Y3RXaXRoUHJpdmF0ZU5hbWUoYWRvcHRlZENhbGxiYWNrKTsKICAgICBhZGRUb0dsb2JhbE9iamVj
dFdpdGhQcml2YXRlTmFtZShhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2spOwogCi0gICAgcmVnaXN0
cnkuYWRkRWxlbWVudERlZmluaXRpb24oV1RGTW92ZShlbGVtZW50SW50ZXJmYWNlKSk7CisgICAg
aWYgKGF1dG8gcHJvbWlzZSA9IHJlZ2lzdHJ5LmFkZEVsZW1lbnREZWZpbml0aW9uKFdURk1vdmUo
ZWxlbWVudEludGVyZmFjZSkpKQorICAgICAgICBwcm9taXNlLT5yZXNvbHZlV2l0aEpTVmFsdWUo
Y29uc3RydWN0b3IpOwogCiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CkBAIC0xOTAsOCAr
MTkxLDggQEAgc3RhdGljIEpTVmFsdWUgd2hlbkRlZmluZWRQcm9taXNlKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUKICAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CiAgICAgfQogCi0gICAgaWYgKHJlZ2lzdHJ5LmZpbmRJbnRlcmZhY2UobG9jYWxOYW1l
KSkgewotICAgICAgICBEZWZlcnJlZFByb21pc2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHByb21p
c2UpLT5yZXNvbHZlKCk7CisgICAgaWYgKGF1dG8qIGVsZW1lbnRJbnRlcmZhY2UgPSByZWdpc3Ry
eS5maW5kSW50ZXJmYWNlKGxvY2FsTmFtZSkpIHsKKyAgICAgICAgRGVmZXJyZWRQcm9taXNlOjpj
cmVhdGUoZ2xvYmFsT2JqZWN0LCBwcm9taXNlKS0+cmVzb2x2ZVdpdGhKU1ZhbHVlKGVsZW1lbnRJ
bnRlcmZhY2UtPmNvbnN0cnVjdG9yKCkpOwogICAgICAgICByZXR1cm4gJnByb21pc2U7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VE
ZWZlcnJlZC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVmZXJy
ZWQuaAppbmRleCBhZDgwM2NkOGMxMjM5NThjOTdmYmI3YTYwZjQzYTU2M2EzYTU3M2VjLi4xMDQ2
NDlhNDIwOTY4NTkwMjc0MThmMDk3OGQxYjk3NTE5YzczYzU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmgKQEAgLTcwLDYgKzcwLDE4
IEBAIHB1YmxpYzoKICAgICAgICAgcmVzb2x2ZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgdG9KUzxJ
RExUeXBlPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmdsb2JhbE9iamVjdCgpLCBzdGQ6OmZvcndh
cmQ8dHlwZW5hbWUgSURMVHlwZTo6UGFyYW1ldGVyVHlwZT4odmFsdWUpKSk7CiAgICAgfQogCisg
ICAgdm9pZCByZXNvbHZlV2l0aEpTVmFsdWUoSlNDOjpKU1ZhbHVlIHJlc29sdXRpb24pCisgICAg
eworICAgICAgICBpZiAoc2hvdWxkSWdub3JlUmVxdWVzdFRvRnVsZmlsbCgpKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIEFTU0VSVChkZWZlcnJlZCgpKTsKKyAgICAgICAgQVNTRVJU
KGdsb2JhbE9iamVjdCgpKTsKKyAgICAgICAgSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCA9IGdsb2JhbE9iamVjdCgpOworICAgICAgICBKU0M6OkpTTG9ja0hvbGRlciBs
b2NrZXIobGV4aWNhbEdsb2JhbE9iamVjdCk7CisgICAgICAgIHJlc29sdmUoKmxleGljYWxHbG9i
YWxPYmplY3QsIHJlc29sdXRpb24pOworICAgIH0KKwogICAgIHZvaWQgcmVzb2x2ZSgpCiAgICAg
ewogICAgICAgICBpZiAoc2hvdWxkSWdub3JlUmVxdWVzdFRvRnVsZmlsbCgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmNwcAppbmRleCAxOTM3OWRkOWMyZTY1
ZGVmMTM2YTRlMzJjMmU0OWI2MWIzNzkyZjZkLi42OGM3OGQ1MzAxNzdkZTNlZThmNDFiZjRiZjA5
MGVlMDRhMjBjZTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVu
dFJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlZ2lz
dHJ5LmNwcApAQCAtNjYsNyArNjYsNyBAQCBzdGF0aWMgdm9pZCBlbnF1ZXVlVXBncmFkZUluU2hh
ZG93SW5jbHVkaW5nVHJlZU9yZGVyKENvbnRhaW5lck5vZGUmIG5vZGUsIEpTQ3VzdAogICAgIH0K
IH0KIAotdm9pZCBDdXN0b21FbGVtZW50UmVnaXN0cnk6OmFkZEVsZW1lbnREZWZpbml0aW9uKFJl
ZjxKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U+JiYgZWxlbWVudEludGVyZmFjZSkKK1JlZlB0cjxE
ZWZlcnJlZFByb21pc2U+IEN1c3RvbUVsZW1lbnRSZWdpc3RyeTo6YWRkRWxlbWVudERlZmluaXRp
b24oUmVmPEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZT4mJiBlbGVtZW50SW50ZXJmYWNlKQogewog
ICAgIEF0b21TdHJpbmcgbG9jYWxOYW1lID0gZWxlbWVudEludGVyZmFjZS0+bmFtZSgpLmxvY2Fs
TmFtZSgpOwogICAgIEFTU0VSVCghbV9uYW1lTWFwLmNvbnRhaW5zKGxvY2FsTmFtZSkpOwpAQCAt
NzcsNyArNzcsOCBAQCB2b2lkIEN1c3RvbUVsZW1lbnRSZWdpc3RyeTo6YWRkRWxlbWVudERlZmlu
aXRpb24oUmVmPEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZT4mJgogICAgICAgICBlbnF1ZXVlVXBn
cmFkZUluU2hhZG93SW5jbHVkaW5nVHJlZU9yZGVyKCpkb2N1bWVudCwgZWxlbWVudEludGVyZmFj
ZS5nZXQoKSk7CiAKICAgICBpZiAoYXV0byBwcm9taXNlID0gbV9wcm9taXNlTWFwLnRha2UobG9j
YWxOYW1lKSkKLSAgICAgICAgcHJvbWlzZS52YWx1ZSgpLT5yZXNvbHZlKCk7CisgICAgICAgIHJl
dHVybiBXVEZNb3ZlKCpwcm9taXNlKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogSlNDdXN0
b21FbGVtZW50SW50ZXJmYWNlKiBDdXN0b21FbGVtZW50UmVnaXN0cnk6OmZpbmRJbnRlcmZhY2Uo
Y29uc3QgRWxlbWVudCYgZWxlbWVudCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9DdXN0b21FbGVtZW50UmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21F
bGVtZW50UmVnaXN0cnkuaAppbmRleCBkZWM3ODI0NDE3MGFmN2RlYWIzYWQ2OWJkZjI4ZWQ5MGU1
ZWQ2NTYzLi43ODIwZTdjNjJlMjYyZWM1Y2NkOGQ2ZTc3ZWM3MzIwNjYzNDkzZGYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5oCkBAIC01Myw3ICs1Myw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEN1c3RvbUVsZW1lbnRSZWdpc3RyeT4gY3JlYXRlKERP
TVdpbmRvdyYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKICAgICB+Q3VzdG9tRWxlbWVudFJl
Z2lzdHJ5KCk7CiAKLSAgICB2b2lkIGFkZEVsZW1lbnREZWZpbml0aW9uKFJlZjxKU0N1c3RvbUVs
ZW1lbnRJbnRlcmZhY2U+JiYpOworICAgIFJlZlB0cjxEZWZlcnJlZFByb21pc2U+IGFkZEVsZW1l
bnREZWZpbml0aW9uKFJlZjxKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U+JiYpOwogCiAgICAgYm9v
bCYgZWxlbWVudERlZmluaXRpb25Jc1J1bm5pbmcoKSB7IHJldHVybiBtX2VsZW1lbnREZWZpbml0
aW9uSXNSdW5uaW5nOyB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGE0Mjhj
NWM3Mjk1NTIyNjNiOTczYmE4NDgxZGQyNjgzOTMzYjBkYzUuLmY5MDUyMjRkMzJhMDRhNjkwY2Jl
NDU4YWYwODExMDMwYjQzZDYxNmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDIwLTA4LTIwICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3Jn
PgorCisgICAgICAgIFJlc29sdmUgd2l0aCB0aGUgY2xhc3MgdXNlZCB0byBkZWZpbmUgdGhlIEN1
c3RvbSBFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTU1NjIKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAg
ICBSZS1zeW5jJ2VkIHRoZSB0ZXN0IHdpdGggdGhhdCBpbiBodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdC9wdWxsLzI1MDMzLgorCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2N1c3RvbS1lbGVtZW50cy9DdXN0b21FbGVtZW50UmVnaXN0cnktZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvQ3VzdG9tRWxl
bWVudFJlZ2lzdHJ5Lmh0bWw6CisKIDIwMjAtMDgtMjQgIEp1c3RpbiBVYmVydGkgIDxqdXN0aW5A
dWJlcnRpLm5hbWU+CiAKICAgICAgICAgUlRDUnRwU3luY2hyb25pemF0aW9uU291cmNlLnJ0cFRp
bWVzdGFtcCBpcyBub3QgcHJlc2VudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvQ3VzdG9tRWxlbWVudFJlZ2lz
dHJ5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3VzdG9tLWVsZW1lbnRzL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS1leHBlY3RlZC50eHQK
aW5kZXggYWI1YTk5OGU4OGZkODIzOGM2ZjM2MjJlZTY3NWQ2NzYzODUyYzZkZS4uZDMwYzYyODM0
MWQzNGU3MGEzZTYzMjRlMDBkMGExMjk1ODBlMTkyMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvQ3VzdG9tRWxl
bWVudFJlZ2lzdHJ5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9DdXN0b21FbGVtZW50UmVnaXN0cnkt
ZXhwZWN0ZWQudHh0CkBAIC00Myw0ICs0Myw2IEBAIFBBU1MgY3VzdG9tRWxlbWVudHMud2hlbkRl
ZmluZWQgbXVzdCByZXR1cm4gYSByZWplY3RlZCBwcm9taXNlIHdoZW4gdGhlIGdpdmVuIG5hCiBQ
QVNTIGN1c3RvbUVsZW1lbnRzLndoZW5EZWZpbmVkIG11c3QgcmV0dXJuIGEgcmVzb2x2ZWQgcHJv
bWlzZSB3aGVuIHRoZSByZWdpc3RyeSBjb250YWlucyB0aGUgZW50cnkgd2l0aCB0aGUgZ2l2ZW4g
bmFtZSAKIFBBU1MgY3VzdG9tRWxlbWVudHMud2hlbkRlZmluZWQgbXVzdCByZXR1cm4gYSBuZXcg
cmVzb2x2ZWQgcHJvbWlzZSBlYWNoIHRpbWUgaW52b2tlZCB3aGVuIHRoZSByZWdpc3RyeSBjb250
YWlucyB0aGUgZW50cnkgd2l0aCB0aGUgZ2l2ZW4gbmFtZSAKIFBBU1MgQSBwcm9taXNlIHJldHVy
bmVkIGJ5IGN1c3RvbUVsZW1lbnRzLndoZW5EZWZpbmVkIG11c3QgYmUgcmVzb2x2ZWQgYnkgImRl
ZmluZSIgCitQQVNTIEEgcHJvbWlzZSByZXR1cm5lZCBieSBjdXN0b21FbGVtZW50cy53aGVuRGVm
aW5lZCBtdXN0IGJlIHJlc29sdmVkIHdpdGggdGhlIGRlZmluZWQgY2xhc3MgCitQQVNTIEEgcHJv
bWlzZSByZXR1cm5lZCBieSBjdXN0b21FbGVtZW50cy53aGVuRGVmaW5lZCBtdXN0IGJlIHJlc29s
dmVkIHdpdGggdGhlIGRlZmluZWQgY2xhc3Mgb25jZSBzdWNoIGNsYXNzIGlzIGRlZmluZWQgCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3VzdG9tLWVsZW1lbnRzL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvQ3VzdG9tRWxl
bWVudFJlZ2lzdHJ5Lmh0bWwKaW5kZXggY2M4MWUzYTJjZDM5NDVjZWFjNGZmNDYxYjE0OTAzYzM5
MDFiMWJhNC4uMTVkOTgzZjFjNDk0MDljMmFmZmYyNDA0MDJmYzRmYWQwODgyMDYxMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20t
ZWxlbWVudHMvQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvQ3VzdG9tRWxlbWVu
dFJlZ2lzdHJ5Lmh0bWwKQEAgLTY1NSw3ICs2NTUsOCBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24g
KCkgewogfSwgJ2N1c3RvbUVsZW1lbnRzLndoZW5EZWZpbmVkIG11c3QgcmV0dXJuIGEgcmVqZWN0
ZWQgcHJvbWlzZSB3aGVuIHRoZSBnaXZlbiBuYW1lIGlzIG5vdCBhIHZhbGlkIGN1c3RvbSBlbGVt
ZW50IG5hbWUnKTsKIAogcHJvbWlzZV90ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICBjdXN0b21FbGVt
ZW50cy5kZWZpbmUoJ3ByZWV4aXN0aW5nLWN1c3RvbS1lbGVtZW50JywgY2xhc3MgZXh0ZW5kcyBI
VE1MRWxlbWVudCB7IH0pOworICAgIGNsYXNzIFByZWV4aXN0aW5nQ3VzdG9tRWxlbWVudCBleHRl
bmRzIEhUTUxFbGVtZW50IHsgfTsKKyAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ3ByZWV4aXN0
aW5nLWN1c3RvbS1lbGVtZW50JywgUHJlZXhpc3RpbmdDdXN0b21FbGVtZW50KTsKIAogICAgIHZh
ciBwcm9taXNlID0gY3VzdG9tRWxlbWVudHMud2hlbkRlZmluZWQoJ3ByZWV4aXN0aW5nLWN1c3Rv
bS1lbGVtZW50Jyk7CiAgICAgcHJvbWlzZS50aGVuKGZ1bmN0aW9uICh2YWx1ZSkgeyBwcm9taXNl
LnJlc29sdmVkID0gdmFsdWU7IH0sIGZ1bmN0aW9uICh2YWx1ZSkgeyBwcm9taXNlLnJlamVjdGVk
ID0gdmFsdWU7IH0pOwpAQCAtNjY1LDggKzY2Niw4IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbiAo
KSB7CiAKICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIGFzc2VydF90cnVlKCdyZXNvbHZlZCcgaW4gcHJvbWlzZSwgJ1RoZSBwcm9taXNlIHJl
dHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBiZSByZXNvbHZlZCB3aGVuIGEgY3VzdG9tIGVs
ZW1lbnQgaXMgZGVmaW5lZCcpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKHByb21pc2UucmVzb2x2
ZWQsIHVuZGVmaW5lZCwKLSAgICAgICAgICAgICdUaGUgcHJvbWlzZSByZXR1cm5lZCBieSAid2hl
bkRlZmluZWQiIG11c3QgYmUgcmVzb2x2ZWQgd2l0aCAidW5kZWZpbmVkIiB3aGVuIGEgY3VzdG9t
IGVsZW1lbnQgaXMgZGVmaW5lZCcpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHByb21pc2UucmVz
b2x2ZWQsIFByZWV4aXN0aW5nQ3VzdG9tRWxlbWVudCwKKyAgICAgICAgICAgICdUaGUgcHJvbWlz
ZSByZXR1cm5lZCBieSAid2hlbkRlZmluZWQiIG11c3QgYmUgcmVzb2x2ZWQgd2l0aCB0aGUgY29u
c3RydWN0b3Igb2YgdGhlIGVsZW1lbnQgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGlzIGRlZmluZWQn
KTsKICAgICAgICAgYXNzZXJ0X2ZhbHNlKCdyZWplY3RlZCcgaW4gcHJvbWlzZSwgJ1RoZSBwcm9t
aXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBub3QgYmUgcmVqZWN0ZWQgd2hlbiBh
IGN1c3RvbSBlbGVtZW50IGlzIGRlZmluZWQnKTsKICAgICB9KTsKIH0sICdjdXN0b21FbGVtZW50
cy53aGVuRGVmaW5lZCBtdXN0IHJldHVybiBhIHJlc29sdmVkIHByb21pc2Ugd2hlbiB0aGUgcmVn
aXN0cnkgY29udGFpbnMgdGhlIGVudHJ5IHdpdGggdGhlIGdpdmVuIG5hbWUnKTsKQEAgLTY4OCwx
NiArNjg5LDE3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7CiAKICAgICByZXR1cm4gUHJv
bWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgIGFzc2VydF90cnVlKCdy
ZXNvbHZlZCcgaW4gcHJvbWlzZTEsICdUaGUgcHJvbWlzZSByZXR1cm5lZCBieSAid2hlbkRlZmlu
ZWQiIG11c3QgYmUgcmVzb2x2ZWQgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGlzIGRlZmluZWQnKTsK
LSAgICAgICAgYXNzZXJ0X2VxdWFscyhwcm9taXNlMS5yZXNvbHZlZCwgdW5kZWZpbmVkLCAnVGhl
IHByb21pc2UgcmV0dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IGJlIHJlc29sdmVkIHdpdGgg
InVuZGVmaW5lZCIgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGlzIGRlZmluZWQnKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhwcm9taXNlMS5yZXNvbHZlZCwgQW5vdGhlckV4aXN0aW5nQ3VzdG9tRWxl
bWVudCwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBiZSByZXNv
bHZlZCB3aXRoIHRoZSBjb25zdHJ1Y3RvciBvZiB0aGUgZWxlbWVudCB3aGVuIGEgY3VzdG9tIGVs
ZW1lbnQgaXMgZGVmaW5lZCcpOwogICAgICAgICBhc3NlcnRfZmFsc2UoJ3JlamVjdGVkJyBpbiBw
cm9taXNlMSwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBub3Qg
YmUgcmVqZWN0ZWQgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGlzIGRlZmluZWQnKTsKIAogICAgICAg
ICBhc3NlcnRfdHJ1ZSgncmVzb2x2ZWQnIGluIHByb21pc2UyLCAnVGhlIHByb21pc2UgcmV0dXJu
ZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IGJlIHJlc29sdmVkIHdoZW4gYSBjdXN0b20gZWxlbWVu
dCBpcyBkZWZpbmVkJyk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMocHJvbWlzZTIucmVzb2x2ZWQs
IHVuZGVmaW5lZCwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBi
ZSByZXNvbHZlZCB3aXRoICJ1bmRlZmluZWQiIHdoZW4gYSBjdXN0b20gZWxlbWVudCBpcyBkZWZp
bmVkJyk7CisgICAgICAgIGFzc2VydF9lcXVhbHMocHJvbWlzZTIucmVzb2x2ZWQsIEFub3RoZXJF
eGlzdGluZ0N1c3RvbUVsZW1lbnQsICdUaGUgcHJvbWlzZSByZXR1cm5lZCBieSAid2hlbkRlZmlu
ZWQiIG11c3QgYmUgcmVzb2x2ZWQgd2l0aCB0aGUgY29uc3RydWN0b3Igb2YgdGhlIGVsZW1lbnQg
d2hlbiBhIGN1c3RvbSBlbGVtZW50IGlzIGRlZmluZWQnKTsKICAgICAgICAgYXNzZXJ0X2ZhbHNl
KCdyZWplY3RlZCcgaW4gcHJvbWlzZTIsICdUaGUgcHJvbWlzZSByZXR1cm5lZCBieSAid2hlbkRl
ZmluZWQiIG11c3Qgbm90IGJlIHJlamVjdGVkIHdoZW4gYSBjdXN0b20gZWxlbWVudCBpcyBkZWZp
bmVkJyk7CiAgICAgfSk7CiB9LCAnY3VzdG9tRWxlbWVudHMud2hlbkRlZmluZWQgbXVzdCByZXR1
cm4gYSBuZXcgcmVzb2x2ZWQgcHJvbWlzZSBlYWNoIHRpbWUgaW52b2tlZCB3aGVuIHRoZSByZWdp
c3RyeSBjb250YWlucyB0aGUgZW50cnkgd2l0aCB0aGUgZ2l2ZW4gbmFtZScpOwogCiBwcm9taXNl
X3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIGNsYXNzIEVsZW1lbnREZWZpbmVkQWZ0ZXJXaGVuRGVm
aW5lZCBleHRlbmRzIEhUTUxFbGVtZW50IHsgfTsKICAgICB2YXIgcHJvbWlzZSA9IGN1c3RvbUVs
ZW1lbnRzLndoZW5EZWZpbmVkKCdlbGVtZW50LWRlZmluZWQtYWZ0ZXItd2hlbmRlZmluZWQnKTsK
ICAgICBwcm9taXNlLnRoZW4oZnVuY3Rpb24gKHZhbHVlKSB7IHByb21pc2UucmVzb2x2ZWQgPSB2
YWx1ZTsgfSwgZnVuY3Rpb24gKHZhbHVlKSB7IHByb21pc2UucmVqZWN0ZWQgPSB2YWx1ZTsgfSk7
CiAKQEAgLTcxMCw3ICs3MTIsNyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgewogICAgICAg
ICBhc3NlcnRfZmFsc2UoJ3JlamVjdGVkJyBpbiBwcm9taXNlLCAnVGhlIHByb21pc2UgcmV0dXJu
ZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IG5vdCBiZSByZWplY3RlZCB1bnRpbCB0aGUgZWxlbWVu
dCBpcyBkZWZpbmVkJyk7CiAgICAgICAgIGFzc2VydF9lcXVhbHMoY3VzdG9tRWxlbWVudHMud2hl
bkRlZmluZWQoJ2VsZW1lbnQtZGVmaW5lZC1hZnRlci13aGVuZGVmaW5lZCcpLCBwcm9taXNlLAog
ICAgICAgICAgICAgJyJ3aGVuRGVmaW5lZCIgbXVzdCByZXR1cm4gdGhlIHNhbWUgdW5yZXNvbHZl
ZCBwcm9taXNlIGJlZm9yZSB0aGUgY3VzdG9tIGVsZW1lbnQgaXMgZGVmaW5lZCcpOwotICAgICAg
ICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2VsZW1lbnQtZGVmaW5lZC1hZnRlci13aGVuZGVmaW5l
ZCcsIGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnQgeyB9KTsKKyAgICAgICAgY3VzdG9tRWxlbWVu
dHMuZGVmaW5lKCdlbGVtZW50LWRlZmluZWQtYWZ0ZXItd2hlbmRlZmluZWQnLCBFbGVtZW50RGVm
aW5lZEFmdGVyV2hlbkRlZmluZWQpOwogICAgICAgICBhc3NlcnRfZmFsc2UoJ3Jlc29sdmVkJyBp
biBwcm9taXNlLCAnVGhlIHByb21pc2UgcmV0dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IG5v
dCBiZSByZXNvbHZlZCB1bnRpbCB0aGUgZW5kIG9mIHRoZSBuZXh0IG1pY3JvdGFzaycpOwogICAg
ICAgICBhc3NlcnRfZmFsc2UoJ3JlamVjdGVkJyBpbiBwcm9taXNlLCAnVGhlIHByb21pc2UgcmV0
dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IG5vdCBiZSByZWplY3RlZCB1bnRpbCB0aGUgZW5k
IG9mIHRoZSBuZXh0IG1pY3JvdGFzaycpOwogCkBAIC03MjEsMTcgKzcyMywzMyBAQCBwcm9taXNl
X3Rlc3QoZnVuY3Rpb24gKCkgewogICAgICAgICBhc3NlcnRfZmFsc2UoJ3JlamVjdGVkJyBpbiBw
cm9taXNlQWZ0ZXJEZWZpbmUsICdUaGUgcHJvbWlzZSByZXR1cm5lZCBieSAid2hlbkRlZmluZWQi
IG11c3Qgbm90IGJlIHJlamVjdGVkIHVudGlsIHRoZSBlbmQgb2YgdGhlIG5leHQgbWljcm90YXNr
Jyk7CiAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgIGFzc2VydF90cnVlKCdyZXNv
bHZlZCcgaW4gcHJvbWlzZSwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIg
bXVzdCBiZSByZXNvbHZlZCB3aGVuIGEgY3VzdG9tIGVsZW1lbnQgaXMgZGVmaW5lZCcpOwotICAg
ICAgICBhc3NlcnRfZXF1YWxzKHByb21pc2UucmVzb2x2ZWQsIHVuZGVmaW5lZCwKLSAgICAgICAg
ICAgICdUaGUgcHJvbWlzZSByZXR1cm5lZCBieSAid2hlbkRlZmluZWQiIG11c3QgYmUgcmVzb2x2
ZWQgd2l0aCAidW5kZWZpbmVkIiB3aGVuIGEgY3VzdG9tIGVsZW1lbnQgaXMgZGVmaW5lZCcpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHByb21pc2UucmVzb2x2ZWQsIEVsZW1lbnREZWZpbmVkQWZ0
ZXJXaGVuRGVmaW5lZCwKKyAgICAgICAgICAgICdUaGUgcHJvbWlzZSByZXR1cm5lZCBieSAid2hl
bkRlZmluZWQiIG11c3QgYmUgcmVzb2x2ZWQgd2l0aCB0aGUgY29uc3RydWN0b3Igb2YgdGhlIGVs
ZW1lbnQgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGlzIGRlZmluZWQnKTsKICAgICAgICAgYXNzZXJ0
X2ZhbHNlKCdyZWplY3RlZCcgaW4gcHJvbWlzZSwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3
aGVuRGVmaW5lZCIgbXVzdCBub3QgYmUgcmVqZWN0ZWQgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGlz
IGRlZmluZWQnKTsKIAogICAgICAgICBhc3NlcnRfdHJ1ZSgncmVzb2x2ZWQnIGluIHByb21pc2VB
ZnRlckRlZmluZSwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBi
ZSByZXNvbHZlZCB3aGVuIGEgY3VzdG9tIGVsZW1lbnQgaXMgZGVmaW5lZCcpOwotICAgICAgICBh
c3NlcnRfZXF1YWxzKHByb21pc2VBZnRlckRlZmluZS5yZXNvbHZlZCwgdW5kZWZpbmVkLAotICAg
ICAgICAgICAgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBiZSBy
ZXNvbHZlZCB3aXRoICJ1bmRlZmluZWQiIHdoZW4gYSBjdXN0b20gZWxlbWVudCBpcyBkZWZpbmVk
Jyk7CisgICAgICAgIGFzc2VydF9lcXVhbHMocHJvbWlzZUFmdGVyRGVmaW5lLnJlc29sdmVkLCBF
bGVtZW50RGVmaW5lZEFmdGVyV2hlbkRlZmluZWQsCisgICAgICAgICAgICAnVGhlIHByb21pc2Ug
cmV0dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IGJlIHJlc29sdmVkIHdpdGggdGhlIGNvbnN0
cnVjdG9yIG9mIHRoZSBlbGVtZW50IHdoZW4gYSBjdXN0b20gZWxlbWVudCBpcyBkZWZpbmVkJyk7
CiAgICAgICAgIGFzc2VydF9mYWxzZSgncmVqZWN0ZWQnIGluIHByb21pc2VBZnRlckRlZmluZSwg
J1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBub3QgYmUgcmVqZWN0
ZWQgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGlzIGRlZmluZWQnKTsKICAgICB9KTsKIH0sICdBIHBy
b21pc2UgcmV0dXJuZWQgYnkgY3VzdG9tRWxlbWVudHMud2hlbkRlZmluZWQgbXVzdCBiZSByZXNv
bHZlZCBieSAiZGVmaW5lIicpOwogCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgeworICAgIGNs
YXNzIFJlc29sdmVkQ3VzdG9tRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHt9OworICAgIGN1
c3RvbUVsZW1lbnRzLmRlZmluZSgncmVzb2x2ZWQtY3VzdG9tLWVsZW1lbnQnLCBSZXNvbHZlZEN1
c3RvbUVsZW1lbnQpOworICAgIHJldHVybiBjdXN0b21FbGVtZW50cy53aGVuRGVmaW5lZCgncmVz
b2x2ZWQtY3VzdG9tLWVsZW1lbnQnKS50aGVuKGZ1bmN0aW9uICh2YWx1ZSkgeworICAgICAgICBh
c3NlcnRfdHJ1ZSh2YWx1ZSA9PT0gUmVzb2x2ZWRDdXN0b21FbGVtZW50LCAnVGhlIHByb21pc2Ug
cmV0dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IHJlc29sdmUgd2l0aCB0aGUgZGVmaW5lZCBj
bGFzcycpOworICAgIH0pOworfSwgJ0EgcHJvbWlzZSByZXR1cm5lZCBieSBjdXN0b21FbGVtZW50
cy53aGVuRGVmaW5lZCBtdXN0IGJlIHJlc29sdmVkIHdpdGggdGhlIGRlZmluZWQgY2xhc3MnKTsK
KworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgcHJvbWlzZSA9IGN1c3RvbUVs
ZW1lbnRzLndoZW5EZWZpbmVkKCdub3QtcmVzb2x2ZWQteWV0LWN1c3RvbS1lbGVtZW50JykudGhl
bihmdW5jdGlvbiAodmFsdWUpIHsKKyAgICAgICAgYXNzZXJ0X3RydWUodmFsdWUgPT09IE5vdFJl
c29sdmVkWWV0Q3VzdG9tRWxlbWVudCwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVm
aW5lZCIgbXVzdCByZXNvbHZlIHdpdGggdGhlIGRlZmluZWQgY2xhc3Mgb25jZSBzdWNoIGNsYXNz
IGlzIGRlZmluZWQnKTsKKyAgICB9KTsKKyAgICBjbGFzcyBOb3RSZXNvbHZlZFlldEN1c3RvbUVs
ZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7fTsKKyAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUo
J25vdC1yZXNvbHZlZC15ZXQtY3VzdG9tLWVsZW1lbnQnLCBOb3RSZXNvbHZlZFlldEN1c3RvbUVs
ZW1lbnQpOworICAgIHJldHVybiBwcm9taXNlOworfSwgJ0EgcHJvbWlzZSByZXR1cm5lZCBieSBj
dXN0b21FbGVtZW50cy53aGVuRGVmaW5lZCBtdXN0IGJlIHJlc29sdmVkIHdpdGggdGhlIGRlZmlu
ZWQgY2xhc3Mgb25jZSBzdWNoIGNsYXNzIGlzIGRlZmluZWQnKTsKIDwvc2NyaXB0PgogPC9ib2R5
PgogPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>