<?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>105245</bug_id>
          
          <creation_ts>2012-12-17 20:13:44 -0800</creation_ts>
          <short_desc>Allow position:sticky elements to be moved by the scrolling thread</short_desc>
          <delta_ts>2013-01-15 14:52:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>104276</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>enne</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>793295</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-12-17 20:13:44 -0800</bug_when>
    <thetext>Allow position:sticky elements to be moved by the scrolling thread</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793305</commentid>
    <comment_count>1</comment_count>
      <attachid>179870</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-12-17 20:25:56 -0800</bug_when>
    <thetext>Created attachment 179870
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793794</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-12-18 10:09:32 -0800</bug_when>
    <thetext>Simon says that this will mostly fix bug 104276.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793919</commentid>
    <comment_count>3</comment_count>
      <attachid>179870</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2012-12-18 12:16:12 -0800</bug_when>
    <thetext>Comment on attachment 179870
Patch

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

It seems like there should be a way to share a little more code between ScrollingStateFixedNode/ScrollingStateStickyNode and ScrollingTreeFixedNode/ScrollingTreeStickyNode, but I think this is fine for now.

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:2723
&gt; +    if (m_renderView-&gt;document()-&gt;ownerElement())

You should fix the comment here. It still claims that we don&apos;t yet support sticky.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794115</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-12-18 15:33:16 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/138076</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795675</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-12-20 12:39:06 -0800</bug_when>
    <thetext>This patch appears to have caused test failures on WK2 bots:
e.g.
http://build.webkit.org/results/Apple%20MountainLion%20Release%20WK2%20(Tests)/r138276%20(4305)/results.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179870</attachid>
            <date>2012-12-17 20:25:56 -0800</date>
            <delta_ts>2012-12-18 12:16:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105245-20121217202313.patch</filename>
            <type>text/plain</type>
            <size>54496</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3OTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjYxOWEzNjA2ZGZhNDMx
