<?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>198005</bug_id>
          
          <creation_ts>2019-05-17 15:11:14 -0700</creation_ts>
          <short_desc>REGRESSION (r245170): gmail.com inbox table header flickers</short_desc>
          <delta_ts>2019-05-17 18:32:29 -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>Compositing</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1537280</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-17 15:11:14 -0700</bug_when>
    <thetext>After r245471 there&apos;s still a bug where the gmail header above the inbox (where it says &quot;Primary&quot;) flickers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537281</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-17 15:11:27 -0700</bug_when>
    <thetext>&lt;rdar://problem/50907718&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537295</commentid>
    <comment_count>2</comment_count>
      <attachid>370164</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-17 15:36:58 -0700</bug_when>
    <thetext>Created attachment 370164
Testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537296</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-17 15:38:18 -0700</bug_when>
    <thetext>I think the issue is that the layer for &quot;header&quot; uses &quot;paints into composited ancestor&quot; and paints via the root, but that ancestor is obscured behind an intermediate layer (the backdrop).

S--------C-c- -- ------ ------ 0x57ef772b0 (0,0) width=875 height=835 (layerID 16) {sc 2} RenderView
S----------c- -- ------ ------   + 0x57ef77408 (0,0) width=875 height=328  &lt;html&gt;
S-------XC--- -- ------ ------     + 0x57ef77560 (10,10) width=550 height=350 (layerID 21) {vc 3}  &lt;div&gt; class=&apos;backdrop&apos;
---------C--- -- ------ ------     + 0x57ef776b8 (20,20) width=528 height=328 (layerID 22)  &lt;div&gt; class=&apos;container&apos;
S-O------Cac- -- ------ ------     + 0x57ef77810 (14,14) width=504 height=304 (layerID 28)  &lt;div&gt; class=&apos;header&apos;
------------- -- ------ ------       + 0x57ef77968 (12,12) width=200 height=100  &lt;div&gt; class=&apos;target&apos;
S--A-----C--- -- ------ ------       + 0x57ef77ac0 (252,122) width=220 height=120 (layerID 27)  &lt;div&gt; class=&apos;animating changed&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537297</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-17 15:38:45 -0700</bug_when>
    <thetext>Odd that we haven&apos;t seen this before, since the &quot;paints into composited ancestor&quot; logic has never consulted overlap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537319</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-17 16:27:03 -0700</bug_when>
    <thetext>OIC. We used to leave an &quot;overlap&quot; indirect composited reason on the layer which prevented painting into an ancestor, but now with backing sharing that gets cleared. Subtle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537339</commentid>
    <comment_count>6</comment_count>
      <attachid>370171</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-17 17:03:27 -0700</bug_when>
    <thetext>Created attachment 370171
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537340</commentid>
    <comment_count>7</comment_count>
      <attachid>370171</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-05-17 17:12:42 -0700</bug_when>
    <thetext>Comment on attachment 370171
Patch

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

&gt; Source/WebCore/ChangeLog:16
&gt; +        Mak some logging changes to help diagnose things like this.

