<?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>237553</bug_id>
          
          <creation_ts>2022-03-07 13:30:03 -0800</creation_ts>
          <short_desc>Clean up RenderLayer::currentTransform()</short_desc>
          <delta_ts>2024-07-31 08:29:36 -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>Layout and Rendering</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://github.com/web-platform-tests/wpt/pull/47377</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>90738</blocked>
    
    <blocked>237554</blocked>
    
    <blocked>237701</blocked>
    
    <blocked>237711</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>clopez</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>ntim</cc>
    
    <cc>pdr</cc>
    
    <cc>rbuis</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1848930</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-03-07 13:30:03 -0800</bug_when>
    <thetext>RenderLayer::currentTransform() is hard to read due to the code duplication in the branches that re-compute the transform - fix that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848936</commentid>
    <comment_count>1</comment_count>
      <attachid>454024</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-03-07 13:38:10 -0800</bug_when>
    <thetext>Created attachment 454024
Patch, v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848940</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2022-03-07 13:40:17 -0800</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>1849587</commentid>
    <comment_count>3</comment_count>
      <attachid>454024</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-03-09 02:08:31 -0800</bug_when>
    <thetext>Comment on attachment 454024
Patch, v1

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

&gt; Source/WebCore/rendering/RenderLayer.cpp:1361
&gt; +    std::unique_ptr&lt;RenderStyle&gt; animatedStyle = renderBox.animatedStyle();

Why not move this into the if block?

&gt; LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-box-will-change-transform-layer.html:57
&gt; +    await waitForNextFrame();

Doesn&apos;t this work? await new Promise(requestAnimationFrame);

&gt; LayoutTests/platform/mac/TestExpectations:2439
&gt; +webkit.org/b/237166 [ BigSur+ ] webgl/pending/conformance/textures/misc/tex-image-video-repeated.html [ Pass Timeout ]