MTM1N2RlY2RiYjdkYjdiZDA2MDEyZjYyMC4uOGM2NmNhZDA2ODI3NzMzZDI2MjRiNTVhNGJkZTlk
ODBiZThjOGI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc3IEBACisyMDEyLTEyLTE3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IHBvc2l0
aW9uOnN0aWNreSBlbGVtZW50cyB0byBiZSBtb3ZlZCBieSB0aGUgc2Nyb2xsaW5nIHRocmVhZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1MjQ1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxsb3cgc3Rp
Y2t5IHBvc2l0aW9uIGVsZW1lbnRzIHRvIGJlIHJlcG9zaXRpb25lZCBvbiB0aGUgc2Nyb2xsaW5n
IHRocmVhZC4KKyAgICAgICAgCisgICAgICAgIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWly
ZXNDb21wb3NpdGluZ0ZvclBvc2l0aW9uKCkgaXMgY2hhbmdlZCB0byBtYWtlCisgICAgICAgIGFs
bCBwb3NpdGlvbjotd2Via2l0LXN0aWNreSBlbGVtZW50cyBjb21wb3NpdGVkLgorICAgICAgICAK
KyAgICAgICAgU3RpY2t5IHBvc2l0aW9uIGNvbnN0cmFpbnRzIGFyZSBhbHJlYWR5IGNvbW11bmlj
YXRlZCB0byB0aGUgU2Nyb2xsaW5nQ29vcmRpbmF0b3IsCisgICAgICAgIGJ1dCBub3cgd2UgY3Jl
YXRlZCBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGVzIGZvciB0aGVtLCBhbmQgc2VuZCB0aGUgY29u
c3RyYWludHMKKyAgICAgICAgb3ZlciB0byB0aGUgc2Nyb2xsaW5nIHRocmVhZCBmb3IgbmV3IFNj
cm9sbGluZ1RyZWVTdGlja3lOb2Rlcy4gVGhhdCBhbGxvd3MKKyAgICAgICAgdGhlaXIgbGF5ZXJz
IHRvIGJlIHJlcG9zaXRpb25lZCBvbiB0aGUgc2Nyb2xsaW5nIHRocmVhZC4KKworICAgICAgICBU
ZXN0czogcGxhdGZvcm0vbWFjL3RpbGVkLWRyYXdpbmcvc3RpY2t5L3N0aWNreS1ob3Jpem9udGFs
Lmh0bWwKKyAgICAgICAgICAgICAgIHBsYXRmb3JtL21hYy90aWxlZC1kcmF3aW5nL3N0aWNreS9z
dGlja3ktdmVydGljYWwuaHRtbAorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOiBBZGQgbmV3IGZpbGVzLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ0NvbnN0cmFpbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpTdGlja3lQb3NpdGlvblZpZXdw
b3J0Q29uc3RyYWludHM6OmFic29sdXRlQ29udGFpbmluZ0Jsb2NrUmVjdCk6IE5ldyBhY2Nlc3Nv
cnMuCisgICAgICAgIChXZWJDb3JlOjpTdGlja3lQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHM6
OmFic29sdXRlU3RpY2t5Qm94UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpTdGlja3lQb3NpdGlv
blZpZXdwb3J0Q29uc3RyYWludHM6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6U3Rp
Y2t5UG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzOjpvcGVyYXRvciE9KToKKyAgICAgICAgKiBw
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oOiBBZGRlZCBTdGlja3lOb2RlIHR5
cGUuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGU6OnN5bmNMYXllclBv
c2l0aW9uRm9yVmlld3BvcnRSZWN0KToKKyAgICAgICAgTmV3IHZpcnR1YWwgbWV0aG9kIHRoYXQg
YWxsb3dzIGRpZmZlcmVudCBraW5kcyBvZiBub2RlcyB0byBzeW5jIGxheWVyIHBvc2l0aW9ucy4K
KyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZS5oOgorICAg
ICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nU3RhdGVOb2RlOjppc1N0aWNreU5vZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nU3RhdGVOb2RlOjpzeW5jTGF5ZXJQb3NpdGlvbkZvclZpZXdwb3J0UmVjdCk6
CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGU6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGU6OlNjcm9sbGlu
Z1N0YXRlU3RpY2t5Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVN0aWNr
eU5vZGU6On5TY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nU3RhdGVTdGlja3lOb2RlOjpjbG9uZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxp
bmdTdGF0ZVN0aWNreU5vZGU6OnVwZGF0ZUNvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZTo6c3luY0xheWVyUG9zaXRpb25Gb3JWaWV3cG9ydFJl
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlOjpkdW1wUHJv
cGVydGllcyk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTdGlja3lO
b2RlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1N0YXRlRml4ZWROb2RlLmguCisgICAgICAgIChTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlOjp2aWV3cG9ydENvbnN0
cmFpbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OnRvU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlKToK
KyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWU6OnVwZGF0ZVRyZWVGcm9tU3RhdGVOb2RlKToKKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW06CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6YXR0YWNoVG9TdGF0ZVRyZWUpOiBI
YW5kbGUgc3RpY2t5IG5vZGVzLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0
b3JNYWM6OnN5bmNDaGlsZFBvc2l0aW9ucyk6IEdlbmVyYWxpemUgdG8gZGlmZmVyZW50IGtpbmRz
IG9mIG5vZGVzIGJ5CisgICAgICAgIGNhbGxpbmcgYSB2aXJ0dWFsIG1ldGhvZCBvbiB0aGUgbm9k
ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjp1cGRhdGVWaWV3
cG9ydENvbnN0cmFpbmVkTm9kZSk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVGaXhlZE5vZGUubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRml4
ZWROb2RlOjpTY3JvbGxpbmdUcmVlRml4ZWROb2RlKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUuaDogQWRkZWQuCisgICAgICAgIChTY3JvbGxp
bmdUcmVlU3RpY2t5Tm9kZSk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z1RyZWVTdGlja3lOb2RlLm1tOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZS5tbS4KKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWVTdGlja3lOb2RlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZVN0aWNreU5vZGU6OlNjcm9sbGluZ1RyZWVTdGlja3lOb2RlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWVTdGlja3lOb2RlOjp+U2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUp
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVN0aWNreU5vZGU6OnVwZGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpvcGVyYXRvciopOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
VHJlZVN0aWNreU5vZGU6OnBhcmVudFNjcm9sbFBvc2l0aW9uRGlkQ2hhbmdlKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyQmFja2luZzo6YXR0YWNoVG9TY3JvbGxpbmdDb29yZGluYXRvcik6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JQb3NpdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVGaXhlZFZp
ZXdwb3J0Q29uc3RyYWludHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpjb21wdXRlU3RpY2t5Vmlld3BvcnRDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlZ2lzdGVyT3JVcGRhdGVWaWV3cG9ydENvbnN0cmFp
bmVkTGF5ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoK
KyAgICAgICAgKFJlbmRlckxheWVyQ29tcG9zaXRvcik6CisKIDIwMTItMTItMTcgIEh1YW5nIERv
bmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgQ29vcmRpbmF0ZWQg
R3JhcGhpY3M6IFJlZmFjdG9yIFRpbGVkQmFja2luZ1N0b3JlIGNvZGUgaW4gQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDIxZGQxODA1M2EyZmQ3M2VkMWIwNGYxYjNkNzVhYjM1YzIzNGQ4
OTkuLjE1ODk1NTI3MTE1NTA2ZDlkNDViMzRjNzY5Y2I0N2QyNzViN2E4YTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI3NSw2
ICsyNzUsMTAgQEAKIAkJMEY2MDVBRUQxNUY5NDg0ODAwNERGMEMwIC8qIFNjcm9sbGluZ0NvbnN0
cmFpbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjYwNUFFQjE1Rjk0ODQ4MDA0REYwQzAgLyogU2Nyb2xsaW5nQ29uc3RyYWludHMuaCAqLzsgfTsK
IAkJMEZBMjRENzkxNjJERjkxOTAwQTNGNEMwIC8qIEdyYXBoaWNzTGF5ZXJVcGRhdGVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQTI0RDc3MTYy
REY5MTkwMEEzRjRDMCAvKiBHcmFwaGljc0xheWVyVXBkYXRlci5jcHAgKi87IH07CiAJCTBGQTI0
RDdBMTYyREY5MTkwMEEzRjRDMCAvKiBHcmFwaGljc0xheWVyVXBkYXRlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZBMjRENzgxNjJERjkxOTAwQTNG
NEMwIC8qIEdyYXBoaWNzTGF5ZXJVcGRhdGVyLmggKi87IH07CisJCTBGQjg4OTBBMTY3RDJGQTEw
MDEwQ0RBNSAvKiBTY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZCODg5MDgxNjdEMkZBMTAwMTBDREE1IC8qIFNj
cm9sbGluZ1RyZWVTdGlja3lOb2RlLmggKi87IH07CisJCTBGQjg4OTBCMTY3RDJGQTEwMDEwQ0RB
NSAvKiBTY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQjg4OTA5MTY3RDJGQTEwMDEwQ0RBNSAvKiBTY3JvbGxp
bmdUcmVlU3RpY2t5Tm9kZS5tbSAqLzsgfTsKKwkJMEZCODg5MEUxNjdEMzAxNjAwMTBDREE1IC8q
IFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRkI4ODkwQzE2N0QzMDE2MDAxMENEQTUgLyogU2Nyb2xsaW5n
U3RhdGVTdGlja3lOb2RlLmNwcCAqLzsgfTsKKwkJMEZCODg5MEYxNjdEMzAxNjAwMTBDREE1IC8q
IFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEZCODg5MEQxNjdEMzAxNjAwMTBDREE1IC8qIFNjcm9sbGluZ1N0
YXRlU3RpY2t5Tm9kZS5oICovOyB9OwogCQkwRkNGMzMyNDBGMkI5NzE1MDA0QjY3OTUgLyogQ29s
b3JDRy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RkNGMzMyMzBGMkI5NzE1MDA0QjY3OTUgLyogQ29sb3JDRy5jcHAgKi87IH07CiAJCTBGQ0YzMzJD
MEYyQjlBMjUwMDRCNjc5NSAvKiBXZWJUaWxlZExheWVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDRjMzMjgwRjJCOUEyNTAwNEI2Nzk1IC8qIFdl
YlRpbGVkTGF5ZXIubW0gKi87IH07CiAJCTBGQ0YzMzJEMEYyQjlBMjUwMDRCNjc5NSAvKiBXZWJU
aWxlZExheWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRkNGMzMyOTBGMkI5QTI1MDA0QjY3OTUgLyogV2ViVGlsZWRMYXllci5oICovOyB9OwpAQCAt
NzQxOSw2ICs3NDIzLDEwIEBACiAJCTBGNjA1QUVCMTVGOTQ4NDgwMDRERjBDMCAvKiBTY3JvbGxp
bmdDb25zdHJhaW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxp
bmdDb25zdHJhaW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkEyNEQ3NzE2
MkRGOTE5MDBBM0Y0QzAgLyogR3JhcGhpY3NMYXllclVwZGF0ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NMYXllclVwZGF0ZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRkEyNEQ3ODE2MkRGOTE5MDBBM0Y0QzAgLyogR3JhcGhp
Y3NMYXllclVwZGF0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhp
Y3NMYXllclVwZGF0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZCODg5MDgx
NjdEMkZBMTAwMTBDREE1IC8qIFNjcm9sbGluZ1RyZWVTdGlja3lOb2RlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVTdGlja3lOb2RlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGQjg4OTA5MTY3RDJGQTEwMDEwQ0RBNSAvKiBTY3JvbGxp
bmdUcmVlU3RpY2t5Tm9kZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFNjcm9sbGluZ1RyZWVTdGlja3lOb2RlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkwRkI4ODkwQzE2N0QzMDE2MDAxMENEQTUgLyogU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2Rl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbGluZ1N0YXRl
U3RpY2t5Tm9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGQjg4OTBEMTY3
RDMwMTYwMDEwQ0RBNSAvKiBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQ0YzMzIzMEYyQjk3MTUwMDRCNjc5NSAvKiBDb2xvckNH
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbG9yQ0cuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkNGMzMyODBGMkI5QTI1MDA0QjY3OTUgLyog
V2ViVGlsZWRMYXllci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFdlYlRpbGVkTGF5ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQ0YzMzI5
MEYyQjlBMjUwMDRCNjc5NSAvKiBXZWJUaWxlZExheWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYlRpbGVkTGF5ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE0Nzk5LDYgKzE0ODA3LDggQEAKIAkJCQk5MzFDQkQwNzE2MUE0NEU5MDBFNEM4NzQgLyog
U2Nyb2xsaW5nU3RhdGVOb2RlLmggKi8sCiAJCQkJOTMxQ0JEMDgxNjFBNDRFOTAwRTRDODc0IC8q
IFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAgKi8sCiAJCQkJOTMxQ0JEMDkxNjFBNDRF
OTAwRTRDODc0IC8qIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oICovLAorCQkJCTBGQjg4
OTBDMTY3RDMwMTYwMDEwQ0RBNSAvKiBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuY3BwICovLAor
CQkJCTBGQjg4OTBEMTY3RDMwMTYwMDEwQ0RBNSAvKiBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUu
aCAqLywKIAkJCQk5MzFDQkQwQTE2MUE0NEU5MDBFNEM4NzQgLyogU2Nyb2xsaW5nU3RhdGVUcmVl
LmNwcCAqLywKIAkJCQk5MzFDQkQwQjE2MUE0NEU5MDBFNEM4NzQgLyogU2Nyb2xsaW5nU3RhdGVU
cmVlLmggKi8sCiAJCQkJMUFGNjJGMjAxNERBRkU3OTAwNDE1NTZDIC8qIFNjcm9sbGluZ1RocmVh
ZC5jcHAgKi8sCkBAIC0xNDgyNCw2ICsxNDgzNCw4IEBACiAJCQkJOTNDMzhDMDIxNjQ0NzNERDAw
MDkxRUIyIC8qIFNjcm9sbGluZ1RyZWVGaXhlZE5vZGUubW0gKi8sCiAJCQkJOTNDNEE0MTMxNjI5
REY1QTAwQzNFQjZFIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjLmggKi8sCiAJCQkJ
OTNDNEE0MTQxNjI5REY1QTAwQzNFQjZFIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFj
Lm1tICovLAorCQkJCTBGQjg4OTA4MTY3RDJGQTEwMDEwQ0RBNSAvKiBTY3JvbGxpbmdUcmVlU3Rp
Y2t5Tm9kZS5oICovLAorCQkJCTBGQjg4OTA5MTY3RDJGQTEwMDEwQ0RBNSAvKiBTY3JvbGxpbmdU
cmVlU3RpY2t5Tm9kZS5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWFjOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKQEAgLTI1OTYxLDYgKzI1OTczLDggQEAKIAkJCQlGREE5MzI1RTE2NzAz
QjJBMDA4OTgyREMgLyogT2ZmbGluZUF1ZGlvQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RkRBOTMyNjcxNjcwM0JBOTAwODk4MkRDIC8qIEpTT2ZmbGluZUF1ZGlvQ29udGV4dC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRjM3QTU2MjMxNjc5Q0Y3QjAwQzU3MDQ2IC8qIEhlYXBHcmFwaFNlcmlh
bGl6ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGQjg4OTBBMTY3RDJGQTEwMDEwQ0RBNSAvKiBT
Y3JvbGxpbmdUcmVlU3RpY2t5Tm9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZCODg5MEYxNjdE
MzAxNjAwMTBDREE1IC8qIFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CkBAIC0yOTA3NSw2ICsyOTA4OSw4IEBACiAJCQkJRjM3QTU2MjIxNjc5Q0Y3QjAwQzU3MDQ2IC8q
IEhlYXBHcmFwaFNlcmlhbGl6ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QxRTczNDcxNjdC
Qzc4RTAwOUE4ODVEIC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTlBOUNFRjhEMTYzQjNFQTEwMERFN0VGRSAvKiBFeGNsdXNpb25TaGFwZU91dHNpZGVJ
bmZvLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGQjg4OTBCMTY3RDJGQTEwMDEwQ0RBNSAvKiBT
Y3JvbGxpbmdUcmVlU3RpY2t5Tm9kZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCTBGQjg4OTBFMTY3
RDMwMTYwMDEwQ0RBNSAvKiBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdD
b25zdHJhaW50cy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29u
c3RyYWludHMuaAppbmRleCBlYWFhZWY1MDhmMTIwOGEyNDEzYjQxNDgzNjM4ZTgwZTEyYmExZWM2
Li42ODAwZjU2MmQ2NTg2MWU4MjUxNDg2MjkxNGZlMWM3OGViMTdkOGNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb25zdHJhaW50cy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0NvbnN0cmFpbnRzLmgKQEAg
LTEyNCw5ICsxMjQsMjYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VG9wT2Zmc2V0KGZsb2F0IG9m
ZnNldCkgeyBtX3RvcE9mZnNldCA9IG9mZnNldDsgfQogICAgIHZvaWQgc2V0Qm90dG9tT2Zmc2V0
KGZsb2F0IG9mZnNldCkgeyBtX2JvdHRvbU9mZnNldCA9IG9mZnNldDsgfQogCisgICAgRmxvYXRS
ZWN0IGFic29sdXRlQ29udGFpbmluZ0Jsb2NrUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fYWJzb2x1
dGVDb250YWluaW5nQmxvY2tSZWN0OyB9CiAgICAgdm9pZCBzZXRBYnNvbHV0ZUNvbnRhaW5pbmdC
bG9ja1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KSB7IG1fYWJzb2x1dGVDb250YWluaW5nQmxv
Y2tSZWN0ID0gcmVjdDsgfQorCisgICAgRmxvYXRSZWN0IGFic29sdXRlU3RpY2t5Qm94UmVjdCgp
IGNvbnN0IHsgcmV0dXJuIG1fYWJzb2x1dGVTdGlja3lCb3hSZWN0OyB9CiAgICAgdm9pZCBzZXRB
YnNvbHV0ZVN0aWNreUJveFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KSB7IG1fYWJzb2x1dGVT
dGlja3lCb3hSZWN0ID0gcmVjdDsgfQogCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFN0aWNr
eVBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50cyYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4gbV9sZWZ0T2Zmc2V0ID09IG90aGVyLm1fbGVmdE9mZnNldAorICAgICAgICAgICAg
JiYgbV9yaWdodE9mZnNldCA9PSBvdGhlci5tX3JpZ2h0T2Zmc2V0CisgICAgICAgICAgICAmJiBt
X3RvcE9mZnNldCA9PSBvdGhlci5tX3RvcE9mZnNldAorICAgICAgICAgICAgJiYgbV9ib3R0b21P
ZmZzZXQgPT0gb3RoZXIubV9ib3R0b21PZmZzZXQKKyAgICAgICAgICAgICYmIG1fYWJzb2x1dGVD
b250YWluaW5nQmxvY2tSZWN0ID09IG90aGVyLm1fYWJzb2x1dGVDb250YWluaW5nQmxvY2tSZWN0
CisgICAgICAgICAgICAmJiBtX2Fic29sdXRlU3RpY2t5Qm94UmVjdCA9PSBvdGhlci5tX2Fic29s
dXRlU3RpY2t5Qm94UmVjdAorICAgICAgICAgICAgJiYgbV9zdGlja3lPZmZzZXRBdExhc3RMYXlv
dXQgPT0gb3RoZXIubV9zdGlja3lPZmZzZXRBdExhc3RMYXlvdXQKKyAgICAgICAgICAgICYmIG1f
bGF5ZXJQb3NpdGlvbkF0TGFzdExheW91dCA9PSBvdGhlci5tX2xheWVyUG9zaXRpb25BdExhc3RM
YXlvdXQ7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFN0aWNreVBvc2l0aW9u
Vmlld3BvcnRDb25zdHJhaW50cyYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuICEoKnRoaXMgPT0gb3Ro
ZXIpOyB9CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCBDb25zdHJhaW50VHlwZSBjb25zdHJhaW50
VHlwZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIFN0aWNreVBvc2l0aW9uQ29uc3RyYWludDsg
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmgKaW5kZXggYzM4OGY5ZTdkYTFjNzBkZTg4MGFmZTJhOWY0YTA3Y2RlNzdiNjg5
Mi4uMmQyNzJlY2VmMmIwZGQ4OWM0NDBhOTcxYWU3ZWQ2YTE5ZDJlNDM4MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCkBA
IC00OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHR5cGVkZWYgdW5zaWduZWQgTWFp
blRocmVhZFNjcm9sbGluZ1JlYXNvbnM7CiB0eXBlZGVmIHVpbnQ2NF90IFNjcm9sbGluZ05vZGVJ
RDsKIAotZW51bSBTY3JvbGxpbmdOb2RlVHlwZSB7IFNjcm9sbGluZ05vZGUsIEZpeGVkTm9kZSB9
OworZW51bSBTY3JvbGxpbmdOb2RlVHlwZSB7IFNjcm9sbGluZ05vZGUsIEZpeGVkTm9kZSwgU3Rp
Y2t5Tm9kZSB9OwogCiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEZyYW1lOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUu
Y3BwCmluZGV4IGJjNjBhYTg4NGExN2M0MGVjODQwYjg1N2MwN2Y0ZDFiMmQxZDIxNTIuLjk2MDI4
ZmQ5NmY0MTQyYmMwMGQ1M2I4NDQ1YjVmMWM3ZDJhOTRmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlRml4ZWROb2RlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZS5jcHAK
QEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTY3JvbGxp
bmdTdGF0ZUZpeGVkTm9kZS5oIgogCisjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgogI2luY2x1
ZGUgIlNjcm9sbGluZ1N0YXRlVHJlZS5oIgogI2luY2x1ZGUgIlRleHRTdHJlYW0uaCIKICNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+CkBAIC03MSw2ICs3MiwxMiBAQCB2b2lkIFNjcm9sbGluZ1N0YXRl
Rml4ZWROb2RlOjp1cGRhdGVDb25zdHJhaW50cyhjb25zdCBGaXhlZFBvc2l0aW9uVmlld3BvcnRD
b25zdAogICAgIG1fc2Nyb2xsaW5nU3RhdGVUcmVlLT5zZXRIYXNDaGFuZ2VkUHJvcGVydGllcyh0
cnVlKTsKIH0KIAordm9pZCBTY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZTo6c3luY0xheWVyUG9zaXRp
b25Gb3JWaWV3cG9ydFJlY3QoY29uc3QgTGF5b3V0UmVjdCYgdmlld3BvcnRSZWN0KQoreworICAg
IEZsb2F0UG9pbnQgcG9zaXRpb24gPSBtX2NvbnN0cmFpbnRzLmxheWVyUG9zaXRpb25Gb3JWaWV3
cG9ydFJlY3Qodmlld3BvcnRSZWN0KTsKKyAgICBncmFwaGljc0xheWVyKCktPnN5bmNQb3NpdGlv
bihwb3NpdGlvbik7Cit9CisKIHZvaWQgU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGU6OmR1bXBQcm9w
ZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBpbnQgaW5kZW50KSBjb25zdAogewogICAgIHRzIDw8ICIo
IiA8PCAiRml4ZWQgbm9kZSIgPDwgIlxuIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlRml4ZWROb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZS5oCmluZGV4IDdjODYzOTdjYjBi
MzllNGUwMmVkNjdlMDk4OTRjMGYwM2MyMjU3ZjUuLjY2NjhjOWEyZTU4ZDM2MmRlOGViZmFlMmJl
ODVkNzYxNmEzMzFjZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1N0YXRlRml4ZWROb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUuaApAQCAtNjIsNiArNjIsNyBAQCBwcml2YXRl
OgogCiAgICAgdmlydHVhbCBib29sIGhhc0NoYW5nZWRQcm9wZXJ0aWVzKCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gbV9jaGFuZ2VkUHJvcGVydGllczsgfQogICAgIHZpcnR1YWwgdm9pZCByZXNl
dENoYW5nZWRQcm9wZXJ0aWVzKCkgT1ZFUlJJREUgeyBtX2NoYW5nZWRQcm9wZXJ0aWVzID0gMDsg
fQorICAgIHZpcnR1YWwgdm9pZCBzeW5jTGF5ZXJQb3NpdGlvbkZvclZpZXdwb3J0UmVjdChjb25z
dCBMYXlvdXRSZWN0JiB2aWV3cG9ydFJlY3QpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCB2b2lk
IGR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50KSBjb25zdCBPVkVSUklERTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3Rh
dGVOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5v
ZGUuaAppbmRleCA2MGI5ZWY5MDFjMTA5NTBlMTc4NTgyNjU0MmFmMmZkN2FjMjEzYmM4Li5mMTBm
N2FhNzIxMTAyNzJhZTM4NGY5ODk5ODY5NmQ0NzA1ZjM3Yzk5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuaApAQCAtNTEsNiArNTEs
NyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNTY3JvbGxpbmdOb2RlKCkgeyByZXR1
cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNGaXhlZE5vZGUoKSB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1N0aWNreU5vZGUoKSB7IHJldHVybiBmYWxzZTsgfQog
CiAgICAgdmlydHVhbCBQYXNzT3duUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4gY2xvbmUoKSA9IDA7
CiAgICAgUGFzc093blB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+IGNsb25lQW5kUmVzZXQoKTsKQEAg
LTYxLDYgKzYyLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZXNldENoYW5nZWRQcm9w
ZXJ0aWVzKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRIYXNDaGFuZ2VkUHJvcGVydGllcygp
IHsgc2V0U2Nyb2xsTGF5ZXJEaWRDaGFuZ2UodHJ1ZSk7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBz
eW5jTGF5ZXJQb3NpdGlvbkZvclZpZXdwb3J0UmVjdChjb25zdCBMYXlvdXRSZWN0JiAvKnZpZXdw
b3J0UmVjdCovKSB7IH0KKwogICAgIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIoKSB7IHJl
dHVybiBtX2dyYXBoaWNzTGF5ZXI7IH0KICAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybVNjcm9s
bExheWVyKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTY3JvbGxMYXllcihHcmFwaGljc0xheWVyKik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0
ZVN0aWNreU5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
U3RhdGVTdGlja3lOb2RlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDQ4OGJlODZmMjA4MWJlOTQ2OGUxY2Ey
ZTY2ZGJmNDNmYjA5ZDQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmNwcApAQCAtMCwwICsxLDEzNyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTY3JvbGxpbmdTdGF0
ZVN0aWNreU5vZGUuaCIKKworI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKKyNpbmNsdWRlICJT
Y3JvbGxpbmdTdGF0ZVRyZWUuaCIKKyNpbmNsdWRlICJUZXh0U3RyZWFtLmgiCisjaW5jbHVkZSA8
d3RmL093blB0ci5oPgorCisjaWYgRU5BQkxFKFRIUkVBREVEX1NDUk9MTElORykKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitQYXNzT3duUHRyPFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZT4gU2Ny
b2xsaW5nU3RhdGVTdGlja3lOb2RlOjpjcmVhdGUoU2Nyb2xsaW5nU3RhdGVUcmVlKiBzdGF0ZVRy
ZWUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBT
Y3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUoc3RhdGVUcmVlLCBub2RlSUQpKTsKK30KKworU2Nyb2xs
aW5nU3RhdGVTdGlja3lOb2RlOjpTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUoU2Nyb2xsaW5nU3Rh
dGVUcmVlKiB0cmVlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQorICAgIDogU2Nyb2xsaW5nU3Rh
dGVOb2RlKHRyZWUsIG5vZGVJRCkKKyAgICAsIG1fY2hhbmdlZFByb3BlcnRpZXMoMCkKK3sKK30K
KworU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlOjpTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUoY29u
c3QgU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlJiBub2RlKQorICAgIDogU2Nyb2xsaW5nU3RhdGVO
b2RlKG5vZGUpCisgICAgLCBtX2NvbnN0cmFpbnRzKFN0aWNreVBvc2l0aW9uVmlld3BvcnRDb25z
dHJhaW50cyhub2RlLnZpZXdwb3J0Q29uc3RyYWludHMoKSkpCisgICAgLCBtX2NoYW5nZWRQcm9w
ZXJ0aWVzKG5vZGUuY2hhbmdlZFByb3BlcnRpZXMoKSkKK3sKK30KKworU2Nyb2xsaW5nU3RhdGVT
dGlja3lOb2RlOjp+U2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlKCkKK3sKK30KKworUGFzc093blB0
cjxTY3JvbGxpbmdTdGF0ZU5vZGU+IFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZTo6Y2xvbmUoKQor
eworICAgIHJldHVybiBhZG9wdFB0cihuZXcgU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlKCp0aGlz
KSk7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlOjp1cGRhdGVDb25zdHJhaW50
cyhjb25zdCBTdGlja3lQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHMmIGNvbnN0cmFpbnRzKQor
eworICAgIGlmIChtX2NvbnN0cmFpbnRzID09IGNvbnN0cmFpbnRzKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX2NvbnN0cmFpbnRzID0gY29uc3RyYWludHM7CisgICAgbV9jaGFuZ2VkUHJvcGVy
dGllcyA9IFZpZXdwb3J0Q29uc3RyYWludHM7CisgICAgbV9zY3JvbGxpbmdTdGF0ZVRyZWUtPnNl
dEhhc0NoYW5nZWRQcm9wZXJ0aWVzKHRydWUpOworfQorCit2b2lkIFNjcm9sbGluZ1N0YXRlU3Rp
Y2t5Tm9kZTo6c3luY0xheWVyUG9zaXRpb25Gb3JWaWV3cG9ydFJlY3QoY29uc3QgTGF5b3V0UmVj
dCYgdmlld3BvcnRSZWN0KQoreworICAgIEZsb2F0UG9pbnQgcG9zaXRpb24gPSBtX2NvbnN0cmFp
bnRzLmxheWVyUG9zaXRpb25Gb3JWaWV3cG9ydFJlY3Qodmlld3BvcnRSZWN0KTsKKyAgICBncmFw
aGljc0xheWVyKCktPnN5bmNQb3NpdGlvbihwb3NpdGlvbik7Cit9CisKK3ZvaWQgU2Nyb2xsaW5n
U3RhdGVTdGlja3lOb2RlOjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgaW50IGluZGVu
dCkgY29uc3QKK3sKKyAgICB0cyA8PCAiKCIgPDwgIlN0aWNreSBub2RlIiA8PCAiXG4iOworCisg
ICAgaWYgKG1fY29uc3RyYWludHMuYW5jaG9yRWRnZXMoKSkgeworICAgICAgICB3cml0ZUluZGVu
dCh0cywgaW5kZW50ICsgMSk7CisgICAgICAgIHRzIDw8ICIoYW5jaG9yIGVkZ2VzOiAiOworICAg
ICAgICBpZiAobV9jb25zdHJhaW50cy5oYXNBbmNob3JFZGdlKFZpZXdwb3J0Q29uc3RyYWludHM6
OkFuY2hvckVkZ2VMZWZ0KSkKKyAgICAgICAgICAgIHRzIDw8ICJBbmNob3JFZGdlTGVmdCAiOwor
ICAgICAgICBpZiAobV9jb25zdHJhaW50cy5oYXNBbmNob3JFZGdlKFZpZXdwb3J0Q29uc3RyYWlu
dHM6OkFuY2hvckVkZ2VSaWdodCkpCisgICAgICAgICAgICB0cyA8PCAiQW5jaG9yRWRnZVJpZ2h0
ICI7CisgICAgICAgIGlmIChtX2NvbnN0cmFpbnRzLmhhc0FuY2hvckVkZ2UoVmlld3BvcnRDb25z
dHJhaW50czo6QW5jaG9yRWRnZVRvcCkpCisgICAgICAgICAgICB0cyA8PCAiQW5jaG9yRWRnZVRv
cCAiOworICAgICAgICBpZiAobV9jb25zdHJhaW50cy5oYXNBbmNob3JFZGdlKFZpZXdwb3J0Q29u
c3RyYWludHM6OkFuY2hvckVkZ2VCb3R0b20pKQorICAgICAgICAgICAgdHMgPDwgIkFuY2hvckVk
Z2VCb3R0b20iOworICAgICAgICB0cyA8PCAiKVxuIjsKKyAgICB9CisKKyAgICBpZiAobV9jb25z
dHJhaW50cy5oYXNBbmNob3JFZGdlKFZpZXdwb3J0Q29uc3RyYWludHM6OkFuY2hvckVkZ2VMZWZ0
KSkgeworICAgICAgICB3cml0ZUluZGVudCh0cywgaW5kZW50ICsgMSk7CisgICAgICAgIHRzIDw8
ICIobGVmdCBvZmZzZXQgIiA8PCBtX2NvbnN0cmFpbnRzLmxlZnRPZmZzZXQoKSA8PCAiKVxuIjsK
KyAgICB9CisgICAgaWYgKG1fY29uc3RyYWludHMuaGFzQW5jaG9yRWRnZShWaWV3cG9ydENvbnN0
cmFpbnRzOjpBbmNob3JFZGdlUmlnaHQpKSB7CisgICAgICAgIHdyaXRlSW5kZW50KHRzLCBpbmRl
bnQgKyAxKTsKKyAgICAgICAgdHMgPDwgIihyaWdodCBvZmZzZXQgIiA8PCBtX2NvbnN0cmFpbnRz
LnJpZ2h0T2Zmc2V0KCkgPDwgIilcbiI7CisgICAgfQorICAgIGlmIChtX2NvbnN0cmFpbnRzLmhh
c0FuY2hvckVkZ2UoVmlld3BvcnRDb25zdHJhaW50czo6QW5jaG9yRWRnZVRvcCkpIHsKKyAgICAg
ICAgd3JpdGVJbmRlbnQodHMsIGluZGVudCArIDEpOworICAgICAgICB0cyA8PCAiKHRvcCBvZmZz
ZXQgIiA8PCBtX2NvbnN0cmFpbnRzLnRvcE9mZnNldCgpIDw8ICIpXG4iOworICAgIH0KKyAgICBp
ZiAobV9jb25zdHJhaW50cy5oYXNBbmNob3JFZGdlKFZpZXdwb3J0Q29uc3RyYWludHM6OkFuY2hv
ckVkZ2VCb3R0b20pKSB7CisgICAgICAgIHdyaXRlSW5kZW50KHRzLCBpbmRlbnQgKyAxKTsKKyAg
ICAgICAgdHMgPDwgIihib3R0b20gb2Zmc2V0ICIgPDwgbV9jb25zdHJhaW50cy5ib3R0b21PZmZz
ZXQoKSA8PCAiKVxuIjsKKyAgICB9CisKKyAgICB3cml0ZUluZGVudCh0cywgaW5kZW50ICsgMSk7
CisgICAgRmxvYXRSZWN0IHIgPSBtX2NvbnN0cmFpbnRzLmFic29sdXRlQ29udGFpbmluZ0Jsb2Nr
UmVjdCgpOworICAgIHRzIDw8ICIoY29udGFpbmluZyBibG9jayByZWN0ICIgPDwgci54KCkgPDwg
IiwgIiA8PCByLnkoKSA8PCAiICIgPDwgci53aWR0aCgpIDw8ICIgeCAiIDw8IHIuaGVpZ2h0KCkg
PDwgIilcbiI7CisKKyAgICB3cml0ZUluZGVudCh0cywgaW5kZW50ICsgMSk7CisgICAgciA9IG1f
Y29uc3RyYWludHMuYWJzb2x1dGVTdGlja3lCb3hSZWN0KCk7CisgICAgdHMgPDwgIihzdGlja3kg
Ym94IHJlY3QgIiA8PCByLngoKSA8PCAiICIgPDwgci55KCkgPDwgIiAiIDw8IHIud2lkdGgoKSA8
PCAiICIgPDwgci5oZWlnaHQoKSA8PCAiKVxuIjsKKworICAgIHdyaXRlSW5kZW50KHRzLCBpbmRl
bnQgKyAxKTsKKyAgICByID0gbV9jb25zdHJhaW50cy5hYnNvbHV0ZVN0aWNreUJveFJlY3QoKTsK
KyAgICB0cyA8PCAiKHN0aWNreSBib3ggcmVjdCAiIDw8IHIueCgpIDw8ICIgIiA8PCByLnkoKSA8
PCAiICIgPDwgci53aWR0aCgpIDw8ICIgIiA8PCByLmhlaWdodCgpIDw8ICIpXG4iOworCisgICAg
d3JpdGVJbmRlbnQodHMsIGluZGVudCArIDEpOworICAgIHRzIDw8ICIoc3RpY2t5IG9mZnNldCBh
dCBsYXN0IGxheW91dCAiIDw8IG1fY29uc3RyYWludHMuc3RpY2t5T2Zmc2V0QXRMYXN0TGF5b3V0
KCkud2lkdGgoKSA8PCAiICIgPDwgbV9jb25zdHJhaW50cy5zdGlja3lPZmZzZXRBdExhc3RMYXlv
dXQoKS5oZWlnaHQoKSA8PCAiKVxuIjsKKworICAgIHdyaXRlSW5kZW50KHRzLCBpbmRlbnQgKyAx
KTsKKyAgICB0cyA8PCAiKGxheWVyIHBvc2l0aW9uIGF0IGxhc3QgbGF5b3V0ICIgPDwgbV9jb25z
dHJhaW50cy5sYXllclBvc2l0aW9uQXRMYXN0TGF5b3V0KCkueCgpIDw8ICIgIiA8PCBtX2NvbnN0
cmFpbnRzLmxheWVyUG9zaXRpb25BdExhc3RMYXlvdXQoKS55KCkgPDwgIilcbiI7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShUSFJFQURFRF9TQ1JPTExJ
TkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdT
dGF0ZVN0aWNreU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1N0YXRlU3RpY2t5Tm9kZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5N2MzNGI1NDUxOTdjZDg1ZGI1MWY5NTRh
N2ZkMzg5YTgzN2YyZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuaApAQCAtMCwwICsxLDg2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGVfaAorI2RlZmluZSBTY3Jv
bGxpbmdTdGF0ZVN0aWNreU5vZGVfaAorCisjaWYgRU5BQkxFKFRIUkVBREVEX1NDUk9MTElORykK
KworI2luY2x1ZGUgIlNjcm9sbGluZ0NvbnN0cmFpbnRzLmgiCisjaW5jbHVkZSAiU2Nyb2xsaW5n
U3RhdGVOb2RlLmgiCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFN0aWNreVBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50czsKKworY2xh
c3MgU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlIDogcHVibGljIFNjcm9sbGluZ1N0YXRlTm9kZSB7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8U2Nyb2xsaW5nU3RhdGVTdGlja3lOb2Rl
PiBjcmVhdGUoU2Nyb2xsaW5nU3RhdGVUcmVlKiwgU2Nyb2xsaW5nTm9kZUlEKTsKKworICAgIHZp
cnR1YWwgUGFzc093blB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+IGNsb25lKCk7CisKKyAgICB2aXJ0
dWFsIH5TY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUoKTsKKworICAgIGVudW0gQ2hhbmdlZFByb3Bl
cnR5Rm9yU3RpY2t5IHsKKyAgICAgICAgVmlld3BvcnRDb25zdHJhaW50cyA9IDEgPDwgMAorICAg
IH07CisKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGNoYW5nZWRQcm9wZXJ0aWVzKCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gbV9jaGFuZ2VkUHJvcGVydGllczsgfQorCisgICAgdm9pZCB1cGRhdGVD
b25zdHJhaW50cyhjb25zdCBTdGlja3lQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHMmKTsKKyAg
ICBjb25zdCBTdGlja3lQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHMmIHZpZXdwb3J0Q29uc3Ry
YWludHMoKSBjb25zdCB7IHJldHVybiBtX2NvbnN0cmFpbnRzOyB9CisKK3ByaXZhdGU6CisgICAg
U2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlKFNjcm9sbGluZ1N0YXRlVHJlZSosIFNjcm9sbGluZ05v
ZGVJRCk7CisgICAgU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlKGNvbnN0IFNjcm9sbGluZ1N0YXRl
U3RpY2t5Tm9kZSYpOworCisgICAgdmlydHVhbCBib29sIGlzU3RpY2t5Tm9kZSgpIE9WRVJSSURF
IHsgcmV0dXJuIHRydWU7IH0KKworICAgIHZpcnR1YWwgYm9vbCBoYXNDaGFuZ2VkUHJvcGVydGll
cygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fY2hhbmdlZFByb3BlcnRpZXM7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgcmVzZXRDaGFuZ2VkUHJvcGVydGllcygpIE9WRVJSSURFIHsgbV9jaGFuZ2Vk
UHJvcGVydGllcyA9IDA7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3luY0xheWVyUG9zaXRpb25Gb3JW
aWV3cG9ydFJlY3QoY29uc3QgTGF5b3V0UmVjdCYgdmlld3BvcnRSZWN0KSBPVkVSUklERTsKKwor
ICAgIHZpcnR1YWwgdm9pZCBkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiwgaW50IGluZGVudCkg
Y29uc3QgT1ZFUlJJREU7CisKKyAgICBTdGlja3lQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHMg
bV9jb25zdHJhaW50czsKKyAgICB1bnNpZ25lZCBtX2NoYW5nZWRQcm9wZXJ0aWVzOworfTsKKwor
aW5saW5lIFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZSogdG9TY3JvbGxpbmdTdGF0ZVN0aWNreU5v
ZGUoU2Nyb2xsaW5nU3RhdGVOb2RlKiBub2RlKQoreworICAgIEFTU0VSVCghbm9kZSB8fCBub2Rl
LT5pc1N0aWNreU5vZGUoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNjcm9sbGluZ1N0YXRl
U3RpY2t5Tm9kZSo+KG5vZGUpOworfQorICAgIAorLy8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBk
b2luZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgordm9pZCB0b1Njcm9sbGluZ1N0YXRlU3RpY2t5Tm9k
ZShjb25zdCBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUqKTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFRIUkVBREVEX1NDUk9MTElORykKKworI2VuZGlmIC8v
IFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCmluZGV4IGZlMTkwZDg0NGM1MGMwZTc3OTIwYTQ3MGFi
OTMzMDhlOTE2ZGI5YTcuLmM5MDUyYTYzYzdkY2NmZWZmMjU4YmExMzdjZGZhYWY4YmI2NmY2NjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3Bw
CkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZS5oIgog
I2luY2x1ZGUgIlNjcm9sbGluZ1RyZWVOb2RlLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGUuaCIKKyNpbmNsdWRlICJTY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZS5oIgogI2lu
Y2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5o
PgogCkBAIC0xNjYsOCArMTY3LDExIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6dXBkYXRlVHJlZUZy
b21TdGF0ZU5vZGUoU2Nyb2xsaW5nU3RhdGVOb2RlKiBzdGF0ZU5vZGUpCiAgICAgICAgICAgICAg
ICAgbmV3Tm9kZSA9IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjcmVhdGUodGhpcyk7CiAg
ICAgICAgICAgICBlbHNlIGlmIChzdGF0ZU5vZGUtPmlzRml4ZWROb2RlKCkpCiAgICAgICAgICAg
ICAgICAgbmV3Tm9kZSA9IFNjcm9sbGluZ1RyZWVGaXhlZE5vZGU6OmNyZWF0ZSh0aGlzKTsKKyAg
ICAgICAgICAgIGVsc2UgaWYgKHN0YXRlTm9kZS0+aXNTdGlja3lOb2RlKCkpCisgICAgICAgICAg
ICAgICAgbmV3Tm9kZSA9IFNjcm9sbGluZ1RyZWVTdGlja3lOb2RlOjpjcmVhdGUodGhpcyk7CiAg
ICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisK
ICAgICAgICAgICAgIFNjcm9sbGluZ1RyZWVOb2RlKiBuZXdOb2RlUmF3UHRyID0gbmV3Tm9kZS5n
ZXQoKTsKICAgICAgICAgICAgIG1fbm9kZU1hcC5zZXQoc3RhdGVOb2RlLT5zY3JvbGxpbmdOb2Rl
SUQoKSwgbmV3Tm9kZVJhd1B0cik7CiAgICAgICAgICAgICBTY3JvbGxpbmdUcmVlTm9kZU1hcDo6
Y29uc3RfaXRlcmF0b3IgaXQgPSBtX25vZGVNYXAuZmluZChzdGF0ZU5vZGUtPnBhcmVudCgpLT5z
Y3JvbGxpbmdOb2RlSUQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0KaW5kZXggODMzYjI0MDAy
MTBkZDRmMzg3YTY3YjJmOTFmOGE2MGVmZjZhNzkyOS4uY2RmZGNlYzNkNTMxNzhhYmIwNWU0MWZj
MGYzMWUxNmZhZTgyNmNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQpAQCAtNDMsNiArNDMs
NyBAQAogI2luY2x1ZGUgIlNjcm9sbGluZ0NvbnN0cmFpbnRzLmgiCiAjaW5jbHVkZSAiU2Nyb2xs
aW5nU3RhdGVGaXhlZE5vZGUuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGUuaCIKKyNpbmNsdWRlICJTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuaCIKICNpbmNsdWRlICJT
Y3JvbGxpbmdTdGF0ZVRyZWUuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdUaHJlYWQuaCIKICNpbmNs
dWRlICJTY3JvbGxpbmdUcmVlLmgiCkBAIC0yNDIsNiArMjQzLDEzIEBAIFNjcm9sbGluZ05vZGVJ
RCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6YXR0YWNoVG9TdGF0ZVRyZWUoU2Nyb2xsaW5nTm9k
ZVR5cGUgbm9kCiAgICAgICAgICAgICBwYXJlbnQtPmFwcGVuZENoaWxkKGZpeGVkTm9kZS5yZWxl
YXNlKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KKyAgICAgICAgY2FzZSBTdGlj
a3lOb2RlOiB7CisgICAgICAgICAgICBBU1NFUlQoc3VwcG9ydHNGaXhlZFBvc2l0aW9uTGF5ZXJz
KCkpOworICAgICAgICAgICAgT3duUHRyPFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZT4gc3RpY2t5
Tm9kZSA9IFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZTo6Y3JlYXRlKG1fc2Nyb2xsaW5nU3RhdGVU
cmVlLmdldCgpLCBuZXdOb2RlSUQpOworICAgICAgICAgICAgbmV3Tm9kZSA9IHN0aWNreU5vZGUu
Z2V0KCk7CisgICAgICAgICAgICBwYXJlbnQtPmFwcGVuZENoaWxkKHN0aWNreU5vZGUucmVsZWFz
ZSgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgIGNhc2UgU2Nyb2xs
aW5nTm9kZTogewogICAgICAgICAgICAgLy8gRklYTUU6IFdlIGN1cnJlbnRseSBvbmx5IHN1cHBv
cnQgY2hpbGQgbm9kZXMgdGhhdCBhcmUgZml4ZWQuCiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTM3Niw5ICszODQsOCBAQCB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFj
OjpzeW5jQ2hpbGRQb3NpdGlvbnMoY29uc3QgTGF5b3V0UmVjdCYgdmlld3BvcnRSZWN0KQogICAg
IC8vIEZJWE1FOiBXZSdsbCBoYXZlIHRvIHRyYXZlcnNlIGRlZXBlciBpbnRvIHRoZSB0cmVlIGF0
IHNvbWUgcG9pbnQuCiAgICAgc2l6ZV90IHNpemUgPSBjaGlsZHJlbi0+c2l6ZSgpOwogICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgIFNjcm9sbGluZ1N0YXRl
Rml4ZWROb2RlKiBjaGlsZCA9IHRvU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUoY2hpbGRyZW4tPmF0
KGkpLmdldCgpKTsKLSAgICAgICAgRmxvYXRQb2ludCBwb3NpdGlvbiA9IGNoaWxkLT52aWV3cG9y
dENvbnN0cmFpbnRzKCkubGF5ZXJQb3NpdGlvbkZvclZpZXdwb3J0UmVjdCh2aWV3cG9ydFJlY3Qp
OwotICAgICAgICBjaGlsZC0+Z3JhcGhpY3NMYXllcigpLT5zeW5jUG9zaXRpb24ocG9zaXRpb24p
OworICAgICAgICBTY3JvbGxpbmdTdGF0ZU5vZGUqIGNoaWxkID0gY2hpbGRyZW4tPmF0KGkpLmdl
dCgpOworICAgICAgICBjaGlsZC0+c3luY0xheWVyUG9zaXRpb25Gb3JWaWV3cG9ydFJlY3Qodmll
d3BvcnRSZWN0KTsKICAgICB9CiB9CiAKQEAgLTM4NiwxMyArMzkzLDIwIEBAIHZvaWQgU2Nyb2xs
aW5nQ29vcmRpbmF0b3JNYWM6OnVwZGF0ZVZpZXdwb3J0Q29uc3RyYWluZWROb2RlKFNjcm9sbGlu
Z05vZGVJRCBub2RlCiB7CiAgICAgQVNTRVJUKHN1cHBvcnRzRml4ZWRQb3NpdGlvbkxheWVycygp
KTsKIAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgc3VwcG9ydCBzdGlja3kgcG9zaXRpb24gaGVy
ZSEKLSAgICBpZiAoY29uc3RyYWludHMuY29uc3RyYWludFR5cGUoKSA9PSBWaWV3cG9ydENvbnN0
cmFpbnRzOjpTdGlja3lQb3NpdGlvbkNvbnN0cmFpbnQpCi0gICAgICAgIHJldHVybjsKLQotICAg
IFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlKiBub2RlID0gdG9TY3JvbGxpbmdTdGF0ZUZpeGVkTm9k
ZShzdGF0ZU5vZGVGb3JJRChub2RlSUQpKTsKLSAgICBzZXRTY3JvbGxMYXllckZvck5vZGUoZ3Jh
cGhpY3NMYXllciwgbm9kZSk7Ci0gICAgbm9kZS0+dXBkYXRlQ29uc3RyYWludHMoKGNvbnN0IEZp
eGVkUG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzJiljb25zdHJhaW50cyk7CisgICAgc3dpdGNo
IChjb25zdHJhaW50cy5jb25zdHJhaW50VHlwZSgpKSB7CisgICAgY2FzZSBWaWV3cG9ydENvbnN0
cmFpbnRzOjpGaXhlZFBvc2l0aW9uQ29uc3RhaW50OiB7CisgICAgICAgIFNjcm9sbGluZ1N0YXRl
Rml4ZWROb2RlKiBub2RlID0gdG9TY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZShzdGF0ZU5vZGVGb3JJ
RChub2RlSUQpKTsKKyAgICAgICAgc2V0U2Nyb2xsTGF5ZXJGb3JOb2RlKGdyYXBoaWNzTGF5ZXIs
IG5vZGUpOworICAgICAgICBub2RlLT51cGRhdGVDb25zdHJhaW50cygoY29uc3QgRml4ZWRQb3Np
dGlvblZpZXdwb3J0Q29uc3RyYWludHMmKWNvbnN0cmFpbnRzKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorICAgIGNhc2UgVmlld3BvcnRDb25zdHJhaW50czo6U3RpY2t5UG9zaXRpb25Db25zdHJh
aW50OiB7CisgICAgICAgIFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZSogbm9kZSA9IHRvU2Nyb2xs
aW5nU3RhdGVTdGlja3lOb2RlKHN0YXRlTm9kZUZvcklEKG5vZGVJRCkpOworICAgICAgICBzZXRT
Y3JvbGxMYXllckZvck5vZGUoZ3JhcGhpY3NMYXllciwgbm9kZSk7CisgICAgICAgIG5vZGUtPnVw
ZGF0ZUNvbnN0cmFpbnRzKChjb25zdCBTdGlja3lQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHMm
KWNvbnN0cmFpbnRzKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIH0KIH0KIAogdm9pZCBT
Y3JvbGxpbmdDb29yZGluYXRvck1hYzo6c2NoZWR1bGVUcmVlU3RhdGVDb21taXQoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGaXhl
ZE5vZGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJl
ZUZpeGVkTm9kZS5tbQppbmRleCBjNGVkZmMyMzQ3ZGEyMWMwYmM3Y2U4YzAwNGE0ZTA5NTM0N2Jl
MTA3Li41ZjM3NmY4NTU2MDlmYjg1YjBmNjQwYWJiMjYyYWFkYTYzZWQ4YzdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZpeGVkTm9k
ZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJl
ZUZpeGVkTm9kZS5tbQpAQCAtNDAsNyArNDAsNiBAQCBQYXNzT3duUHRyPFNjcm9sbGluZ1RyZWVG
aXhlZE5vZGU+IFNjcm9sbGluZ1RyZWVGaXhlZE5vZGU6OmNyZWF0ZShTY3JvbGxpbmdUcmVlKgog
CiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpTY3JvbGxpbmdUcmVlRml4ZWROb2RlKFNjcm9sbGlu
Z1RyZWUqIHNjcm9sbGluZ1RyZWUpCiAgICAgOiBTY3JvbGxpbmdUcmVlTm9kZShzY3JvbGxpbmdU
cmVlKQotICAgICwgbV9jb25zdHJhaW50cyhGaXhlZFBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50
cygpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9t
YWMvU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzOGU3Y2ExNzI5
OTFlMTkzNDU2ZjllMDZmNzE2OGZhMzE4NTIwNGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUuaApAQCAt
MCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTY3JvbGxpbmdUcmVlU3RpY2t5Tm9k
ZV9oCisjZGVmaW5lIFNjcm9sbGluZ1RyZWVTdGlja3lOb2RlX2gKKworI2lmIEVOQUJMRShUSFJF
QURFRF9TQ1JPTExJTkcpCisKKyNpbmNsdWRlICJTY3JvbGxpbmdDb25zdHJhaW50cy5oIgorI2lu
Y2x1ZGUgIlNjcm9sbGluZ1RyZWVOb2RlLmgiCisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgor
CitPQkpDX0NMQVNTIENBTGF5ZXI7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3Rp
Y2t5UG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzOworCitjbGFzcyBTY3JvbGxpbmdUcmVlU3Rp
Y2t5Tm9kZSA6IHB1YmxpYyBTY3JvbGxpbmdUcmVlTm9kZSB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NPd25QdHI8U2Nyb2xsaW5nVHJlZVN0aWNreU5vZGU+IGNyZWF0ZShTY3JvbGxpbmdUcmVl
Kik7CisKKyAgICB2aXJ0dWFsIH5TY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZSgpOworCitwcml2YXRl
OgorICAgIFNjcm9sbGluZ1RyZWVTdGlja3lOb2RlKFNjcm9sbGluZ1RyZWUqKTsKKworICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGUoU2Nyb2xsaW5nU3RhdGVOb2RlKikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIHBhcmVudFNjcm9sbFBvc2l0aW9uRGlkQ2hhbmdlKGNvbnN0IEludFJlY3QmIHZp
ZXdwb3J0UmVjdCkgT1ZFUlJJREU7CisKKyAgICBTdGlja3lQb3NpdGlvblZpZXdwb3J0Q29uc3Ry
YWludHMgbV9jb25zdHJhaW50czsKKyAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9sYXllcjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShUSFJFQURFRF9T
Q1JPTExJTkcpCisKKyNlbmRpZiAvLyBTY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZV9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVN0aWNr
eU5vZGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJl
ZVN0aWNreU5vZGUubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWY2OGViNDk5ZTNiMjgzNzE5NzE2MWE0YTVjZGZl
NWViYjVhOGI1MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZS5tbQpAQCAtMCwwICsxLDg1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNjcm9sbGluZ1RyZWVTdGlj
a3lOb2RlLmgiCisKKyNpZiBFTkFCTEUoVEhSRUFERURfU0NST0xMSU5HKQorCisjaW5jbHVkZSAi
U2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmgiCisjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZS5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NPd25QdHI8U2Nyb2xsaW5nVHJlZVN0aWNreU5v
ZGU+IFNjcm9sbGluZ1RyZWVTdGlja3lOb2RlOjpjcmVhdGUoU2Nyb2xsaW5nVHJlZSogc2Nyb2xs
aW5nVHJlZSkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNjcm9sbGluZ1RyZWVTdGlja3lO
b2RlKHNjcm9sbGluZ1RyZWUpKTsKK30KKworU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGU6OlNjcm9s
bGluZ1RyZWVTdGlja3lOb2RlKFNjcm9sbGluZ1RyZWUqIHNjcm9sbGluZ1RyZWUpCisgICAgOiBT
Y3JvbGxpbmdUcmVlTm9kZShzY3JvbGxpbmdUcmVlKQoreworfQorCitTY3JvbGxpbmdUcmVlU3Rp
Y2t5Tm9kZTo6flNjcm9sbGluZ1RyZWVTdGlja3lOb2RlKCkKK3sKK30KKwordm9pZCBTY3JvbGxp
bmdUcmVlU3RpY2t5Tm9kZTo6dXBkYXRlKFNjcm9sbGluZ1N0YXRlTm9kZSogc3RhdGVOb2RlKQor
eworICAgIFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZSogc3RhdGUgPSB0b1Njcm9sbGluZ1N0YXRl
U3RpY2t5Tm9kZShzdGF0ZU5vZGUpOworCisgICAgaWYgKHN0YXRlLT5zY3JvbGxMYXllckRpZENo
YW5nZSgpKQorICAgICAgICBtX2xheWVyID0gc3RhdGUtPnBsYXRmb3JtU2Nyb2xsTGF5ZXIoKTsK
KworICAgIGlmIChzdGF0ZU5vZGUtPmNoYW5nZWRQcm9wZXJ0aWVzKCkgJiBTY3JvbGxpbmdTdGF0
ZVN0aWNreU5vZGU6OlZpZXdwb3J0Q29uc3RyYWludHMpCisgICAgICAgIG1fY29uc3RyYWludHMg
PSBzdGF0ZS0+dmlld3BvcnRDb25zdHJhaW50cygpOworfQorCitzdGF0aWMgaW5saW5lIENHUG9p
bnQgb3BlcmF0b3IqKENHUG9pbnQmIGEsIGNvbnN0IENHU2l6ZSYgYikKK3sKKyAgICByZXR1cm4g
Q0dQb2ludE1ha2UoYS54ICogYi53aWR0aCwgYS55ICogYi5oZWlnaHQpOworfQorCit2b2lkIFNj
cm9sbGluZ1RyZWVTdGlja3lOb2RlOjpwYXJlbnRTY3JvbGxQb3NpdGlvbkRpZENoYW5nZShjb25z
dCBJbnRSZWN0JiB2aWV3cG9ydFJlY3QpCit7CisgICAgRmxvYXRQb2ludCBsYXllclBvc2l0aW9u
ID0gbV9jb25zdHJhaW50cy5sYXllclBvc2l0aW9uRm9yVmlld3BvcnRSZWN0KHZpZXdwb3J0UmVj
dCk7CisKKyAgICBDR1JlY3QgbGF5ZXJCb3VuZHMgPSBbbV9sYXllci5nZXQoKSBib3VuZHNdOwor
ICAgIENHUG9pbnQgYW5jaG9yUG9pbnQgPSBbbV9sYXllci5nZXQoKSBhbmNob3JQb2ludF07Cisg
ICAgQ0dQb2ludCBuZXdQb3NpdGlvbiA9IGxheWVyUG9zaXRpb24gLSBtX2NvbnN0cmFpbnRzLmFs
aWdubWVudE9mZnNldCgpICsgYW5jaG9yUG9pbnQgKiBsYXllckJvdW5kcy5zaXplOworICAgIFtt
X2xheWVyLmdldCgpIHNldFBvc2l0aW9uOm5ld1Bvc2l0aW9uXTsKKworICAgIGlmICghbV9jaGls
ZHJlbikKKyAgICAgICAgcmV0dXJuOworCisgICAgc2l6ZV90IHNpemUgPSBtX2NoaWxkcmVuLT5z
aXplKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCisgICAgICAgIG1f
Y2hpbGRyZW4tPmF0KGkpLT5wYXJlbnRTY3JvbGxQb3NpdGlvbkRpZENoYW5nZSh2aWV3cG9ydFJl
Y3QpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoVEhS
RUFERURfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcAppbmRleCAwNzM0MTgzMTJmMWQzOTk3NTYyOTdiMDIyY2FmZDQ3ZDVmZTk4
ODFiLi5iYzk2YzFmMmRmMzU0Y2U2YjFiYjBhN2Y1NjAwMzIxZWJiODY2ZjgwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMTA4NCw2
ICsxMDg0LDggQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OmF0dGFjaFRvU2Nyb2xsaW5nQ29v
cmRpbmF0b3IoUmVuZGVyTGF5ZXJCYWNraW5nKiBwYXJlbnQKICAgICBTY3JvbGxpbmdOb2RlVHlw
ZSBub2RlVHlwZTsKICAgICBpZiAocmVuZGVyZXIoKS0+c3R5bGUoKS0+cG9zaXRpb24oKSA9PSBG
aXhlZFBvc2l0aW9uKQogICAgICAgICBub2RlVHlwZSA9IEZpeGVkTm9kZTsKKyAgICBlbHNlIGlm
IChyZW5kZXJlcigpLT5zdHlsZSgpLT5wb3NpdGlvbigpID09IFN0aWNreVBvc2l0aW9uKQorICAg
ICAgICBub2RlVHlwZSA9IFN0aWNreU5vZGU7CiAgICAgZWxzZQogICAgICAgICBub2RlVHlwZSA9
IFNjcm9sbGluZ05vZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggNDk3ZTk5MjFlYjVkY2E1OTFlM2E5ZjJjMDNjZjIw
ZmRiYmI0MDE2ZS4uMzJkMDMzODA1NDViNDFkNWNkOTUxOTcyZjA0MWFmNjdjYmFlODQ4MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5j
cHAKQEAgLTE5NzMsMTMgKzE5NzMsMjYgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJl
cXVpcmVzQ29tcG9zaXRpbmdGb3JQb3NpdGlvbihSZW5kZXJPYmplY3QqIHJlbmRlcmUKICAgICAv
LyBwb3NpdGlvbjpmaXhlZCBlbGVtZW50cyB0aGF0IGNyZWF0ZSB0aGVpciBvd24gc3RhY2tpbmcg
Y29udGV4dCAoZS5nLiBoYXZlIGFuIGV4cGxpY2l0IHotaW5kZXgsCiAgICAgLy8gb3BhY2l0eSwg
dHJhbnNmb3JtKSBjYW4gZ2V0IHRoZWlyIG93biBjb21wb3NpdGVkIGxheWVyLiBBIHN0YWNraW5n
IGNvbnRleHQgaXMgcmVxdWlyZWQgb3RoZXJ3aXNlCiAgICAgLy8gei1pbmRleCBhbmQgY2xpcHBp
bmcgd2lsbCBiZSBicm9rZW4uCi0gICAgaWYgKCEocmVuZGVyZXItPmlzT3V0T2ZGbG93UG9zaXRp
b25lZCgpICYmIHJlbmRlcmVyLT5zdHlsZSgpLT5wb3NpdGlvbigpID09IEZpeGVkUG9zaXRpb24g
JiYgbGF5ZXItPmlzU3RhY2tpbmdDb250ZXh0KCkpKQorICAgIGlmICghcmVuZGVyZXItPmlzUG9z
aXRpb25lZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgRVBvc2l0aW9uIHBv
c2l0aW9uID0gcmVuZGVyZXItPnN0eWxlKCktPnBvc2l0aW9uKCk7CisgICAgYm9vbCBpc0ZpeGVk
ID0gcmVuZGVyZXItPmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpICYmIHBvc2l0aW9uID09IEZpeGVk
UG9zaXRpb247CisgICAgaWYgKGlzRml4ZWQgJiYgIWxheWVyLT5pc1N0YWNraW5nQ29udGV4dCgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgYm9vbCBpc1N0aWNreSA9IHJlbmRl
cmVyLT5pc0luRmxvd1Bvc2l0aW9uZWQoKSAmJiBwb3NpdGlvbiA9PSBTdGlja3lQb3NpdGlvbjsK
KyAgICBpZiAoIWlzRml4ZWQgJiYgIWlzU3RpY2t5KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
KyAgICAvLyBGSVhNRTogYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFi
bGVkIHNob3VsZCBwcm9iYWJseSBiZSByZW5hbWVkIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JW
aWV3cG9ydENvbnN0cmFpbmVkUG9zaXRpb25FbmFibGVkKCkuCiAgICAgaWYgKFNldHRpbmdzKiBz
ZXR0aW5ncyA9IG1fcmVuZGVyVmlldy0+ZG9jdW1lbnQoKS0+c2V0dGluZ3MoKSkKICAgICAgICAg
aWYgKCFzZXR0aW5ncy0+YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFi
bGVkKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAoaXNTdGlja3kpCisg
ICAgICAgIHJldHVybiB0cnVlOworCiAgICAgUmVuZGVyT2JqZWN0KiBjb250YWluZXIgPSByZW5k
ZXJlci0+Y29udGFpbmVyKCk7CiAgICAgLy8gSWYgdGhlIHJlbmRlcmVyIGlzIG5vdCBob29rZWQg
dXAgeWV0IHRoZW4gd2UgaGF2ZSB0byB3YWl0IHVudGlsIGl0IGlzLgogICAgIGlmICghY29udGFp
bmVyKSB7CkBAIC0yNjI4LDcgKzI2NDEsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6
cmVtb3ZlVmlld3BvcnRDb25zdHJhaW5lZExheWVyKFJlbmRlckxheWVyKiBsYXllcikKICAgICBt
X3ZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnMucmVtb3ZlKGxheWVyKTsKIH0KIAotY29uc3QgRml4
ZWRQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHMgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21w
dXRlRml4ZWRWaWV3cG9ydENvbnN0cmFpbnRzKFJlbmRlckxheWVyKiBsYXllcikKK0ZpeGVkUG9z
aXRpb25WaWV3cG9ydENvbnN0cmFpbnRzIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUZp
eGVkVmlld3BvcnRDb25zdHJhaW50cyhSZW5kZXJMYXllciogbGF5ZXIpIGNvbnN0CiB7CiAgICAg
QVNTRVJUKGxheWVyLT5pc0NvbXBvc2l0ZWQoKSk7CiAKQEAgLTI2NjgsNyArMjY4MSw3IEBAIGNv
bnN0IEZpeGVkUG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzIFJlbmRlckxheWVyQ29tcG9zaXRv
cjo6Y29tcHV0ZUZpeGVkVmlld3BvCiAgICAgcmV0dXJuIGNvbnN0cmFpbnRzOwogfQogCi1jb25z
dCBTdGlja3lQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHMgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
Ojpjb21wdXRlU3RpY2t5Vmlld3BvcnRDb25zdHJhaW50cyhSZW5kZXJMYXllciogbGF5ZXIpCitT
dGlja3lQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHMgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpj
b21wdXRlU3RpY2t5Vmlld3BvcnRDb25zdHJhaW50cyhSZW5kZXJMYXllciogbGF5ZXIpIGNvbnN0
CiB7CiAgICAgQVNTRVJUKGxheWVyLT5pc0NvbXBvc2l0ZWQoKSk7CiAKQEAgLTI3MDcsMTcgKzI3
MjAsMTcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlZ2lzdGVyT3JVcGRhdGVWaWV3
cG9ydENvbnN0cmFpbmVkTGF5ZXIoUmVuZGVyTGF5ZXIKIHsKICAgICAvLyBGSVhNRTogV2Ugc2hv
dWxkIHN1cHBvcnQgc3RpY2t5IHBvc2l0aW9uIGhlcmUhIEFuZCB3ZSBzaG91bGQgZXZlbnR1YWxs
IHN1cHBvcnQgZml4ZWQvc3RpY2t5IGVsZW1lbnRzCiAgICAgLy8gdGhhdCBhcmUgaW5zaWRlIG5v
bi1tYWluIGZyYW1lcyBvbmNlIHdlIGdldCBub24tbWFpbiBmcmFtZXMgc2Nyb2xsaW5nIHdpdGgg
dGhlIFNjcm9sbGluZ0Nvb3JkaW5hdG9yLgotICAgIGlmIChsYXllci0+cmVuZGVyZXIoKS0+aXNT
dGlja3lQb3NpdGlvbmVkKCkgfHwgbV9yZW5kZXJWaWV3LT5kb2N1bWVudCgpLT5vd25lckVsZW1l
bnQoKSkKKyAgICBpZiAobV9yZW5kZXJWaWV3LT5kb2N1bWVudCgpLT5vd25lckVsZW1lbnQoKSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nv
b3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKTsKICAgICBpZiAoIXNjcm9s
bGluZ0Nvb3JkaW5hdG9yKQogICAgICAgICByZXR1cm47CiAKKyAgICAvLyBGSVhNRTogcmVuYW1l
IHRvIHN1cHBvcnRzVmlld3BvcnRDb25zdHJhaW5lZFBvc2l0aW9uTGF5ZXJzKCk/CiAgICAgaWYg
KCFzY3JvbGxpbmdDb29yZGluYXRvci0+c3VwcG9ydHNGaXhlZFBvc2l0aW9uTGF5ZXJzKCkgfHwg
IWxheWVyLT5wYXJlbnQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKGxheWVyLT5y
ZW5kZXJlcigpLT5zdHlsZSgpLT5wb3NpdGlvbigpID09IEZpeGVkUG9zaXRpb24pOwogICAgIEFT
U0VSVChtX3ZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnMuY29udGFpbnMobGF5ZXIpKTsKICAgICBB
U1NFUlQobGF5ZXItPmlzQ29tcG9zaXRlZCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCmluZGV4IDczZjczY2I3OTBkZTI4N2NjOWYw
OWE1OWNjOWQxZWYwYTk4OWQzMjYuLmNmMDU3OTVhMGI5MjgwN2Y1MDFiMTYxNWUyMDBjMTRhZmJj
NjA5MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmgKQEAgLTMyNiw4ICszMjYsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJP
clVwZGF0ZVZpZXdwb3J0Q29uc3RyYWluZWRMYXllcihSZW5kZXJMYXllciopOwogICAgIHZvaWQg
dW5yZWdpc3RlclZpZXdwb3J0Q29uc3RyYWluZWRMYXllcihSZW5kZXJMYXllciopOwogCi0gICAg
Y29uc3QgRml4ZWRQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHMgY29tcHV0ZUZpeGVkVmlld3Bv
cnRDb25zdHJhaW50cyhSZW5kZXJMYXllciopOwotICAgIGNvbnN0IFN0aWNreVBvc2l0aW9uVmll
d3BvcnRDb25zdHJhaW50cyBjb21wdXRlU3RpY2t5Vmlld3BvcnRDb25zdHJhaW50cyhSZW5kZXJM
YXllciopOworICAgIEZpeGVkUG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzIGNvbXB1dGVGaXhl
ZFZpZXdwb3J0Q29uc3RyYWludHMoUmVuZGVyTGF5ZXIqKSBjb25zdDsKKyAgICBTdGlja3lQb3Np
dGlvblZpZXdwb3J0Q29uc3RyYWludHMgY29tcHV0ZVN0aWNreVZpZXdwb3J0Q29uc3RyYWludHMo
UmVuZGVyTGF5ZXIqKSBjb25zdDsKIAogICAgIGJvb2wgcmVxdWlyZXNTY3JvbGxMYXllcihSb290
TGF5ZXJBdHRhY2htZW50KSBjb25zdDsKICAgICBib29sIHJlcXVpcmVzSG9yaXpvbnRhbFNjcm9s
bGJhckxheWVyKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTcwMzdkMzNjOTBiN2VmZDM3M2FhMDlhMzE3YWU1
NDBjYmU2MTYyNy4uNTFjMzI3YTc2OTdhYzE1Yjk1NjQxYzM2MDYyMTczYzhiOWI3MGJmZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTEyLTE3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IHBvc2l0aW9uOnN0aWNreSBlbGVtZW50cyB0
byBiZSBtb3ZlZCBieSB0aGUgc2Nyb2xsaW5nIHRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1MjQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RpY2t5IHBvc2l0aW9uIHRlc3RzIHRoYXQgZHVt
cCB0aGUgc2Nyb2xsaW5nIHRyZWUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvdGlsZWQtZHJh
d2luZy9zdGlja3kvc3RpY2t5LWhvcml6b250YWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvdGlsZWQtZHJhd2luZy9zdGlja3kvc3RpY2t5LWhvcml6b250YWwu
aHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL3RpbGVkLWRyYXdpbmcvc3RpY2t5
L3N0aWNreS12ZXJ0aWNhbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy90aWxlZC1kcmF3aW5nL3N0aWNreS9zdGlja3ktdmVydGljYWwuaHRtbDogQWRkZWQuCisK
IDIwMTItMTItMTcgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFRy
YWNrIG1lbnUgc2hvdWxkIGJlIHNvcnRlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL3RpbGVkLWRyYXdpbmcvc3RpY2t5L3N0aWNreS1ob3Jpem9udGFsLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy90aWxlZC1kcmF3aW5nL3N0aWNreS9zdGlja3kt
aG9yaXpvbnRhbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTc5YThjODRiYjgyYzkwMmNlZmZm
YzNiZTgyN2Q1NGMxOWIwNTE1MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy90aWxlZC1kcmF3aW5nL3N0aWNreS9zdGlja3ktaG9yaXpvbnRhbC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw2NSBAQAorTGVmdCBzdGlja3kgUmlnaHQgc3RpY2t5IExlZnQgJSBzdGlj
a3kgUmlnaHQgJSBzdGlja3kgTGVmdCBhbmQgUmlnaHQgTGVmdCBhbmQgUmlnaHQgJQorKFNjcm9s
bGluZyBub2RlCisgICh2aWV3cG9ydCByZWN0IDAgMCA4MDAgNTg1KQorICAoY29udGVudHMgc2l6
ZSAyMDA4IDU4NSkKKyAgKHJlcXVlc3RlZCBzY3JvbGwgcG9zaXRpb24gODAwIDApCisgIChjaGls
ZHJlbiA2CisgICAgKFN0aWNreSBub2RlCisgICAgICAoYW5jaG9yIGVkZ2VzOiBBbmNob3JFZGdl
TGVmdCApCisgICAgICAobGVmdCBvZmZzZXQgMjAuMDApCisgICAgICAoY29udGFpbmluZyBibG9j
ayByZWN0IDYxMi4wMCwgMjUuMDAgNzkyLjAwIHggNDQyLjAwKQorICAgICAgKHN0aWNreSBib3gg
cmVjdCA4MTIuMDAgMjUuMDAgMzAwLjAwIDYwLjAwKQorICAgICAgKHN0aWNreSBib3ggcmVjdCA4
MTIuMDAgMjUuMDAgMzAwLjAwIDYwLjAwKQorICAgICAgKHN0aWNreSBvZmZzZXQgYXQgbGFzdCBs
YXlvdXQgOC4wMCAwLjAwKQorICAgICAgKGxheWVyIHBvc2l0aW9uIGF0IGxhc3QgbGF5b3V0IDgx
Mi4wMCAyNS4wMCkKKyAgICApCisgICAgKFN0aWNreSBub2RlCisgICAgICAoYW5jaG9yIGVkZ2Vz
OiBBbmNob3JFZGdlUmlnaHQgKQorICAgICAgKHJpZ2h0IG9mZnNldCAyMC4wMCkKKyAgICAgIChj
b250YWluaW5nIGJsb2NrIHJlY3QgNjEyLjAwLCAyNS4wMCA3OTIuMDAgeCA0NDIuMDApCisgICAg
ICAoc3RpY2t5IGJveCByZWN0IDgxMi4wMCA5My4wMCAzMDAuMDAgNjAuMDApCisgICAgICAoc3Rp
Y2t5IGJveCByZWN0IDgxMi4wMCA5My4wMCAzMDAuMDAgNjAuMDApCisgICAgICAoc3RpY2t5IG9m
ZnNldCBhdCBsYXN0IGxheW91dCAwLjAwIDAuMDApCisgICAgICAobGF5ZXIgcG9zaXRpb24gYXQg
bGFzdCBsYXlvdXQgNjEyLjAwIDkzLjAwKQorICAgICkKKyAgICAoU3RpY2t5IG5vZGUKKyAgICAg
IChhbmNob3IgZWRnZXM6IEFuY2hvckVkZ2VMZWZ0ICkKKyAgICAgIChsZWZ0IG9mZnNldCAxNjAu
MDApCisgICAgICAoY29udGFpbmluZyBibG9jayByZWN0IDYxMi4wMCwgMjUuMDAgNzkyLjAwIHgg
NDQyLjAwKQorICAgICAgKHN0aWNreSBib3ggcmVjdCA4MTIuMDAgMTYxLjAwIDMwMC4wMCA2MC4w
MCkKKyAgICAgIChzdGlja3kgYm94IHJlY3QgODEyLjAwIDE2MS4wMCAzMDAuMDAgNjAuMDApCisg
ICAgICAoc3RpY2t5IG9mZnNldCBhdCBsYXN0IGxheW91dCAxNDguMDAgMC4wMCkKKyAgICAgIChs
YXllciBwb3NpdGlvbiBhdCBsYXN0IGxheW91dCA4MTIuMDAgMTYxLjAwKQorICAgICkKKyAgICAo
U3RpY2t5IG5vZGUKKyAgICAgIChhbmNob3IgZWRnZXM6IEFuY2hvckVkZ2VSaWdodCApCisgICAg
ICAocmlnaHQgb2Zmc2V0IDE2MC4wMCkKKyAgICAgIChjb250YWluaW5nIGJsb2NrIHJlY3QgNjEy
LjAwLCAyNS4wMCA3OTIuMDAgeCA0NDIuMDApCisgICAgICAoc3RpY2t5IGJveCByZWN0IDgxMi4w
MCAyMjkuMDAgMzAwLjAwIDYwLjAwKQorICAgICAgKHN0aWNreSBib3ggcmVjdCA4MTIuMDAgMjI5
LjAwIDMwMC4wMCA2MC4wMCkKKyAgICAgIChzdGlja3kgb2Zmc2V0IGF0IGxhc3QgbGF5b3V0IDAu
MDAgMC4wMCkKKyAgICAgIChsYXllciBwb3NpdGlvbiBhdCBsYXN0IGxheW91dCA2MTIuMDAgMjI5
LjAwKQorICAgICkKKyAgICAoU3RpY2t5IG5vZGUKKyAgICAgIChhbmNob3IgZWRnZXM6IEFuY2hv
ckVkZ2VMZWZ0IEFuY2hvckVkZ2VSaWdodCApCisgICAgICAobGVmdCBvZmZzZXQgMjAuMDApCisg
ICAgICAocmlnaHQgb2Zmc2V0IDIwLjAwKQorICAgICAgKGNvbnRhaW5pbmcgYmxvY2sgcmVjdCA2
MTIuMDAsIDI1LjAwIDc5Mi4wMCB4IDQ0Mi4wMCkKKyAgICAgIChzdGlja3kgYm94IHJlY3QgODEy
LjAwIDI5Ny4wMCAzMDAuMDAgNjAuMDApCisgICAgICAoc3RpY2t5IGJveCByZWN0IDgxMi4wMCAy
OTcuMDAgMzAwLjAwIDYwLjAwKQorICAgICAgKHN0aWNreSBvZmZzZXQgYXQgbGFzdCBsYXlvdXQg
OC4wMCAwLjAwKQorICAgICAgKGxheWVyIHBvc2l0aW9uIGF0IGxhc3QgbGF5b3V0IDYxMi4wMCAy
OTcuMDApCisgICAgKQorICAgIChTdGlja3kgbm9kZQorICAgICAgKGFuY2hvciBlZGdlczogQW5j
aG9yRWRnZUxlZnQgQW5jaG9yRWRnZVJpZ2h0ICkKKyAgICAgIChsZWZ0IG9mZnNldCAxNjAuMDAp
CisgICAgICAocmlnaHQgb2Zmc2V0IDE2MC4wMCkKKyAgICAgIChjb250YWluaW5nIGJsb2NrIHJl
Y3QgNjEyLjAwLCAyNS4wMCA3OTIuMDAgeCA0NDIuMDApCisgICAgICAoc3RpY2t5IGJveCByZWN0
IDgxMi4wMCAzNjUuMDAgMzAwLjAwIDYwLjAwKQorICAgICAgKHN0aWNreSBib3ggcmVjdCA4MTIu
MDAgMzY1LjAwIDMwMC4wMCA2MC4wMCkKKyAgICAgIChzdGlja3kgb2Zmc2V0IGF0IGxhc3QgbGF5
b3V0IDE0OC4wMCAwLjAwKQorICAgICAgKGxheWVyIHBvc2l0aW9uIGF0IGxhc3QgbGF5b3V0IDYx
Mi4wMCAzNjUuMDApCisgICAgKQorICApCispCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy90aWxlZC1kcmF3aW5nL3N0aWNreS9zdGlja3ktaG9yaXpvbnRhbC5odG1sIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3RpbGVkLWRyYXdpbmcvc3RpY2t5L3N0aWNreS1ob3Jp
em9udGFsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTI3MDU1YjViMWE0NTkzZTA4YmI3NGIwNjM4NDkxOWJi
Yjg1MWQ0MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy90aWxl
ZC1kcmF3aW5nL3N0aWNreS9zdGlja3ktaG9yaXpvbnRhbC5odG1sCkBAIC0wLDAgKzEsNzUgQEAK
KzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFkPgorICA8c3R5bGU+CisgICAgYm9keSB7
CisgICAgICB3aWR0aDogMjAwMHB4OworICAgIH0KKyAgICAKKyAgICAuY29udGFpbmVyIHsKKyAg
ICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgIGhlaWdodDogNDUwcHg7CisgICAgICB3aWR0
aDogODAwcHg7CisgICAgICBtYXJnaW46IDIwcHggYXV0bzsKKyAgICAgIGJhY2tncm91bmQtY29s
b3I6ICNlZWU7CisgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICB9CisgICAgCisg
ICAgLmxlZnQgeworICAgICAgZmxvYXQ6IGxlZnQ7CisgICAgICB3aWR0aDogMjAwcHg7CisgICAg
ICBoZWlnaHQ6IDEwMCU7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOworICAgIH0KKyAg
ICAKKyAgICAuc3RpY2t5IHsKKyAgICAgIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTsKKyAgICAg
IGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgIGJhY2tncm91bmQ6IHNpbHZlcjsKKyAgICAg
IG1hcmdpbjogNHB4OworICAgICAgaGVpZ2h0OiA2MHB4OworICAgICAgd2lkdGg6IDMwMHB4Owor
ICAgIH0KKyAgICAKKyAgICAuYm94IHsKKyAgICAgIGRpc3BsYXk6IG5vbmU7CisgICAgICB3aWR0
aDogMTAwcHg7CisgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgYmFja2dyb3VuZC1jb2xvcjog
Ymx1ZTsKKyAgICB9CisgIDwvc3R5bGU+CisgIDxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CisgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGRvU2Nyb2xsKCkKKyAg
ICB7CisgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgd2luZG93
LnNjcm9sbFRvKDgwMCwgMCk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzJykuaW5uZXJUZXh0ID0gd2lu
ZG93LmludGVybmFscy5zY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHQoZG9jdW1lbnQpOworICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisgICAgICB9LCAxMCk7Cisg
ICAgfQorICAgIAorICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZG9TY3JvbGws
IGZhbHNlKTsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICA8ZGl2IGNsYXNzPSJsZWZ0Ij48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJo
b3Jpem9udGFsIHN0aWNreSIgc3R5bGU9ImxlZnQ6IDIwcHgiPkxlZnQgc3RpY2t5IDxkaXYgY2xh
c3M9ImNvbXBvc2l0ZWQgYm94Ij48L2Rpdj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJob3Jpem9u
dGFsIHN0aWNreSIgc3R5bGU9InJpZ2h0OiAyMHB4Ij5SaWdodCBzdGlja3kgPGRpdiBjbGFzcz0i
Y29tcG9zaXRlZCBib3giPjwvZGl2PjwvZGl2PgorICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwg
c3RpY2t5IiBzdHlsZT0ibGVmdDogMjAlIj5MZWZ0ICUgc3RpY2t5IDxkaXYgY2xhc3M9ImNvbXBv
c2l0ZWQgYm94Ij48L2Rpdj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIHN0aWNr
eSIgc3R5bGU9InJpZ2h0OiAyMCUiPlJpZ2h0ICUgc3RpY2t5IDxkaXYgY2xhc3M9ImNvbXBvc2l0
ZWQgYm94Ij48L2Rpdj48L2Rpdj4KKworICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwgc3RpY2t5
IiBzdHlsZT0ibGVmdDogMjBweDsgcmlnaHQ6IDIwcHgiPkxlZnQgYW5kIFJpZ2h0IDxkaXYgY2xh
c3M9ImNvbXBvc2l0ZWQgYm94Ij48L2Rpdj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJob3Jpem9u
dGFsIHN0aWNreSIgc3R5bGU9ImxlZnQ6IDIwJTsgcmlnaHQ6IDIwJSI+TGVmdCBhbmQgUmlnaHQg
JTxkaXYgY2xhc3M9ImNvbXBvc2l0ZWQgYm94Ij48L2Rpdj48L2Rpdj4KKyAgPC9kaXY+Cis8cHJl
IGlkPSJyZXN1bHRzIj48L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy90aWxlZC1kcmF3aW5nL3N0aWNreS9zdGlja3ktdmVydGljYWwt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3RpbGVkLWRyYXdpbmcvc3Rp
Y2t5L3N0aWNreS12ZXJ0aWNhbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmM1NWQ2ZGUwNDBm
NmMxMTZkZjI2ZTBiN2E4NDlhMGQ5YjRkMzUzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy90aWxlZC1kcmF3aW5nL3N0aWNreS9zdGlja3ktdmVydGljYWwtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNjkgQEAKK0xvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBj
b25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRp
ZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2
ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQg
YWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGlu
IHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBm
dWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBu
b24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFu
aW0gaWQgZXN0IGxhYm9ydW0uCisKK1RvcCBzdGlja3lCb3R0b20gc3RpY2t5VG9wICUgc3RpY2t5
Qm90dG9tICUgc3RpY2t5VG9wIGFuZCBCb3R0b21Ub3AgYW5kIEJvdHRvbSAlCitMb3JlbSBpcHN1
bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVp
dXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEu
IFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFt
Y28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMg
YXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3Nl
IGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBv
Y2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lh
IGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLgorCisoU2Nyb2xsaW5nIG5vZGUK
KyAgKHZpZXdwb3J0IHJlY3QgMCAwIDc4NSA2MDApCisgIChjb250ZW50cyBzaXplIDc4NSAyOTA4
KQorICAocmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiAwIDU4MCkKKyAgKGNoaWxkcmVuIDYKKyAg
ICAoU3RpY2t5IG5vZGUKKyAgICAgIChhbmNob3IgZWRnZXM6IEFuY2hvckVkZ2VUb3AgKQorICAg
ICAgKHRvcCBvZmZzZXQgMjAuMDApCisgICAgICAoY29udGFpbmluZyBibG9jayByZWN0IDczLjAw
LCA0MDYuMDAgNjQwLjAwIHggNjA0LjAwKQorICAgICAgKHN0aWNreSBib3ggcmVjdCA3My4wMCA1
NTguMDAgODAuMDAgMzAwLjAwKQorICAgICAgKHN0aWNreSBib3ggcmVjdCA3My4wMCA1NTguMDAg
ODAuMDAgMzAwLjAwKQorICAgICAgKHN0aWNreSBvZmZzZXQgYXQgbGFzdCBsYXlvdXQgMC4wMCA0
Mi4wMCkKKyAgICAgIChsYXllciBwb3NpdGlvbiBhdCBsYXN0IGxheW91dCA3My4wMCA1NTguMDAp
CisgICAgKQorICAgIChTdGlja3kgbm9kZQorICAgICAgKGFuY2hvciBlZGdlczogQW5jaG9yRWRn
ZUJvdHRvbSkKKyAgICAgIChib3R0b20gb2Zmc2V0IDIwLjAwKQorICAgICAgKGNvbnRhaW5pbmcg
YmxvY2sgcmVjdCA3My4wMCwgNDA2LjAwIDY0MC4wMCB4IDYwNC4wMCkKKyAgICAgIChzdGlja3kg
Ym94IHJlY3QgMTYzLjAwIDU1OC4wMCA4MC4wMCAzMDAuMDApCisgICAgICAoc3RpY2t5IGJveCBy
ZWN0IDE2My4wMCA1NTguMDAgODAuMDAgMzAwLjAwKQorICAgICAgKHN0aWNreSBvZmZzZXQgYXQg
bGFzdCBsYXlvdXQgMC4wMCAwLjAwKQorICAgICAgKGxheWVyIHBvc2l0aW9uIGF0IGxhc3QgbGF5
b3V0IDE2My4wMCA0MDYuMDApCisgICAgKQorICAgIChTdGlja3kgbm9kZQorICAgICAgKGFuY2hv
ciBlZGdlczogQW5jaG9yRWRnZVRvcCApCisgICAgICAodG9wIG9mZnNldCAxMjAuMDApCisgICAg
ICAoY29udGFpbmluZyBibG9jayByZWN0IDczLjAwLCA0MDYuMDAgNjQwLjAwIHggNjA0LjAwKQor
ICAgICAgKHN0aWNreSBib3ggcmVjdCAyNTMuMDAgNTU4LjAwIDgwLjAwIDMwMC4wMCkKKyAgICAg
IChzdGlja3kgYm94IHJlY3QgMjUzLjAwIDU1OC4wMCA4MC4wMCAzMDAuMDApCisgICAgICAoc3Rp
Y2t5IG9mZnNldCBhdCBsYXN0IGxheW91dCAwLjAwIDE0Mi4wMCkKKyAgICAgIChsYXllciBwb3Np
dGlvbiBhdCBsYXN0IGxheW91dCAyNTMuMDAgNTU4LjAwKQorICAgICkKKyAgICAoU3RpY2t5IG5v
ZGUKKyAgICAgIChhbmNob3IgZWRnZXM6IEFuY2hvckVkZ2VCb3R0b20pCisgICAgICAoYm90dG9t
IG9mZnNldCAxMjAuMDApCisgICAgICAoY29udGFpbmluZyBibG9jayByZWN0IDczLjAwLCA0MDYu
MDAgNjQwLjAwIHggNjA0LjAwKQorICAgICAgKHN0aWNreSBib3ggcmVjdCAzNDMuMDAgNTU4LjAw
IDgwLjAwIDMwMC4wMCkKKyAgICAgIChzdGlja3kgYm94IHJlY3QgMzQzLjAwIDU1OC4wMCA4MC4w
MCAzMDAuMDApCisgICAgICAoc3RpY2t5IG9mZnNldCBhdCBsYXN0IGxheW91dCAwLjAwIDAuMDAp
CisgICAgICAobGF5ZXIgcG9zaXRpb24gYXQgbGFzdCBsYXlvdXQgMzQzLjAwIDQwNi4wMCkKKyAg
ICApCisgICAgKFN0aWNreSBub2RlCisgICAgICAoYW5jaG9yIGVkZ2VzOiBBbmNob3JFZGdlVG9w
IEFuY2hvckVkZ2VCb3R0b20pCisgICAgICAodG9wIG9mZnNldCAyMC4wMCkKKyAgICAgIChib3R0
b20gb2Zmc2V0IDIwLjAwKQorICAgICAgKGNvbnRhaW5pbmcgYmxvY2sgcmVjdCA3My4wMCwgNDA2
LjAwIDY0MC4wMCB4IDYwNC4wMCkKKyAgICAgIChzdGlja3kgYm94IHJlY3QgNDMzLjAwIDU1OC4w
MCA4MC4wMCAzMDAuMDApCisgICAgICAoc3RpY2t5IGJveCByZWN0IDQzMy4wMCA1NTguMDAgODAu
MDAgMzAwLjAwKQorICAgICAgKHN0aWNreSBvZmZzZXQgYXQgbGFzdCBsYXlvdXQgMC4wMCA0Mi4w
MCkKKyAgICAgIChsYXllciBwb3NpdGlvbiBhdCBsYXN0IGxheW91dCA0MzMuMDAgNDA2LjAwKQor
ICAgICkKKyAgICAoU3RpY2t5IG5vZGUKKyAgICAgIChhbmNob3IgZWRnZXM6IEFuY2hvckVkZ2VU
b3AgQW5jaG9yRWRnZUJvdHRvbSkKKyAgICAgICh0b3Agb2Zmc2V0IDEyMC4wMCkKKyAgICAgIChi
b3R0b20gb2Zmc2V0IDEyMC4wMCkKKyAgICAgIChjb250YWluaW5nIGJsb2NrIHJlY3QgNzMuMDAs
IDQwNi4wMCA2NDAuMDAgeCA2MDQuMDApCisgICAgICAoc3RpY2t5IGJveCByZWN0IDUyMy4wMCA1
NTguMDAgODAuMDAgMzAwLjAwKQorICAgICAgKHN0aWNreSBib3ggcmVjdCA1MjMuMDAgNTU4LjAw
IDgwLjAwIDMwMC4wMCkKKyAgICAgIChzdGlja3kgb2Zmc2V0IGF0IGxhc3QgbGF5b3V0IDAuMDAg
MTQyLjAwKQorICAgICAgKGxheWVyIHBvc2l0aW9uIGF0IGxhc3QgbGF5b3V0IDUyMy4wMCA0MDYu
MDApCisgICAgKQorICApCispCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy90aWxlZC1kcmF3aW5nL3N0aWNreS9zdGlja3ktdmVydGljYWwuaHRtbCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy90aWxlZC1kcmF3aW5nL3N0aWNreS9zdGlja3ktdmVydGljYWwuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kMjM4NjFiNmY5NDQyNTRkZGM4Y2M2NTM2ZTQ4MTdhZDA4YzNjZjg4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3RpbGVkLWRyYXdpbmcvc3Rp
Y2t5L3N0aWNreS12ZXJ0aWNhbC5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhRE9DVFlQRSBodG1s
PgorCis8aHRtbD4KKzxoZWFkPgorICA8c3R5bGU+CisgICAgYm9keSB7CisgICAgICBoZWlnaHQ6
IDI1MDBweDsKKyAgICB9CisgICAgCisgICAgcCB7CisgICAgICBsaW5lLWhlaWdodDogMS41Owor
ICAgIH0KKyAgICAuY29udGFpbmVyIHsKKyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAg
IHdpZHRoOiA2NTBweDsKKyAgICAgIG1hcmdpbjogNDAwcHggYXV0bzsKKyAgICAgIGJvcmRlcjog
MXB4IHNvbGlkIGJsYWNrOworICAgIH0KKyAgICAKKyAgICAuc3RpY2t5IHsKKyAgICAgIGZsb2F0
OiBsZWZ0OworICAgICAgcG9zaXRpb246IC13ZWJraXQtc3RpY2t5OworICAgICAgYmFja2dyb3Vu
ZDogc2lsdmVyOworICAgICAgbWFyZ2luOiA1cHg7CisgICAgICBoZWlnaHQ6IDMwMHB4OworICAg
ICAgd2lkdGg6IDgwcHg7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0PgorICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cisg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBkb1Nj
cm9sbCgpCisgICAgeworICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAg
ICAgIHdpbmRvdy5zY3JvbGxUbygwLCA1ODApOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKKyAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0cycpLmlubmVy
VGV4dCA9IHdpbmRvdy5pbnRlcm5hbHMuc2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0KGRvY3VtZW50
KTsKKyAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorICAgICAg
fSwgMTApOworICAgIH0KKyAgICAKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcs
IGRvU2Nyb2xsLCBmYWxzZSk7CisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisgICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNv
bnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlk
dW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZl
bmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBh
bGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4g
cmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1
Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5v
biBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQgYW5p
bSBpZCBlc3QgbGFib3J1bS48L3A+CisKKyAgICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCBzdGlja3ki
IHN0eWxlPSJ0b3A6IDIwcHgiPlRvcCBzdGlja3k8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJ2ZXJ0
aWNhbCBzdGlja3kiIHN0eWxlPSJib3R0b206IDIwcHgiPkJvdHRvbSBzdGlja3k8L2Rpdj4KKyAg
ICA8ZGl2IGNsYXNzPSJ2ZXJ0aWNhbCBzdGlja3kiIHN0eWxlPSJ0b3A6IDIwJSI+VG9wICUgc3Rp
Y2t5PC9kaXY+CisgICAgPGRpdiBjbGFzcz0idmVydGljYWwgc3RpY2t5IiBzdHlsZT0iYm90dG9t
OiAyMCUiPkJvdHRvbSAlIHN0aWNreTwvZGl2PgorCisgICAgPGRpdiBjbGFzcz0idmVydGljYWwg
c3RpY2t5IiBzdHlsZT0idG9wOiAyMHB4OyBib3R0b206IDIwcHg7Ij5Ub3AgYW5kIEJvdHRvbTwv
ZGl2PgorICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIHN0aWNreSIgc3R5bGU9InRvcDogMjAlOyBi
b3R0b206IDIwJSI+VG9wIGFuZCBCb3R0b20gJTwvZGl2PgorICAgIDxiciBjbGVhcj0iYWxsIj4K
KworICAgIDxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNp
Y2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQg
ZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1
ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21t
b2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4g
dm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0
dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQg
aW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0u
PC9wPgorICA8L2Rpdj4KKyAgPHByZSBpZD0icmVzdWx0cyI+PC9wcmU+Cis8L2JvZHk+Cis8L2h0
bWw+Cg==
</data>
<flag name="review"
          id="196930"
          type_id="1"
          status="+"
          setter="bdakin"
    />
          </attachment>
      

    </bug>

</bugzilla>