Typo

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:935
&gt; +        if (layerPaintsIntoProvidedBacking) {
&gt; +            layerPaintsIntoProvidedBacking = false;
&gt; +            // layerPaintsIntoProvidedBacking was only true for layers that would otherwise composite because of overlap. If we can
&gt; +            // no longer share, put this this indirect reason back on the layer so that requiresOwnBackingStore() sees it.
&gt; +            layer.setIndirectCompositingReason(IndirectCompositingReason::Overlap);

It is bit non-obvious that layerPaintsIntoProvidedBacking implies IndirectCompositingReason::Overlap. Maybe rename it to layerPaintsIntoProvidedBackingDueToOverlap or similar to avoid future mistakes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537350</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-17 18:29:58 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #7)
&gt; Comment on attachment 370171 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=370171&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:935
&gt; &gt; +        if (layerPaintsIntoProvidedBacking) {
&gt; &gt; +            layerPaintsIntoProvidedBacking = false;
&gt; &gt; +            // layerPaintsIntoProvidedBacking was only true for layers that would otherwise composite because of overlap. If we can
&gt; &gt; +            // no longer share, put this this indirect reason back on the layer so that requiresOwnBackingStore() sees it.
&gt; &gt; +            layer.setIndirectCompositingReason(IndirectCompositingReason::Overlap);
&gt; 
&gt; It is bit non-obvious that layerPaintsIntoProvidedBacking implies
&gt; IndirectCompositingReason::Overlap. Maybe rename it to
&gt; layerPaintsIntoProvidedBackingDueToOverlap or similar to avoid future
&gt; mistakes?

I think making &quot;layer needs to overlap&quot; not an IndirectCompositingReason, but a bit on the layer would have helped avoid this, but that can happen later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537352</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-17 18:32:29 -0700</bug_when>
    <thetext>https://trac.webkit.org/r245490</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>370164</attachid>
            <date>2019-05-17 15:36:58 -0700</date>
            <delta_ts>2019-05-17 15:36:58 -0700</delta_ts>
            <desc>Testcase</desc>
            <filename>gmail-header-flashing.html</filename>
            <type>text/html</type>
            <size>1361</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KCTxzdHlsZT4KCQlib2R5IHsKCQkJbWFyZ2lu
OiAwOwoJCX0KCQkuYmFja2Ryb3AgewoJCQlwb3NpdGlvbjogZml4ZWQ7CgkJCXRvcDogMTBweDsK
CQkJbGVmdDogMTBweDsKCQkJd2lkdGg6IDU1MHB4OwoJCQloZWlnaHQ6IDM1MHB4OwoJCQliYWNr
Z3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMik7CgkJfQoJCQoJCS5jb250YWluZXIgewoJ
CQlwb3NpdGlvbjogcmVsYXRpdmU7CgkJCXRvcDogMjBweDsKCQkJbGVmdDogMjBweDsKCQkJd2lk
dGg6IDUwMHB4OwoJCQloZWlnaHQ6IDMwMHB4OwoJCQlib3JkZXI6IDRweCBzb2xpZCBibGFjazsK
CQkJcGFkZGluZzogMTBweDsKCQl9CgkJCgkJLmhlYWRlciB7CgkJCXBvc2l0aW9uOiByZWxhdGl2
ZTsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQkJei1pbmRleDogMTsKCQkJd2lkdGg6IDUwMHB4OwoJ
CQloZWlnaHQ6IDMwMHB4OwoJCQliYWNrZ3JvdW5kLWNvbG9yOiBncmF5OwoJCQlib3JkZXI6IDJw
eCBzb2xpZCBibHVlOwoJCX0KCgkJLnRhcmdldCB7CgkJCXBvc2l0aW9uOiByZWxhdGl2ZTsKCQkJ
dG9wOiAxMHB4OwoJCQlsZWZ0OiAxMHB4OwoJCQl3aWR0aDogMjAwcHg7CgkJCWhlaWdodDogMTAw
cHg7CgkJCWJhY2tncm91bmQtY29sb3I6IGdyZWVuOwoJCX0KCQkKCQkuYW5pbWF0aW5nIHsKCQkJ
cG9zaXRpb246IHJlbGF0aXZlOwoJCQliYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7CgkJCXRvcDog
YXV0bzsKCQkJbGVmdDogMjUwcHg7CgkJCXdpZHRoOiAyMDBweDsKCQkJaGVpZ2h0OiAxMDBweDsK
CQkJb3BhY2l0eTogMC42OwoJCQl0cmFuc2l0aW9uOiBvcGFjaXR5IDUwMHM7CgkJCXBhZGRpbmc6
IDEwcHg7CgkJfQoJCQoJCS5hbmltYXRpbmcuY2hhbmdlZCB7CgkJCW9wYWNpdHk6IDE7CgkJCXRv
cDogMjBweDsKCQl9Cgk8L3N0eWxlPgogICAgPHNjcmlwdD4KICAgIAkKCQkKCQl3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHsKCQkJc2V0VGltZW91dCgoKSA9PiB7CgkJCQlk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYW5pbWF0aW5nJykuY2xhc3NMaXN0LmFkZCgnY2hhbmdl
ZCcpOwoJCQl9LCAyMDAwKTsKCQl9LCBmYWxzZSk7CiAgICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9k
eT4KCTxkaXYgY2xhc3M9ImJhY2tkcm9wIj4mbmJzcDs8L2Rpdj4KCTxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CgkJPGRpdiBjbGFzcz0iaGVhZGVyIj4KCQkJPGRpdiBjbGFzcz0idGFyZ2V0Ij4KCQkJ
CVRoaXMgc2hvdWxkIG5vdCBkaXNhcHBlYXIKCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImFuaW1h
dGluZyI+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370171</attachid>
            <date>2019-05-17 17:03:27 -0700</date>
            <delta_ts>2019-05-17 17:12:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198005-20190517170326.patch</filename>
            <type>text/plain</type>
            <size>28117</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1NDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZThjM2FiZjc5MTVhNTJh
MWFjMWZhMTlmMWJjMzU2MjljODczYzdlNy4uZmJiOGMxN2FkNDM3MzYwYmRkOTA2NGEyOTQ1NTVk
NTk4MWY4YmRhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE5LTA1LTE3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04g
KHIyNDUxNzApOiBnbWFpbC5jb20gaW5ib3ggdGFibGUgaGVhZGVyIGZsaWNrZXJzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTgwMDUKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzUwOTA3NzE4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdoZW4gYSBsYXllciBzdGFydGVkIGFzIHBhaW50aW5nIGludG8g
c2hhcmVkIGJhY2tpbmcsIGJ1dCB0aGVuIGJlY2FtZSBpbmRlcGVuZGVudGx5CisgICAgICAgIGNv
bXBvc2l0ZWQgKGUuZy4gYnkgaGF2aW5nIHRvIGNsaXAgY29tcG9zaXRlZCBjaGlsZHJlbiksIGl0
IHdvdWxkbid0IGhhdmUgdGhlICJvdmVybGFwIgorICAgICAgICBpbmRpcmVjdCBjb21wb3NpdGlu
ZyByZWFzb24uIFRoaXMgYWxsb3dlZCByZXF1aXJlc093bkJhY2tpbmdTdG9yZSgpIHRvIHNheSB0
aGF0IGl0CisgICAgICAgIGNvdWxkIHBhaW50IGludG8gc29tZSBhbmNlc3RvciwgYnV0IHRoaXMg
YnJlYWtzIG92ZXJsYXAuIFNvIGluIHRoaXMgY29kZSBwYXRoLAorICAgICAgICBwdXQgSW5kaXJl
Y3RDb21wb3NpdGluZ1JlYXNvbjo6T3ZlcmxhcCBiYWNrIG9uIHRoZSBsYXllciB3aGljaCByZXN0
b3JlcyB0aGUgcHJldmlvdXMKKyAgICAgICAgYmVoYXZpb3IuCisKKyAgICAgICAgTWFrIHNvbWUg
bG9nZ2luZyBjaGFuZ2VzIHRvIGhlbHAgZGlhZ25vc2UgdGhpbmdzIGxpa2UgdGhpcy4KKworICAg
ICAgICBUZXN0OiBjb21wb3NpdGluZy9zaGFyZWQtYmFja2luZy9vdmVybGFwLWFmdGVyLWVuZC1z
aGFyaW5nLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Om91dHB1dFBhaW50T3JkZXJUcmVlTGVnZW5kKToKKyAgICAgICAgKFdl
YkNvcmU6Om91dHB1dFBhaW50T3JkZXJUcmVlUmVjdXJzaXZlKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0
ZUNvbXBvc2l0aW5nUmVxdWlyZW1lbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Q29tcG9zaXRvcjo6dXBkYXRlQmFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OnJlcXVpcmVzT3duQmFja2luZ1N0b3JlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVhc29uc0ZvckNvbXBvc2l0aW5nIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21w
b3NpdGluZ0ZvckluZGlyZWN0UmVhc29uIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmg6CisKIDIwMTktMDUtMTcgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI0NTE3MCk6IGdtYWls
LmNvbSBoZWFkZXIgZmxpY2tlcnMgd2hlbiBob3ZlcmluZyBvdmVyIHRoZSBhbmltYXRpbmcgYnV0
dG9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggZTUwMzRj
NTdhNmM1ZWU4ODJlYjdkOWI1ZDQxNjlhN2QzYzFkOGM0NS4uM2M5MGNmYmFlNTk5ZjYwMzgzZTcz
Mjg4NDVkOTVlMjNiYWI2OGE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCkBAIC02ODg3LDYgKzY4ODcsMjIgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0
U3RyZWFtJiB0cywgY29uc3QgUmVuZGVyTGF5ZXI6OkNsaXBSZWN0c0NvbnRleHQmIGNvbnQKICAg
ICByZXR1cm4gdHM7CiB9CiAKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMs
IEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24gcmVhc29uKQoreworICAgIHN3aXRjaCAocmVhc29u
KSB7CisgICAgY2FzZSBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpOb25lOiB0cyA8PCAibm9u
ZSI7IGJyZWFrOworICAgIGNhc2UgSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjo6U3RhY2tpbmc6
IHRzIDw8ICJzdGFja2luZyI7IGJyZWFrOworICAgIGNhc2UgSW5kaXJlY3RDb21wb3NpdGluZ1Jl
YXNvbjo6T3ZlcmZsb3dTY3JvbGxQb3NpdGlvbmluZzogdHMgPDwgIm92ZXJmbG93IHBvc2l0aW9u
aW5nIjsgYnJlYWs7CisgICAgY2FzZSBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpPdmVybGFw
OiB0cyA8PCAib3ZlcmxhcCI7IGJyZWFrOworICAgIGNhc2UgSW5kaXJlY3RDb21wb3NpdGluZ1Jl
YXNvbjo6QmFja2dyb3VuZExheWVyOiB0cyA8PCAiYmFja2dyb3VuZCBsYXllciI7IGJyZWFrOwor
ICAgIGNhc2UgSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjo6R3JhcGhpY2FsRWZmZWN0OiB0cyA8
PCAiZ3JhcGhpY2FsIGVmZmVjdCI7IGJyZWFrOworICAgIGNhc2UgSW5kaXJlY3RDb21wb3NpdGlu
Z1JlYXNvbjo6UGVyc3BlY3RpdmU6IHRzIDw8ICJwZXJzcGVjdGl2ZSI7IGJyZWFrOworICAgIGNh
c2UgSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjo6UHJlc2VydmUzRDogdHMgPDwgInByZXNlcnZl
LTNkIjsgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIHRzOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNpZiBFTkFCTEUoVFJFRV9ERUJVR0dJTkcpCkBAIC02OTIxLDcgKzY5Mzcs
NyBAQCB2b2lkIHNob3dMYXllclRyZWUoY29uc3QgV2ViQ29yZTo6UmVuZGVyT2JqZWN0KiByZW5k
ZXJlcikKIHN0YXRpYyB2b2lkIG91dHB1dFBhaW50T3JkZXJUcmVlTGVnZW5kKFRleHRTdHJlYW0m
IHN0cmVhbSkKIHsKICAgICBzdHJlYW0ubmV4dExpbmUoKTsKLSAgICBzdHJlYW0gPDwgIihTKXRh
Y2tpbmcgQ29udGV4dC8oRilvcmNlZCBTQy9PKFApcG9ydHVuaXN0aWMgU0MsIChOKW9ybWFsIGZs
b3cgb25seSwgKE8pdmVyZmxvdyBjbGlwLCAoQSlscGhhIChvcGFjaXR5IG9yIG1hc2spLCBoYXMg
KEIpbGVuZCBtb2RlLCAoSSlzb2xhdGVzIGJsZW5kaW5nLCAoVClyYW5zZm9ybS1pc2gsIChGKWls
dGVyLCBGaShYKWVkIHBvc2l0aW9uLCAoQylvbXBvc2l0ZWQsIChQKXJvdmlkZXMgYmFja2luZy91
c2VzIChwKXJvdmlkZWQgYmFja2luZywgKGMpb21wb3NpdGVkIGRlc2NlbmRhbnQsIChzKXNjcm9s
bGluZyBhbmNlc3RvclxuIgorICAgIHN0cmVhbSA8PCAiKFMpdGFja2luZyBDb250ZXh0LyhGKW9y
Y2VkIFNDL08oUClwb3J0dW5pc3RpYyBTQywgKE4pb3JtYWwgZmxvdyBvbmx5LCAoTyl2ZXJmbG93
IGNsaXAsIChBKWxwaGEgKG9wYWNpdHkgb3IgbWFzayksIGhhcyAoQilsZW5kIG1vZGUsIChJKXNv
bGF0ZXMgYmxlbmRpbmcsIChUKXJhbnNmb3JtLWlzaCwgKEYpaWx0ZXIsIEZpKFgpZWQgcG9zaXRp
b24sIChDKW9tcG9zaXRlZCwgKFApcm92aWRlcyBiYWNraW5nL3VzZXMgKHApcm92aWRlZCBiYWNr
aW5nL3BhaW50cyB0byAoYSluY2VzdG9yLCAoYylvbXBvc2l0ZWQgZGVzY2VuZGFudCwgKHMpc2Ny
b2xsaW5nIGFuY2VzdG9yXG4iCiAgICAgICAgICJEaXJ0eSAoeiktbGlzdHMsIERpcnR5IChuKW9y
bWFsIGZsb3cgbGlzdHNcbiIKICAgICAgICAgIlRyYXZlcnNhbCBuZWVkczogcmVxdWlyZW1lbnRz
ICh0KXJhdmVyc2FsIG9uIGRlc2NlbmRhbnRzLCAoYilhY2tpbmcgb3IgaGllcmFyY2h5IHRyYXZl
cnNhbCBvbiBkZXNjZW5kYW50cywgKHIpZXF1aXJlbWVudHMgdHJhdmVyc2FsIG9uIGFsbCBkZXNj
ZW5kYW50cywgcmVxdWlyZW1lbnRzIHRyYXZlcnNhbCBvbiBhbGwgKHMpdWJzZXF1ZW50IGxheWVy
cywgKGgpaWVyYXJjaHkgdHJhdmVyc2FsIG9uIGFsbCBkZXNjZW5kYW50cywgdXBkYXRlIG9mIHBh
aW50IChvKXJkZXIgY2hpbGRyZW5cbiIKICAgICAgICAgIlVwZGF0ZSBuZWVkczogICAgcG9zdC0o
bClheW91dCByZXF1aXJlbWVudHMsIChnKWVvbWV0cnksIChrKWlkcyBnZW9tZXRyeSwgKGMpb25m
aWcsIGxheWVyIGNvbm5lKHgpaW9uLCAocyljcm9sbGluZyB0cmVlXG4iOwpAQCAtNjk0Nyw3ICs2
OTYzLDI0IEBAIHN0YXRpYyB2b2lkIG91dHB1dFBhaW50T3JkZXJUcmVlUmVjdXJzaXZlKFRleHRT
dHJlYW0mIHN0cmVhbSwgY29uc3QgV2ViQ29yZTo6UmVuCiAgICAgc3RyZWFtIDw8IChsYXllci5o
YXNGaWx0ZXIoKSA/ICJGIiA6ICItIik7CiAgICAgc3RyZWFtIDw8IChsYXllci5yZW5kZXJlcigp
LmlzRml4ZWRQb3NpdGlvbmVkKCkgPyAiWCIgOiAiLSIpOwogICAgIHN0cmVhbSA8PCAobGF5ZXIu
aXNDb21wb3NpdGVkKCkgPyAiQyIgOiAiLSIpOwotICAgIHN0cmVhbSA8PCAoKGxheWVyLmlzQ29t
cG9zaXRlZCgpICYmIGxheWVyLmJhY2tpbmcoKS0+aGFzQmFja2luZ1NoYXJpbmdMYXllcnMoKSkg
PyAiUCIgOiAobGF5ZXIucGFpbnRzSW50b1Byb3ZpZGVkQmFja2luZygpID8gInAiIDogIi0iKSk7
CisgICAgCisgICAgYXV0byBjb21wb3NpdGVkUGFpbnRpbmdEZXN0aW5hdGlvblN0cmluZyA9IFsm
bGF5ZXJdKCkgeworICAgICAgICBpZiAobGF5ZXIucGFpbnRzSW50b1Byb3ZpZGVkQmFja2luZygp
KQorICAgICAgICAgICAgcmV0dXJuICJwIjsKKworICAgICAgICBpZiAoIWxheWVyLmlzQ29tcG9z
aXRlZCgpKQorICAgICAgICAgICAgcmV0dXJuICItIjsKKworICAgICAgICBpZiAobGF5ZXIuYmFj
a2luZygpLT5oYXNCYWNraW5nU2hhcmluZ0xheWVycygpKQorICAgICAgICAgICAgcmV0dXJuICJQ
IjsKKyAgICAgICAgCisgICAgICAgIGlmIChsYXllci5iYWNraW5nKCktPnBhaW50c0ludG9Db21w
b3NpdGVkQW5jZXN0b3IoKSkKKyAgICAgICAgICAgIHJldHVybiAiYSI7CisKKyAgICAgICAgcmV0
dXJuICItIjsKKyAgICB9OworCisgICAgc3RyZWFtIDw8IGNvbXBvc2l0ZWRQYWludGluZ0Rlc3Rp
bmF0aW9uU3RyaW5nKCk7CiAgICAgc3RyZWFtIDw8IChsYXllci5oYXNDb21wb3NpdGluZ0Rlc2Nl
bmRhbnQoKSA/ICJjIiA6ICItIik7CiAgICAgc3RyZWFtIDw8IChsYXllci5oYXNDb21wb3NpdGVk
U2Nyb2xsaW5nQW5jZXN0b3IoKSA/ICJzIiA6ICItIik7CiAKQEAgLTY5ODYsNiArNzAxOSw5IEBA
IHN0YXRpYyB2b2lkIG91dHB1dFBhaW50T3JkZXJUcmVlUmVjdXJzaXZlKFRleHRTdHJlYW0mIHN0
cmVhbSwgY29uc3QgV2ViQ29yZTo6UmVuCiAgICAgaWYgKGxheWVyLmlzQ29tcG9zaXRlZCgpKSB7
CiAgICAgICAgIGF1dG8mIGJhY2tpbmcgPSAqbGF5ZXIuYmFja2luZygpOwogICAgICAgICBzdHJl
YW0gPDwgIiAobGF5ZXJJRCAiIDw8IGJhY2tpbmcuZ3JhcGhpY3NMYXllcigpLT5wcmltYXJ5TGF5
ZXJJRCgpIDw8ICIpIjsKKyAgICAgICAgCisgICAgICAgIGlmIChsYXllci5pbmRpcmVjdENvbXBv
c2l0aW5nUmVhc29uKCkgIT0gV2ViQ29yZTo6SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjo6Tm9u
ZSkKKyAgICAgICAgICAgIHN0cmVhbSA8PCAiICIgPDwgbGF5ZXIuaW5kaXJlY3RDb21wb3NpdGlu
Z1JlYXNvbigpOwogCiAgICAgICAgIGF1dG8gc2Nyb2xsaW5nTm9kZUlEID0gYmFja2luZy5zY3Jv
bGxpbmdOb2RlSURGb3JSb2xlKFdlYkNvcmU6OlNjcm9sbENvb3JkaW5hdGlvblJvbGU6OlNjcm9s
bGluZyk7CiAgICAgICAgIGF1dG8gZnJhbWVIb3N0aW5nTm9kZUlEID0gYmFja2luZy5zY3JvbGxp
bmdOb2RlSURGb3JSb2xlKFdlYkNvcmU6OlNjcm9sbENvb3JkaW5hdGlvblJvbGU6OkZyYW1lSG9z
dGluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IGFhOTYzMDYy
NjQ2OTI0ZjNkMjM0YjllZTVlOTkwY2RkNDM1OThmZmYuLjZkZGM3MGRiM2U5YWJkZmUwNTdlZDQw
YWZmZTZhNGQ0ZWM5NTI0ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5o
CkBAIC0xMTcsNiArMTE3LDE3IEBAIGVudW0gY2xhc3MgUmVxdWVzdFN0YXRlIHsKICAgICBVbmRl
dGVybWluZWQKIH07CiAKK2VudW0gY2xhc3MgSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiB7Cisg
ICAgTm9uZSwKKyAgICBTdGFja2luZywKKyAgICBPdmVyZmxvd1Njcm9sbFBvc2l0aW9uaW5nLAor
ICAgIE92ZXJsYXAsCisgICAgQmFja2dyb3VuZExheWVyLAorICAgIEdyYXBoaWNhbEVmZmVjdCwg
Ly8gb3BhY2l0eSwgbWFzaywgZmlsdGVyLCB0cmFuc2Zvcm0gZXRjLgorICAgIFBlcnNwZWN0aXZl
LAorICAgIFByZXNlcnZlM0QKK307CisKIHN0cnVjdCBTY3JvbGxSZWN0VG9WaXNpYmxlT3B0aW9u
cyB7CiAgICAgU2VsZWN0aW9uUmV2ZWFsTW9kZSByZXZlYWxNb2RlIHsgU2VsZWN0aW9uUmV2ZWFs
TW9kZTo6UmV2ZWFsIH07CiAgICAgY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBhbGlnblggeyBTY3Jv
bGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOZWVkZWQgfTsKQEAgLTg3MCw3ICs4ODEsOSBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHNldFZpZXdwb3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVh
c29uKFZpZXdwb3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uIHJlYXNvbikgeyBtX3Zp
ZXdwb3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uID0gcmVhc29uOyB9CiAgICAgVmll
d3BvcnRDb25zdHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFzb24gdmlld3BvcnRDb25zdHJhaW5lZE5v
dENvbXBvc2l0ZWRSZWFzb24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxWaWV3cG9ydENv
bnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNvbj4obV92aWV3cG9ydENvbnN0cmFpbmVkTm90Q29t
cG9zaXRlZFJlYXNvbik7IH0KLSAgICAKKworICAgIEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24g
aW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PElu
ZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24+KG1faW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbik7IH0K
KwogICAgIGJvb2wgaXNSZW5kZXJGcmFnbWVudGVkRmxvdygpIGNvbnN0IHsgcmV0dXJuIHJlbmRl
cmVyKCkuaXNSZW5kZXJGcmFnbWVudGVkRmxvdygpOyB9CiAgICAgYm9vbCBpc091dE9mRmxvd1Jl
bmRlckZyYWdtZW50ZWRGbG93KCkgY29uc3QgeyByZXR1cm4gcmVuZGVyZXIoKS5pc091dE9mRmxv
d1JlbmRlckZyYWdtZW50ZWRGbG93KCk7IH0KICAgICBib29sIGlzSW5zaWRlRnJhZ21lbnRlZEZs
b3coKSBjb25zdCB7IHJldHVybiByZW5kZXJlcigpLmZyYWdtZW50ZWRGbG93U3RhdGUoKSAhPSBS
ZW5kZXJPYmplY3Q6Ok5vdEluc2lkZUZyYWdtZW50ZWRGbG93OyB9CkBAIC0xMTU3LDE5ICsxMTcw
LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2V0SGFzQ29tcG9zaXRpbmdEZXNjZW5kYW50KGJv
b2wgYikgIHsgbV9oYXNDb21wb3NpdGluZ0Rlc2NlbmRhbnQgPSBiOyB9CiAgICAgCi0gICAgZW51
bSBjbGFzcyBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uIHsKLSAgICAgICAgTm9uZSwKLSAgICAg
ICAgU3RhY2tpbmcsCi0gICAgICAgIE92ZXJmbG93U2Nyb2xsUG9zaXRpb25pbmcsCi0gICAgICAg
IE92ZXJsYXAsCi0gICAgICAgIEJhY2tncm91bmRMYXllciwKLSAgICAgICAgR3JhcGhpY2FsRWZm
ZWN0LCAvLyBvcGFjaXR5LCBtYXNrLCBmaWx0ZXIsIHRyYW5zZm9ybSBldGMuCi0gICAgICAgIFBl
cnNwZWN0aXZlLAotICAgICAgICBQcmVzZXJ2ZTNECi0gICAgfTsKLSAgICAKICAgICB2b2lkIHNl
dEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24oSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiByZWFz
b24pIHsgbV9pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KHJlYXNvbik7IH0KLSAgICBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uIGluZGlyZWN0Q29tcG9z
aXRpbmdSZWFzb24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxJbmRpcmVjdENvbXBvc2l0
aW5nUmVhc29uPihtX2luZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24pOyB9CiAgICAgYm9vbCBtdXN0
Q29tcG9zaXRlRm9ySW5kaXJlY3RSZWFzb25zKCkgY29uc3QgeyByZXR1cm4gbV9pbmRpcmVjdENv
bXBvc2l0aW5nUmVhc29uOyB9CiAKICAgICBmcmllbmQgY2xhc3MgUmVuZGVyTGF5ZXJCYWNraW5n
OwpAQCAtMTM4Nyw2ICsxMzg4LDcgQEAgYm9vbCBjb21wb3NpdGVkV2l0aE93bkJhY2tpbmdTdG9y
ZShjb25zdCBSZW5kZXJMYXllciYpOwogV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6
VGV4dFN0cmVhbSYsIENsaXBSZWN0c1R5cGUpOwogV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IFJlbmRlckxheWVyJik7CiBXVEY6OlRleHRTdHJlYW0m
IG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgUmVuZGVyTGF5ZXI6OkNsaXBSZWN0
c0NvbnRleHQmKTsKK1dURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0m
LCBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwCmluZGV4IDU4OTdiYWFkMWZhMjVlZjIyMjEyZGQ3ZGExYzM4YWJiNWE1MTE1ZGEuLjA0ODI3
NTcxYTQ2YjBkYWQzMTZkMDQ3NjE2MjgwNWI3ZjNiZDk3YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC04NjIsNyArODYy
LDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1JlcXVp
cmVtZW50cyhSZW5kZXJMYXllciogYW5jZXN0b3IKICAgICBib29sIGJlY2FtZUNvbXBvc2l0ZWRB
ZnRlckRlc2NlbmRhbnRUcmF2ZXJzYWwgPSBmYWxzZTsKIAogICAgIGlmIChsYXllci5uZWVkc1Bv
c3RMYXlvdXRDb21wb3NpdGluZ1VwZGF0ZSgpIHx8IGNvbXBvc2l0aW5nU3RhdGUuZnVsbFBhaW50
T3JkZXJUcmF2ZXJzYWxSZXF1aXJlZCB8fCBjb21wb3NpdGluZ1N0YXRlLmRlc2NlbmRhbnRzUmVx
dWlyZUNvbXBvc2l0aW5nVXBkYXRlKSB7Ci0gICAgICAgIGxheWVyLnNldEluZGlyZWN0Q29tcG9z
aXRpbmdSZWFzb24oUmVuZGVyTGF5ZXI6OkluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb246Ok5vbmUp
OworICAgICAgICBsYXllci5zZXRJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKEluZGlyZWN0Q29t
cG9zaXRpbmdSZWFzb246Ok5vbmUpOwogICAgICAgICB3aWxsQmVDb21wb3NpdGVkID0gbmVlZHNU
b0JlQ29tcG9zaXRlZChsYXllciwgcXVlcnlEYXRhKTsKICAgICB9CiAKQEAgLTg3Nyw3ICs4Nzcs
NyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0aW5nUmVxdWly
ZW1lbnRzKFJlbmRlckxheWVyKiBhbmNlc3RvcgogICAgIGJvb2wgcmVzcGVjdFRyYW5zZm9ybXMg
PSAhbGF5ZXJFeHRlbnQuaGFzVHJhbnNmb3JtQW5pbWF0aW9uOwogICAgIG92ZXJsYXBNYXAuZ2Vv
bWV0cnlNYXAoKS5wdXNoTWFwcGluZ3NUb0FuY2VzdG9yKCZsYXllciwgYW5jZXN0b3JMYXllciwg
cmVzcGVjdFRyYW5zZm9ybXMpOwogCi0gICAgUmVuZGVyTGF5ZXI6OkluZGlyZWN0Q29tcG9zaXRp
bmdSZWFzb24gY29tcG9zaXRpbmdSZWFzb24gPSBjb21wb3NpdGluZ1N0YXRlLnN1YnRyZWVJc0Nv
bXBvc2l0aW5nID8gUmVuZGVyTGF5ZXI6OkluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb246OlN0YWNr
aW5nIDogUmVuZGVyTGF5ZXI6OkluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb246Ok5vbmU7CisgICAg
SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiBjb21wb3NpdGluZ1JlYXNvbiA9IGNvbXBvc2l0aW5n
U3RhdGUuc3VidHJlZUlzQ29tcG9zaXRpbmcgPyBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpT
dGFja2luZyA6IEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb246Ok5vbmU7CiAgICAgYm9vbCBsYXll
clBhaW50c0ludG9Qcm92aWRlZEJhY2tpbmcgPSBmYWxzZTsKIAogICAgIC8vIElmIHdlIGtub3cg
Zm9yIHN1cmUgdGhlIGxheWVyIGlzIGdvaW5nIHRvIGJlIGNvbXBvc2l0ZWQsIGRvbid0IGJvdGhl
ciBsb29raW5nIGl0IHVwIGluIHRoZSBvdmVybGFwIG1hcApAQCAtODg5LDEyICs4ODksMTIgQEAg
dm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVDb21wb3NpdGluZ1JlcXVpcmVtZW50
cyhSZW5kZXJMYXllciogYW5jZXN0b3IKICAgICAgICAgICAgIGlmIChiYWNraW5nU2hhcmluZ1N0
YXRlLmJhY2tpbmdQcm92aWRlckNhbmRpZGF0ZSgpICYmIGNhbkJlQ29tcG9zaXRlZChsYXllcikg
JiYgYmFja2luZ1Byb3ZpZGVyTGF5ZXJDYW5JbmNsdWRlTGF5ZXIoKmJhY2tpbmdTaGFyaW5nU3Rh
dGUuYmFja2luZ1Byb3ZpZGVyQ2FuZGlkYXRlKCksIGxheWVyKSkgewogICAgICAgICAgICAgICAg
IGJhY2tpbmdTaGFyaW5nU3RhdGUuYXBwZW5kU2hhcmluZ0xheWVyKGxheWVyKTsKICAgICAgICAg
ICAgICAgICBMT0coQ29tcG9zaXRpbmcsICIgbGF5ZXIgJXAgY2FuIHNoYXJlIHdpdGggJXAiLCAm
bGF5ZXIsIGJhY2tpbmdTaGFyaW5nU3RhdGUuYmFja2luZ1Byb3ZpZGVyQ2FuZGlkYXRlKCkpOwot
ICAgICAgICAgICAgICAgIGNvbXBvc2l0aW5nUmVhc29uID0gUmVuZGVyTGF5ZXI6OkluZGlyZWN0
Q29tcG9zaXRpbmdSZWFzb246Ok5vbmU7CisgICAgICAgICAgICAgICAgY29tcG9zaXRpbmdSZWFz
b24gPSBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpOb25lOwogICAgICAgICAgICAgICAgIGxh
eWVyUGFpbnRzSW50b1Byb3ZpZGVkQmFja2luZyA9IHRydWU7CiAgICAgICAgICAgICB9IGVsc2UK
LSAgICAgICAgICAgICAgICBjb21wb3NpdGluZ1JlYXNvbiA9IFJlbmRlckxheWVyOjpJbmRpcmVj
dENvbXBvc2l0aW5nUmVhc29uOjpPdmVybGFwOworICAgICAgICAgICAgICAgIGNvbXBvc2l0aW5n
UmVhc29uID0gSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjo6T3ZlcmxhcDsKICAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICBjb21wb3NpdGluZ1JlYXNvbiA9IFJlbmRlckxheWVyOjpJbmRpcmVj
dENvbXBvc2l0aW5nUmVhc29uOjpOb25lOworICAgICAgICAgICAgY29tcG9zaXRpbmdSZWFzb24g
PSBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpOb25lOwogICAgIH0KIAogI2lmIEVOQUJMRShW
SURFTykKQEAgLTkwMywxNCArOTAzLDE1IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpj
b21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGFuY2VzdG9yCiAgICAg
Ly8gaW50by4gVGhlc2UgY2hpbGRyZW4gKHRoZSBjb250cm9scykgYWx3YXlzIG5lZWQgdG8gYmUg
cHJvbW90ZWQgaW50byB0aGVpcgogICAgIC8vIG93biBsYXllcnMgdG8gZHJhdyBvbiB0b3Agb2Yg
dGhlIGFjY2VsZXJhdGVkIHZpZGVvLgogICAgIGlmIChjb21wb3NpdGluZ1N0YXRlLmNvbXBvc2l0
aW5nQW5jZXN0b3IgJiYgY29tcG9zaXRpbmdTdGF0ZS5jb21wb3NpdGluZ0FuY2VzdG9yLT5yZW5k
ZXJlcigpLmlzVmlkZW8oKSkKLSAgICAgICAgY29tcG9zaXRpbmdSZWFzb24gPSBSZW5kZXJMYXll
cjo6SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjo6T3ZlcmxhcDsKKyAgICAgICAgY29tcG9zaXRp
bmdSZWFzb24gPSBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpPdmVybGFwOwogI2VuZGlmCiAK
LSAgICBpZiAoY29tcG9zaXRpbmdSZWFzb24gIT0gUmVuZGVyTGF5ZXI6OkluZGlyZWN0Q29tcG9z
aXRpbmdSZWFzb246Ok5vbmUpCisgICAgaWYgKGNvbXBvc2l0aW5nUmVhc29uICE9IEluZGlyZWN0
Q29tcG9zaXRpbmdSZWFzb246Ok5vbmUpCiAgICAgICAgIGxheWVyLnNldEluZGlyZWN0Q29tcG9z
aXRpbmdSZWFzb24oY29tcG9zaXRpbmdSZWFzb24pOwogCiAgICAgLy8gQ2hlY2sgaWYgdGhlIGNv
bXB1dGVkIGluZGlyZWN0IHJlYXNvbiB3aWxsIGZvcmNlIHRoZSBsYXllciB0byBiZWNvbWUgY29t
cG9zaXRlZC4KICAgICBpZiAoIXdpbGxCZUNvbXBvc2l0ZWQgJiYgbGF5ZXIubXVzdENvbXBvc2l0
ZUZvckluZGlyZWN0UmVhc29ucygpICYmIGNhbkJlQ29tcG9zaXRlZChsYXllcikpIHsKKyAgICAg
ICAgTE9HX1dJVEhfU1RSRUFNKENvbXBvc2l0aW5nLCBzdHJlYW0gPDwgImxheWVyICIgPDwgJmxh
eWVyIDw8ICIgY29tcG9zaXRpbmcgZm9yIGluZGlyZWN0IHJlYXNvbiAiIDw8IGxheWVyLmluZGly
ZWN0Q29tcG9zaXRpbmdSZWFzb24oKSA8PCAiICh3YXMgc2hhcmluZzogIiA8PCBsYXllclBhaW50
c0ludG9Qcm92aWRlZEJhY2tpbmcgPDwgIikiKTsKICAgICAgICAgd2lsbEJlQ29tcG9zaXRlZCA9
IHRydWU7CiAgICAgICAgIGxheWVyUGFpbnRzSW50b1Byb3ZpZGVkQmFja2luZyA9IGZhbHNlOwog
ICAgIH0KQEAgLTkyNywxMyArOTI4LDE4IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpj
b21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGFuY2VzdG9yCiAgICAg
ICAgIC8vIFRoaXMgbGF5ZXIgbm93IGFjdHMgYXMgdGhlIGFuY2VzdG9yIGZvciBraWRzLgogICAg
ICAgICBjdXJyZW50U3RhdGUuY29tcG9zaXRpbmdBbmNlc3RvciA9ICZsYXllcjsKICAgICAgICAg
Ci0gICAgICAgIGlmICghbGF5ZXJQYWludHNJbnRvUHJvdmlkZWRCYWNraW5nKSB7CisgICAgICAg
IGlmIChsYXllclBhaW50c0ludG9Qcm92aWRlZEJhY2tpbmcpIHsKKyAgICAgICAgICAgIGxheWVy
UGFpbnRzSW50b1Byb3ZpZGVkQmFja2luZyA9IGZhbHNlOworICAgICAgICAgICAgLy8gbGF5ZXJQ
YWludHNJbnRvUHJvdmlkZWRCYWNraW5nIHdhcyBvbmx5IHRydWUgZm9yIGxheWVycyB0aGF0IHdv
dWxkIG90aGVyd2lzZSBjb21wb3NpdGUgYmVjYXVzZSBvZiBvdmVybGFwLiBJZiB3ZSBjYW4KKyAg
ICAgICAgICAgIC8vIG5vIGxvbmdlciBzaGFyZSwgcHV0IHRoaXMgdGhpcyBpbmRpcmVjdCByZWFz
b24gYmFjayBvbiB0aGUgbGF5ZXIgc28gdGhhdCByZXF1aXJlc093bkJhY2tpbmdTdG9yZSgpIHNl
ZXMgaXQuCisgICAgICAgICAgICBsYXllci5zZXRJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKElu
ZGlyZWN0Q29tcG9zaXRpbmdSZWFzb246Ok92ZXJsYXApOworICAgICAgICAgICAgTE9HX1dJVEhf
U1RSRUFNKENvbXBvc2l0aW5nT3ZlcmxhcCwgc3RyZWFtIDw8ICJsYXllciAiIDw8ICZsYXllciA8
PCAiIHdhcyBzaGFyaW5nIG5vdyB3aWxsIGNvbXBvc2l0ZSIpOworICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgb3ZlcmxhcE1hcC5wdXNoQ29tcG9zaXRpbmdDb250YWluZXIoKTsKICAgICAg
ICAgICAgIExPR19XSVRIX1NUUkVBTShDb21wb3NpdGluZ092ZXJsYXAsIHN0cmVhbSA8PCAibGF5
ZXIgIiA8PCAmbGF5ZXIgPDwgIiB3aWxsIGNvbXBvc2l0ZSwgcHVzaGVkIGNvbnRhaW5lciAiIDw8
IG92ZXJsYXBNYXApOwogICAgICAgICB9CiAKICAgICAgICAgd2lsbEJlQ29tcG9zaXRlZCA9IHRy
dWU7Ci0gICAgICAgIGxheWVyUGFpbnRzSW50b1Byb3ZpZGVkQmFja2luZyA9IGZhbHNlOwogICAg
IH07CiAKICAgICBhdXRvIGxheWVyV2lsbENvbXBvc2l0ZVBvc3REZXNjZW5kYW50cyA9IFsmXSB7
CkBAIC05NzEsNyArOTc3LDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVD
b21wb3NpdGluZ1JlcXVpcmVtZW50cyhSZW5kZXJMYXllciogYW5jZXN0b3IKICAgICAgICAgLy8g
KHNpbmNlIHdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgdGhlIC12ZSB6LW9yZGVyIGNoaWxkIHJlbmRl
cnMgdW5kZXJuZWF0aCBvdXIgY29udGVudHMpLgogICAgICAgICBpZiAoIXdpbGxCZUNvbXBvc2l0
ZWQgJiYgY3VycmVudFN0YXRlLnN1YnRyZWVJc0NvbXBvc2l0aW5nKSB7CiAgICAgICAgICAgICAv
LyBtYWtlIGxheWVyIGNvbXBvc2l0aW5nCi0gICAgICAgICAgICBsYXllci5zZXRJbmRpcmVjdENv
bXBvc2l0aW5nUmVhc29uKFJlbmRlckxheWVyOjpJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpC
YWNrZ3JvdW5kTGF5ZXIpOworICAgICAgICAgICAgbGF5ZXIuc2V0SW5kaXJlY3RDb21wb3NpdGlu
Z1JlYXNvbihJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpCYWNrZ3JvdW5kTGF5ZXIpOwogICAg
ICAgICAgICAgbGF5ZXJXaWxsQ29tcG9zaXRlKCk7CiAgICAgICAgIH0KICAgICB9CkBAIC05OTks
NyArMTAwNSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRp
bmdSZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGFuY2VzdG9yCiAgICAgQVNTRVJUKCFsYXllci5o
YXNOb3RJc29sYXRlZENvbXBvc2l0ZWRCbGVuZGluZ0Rlc2NlbmRhbnRzKCkgfHwgbGF5ZXIuaGFz
Tm90SXNvbGF0ZWRCbGVuZGluZ0Rlc2NlbmRhbnRzKCkpOwogI2VuZGlmCiAgICAgLy8gTm93IGNo
ZWNrIGZvciByZWFzb25zIHRvIGJlY29tZSBjb21wb3NpdGVkIHRoYXQgZGVwZW5kIG9uIHRoZSBz
dGF0ZSBvZiBkZXNjZW5kYW50IGxheWVycy4KLSAgICBSZW5kZXJMYXllcjo6SW5kaXJlY3RDb21w
b3NpdGluZ1JlYXNvbiBpbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOworICAgIEluZGlyZWN0Q29t
cG9zaXRpbmdSZWFzb24gaW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjsKICAgICBpZiAoIXdpbGxC
ZUNvbXBvc2l0ZWQgJiYgY2FuQmVDb21wb3NpdGVkKGxheWVyKQogICAgICAgICAmJiByZXF1aXJl
c0NvbXBvc2l0aW5nRm9ySW5kaXJlY3RSZWFzb24obGF5ZXIsIGNvbXBvc2l0aW5nU3RhdGUuY29t
cG9zaXRpbmdBbmNlc3RvciwgY3VycmVudFN0YXRlLnN1YnRyZWVJc0NvbXBvc2l0aW5nLCBhbnlE
ZXNjZW5kYW50SGFzM0RUcmFuc2Zvcm0sIGxheWVyUGFpbnRzSW50b1Byb3ZpZGVkQmFja2luZywg
aW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbikpIHsKICAgICAgICAgbGF5ZXIuc2V0SW5kaXJlY3RD
b21wb3NpdGluZ1JlYXNvbihpbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKTsKQEAgLTEwMDgsNyAr
MTAxNCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdS
ZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGFuY2VzdG9yCiAgICAgCiAgICAgaWYgKGxheWVyLnJl
ZmxlY3Rpb25MYXllcigpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBTaG91bGRuJ3Qgd2UgY2FsbCBj
b21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMgdG8gaGFuZGxlIGEgcmVmbGVjdGlvbiBvdmVy
bGFwcGluZyB3aXRoIGFub3RoZXIgcmVuZGVyZXI/Ci0gICAgICAgIGxheWVyLnJlZmxlY3Rpb25M
YXllcigpLT5zZXRJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKHdpbGxCZUNvbXBvc2l0ZWQgPyBS
ZW5kZXJMYXllcjo6SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjo6U3RhY2tpbmcgOiBSZW5kZXJM
YXllcjo6SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjo6Tm9uZSk7CisgICAgICAgIGxheWVyLnJl
ZmxlY3Rpb25MYXllcigpLT5zZXRJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKHdpbGxCZUNvbXBv
c2l0ZWQgPyBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpTdGFja2luZyA6IEluZGlyZWN0Q29t
cG9zaXRpbmdSZWFzb246Ok5vbmUpOwogICAgIH0KIAogICAgIC8vIFNldCB0aGUgZmxhZyB0byBz
YXkgdGhhdCB0aGlzIGxheWVyIGhhcyBjb21wb3NpdGluZyBjaGlsZHJlbi4KQEAgLTE1ODMsNyAr
MTU4OSw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVCYWNraW5nKFJlbmRl
ckxheWVyJiBsYXllciwgUmVxdWlyZXNDb21wb3NpdGluCiAgICAgICAgIGlmICghbGF5ZXIuYmFj
a2luZygpKSB7CiAgICAgICAgICAgICAvLyBJZiB3ZSBuZWVkIHRvIHJlcGFpbnQsIGRvIHNvIGJl
Zm9yZSBtYWtpbmcgYmFja2luZwogICAgICAgICAgICAgaWYgKHNob3VsZFJlcGFpbnQgPT0gQ29t
cG9zaXRpbmdDaGFuZ2VSZXBhaW50Tm93KQotICAgICAgICAgICAgICAgIHJlcGFpbnRPbkNvbXBv
c2l0aW5nQ2hhbmdlKGxheWVyKTsKKyAgICAgICAgICAgICAgICByZXBhaW50T25Db21wb3NpdGlu
Z0NoYW5nZShsYXllcik7IC8vIHdyb25nIGJhY2tpbmcKIAogICAgICAgICAgICAgbGF5ZXIuZW5z
dXJlQmFja2luZygpOwogCkBAIC0yMjgyLDEzICsyMjg4LDEzIEBAIGJvb2wgUmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjpyZXF1aXJlc093bkJhY2tpbmdTdG9yZShjb25zdCBSZW5kZXJMYXllciYgbGF5
ZXIsIGNvCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgaWYgKGxheWVyLm11c3RDb21wb3Np
dGVGb3JJbmRpcmVjdFJlYXNvbnMoKSkgewotICAgICAgICBSZW5kZXJMYXllcjo6SW5kaXJlY3RD
b21wb3NpdGluZ1JlYXNvbiByZWFzb24gPSBsYXllci5pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29u
KCk7Ci0gICAgICAgIHJldHVybiByZWFzb24gPT0gUmVuZGVyTGF5ZXI6OkluZGlyZWN0Q29tcG9z
aXRpbmdSZWFzb246Ok92ZXJsYXAKLSAgICAgICAgICAgIHx8IHJlYXNvbiA9PSBSZW5kZXJMYXll
cjo6SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjo6T3ZlcmZsb3dTY3JvbGxQb3NpdGlvbmluZwot
ICAgICAgICAgICAgfHwgcmVhc29uID09IFJlbmRlckxheWVyOjpJbmRpcmVjdENvbXBvc2l0aW5n
UmVhc29uOjpTdGFja2luZwotICAgICAgICAgICAgfHwgcmVhc29uID09IFJlbmRlckxheWVyOjpJ
bmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpCYWNrZ3JvdW5kTGF5ZXIKLSAgICAgICAgICAgIHx8
IHJlYXNvbiA9PSBSZW5kZXJMYXllcjo6SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjo6R3JhcGhp
Y2FsRWZmZWN0Ci0gICAgICAgICAgICB8fCByZWFzb24gPT0gUmVuZGVyTGF5ZXI6OkluZGlyZWN0
Q29tcG9zaXRpbmdSZWFzb246OlByZXNlcnZlM0Q7IC8vIHByZXNlcnZlLTNkIGhhcyB0byBjcmVh
dGUgYmFja2luZyBzdG9yZSB0byBlbnN1cmUgdGhhdCAzZC10cmFuc2Zvcm1lZCBlbGVtZW50cyBp
bnRlcnNlY3QuCisgICAgICAgIEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24gcmVhc29uID0gbGF5
ZXIuaW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbigpOworICAgICAgICByZXR1cm4gcmVhc29uID09
IEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb246Ok92ZXJsYXAKKyAgICAgICAgICAgIHx8IHJlYXNv
biA9PSBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpPdmVyZmxvd1Njcm9sbFBvc2l0aW9uaW5n
CisgICAgICAgICAgICB8fCByZWFzb24gPT0gSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjo6U3Rh
Y2tpbmcKKyAgICAgICAgICAgIHx8IHJlYXNvbiA9PSBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29u
OjpCYWNrZ3JvdW5kTGF5ZXIKKyAgICAgICAgICAgIHx8IHJlYXNvbiA9PSBJbmRpcmVjdENvbXBv
c2l0aW5nUmVhc29uOjpHcmFwaGljYWxFZmZlY3QKKyAgICAgICAgICAgIHx8IHJlYXNvbiA9PSBJ
bmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpQcmVzZXJ2ZTNEOyAvLyBwcmVzZXJ2ZS0zZCBoYXMg
dG8gY3JlYXRlIGJhY2tpbmcgc3RvcmUgdG8gZW5zdXJlIHRoYXQgM2QtdHJhbnNmb3JtZWQgZWxl
bWVudHMgaW50ZXJzZWN0LgogICAgIH0KIAogICAgIGlmICghYW5jZXN0b3JDb21wb3NpdGVkQm91
bmRzLmNvbnRhaW5zKGxheWVyQ29tcG9zaXRlZEJvdW5kc0luQW5jZXN0b3IpKQpAQCAtMjM0Nywy
MSArMjM1MywyMSBAQCBPcHRpb25TZXQ8Q29tcG9zaXRpbmdSZWFzb24+IFJlbmRlckxheWVyQ29t
cG9zaXRvcjo6cmVhc29uc0ZvckNvbXBvc2l0aW5nKGNvbnN0CiAgICAgICAgIHJlYXNvbnMuYWRk
KENvbXBvc2l0aW5nUmVhc29uOjpPdmVyZmxvd1Njcm9sbGluZyk7CiAKICAgICBzd2l0Y2ggKHJl
bmRlcmVyLmxheWVyKCktPmluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24oKSkgewotICAgIGNhc2Ug
UmVuZGVyTGF5ZXI6OkluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb246Ok5vbmU6CisgICAgY2FzZSBJ
bmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpOb25lOgogICAgICAgICBicmVhazsKLSAgICBjYXNl
IFJlbmRlckxheWVyOjpJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpTdGFja2luZzoKKyAgICBj
YXNlIEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb246OlN0YWNraW5nOgogICAgICAgICByZWFzb25z
LmFkZChDb21wb3NpdGluZ1JlYXNvbjo6U3RhY2tpbmcpOwogICAgICAgICBicmVhazsKLSAgICBj
YXNlIFJlbmRlckxheWVyOjpJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpPdmVyZmxvd1Njcm9s
bFBvc2l0aW9uaW5nOgorICAgIGNhc2UgSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjo6T3ZlcmZs
b3dTY3JvbGxQb3NpdGlvbmluZzoKICAgICAgICAgcmVhc29ucy5hZGQoQ29tcG9zaXRpbmdSZWFz
b246Ok92ZXJmbG93U2Nyb2xsUG9zaXRpb25pbmcpOwogICAgICAgICBicmVhazsKLSAgICBjYXNl
IFJlbmRlckxheWVyOjpJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpPdmVybGFwOgorICAgIGNh
c2UgSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjo6T3ZlcmxhcDoKICAgICAgICAgcmVhc29ucy5h
ZGQoQ29tcG9zaXRpbmdSZWFzb246Ok92ZXJsYXApOwogICAgICAgICBicmVhazsKLSAgICBjYXNl
IFJlbmRlckxheWVyOjpJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpCYWNrZ3JvdW5kTGF5ZXI6
CisgICAgY2FzZSBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpCYWNrZ3JvdW5kTGF5ZXI6CiAg
ICAgICAgIHJlYXNvbnMuYWRkKENvbXBvc2l0aW5nUmVhc29uOjpOZWdhdGl2ZVpJbmRleENoaWxk
cmVuKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBSZW5kZXJMYXllcjo6SW5kaXJlY3RDb21w
b3NpdGluZ1JlYXNvbjo6R3JhcGhpY2FsRWZmZWN0OgorICAgIGNhc2UgSW5kaXJlY3RDb21wb3Np
dGluZ1JlYXNvbjo6R3JhcGhpY2FsRWZmZWN0OgogICAgICAgICBpZiAocmVuZGVyZXIuaGFzVHJh
bnNmb3JtKCkpCiAgICAgICAgICAgICByZWFzb25zLmFkZChDb21wb3NpdGluZ1JlYXNvbjo6VHJh
bnNmb3JtV2l0aENvbXBvc2l0ZWREZXNjZW5kYW50cyk7CiAKQEAgLTIzODUsMTAgKzIzOTEsMTAg
QEAgT3B0aW9uU2V0PENvbXBvc2l0aW5nUmVhc29uPiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJl
YXNvbnNGb3JDb21wb3NpdGluZyhjb25zdAogICAgICAgICAgICAgcmVhc29ucy5hZGQoQ29tcG9z
aXRpbmdSZWFzb246OkJsZW5kaW5nV2l0aENvbXBvc2l0ZWREZXNjZW5kYW50cyk7CiAjZW5kaWYK
ICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBSZW5kZXJMYXllcjo6SW5kaXJlY3RDb21wb3NpdGlu
Z1JlYXNvbjo6UGVyc3BlY3RpdmU6CisgICAgY2FzZSBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29u
OjpQZXJzcGVjdGl2ZToKICAgICAgICAgcmVhc29ucy5hZGQoQ29tcG9zaXRpbmdSZWFzb246OlBl
cnNwZWN0aXZlKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBSZW5kZXJMYXllcjo6SW5kaXJl
Y3RDb21wb3NpdGluZ1JlYXNvbjo6UHJlc2VydmUzRDoKKyAgICBjYXNlIEluZGlyZWN0Q29tcG9z
aXRpbmdSZWFzb246OlByZXNlcnZlM0Q6CiAgICAgICAgIHJlYXNvbnMuYWRkKENvbXBvc2l0aW5n
UmVhc29uOjpQcmVzZXJ2ZTNEKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMjgyOSwxMyAr
MjgzNSwxMyBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGlu
Z0Zvck92ZXJmbG93U2Nyb2xsaW5nKGNvbnN0IFJlbmRlcgogfQogCiAvLyBGSVhNRTogd2h5IGRv
ZXNuJ3QgdGhpcyBoYW5kbGUgdGhlIGNsaXBwaW5nIGNhc2VzPwotYm9vbCBSZW5kZXJMYXllckNv
bXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JJbmRpcmVjdFJlYXNvbihjb25zdCBSZW5k
ZXJMYXllciYgbGF5ZXIsIGNvbnN0IFJlbmRlckxheWVyKiBjb21wb3NpdGluZ0FuY2VzdG9yLCBi
b29sIGhhc0NvbXBvc2l0ZWREZXNjZW5kYW50cywgYm9vbCBoYXMzRFRyYW5zZm9ybWVkRGVzY2Vu
ZGFudHMsIGJvb2wgcGFpbnRzSW50b1Byb3ZpZGVkQmFja2luZywgUmVuZGVyTGF5ZXI6OkluZGly
ZWN0Q29tcG9zaXRpbmdSZWFzb24mIHJlYXNvbikgY29uc3QKK2Jvb2wgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9ySW5kaXJlY3RSZWFzb24oY29uc3QgUmVuZGVy
TGF5ZXImIGxheWVyLCBjb25zdCBSZW5kZXJMYXllciogY29tcG9zaXRpbmdBbmNlc3RvciwgYm9v
bCBoYXNDb21wb3NpdGVkRGVzY2VuZGFudHMsIGJvb2wgaGFzM0RUcmFuc2Zvcm1lZERlc2NlbmRh
bnRzLCBib29sIHBhaW50c0ludG9Qcm92aWRlZEJhY2tpbmcsIEluZGlyZWN0Q29tcG9zaXRpbmdS
ZWFzb24mIHJlYXNvbikgY29uc3QKIHsKICAgICAvLyBXaGVuIGEgbGF5ZXIgaGFzIGNvbXBvc2l0
ZWQgZGVzY2VuZGFudHMsIHNvbWUgZWZmZWN0cywgbGlrZSAyZCB0cmFuc2Zvcm1zLCBmaWx0ZXJz
LCBtYXNrcyBldGMgbXVzdCBiZSBpbXBsZW1lbnRlZAogICAgIC8vIHZpYSBjb21wb3NpdGluZyBz
byB0aGF0IHRoZXkgYWxzbyBhcHBseSB0byB0aG9zZSBjb21wb3NpdGVkIGRlc2NlbmRhbnRzLgog
ICAgIGF1dG8mIHJlbmRlcmVyID0gbGF5ZXIucmVuZGVyZXIoKTsKICAgICBpZiAoaGFzQ29tcG9z
aXRlZERlc2NlbmRhbnRzICYmIChsYXllci5pc29sYXRlc0NvbXBvc2l0ZWRCbGVuZGluZygpIHx8
IGxheWVyLnRyYW5zZm9ybSgpIHx8IHJlbmRlcmVyLmNyZWF0ZXNHcm91cCgpIHx8IHJlbmRlcmVy
Lmhhc1JlZmxlY3Rpb24oKSkpIHsKLSAgICAgICAgcmVhc29uID0gUmVuZGVyTGF5ZXI6OkluZGly
ZWN0Q29tcG9zaXRpbmdSZWFzb246OkdyYXBoaWNhbEVmZmVjdDsKKyAgICAgICAgcmVhc29uID0g
SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjo6R3JhcGhpY2FsRWZmZWN0OwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTI4NDMsMjQgKzI4NDksMjQgQEAgYm9vbCBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JJbmRpcmVjdFJlYXNvbihjb25zdCBS
ZW5kZXJMYXkKICAgICAvLyB3aWxsIGJlIGFmZmVjdGVkIGJ5IHRoZSBwcmVzZXJ2ZS0zZCBvciBw
ZXJzcGVjdGl2ZS4KICAgICBpZiAoaGFzM0RUcmFuc2Zvcm1lZERlc2NlbmRhbnRzKSB7CiAgICAg
ICAgIGlmIChyZW5kZXJlci5zdHlsZSgpLnRyYW5zZm9ybVN0eWxlM0QoKSA9PSBUcmFuc2Zvcm1T
dHlsZTNEOjpQcmVzZXJ2ZTNEKSB7Ci0gICAgICAgICAgICByZWFzb24gPSBSZW5kZXJMYXllcjo6
SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjo6UHJlc2VydmUzRDsKKyAgICAgICAgICAgIHJlYXNv
biA9IEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb246OlByZXNlcnZlM0Q7CiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIAogICAgICAgICBpZiAocmVuZGVyZXIuc3R5bGUo
KS5oYXNQZXJzcGVjdGl2ZSgpKSB7Ci0gICAgICAgICAgICByZWFzb24gPSBSZW5kZXJMYXllcjo6
SW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbjo6UGVyc3BlY3RpdmU7CisgICAgICAgICAgICByZWFz
b24gPSBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpQZXJzcGVjdGl2ZTsKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKCFwYWludHNJbnRvUHJv
dmlkZWRCYWNraW5nICYmIHJlbmRlcmVyLmlzQWJzb2x1dGVseVBvc2l0aW9uZWQoKSAmJiBjb21w
b3NpdGluZ0FuY2VzdG9yICYmIGxheWVyLmhhc0NvbXBvc2l0ZWRTY3JvbGxpbmdBbmNlc3Rvcigp
KSB7CiAgICAgICAgIGlmIChsYXllckNvbnRhaW5pbmdCbG9ja0Nyb3NzZXNDb29yZGluYXRlZFNj
cm9sbGluZ0JvdW5kYXJ5KGxheWVyLCAqY29tcG9zaXRpbmdBbmNlc3RvcikpIHsKLSAgICAgICAg
ICAgIHJlYXNvbiA9IFJlbmRlckxheWVyOjpJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOjpPdmVy
Zmxvd1Njcm9sbFBvc2l0aW9uaW5nOworICAgICAgICAgICAgcmVhc29uID0gSW5kaXJlY3RDb21w
b3NpdGluZ1JlYXNvbjo6T3ZlcmZsb3dTY3JvbGxQb3NpdGlvbmluZzsKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQogCi0gICAgcmVhc29uID0gUmVuZGVyTGF5ZXI6
OkluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb246Ok5vbmU7CisgICAgcmVhc29uID0gSW5kaXJlY3RD
b21wb3NpdGluZ1JlYXNvbjo6Tm9uZTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCBmNTE2
YjgzMGVkNTJkM2Y4ZGY1NmM3ZjlhMDZiOWE1ZDQxMjQzMjQ0Li4zYmMyMzU5MDkzMTYwNTM2NmZk
NzA0OTAwZDBjNTRhMWNjZDk1OWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC00NzgsNyArNDc4LDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JQb3NpdGlvbihSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0JiwgY29uc3QgUmVuZGVyTGF5ZXImLCBSZXF1aXJlc0NvbXBvc2l0aW5nRGF0YSYpIGNvbnN0
OwogICAgIGJvb2wgcmVxdWlyZXNDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsaW5nKGNvbnN0
IFJlbmRlckxheWVyJiwgUmVxdWlyZXNDb21wb3NpdGluZ0RhdGEmKSBjb25zdDsKICAgICBib29s
IHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JFZGl0YWJsZUltYWdlKFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QmKSBjb25zdDsKLSAgICBib29sIHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JJbmRpcmVjdFJlYXNv
bihjb25zdCBSZW5kZXJMYXllciYsIGNvbnN0IFJlbmRlckxheWVyKiBjb21wb3NpdGluZ0FuY2Vz
dG9yLCBib29sIGhhc0NvbXBvc2l0ZWREZXNjZW5kYW50cywgYm9vbCBoYXMzRFRyYW5zZm9ybWVk
RGVzY2VuZGFudHMsIGJvb2wgcGFpbnRzSW50b1Byb3ZpZGVkQmFja2luZywgUmVuZGVyTGF5ZXI6
OkluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24mKSBjb25zdDsKKyAgICBib29sIHJlcXVpcmVzQ29t
cG9zaXRpbmdGb3JJbmRpcmVjdFJlYXNvbihjb25zdCBSZW5kZXJMYXllciYsIGNvbnN0IFJlbmRl
ckxheWVyKiBjb21wb3NpdGluZ0FuY2VzdG9yLCBib29sIGhhc0NvbXBvc2l0ZWREZXNjZW5kYW50
cywgYm9vbCBoYXMzRFRyYW5zZm9ybWVkRGVzY2VuZGFudHMsIGJvb2wgcGFpbnRzSW50b1Byb3Zp
ZGVkQmFja2luZywgSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiYpIGNvbnN0OwogCiAgICAgc3Rh
dGljIGJvb2wgbGF5ZXJDb250YWluaW5nQmxvY2tDcm9zc2VzQ29vcmRpbmF0ZWRTY3JvbGxpbmdC
b3VuZGFyeShjb25zdCBSZW5kZXJMYXllciYsIGNvbnN0IFJlbmRlckxheWVyJiBjb21wb3NpdGVk
QW5jZXN0b3IpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWQyY2JiNDQ2MzEyYWIzZmM0MzFiYzAxMzA3Zjk3Zjk5NmU0
ZWU3Zi4uMzQyOTJlMjI2NTgyMTgzOWVjNWZlM2FjZGJjYzgwODc1ZjdiMGM4ZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDE5LTA1LTE3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyNDUxNzApOiBnbWFpbC5jb20gaW5ib3gg
dGFibGUgaGVhZGVyIGZsaWNrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTgwMDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUwOTA3NzE4Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY29tcG9z
aXRpbmcvc2hhcmVkLWJhY2tpbmcvb3ZlcmxhcC1hZnRlci1lbmQtc2hhcmluZy1leHBlY3RlZC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9zaGFyZWQtYmFja2luZy9vdmVybGFw
LWFmdGVyLWVuZC1zaGFyaW5nLmh0bWw6IEFkZGVkLgorCiAyMDE5LTA1LTE3ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNDUx
NzApOiBnbWFpbC5jb20gaGVhZGVyIGZsaWNrZXJzIHdoZW4gaG92ZXJpbmcgb3ZlciB0aGUgYW5p
bWF0aW5nIGJ1dHRvbnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3NoYXJl
ZC1iYWNraW5nL292ZXJsYXAtYWZ0ZXItZW5kLXNoYXJpbmctZXhwZWN0ZWQuaHRtbCBiL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL3NoYXJlZC1iYWNraW5nL292ZXJsYXAtYWZ0ZXItZW5kLXNoYXJp
bmctZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Njc1ZTE4MGU4NThhNmIwYTYyYTNhNjZkYzI5
NTJjMmQ5ZDZiNDFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
c2hhcmVkLWJhY2tpbmcvb3ZlcmxhcC1hZnRlci1lbmQtc2hhcmluZy1leHBlY3RlZC5odG1sCkBA
IC0wLDAgKzEsNjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKwk8c3R5bGU+
CisJCWJvZHkgeworCQkJbWFyZ2luOiAwOworCQl9CisJCS5iYWNrZHJvcCB7CisJCQlwb3NpdGlv
bjogZml4ZWQ7CisJCQl0b3A6IDEwcHg7CisJCQlsZWZ0OiAxMHB4OworCQkJd2lkdGg6IDUwMHB4
OworCQkJaGVpZ2h0OiAzMDBweDsKKwkJCWJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKKwkJfQor
CQkKKwkJLmNvbnRhaW5lciB7CisJCQlwb3NpdGlvbjogcmVsYXRpdmU7CisJCQl0b3A6IDIwcHg7
CisJCQlsZWZ0OiAyMHB4OworCQkJd2lkdGg6IDQ4MHB4OworCQkJaGVpZ2h0OiAyODBweDsKKwkJ
CWJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworCQkJcGFkZGluZzogMTBweDsKKwkJCWJveC1zaXpp
bmc6IGJvcmRlci1ib3g7CisJCX0KKwkJCisJCS5oZWFkZXIgeworCQkJcG9zaXRpb246IHJlbGF0
aXZlOworCQkJei1pbmRleDogMTsKKwkJCW92ZXJmbG93OiBoaWRkZW47CisJCQl3aWR0aDogNDYw
cHg7CisJCQloZWlnaHQ6IDI2MHB4OworCQkJYmFja2dyb3VuZC1jb2xvcjogbGlnaHRibHVlOwor
CQl9CisKKwkJLnRhcmdldCB7CisJCQlwb3NpdGlvbjogcmVsYXRpdmU7CisJCQl0b3A6IDEwcHg7
CisJCQlsZWZ0OiAxMHB4OworCQkJd2lkdGg6IDIwMHB4OworCQkJaGVpZ2h0OiAxMDBweDsKKwkJ
CWJhY2tncm91bmQtY29sb3I6IGdyZWVuOworCQl9CisJCQorCQkuYW5pbWF0aW5nIHsKKwkJCXBv
c2l0aW9uOiByZWxhdGl2ZTsKKwkJCWJhY2tncm91bmQtY29sb3I6IG9yYW5nZTsKKwkJCW9wYWNp
dHk6IDAuNjsKKwkJCXRvcDogMjBweDsKKwkJCWxlZnQ6IDI1MHB4OworCQkJd2lkdGg6IDE4MHB4
OworCQkJaGVpZ2h0OiAxMDBweDsKKwkJCXBhZGRpbmc6IDEwcHg7CisJCX0KKwk8L3N0eWxlPgor
PC9oZWFkPgorPGJvZHk+CisJPGRpdiBjbGFzcz0iYmFja2Ryb3AiPjwvZGl2PgorCTxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisJCTxkaXYgY2xhc3M9ImhlYWRlciI+CisJCQk8ZGl2IGNsYXNzPSJ0
YXJnZXQiPjwvZGl2PgorCQkJPGRpdiBjbGFzcz0iYW5pbWF0aW5nIj48L2Rpdj4KKwkJPC9kaXY+
CisJPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9zaGFyZWQtYmFja2luZy9vdmVybGFwLWFmdGVyLWVuZC1zaGFyaW5nLmh0bWwgYi9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9zaGFyZWQtYmFja2luZy9vdmVybGFwLWFmdGVyLWVuZC1z
aGFyaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWEzMjliZTIwNGI2NzgwMjc5NDJmMzBjYmVlZDZkNTc4
YjJiZjBhYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3NoYXJl
ZC1iYWNraW5nL292ZXJsYXAtYWZ0ZXItZW5kLXNoYXJpbmcuaHRtbApAQCAtMCwwICsxLDg1IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisJPHN0eWxlPgorCQlib2R5IHsKKwkJ
CW1hcmdpbjogMDsKKwkJfQorCQkuYmFja2Ryb3AgeworCQkJcG9zaXRpb246IGZpeGVkOworCQkJ
dG9wOiAxMHB4OworCQkJbGVmdDogMTBweDsKKwkJCXdpZHRoOiA1MDBweDsKKwkJCWhlaWdodDog
MzAwcHg7CisJCQliYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7CisJCX0KKwkJCisJCS5jb250YWlu
ZXIgeworCQkJcG9zaXRpb246IHJlbGF0aXZlOworCQkJdG9wOiAyMHB4OworCQkJbGVmdDogMjBw
eDsKKwkJCXdpZHRoOiA0ODBweDsKKwkJCWhlaWdodDogMjgwcHg7CisJCQlib3JkZXI6IDFweCBz
b2xpZCBibGFjazsKKwkJCXBhZGRpbmc6IDEwcHg7CisJCQlib3gtc2l6aW5nOiBib3JkZXItYm94
OworCQl9CisJCQorCQkuaGVhZGVyIHsKKwkJCXBvc2l0aW9uOiByZWxhdGl2ZTsKKwkJCXotaW5k
ZXg6IDE7CisJCQlvdmVyZmxvdzogaGlkZGVuOworCQkJd2lkdGg6IDQ2MHB4OworCQkJaGVpZ2h0
OiAyNjBweDsKKwkJCWJhY2tncm91bmQtY29sb3I6IGxpZ2h0Ymx1ZTsKKwkJfQorCisJCS50YXJn
ZXQgeworCQkJcG9zaXRpb246IHJlbGF0aXZlOworCQkJdG9wOiAxMHB4OworCQkJbGVmdDogMTBw
eDsKKwkJCXdpZHRoOiAyMDBweDsKKwkJCWhlaWdodDogMTAwcHg7CisJCQliYWNrZ3JvdW5kLWNv
bG9yOiBncmVlbjsKKwkJfQorCQkKKwkJLmFuaW1hdGluZyB7CisJCQlwb3NpdGlvbjogcmVsYXRp
dmU7CisJCQliYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7CisJCQl0b3A6IGF1dG87CisJCQlsZWZ0
OiAyNTBweDsKKwkJCXdpZHRoOiAxODBweDsKKwkJCWhlaWdodDogMTAwcHg7CisJCQlvcGFjaXR5
OiAwLjY7CisJCQl0cmFuc2l0aW9uOiBvcGFjaXR5IDUwMHM7CisJCQlwYWRkaW5nOiAxMHB4Owor
CQl9CisJCQorCQkuYW5pbWF0aW5nLmNoYW5nZWQgeworCQkJb3BhY2l0eTogMTsKKwkJCXRvcDog
MjBweDsKKwkJfQorCTwvc3R5bGU+CisgICAgPHNjcmlwdD4KKwkJaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorCQkJdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKwkJd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiB7CisJCQlzZXRUaW1lb3V0KCgpID0+IHsKKwkJCQlkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCcuYW5pbWF0aW5nJykuY2xhc3NMaXN0LmFkZCgnY2hhbmdlZCcp
OworCQkJCWlmICh3aW5kb3cudGVzdFJ1bm5lcikKKwkJCQkJdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CisJCQl9LCAwKTsKKwkJfSwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+CisJPGRpdiBjbGFzcz0iYmFja2Ryb3AiPjwvZGl2PgorCTxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisJCTxkaXYgY2xhc3M9ImhlYWRlciI+CisJCQk8ZGl2IGNsYXNzPSJ0YXJnZXQiPjwvZGl2
PgorCQkJPGRpdiBjbGFzcz0iYW5pbWF0aW5nIj48L2Rpdj4KKwkJPC9kaXY+CisJPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="386173"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>