You probably do not want this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849596</commentid>
    <comment_count>4</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-03-09 03:02:34 -0800</bug_when>
    <thetext>(In reply to Rob Buis from comment #3)
&gt; Comment on attachment 454024 [details]
&gt; Patch, v1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=454024&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:1361
&gt; &gt; +    std::unique_ptr&lt;RenderStyle&gt; animatedStyle = renderBox.animatedStyle();
&gt; 
&gt; Why not move this into the if block?
Leftover, fixed -- it should be there, to avoid querying animatedStyle() if not necessary.

&gt; 
&gt; &gt; LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-box-will-change-transform-layer.html:57
&gt; &gt; +    await waitForNextFrame();
&gt; 
&gt; Doesn&apos;t this work? await new Promise(requestAnimationFrame);
I kept the style from the other tests in that directory, that do it like this.

&gt; 
&gt; &gt; LayoutTests/platform/mac/TestExpectations:2439
&gt; &gt; +webkit.org/b/237166 [ BigSur+ ] webgl/pending/conformance/textures/misc/tex-image-video-repeated.html [ Pass Timeout ]
&gt; 
&gt; You probably do not want this change.

Right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849598</commentid>
    <comment_count>5</comment_count>
      <attachid>454214</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-03-09 03:03:31 -0800</bug_when>
    <thetext>Created attachment 454214
Patch, v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850000</commentid>
    <comment_count>6</comment_count>
      <attachid>454214</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-03-10 01:43:24 -0800</bug_when>
    <thetext>Comment on attachment 454214
Patch, v2

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

&gt; LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-box.html:25
&gt; +  &lt;div id=&quot;switchTransformBox&quot; class=&quot;block&quot;&gt;&lt;/div&gt;

The name seems not so good. I do not like the &apos;switch&apos; and not only transform box is changed, right? Maybe something like transformBoxTarget?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850051</commentid>
    <comment_count>7</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-03-10 05:37:49 -0800</bug_when>
    <thetext>Committed r291105 (248267@trunk): &lt;https://commits.webkit.org/248267@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850053</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-10 05:38:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/90093322&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850054</commentid>
    <comment_count>9</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-03-10 05:38:58 -0800</bug_when>
    <thetext>(In reply to Rob Buis from comment #6)
&gt; Comment on attachment 454214 [details]
&gt; Patch, v2
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=454214&amp;action=review
&gt; 
&gt; &gt; LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-box.html:25
&gt; &gt; +  &lt;div id=&quot;switchTransformBox&quot; class=&quot;block&quot;&gt;&lt;/div&gt;
&gt; 
&gt; The name seems not so good. I do not like the &apos;switch&apos; and not only
&gt; transform box is changed, right? Maybe something like transformBoxTarget?

Fixed before landing.

I&apos;ll report about the WPT upstreaming status, haven&apos;t contributed so far, and need to tests this process once now :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2049664</commentid>
    <comment_count>10</comment_count>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2024-07-30 15:52:00 -0700</bug_when>
    <thetext>Submitted web-platform-tests pull request: https://github.com/web-platform-tests/wpt/pull/47377</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454024</attachid>
            <date>2022-03-07 13:38:10 -0800</date>
            <delta_ts>2022-03-09 03:03:24 -0800</delta_ts>
            <desc>Patch, v1</desc>
            <filename>bug-237553-20220307133808.patch</filename>
            <type>text/plain</type>
            <size>16661</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwOTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjdkNjg1YjA3YzMxYTdi
NWVhZWY2N2JhZmY0YzEwYzNhOTJlNmMxOS4uMjY0Y2Y3Y2VjOWRmYjUxOTY1NWNhYjFiZTVkNTg4
NmEwMTkzMjFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIyLTAzLTA3ICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIENsZWFu
dXAgUmVuZGVyTGF5ZXI6OmN1cnJlbnRUcmFuc2Zvcm0oKQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3NTUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gcHJlcGFyYXRpb24gZm9yIHRoZSB1cGNvbWlu
ZyBTVkcvQ1NTIHRyYW5zZm9ybXMgc3VwcG9ydCBpbiBMQlNFLAorICAgICAgICB0aGUgdHJhbnNm
b3JtIHJlbGF0ZWQgY29kZSBpbiBSZW5kZXJMYXllciBpcyBjbGVhbmVkIHVwLCBzdGFydGluZwor
ICAgICAgICB3aXRoIFJlbmRlckxheWVycyBjdXJyZW50VHJhbnNmb3JtKCkgZnVuY3Rpb24uCisK
KyAgICAgICAgUmVuZGVyTGF5ZXI6OmN1cnJlbnRUcmFuc2Zvcm0oKSBoYXMgdHdvIHB1cnBvc2Vz
LiBJdCBjYW4gZWl0aGVyIGJlIHVzZWQKKyAgICAgICAgdG8gcmUtY29tcHV0ZSB0aGUgZXhpc3Rp
bmcgdHJhbnNmb3JtYXRpb24gbWF0cml4IHdpdGggZGlmZmVyZW50IG9wdGlvbnMKKyAgICAgICAg
KGUuZy4gaW5jbHVkZSBvciBleGNsdWRlICd0cmFuc2Zvcm0tb3JpZ2luJyBpbmR1Y2VkIHRyYW5z
Zm9ybWF0aW9ucyksIG9yCisgICAgICAgIHRvIHJldHJpZXZlIHRoZSBjdXJyZW50IHRyYW5zZm9y
bWF0aW9uIG1hdHJpeCBmcm9tIHRoZSBhbmltYXRlZFN0eWxlKCkgb2YKKyAgICAgICAgdGhlIGFz
c29jaWF0ZWQgcmVuZGVyZXIsIGlmIGFuIGFjY2VsZXJhdGVkIHRyYW5zZm9ybSBhbmltYXRpb24g
aXMgcnVubmluZworICAgICAgICAodHJpZ2dlcmVkIGUuZy4gdmlhIENTUyBBbmltYXRpb25zIC8g
SlMgV2ViQW5pbWF0aW9ucykuCisKKyAgICAgICAgQ3VycmVudGx5IHRoZSBjb2RlIHRvIGNvbXB1
dGUgdGhlIHRyYW5zZm9ybWF0aW9uIG1hdHJpeCBpcyBkdXBsaWNhdGVkLAorICAgICAgICBhdm9p
ZCB0aGF0IGFuZCB1bmlmeSB0aGUgdHdvIGNvZGUgcGF0aHMgKHJlLWNvbXB1dGUgQ1RNIGlmIGFj
Y2VsZXJhdGVkIHRyYW5zZm9ybQorICAgICAgICBhbmltYXRpb25zIGFyZSBydW5uaW5nIC8gcmUt
Y29tcHV0ZSBDVE0gaWYgdHJhbnNmb3JtLW9yaWdpbiBzaGFsbCBiZSBleGNsdWRlZCkuCisKKyAg
ICAgICAgQWRkIHR3byBuZXcgV1BUIHRlc3RzIHRoYXQgdmVyaWZ5IGFuaW1hdGluZyAndHJhbnNm
b3JtLWJveCcgaXMgZnVuY3Rpb25hbAorICAgICAgICBmb3IgYm90aCBjb21wb3NpdGVkICYgbm9u
LWNvbXBvc2l0ZWQgZWxlbWVudHMuIEN1cnJlbnRseSAndHJhbnNmb3JtLWJveCcKKyAgICAgICAg
c3VwcG9ydCBpcyBpZ25vcmVkIGZvciBjb21wb3NpdGVkIGVsZW1lbnRzLCBhcyBkZW1vbnN0cmF0
ZWQgYnkgdGhlCisgICAgICAgIHRyYW5zZm9ybS1ib3gtd2l0aC1jaGFuZ2UtdHJhbnNmb3JtLWxh
eWVyLmh0bWwgdGVzdC4KKworICAgICAgICBGb2xsb3ctdXAgcGF0Y2hlcyB0aGF0IGZpeCB0aGUg
YnVncyBkZXBlbmRzIG9uIHRoaXMgaW5pdGlhbCBjbGVhbnVwIHBhdGNoLgorICAgICAgICBGb3Ig
bm93IG1hcmsgdGhlIGZhaWxpbmcgdGVzdCBhcyBzdWNoIHVudGlsIGl0J3MgZml4ZWQuCisKKyAg
ICAgICAgVGVzdHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFu
c2Zvcm1zL2FuaW1hdGlvbi90cmFuc2Zvcm0tYm94LXdpbGwtY2hhbmdlLXRyYW5zZm9ybS1sYXll
ci5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdHJhbnNmb3Jtcy9hbmltYXRpb24vdHJhbnNmb3JtLWJveC5odG1sCisKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXI6OmN1cnJlbnRUcmFuc2Zvcm0gY29uc3QpOgorCiAyMDIyLTAzLTA3ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgT3B0aW1pemUgdGhlIHBhc3Npbmcgb2YgZGF0
YSBhY3Jvc3MgdGhyZWFkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAK
aW5kZXggM2UzNjUwNWRjNTdmZGRiNWM4Y2I1ODI4OTNmZjQxMTc2ZGU4NzBiYS4uOTliYWQyOWFh
MjQ5ZmNlYTI4ZDIyY2VlZWVkYTI4NzNjMGMzOTNlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0xMzU4LDI2ICsxMzU4LDIxIEBAIFRyYW5zZm9ybWF0aW9u
TWF0cml4IFJlbmRlckxheWVyOjpjdXJyZW50VHJhbnNmb3JtKE9wdGlvblNldDxSZW5kZXJTdHls
ZTo6VHJhbnNmCiAgICAgICAgIHJldHVybiB7IH07CiAKICAgICBhdXRvJiByZW5kZXJCb3ggPSBk
b3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVyKCkpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5k
ZXJTdHlsZT4gYW5pbWF0ZWRTdHlsZSA9IHJlbmRlckJveC5hbmltYXRlZFN0eWxlKCk7CiAKLSAg
ICBpZiAoYXV0byBzdHlsZWFibGUgPSBTdHlsZWFibGU6OmZyb21SZW5kZXJlcihyZW5kZXJlcigp
KSkgewotICAgICAgICBpZiAoc3R5bGVhYmxlLT5pc1J1bm5pbmdBY2NlbGVyYXRlZFRyYW5zZm9y
bUFuaW1hdGlvbigpKSB7Ci0gICAgICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBjdXJyVHJh
bnNmb3JtOwotICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBzdHlsZSA9
IHJlbmRlcmVyKCkuYW5pbWF0ZWRTdHlsZSgpOwotICAgICAgICAgICAgRmxvYXRSZWN0IHBpeGVs
U25hcHBlZEJvcmRlclJlY3QgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHJlbmRlckJveC5yZWZl
cmVuY2VCb3godHJhbnNmb3JtQm94VG9DU1NCb3hUeXBlKHN0eWxlLT50cmFuc2Zvcm1Cb3goKSkp
LCByZW5kZXJCb3guZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKLSAgICAgICAgICAg
IHN0eWxlLT5hcHBseVRyYW5zZm9ybShjdXJyVHJhbnNmb3JtLCBwaXhlbFNuYXBwZWRCb3JkZXJS
ZWN0LCBvcHRpb25zKTsKLSAgICAgICAgICAgIG1ha2VNYXRyaXhSZW5kZXJhYmxlKGN1cnJUcmFu
c2Zvcm0sIGNhblJlbmRlcjNEVHJhbnNmb3JtcygpKTsKLSAgICAgICAgICAgIHJldHVybiBjdXJy
VHJhbnNmb3JtOwotICAgICAgICB9Ci0gICAgfQorICAgIC8vIG1fdHJhbnNmb3JtIGluY2x1ZGVz
IHRyYW5zZm9ybS1vcmlnaW4gYW5kIGlzIGFmZmVjdGVkIGJ5IHRoZSBjaG9pY2Ugb2YgdGhlIHRy
YW5zZm9ybS1ib3guCisgICAgLy8gVGhlcmVmb3JlIHdlIGNhbiBvbmx5IHVzZSB0aGUgY2FjaGVk
IG1fdHJhbnNmb3JtLCBpZiB0aGUgYW5pbWF0aW9uIGRvZXNuJ3QgYWx0ZXIgdHJhbnNmb3JtLWJv
eCBvciBleGNsdWRlcyB0cmFuc2Zvcm0tb3JpZ2luLgorCisgICAgLy8gUXVlcnkgdGhlIGFuaW1h
dGVkU3R5bGUoKSB0byBvYnRhaW4gdGhlIGN1cnJlbnQgdHJhbnNmb3JtYXRpb24sIHdoZW4gYWNj
ZWxlcmF0ZWQgdHJhbnNmb3JtIGFuaW1hdGlvbnMgYXJlIHJ1bm5pbmcuCisgICAgYXV0byBzdHls
ZWFibGUgPSBTdHlsZWFibGU6OmZyb21SZW5kZXJlcihyZW5kZXJCb3gpOworICAgIGlmICgoc3R5
bGVhYmxlICYmIHN0eWxlYWJsZS0+aXNSdW5uaW5nQWNjZWxlcmF0ZWRUcmFuc2Zvcm1BbmltYXRp
b24oKSkgfHwgIW9wdGlvbnMuY29udGFpbnMoUmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlv
bk9wdGlvbjo6VHJhbnNmb3JtT3JpZ2luKSkgeworICAgICAgICBhdXRvIHBpeGVsU25hcHBlZEJv
cmRlclJlY3QgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHJlbmRlckJveC5yZWZlcmVuY2VCb3go
dHJhbnNmb3JtQm94VG9DU1NCb3hUeXBlKGFuaW1hdGVkU3R5bGUtPnRyYW5zZm9ybUJveCgpKSks
IHJlbmRlckJveC5kb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCkpOworCisgICAgICAgIFRy
YW5zZm9ybWF0aW9uTWF0cml4IHRyYW5zZm9ybTsKKyAgICAgICAgYW5pbWF0ZWRTdHlsZS0+YXBw
bHlUcmFuc2Zvcm0odHJhbnNmb3JtLCBwaXhlbFNuYXBwZWRCb3JkZXJSZWN0LCBvcHRpb25zKTsK
IAotICAgIC8vIG1fdHJhbnNmb3JtIGluY2x1ZGVzIHRyYW5zZm9ybS1vcmlnaW4sIHNvIHdlIG5l
ZWQgdG8gcmVjb21wdXRlIHRoZSB0cmFuc2Zvcm0gaGVyZS4KLSAgICBpZiAoIW9wdGlvbnMuY29u
dGFpbnMoUmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbjo6VHJhbnNmb3JtT3Jp
Z2luKSkgewotICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBjdXJyVHJhbnNmb3JtOwotICAg
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IHN0eWxlID0gcmVuZGVyZXIoKS5hbmlt
YXRlZFN0eWxlKCk7Ci0gICAgICAgIEZsb2F0UmVjdCBwaXhlbFNuYXBwZWRCb3JkZXJSZWN0ID0g
c25hcFJlY3RUb0RldmljZVBpeGVscyhyZW5kZXJCb3gucmVmZXJlbmNlQm94KHRyYW5zZm9ybUJv
eFRvQ1NTQm94VHlwZShzdHlsZS0+dHJhbnNmb3JtQm94KCkpKSwgcmVuZGVyQm94LmRvY3VtZW50
KCkuZGV2aWNlU2NhbGVGYWN0b3IoKSk7Ci0gICAgICAgIHJlbmRlckJveC5zdHlsZSgpLmFwcGx5
VHJhbnNmb3JtKGN1cnJUcmFuc2Zvcm0sIHBpeGVsU25hcHBlZEJvcmRlclJlY3QsIFJlbmRlclN0
eWxlOjppbmRpdmlkdWFsVHJhbnNmb3JtT3BlcmF0aW9ucyk7Ci0gICAgICAgIG1ha2VNYXRyaXhS
ZW5kZXJhYmxlKGN1cnJUcmFuc2Zvcm0sIGNhblJlbmRlcjNEVHJhbnNmb3JtcygpKTsKLSAgICAg
ICAgcmV0dXJuIGN1cnJUcmFuc2Zvcm07CisgICAgICAgIG1ha2VNYXRyaXhSZW5kZXJhYmxlKHRy
YW5zZm9ybSwgY2FuUmVuZGVyM0RUcmFuc2Zvcm1zKCkpOworICAgICAgICByZXR1cm4gdHJhbnNm
b3JtOwogICAgIH0KIAogICAgIHJldHVybiAqbV90cmFuc2Zvcm07CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzZhYjM0NmQ4
NjUyMTE3MDQ1MTA4YjE3YjA4YWYyYTI5ZjA0ZDFiMi4uY2I4OTdhOGFkOGZhYjBkZDIwYjkxMjQz
Yjk3OTMxYWFjODUzNGU3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIyLTAzLTA3ICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIENsZWFu
dXAgUmVuZGVyTGF5ZXI6OmN1cnJlbnRUcmFuc2Zvcm0oKQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3NTUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFyayBuZXcgV1BUIHRlc3QgY3NzL2Nzcy10cmFu
c2Zvcm1zL2FuaW1hdGlvbi90cmFuc2Zvcm0tYm94LXdpbGwtY2hhbmdlLXRyYW5zZm9ybS1sYXll
ci5odG1sCisgICAgICAgIGFzIGV4cGVjdGVkIHRvIGZhaWwuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9nbGliL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIw
MjItMDMtMDcgIE9yaW9sIEJydWZhdSAgPG9icnVmYXVAaWdhbGlhLmNvbT4KIAogICAgICAgICBS
ZW1vdmUgZHVwbGljYXRlZCBwbGF0Zm9ybSBleHBlY3RhdGlvbnMgZm9yIGNvbXB1dGVkLXN0eWxl
Lmh0bWwsIGNvbXB1dGVkLXN0eWxlLXdpdGhvdXQtcmVuZGVyZXIuaHRtbCwgZ2V0Q29tcHV0ZWRT
dHlsZS1iYXNpYy54aHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNTE2M2Nh
NjQxYWU2ZThkYmQ0ZjU3NDk2NTExNWMzM2IzMzE3YzQ5NC4uMTE2OTc4ZThlYzFhNTk3NTMxYWQ0
NTA4MDg2NmFmMTEzY2M2NDYzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMjItMDMtMDcgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5u
QGlnYWxpYS5jb20+CisKKyAgICAgICAgQ2xlYW51cCBSZW5kZXJMYXllcjo6Y3VycmVudFRyYW5z
Zm9ybSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
Mzc1NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgdHdvIG5ldyBXUFQgdGVzdHMgY292ZXJpbmcgYW5pbWF0aW9ucyBvZiB0aGUgJ3RyYW5zZm9y
bS1ib3gnIHByb3BlcnR5LgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
dHJhbnNmb3Jtcy9hbmltYXRpb24vdHJhbnNmb3JtLWJveC1leHBlY3RlZC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2Zvcm1zL2FuaW1hdGlv
bi90cmFuc2Zvcm0tYm94LXdpbGwtY2hhbmdlLXRyYW5zZm9ybS1sYXllci1leHBlY3RlZC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2Zvcm1z
L2FuaW1hdGlvbi90cmFuc2Zvcm0tYm94LXdpbGwtY2hhbmdlLXRyYW5zZm9ybS1sYXllci5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2Zvcm1z
L2FuaW1hdGlvbi90cmFuc2Zvcm0tYm94Lmh0bWw6IEFkZGVkLgorCiAyMDIyLTAzLTA3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSAidHJ1ZSIgY291bnQg
YXMgdHJ1dGh5IGluIHdpbmRvdy5vcGVuKCkncyBib29sZWFuIGZlYXR1cmVzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJh
bnNmb3Jtcy9hbmltYXRpb24vdHJhbnNmb3JtLWJveC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zZm9ybXMvYW5p
bWF0aW9uL3RyYW5zZm9ybS1ib3gtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMDQxMzM2YjZj
NWE1NzczMmMzZGE5MWY0NGFjMjI0MjcxYTM1NDdjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zZm9ybXMv
YW5pbWF0aW9uL3RyYW5zZm9ybS1ib3gtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE3IEBACis8
IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPlJl
ZmVyZW5jZSBmb3IgdHJhbnNmb3JtLWJveCBhbmltYXRpb24gdGVzdCBlcXVpdmFsZW50PC90aXRs
ZT4KKzxzdHlsZT4KKyAgLmJsb2NrIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgYm9y
ZGVyOiAyMHB4IHNvbGlkIGdyZWVuOworICAgIHdpZHRoOiAxMDBweDsKKyAgICBoZWlnaHQ6IDEw
MHB4OworICAgIGxlZnQ6IDEwMHB4OworICAgIHRvcDogMjAwcHg7CisgIH0KKzwvc3R5bGU+Cis8
Ym9keT4KKyAgPGRpdiBjbGFzcz0iYmxvY2siPjwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5z
Zm9ybXMvYW5pbWF0aW9uL3RyYW5zZm9ybS1ib3gtd2lsbC1jaGFuZ2UtdHJhbnNmb3JtLWxheWVy
LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtdHJhbnNmb3Jtcy9hbmltYXRpb24vdHJhbnNmb3JtLWJveC13aWxsLWNoYW5n
ZS10cmFuc2Zvcm0tbGF5ZXItZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMDQxMzM2YjZjNWE1
NzczMmMzZGE5MWY0NGFjMjI0MjcxYTM1NDdjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zZm9ybXMvYW5p
bWF0aW9uL3RyYW5zZm9ybS1ib3gtd2lsbC1jaGFuZ2UtdHJhbnNmb3JtLWxheWVyLWV4cGVjdGVk
Lmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5SZWZlcmVuY2UgZm9yIHRyYW5zZm9ybS1ib3ggYW5pbWF0
aW9uIHRlc3QgZXF1aXZhbGVudDwvdGl0bGU+Cis8c3R5bGU+CisgIC5ibG9jayB7CisgICAgcG9z
aXRpb246IGFic29sdXRlOworICAgIGJvcmRlcjogMjBweCBzb2xpZCBncmVlbjsKKyAgICB3aWR0
aDogMTAwcHg7CisgICAgaGVpZ2h0OiAxMDBweDsKKyAgICBsZWZ0OiAxMDBweDsKKyAgICB0b3A6
IDIwMHB4OworICB9Cis8L3N0eWxlPgorPGJvZHk+CisgIDxkaXYgY2xhc3M9ImJsb2NrIj48L2Rp
dj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2Zvcm1zL2FuaW1hdGlvbi90cmFuc2Zvcm0tYm94LXdp
bGwtY2hhbmdlLXRyYW5zZm9ybS1sYXllci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zZm9ybXMvYW5pbWF0aW9uL3RyYW5zZm9y
bS1ib3gtd2lsbC1jaGFuZ2UtdHJhbnNmb3JtLWxheWVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWVjYzQy
YjI3YzMzZTdhNDlkZTUxZGU2YjhkNmZiN2IyY2YwMTBhMwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2Zv
cm1zL2FuaW1hdGlvbi90cmFuc2Zvcm0tYm94LXdpbGwtY2hhbmdlLXRyYW5zZm9ybS1sYXllci5o
dG1sCkBAIC0wLDAgKzEsNjIgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWwgY2xhc3M9InJlZnRl
c3Qtd2FpdCI+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+VmVyaWZ5IHRyYW5zZm9y
bS1ib3ggYW5pbWF0aW9ucyBvbiBhICd3aWxsLWNoYW5nZTogdHJhbnNmb3JtJyBsYXllcjwvdGl0
bGU+Cis8bGluayByZWw9Im1hdGNoIiBocmVmPSJ0cmFuc2Zvcm0tYm94LXJlZi5odG1sIj4KKzxs
aW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy10cmFuc2Zv
cm1zLTIvI2N0bSI+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9yZWZ0ZXN0LXdhaXQuanMiPjwvc2Ny
aXB0PgorPHN0eWxlPgorICAuYmxvY2sgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBi
b3JkZXI6IDIwcHggc29saWQgYmxhY2s7CisgICAgd2lkdGg6IDEwMHB4OworICAgIGhlaWdodDog
MTAwcHg7CisgICAgbGVmdDogMTAwcHg7CisgICAgdG9wOiAxMDBweDsKKyAgICB3aWxsLWNoYW5n
ZTogdHJhbnNmb3JtOworICB9CisKKyAgI3N3aXRjaFRyYW5zZm9ybUJveCB7CisgICAgdHJhbnNm
b3JtOiByb3RhdGVaKDkwZGVnKTsKKyAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwJSAxMDAlOworICAg
IHRyYW5zZm9ybS1ib3g6IGJvcmRlci1ib3g7CisgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgPGRp
diBpZD0ic3dpdGNoVHJhbnNmb3JtQm94IiBjbGFzcz0iYmxvY2siPjwvZGl2PgorCis8c2NyaXB0
PgorICAndXNlIHN0cmljdCc7CisKKyAgYXN5bmMgZnVuY3Rpb24gd2FpdEZvck5leHRGcmFtZSgp
IHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICB3aW5kb3cucmVx
dWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAgICAgcmVzb2x2ZSgpOworICAgICAgfSk7
CisgICAgfSk7CisgIH0KKworICBhc3luYyBmdW5jdGlvbiBjcmVhdGVBbmltYXRpb24oZWxlbWVu
dE5hbWUsIGtleWZyYW1lcykgeworICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChlbGVtZW50TmFtZSk7CisgICAgY29uc3QgYW5pbSA9IGVsZW1lbnQuYW5pbWF0ZShr
ZXlmcmFtZXMsIHsKKyAgICAgIGR1cmF0aW9uOiAxMDAwLAorICAgICAgZWFzaW5nOiAnbGluZWFy
JywKKyAgICAgIGZpbGw6ICdmb3J3YXJkcycsCisgICAgfSk7CisgICAgYW5pbS5wYXVzZSgpOwor
ICAgIGFuaW0uY3VycmVudFRpbWUgPSAyMDAwOworICAgIHJldHVybiBhbmltLnJlYWR5OworICB9
CisKKyAgb25sb2FkID0gYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgYXdhaXQgd2FpdEZvck5leHRG
cmFtZSgpOworICAgIGF3YWl0IGNyZWF0ZUFuaW1hdGlvbignc3dpdGNoVHJhbnNmb3JtQm94Jywg
WworICAgICAgICB7IHRyYW5zZm9ybUJveDogJ2JvcmRlci1ib3gnLCAgYm9yZGVyQ29sb3I6ICdi
bGFjaycgfSwKKyAgICAgICAgeyB0cmFuc2Zvcm1Cb3g6ICdjb250ZW50LWJveCcsIGJvcmRlckNv
bG9yOiAnZ3JlZW4nIH1dKTsKKworICAgIGF3YWl0IHdhaXRGb3JOZXh0RnJhbWUoKTsKKyAgICB0
YWtlU2NyZWVuc2hvdCgpOworICB9OworPC9zY3JpcHQ+Cis8L2JvZHk+CisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFu
c2Zvcm1zL2FuaW1hdGlvbi90cmFuc2Zvcm0tYm94Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNmb3Jtcy9hbmltYXRpb24vdHJh
bnNmb3JtLWJveC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwZDMxMzE0MGMyOTVkN2E2MmFkYTRlODAyOTVi
MzJkNzA2NTliYzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNmb3Jtcy9hbmltYXRpb24vdHJhbnNmb3Jt
LWJveC5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWwgY2xhc3M9
InJlZnRlc3Qtd2FpdCI+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+VmVyaWZ5IHRy
YW5zZm9ybS1ib3ggYW5pbWF0aW9uczwvdGl0bGU+Cis8bGluayByZWw9Im1hdGNoIiBocmVmPSJ0
cmFuc2Zvcm0tYm94LXdpbGwtY2hhbmdlLXRyYW5zZm9ybS1sYXllci1yZWYuaHRtbCI+Cis8bGlu
ayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdHJhbnNmb3Jt
cy0yLyNjdG0iPgorPHNjcmlwdCBzcmM9Ii9jb21tb24vcmVmdGVzdC13YWl0LmpzIj48L3Njcmlw
dD4KKzxzdHlsZT4KKyAgLmJsb2NrIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgYm9y
ZGVyOiAyMHB4IHNvbGlkIGJsYWNrOworICAgIHdpZHRoOiAxMDBweDsKKyAgICBoZWlnaHQ6IDEw
MHB4OworICAgIGxlZnQ6IDEwMHB4OworICAgIHRvcDogMTAwcHg7CisgIH0KKworICAjc3dpdGNo
VHJhbnNmb3JtQm94IHsKKyAgICB0cmFuc2Zvcm06IHJvdGF0ZVooOTBkZWcpOworICAgIHRyYW5z
Zm9ybS1vcmlnaW46IDAlIDEwMCU7CisgICAgdHJhbnNmb3JtLWJveDogYm9yZGVyLWJveDsKKyAg
fQorPC9zdHlsZT4KKzxib2R5PgorICA8ZGl2IGlkPSJzd2l0Y2hUcmFuc2Zvcm1Cb3giIGNsYXNz
PSJibG9jayI+PC9kaXY+CisKKzxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICBhc3luYyBm
dW5jdGlvbiB3YWl0Rm9yTmV4dEZyYW1lKCkgeworICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNv
bHZlID0+IHsKKyAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAg
ICAgICByZXNvbHZlKCk7CisgICAgICB9KTsKKyAgICB9KTsKKyAgfQorCisgIGFzeW5jIGZ1bmN0
aW9uIGNyZWF0ZUFuaW1hdGlvbihlbGVtZW50TmFtZSwga2V5ZnJhbWVzKSB7CisgICAgY29uc3Qg
ZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnROYW1lKTsKKyAgICBjb25z
dCBhbmltID0gZWxlbWVudC5hbmltYXRlKGtleWZyYW1lcywgeworICAgICAgZHVyYXRpb246IDEw
MDAsCisgICAgICBlYXNpbmc6ICdsaW5lYXInLAorICAgICAgZmlsbDogJ2ZvcndhcmRzJywKKyAg
ICB9KTsKKyAgICBhbmltLnBhdXNlKCk7CisgICAgYW5pbS5jdXJyZW50VGltZSA9IDIwMDA7Cisg
ICAgcmV0dXJuIGFuaW0ucmVhZHk7CisgIH0KKworICBvbmxvYWQgPSBhc3luYyBmdW5jdGlvbigp
IHsKKyAgICBhd2FpdCB3YWl0Rm9yTmV4dEZyYW1lKCk7CisgICAgYXdhaXQgY3JlYXRlQW5pbWF0
aW9uKCdzd2l0Y2hUcmFuc2Zvcm1Cb3gnLCBbCisgICAgICAgIHsgdHJhbnNmb3JtQm94OiAnYm9y
ZGVyLWJveCcsICBib3JkZXJDb2xvcjogJ2JsYWNrJyB9LAorICAgICAgICB7IHRyYW5zZm9ybUJv
eDogJ2NvbnRlbnQtYm94JywgYm9yZGVyQ29sb3I6ICdncmVlbicgfV0pOworCisgICAgYXdhaXQg
d2FpdEZvck5leHRGcmFtZSgpOworICAgIHRha2VTY3JlZW5zaG90KCk7CisgIH07Cis8L3Njcmlw
dD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCBlZDY0OTAxOTU5NjMwZGU4OGYwZDE1YWNiOTBjYjkwY2IxODM2NzU1Li40MjhiMTEwODc5
NjdiYTViODEwMjkxZjc5ODE3YTIxMWQ5MTVjMDhlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z2xpYi9UZXN0RXhwZWN0YXRpb25zCkBAIC02NDIsNiArNjQyLDkgQEAgd2Via2l0Lm9yZy9iLzIz
MDI3NyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNmb3Jtcy9w
ZXJzcGVjdGkKIHdlYmtpdC5vcmcvYi8yMzAyNzcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLXRyYW5zZm9ybXMvZHluYW1pYy1maXhlZC1wb3MtY2ItY2hhbmdlLmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMzAyNzcgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zZm9ybXMvcGVyc3BlY3RpdmUtdHJhbnNmb3Jt
cy1lcXVpdmFsZW5jZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKKyMgJ3RyYW5zZm9ybS1i
b3gnIHN1cHBvcnQgaXMgYnJva2VuIGZvciBjb21wb3NpdGVkIGVsZW1lbnRzLgord2Via2l0Lm9y
Zy9iLzIzNzU1MyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNm
b3Jtcy9hbmltYXRpb24vdHJhbnNmb3JtLWJveC13aWxsLWNoYW5nZS10cmFuc2Zvcm0tbGF5ZXIu
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQorCiB3ZWJraXQub3JnL2IvMjI3MjMxIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb3VudGVyLXN0eWxlcy9hcmFiaWMtaW5k
aWMvY3NzMy1jb3VudGVyLXN0eWxlcy0xMDEuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Vi
a2l0Lm9yZy9iLzIyNzIzMSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Y291bnRlci1zdHlsZXMvYXJhYmljLWluZGljL2NzczMtY291bnRlci1zdHlsZXMtMTAyLmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMjcyMzEgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvdW50ZXItc3R5bGVzL2FyYWJpYy1pbmRpYy9jc3Mz
LWNvdW50ZXItc3R5bGVzLTEwMy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDI1MjM4ZmEwOWEzNTg0Y2E4NDZk
MzFlM2M3ZDZlOWFkNzU4NWUwNDMuLjNkNjQwZTg3ZWVjMDEyNjRjOTQ5MDdiZjZkYWU2OGE4N2Y3
MDMzMzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0y
MzQ3LDYgKzIzNDcsOSBAQCB3ZWJraXQub3JnL2IvMTg5NDQ4IFsgTW9qYXZlIENhdGFsaW5hIF0g
ZmFzdC90ZXh0L29zYWthLXN5bnRoZXRpYy1ib2xkLmh0bWwgWyBTawogCiB3ZWJraXQub3JnL2Iv
MjMwMzI3IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2Zvcm1z
L2NyYXNodGVzdHMvdHJhbnNmb3JtLW1hcnF1ZWUtcmVzaXplLWRpdi1pbWFnZS0wMDEuaHRtbCBb
IFBhc3MgRmFpbHVyZSBdCiAKKyMgJ3RyYW5zZm9ybS1ib3gnIHN1cHBvcnQgaXMgYnJva2VuIGZv
ciBjb21wb3NpdGVkIGVsZW1lbnRzLgord2Via2l0Lm9yZy9iLzIzNzU1MyBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNmb3Jtcy9hbmltYXRpb24vdHJhbnNmb3Jt
LWJveC13aWxsLWNoYW5nZS10cmFuc2Zvcm0tbGF5ZXIuaHRtbCBbIEltYWdlT25seUZhaWx1cmUg
XQorCiAjIHJkYXI6Ly84MzU5MTA0MAogWyBNb250ZXJleSsgXSBlZGl0aW5nL21hYy9kaWN0aW9u
YXJ5LWxvb2t1cC9kaWN0aW9uYXJ5LWxvb2t1cC1pbnB1dC5odG1sIFsgQ3Jhc2ggXQogWyBNb250
ZXJleSsgXSBlZGl0aW5nL21hYy9kaWN0aW9uYXJ5LWxvb2t1cC9kaWN0aW9uYXJ5LWxvb2t1cC1p
bnNpZGUtc2VsZWN0aW9uLmh0bWwgWyBDcmFzaCBdCkBAIC0yNDMyLDQgKzI0MzUsNCBAQCBmYXN0
L3RleHQvZm9udC1sb29rdXAtZG90LXByZWZpeC1jYXNlLXNlbnNpdGl2ZS5odG1sIFsgUGFzcyBd
CiAjIFdhcyBpbiBMYXlvdXRUZXN0cy9FeHBlY3RhdGlvbnMsIG5vdyBvbmx5IGhhcHBlbmluZyBv
biBNYWMKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL2V2ZW50LXRpbWVvdXQt
b3JkZXIuYW55Lndvcmtlci5odG1sIFsgRmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8yMzcxNjYg
WyBCaWdTdXIrIF0gd2ViZ2wvcGVuZGluZy9jb25mb3JtYW5jZS90ZXh0dXJlcy9taXNjL3RleC1p
bWFnZS12aWRlby1yZXBlYXRlZC5odG1sIFsgUGFzcyBUaW1lb3V0IF0KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCit3ZWJraXQub3JnL2IvMjM3MTY2IFsgQmlnU3VyKyBdIHdlYmdsL3BlbmRp
bmcvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy90ZXgtaW1hZ2UtdmlkZW8tcmVwZWF0ZWQuaHRt
bCBbIFBhc3MgVGltZW91dCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IDgyN2U4ZTFmYTFjY2MxMDIyNDBhNzQxNDkxYjE2YjY2YjQxN2Y4ZmUuLmY0ODM3
YTNmNGYwNDc0N2I1NzliMGM1N2RjM2JkMjc3ZmJhMWM5NDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC05MzMsNiArOTMzLDkgQEAgd2Via2l0Lm9yZy9i
LzE0OTI0NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtbXVsdGljb2wv
bXVsdGljb2wtc2gKIHdlYmtpdC5vcmcvYi8xNDkyNDUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLW11bHRpY29sL211bHRpY29sLXNwYW4tYWxsLWJsb2NrLXNpYmxpbmct
MDAzLnhodCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE0OTI0NSBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtbXVsdGljb2wvbXVsdGljb2wtc3Bhbi1hbGwtbWFyZ2luLW5l
c3RlZC1maXJzdGNoaWxkLTAwMS54aHQgWyBTa2lwIF0KIAorIyAndHJhbnNmb3JtLWJveCcgc3Vw
cG9ydCBpcyBicm9rZW4gZm9yIGNvbXBvc2l0ZWQgZWxlbWVudHMuCit3ZWJraXQub3JnL2IvMjM3
NTUzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2Zvcm1zL2Fu
aW1hdGlvbi90cmFuc2Zvcm0tYm94LXdpbGwtY2hhbmdlLXRyYW5zZm9ybS1sYXllci5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCisKICMgVE9ETyBFWElGLXJlc29sdXRpb24gaXMgbm90IHN1cHBv
cnRlZAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kZW5zaXR5LXNpemUtY29ycmVj
dGlvbi8gWyBTa2lwIF0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454214</attachid>
            <date>2022-03-09 03:03:31 -0800</date>
            <delta_ts>2022-03-10 01:43:24 -0800</delta_ts>
            <desc>Patch, v2</desc>
            <filename>bug-237553-20220309030326.patch</filename>
            <type>text/plain</type>
            <size>17230</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjRjZGFmNDQzOWQyYTQ0
M2RkODFiMTRjNmUwYTBjNzY2YzA0YTJiNC4uODE5MWNlNWI5MDE1MmUzZDNiYjYxY2RlYjNjNmQx
ZDVjYjhjOGFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIyLTAzLTA5ICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIENsZWFu
dXAgUmVuZGVyTGF5ZXI6OmN1cnJlbnRUcmFuc2Zvcm0oKQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3NTUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gcHJlcGFyYXRpb24gZm9yIHRoZSB1cGNvbWlu
ZyBTVkcvQ1NTIHRyYW5zZm9ybXMgc3VwcG9ydCBpbiBMQlNFLAorICAgICAgICB0aGUgdHJhbnNm
b3JtIHJlbGF0ZWQgY29kZSBpbiBSZW5kZXJMYXllciBpcyBjbGVhbmVkIHVwLCBzdGFydGluZwor
ICAgICAgICB3aXRoIFJlbmRlckxheWVycyBjdXJyZW50VHJhbnNmb3JtKCkgZnVuY3Rpb24uCisK
KyAgICAgICAgUmVuZGVyTGF5ZXI6OmN1cnJlbnRUcmFuc2Zvcm0oKSBoYXMgdHdvIHB1cnBvc2Vz
LiBJdCBjYW4gZWl0aGVyIGJlIHVzZWQKKyAgICAgICAgdG8gcmUtY29tcHV0ZSB0aGUgZXhpc3Rp
bmcgdHJhbnNmb3JtYXRpb24gbWF0cml4IHdpdGggZGlmZmVyZW50IG9wdGlvbnMKKyAgICAgICAg
KGUuZy4gaW5jbHVkZSBvciBleGNsdWRlICd0cmFuc2Zvcm0tb3JpZ2luJyBpbmR1Y2VkIHRyYW5z
Zm9ybWF0aW9ucyksIG9yCisgICAgICAgIHRvIHJldHJpZXZlIHRoZSBjdXJyZW50IHRyYW5zZm9y
bWF0aW9uIG1hdHJpeCBmcm9tIHRoZSBhbmltYXRlZFN0eWxlKCkgb2YKKyAgICAgICAgdGhlIGFz
c29jaWF0ZWQgcmVuZGVyZXIsIGlmIGFuIGFjY2VsZXJhdGVkIHRyYW5zZm9ybSBhbmltYXRpb24g
aXMgcnVubmluZworICAgICAgICAodHJpZ2dlcmVkIGUuZy4gdmlhIENTUyBBbmltYXRpb25zIC8g
SlMgV2ViQW5pbWF0aW9ucykuCisKKyAgICAgICAgQ3VycmVudGx5IHRoZSBjb2RlIHRvIGNvbXB1
dGUgdGhlIHRyYW5zZm9ybWF0aW9uIG1hdHJpeCBpcyBkdXBsaWNhdGVkLAorICAgICAgICBhdm9p
ZCB0aGF0IGFuZCB1bmlmeSB0aGUgdHdvIGNvZGUgcGF0aHMgKHJlLWNvbXB1dGUgQ1RNIGlmIGFj
Y2VsZXJhdGVkIHRyYW5zZm9ybQorICAgICAgICBhbmltYXRpb25zIGFyZSBydW5uaW5nIC8gcmUt
Y29tcHV0ZSBDVE0gaWYgdHJhbnNmb3JtLW9yaWdpbiBzaGFsbCBiZSBleGNsdWRlZCkuCisKKyAg
ICAgICAgQWRkIHR3byBuZXcgV1BUIHRlc3RzIHRoYXQgdmVyaWZ5IGFuaW1hdGluZyAndHJhbnNm
b3JtLWJveCcgaXMgZnVuY3Rpb25hbAorICAgICAgICBmb3IgYm90aCBjb21wb3NpdGVkICYgbm9u
LWNvbXBvc2l0ZWQgZWxlbWVudHMuIEN1cnJlbnRseSAndHJhbnNmb3JtLWJveCcKKyAgICAgICAg
c3VwcG9ydCBpcyBpZ25vcmVkIGZvciBjb21wb3NpdGVkIGVsZW1lbnRzLCBhcyBkZW1vbnN0cmF0
ZWQgYnkgdGhlCisgICAgICAgIHRyYW5zZm9ybS1ib3gtd2l0aC1jaGFuZ2UtdHJhbnNmb3JtLWxh
eWVyLmh0bWwgdGVzdC4KKworICAgICAgICBGb2xsb3ctdXAgcGF0Y2hlcyB0aGF0IGZpeCB0aGUg
YnVncyBkZXBlbmRzIG9uIHRoaXMgaW5pdGlhbCBjbGVhbnVwIHBhdGNoLgorICAgICAgICBGb3Ig
bm93IG1hcmsgdGhlIGZhaWxpbmcgdGVzdCBhcyBzdWNoIHVudGlsIGl0J3MgZml4ZWQuCisKKyAg
ICAgICAgVGVzdHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFu
c2Zvcm1zL2FuaW1hdGlvbi90cmFuc2Zvcm0tYm94LXdpbGwtY2hhbmdlLXRyYW5zZm9ybS1sYXll
ci5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdHJhbnNmb3Jtcy9hbmltYXRpb24vdHJhbnNmb3JtLWJveC5odG1sCisKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXI6OmN1cnJlbnRUcmFuc2Zvcm0gY29uc3QpOgorCiAyMDIyLTAzLTA5ICBLaW1tbyBLaW5udW5l
biAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAKICAgICAgICAgR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YSBtYW5hZ2VzIEVHTCBuYXRpdmUgZGlzcGxheXMgbWFudWFsbHkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDNlMzY1MDVkYzU3ZmRkYjVjOGNiNTgyODkzZmY0
MTE3NmRlODcwYmEuLjg1MGJkZTQ4ZTQ5MjhlODZkYzE3NmI2MjMyMWZlZWQ5YjY4NmMzY2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMTM1OSwyNSArMTM1
OSwyMCBAQCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBSZW5kZXJMYXllcjo6Y3VycmVudFRyYW5zZm9y
bShPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZgogCiAgICAgYXV0byYgcmVuZGVyQm94ID0g
ZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlcigpKTsKIAotICAgIGlmIChhdXRvIHN0eWxlYWJs
ZSA9IFN0eWxlYWJsZTo6ZnJvbVJlbmRlcmVyKHJlbmRlcmVyKCkpKSB7Ci0gICAgICAgIGlmIChz
dHlsZWFibGUtPmlzUnVubmluZ0FjY2VsZXJhdGVkVHJhbnNmb3JtQW5pbWF0aW9uKCkpIHsKLSAg
ICAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGN1cnJUcmFuc2Zvcm07Ci0gICAgICAgICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IHN0eWxlID0gcmVuZGVyZXIoKS5hbmltYXRl
ZFN0eWxlKCk7Ci0gICAgICAgICAgICBGbG9hdFJlY3QgcGl4ZWxTbmFwcGVkQm9yZGVyUmVjdCA9
IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMocmVuZGVyQm94LnJlZmVyZW5jZUJveCh0cmFuc2Zvcm1C
b3hUb0NTU0JveFR5cGUoc3R5bGUtPnRyYW5zZm9ybUJveCgpKSksIHJlbmRlckJveC5kb2N1bWVu
dCgpLmRldmljZVNjYWxlRmFjdG9yKCkpOwotICAgICAgICAgICAgc3R5bGUtPmFwcGx5VHJhbnNm
b3JtKGN1cnJUcmFuc2Zvcm0sIHBpeGVsU25hcHBlZEJvcmRlclJlY3QsIG9wdGlvbnMpOwotICAg
ICAgICAgICAgbWFrZU1hdHJpeFJlbmRlcmFibGUoY3VyclRyYW5zZm9ybSwgY2FuUmVuZGVyM0RU
cmFuc2Zvcm1zKCkpOwotICAgICAgICAgICAgcmV0dXJuIGN1cnJUcmFuc2Zvcm07Ci0gICAgICAg
IH0KLSAgICB9CisgICAgLy8gbV90cmFuc2Zvcm0gaW5jbHVkZXMgdHJhbnNmb3JtLW9yaWdpbiBh
bmQgaXMgYWZmZWN0ZWQgYnkgdGhlIGNob2ljZSBvZiB0aGUgdHJhbnNmb3JtLWJveC4KKyAgICAv
LyBUaGVyZWZvcmUgd2UgY2FuIG9ubHkgdXNlIHRoZSBjYWNoZWQgbV90cmFuc2Zvcm0sIGlmIHRo
ZSBhbmltYXRpb24gZG9lc24ndCBhbHRlciB0cmFuc2Zvcm0tYm94IG9yIGV4Y2x1ZGVzIHRyYW5z
Zm9ybS1vcmlnaW4uCisKKyAgICAvLyBRdWVyeSB0aGUgYW5pbWF0ZWRTdHlsZSgpIHRvIG9idGFp
biB0aGUgY3VycmVudCB0cmFuc2Zvcm1hdGlvbiwgd2hlbiBhY2NlbGVyYXRlZCB0cmFuc2Zvcm0g
YW5pbWF0aW9ucyBhcmUgcnVubmluZy4KKyAgICBhdXRvIHN0eWxlYWJsZSA9IFN0eWxlYWJsZTo6
ZnJvbVJlbmRlcmVyKHJlbmRlckJveCk7CisgICAgaWYgKChzdHlsZWFibGUgJiYgc3R5bGVhYmxl
LT5pc1J1bm5pbmdBY2NlbGVyYXRlZFRyYW5zZm9ybUFuaW1hdGlvbigpKSB8fCAhb3B0aW9ucy5j
b250YWlucyhSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uOjpUcmFuc2Zvcm1P
cmlnaW4pKSB7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gYW5pbWF0ZWRT
dHlsZSA9IHJlbmRlckJveC5hbmltYXRlZFN0eWxlKCk7CisgICAgICAgIGF1dG8gcGl4ZWxTbmFw
cGVkQm9yZGVyUmVjdCA9IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMocmVuZGVyQm94LnJlZmVyZW5j
ZUJveCh0cmFuc2Zvcm1Cb3hUb0NTU0JveFR5cGUoYW5pbWF0ZWRTdHlsZS0+dHJhbnNmb3JtQm94
KCkpKSwgcmVuZGVyQm94LmRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0b3IoKSk7CisKKyAgICAg
ICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtOworICAgICAgICBhbmltYXRlZFN0eWxl
LT5hcHBseVRyYW5zZm9ybSh0cmFuc2Zvcm0sIHBpeGVsU25hcHBlZEJvcmRlclJlY3QsIG9wdGlv
bnMpOwogCi0gICAgLy8gbV90cmFuc2Zvcm0gaW5jbHVkZXMgdHJhbnNmb3JtLW9yaWdpbiwgc28g
d2UgbmVlZCB0byByZWNvbXB1dGUgdGhlIHRyYW5zZm9ybSBoZXJlLgotICAgIGlmICghb3B0aW9u
cy5jb250YWlucyhSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uOjpUcmFuc2Zv
cm1PcmlnaW4pKSB7Ci0gICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGN1cnJUcmFuc2Zvcm07
Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSByZW5kZXJlcigp
LmFuaW1hdGVkU3R5bGUoKTsKLSAgICAgICAgRmxvYXRSZWN0IHBpeGVsU25hcHBlZEJvcmRlclJl
Y3QgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHJlbmRlckJveC5yZWZlcmVuY2VCb3godHJhbnNm
b3JtQm94VG9DU1NCb3hUeXBlKHN0eWxlLT50cmFuc2Zvcm1Cb3goKSkpLCByZW5kZXJCb3guZG9j
dW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKLSAgICAgICAgcmVuZGVyQm94LnN0eWxlKCku
YXBwbHlUcmFuc2Zvcm0oY3VyclRyYW5zZm9ybSwgcGl4ZWxTbmFwcGVkQm9yZGVyUmVjdCwgUmVu
ZGVyU3R5bGU6OmluZGl2aWR1YWxUcmFuc2Zvcm1PcGVyYXRpb25zKTsKLSAgICAgICAgbWFrZU1h
dHJpeFJlbmRlcmFibGUoY3VyclRyYW5zZm9ybSwgY2FuUmVuZGVyM0RUcmFuc2Zvcm1zKCkpOwot
ICAgICAgICByZXR1cm4gY3VyclRyYW5zZm9ybTsKKyAgICAgICAgbWFrZU1hdHJpeFJlbmRlcmFi
bGUodHJhbnNmb3JtLCBjYW5SZW5kZXIzRFRyYW5zZm9ybXMoKSk7CisgICAgICAgIHJldHVybiB0
cmFuc2Zvcm07CiAgICAgfQogCiAgICAgcmV0dXJuICptX3RyYW5zZm9ybTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0ZmRm
OWNiMjkxOTJhYTVlOTY2YmRiNzU4MDY5MDNhYjg2MzE4YjJlLi45NjFmZjRlM2I4OGFmMTNkZDZi
MmZiNTg5ZTA5ZTBmNGFiZDg2MGZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjItMDMtMDkg
IE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQGlnYWxpYS5jb20+CisKKyAgICAgICAg
Q2xlYW51cCBSZW5kZXJMYXllcjo6Y3VycmVudFRyYW5zZm9ybSgpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc1NTMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYXJrIG5ldyBXUFQgdGVzdCBjc3MvY3Nz
LXRyYW5zZm9ybXMvYW5pbWF0aW9uL3RyYW5zZm9ybS1ib3gtd2lsbC1jaGFuZ2UtdHJhbnNmb3Jt
LWxheWVyLmh0bWwKKyAgICAgICAgYXMgZXhwZWN0ZWQgdG8gZmFpbCwgc2luY2UgJ3RyYW5zZm9y
bS1ib3gnIGlzIGlnbm9yZWQgZm9yIGNvbXBvc2l0ZWQgZWxlbWVudHMgYXQgdGhlIG1vbWVudC4K
KworICAgICAgICAqIHBsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBw
bGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoK
KwogMjAyMi0wMy0wOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAg
ICAgU2NvcGUgY2FwdHVyZSBzb3VyY2VzIGJ5IHBhZ2UgaWRlbnRpZmllcnMKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCmluZGV4IGQ5YmI3NGUxYTkwMDRlN2U4YTQyMjU4NmVlNTMxZjc0OWE3
Mzg3M2MuLmQ5NmZlMTUyNzc3ZTk3MjZkNDRkNTc5N2ZlZjUyNDQ4MzBmMjI1N2QgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIyLTAzLTA5ICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIENsZWFu
dXAgUmVuZGVyTGF5ZXI6OmN1cnJlbnRUcmFuc2Zvcm0oKQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3NTUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHR3byBuZXcgV1BUIHRlc3RzIGNvdmVyaW5n
IGFuaW1hdGlvbnMgb2YgdGhlICd0cmFuc2Zvcm0tYm94JyBwcm9wZXJ0eS4KKworICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zZm9ybXMvYW5pbWF0aW9uL3RyYW5zZm9y
bS1ib3gtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtdHJhbnNmb3Jtcy9hbmltYXRpb24vdHJhbnNmb3JtLWJveC13aWxsLWNoYW5nZS10
cmFuc2Zvcm0tbGF5ZXItZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNmb3Jtcy9hbmltYXRpb24vdHJhbnNmb3JtLWJveC13aWxs
LWNoYW5nZS10cmFuc2Zvcm0tbGF5ZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNmb3Jtcy9hbmltYXRpb24vdHJhbnNmb3JtLWJveC5odG1s
OiBBZGRlZC4KKwogMjAyMi0wMy0wOCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBbd2ViLWFuaW1hdGlvbnNdIGNvbG9yLWludGVycG9sYXRpb24gc2hvdWxk
IHN1cHBvcnQgZGlzY3JldGUgYW5pbWF0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNmb3Jtcy9hbmltYXRpb24v
dHJhbnNmb3JtLWJveC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zZm9ybXMvYW5pbWF0aW9uL3RyYW5zZm9ybS1i
b3gtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMDQxMzM2YjZjNWE1NzczMmMzZGE5MWY0NGFj
MjI0MjcxYTM1NDdjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zZm9ybXMvYW5pbWF0aW9uL3RyYW5zZm9y
bS1ib3gtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE3IEBACis8IWRvY3R5cGUgaHRtbD4KKzxo
dG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPlJlZmVyZW5jZSBmb3IgdHJhbnNm
b3JtLWJveCBhbmltYXRpb24gdGVzdCBlcXVpdmFsZW50PC90aXRsZT4KKzxzdHlsZT4KKyAgLmJs
b2NrIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgYm9yZGVyOiAyMHB4IHNvbGlkIGdy
ZWVuOworICAgIHdpZHRoOiAxMDBweDsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIGxlZnQ6IDEw
MHB4OworICAgIHRvcDogMjAwcHg7CisgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgPGRpdiBjbGFz
cz0iYmxvY2siPjwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zZm9ybXMvYW5pbWF0aW9uL3Ry
YW5zZm9ybS1ib3gtd2lsbC1jaGFuZ2UtdHJhbnNmb3JtLWxheWVyLWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNm
b3Jtcy9hbmltYXRpb24vdHJhbnNmb3JtLWJveC13aWxsLWNoYW5nZS10cmFuc2Zvcm0tbGF5ZXIt
ZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMDQxMzM2YjZjNWE1NzczMmMzZGE5MWY0NGFjMjI0
MjcxYTM1NDdjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zZm9ybXMvYW5pbWF0aW9uL3RyYW5zZm9ybS1i
b3gtd2lsbC1jaGFuZ2UtdHJhbnNmb3JtLWxheWVyLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwx
NyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0
aXRsZT5SZWZlcmVuY2UgZm9yIHRyYW5zZm9ybS1ib3ggYW5pbWF0aW9uIHRlc3QgZXF1aXZhbGVu
dDwvdGl0bGU+Cis8c3R5bGU+CisgIC5ibG9jayB7CisgICAgcG9zaXRpb246IGFic29sdXRlOwor
ICAgIGJvcmRlcjogMjBweCBzb2xpZCBncmVlbjsKKyAgICB3aWR0aDogMTAwcHg7CisgICAgaGVp
Z2h0OiAxMDBweDsKKyAgICBsZWZ0OiAxMDBweDsKKyAgICB0b3A6IDIwMHB4OworICB9Cis8L3N0
eWxlPgorPGJvZHk+CisgIDxkaXYgY2xhc3M9ImJsb2NrIj48L2Rpdj4KKzwvYm9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy10cmFuc2Zvcm1zL2FuaW1hdGlvbi90cmFuc2Zvcm0tYm94LXdpbGwtY2hhbmdlLXRyYW5zZm9y
bS1sYXllci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXRyYW5zZm9ybXMvYW5pbWF0aW9uL3RyYW5zZm9ybS1ib3gtd2lsbC1jaGFuZ2Ut
dHJhbnNmb3JtLWxheWVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjU3NDE0MjBjODIyNmE5YTc5N2E0NzJi
ZjViZjRjNTEyYTg2NDI0OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2Zvcm1zL2FuaW1hdGlvbi90cmFu
c2Zvcm0tYm94LXdpbGwtY2hhbmdlLXRyYW5zZm9ybS1sYXllci5odG1sCkBAIC0wLDAgKzEsNjIg
QEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWwgY2xhc3M9InJlZnRlc3Qtd2FpdCI+Cis8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+VmVyaWZ5IHRyYW5zZm9ybS1ib3ggYW5pbWF0aW9ucyBv
biBhICd3aWxsLWNoYW5nZTogdHJhbnNmb3JtJyBsYXllcjwvdGl0bGU+Cis8bGluayByZWw9Im1h
dGNoIiBocmVmPSJ0cmFuc2Zvcm0tYm94LXdpbGwtY2hhbmdlLXRyYW5zZm9ybS1sYXllci1yZWYu
aHRtbCI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9j
c3MtdHJhbnNmb3Jtcy0yLyNjdG0iPgorPHNjcmlwdCBzcmM9Ii9jb21tb24vcmVmdGVzdC13YWl0
LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyAgLmJsb2NrIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CisgICAgYm9yZGVyOiAyMHB4IHNvbGlkIGJsYWNrOworICAgIHdpZHRoOiAxMDBweDsKKyAg
ICBoZWlnaHQ6IDEwMHB4OworICAgIGxlZnQ6IDEwMHB4OworICAgIHRvcDogMTAwcHg7CisgICAg
d2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKKyAgfQorCisgICNzd2l0Y2hUcmFuc2Zvcm1Cb3ggewor
ICAgIHRyYW5zZm9ybTogcm90YXRlWig5MGRlZyk7CisgICAgdHJhbnNmb3JtLW9yaWdpbjogMCUg
MTAwJTsKKyAgICB0cmFuc2Zvcm0tYm94OiBib3JkZXItYm94OworICB9Cis8L3N0eWxlPgorPGJv
ZHk+CisgIDxkaXYgaWQ9InN3aXRjaFRyYW5zZm9ybUJveCIgY2xhc3M9ImJsb2NrIj48L2Rpdj4K
KworPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIGFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JO
ZXh0RnJhbWUoKSB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAg
d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CisgICAgICAgIHJlc29sdmUoKTsK
KyAgICAgIH0pOworICAgIH0pOworICB9CisKKyAgYXN5bmMgZnVuY3Rpb24gY3JlYXRlQW5pbWF0
aW9uKGVsZW1lbnROYW1lLCBrZXlmcmFtZXMpIHsKKyAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudE5hbWUpOworICAgIGNvbnN0IGFuaW0gPSBlbGVtZW50
LmFuaW1hdGUoa2V5ZnJhbWVzLCB7CisgICAgICBkdXJhdGlvbjogMTAwMCwKKyAgICAgIGVhc2lu
ZzogJ2xpbmVhcicsCisgICAgICBmaWxsOiAnZm9yd2FyZHMnLAorICAgIH0pOworICAgIGFuaW0u
cGF1c2UoKTsKKyAgICBhbmltLmN1cnJlbnRUaW1lID0gMjAwMDsKKyAgICByZXR1cm4gYW5pbS5y
ZWFkeTsKKyAgfQorCisgIG9ubG9hZCA9IGFzeW5jIGZ1bmN0aW9uKCkgeworICAgIGF3YWl0IHdh
aXRGb3JOZXh0RnJhbWUoKTsKKyAgICBhd2FpdCBjcmVhdGVBbmltYXRpb24oJ3N3aXRjaFRyYW5z
Zm9ybUJveCcsIFsKKyAgICAgICAgeyB0cmFuc2Zvcm1Cb3g6ICdib3JkZXItYm94JywgIGJvcmRl
ckNvbG9yOiAnYmxhY2snIH0sCisgICAgICAgIHsgdHJhbnNmb3JtQm94OiAnY29udGVudC1ib3gn
LCBib3JkZXJDb2xvcjogJ2dyZWVuJyB9XSk7CisKKyAgICBhd2FpdCB3YWl0Rm9yTmV4dEZyYW1l
KCk7CisgICAgdGFrZVNjcmVlbnNob3QoKTsKKyAgfTsKKzwvc2NyaXB0PgorPC9ib2R5PgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdHJhbnNmb3Jtcy9hbmltYXRpb24vdHJhbnNmb3JtLWJveC5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zZm9ybXMvYW5p
bWF0aW9uL3RyYW5zZm9ybS1ib3guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NjNhM2ZkNTgyZTNjNjBjZTMw
OGUxY2RiZTI3OTQwYTY5MTBjOTk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zZm9ybXMvYW5pbWF0aW9u
L3RyYW5zZm9ybS1ib3guaHRtbApAQCAtMCwwICsxLDYwIEBACis8IWRvY3R5cGUgaHRtbD4KKzxo
dG1sIGNsYXNzPSJyZWZ0ZXN0LXdhaXQiPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxl
PlZlcmlmeSB0cmFuc2Zvcm0tYm94IGFuaW1hdGlvbnM8L3RpdGxlPgorPGxpbmsgcmVsPSJtYXRj
aCIgaHJlZj0idHJhbnNmb3JtLWJveC1yZWYuaHRtbCI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdHJhbnNmb3Jtcy0yLyNjdG0iPgorPHNjcmlw
dCBzcmM9Ii9jb21tb24vcmVmdGVzdC13YWl0LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyAgLmJs
b2NrIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgYm9yZGVyOiAyMHB4IHNvbGlkIGJs
YWNrOworICAgIHdpZHRoOiAxMDBweDsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIGxlZnQ6IDEw
MHB4OworICAgIHRvcDogMTAwcHg7CisgIH0KKworICAjc3dpdGNoVHJhbnNmb3JtQm94IHsKKyAg
ICB0cmFuc2Zvcm06IHJvdGF0ZVooOTBkZWcpOworICAgIHRyYW5zZm9ybS1vcmlnaW46IDAlIDEw
MCU7CisgICAgdHJhbnNmb3JtLWJveDogYm9yZGVyLWJveDsKKyAgfQorPC9zdHlsZT4KKzxib2R5
PgorICA8ZGl2IGlkPSJzd2l0Y2hUcmFuc2Zvcm1Cb3giIGNsYXNzPSJibG9jayI+PC9kaXY+CisK
KzxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICBhc3luYyBmdW5jdGlvbiB3YWl0Rm9yTmV4
dEZyYW1lKCkgeworICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgIHdp
bmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgICAgICByZXNvbHZlKCk7Cisg
ICAgICB9KTsKKyAgICB9KTsKKyAgfQorCisgIGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUFuaW1hdGlv
bihlbGVtZW50TmFtZSwga2V5ZnJhbWVzKSB7CisgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKGVsZW1lbnROYW1lKTsKKyAgICBjb25zdCBhbmltID0gZWxlbWVudC5h
bmltYXRlKGtleWZyYW1lcywgeworICAgICAgZHVyYXRpb246IDEwMDAsCisgICAgICBlYXNpbmc6
ICdsaW5lYXInLAorICAgICAgZmlsbDogJ2ZvcndhcmRzJywKKyAgICB9KTsKKyAgICBhbmltLnBh
dXNlKCk7CisgICAgYW5pbS5jdXJyZW50VGltZSA9IDIwMDA7CisgICAgcmV0dXJuIGFuaW0ucmVh
ZHk7CisgIH0KKworICBvbmxvYWQgPSBhc3luYyBmdW5jdGlvbigpIHsKKyAgICBhd2FpdCB3YWl0
Rm9yTmV4dEZyYW1lKCk7CisgICAgYXdhaXQgY3JlYXRlQW5pbWF0aW9uKCdzd2l0Y2hUcmFuc2Zv
cm1Cb3gnLCBbCisgICAgICAgIHsgdHJhbnNmb3JtQm94OiAnYm9yZGVyLWJveCcsICBib3JkZXJD
b2xvcjogJ2JsYWNrJyB9LAorICAgICAgICB7IHRyYW5zZm9ybUJveDogJ2NvbnRlbnQtYm94Jywg
Ym9yZGVyQ29sb3I6ICdncmVlbicgfV0pOworCisgICAgYXdhaXQgd2FpdEZvck5leHRGcmFtZSgp
OworICAgIHRha2VTY3JlZW5zaG90KCk7CisgIH07Cis8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA4ZDM2ZTc3MDY5M2Iw
ZjVhODQ3ODM1ODk1NGNmYTVlMDA3M2FhYjU1Li5lN2NhNzU2NDBjZmFlNWI3ZjVkZmZhYTczMGRk
NGE3YTU5NzJiMDk0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRp
b25zCkBAIC02NDIsNiArNjQyLDkgQEAgd2Via2l0Lm9yZy9iLzIzMDI3NyBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNmb3Jtcy9wZXJzcGVjdGkKIHdlYmtpdC5v
cmcvYi8yMzAyNzcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5z
Zm9ybXMvZHluYW1pYy1maXhlZC1wb3MtY2ItY2hhbmdlLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KIHdlYmtpdC5vcmcvYi8yMzAyNzcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXRyYW5zZm9ybXMvcGVyc3BlY3RpdmUtdHJhbnNmb3Jtcy1lcXVpdmFsZW5jZS5odG1s
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKKyMgJ3RyYW5zZm9ybS1ib3gnIHN1cHBvcnQgaXMgYnJv
a2VuIGZvciBjb21wb3NpdGVkIGVsZW1lbnRzLgord2Via2l0Lm9yZy9iLzIzNzU1MyBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNmb3Jtcy9hbmltYXRpb24vdHJh
bnNmb3JtLWJveC13aWxsLWNoYW5nZS10cmFuc2Zvcm0tbGF5ZXIuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQorCiB3ZWJraXQub3JnL2IvMjI3MjMxIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb3VudGVyLXN0eWxlcy9hcmFiaWMtaW5kaWMvY3NzMy1jb3VudGVyLXN0
eWxlcy0xMDEuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIyNzIzMSBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY291bnRlci1zdHlsZXMvYXJh
YmljLWluZGljL2NzczMtY291bnRlci1zdHlsZXMtMTAyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KIHdlYmtpdC5vcmcvYi8yMjcyMzEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNvdW50ZXItc3R5bGVzL2FyYWJpYy1pbmRpYy9jc3MzLWNvdW50ZXItc3R5bGVzLTEw
My5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDNjYzM2NjUxYTI5ZjgzYjZlNWM5MTNmNGJiN2NjMDBiYTU0ZjZk
YTkuLjU5NWI0ZmQwNGI2MzEzNWRjNWFlYmViYWRmODVkNDM3OGUwN2RkMDQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yOTg4LDYgKzI5ODgsOSBAQCBm
YXN0L2NhbnZhcy9zZXQtY29sb3JzLmh0bWwgWyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzIw
Mjk1OCBjc3MzL2ZpbHRlcnMvc3ZnLWJsdXItZmlsdGVyLWNsaXBwZWQuaHRtbCBbIEltYWdlT25s
eUZhaWx1cmUgXQogCisjICd0cmFuc2Zvcm0tYm94JyBzdXBwb3J0IGlzIGJyb2tlbiBmb3IgY29t
cG9zaXRlZCBlbGVtZW50cy4KK3dlYmtpdC5vcmcvYi8yMzc1NTMgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zZm9ybXMvYW5pbWF0aW9uL3RyYW5zZm9ybS1ib3gt
d2lsbC1jaGFuZ2UtdHJhbnNmb3JtLWxheWVyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KKwog
d2Via2l0Lm9yZy9iLzIwMzMwNSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtdHJhbnNpdGlvbnMvcHJvcGVydGllcy12YWx1ZS0wMDEuaHRtbCBbIFBhc3MgRmFpbHVyZSBd
CiB3ZWJraXQub3JnL2IvMjAzMzA1IFsgRGVidWcgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMvcHJvcGVydGllcy12YWx1ZS1pbmhlcml0LTAwMS5o
dG1sIFsgUGFzcyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMDMzNTYgWyBEZWJ1ZyBdIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2l0aW9ucy9wcm9wZXJ0aWVz
LXZhbHVlLTAwMy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZGI4NThkMDU2MmI0NzljNjcwMzgyNmIyYTJkODBjODdh
ZDYwYzM0OS4uNmZhZDdiMzllNjBiZjYxOWRmNThkN2Q0ZjFjMTU1YWJmYWU5YWU5OSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIzNDUsNiArMjM0NSw5
IEBAIHdlYmtpdC5vcmcvYi8xODk0NDggWyBNb2phdmUgQ2F0YWxpbmEgXSBmYXN0L3RleHQvb3Nh
a2Etc3ludGhldGljLWJvbGQuaHRtbCBbIFNrCiAKIHdlYmtpdC5vcmcvYi8yMzAzMjcgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zZm9ybXMvY3Jhc2h0ZXN0cy90
cmFuc2Zvcm0tbWFycXVlZS1yZXNpemUtZGl2LWltYWdlLTAwMS5odG1sIFsgUGFzcyBGYWlsdXJl
IF0KIAorIyAndHJhbnNmb3JtLWJveCcgc3VwcG9ydCBpcyBicm9rZW4gZm9yIGNvbXBvc2l0ZWQg
ZWxlbWVudHMuCit3ZWJraXQub3JnL2IvMjM3NTUzIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy10cmFuc2Zvcm1zL2FuaW1hdGlvbi90cmFuc2Zvcm0tYm94LXdpbGwtY2hh
bmdlLXRyYW5zZm9ybS1sYXllci5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCisKICMgcmRhcjov
LzgzNTkxMDQwCiBbIE1vbnRlcmV5KyBdIGVkaXRpbmcvbWFjL2RpY3Rpb25hcnktbG9va3VwL2Rp
Y3Rpb25hcnktbG9va3VwLWlucHV0Lmh0bWwgWyBDcmFzaCBdCiBbIE1vbnRlcmV5KyBdIGVkaXRp
bmcvbWFjL2RpY3Rpb25hcnktbG9va3VwL2RpY3Rpb25hcnktbG9va3VwLWluc2lkZS1zZWxlY3Rp
b24uaHRtbCBbIENyYXNoIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggODI3ZThlMWZhMWNjYzEwMjI0MGE3NDE0OTFiMTZiNjZiNDE3ZjhmZS4uZjQ4Mzdh
M2Y0ZjA0NzQ3YjU3OWIwYzU3ZGMzYmQyNzdmYmExYzk0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTkzMyw2ICs5MzMsOSBAQCB3ZWJraXQub3JnL2Iv
MTQ5MjQ1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1tdWx0aWNvbC9t
dWx0aWNvbC1zaAogd2Via2l0Lm9yZy9iLzE0OTI0NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtbXVsdGljb2wvbXVsdGljb2wtc3Bhbi1hbGwtYmxvY2stc2libGluZy0w
MDMueGh0IFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTQ5MjQ1IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1tdWx0aWNvbC9tdWx0aWNvbC1zcGFuLWFsbC1tYXJnaW4tbmVz
dGVkLWZpcnN0Y2hpbGQtMDAxLnhodCBbIFNraXAgXQogCisjICd0cmFuc2Zvcm0tYm94JyBzdXBw
b3J0IGlzIGJyb2tlbiBmb3IgY29tcG9zaXRlZCBlbGVtZW50cy4KK3dlYmtpdC5vcmcvYi8yMzc1
NTMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zZm9ybXMvYW5p
bWF0aW9uL3RyYW5zZm9ybS1ib3gtd2lsbC1jaGFuZ2UtdHJhbnNmb3JtLWxheWVyLmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KKwogIyBUT0RPIEVYSUYtcmVzb2x1dGlvbiBpcyBub3Qgc3VwcG9y
dGVkCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RlbnNpdHktc2l6ZS1jb3JyZWN0
aW9uLyBbIFNraXAgXQogCg==
</data>
<flag name="review"
          id="481801"
          type_id="1"
          status="+"
          setter="rbuis"
    />
          </attachment>
      

    </bug>

</bugzilla>