<?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>152560</bug_id>
          
          <creation_ts>2015-12-25 17:14:28 -0800</creation_ts>
          <short_desc>Subpixel rendering: Add subpixel support for outline.</short_desc>
          <delta_ts>2015-12-25 21:28:42 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1151344</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2015-12-25 17:14:28 -0800</bug_when>
    <thetext>ssia.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151345</commentid>
    <comment_count>1</comment_count>
      <attachid>267922</attachid>
    <who name="alan">zalan</who>
    <bug_when>2015-12-25 17:29:33 -0800</bug_when>
    <thetext>Created attachment 267922
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151346</commentid>
    <comment_count>2</comment_count>
      <attachid>267923</attachid>
    <who name="alan">zalan</who>
    <bug_when>2015-12-25 17:45:29 -0800</bug_when>
    <thetext>Created attachment 267923
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151352</commentid>
    <comment_count>3</comment_count>
      <attachid>267923</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-25 21:28:38 -0800</bug_when>
    <thetext>Comment on attachment 267923
Patch

Clearing flags on attachment: 267923

Committed r194421: &lt;http://trac.webkit.org/changeset/194421&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151353</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-25 21:28:42 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267922</attachid>
            <date>2015-12-25 17:29:33 -0800</date>
            <delta_ts>2015-12-25 17:45:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152560-20151225172857.patch</filename>
            <type>text/plain</type>
            <size>26510</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0NDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM1YWU3MDYxZDE4MWEx
NTQ0M2UyOWYzMWUyNmIyODFjZmI0MTQ0OS4uZGE5OTk2NjBmMjE2ZTEwNDUwYzZhNDhlY2FmOTFi
YTZjNDJiZmRjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE1LTEyLTI1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5n
OiBBZGQgc3VicGl4ZWwgc3VwcG9ydCBmb3Igb3V0bGluZS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjU2MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBz
dWJwaXhlbCBvdXRsaW5lLXdpZHRoL291dGxpbmUtb2Zmc2V0LgorCisgICAgICAgIFRlc3Q6IGZh
c3QvYm9yZGVycy9oaWRwaS1vdXRsaW5lLWhhaXJsaW5lLXBhaW50aW5nLmh0bWwKKworICAgICAg
ICAqIGNzcy9DU1NQcm9wZXJ0eU5hbWVzLmluOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NT
U1Byb3BlcnR5QW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5QW5p
bWF0aW9uV3JhcHBlck1hcDo6Q1NTUHJvcGVydHlBbmltYXRpb25XcmFwcGVyTWFwKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NDb250ZXh0TWFjLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50Ojpjb21w
dXRlTWF4T3V0bGluZVNpemUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6cGFp
bnRPdXRsaW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnBhaW50QXJlYUVsZW1lbnRGb2N1c1JpbmcpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVySW5saW5lOjpwYWludE91dGxpbmVGb3JMaW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6YWRqdXN0UmVj
dEZvck91dGxpbmVBbmRTaGFkb3cpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OnNldE1heGltYWxPdXRsaW5lU2l6ZSk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
c3R5bGUvT3V0bGluZVZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpPdXRsaW5lVmFsdWU6Om9m
ZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpPdXRsaW5lVmFsdWU6Ok91dGxpbmVWYWx1ZSk6IERl
bGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisKIDIwMTUt
MTItMjQgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBBU1NFUlRJ
T04gRkFJTEVEOiB4MiA+PSB4MSBpbiBXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpkcmF3TGluZUZv
ckJveFNpZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVz
LmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KaW5kZXggZTJiZDZh
NDdmMTJmYTY4OWQzYmI5MWVkMWY5MGU3MjM0NTYzNTA2Zi4uYTc3OThhOTU1ZDZlNDYxOTIyODNm
NmI5YjkzOWQ1NDdlOTlmOThiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
b3BlcnR5TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMu
aW4KQEAgLTI3Nyw5ICsyNzcsOSBAQCBvcGFjaXR5CiBvcnBoYW5zIFtJbmhlcml0ZWQsIEF1dG9G
dW5jdGlvbnNdCiBvdXRsaW5lIFtMb25naGFuZHM9b3V0bGluZS1jb2xvcnxvdXRsaW5lLXN0eWxl
fG91dGxpbmUtd2lkdGhdCiBvdXRsaW5lLWNvbG9yIFtWaXNpdGVkTGlua0NvbG9yU3VwcG9ydCwg
SW5pdGlhbD1pbnZhbGlkQ29sb3JdCi1vdXRsaW5lLW9mZnNldCBbQ29udmVydGVyPUNvbXB1dGVk
TGVuZ3RoPGludD5dCitvdXRsaW5lLW9mZnNldCBbQ29udmVydGVyPUNvbXB1dGVkTGVuZ3RoPGZs
b2F0Pl0KIG91dGxpbmUtc3R5bGUgW0N1c3RvbT1BbGxdCi1vdXRsaW5lLXdpZHRoIFtDb252ZXJ0
ZXI9TGluZVdpZHRoPHVuc2lnbmVkIHNob3J0Pl0KK291dGxpbmUtd2lkdGggW0NvbnZlcnRlcj1M
aW5lV2lkdGg8ZmxvYXQ+XQogb3ZlcmZsb3cgW0xvbmdoYW5kcz1vdmVyZmxvdy14fG92ZXJmbG93
LXldCiBvdmVyZmxvdy13cmFwCiBvdmVyZmxvdy14CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKaW5kZXggOTU0ZDY2YjRl
MWNlZmJhMDIwZWUxZDJlZGNkODhjMDAxNWEwODBhZS4uYTIyYWNmYTBmY2YzMmYxZDE4Njk4ZDMx
YzFlODNhMjVlZWQ1YzQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcApAQCAtMTI5Miw4ICsxMjkyLDggQEAgQ1NT
UHJvcGVydHlBbmltYXRpb25XcmFwcGVyTWFwOjpDU1NQcm9wZXJ0eUFuaW1hdGlvbldyYXBwZXJN
YXAoKQogICAgICAgICBuZXcgUHJvcGVydHlXcmFwcGVyPHNob3J0PihDU1NQcm9wZXJ0eU9ycGhh
bnMsICZSZW5kZXJTdHlsZTo6b3JwaGFucywgJlJlbmRlclN0eWxlOjpzZXRPcnBoYW5zKSwKICAg
ICAgICAgbmV3IFByb3BlcnR5V3JhcHBlcjxzaG9ydD4oQ1NTUHJvcGVydHlXaWRvd3MsICZSZW5k
ZXJTdHlsZTo6d2lkb3dzLCAmUmVuZGVyU3R5bGU6OnNldFdpZG93cyksCiAgICAgICAgIG5ldyBM
ZW5ndGhQcm9wZXJ0eVdyYXBwZXI8TGVuZ3RoPihDU1NQcm9wZXJ0eUxpbmVIZWlnaHQsICZSZW5k
ZXJTdHlsZTo6c3BlY2lmaWVkTGluZUhlaWdodCwgJlJlbmRlclN0eWxlOjpzZXRMaW5lSGVpZ2h0
KSwKLSAgICAgICAgbmV3IFByb3BlcnR5V3JhcHBlcjxpbnQ+KENTU1Byb3BlcnR5T3V0bGluZU9m
ZnNldCwgJlJlbmRlclN0eWxlOjpvdXRsaW5lT2Zmc2V0LCAmUmVuZGVyU3R5bGU6OnNldE91dGxp
bmVPZmZzZXQpLAotICAgICAgICBuZXcgUHJvcGVydHlXcmFwcGVyPHVuc2lnbmVkIHNob3J0PihD
U1NQcm9wZXJ0eU91dGxpbmVXaWR0aCwgJlJlbmRlclN0eWxlOjpvdXRsaW5lV2lkdGgsICZSZW5k
ZXJTdHlsZTo6c2V0T3V0bGluZVdpZHRoKSwKKyAgICAgICAgbmV3IFByb3BlcnR5V3JhcHBlcjxm
bG9hdD4oQ1NTUHJvcGVydHlPdXRsaW5lT2Zmc2V0LCAmUmVuZGVyU3R5bGU6Om91dGxpbmVPZmZz
ZXQsICZSZW5kZXJTdHlsZTo6c2V0T3V0bGluZU9mZnNldCksCisgICAgICAgIG5ldyBQcm9wZXJ0
eVdyYXBwZXI8ZmxvYXQ+KENTU1Byb3BlcnR5T3V0bGluZVdpZHRoLCAmUmVuZGVyU3R5bGU6Om91
dGxpbmVXaWR0aCwgJlJlbmRlclN0eWxlOjpzZXRPdXRsaW5lV2lkdGgpLAogICAgICAgICBuZXcg
UHJvcGVydHlXcmFwcGVyPGZsb2F0PihDU1NQcm9wZXJ0eUxldHRlclNwYWNpbmcsICZSZW5kZXJT
dHlsZTo6bGV0dGVyU3BhY2luZywgJlJlbmRlclN0eWxlOjpzZXRMZXR0ZXJTcGFjaW5nKSwKICAg
ICAgICAgbmV3IExlbmd0aFByb3BlcnR5V3JhcHBlcjxMZW5ndGg+KENTU1Byb3BlcnR5V29yZFNw
YWNpbmcsICZSZW5kZXJTdHlsZTo6d29yZFNwYWNpbmcsICZSZW5kZXJTdHlsZTo6c2V0V29yZFNw
YWNpbmcpLAogICAgICAgICBuZXcgTGVuZ3RoUHJvcGVydHlXcmFwcGVyPExlbmd0aD4oQ1NTUHJv
cGVydHlUZXh0SW5kZW50LCAmUmVuZGVyU3R5bGU6OnRleHRJbmRlbnQsICZSZW5kZXJTdHlsZTo6
c2V0VGV4dEluZGVudCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dC5oCmluZGV4IGU3YjI4Yjk0YWRjNWUxMDEzNDk0MjhiOWVmMzMyM2I4
YjRkYTcxMjEuLjYwMTY1MWVkOTgwMTI4ZjMyYWYxZGE3N2E1NTFkNjczNTQzOTJjMzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5o
CkBAIC0zODksMTAgKzM4OSwxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBtdXN0VXNlU2hhZG93Qmx1
cigpIGNvbnN0OwogI2VuZGlmCiAKLSAgICB2b2lkIGRyYXdGb2N1c1JpbmcoY29uc3QgVmVjdG9y
PEludFJlY3Q+JiwgaW50IHdpZHRoLCBpbnQgb2Zmc2V0LCBjb25zdCBDb2xvciYpOwotICAgIHZv
aWQgZHJhd0ZvY3VzUmluZyhjb25zdCBQYXRoJiwgaW50IHdpZHRoLCBpbnQgb2Zmc2V0LCBjb25z
dCBDb2xvciYpOworICAgIHZvaWQgZHJhd0ZvY3VzUmluZyhjb25zdCBWZWN0b3I8SW50UmVjdD4m
LCBmbG9hdCB3aWR0aCwgZmxvYXQgb2Zmc2V0LCBjb25zdCBDb2xvciYpOworICAgIHZvaWQgZHJh
d0ZvY3VzUmluZyhjb25zdCBQYXRoJiwgZmxvYXQgd2lkdGgsIGZsb2F0IG9mZnNldCwgY29uc3Qg
Q29sb3ImKTsKICNpZiBQTEFURk9STShNQUMpCi0gICAgdm9pZCBkcmF3Rm9jdXNSaW5nKGNvbnN0
IFZlY3RvcjxJbnRSZWN0PiYsIGludCB3aWR0aCwgaW50IG9mZnNldCwgZG91YmxlIHRpbWVPZmZz
ZXQsIGJvb2wmIG5lZWRzUmVkcmF3KTsKKyAgICB2b2lkIGRyYXdGb2N1c1JpbmcoY29uc3QgVmVj
dG9yPEludFJlY3Q+JiwgZmxvYXQgd2lkdGgsIGZsb2F0IG9mZnNldCwgZG91YmxlIHRpbWVPZmZz
ZXQsIGJvb2wmIG5lZWRzUmVkcmF3KTsKICNlbmRpZgogCiAgICAgdm9pZCBzZXRMaW5lQ2FwKExp
bmVDYXApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCmluZGV4IDFlNTFjNGI4ZDUxMzNh
NTM0Y2Q4MmQzNGQ0ZjUyYjc1MzM2ZWRmN2EuLjJlYjg0MWU4YzhmMWY2YWU0ZmI5Nzc5OGQ4Mjhl
YWVlNzlkOWQxNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKQEAgLTU0MCw3ICs1
NDAsNyBAQCBzdGF0aWMgaW5saW5lIFN0cm9rZVN0eWxlIGZvY3VzUmluZ1N0cm9rZVN0eWxlKCkK
ICNlbmRpZgogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBQ
YXRoJiBwYXRoLCBpbnQgd2lkdGgsIGludCAvKiBvZmZzZXQgKi8sIGNvbnN0IENvbG9yJiBjb2xv
cikKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKGNvbnN0IFBhdGgmIHBhdGgs
IGZsb2F0IHdpZHRoLCBmbG9hdCAvKiBvZmZzZXQgKi8sIGNvbnN0IENvbG9yJiBjb2xvcikKIHsK
ICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGRyYXcgcGF0aHMgdGhhdCBkZXNjcmliZSBhIHJlY3Rh
bmdsZSB3aXRoIHJvdW5kZWQgY29ybmVycwogICAgIC8vIHNvIGFzIHRvIGJlIGNvbnNpc3RlbnQg
d2l0aCBob3cgd2UgZHJhdyByZWN0YW5ndWxhciBmb2N1cyByaW5ncy4KQEAgLTU1OCw3ICs1NTgs
NyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBQYXRoJiBwYXRo
LCBpbnQgd2lkdGgsIGludCAvKiBvZmZzZXQgKgogICAgIGNhaXJvX3Jlc3RvcmUoY3IpOwogfQog
Ci12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBWZWN0b3I8SW50UmVj
dD4mIHJlY3RzLCBpbnQgd2lkdGgsIGludCAvKiBvZmZzZXQgKi8sIGNvbnN0IENvbG9yJiBjb2xv
cikKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKGNvbnN0IFZlY3RvcjxJbnRS
ZWN0PiYgcmVjdHMsIGZsb2F0IHdpZHRoLCBmbG9hdCAvKiBvZmZzZXQgKi8sIGNvbnN0IENvbG9y
JiBjb2xvcikKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhp
Y3NDb250ZXh0TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dy
YXBoaWNzQ29udGV4dE1hYy5tbQppbmRleCA4MjcwNDI0NjY4NDgzNmE4OGY4YzRiZGM1MmU4NTYw
OTg5MjZiZDhmLi4wMjU1OGRhMDA5ZDMxMjMyMzdhM2MyMDk3N2ViMGM2ZDZiYjBjZjJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NDb250
ZXh0TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFw
aGljc0NvbnRleHRNYWMubW0KQEAgLTcyLDcgKzcyLDcgQEAgc3RhdGljIGJvb2wgZHJhd0ZvY3Vz
UmluZ1RvQ29udGV4dEF0VGltZShDR0NvbnRleHRSZWYgY29udGV4dCwgQ0dQYXRoUmVmIGZvY3Vz
UmkKIH0KICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZHJhd0ZvY3VzUmluZyhjb25zdCBQYXRoJiBwYXRoLCBpbnQgLyogd2lkdGggKi8sIGludCAvKiBv
ZmZzZXQgKi8sIGNvbnN0IENvbG9yJikKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNS
aW5nKGNvbnN0IFBhdGgmIHBhdGgsIGZsb2F0IC8qIHdpZHRoICovLCBmbG9hdCAvKiBvZmZzZXQg
Ki8sIGNvbnN0IENvbG9yJikKIHsKICNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKHBhaW50aW5n
RGlzYWJsZWQoKSB8fCBwYXRoLmlzTnVsbCgpKQpAQCAtODUsNyArODUsNyBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBQYXRoJiBwYXRoLCBpbnQgLyogd2lkdGgg
Ki8sIGludCAvKiBvZgogfQogCiAjaWYgUExBVEZPUk0oTUFDKQotdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmRyYXdGb2N1c1JpbmcoY29uc3QgVmVjdG9yPEludFJlY3Q+JiByZWN0cywgaW50LCBpbnQg
b2Zmc2V0LCBkb3VibGUgdGltZU9mZnNldCwgYm9vbCYgbmVlZHNSZWRyYXcpCit2b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBWZWN0b3I8SW50UmVjdD4mIHJlY3RzLCBm
bG9hdCwgZmxvYXQgb2Zmc2V0LCBkb3VibGUgdGltZU9mZnNldCwgYm9vbCYgbmVlZHNSZWRyYXcp
CiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtOTgs
NyArOTgsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBWZWN0
b3I8SW50UmVjdD4mIHJlY3RzLCBpbnQsIGludCBvZmZzZQogfQogI2VuZGlmCiAKLXZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKGNvbnN0IFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMs
IGludCwgaW50IG9mZnNldCwgY29uc3QgQ29sb3ImKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRy
YXdGb2N1c1JpbmcoY29uc3QgVmVjdG9yPEludFJlY3Q+JiByZWN0cywgZmxvYXQsIGZsb2F0IG9m
ZnNldCwgY29uc3QgQ29sb3ImKQogewogI2lmICFQTEFURk9STShJT1MpCiAgICAgaWYgKHBhaW50
aW5nRGlzYWJsZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9HcmFwaGljc0NvbnRleHRDR1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q0dXaW4uY3BwCmluZGV4IGE4NzNkODMxYWRi
YTU1NzVhMGQ0MDI4OWQxMTNlNTk3YjU2ZmJhZjkuLjllZGFjNTJiYmU0YThmZTczZjY0Nzc3ODZk
YjI0ZjQ4Yjk4OWNkMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9HcmFwaGljc0NvbnRleHRDR1dpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENHV2luLmNwcApAQCAtMTMwLDE0ICsx
MzAsMTQgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdXaW5kb3dzQml0bWFwKFdpbmRvd3NC
aXRtYXAqIGltYWdlLCBjb25zdCBJbnRQb2ludCYgcG8KICAgICBDR0NvbnRleHREcmF3SW1hZ2Uo
bV9kYXRhLT5tX2NnQ29udGV4dC5nZXQoKSwgQ0dSZWN0TWFrZShwb2ludC54KCksIHBvaW50Lnko
KSwgaW1hZ2UtPnNpemUoKS53aWR0aCgpLCBpbWFnZS0+c2l6ZSgpLmhlaWdodCgpKSwgY2dJbWFn
ZS5nZXQoKSk7ICAgCiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKGNv
bnN0IFBhdGgmIHBhdGgsIGludCB3aWR0aCwgaW50IG9mZnNldCwgY29uc3QgQ29sb3ImIGNvbG9y
KQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1JpbmcoY29uc3QgUGF0aCYgcGF0aCwg
ZmxvYXQgd2lkdGgsIGZsb2F0IG9mZnNldCwgY29uc3QgQ29sb3ImIGNvbG9yKQogewogICAgIC8v
IEZJWE1FOiBpbXBsZW1lbnQKIH0KIAogLy8gRklYTUU6IFRoaXMgaXMgbmVhcmx5IGlkZW50aWNh
bCB0byB0aGUgR3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nIGZ1bmN0aW9uIGluIEdyYXBo
aWNzQ29udGV4dE1hYy5tbS4KIC8vIFRoZSBjb2RlIGNvdWxkIG1vdmUgdG8gR3JhcGhpY3NDb250
ZXh0Q0cuY3BwIGFuZCBiZSBzaGFyZWQuCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3Vz
UmluZyhjb25zdCBWZWN0b3I8SW50UmVjdD4mIHJlY3RzLCBpbnQgd2lkdGgsIGludCBvZmZzZXQs
IGNvbnN0IENvbG9yJiBjb2xvcikKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5n
KGNvbnN0IFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMsIGZsb2F0IHdpZHRoLCBmbG9hdCBvZmZzZXQs
IGNvbnN0IENvbG9yJiBjb2xvcikKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAg
ICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAK
aW5kZXggZWVkYzcwZGFkMTAxNTMwMDYzNmJlNDMzZTJiY2YxY2FiNzUwNDRjYy4uNzA1NzRiNmZh
NGY4MjZlM2FmYzIzYWMxNzIyOGM0Yzk3NTZjZmE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbGVtZW50LmNwcApAQCAtMzc3LDcgKzM3Nyw3IEBAIHZvaWQgUmVuZGVyRWxl
bWVudDo6Y29tcHV0ZU1heE91dGxpbmVTaXplKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkgY29u
c3QKICAgICAvLyBkdXJpbmcgc3R5bGVEaWRDaGFuZ2UgKGl0J3MgdXNlZCBieSBjbGlwcGVkT3Zl
cmZsb3dSZWN0Rm9yUmVwYWludCgpKS4KICAgICBpZiAoIXN0eWxlLm91dGxpbmVXaWR0aCgpKQog
ICAgICAgICByZXR1cm47Ci0gICAgaW50IG1heE91dGxpbmVTaXplID0gc3R5bGUub3V0bGluZVNp
emUoKTsKKyAgICBmbG9hdCBtYXhPdXRsaW5lU2l6ZSA9IHN0eWxlLm91dGxpbmVTaXplKCk7CiAg
ICAgaWYgKHN0eWxlLm91dGxpbmVTdHlsZUlzQXV0bygpKQogICAgICAgICBtYXhPdXRsaW5lU2l6
ZSA9IHN0ZDo6bWF4KHRoZW1lKCkucGxhdGZvcm1Gb2N1c1JpbmdXaWR0aCgpICsgc3R5bGUub3V0
bGluZU9mZnNldCgpLCBtYXhPdXRsaW5lU2l6ZSk7CiAKQEAgLTIxMDcsOSArMjEwNyw4IEBAIHZv
aWQgUmVuZGVyRWxlbWVudDo6cGFpbnRPdXRsaW5lKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25z
dCBMYXlvdXRSZWN0JiBwYWludFJlCiAgICAgICAgIHJldHVybjsKIAogICAgIFJlbmRlclN0eWxl
JiBzdHlsZVRvVXNlID0gc3R5bGUoKTsKLSAgICBMYXlvdXRVbml0IG91dGxpbmVXaWR0aCA9IHN0
eWxlVG9Vc2Uub3V0bGluZVdpZHRoKCk7Ci0KLSAgICBpbnQgb3V0bGluZU9mZnNldCA9IHN0eWxl
VG9Vc2Uub3V0bGluZU9mZnNldCgpOworICAgIGZsb2F0IG91dGxpbmVXaWR0aCA9IGZsb29yVG9E
ZXZpY2VQaXhlbChzdHlsZVRvVXNlLm91dGxpbmVXaWR0aCgpLCBkb2N1bWVudCgpLmRldmljZVNj
YWxlRmFjdG9yKCkpOworICAgIGZsb2F0IG91dGxpbmVPZmZzZXQgPSBmbG9vclRvRGV2aWNlUGl4
ZWwoc3R5bGVUb1VzZS5vdXRsaW5lT2Zmc2V0KCksIGRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0
b3IoKSk7CiAKICAgICAvLyBPbmx5IHBhaW50IHRoZSBmb2N1cyByaW5nIGJ5IGhhbmQgaWYgdGhl
IHRoZW1lIGlzbid0IGFibGUgdG8gZHJhdyBpdC4KICAgICBpZiAoc3R5bGVUb1VzZS5vdXRsaW5l
U3R5bGVJc0F1dG8oKSAmJiAhdGhlbWUoKS5zdXBwb3J0c0ZvY3VzUmluZyhzdHlsZVRvVXNlKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCmluZGV4IDE0YzdhMDIzMDJj
MTM2YmY2MDc3NWQ1OTU1ZWZhZjU3Mzg1NTFhMTAuLjNiZDdjMTc1NDU3MDMzM2Q3NDJmYmYyM2I3
ZTRlYTU4MTQ0NTdiY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNw
cApAQCAtNTE2LDcgKzUxNiw3IEBAIHZvaWQgUmVuZGVySW1hZ2U6OnBhaW50QXJlYUVsZW1lbnRG
b2N1c1JpbmcoUGFpbnRJbmZvJiBwYWludEluZm8pCiAgICAgLy8gRklYTUU6IERvIHdlIG5lZWQg
YWRkaXRpb25hbCBjb2RlIHRvIGNsaXAgdGhlIHBhdGggdG8gdGhlIGltYWdlJ3MgYm91bmRpbmcg
Ym94PwogCiAgICAgUmVuZGVyU3R5bGUqIGFyZWFFbGVtZW50U3R5bGUgPSBhcmVhRWxlbWVudC5j
b21wdXRlZFN0eWxlKCk7Ci0gICAgdW5zaWduZWQgc2hvcnQgb3V0bGluZVdpZHRoID0gYXJlYUVs
ZW1lbnRTdHlsZS0+b3V0bGluZVdpZHRoKCk7CisgICAgZmxvYXQgb3V0bGluZVdpZHRoID0gYXJl
YUVsZW1lbnRTdHlsZS0+b3V0bGluZVdpZHRoKCk7CiAgICAgaWYgKCFvdXRsaW5lV2lkdGgpCiAg
ICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcklubGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNw
cAppbmRleCBmYjk2YzM4MWJhZDMwYWJlMmZhOWVjNmE3YzY3ZTZiNjk0MzM3NjVkLi5hNzE2Y2Q5
YTNiYjQ2YjVjZGEyOTI3ZjI5NmNkNWQwMDhhZjJmMWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW5saW5lLmNwcApAQCAtMTY0MiwxMiArMTY0MiwxMiBAQCB2b2lkIFJlbmRl
cklubGluZTo6cGFpbnRPdXRsaW5lRm9yTGluZShHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29u
dGV4dCwgY29uc3QgTAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgQ29sb3Igb3V0bGluZUNvbG9yKQogewogICAgIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZVRv
VXNlID0gc3R5bGUoKTsKLSAgICBpbnQgb3V0bGluZVdpZHRoID0gc3R5bGVUb1VzZS5vdXRsaW5l
V2lkdGgoKTsKKyAgICBmbG9hdCBvdXRsaW5lV2lkdGggPSBzdHlsZVRvVXNlLm91dGxpbmVXaWR0
aCgpOwogICAgIEVCb3JkZXJTdHlsZSBvdXRsaW5lU3R5bGUgPSBzdHlsZVRvVXNlLm91dGxpbmVT
dHlsZSgpOwogCiAgICAgYm9vbCBhbnRpYWxpYXMgPSBzaG91bGRBbnRpYWxpYXNMaW5lcyhncmFw
aGljc0NvbnRleHQpOwogCi0gICAgaW50IG9mZnNldCA9IHN0eWxlKCkub3V0bGluZU9mZnNldCgp
OworICAgIGZsb2F0IG9mZnNldCA9IHN0eWxlKCkub3V0bGluZU9mZnNldCgpOwogCiAgICAgTGF5
b3V0UmVjdCBib3goTGF5b3V0UG9pbnQocGFpbnRPZmZzZXQueCgpICsgdGhpc2xpbmUueCgpIC0g
b2Zmc2V0LCBwYWludE9mZnNldC55KCkgKyB0aGlzbGluZS55KCkgLSBvZmZzZXQpLAogICAgICAg
ICBMYXlvdXRTaXplKHRoaXNsaW5lLndpZHRoKCkgKyBvZmZzZXQsIHRoaXNsaW5lLmhlaWdodCgp
ICsgb2Zmc2V0KSk7CkBAIC0xNjg2LDcgKzE2ODYsNyBAQCB2b2lkIFJlbmRlcklubGluZTo6cGFp
bnRPdXRsaW5lRm9yTGluZShHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwgY29uc3Qg
TAogICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LAogICAgICAgICAg
ICAgRmxvYXRSZWN0KEZsb2F0UG9pbnQocGl4ZWxTbmFwcGVkQm94LngoKSAtIG91dGxpbmVXaWR0
aCwKICAgICAgICAgICAgIHBpeGVsU25hcHBlZEJveC55KCkgLSBvdXRsaW5lV2lkdGgpLAotICAg
ICAgICAgICAgRmxvYXRQb2ludChzdGQ6Om1pbihwaXhlbFNuYXBwZWRCb3gubWF4WCgpICsgb3V0
bGluZVdpZHRoLCAobGFzdGxpbmUuaXNFbXB0eSgpID8gMTAwMDAwMCA6IHBpeGVsU25hcHBlZExh
c3RMaW5lLngoKSkpLAorICAgICAgICAgICAgRmxvYXRQb2ludChzdGQ6Om1pbjxmbG9hdD4ocGl4
ZWxTbmFwcGVkQm94Lm1heFgoKSArIG91dGxpbmVXaWR0aCwgKGxhc3RsaW5lLmlzRW1wdHkoKSA/
IDEwMDAwMDAgOiBwaXhlbFNuYXBwZWRMYXN0TGluZS54KCkpKSwKICAgICAgICAgICAgIHBpeGVs
U25hcHBlZEJveC55KCkpKSwKICAgICAgICAgICAgIEJTVG9wLCBvdXRsaW5lQ29sb3IsIG91dGxp
bmVTdHlsZSwKICAgICAgICAgICAgIG91dGxpbmVXaWR0aCwKQEAgLTE2OTUsNyArMTY5NSw3IEBA
IHZvaWQgUmVuZGVySW5saW5lOjpwYWludE91dGxpbmVGb3JMaW5lKEdyYXBoaWNzQ29udGV4dCYg
Z3JhcGhpY3NDb250ZXh0LCBjb25zdCBMCiAgICAgCiAgICAgaWYgKGxhc3RsaW5lLm1heFgoKSA8
IHRoaXNsaW5lLm1heFgoKSkKICAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29u
dGV4dCwKLSAgICAgICAgICAgIEZsb2F0UmVjdChGbG9hdFBvaW50KHN0ZDo6bWF4KGxhc3RsaW5l
LmlzRW1wdHkoKSA/IC0xMDAwMDAwIDogcGl4ZWxTbmFwcGVkTGFzdExpbmUubWF4WCgpLCBwaXhl
bFNuYXBwZWRCb3gueCgpIC0gb3V0bGluZVdpZHRoKSwKKyAgICAgICAgICAgIEZsb2F0UmVjdChG
bG9hdFBvaW50KHN0ZDo6bWF4PGZsb2F0PihsYXN0bGluZS5pc0VtcHR5KCkgPyAtMTAwMDAwMCA6
IHBpeGVsU25hcHBlZExhc3RMaW5lLm1heFgoKSwgcGl4ZWxTbmFwcGVkQm94LngoKSAtIG91dGxp
bmVXaWR0aCksCiAgICAgICAgICAgICBwaXhlbFNuYXBwZWRCb3gueSgpIC0gb3V0bGluZVdpZHRo
KSwKICAgICAgICAgICAgIEZsb2F0UG9pbnQocGl4ZWxTbmFwcGVkQm94Lm1heFgoKSArIG91dGxp
bmVXaWR0aCwKICAgICAgICAgICAgIHBpeGVsU25hcHBlZEJveC55KCkpKSwKQEAgLTE3MTksNyAr
MTcxOSw3IEBAIHZvaWQgUmVuZGVySW5saW5lOjpwYWludE91dGxpbmVGb3JMaW5lKEdyYXBoaWNz
Q29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBjb25zdCBMCiAgICAgICAgIGRyYXdMaW5lRm9yQm94
U2lkZShncmFwaGljc0NvbnRleHQsCiAgICAgICAgICAgICBGbG9hdFJlY3QoRmxvYXRQb2ludChw
aXhlbFNuYXBwZWRCb3gueCgpIC0gb3V0bGluZVdpZHRoLAogICAgICAgICAgICAgcGl4ZWxTbmFw
cGVkQm94Lm1heFkoKSksCi0gICAgICAgICAgICBGbG9hdFBvaW50KHN0ZDo6bWluKHBpeGVsU25h
cHBlZEJveC5tYXhYKCkgKyBvdXRsaW5lV2lkdGgsICFuZXh0bGluZS5pc0VtcHR5KCkgPyBwaXhl
bFNuYXBwZWROZXh0TGluZS54KCkgKyAxIDogMTAwMDAwMCksCisgICAgICAgICAgICBGbG9hdFBv
aW50KHN0ZDo6bWluPGZsb2F0PihwaXhlbFNuYXBwZWRCb3gubWF4WCgpICsgb3V0bGluZVdpZHRo
LCAhbmV4dGxpbmUuaXNFbXB0eSgpID8gcGl4ZWxTbmFwcGVkTmV4dExpbmUueCgpICsgMSA6IDEw
MDAwMDApLAogICAgICAgICAgICAgcGl4ZWxTbmFwcGVkQm94Lm1heFkoKSArIG91dGxpbmVXaWR0
aCkpLAogICAgICAgICAgICAgQlNCb3R0b20sIG91dGxpbmVDb2xvciwgb3V0bGluZVN0eWxlLAog
ICAgICAgICAgICAgb3V0bGluZVdpZHRoLApAQCAtMTcyOCw3ICsxNzI4LDcgQEAgdm9pZCBSZW5k
ZXJJbmxpbmU6OnBhaW50T3V0bGluZUZvckxpbmUoR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0Nv
bnRleHQsIGNvbnN0IEwKICAgICAKICAgICBpZiAobmV4dGxpbmUubWF4WCgpIDwgdGhpc2xpbmUu
bWF4WCgpKQogICAgICAgICBkcmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LAotICAg
ICAgICAgICAgRmxvYXRSZWN0KEZsb2F0UG9pbnQoc3RkOjptYXgoIW5leHRsaW5lLmlzRW1wdHko
KSA/IHBpeGVsU25hcHBlZE5leHRMaW5lLm1heFgoKSA6IC0xMDAwMDAwLCBwaXhlbFNuYXBwZWRC
b3gueCgpIC0gb3V0bGluZVdpZHRoKSwKKyAgICAgICAgICAgIEZsb2F0UmVjdChGbG9hdFBvaW50
KHN0ZDo6bWF4PGZsb2F0PighbmV4dGxpbmUuaXNFbXB0eSgpID8gcGl4ZWxTbmFwcGVkTmV4dExp
bmUubWF4WCgpIDogLTEwMDAwMDAsIHBpeGVsU25hcHBlZEJveC54KCkgLSBvdXRsaW5lV2lkdGgp
LAogICAgICAgICAgICAgcGl4ZWxTbmFwcGVkQm94Lm1heFkoKSksCiAgICAgICAgICAgICBGbG9h
dFBvaW50KHBpeGVsU25hcHBlZEJveC5tYXhYKCkgKyBvdXRsaW5lV2lkdGgsCiAgICAgICAgICAg
ICBwaXhlbFNuYXBwZWRCb3gubWF4WSgpICsgb3V0bGluZVdpZHRoKSksCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IDdlZWU2NmQ0ZmI0MWFhZWI3MmJmMWE2
ODRjZDAyMmQ3M2JmOTAyYjkuLmRlYzM0OWI1NGQ2OTRjYzRkNjNlMzVjNThmY2U5ODk5MDRkZTA4
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0xOTQz
LDcgKzE5NDMsNyBAQCBpbnQgUmVuZGVyT2JqZWN0OjpuZXh0T2Zmc2V0KGludCBjdXJyZW50KSBj
b25zdAogCiB2b2lkIFJlbmRlck9iamVjdDo6YWRqdXN0UmVjdEZvck91dGxpbmVBbmRTaGFkb3co
TGF5b3V0UmVjdCYgcmVjdCkgY29uc3QKIHsKLSAgICBpbnQgb3V0bGluZVNpemUgPSBvdXRsaW5l
U3R5bGVGb3JSZXBhaW50KCkub3V0bGluZVNpemUoKTsKKyAgICBmbG9hdCBvdXRsaW5lU2l6ZSA9
IG91dGxpbmVTdHlsZUZvclJlcGFpbnQoKS5vdXRsaW5lU2l6ZSgpOwogICAgIGlmIChvdXRsaW5l
U3R5bGVGb3JSZXBhaW50KCkub3V0bGluZVN0eWxlSXNBdXRvKCkpCiAgICAgICAgIG91dGxpbmVT
aXplID0gc3RkOjptYXgodGhlbWUoKS5wbGF0Zm9ybUZvY3VzUmluZ1dpZHRoKCkgKyBvdXRsaW5l
U3R5bGVGb3JSZXBhaW50KCkub3V0bGluZU9mZnNldCgpLCBvdXRsaW5lU2l6ZSk7CiAgICAgaWYg
KGNvbnN0IFNoYWRvd0RhdGEqIGJveFNoYWRvdyA9IHN0eWxlKCkuYm94U2hhZG93KCkpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCBlZmZlZGEwMzBlNGU3MDQ5
ZmEyYjUzZjRjYzQxMzE5ZTZjOTYwOGU0Li44ODFmY2Q1MTQ0MDYwMDIwYzllMzk3Y2Y2NGIyZDVi
YTY3ZjJlNzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCkBAIC04
MjYsNyArODI2LDcgQEAgdm9pZCBSZW5kZXJWaWV3OjpyZXBhaW50U3VidHJlZVNlbGVjdGlvbihj
b25zdCBTZWxlY3Rpb25TdWJ0cmVlUm9vdCYgcm9vdCkgY29uc3QKIC8vIENvbXBvc2l0aW5nIGxh
eWVyIGRpbWVuc2lvbnMgdGFrZSBvdXRsaW5lIHNpemUgaW50byBhY2NvdW50LCBzbyB3ZSBoYXZl
IHRvIHJlY29tcHV0ZSBsYXllcgogLy8gYm91bmRzIHdoZW4gaXQgY2hhbmdlcy4KIC8vIEZJWE1F
OiBUaGlzIGlzIHVnbHk7IGl0IHdvdWxkIGJlIG5pY2UgdG8gaGF2ZSBhIGJldHRlciB3YXkgdG8g
ZG8gdGhpcy4KLXZvaWQgUmVuZGVyVmlldzo6c2V0TWF4aW1hbE91dGxpbmVTaXplKGludCBvdXRs
aW5lU2l6ZSkKK3ZvaWQgUmVuZGVyVmlldzo6c2V0TWF4aW1hbE91dGxpbmVTaXplKGZsb2F0IG91
dGxpbmVTaXplKQogewogICAgIGlmIChvdXRsaW5lU2l6ZSA9PSBtX21heGltYWxPdXRsaW5lU2l6
ZSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKaW5k
ZXggNzE0YjU2MTkxZGMxMTYwMTM3YjExNDAzNWI2YzZlN2EwZDkxNzE1Ny4uN2I0MDA3NWQ0ZTJl
NGM2NzYzYmI0MDRjMDA3MGFmZWFjM2NkZjA2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVmlldy5oCkBAIC05OCw4ICs5OCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWJz
b2x1dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4mLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0
ZWRPZmZzZXQpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVF1YWRz
KFZlY3RvcjxGbG9hdFF1YWQ+JiwgYm9vbCogd2FzRml4ZWQpIGNvbnN0IG92ZXJyaWRlOwogCi0g
ICAgdm9pZCBzZXRNYXhpbWFsT3V0bGluZVNpemUoaW50KTsKLSAgICBpbnQgbWF4aW1hbE91dGxp
bmVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9tYXhpbWFsT3V0bGluZVNpemU7IH0KKyAgICB2b2lk
IHNldE1heGltYWxPdXRsaW5lU2l6ZShmbG9hdCk7CisgICAgZmxvYXQgbWF4aW1hbE91dGxpbmVT
aXplKCkgY29uc3QgeyByZXR1cm4gbV9tYXhpbWFsT3V0bGluZVNpemU7IH0KIAogICAgIExheW91
dFJlY3Qgdmlld1JlY3QoKSBjb25zdDsKIApAQCAtMzUxLDcgKzM1MSw3IEBAIHByaXZhdGU6CiAg
ICAgLy8gRW5kIGRlcHJlY2F0ZWQgbWVtYmVycy4KIAogICAgIC8vIFVzZWQgdG8gaW5mbGF0ZSBj
b21wb3NpdGluZyBsYXllcnMgYW5kIHJlcGFpbnQgcmVjdHMuCi0gICAgaW50IG1fbWF4aW1hbE91
dGxpbmVTaXplIHsgMCB9OworICAgIGZsb2F0IG1fbWF4aW1hbE91dGxpbmVTaXplIHsgMCB9Owog
CiAgICAgYm9vbCBzaG91bGRVc2VQcmludGluZ0xheW91dCgpIGNvbnN0OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvT3V0bGluZVZhbHVlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvT3V0bGluZVZhbHVlLmgKaW5kZXggZjM4MGFmNjI4OTli
YTQ2ZDgwOTUyNTQ5ZDgwYWQxODA0MWNjM2ZmNS4uMGFmZTVhODEyZjI5OTE4NWE3NWMzNWI0Yjgz
NTQyOGNhODU3NGM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L091dGxpbmVWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9PdXRs
aW5lVmFsdWUuaApAQCAtMzIsMTEgKzMyLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
T3V0bGluZVZhbHVlIDogcHVibGljIEJvcmRlclZhbHVlIHsKIGZyaWVuZCBjbGFzcyBSZW5kZXJT
dHlsZTsKIHB1YmxpYzoKLSAgICBPdXRsaW5lVmFsdWUoKQotICAgICAgICA6IG1fb2Zmc2V0KDAp
Ci0gICAgewotICAgIH0KLSAgICAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgT3V0bGluZVZh
bHVlJiBvKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fd2lkdGggPT0gby5tX3dpZHRo
ICYmIG1fc3R5bGUgPT0gby5tX3N0eWxlICYmIG1fY29sb3IgPT0gby5tX2NvbG9yICYmIG1fY29s
b3JJc1ZhbGlkID09IG8ubV9jb2xvcklzVmFsaWQgJiYgbV9vZmZzZXQgPT0gby5tX29mZnNldCAm
JiBtX2lzQXV0byA9PSBvLm1faXNBdXRvOwpAQCAtNDcsMTEgKzQyLDExIEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuICEoKnRoaXMgPT0gbyk7CiAgICAgfQogICAgIAotICAgIGludCBvZmZzZXQo
KSBjb25zdCB7IHJldHVybiBtX29mZnNldDsgfQorICAgIGZsb2F0IG9mZnNldCgpIGNvbnN0IHsg
cmV0dXJuIG1fb2Zmc2V0OyB9CiAgICAgT3V0bGluZUlzQXV0byBpc0F1dG8oKSBjb25zdCB7IHJl
dHVybiBzdGF0aWNfY2FzdDxPdXRsaW5lSXNBdXRvPihtX2lzQXV0byk7IH0KIAogcHJpdmF0ZToK
LSAgICBpbnQgbV9vZmZzZXQ7CisgICAgZmxvYXQgbV9vZmZzZXQgeyAwIH07CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oCmluZGV4IGI2YTRjMzIyNTAxOGRjZGIwMmIwMDdiYWJkYzdmNDJhNDg4MzRkYzMu
LjQxMDI1MGRmNjc4YTIxZDY0ZjIzNDFlNmZiMDdlNWM4OTdiMzk1ZTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC02NzQsOCArNjc0LDggQEAg
cHVibGljOgogICAgIGZsb2F0IGJvcmRlclN0YXJ0V2lkdGgoKSBjb25zdDsKICAgICBmbG9hdCBi
b3JkZXJFbmRXaWR0aCgpIGNvbnN0OwogCi0gICAgdW5zaWduZWQgc2hvcnQgb3V0bGluZVNpemUo
KSBjb25zdCB7IHJldHVybiBzdGQ6Om1heCgwLCBvdXRsaW5lV2lkdGgoKSArIG91dGxpbmVPZmZz
ZXQoKSk7IH0KLSAgICB1bnNpZ25lZCBzaG9ydCBvdXRsaW5lV2lkdGgoKSBjb25zdAorICAgIGZs
b2F0IG91dGxpbmVTaXplKCkgY29uc3QgeyByZXR1cm4gc3RkOjptYXg8ZmxvYXQ+KDAsIG91dGxp
bmVXaWR0aCgpICsgb3V0bGluZU9mZnNldCgpKTsgfQorICAgIGZsb2F0IG91dGxpbmVXaWR0aCgp
IGNvbnN0CiAgICAgewogICAgICAgICBpZiAobV9iYWNrZ3JvdW5kLT5vdXRsaW5lKCkuc3R5bGUo
KSA9PSBCTk9ORSkKICAgICAgICAgICAgIHJldHVybiAwOwpAQCAtODg3LDcgKzg4Nyw3IEBAIHB1
YmxpYzoKIAogICAgIC8vIENTUzMgR2V0dGVyIE1ldGhvZHMKIAotICAgIGludCBvdXRsaW5lT2Zm
c2V0KCkgY29uc3QKKyAgICBmbG9hdCBvdXRsaW5lT2Zmc2V0KCkgY29uc3QKICAgICB7CiAgICAg
ICAgIGlmIChtX2JhY2tncm91bmQtPm91dGxpbmUoKS5zdHlsZSgpID09IEJOT05FKQogICAgICAg
ICAgICAgcmV0dXJuIDA7CkBAIC0xMzI1LDcgKzEzMjUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRCb3JkZXJCb3R0b21TdHlsZShFQm9yZGVyU3R5bGUgdikgeyBTRVRfVkFSKHN1cnJvdW5kLCBi
b3JkZXIubV9ib3R0b20ubV9zdHlsZSwgdik7IH0KICAgICB2b2lkIHNldEJvcmRlckJvdHRvbUNv
bG9yKGNvbnN0IENvbG9yJiB2KSB7IFNFVF9CT1JERVJWQUxVRV9DT0xPUihzdXJyb3VuZCwgYm9y
ZGVyLm1fYm90dG9tLCB2KTsgfQogCi0gICAgdm9pZCBzZXRPdXRsaW5lV2lkdGgodW5zaWduZWQg
c2hvcnQgdikgeyBTRVRfVkFSKG1fYmFja2dyb3VuZCwgbV9vdXRsaW5lLm1fd2lkdGgsIHYpOyB9
CisgICAgdm9pZCBzZXRPdXRsaW5lV2lkdGgoZmxvYXQgdikgeyBTRVRfVkFSKG1fYmFja2dyb3Vu
ZCwgbV9vdXRsaW5lLm1fd2lkdGgsIHYpOyB9CiAgICAgdm9pZCBzZXRPdXRsaW5lU3R5bGVJc0F1
dG8oT3V0bGluZUlzQXV0byBpc0F1dG8pIHsgU0VUX1ZBUihtX2JhY2tncm91bmQsIG1fb3V0bGlu
ZS5tX2lzQXV0bywgaXNBdXRvKTsgfQogICAgIHZvaWQgc2V0T3V0bGluZVN0eWxlKEVCb3JkZXJT
dHlsZSB2KSB7IFNFVF9WQVIobV9iYWNrZ3JvdW5kLCBtX291dGxpbmUubV9zdHlsZSwgdik7IH0K
ICAgICB2b2lkIHNldE91dGxpbmVDb2xvcihjb25zdCBDb2xvciYgdikgeyBTRVRfQk9SREVSVkFM
VUVfQ09MT1IobV9iYWNrZ3JvdW5kLCBtX291dGxpbmUsIHYpOyB9CkBAIC0xNDk5LDcgKzE0OTks
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQYWdlQnJlYWtBZnRlcihFUGFnZUJyZWFrIGIpIHsg
bm9uaW5oZXJpdGVkX2ZsYWdzLnNldFBhZ2VCcmVha0FmdGVyKGIpOyB9CiAKICAgICAvLyBDU1Mz
IFNldHRlcnMKLSAgICB2b2lkIHNldE91dGxpbmVPZmZzZXQoaW50IHYpIHsgU0VUX1ZBUihtX2Jh
Y2tncm91bmQsIG1fb3V0bGluZS5tX29mZnNldCwgdik7IH0KKyAgICB2b2lkIHNldE91dGxpbmVP
ZmZzZXQoZmxvYXQgdikgeyBTRVRfVkFSKG1fYmFja2dyb3VuZCwgbV9vdXRsaW5lLm1fb2Zmc2V0
LCB2KTsgfQogICAgIHZvaWQgc2V0VGV4dFNoYWRvdyhzdGQ6OnVuaXF1ZV9wdHI8U2hhZG93RGF0
YT4sIGJvb2wgYWRkID0gZmFsc2UpOwogICAgIHZvaWQgc2V0VGV4dFN0cm9rZUNvbG9yKGNvbnN0
IENvbG9yJiBjKSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIHRleHRTdHJva2VDb2xvciwg
Yyk7IH0KICAgICB2b2lkIHNldFRleHRTdHJva2VXaWR0aChmbG9hdCB3KSB7IFNFVF9WQVIocmFy
ZUluaGVyaXRlZERhdGEsIHRleHRTdHJva2VXaWR0aCwgdyk7IH0KQEAgLTE5MjIsNyArMTkyMiw3
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgU3R5bGVJbWFnZSogaW5pdGlhbExpc3RTdHlsZUltYWdl
KCkgeyByZXR1cm4gMDsgfQogICAgIHN0YXRpYyBmbG9hdCBpbml0aWFsQm9yZGVyV2lkdGgoKSB7
IHJldHVybiAzOyB9CiAgICAgc3RhdGljIHVuc2lnbmVkIHNob3J0IGluaXRpYWxDb2x1bW5SdWxl
V2lkdGgoKSB7IHJldHVybiAzOyB9Ci0gICAgc3RhdGljIHVuc2lnbmVkIHNob3J0IGluaXRpYWxP
dXRsaW5lV2lkdGgoKSB7IHJldHVybiAzOyB9CisgICAgc3RhdGljIGZsb2F0IGluaXRpYWxPdXRs
aW5lV2lkdGgoKSB7IHJldHVybiAzOyB9CiAgICAgc3RhdGljIGZsb2F0IGluaXRpYWxMZXR0ZXJT
cGFjaW5nKCkgeyByZXR1cm4gMDsgfQogICAgIHN0YXRpYyBMZW5ndGggaW5pdGlhbFdvcmRTcGFj
aW5nKCkgeyByZXR1cm4gTGVuZ3RoKEZpeGVkKTsgfQogICAgIHN0YXRpYyBMZW5ndGggaW5pdGlh
bFNpemUoKSB7IHJldHVybiBMZW5ndGgoKTsgfQpAQCAtMTk1NSw3ICsxOTU1LDcgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBUZXh0VW5kZXJsaW5lUG9zaXRpb24gaW5pdGlhbFRleHRVbmRlcmxpbmVQ
b3NpdGlvbigpIHsgcmV0dXJuIFRleHRVbmRlcmxpbmVQb3NpdGlvbkF1dG87IH0KICAgICBzdGF0
aWMgZmxvYXQgaW5pdGlhbFpvb20oKSB7IHJldHVybiAxLjBmOyB9CiAgICAgc3RhdGljIFRleHRa
b29tIGluaXRpYWxUZXh0Wm9vbSgpIHsgcmV0dXJuIFRleHRab29tTm9ybWFsOyB9Ci0gICAgc3Rh
dGljIGludCBpbml0aWFsT3V0bGluZU9mZnNldCgpIHsgcmV0dXJuIDA7IH0KKyAgICBzdGF0aWMg
ZmxvYXQgaW5pdGlhbE91dGxpbmVPZmZzZXQoKSB7IHJldHVybiAwOyB9CiAgICAgc3RhdGljIGZs
b2F0IGluaXRpYWxPcGFjaXR5KCkgeyByZXR1cm4gMS4wZjsgfQogICAgIHN0YXRpYyBFQm94QWxp
Z25tZW50IGluaXRpYWxCb3hBbGlnbigpIHsgcmV0dXJuIEJTVFJFVENIOyB9CiAgICAgc3RhdGlj
IEVCb3hEZWNvcmF0aW9uQnJlYWsgaW5pdGlhbEJveERlY29yYXRpb25CcmVhaygpIHsgcmV0dXJu
IERTTElDRTsgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGM0YjkxZTE5ZDA4ZGRlMGM4MjVmMDMxNDBiNmQ3YzE4YWUzNTgx
NDkuLjEwY2VlYzYyYzcxNzU1N2UyZmM2NzFhNThiYTMzOWJhZjY5YzgzOTQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNS0xMi0yNSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgor
CisgICAgICAgIFN1YnBpeGVsIHJlbmRlcmluZzogQWRkIHN1YnBpeGVsIHN1cHBvcnQgZm9yIG91
dGxpbmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTI1NjAKKworICAgICAgICBVbmFibGUgdG8gcmVmLXRlc3Qgb3RoZXIgb3V0bGluZSB0eXBlcy4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qv
Ym9yZGVycy9oaWRwaS1vdXRsaW5lLWhhaXJsaW5lLXBhaW50aW5nLWV4cGVjdGVkLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvYm9yZGVycy9oaWRwaS1vdXRsaW5lLWhhaXJsaW5lLXBhaW50
aW5nLmh0bWw6IEFkZGVkLgorCiAyMDE1LTEyLTI0ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgQVNTRVJUSU9OIEZBSUxFRDogeDIgPj0geDEgaW4gV2ViQ29yZTo6
UmVuZGVyRWxlbWVudDo6ZHJhd0xpbmVGb3JCb3hTaWRlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2JvcmRlcnMvaGlkcGktb3V0bGluZS1oYWlybGluZS1wYWludGluZy1leHBlY3RlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2hpZHBpLW91dGxpbmUtaGFpcmxpbmUtcGFp
bnRpbmctZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzg1ZTIyMGUyYjc3Yzg0MzBmZTdiMTkx
ZjNiNjY0MGMzMDhjYjIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ib3Jk
ZXJzL2hpZHBpLW91dGxpbmUtaGFpcmxpbmUtcGFpbnRpbmctZXhwZWN0ZWQuaHRtbApAQCAtMCww
ICsxLDM1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGhpcyB0
ZXN0cyBoYWlybGluZSBvdXRsaW5lIHBhaW50aW5nLjwvdGl0bGU+Cis8c3R5bGU+CisgIGRpdiB7
CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIGhlaWdodDogNXB4OworICAgIHdpZHRoOiA1
cHg7CisgICAgYm9yZGVyOiAwLjVweCBzb2xpZCBncmVlbjsKKyAgfQorPC9zdHlsZT4KKzwvaGVh
ZD4KKzxib2R5PgorPGRpdiBzdHlsZT0iYm9yZGVyLXN0eWxlOiBzb2xpZDsgdG9wOiA5LjVweDsg
bGVmdDogOS41cHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9ImJvcmRlci1zdHlsZTogc29saWQ7IHRv
cDogOS41cHg7IGxlZnQ6IDI0LjVweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0iYm9yZGVyLXN0eWxl
OiBzb2xpZDsgdG9wOiA5LjVweDsgbGVmdDogMzkuNXB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJi
b3JkZXItc3R5bGU6IHNvbGlkOyB0b3A6IDkuNXB4OyBsZWZ0OiA1NC41cHg7Ij48L2Rpdj4KKzxk
aXYgc3R5bGU9ImJvcmRlci1zdHlsZTogc29saWQ7IHdpZHRoOiA2cHg7IGhlaWdodDogNnB4OyB0
b3A6IDlweDsgbGVmdDogNjlweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0iYm9yZGVyLXN0eWxlOiBz
b2xpZDsgd2lkdGg6IDZweDsgaGVpZ2h0OiA2cHg7IHRvcDogOXB4OyBsZWZ0OiA4NHB4OyI+PC9k
aXY+Cis8ZGl2IHN0eWxlPSJib3JkZXItc3R5bGU6IHNvbGlkOyB3aWR0aDogNnB4OyBoZWlnaHQ6
IDZweDsgdG9wOiA5cHg7IGxlZnQ6IDk5cHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9ImJvcmRlci1z
dHlsZTogc29saWQ7IHdpZHRoOiA2cHg7IGhlaWdodDogNnB4OyB0b3A6IDlweDsgbGVmdDogMTE0
cHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9ImJvcmRlci1zdHlsZTogc29saWQ7IHdpZHRoOiA2cHg7
IGhlaWdodDogNnB4OyB0b3A6IDlweDsgbGVmdDogMTI5cHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9
ImJvcmRlci1zdHlsZTogc29saWQ7IGJvcmRlci13aWR0aDogMXB4OyB3aWR0aDogN3B4OyBoZWln
aHQ6IDdweDsgdG9wOiA4cHg7IGxlZnQ6IDE0M3B4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJib3Jk
ZXItc3R5bGU6IHNvbGlkOyBib3JkZXItd2lkdGg6IDFweDsgd2lkdGg6IDdweDsgaGVpZ2h0OiA3
cHg7IHRvcDogOHB4OyBsZWZ0OiAxNThweDsiPjwvZGl2PgorCis8ZGl2IHN0eWxlPSJib3JkZXIt
c3R5bGU6IGRvdWJsZTsgdG9wOiAyNHB4OyBsZWZ0OiA5cHg7IHdpZHRoOiA2cHg7IGhlaWdodDog
NnB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJib3JkZXItc3R5bGU6IGRvdWJsZTsgdG9wOiAyNHB4
OyBsZWZ0OiAyNHB4OyB3aWR0aDogNnB4OyBoZWlnaHQ6IDZweDsiPjwvZGl2PgorPGRpdiBzdHls
ZT0iYm9yZGVyLXN0eWxlOiBkb3VibGU7IGJvcmRlci13aWR0aDogMXB4OyB0b3A6IDIzcHg7IGxl
ZnQ6IDM4cHg7IHdpZHRoOiA3cHg7IGhlaWdodDogN3B4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJi
b3JkZXItc3R5bGU6IGRvdWJsZTsgYm9yZGVyLXdpZHRoOiAxcHg7IHRvcDogMjNweDsgbGVmdDog
NTNweDsgd2lkdGg6IDdweDsgaGVpZ2h0OiA3cHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9ImJvcmRl
ci1zdHlsZTogZG91YmxlOyBib3JkZXItd2lkdGg6IDFweDsgdG9wOiAyM3B4OyBsZWZ0OiA2OHB4
OyB3aWR0aDogN3B4OyBoZWlnaHQ6IDdweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0iYm9yZGVyLXN0
eWxlOiBkb3VibGU7IGJvcmRlci13aWR0aDogMXB4OyB0b3A6IDIzcHg7IGxlZnQ6IDgzcHg7IHdp
ZHRoOiA3cHg7IGhlaWdodDogN3B4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJib3JkZXItc3R5bGU6
IGRvdWJsZTsgYm9yZGVyLXdpZHRoOiAxcHg7IHRvcDogMjNweDsgbGVmdDogOThweDsgd2lkdGg6
IDdweDsgaGVpZ2h0OiA3cHg7Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9oaWRwaS1vdXRsaW5lLWhhaXJsaW5lLXBhaW50aW5n
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvaGlkcGktb3V0bGluZS1oYWlybGluZS1w
YWludGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVhZjQwZjNmNThiMjYyZDI1M2EzNGI4MmRkYjQ3ZGI2
ODMyZDFiOTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvaGlk
cGktb3V0bGluZS1oYWlybGluZS1wYWludGluZy5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UaGlzIHRlc3RzIGhhaXJsaW5lIG91
dGxpbmUgcGFpbnRpbmc8L3RpdGxlPgorPHN0eWxlPgorICBkaXYgeworICAgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKKyAgICBoZWlnaHQ6IDVweDsKKyAgICB3aWR0aDogNXB4OworICAgIGxlZnQ6IDEw
cHg7CisgICAgdG9wOiAxMHB4OworICAgIG91dGxpbmU6IHNvbGlkIDBweCBncmVlbjsKKyAgICBv
dXRsaW5lLW9mZnNldDogMHB4OworICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8cCBp
ZD0iY29udGFpbmVyIj48L3A+Cis8c2NyaXB0PgorICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpOworICB2YXIgbGVmdFBvcyA9IDEwOworICB2YXIg
d2lkdGggPSAwLjE7CisgIGZvciAodmFyIGkgPSAwOyBpIDw9IDEwOyArK2kpIHsKKyAgICB2YXIg
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGUuc3R5bGUubGVmdCA9IGxl
ZnRQb3MgKyAicHgiOworICAgIGUuc3R5bGUub3V0bGluZVdpZHRoID0gd2lkdGggKyAicHgiOwor
ICAgIGUuc3R5bGUub3V0bGluZU9mZnNldCA9IHdpZHRoICsgInB4IjsKKyAgICBjb250YWluZXIu
YXBwZW5kQ2hpbGQoZSk7CisgICAgd2lkdGggKz0gMC4xOworICAgIGxlZnRQb3MgKz0gMTU7Cisg
IH0KKyAgbGVmdFBvcyA9IDEwOworICB3aWR0aCA9IDAuODsKKyAgZm9yICh2YXIgaSA9IDA7IGkg
PD0gNjsgKytpKSB7CisgICAgdmFyIGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
KyAgICBlLnN0eWxlLmxlZnQgPSBsZWZ0UG9zICsgInB4IjsKKyAgICBlLnN0eWxlLnRvcCA9ICIy
NXB4IjsKKyAgICBlLnN0eWxlLm91dGxpbmVXaWR0aCA9IHdpZHRoICsgInB4IjsKKyAgICBlLnN0
eWxlLm91dGxpbmVPZmZzZXQgPSB3aWR0aCArICJweCI7CisgICAgZS5zdHlsZS5vdXRsaW5lU3R5
bGUgPSAiZG91YmxlIjsKKyAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZSk7CisgICAgd2lkdGgg
Kz0gMC4xOworICAgIGxlZnRQb3MgKz0gMTU7CisgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267923</attachid>
            <date>2015-12-25 17:45:29 -0800</date>
            <delta_ts>2015-12-25 21:28:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152560-20151225174453.patch</filename>
            <type>text/plain</type>
            <size>26751</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0NDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM1YWU3MDYxZDE4MWEx
NTQ0M2UyOWYzMWUyNmIyODFjZmI0MTQ0OS4uZGE5OTk2NjBmMjE2ZTEwNDUwYzZhNDhlY2FmOTFi
YTZjNDJiZmRjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE1LTEyLTI1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5n
OiBBZGQgc3VicGl4ZWwgc3VwcG9ydCBmb3Igb3V0bGluZS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjU2MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBz
dWJwaXhlbCBvdXRsaW5lLXdpZHRoL291dGxpbmUtb2Zmc2V0LgorCisgICAgICAgIFRlc3Q6IGZh
c3QvYm9yZGVycy9oaWRwaS1vdXRsaW5lLWhhaXJsaW5lLXBhaW50aW5nLmh0bWwKKworICAgICAg
ICAqIGNzcy9DU1NQcm9wZXJ0eU5hbWVzLmluOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NT
U1Byb3BlcnR5QW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5QW5p
bWF0aW9uV3JhcHBlck1hcDo6Q1NTUHJvcGVydHlBbmltYXRpb25XcmFwcGVyTWFwKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NDb250ZXh0TWFjLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50Ojpjb21w
dXRlTWF4T3V0bGluZVNpemUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6cGFp
bnRPdXRsaW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnBhaW50QXJlYUVsZW1lbnRGb2N1c1JpbmcpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVySW5saW5lOjpwYWludE91dGxpbmVGb3JMaW5lKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6YWRqdXN0UmVj
dEZvck91dGxpbmVBbmRTaGFkb3cpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OnNldE1heGltYWxPdXRsaW5lU2l6ZSk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
c3R5bGUvT3V0bGluZVZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpPdXRsaW5lVmFsdWU6Om9m
ZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpPdXRsaW5lVmFsdWU6Ok91dGxpbmVWYWx1ZSk6IERl
bGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisKIDIwMTUt
MTItMjQgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBBU1NFUlRJ
T04gRkFJTEVEOiB4MiA+PSB4MSBpbiBXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpkcmF3TGluZUZv
ckJveFNpZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVz
LmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KaW5kZXggZTJiZDZh
NDdmMTJmYTY4OWQzYmI5MWVkMWY5MGU3MjM0NTYzNTA2Zi4uYTc3OThhOTU1ZDZlNDYxOTIyODNm
NmI5YjkzOWQ1NDdlOTlmOThiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
b3BlcnR5TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMu
aW4KQEAgLTI3Nyw5ICsyNzcsOSBAQCBvcGFjaXR5CiBvcnBoYW5zIFtJbmhlcml0ZWQsIEF1dG9G
dW5jdGlvbnNdCiBvdXRsaW5lIFtMb25naGFuZHM9b3V0bGluZS1jb2xvcnxvdXRsaW5lLXN0eWxl
fG91dGxpbmUtd2lkdGhdCiBvdXRsaW5lLWNvbG9yIFtWaXNpdGVkTGlua0NvbG9yU3VwcG9ydCwg
SW5pdGlhbD1pbnZhbGlkQ29sb3JdCi1vdXRsaW5lLW9mZnNldCBbQ29udmVydGVyPUNvbXB1dGVk
TGVuZ3RoPGludD5dCitvdXRsaW5lLW9mZnNldCBbQ29udmVydGVyPUNvbXB1dGVkTGVuZ3RoPGZs
b2F0Pl0KIG91dGxpbmUtc3R5bGUgW0N1c3RvbT1BbGxdCi1vdXRsaW5lLXdpZHRoIFtDb252ZXJ0
ZXI9TGluZVdpZHRoPHVuc2lnbmVkIHNob3J0Pl0KK291dGxpbmUtd2lkdGggW0NvbnZlcnRlcj1M
aW5lV2lkdGg8ZmxvYXQ+XQogb3ZlcmZsb3cgW0xvbmdoYW5kcz1vdmVyZmxvdy14fG92ZXJmbG93
LXldCiBvdmVyZmxvdy13cmFwCiBvdmVyZmxvdy14CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKaW5kZXggOTU0ZDY2YjRl
MWNlZmJhMDIwZWUxZDJlZGNkODhjMDAxNWEwODBhZS4uYTIyYWNmYTBmY2YzMmYxZDE4Njk4ZDMx
YzFlODNhMjVlZWQ1YzQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcApAQCAtMTI5Miw4ICsxMjkyLDggQEAgQ1NT
UHJvcGVydHlBbmltYXRpb25XcmFwcGVyTWFwOjpDU1NQcm9wZXJ0eUFuaW1hdGlvbldyYXBwZXJN
YXAoKQogICAgICAgICBuZXcgUHJvcGVydHlXcmFwcGVyPHNob3J0PihDU1NQcm9wZXJ0eU9ycGhh
bnMsICZSZW5kZXJTdHlsZTo6b3JwaGFucywgJlJlbmRlclN0eWxlOjpzZXRPcnBoYW5zKSwKICAg
ICAgICAgbmV3IFByb3BlcnR5V3JhcHBlcjxzaG9ydD4oQ1NTUHJvcGVydHlXaWRvd3MsICZSZW5k
ZXJTdHlsZTo6d2lkb3dzLCAmUmVuZGVyU3R5bGU6OnNldFdpZG93cyksCiAgICAgICAgIG5ldyBM
ZW5ndGhQcm9wZXJ0eVdyYXBwZXI8TGVuZ3RoPihDU1NQcm9wZXJ0eUxpbmVIZWlnaHQsICZSZW5k
ZXJTdHlsZTo6c3BlY2lmaWVkTGluZUhlaWdodCwgJlJlbmRlclN0eWxlOjpzZXRMaW5lSGVpZ2h0
KSwKLSAgICAgICAgbmV3IFByb3BlcnR5V3JhcHBlcjxpbnQ+KENTU1Byb3BlcnR5T3V0bGluZU9m
ZnNldCwgJlJlbmRlclN0eWxlOjpvdXRsaW5lT2Zmc2V0LCAmUmVuZGVyU3R5bGU6OnNldE91dGxp
bmVPZmZzZXQpLAotICAgICAgICBuZXcgUHJvcGVydHlXcmFwcGVyPHVuc2lnbmVkIHNob3J0PihD
U1NQcm9wZXJ0eU91dGxpbmVXaWR0aCwgJlJlbmRlclN0eWxlOjpvdXRsaW5lV2lkdGgsICZSZW5k
ZXJTdHlsZTo6c2V0T3V0bGluZVdpZHRoKSwKKyAgICAgICAgbmV3IFByb3BlcnR5V3JhcHBlcjxm
bG9hdD4oQ1NTUHJvcGVydHlPdXRsaW5lT2Zmc2V0LCAmUmVuZGVyU3R5bGU6Om91dGxpbmVPZmZz
ZXQsICZSZW5kZXJTdHlsZTo6c2V0T3V0bGluZU9mZnNldCksCisgICAgICAgIG5ldyBQcm9wZXJ0
eVdyYXBwZXI8ZmxvYXQ+KENTU1Byb3BlcnR5T3V0bGluZVdpZHRoLCAmUmVuZGVyU3R5bGU6Om91
dGxpbmVXaWR0aCwgJlJlbmRlclN0eWxlOjpzZXRPdXRsaW5lV2lkdGgpLAogICAgICAgICBuZXcg
UHJvcGVydHlXcmFwcGVyPGZsb2F0PihDU1NQcm9wZXJ0eUxldHRlclNwYWNpbmcsICZSZW5kZXJT
dHlsZTo6bGV0dGVyU3BhY2luZywgJlJlbmRlclN0eWxlOjpzZXRMZXR0ZXJTcGFjaW5nKSwKICAg
ICAgICAgbmV3IExlbmd0aFByb3BlcnR5V3JhcHBlcjxMZW5ndGg+KENTU1Byb3BlcnR5V29yZFNw
YWNpbmcsICZSZW5kZXJTdHlsZTo6d29yZFNwYWNpbmcsICZSZW5kZXJTdHlsZTo6c2V0V29yZFNw
YWNpbmcpLAogICAgICAgICBuZXcgTGVuZ3RoUHJvcGVydHlXcmFwcGVyPExlbmd0aD4oQ1NTUHJv
cGVydHlUZXh0SW5kZW50LCAmUmVuZGVyU3R5bGU6OnRleHRJbmRlbnQsICZSZW5kZXJTdHlsZTo6
c2V0VGV4dEluZGVudCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dC5oCmluZGV4IGU3YjI4Yjk0YWRjNWUxMDEzNDk0MjhiOWVmMzMyM2I4
YjRkYTcxMjEuLjYwMTY1MWVkOTgwMTI4ZjMyYWYxZGE3N2E1NTFkNjczNTQzOTJjMzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5o
CkBAIC0zODksMTAgKzM4OSwxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBtdXN0VXNlU2hhZG93Qmx1
cigpIGNvbnN0OwogI2VuZGlmCiAKLSAgICB2b2lkIGRyYXdGb2N1c1JpbmcoY29uc3QgVmVjdG9y
PEludFJlY3Q+JiwgaW50IHdpZHRoLCBpbnQgb2Zmc2V0LCBjb25zdCBDb2xvciYpOwotICAgIHZv
aWQgZHJhd0ZvY3VzUmluZyhjb25zdCBQYXRoJiwgaW50IHdpZHRoLCBpbnQgb2Zmc2V0LCBjb25z
dCBDb2xvciYpOworICAgIHZvaWQgZHJhd0ZvY3VzUmluZyhjb25zdCBWZWN0b3I8SW50UmVjdD4m
LCBmbG9hdCB3aWR0aCwgZmxvYXQgb2Zmc2V0LCBjb25zdCBDb2xvciYpOworICAgIHZvaWQgZHJh
d0ZvY3VzUmluZyhjb25zdCBQYXRoJiwgZmxvYXQgd2lkdGgsIGZsb2F0IG9mZnNldCwgY29uc3Qg
Q29sb3ImKTsKICNpZiBQTEFURk9STShNQUMpCi0gICAgdm9pZCBkcmF3Rm9jdXNSaW5nKGNvbnN0
IFZlY3RvcjxJbnRSZWN0PiYsIGludCB3aWR0aCwgaW50IG9mZnNldCwgZG91YmxlIHRpbWVPZmZz
ZXQsIGJvb2wmIG5lZWRzUmVkcmF3KTsKKyAgICB2b2lkIGRyYXdGb2N1c1JpbmcoY29uc3QgVmVj
dG9yPEludFJlY3Q+JiwgZmxvYXQgd2lkdGgsIGZsb2F0IG9mZnNldCwgZG91YmxlIHRpbWVPZmZz
ZXQsIGJvb2wmIG5lZWRzUmVkcmF3KTsKICNlbmRpZgogCiAgICAgdm9pZCBzZXRMaW5lQ2FwKExp
bmVDYXApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCmluZGV4IDFlNTFjNGI4ZDUxMzNh
NTM0Y2Q4MmQzNGQ0ZjUyYjc1MzM2ZWRmN2EuLjc0ZmRkNGZiZTRhZWU5MDAwYjVjYjIwM2NkNzMw
ZjE3ODQyODc2MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKQEAgLTUyMiw3ICs1
MjIsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRqdXN0Rm9jdXNSaW5nQ29sb3IoQ29sb3ImIGNv
bG9yKQogI2VuZGlmCiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBhZGp1c3RGb2N1c1JpbmdMaW5l
V2lkdGgoaW50JiB3aWR0aCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBhZGp1c3RGb2N1c1JpbmdMaW5l
V2lkdGgoZmxvYXQmIHdpZHRoKQogewogI2lmIFBMQVRGT1JNKEdUSykKICAgICB3aWR0aCA9IDI7
CkBAIC01NDAsNyArNTQwLDcgQEAgc3RhdGljIGlubGluZSBTdHJva2VTdHlsZSBmb2N1c1JpbmdT
dHJva2VTdHlsZSgpCiAjZW5kaWYKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1
c1JpbmcoY29uc3QgUGF0aCYgcGF0aCwgaW50IHdpZHRoLCBpbnQgLyogb2Zmc2V0ICovLCBjb25z
dCBDb2xvciYgY29sb3IpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25z
dCBQYXRoJiBwYXRoLCBmbG9hdCB3aWR0aCwgZmxvYXQgLyogb2Zmc2V0ICovLCBjb25zdCBDb2xv
ciYgY29sb3IpCiB7CiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBkcmF3IHBhdGhzIHRoYXQgZGVz
Y3JpYmUgYSByZWN0YW5nbGUgd2l0aCByb3VuZGVkIGNvcm5lcnMKICAgICAvLyBzbyBhcyB0byBi
ZSBjb25zaXN0ZW50IHdpdGggaG93IHdlIGRyYXcgcmVjdGFuZ3VsYXIgZm9jdXMgcmluZ3MuCkBA
IC01NTgsNyArNTU4LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1JpbmcoY29u
c3QgUGF0aCYgcGF0aCwgaW50IHdpZHRoLCBpbnQgLyogb2Zmc2V0ICoKICAgICBjYWlyb19yZXN0
b3JlKGNyKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1JpbmcoY29uc3Qg
VmVjdG9yPEludFJlY3Q+JiByZWN0cywgaW50IHdpZHRoLCBpbnQgLyogb2Zmc2V0ICovLCBjb25z
dCBDb2xvciYgY29sb3IpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25z
dCBWZWN0b3I8SW50UmVjdD4mIHJlY3RzLCBmbG9hdCB3aWR0aCwgZmxvYXQgLyogb2Zmc2V0ICov
LCBjb25zdCBDb2xvciYgY29sb3IpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAg
ICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0dyYXBoaWNzQ29udGV4dE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9HcmFwaGljc0NvbnRleHRNYWMubW0KaW5kZXggODI3MDQyNDY2ODQ4MzZhODhm
OGM0YmRjNTJlODU2MDk4OTI2YmQ4Zi4uMDI1NThkYTAwOWQzMTIzMjM3YTNjMjA5NzdlYjBjNmQ2
YmIwY2YyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0dyYXBoaWNzQ29udGV4dE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvR3JhcGhpY3NDb250ZXh0TWFjLm1tCkBAIC03Miw3ICs3Miw3IEBAIHN0YXRpYyBi
b29sIGRyYXdGb2N1c1JpbmdUb0NvbnRleHRBdFRpbWUoQ0dDb250ZXh0UmVmIGNvbnRleHQsIENH
UGF0aFJlZiBmb2N1c1JpCiB9CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKIAotdm9pZCBHcmFw
aGljc0NvbnRleHQ6OmRyYXdGb2N1c1JpbmcoY29uc3QgUGF0aCYgcGF0aCwgaW50IC8qIHdpZHRo
ICovLCBpbnQgLyogb2Zmc2V0ICovLCBjb25zdCBDb2xvciYpCit2b2lkIEdyYXBoaWNzQ29udGV4
dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBQYXRoJiBwYXRoLCBmbG9hdCAvKiB3aWR0aCAqLywgZmxv
YXQgLyogb2Zmc2V0ICovLCBjb25zdCBDb2xvciYpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQogICAg
IGlmIChwYWludGluZ0Rpc2FibGVkKCkgfHwgcGF0aC5pc051bGwoKSkKQEAgLTg1LDcgKzg1LDcg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1JpbmcoY29uc3QgUGF0aCYgcGF0aCwg
aW50IC8qIHdpZHRoICovLCBpbnQgLyogb2YKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykKLXZvaWQg
R3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKGNvbnN0IFZlY3RvcjxJbnRSZWN0PiYgcmVj
dHMsIGludCwgaW50IG9mZnNldCwgZG91YmxlIHRpbWVPZmZzZXQsIGJvb2wmIG5lZWRzUmVkcmF3
KQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1JpbmcoY29uc3QgVmVjdG9yPEludFJl
Y3Q+JiByZWN0cywgZmxvYXQsIGZsb2F0IG9mZnNldCwgZG91YmxlIHRpbWVPZmZzZXQsIGJvb2wm
IG5lZWRzUmVkcmF3KQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJl
dHVybjsKQEAgLTk4LDcgKzk4LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1Jp
bmcoY29uc3QgVmVjdG9yPEludFJlY3Q+JiByZWN0cywgaW50LCBpbnQgb2Zmc2UKIH0KICNlbmRp
ZgogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBWZWN0b3I8SW50
UmVjdD4mIHJlY3RzLCBpbnQsIGludCBvZmZzZXQsIGNvbnN0IENvbG9yJikKK3ZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKGNvbnN0IFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMsIGZs
b2F0LCBmbG9hdCBvZmZzZXQsIGNvbnN0IENvbG9yJikKIHsKICNpZiAhUExBVEZPUk0oSU9TKQog
ICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q0dXaW4uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENHV2luLmNwcAppbmRl
eCBhODczZDgzMWFkYmE1NTc1YTBkNDAyODlkMTEzZTU5N2I1NmZiYWY5Li45ZWRhYzUyYmJlNGE4
ZmU3M2Y2NDc3Nzg2ZGIyNGY0OGI5ODljZDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q0dXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRDR1dpbi5jcHAK
QEAgLTEzMCwxNCArMTMwLDE0IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3V2luZG93c0Jp
dG1hcChXaW5kb3dzQml0bWFwKiBpbWFnZSwgY29uc3QgSW50UG9pbnQmIHBvCiAgICAgQ0dDb250
ZXh0RHJhd0ltYWdlKG1fZGF0YS0+bV9jZ0NvbnRleHQuZ2V0KCksIENHUmVjdE1ha2UocG9pbnQu
eCgpLCBwb2ludC55KCksIGltYWdlLT5zaXplKCkud2lkdGgoKSwgaW1hZ2UtPnNpemUoKS5oZWln
aHQoKSksIGNnSW1hZ2UuZ2V0KCkpOyAgIAogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJh
d0ZvY3VzUmluZyhjb25zdCBQYXRoJiBwYXRoLCBpbnQgd2lkdGgsIGludCBvZmZzZXQsIGNvbnN0
IENvbG9yJiBjb2xvcikKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKGNvbnN0
IFBhdGgmIHBhdGgsIGZsb2F0IHdpZHRoLCBmbG9hdCBvZmZzZXQsIGNvbnN0IENvbG9yJiBjb2xv
cikKIHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CiB9CiAKIC8vIEZJWE1FOiBUaGlzIGlzIG5l
YXJseSBpZGVudGljYWwgdG8gdGhlIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyBmdW5j
dGlvbiBpbiBHcmFwaGljc0NvbnRleHRNYWMubW0uCiAvLyBUaGUgY29kZSBjb3VsZCBtb3ZlIHRv
IEdyYXBoaWNzQ29udGV4dENHLmNwcCBhbmQgYmUgc2hhcmVkLgotdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmRyYXdGb2N1c1JpbmcoY29uc3QgVmVjdG9yPEludFJlY3Q+JiByZWN0cywgaW50IHdpZHRo
LCBpbnQgb2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3IpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZHJhd0ZvY3VzUmluZyhjb25zdCBWZWN0b3I8SW50UmVjdD4mIHJlY3RzLCBmbG9hdCB3aWR0aCwg
ZmxvYXQgb2Zmc2V0LCBjb25zdCBDb2xvciYgY29sb3IpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlz
YWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVsZW1lbnQuY3BwCmluZGV4IGVlZGM3MGRhZDEwMTUzMDA2MzZiZTQzM2UyYmNmMWNhYjc1MDQ0
Y2MuLjcwNTc0YjZmYTRmODI2ZTNhZmMyM2FjMTcyMjhjNGM5NzU2Y2ZhOWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTM3Nyw3ICszNzcsNyBAQCB2
b2lkIFJlbmRlckVsZW1lbnQ6OmNvbXB1dGVNYXhPdXRsaW5lU2l6ZShjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUpIGNvbnN0CiAgICAgLy8gZHVyaW5nIHN0eWxlRGlkQ2hhbmdlIChpdCdzIHVzZWQg
YnkgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoKSkuCiAgICAgaWYgKCFzdHlsZS5vdXRs
aW5lV2lkdGgoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGludCBtYXhPdXRsaW5lU2l6ZSA9IHN0
eWxlLm91dGxpbmVTaXplKCk7CisgICAgZmxvYXQgbWF4T3V0bGluZVNpemUgPSBzdHlsZS5vdXRs
aW5lU2l6ZSgpOwogICAgIGlmIChzdHlsZS5vdXRsaW5lU3R5bGVJc0F1dG8oKSkKICAgICAgICAg
bWF4T3V0bGluZVNpemUgPSBzdGQ6Om1heCh0aGVtZSgpLnBsYXRmb3JtRm9jdXNSaW5nV2lkdGgo
KSArIHN0eWxlLm91dGxpbmVPZmZzZXQoKSwgbWF4T3V0bGluZVNpemUpOwogCkBAIC0yMTA3LDkg
KzIxMDcsOCBAQCB2b2lkIFJlbmRlckVsZW1lbnQ6OnBhaW50T3V0bGluZShQYWludEluZm8mIHBh
aW50SW5mbywgY29uc3QgTGF5b3V0UmVjdCYgcGFpbnRSZQogICAgICAgICByZXR1cm47CiAKICAg
ICBSZW5kZXJTdHlsZSYgc3R5bGVUb1VzZSA9IHN0eWxlKCk7Ci0gICAgTGF5b3V0VW5pdCBvdXRs
aW5lV2lkdGggPSBzdHlsZVRvVXNlLm91dGxpbmVXaWR0aCgpOwotCi0gICAgaW50IG91dGxpbmVP
ZmZzZXQgPSBzdHlsZVRvVXNlLm91dGxpbmVPZmZzZXQoKTsKKyAgICBmbG9hdCBvdXRsaW5lV2lk
dGggPSBmbG9vclRvRGV2aWNlUGl4ZWwoc3R5bGVUb1VzZS5vdXRsaW5lV2lkdGgoKSwgZG9jdW1l
bnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKKyAgICBmbG9hdCBvdXRsaW5lT2Zmc2V0ID0gZmxv
b3JUb0RldmljZVBpeGVsKHN0eWxlVG9Vc2Uub3V0bGluZU9mZnNldCgpLCBkb2N1bWVudCgpLmRl
dmljZVNjYWxlRmFjdG9yKCkpOwogCiAgICAgLy8gT25seSBwYWludCB0aGUgZm9jdXMgcmluZyBi
eSBoYW5kIGlmIHRoZSB0aGVtZSBpc24ndCBhYmxlIHRvIGRyYXcgaXQuCiAgICAgaWYgKHN0eWxl
VG9Vc2Uub3V0bGluZVN0eWxlSXNBdXRvKCkgJiYgIXRoZW1lKCkuc3VwcG9ydHNGb2N1c1Jpbmco
c3R5bGVUb1VzZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAppbmRl
eCAxNGM3YTAyMzAyYzEzNmJmNjA3NzVkNTk1NWVmYWY1NzM4NTUxYTEwLi4zYmQ3YzE3NTQ1NzAz
MzNkNzQyZmJmMjNiN2U0ZWE1ODE0NDU3YmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJbWFnZS5jcHAKQEAgLTUxNiw3ICs1MTYsNyBAQCB2b2lkIFJlbmRlckltYWdlOjpwYWlu
dEFyZWFFbGVtZW50Rm9jdXNSaW5nKFBhaW50SW5mbyYgcGFpbnRJbmZvKQogICAgIC8vIEZJWE1F
OiBEbyB3ZSBuZWVkIGFkZGl0aW9uYWwgY29kZSB0byBjbGlwIHRoZSBwYXRoIHRvIHRoZSBpbWFn
ZSdzIGJvdW5kaW5nIGJveD8KIAogICAgIFJlbmRlclN0eWxlKiBhcmVhRWxlbWVudFN0eWxlID0g
YXJlYUVsZW1lbnQuY29tcHV0ZWRTdHlsZSgpOwotICAgIHVuc2lnbmVkIHNob3J0IG91dGxpbmVX
aWR0aCA9IGFyZWFFbGVtZW50U3R5bGUtPm91dGxpbmVXaWR0aCgpOworICAgIGZsb2F0IG91dGxp
bmVXaWR0aCA9IGFyZWFFbGVtZW50U3R5bGUtPm91dGxpbmVXaWR0aCgpOwogICAgIGlmICghb3V0
bGluZVdpZHRoKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcklubGluZS5jcHAKaW5kZXggZmI5NmMzODFiYWQzMGFiZTJmYTllYzZhN2M2N2U2YjY5NDMz
NzY1ZC4uYTcxNmNkOWEzYmI0NmI1Y2RhMjkyN2YyOTZjZDVkMDA4YWYyZjFkZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKQEAgLTE2NDIsMTIgKzE2NDIsMTIg
QEAgdm9pZCBSZW5kZXJJbmxpbmU6OnBhaW50T3V0bGluZUZvckxpbmUoR3JhcGhpY3NDb250ZXh0
JiBncmFwaGljc0NvbnRleHQsIGNvbnN0IEwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IENvbG9yIG91dGxpbmVDb2xvcikKIHsKICAgICBjb25zdCBSZW5kZXJT
dHlsZSYgc3R5bGVUb1VzZSA9IHN0eWxlKCk7Ci0gICAgaW50IG91dGxpbmVXaWR0aCA9IHN0eWxl
VG9Vc2Uub3V0bGluZVdpZHRoKCk7CisgICAgZmxvYXQgb3V0bGluZVdpZHRoID0gc3R5bGVUb1Vz
ZS5vdXRsaW5lV2lkdGgoKTsKICAgICBFQm9yZGVyU3R5bGUgb3V0bGluZVN0eWxlID0gc3R5bGVU
b1VzZS5vdXRsaW5lU3R5bGUoKTsKIAogICAgIGJvb2wgYW50aWFsaWFzID0gc2hvdWxkQW50aWFs
aWFzTGluZXMoZ3JhcGhpY3NDb250ZXh0KTsKIAotICAgIGludCBvZmZzZXQgPSBzdHlsZSgpLm91
dGxpbmVPZmZzZXQoKTsKKyAgICBmbG9hdCBvZmZzZXQgPSBzdHlsZSgpLm91dGxpbmVPZmZzZXQo
KTsKIAogICAgIExheW91dFJlY3QgYm94KExheW91dFBvaW50KHBhaW50T2Zmc2V0LngoKSArIHRo
aXNsaW5lLngoKSAtIG9mZnNldCwgcGFpbnRPZmZzZXQueSgpICsgdGhpc2xpbmUueSgpIC0gb2Zm
c2V0KSwKICAgICAgICAgTGF5b3V0U2l6ZSh0aGlzbGluZS53aWR0aCgpICsgb2Zmc2V0LCB0aGlz
bGluZS5oZWlnaHQoKSArIG9mZnNldCkpOwpAQCAtMTY4Niw3ICsxNjg2LDcgQEAgdm9pZCBSZW5k
ZXJJbmxpbmU6OnBhaW50T3V0bGluZUZvckxpbmUoR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0Nv
bnRleHQsIGNvbnN0IEwKICAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNzQ29udGV4
dCwKICAgICAgICAgICAgIEZsb2F0UmVjdChGbG9hdFBvaW50KHBpeGVsU25hcHBlZEJveC54KCkg
LSBvdXRsaW5lV2lkdGgsCiAgICAgICAgICAgICBwaXhlbFNuYXBwZWRCb3gueSgpIC0gb3V0bGlu
ZVdpZHRoKSwKLSAgICAgICAgICAgIEZsb2F0UG9pbnQoc3RkOjptaW4ocGl4ZWxTbmFwcGVkQm94
Lm1heFgoKSArIG91dGxpbmVXaWR0aCwgKGxhc3RsaW5lLmlzRW1wdHkoKSA/IDEwMDAwMDAgOiBw
aXhlbFNuYXBwZWRMYXN0TGluZS54KCkpKSwKKyAgICAgICAgICAgIEZsb2F0UG9pbnQoc3RkOjpt
aW48ZmxvYXQ+KHBpeGVsU25hcHBlZEJveC5tYXhYKCkgKyBvdXRsaW5lV2lkdGgsIChsYXN0bGlu
ZS5pc0VtcHR5KCkgPyAxMDAwMDAwIDogcGl4ZWxTbmFwcGVkTGFzdExpbmUueCgpKSksCiAgICAg
ICAgICAgICBwaXhlbFNuYXBwZWRCb3gueSgpKSksCiAgICAgICAgICAgICBCU1RvcCwgb3V0bGlu
ZUNvbG9yLCBvdXRsaW5lU3R5bGUsCiAgICAgICAgICAgICBvdXRsaW5lV2lkdGgsCkBAIC0xNjk1
LDcgKzE2OTUsNyBAQCB2b2lkIFJlbmRlcklubGluZTo6cGFpbnRPdXRsaW5lRm9yTGluZShHcmFw
aGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwgY29uc3QgTAogICAgIAogICAgIGlmIChsYXN0
bGluZS5tYXhYKCkgPCB0aGlzbGluZS5tYXhYKCkpCiAgICAgICAgIGRyYXdMaW5lRm9yQm94U2lk
ZShncmFwaGljc0NvbnRleHQsCi0gICAgICAgICAgICBGbG9hdFJlY3QoRmxvYXRQb2ludChzdGQ6
Om1heChsYXN0bGluZS5pc0VtcHR5KCkgPyAtMTAwMDAwMCA6IHBpeGVsU25hcHBlZExhc3RMaW5l
Lm1heFgoKSwgcGl4ZWxTbmFwcGVkQm94LngoKSAtIG91dGxpbmVXaWR0aCksCisgICAgICAgICAg
ICBGbG9hdFJlY3QoRmxvYXRQb2ludChzdGQ6Om1heDxmbG9hdD4obGFzdGxpbmUuaXNFbXB0eSgp
ID8gLTEwMDAwMDAgOiBwaXhlbFNuYXBwZWRMYXN0TGluZS5tYXhYKCksIHBpeGVsU25hcHBlZEJv
eC54KCkgLSBvdXRsaW5lV2lkdGgpLAogICAgICAgICAgICAgcGl4ZWxTbmFwcGVkQm94LnkoKSAt
IG91dGxpbmVXaWR0aCksCiAgICAgICAgICAgICBGbG9hdFBvaW50KHBpeGVsU25hcHBlZEJveC5t
YXhYKCkgKyBvdXRsaW5lV2lkdGgsCiAgICAgICAgICAgICBwaXhlbFNuYXBwZWRCb3gueSgpKSks
CkBAIC0xNzE5LDcgKzE3MTksNyBAQCB2b2lkIFJlbmRlcklubGluZTo6cGFpbnRPdXRsaW5lRm9y
TGluZShHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwgY29uc3QgTAogICAgICAgICBk
cmF3TGluZUZvckJveFNpZGUoZ3JhcGhpY3NDb250ZXh0LAogICAgICAgICAgICAgRmxvYXRSZWN0
KEZsb2F0UG9pbnQocGl4ZWxTbmFwcGVkQm94LngoKSAtIG91dGxpbmVXaWR0aCwKICAgICAgICAg
ICAgIHBpeGVsU25hcHBlZEJveC5tYXhZKCkpLAotICAgICAgICAgICAgRmxvYXRQb2ludChzdGQ6
Om1pbihwaXhlbFNuYXBwZWRCb3gubWF4WCgpICsgb3V0bGluZVdpZHRoLCAhbmV4dGxpbmUuaXNF
bXB0eSgpID8gcGl4ZWxTbmFwcGVkTmV4dExpbmUueCgpICsgMSA6IDEwMDAwMDApLAorICAgICAg
ICAgICAgRmxvYXRQb2ludChzdGQ6Om1pbjxmbG9hdD4ocGl4ZWxTbmFwcGVkQm94Lm1heFgoKSAr
IG91dGxpbmVXaWR0aCwgIW5leHRsaW5lLmlzRW1wdHkoKSA/IHBpeGVsU25hcHBlZE5leHRMaW5l
LngoKSArIDEgOiAxMDAwMDAwKSwKICAgICAgICAgICAgIHBpeGVsU25hcHBlZEJveC5tYXhZKCkg
KyBvdXRsaW5lV2lkdGgpKSwKICAgICAgICAgICAgIEJTQm90dG9tLCBvdXRsaW5lQ29sb3IsIG91
dGxpbmVTdHlsZSwKICAgICAgICAgICAgIG91dGxpbmVXaWR0aCwKQEAgLTE3MjgsNyArMTcyOCw3
IEBAIHZvaWQgUmVuZGVySW5saW5lOjpwYWludE91dGxpbmVGb3JMaW5lKEdyYXBoaWNzQ29udGV4
dCYgZ3JhcGhpY3NDb250ZXh0LCBjb25zdCBMCiAgICAgCiAgICAgaWYgKG5leHRsaW5lLm1heFgo
KSA8IHRoaXNsaW5lLm1heFgoKSkKICAgICAgICAgZHJhd0xpbmVGb3JCb3hTaWRlKGdyYXBoaWNz
Q29udGV4dCwKLSAgICAgICAgICAgIEZsb2F0UmVjdChGbG9hdFBvaW50KHN0ZDo6bWF4KCFuZXh0
bGluZS5pc0VtcHR5KCkgPyBwaXhlbFNuYXBwZWROZXh0TGluZS5tYXhYKCkgOiAtMTAwMDAwMCwg
cGl4ZWxTbmFwcGVkQm94LngoKSAtIG91dGxpbmVXaWR0aCksCisgICAgICAgICAgICBGbG9hdFJl
Y3QoRmxvYXRQb2ludChzdGQ6Om1heDxmbG9hdD4oIW5leHRsaW5lLmlzRW1wdHkoKSA/IHBpeGVs
U25hcHBlZE5leHRMaW5lLm1heFgoKSA6IC0xMDAwMDAwLCBwaXhlbFNuYXBwZWRCb3gueCgpIC0g
b3V0bGluZVdpZHRoKSwKICAgICAgICAgICAgIHBpeGVsU25hcHBlZEJveC5tYXhZKCkpLAogICAg
ICAgICAgICAgRmxvYXRQb2ludChwaXhlbFNuYXBwZWRCb3gubWF4WCgpICsgb3V0bGluZVdpZHRo
LAogICAgICAgICAgICAgcGl4ZWxTbmFwcGVkQm94Lm1heFkoKSArIG91dGxpbmVXaWR0aCkpLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCA3ZWVlNjZkNGZi
NDFhYWViNzJiZjFhNjg0Y2QwMjJkNzNiZjkwMmI5Li5kZWMzNDliNTRkNjk0Y2M0ZDYzZTM1YzU4
ZmNlOTg5OTA0ZGUwOGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmNwcApAQCAtMTk0Myw3ICsxOTQzLDcgQEAgaW50IFJlbmRlck9iamVjdDo6bmV4dE9mZnNldChp
bnQgY3VycmVudCkgY29uc3QKIAogdm9pZCBSZW5kZXJPYmplY3Q6OmFkanVzdFJlY3RGb3JPdXRs
aW5lQW5kU2hhZG93KExheW91dFJlY3QmIHJlY3QpIGNvbnN0CiB7Ci0gICAgaW50IG91dGxpbmVT
aXplID0gb3V0bGluZVN0eWxlRm9yUmVwYWludCgpLm91dGxpbmVTaXplKCk7CisgICAgZmxvYXQg
b3V0bGluZVNpemUgPSBvdXRsaW5lU3R5bGVGb3JSZXBhaW50KCkub3V0bGluZVNpemUoKTsKICAg
ICBpZiAob3V0bGluZVN0eWxlRm9yUmVwYWludCgpLm91dGxpbmVTdHlsZUlzQXV0bygpKQogICAg
ICAgICBvdXRsaW5lU2l6ZSA9IHN0ZDo6bWF4KHRoZW1lKCkucGxhdGZvcm1Gb2N1c1JpbmdXaWR0
aCgpICsgb3V0bGluZVN0eWxlRm9yUmVwYWludCgpLm91dGxpbmVPZmZzZXQoKSwgb3V0bGluZVNp
emUpOwogICAgIGlmIChjb25zdCBTaGFkb3dEYXRhKiBib3hTaGFkb3cgPSBzdHlsZSgpLmJveFNo
YWRvdygpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggZWZm
ZWRhMDMwZTRlNzA0OWZhMmI1M2Y0Y2M0MTMxOWU2Yzk2MDhlNC4uODgxZmNkNTE0NDA2MDAyMGM5
ZTM5N2NmNjRiMmQ1YmE2N2YyZTc1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJW
aWV3LmNwcApAQCAtODI2LDcgKzgyNiw3IEBAIHZvaWQgUmVuZGVyVmlldzo6cmVwYWludFN1YnRy
ZWVTZWxlY3Rpb24oY29uc3QgU2VsZWN0aW9uU3VidHJlZVJvb3QmIHJvb3QpIGNvbnN0CiAvLyBD
b21wb3NpdGluZyBsYXllciBkaW1lbnNpb25zIHRha2Ugb3V0bGluZSBzaXplIGludG8gYWNjb3Vu
dCwgc28gd2UgaGF2ZSB0byByZWNvbXB1dGUgbGF5ZXIKIC8vIGJvdW5kcyB3aGVuIGl0IGNoYW5n
ZXMuCiAvLyBGSVhNRTogVGhpcyBpcyB1Z2x5OyBpdCB3b3VsZCBiZSBuaWNlIHRvIGhhdmUgYSBi
ZXR0ZXIgd2F5IHRvIGRvIHRoaXMuCi12b2lkIFJlbmRlclZpZXc6OnNldE1heGltYWxPdXRsaW5l
U2l6ZShpbnQgb3V0bGluZVNpemUpCit2b2lkIFJlbmRlclZpZXc6OnNldE1heGltYWxPdXRsaW5l
U2l6ZShmbG9hdCBvdXRsaW5lU2l6ZSkKIHsKICAgICBpZiAob3V0bGluZVNpemUgPT0gbV9tYXhp
bWFsT3V0bGluZVNpemUpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVmlldy5oCmluZGV4IDcxNGI1NjE5MWRjMTE2MDEzN2IxMTQwMzViNmM2ZTdhMGQ5MTcxNTcu
LjdiNDAwNzVkNGUyZTRjNjc2M2JiNDA0YzAwNzBhZmVhYzNjZGYwNjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclZpZXcuaApAQCAtOTgsOCArOTgsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGFic29sdXRlUmVjdHMoVmVjdG9yPEludFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9p
bnQmIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
YWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdCBv
dmVycmlkZTsKIAotICAgIHZvaWQgc2V0TWF4aW1hbE91dGxpbmVTaXplKGludCk7Ci0gICAgaW50
IG1heGltYWxPdXRsaW5lU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4aW1hbE91dGxpbmVTaXpl
OyB9CisgICAgdm9pZCBzZXRNYXhpbWFsT3V0bGluZVNpemUoZmxvYXQpOworICAgIGZsb2F0IG1h
eGltYWxPdXRsaW5lU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4aW1hbE91dGxpbmVTaXplOyB9
CiAKICAgICBMYXlvdXRSZWN0IHZpZXdSZWN0KCkgY29uc3Q7CiAKQEAgLTM1MSw3ICszNTEsNyBA
QCBwcml2YXRlOgogICAgIC8vIEVuZCBkZXByZWNhdGVkIG1lbWJlcnMuCiAKICAgICAvLyBVc2Vk
IHRvIGluZmxhdGUgY29tcG9zaXRpbmcgbGF5ZXJzIGFuZCByZXBhaW50IHJlY3RzLgotICAgIGlu
dCBtX21heGltYWxPdXRsaW5lU2l6ZSB7IDAgfTsKKyAgICBmbG9hdCBtX21heGltYWxPdXRsaW5l
U2l6ZSB7IDAgfTsKIAogICAgIGJvb2wgc2hvdWxkVXNlUHJpbnRpbmdMYXlvdXQoKSBjb25zdDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL091dGxpbmVWYWx1
ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL091dGxpbmVWYWx1ZS5oCmluZGV4
IGYzODBhZjYyODk5YmE0NmQ4MDk1MjU0OWQ4MGFkMTgwNDFjYzNmZjUuLjBhZmU1YTgxMmYyOTkx
ODVhNzVjMzViNGI4MzU0MjhjYTg1NzRjOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9PdXRsaW5lVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvT3V0bGluZVZhbHVlLmgKQEAgLTMyLDExICszMiw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIE91dGxpbmVWYWx1ZSA6IHB1YmxpYyBCb3JkZXJWYWx1ZSB7CiBmcmllbmQg
Y2xhc3MgUmVuZGVyU3R5bGU7CiBwdWJsaWM6Ci0gICAgT3V0bGluZVZhbHVlKCkKLSAgICAgICAg
OiBtX29mZnNldCgwKQotICAgIHsKLSAgICB9Ci0gICAgCiAgICAgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IE91dGxpbmVWYWx1ZSYgbykgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX3dpZHRo
ID09IG8ubV93aWR0aCAmJiBtX3N0eWxlID09IG8ubV9zdHlsZSAmJiBtX2NvbG9yID09IG8ubV9j
b2xvciAmJiBtX2NvbG9ySXNWYWxpZCA9PSBvLm1fY29sb3JJc1ZhbGlkICYmIG1fb2Zmc2V0ID09
IG8ubV9vZmZzZXQgJiYgbV9pc0F1dG8gPT0gby5tX2lzQXV0bzsKQEAgLTQ3LDExICs0MiwxMSBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAhKCp0aGlzID09IG8pOwogICAgIH0KICAgICAKLSAg
ICBpbnQgb2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9vZmZzZXQ7IH0KKyAgICBmbG9hdCBvZmZz
ZXQoKSBjb25zdCB7IHJldHVybiBtX29mZnNldDsgfQogICAgIE91dGxpbmVJc0F1dG8gaXNBdXRv
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8T3V0bGluZUlzQXV0bz4obV9pc0F1dG8pOyB9
CiAKIHByaXZhdGU6Ci0gICAgaW50IG1fb2Zmc2V0OworICAgIGZsb2F0IG1fb2Zmc2V0IHsgMCB9
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCBiNmE0YzMyMjUwMThkY2RiMDJiMDA3YmFiZGM3
ZjQyYTQ4ODM0ZGMzLi40MTAyNTBkZjY3OGEyMWQ2NGYyMzQxZTZmYjA3ZTVjODk3YjM5NWUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtNjc0
LDggKzY3NCw4IEBAIHB1YmxpYzoKICAgICBmbG9hdCBib3JkZXJTdGFydFdpZHRoKCkgY29uc3Q7
CiAgICAgZmxvYXQgYm9yZGVyRW5kV2lkdGgoKSBjb25zdDsKIAotICAgIHVuc2lnbmVkIHNob3J0
IG91dGxpbmVTaXplKCkgY29uc3QgeyByZXR1cm4gc3RkOjptYXgoMCwgb3V0bGluZVdpZHRoKCkg
KyBvdXRsaW5lT2Zmc2V0KCkpOyB9Ci0gICAgdW5zaWduZWQgc2hvcnQgb3V0bGluZVdpZHRoKCkg
Y29uc3QKKyAgICBmbG9hdCBvdXRsaW5lU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6bWF4PGZs
b2F0PigwLCBvdXRsaW5lV2lkdGgoKSArIG91dGxpbmVPZmZzZXQoKSk7IH0KKyAgICBmbG9hdCBv
dXRsaW5lV2lkdGgoKSBjb25zdAogICAgIHsKICAgICAgICAgaWYgKG1fYmFja2dyb3VuZC0+b3V0
bGluZSgpLnN0eWxlKCkgPT0gQk5PTkUpCiAgICAgICAgICAgICByZXR1cm4gMDsKQEAgLTg4Nyw3
ICs4ODcsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBDU1MzIEdldHRlciBNZXRob2RzCiAKLSAgICBp
bnQgb3V0bGluZU9mZnNldCgpIGNvbnN0CisgICAgZmxvYXQgb3V0bGluZU9mZnNldCgpIGNvbnN0
CiAgICAgewogICAgICAgICBpZiAobV9iYWNrZ3JvdW5kLT5vdXRsaW5lKCkuc3R5bGUoKSA9PSBC
Tk9ORSkKICAgICAgICAgICAgIHJldHVybiAwOwpAQCAtMTMyNSw3ICsxMzI1LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0Qm9yZGVyQm90dG9tU3R5bGUoRUJvcmRlclN0eWxlIHYpIHsgU0VUX1ZB
UihzdXJyb3VuZCwgYm9yZGVyLm1fYm90dG9tLm1fc3R5bGUsIHYpOyB9CiAgICAgdm9pZCBzZXRC
b3JkZXJCb3R0b21Db2xvcihjb25zdCBDb2xvciYgdikgeyBTRVRfQk9SREVSVkFMVUVfQ09MT1Io
c3Vycm91bmQsIGJvcmRlci5tX2JvdHRvbSwgdik7IH0KIAotICAgIHZvaWQgc2V0T3V0bGluZVdp
ZHRoKHVuc2lnbmVkIHNob3J0IHYpIHsgU0VUX1ZBUihtX2JhY2tncm91bmQsIG1fb3V0bGluZS5t
X3dpZHRoLCB2KTsgfQorICAgIHZvaWQgc2V0T3V0bGluZVdpZHRoKGZsb2F0IHYpIHsgU0VUX1ZB
UihtX2JhY2tncm91bmQsIG1fb3V0bGluZS5tX3dpZHRoLCB2KTsgfQogICAgIHZvaWQgc2V0T3V0
bGluZVN0eWxlSXNBdXRvKE91dGxpbmVJc0F1dG8gaXNBdXRvKSB7IFNFVF9WQVIobV9iYWNrZ3Jv
dW5kLCBtX291dGxpbmUubV9pc0F1dG8sIGlzQXV0byk7IH0KICAgICB2b2lkIHNldE91dGxpbmVT
dHlsZShFQm9yZGVyU3R5bGUgdikgeyBTRVRfVkFSKG1fYmFja2dyb3VuZCwgbV9vdXRsaW5lLm1f
c3R5bGUsIHYpOyB9CiAgICAgdm9pZCBzZXRPdXRsaW5lQ29sb3IoY29uc3QgQ29sb3ImIHYpIHsg
U0VUX0JPUkRFUlZBTFVFX0NPTE9SKG1fYmFja2dyb3VuZCwgbV9vdXRsaW5lLCB2KTsgfQpAQCAt
MTQ5OSw3ICsxNDk5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UGFnZUJyZWFrQWZ0ZXIoRVBh
Z2VCcmVhayBiKSB7IG5vbmluaGVyaXRlZF9mbGFncy5zZXRQYWdlQnJlYWtBZnRlcihiKTsgfQog
CiAgICAgLy8gQ1NTMyBTZXR0ZXJzCi0gICAgdm9pZCBzZXRPdXRsaW5lT2Zmc2V0KGludCB2KSB7
IFNFVF9WQVIobV9iYWNrZ3JvdW5kLCBtX291dGxpbmUubV9vZmZzZXQsIHYpOyB9CisgICAgdm9p
ZCBzZXRPdXRsaW5lT2Zmc2V0KGZsb2F0IHYpIHsgU0VUX1ZBUihtX2JhY2tncm91bmQsIG1fb3V0
bGluZS5tX29mZnNldCwgdik7IH0KICAgICB2b2lkIHNldFRleHRTaGFkb3coc3RkOjp1bmlxdWVf
cHRyPFNoYWRvd0RhdGE+LCBib29sIGFkZCA9IGZhbHNlKTsKICAgICB2b2lkIHNldFRleHRTdHJv
a2VDb2xvcihjb25zdCBDb2xvciYgYykgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCB0ZXh0
U3Ryb2tlQ29sb3IsIGMpOyB9CiAgICAgdm9pZCBzZXRUZXh0U3Ryb2tlV2lkdGgoZmxvYXQgdykg
eyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCB0ZXh0U3Ryb2tlV2lkdGgsIHcpOyB9CkBAIC0x
OTIyLDcgKzE5MjIsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFN0eWxlSW1hZ2UqIGluaXRpYWxM
aXN0U3R5bGVJbWFnZSgpIHsgcmV0dXJuIDA7IH0KICAgICBzdGF0aWMgZmxvYXQgaW5pdGlhbEJv
cmRlcldpZHRoKCkgeyByZXR1cm4gMzsgfQogICAgIHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBpbml0
aWFsQ29sdW1uUnVsZVdpZHRoKCkgeyByZXR1cm4gMzsgfQotICAgIHN0YXRpYyB1bnNpZ25lZCBz
aG9ydCBpbml0aWFsT3V0bGluZVdpZHRoKCkgeyByZXR1cm4gMzsgfQorICAgIHN0YXRpYyBmbG9h
dCBpbml0aWFsT3V0bGluZVdpZHRoKCkgeyByZXR1cm4gMzsgfQogICAgIHN0YXRpYyBmbG9hdCBp
bml0aWFsTGV0dGVyU3BhY2luZygpIHsgcmV0dXJuIDA7IH0KICAgICBzdGF0aWMgTGVuZ3RoIGlu
aXRpYWxXb3JkU3BhY2luZygpIHsgcmV0dXJuIExlbmd0aChGaXhlZCk7IH0KICAgICBzdGF0aWMg
TGVuZ3RoIGluaXRpYWxTaXplKCkgeyByZXR1cm4gTGVuZ3RoKCk7IH0KQEAgLTE5NTUsNyArMTk1
NSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgVGV4dFVuZGVybGluZVBvc2l0aW9uIGluaXRpYWxU
ZXh0VW5kZXJsaW5lUG9zaXRpb24oKSB7IHJldHVybiBUZXh0VW5kZXJsaW5lUG9zaXRpb25BdXRv
OyB9CiAgICAgc3RhdGljIGZsb2F0IGluaXRpYWxab29tKCkgeyByZXR1cm4gMS4wZjsgfQogICAg
IHN0YXRpYyBUZXh0Wm9vbSBpbml0aWFsVGV4dFpvb20oKSB7IHJldHVybiBUZXh0Wm9vbU5vcm1h
bDsgfQotICAgIHN0YXRpYyBpbnQgaW5pdGlhbE91dGxpbmVPZmZzZXQoKSB7IHJldHVybiAwOyB9
CisgICAgc3RhdGljIGZsb2F0IGluaXRpYWxPdXRsaW5lT2Zmc2V0KCkgeyByZXR1cm4gMDsgfQog
ICAgIHN0YXRpYyBmbG9hdCBpbml0aWFsT3BhY2l0eSgpIHsgcmV0dXJuIDEuMGY7IH0KICAgICBz
dGF0aWMgRUJveEFsaWdubWVudCBpbml0aWFsQm94QWxpZ24oKSB7IHJldHVybiBCU1RSRVRDSDsg
fQogICAgIHN0YXRpYyBFQm94RGVjb3JhdGlvbkJyZWFrIGluaXRpYWxCb3hEZWNvcmF0aW9uQnJl
YWsoKSB7IHJldHVybiBEU0xJQ0U7IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjNGI5MWUxOWQwOGRkZTBjODI1ZjAzMTQw
YjZkN2MxOGFlMzU4MTQ5Li4xMGNlZWM2MmM3MTc1NTdlMmZjNjcxYTU4YmEzMzliYWY2OWM4Mzk0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTUtMTItMjUgIFphbGFuIEJ1anRhcyAgPHphbGFu
QGFwcGxlLmNvbT4KKworICAgICAgICBTdWJwaXhlbCByZW5kZXJpbmc6IEFkZCBzdWJwaXhlbCBz
dXBwb3J0IGZvciBvdXRsaW5lLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTUyNTYwCisKKyAgICAgICAgVW5hYmxlIHRvIHJlZi10ZXN0IG90aGVyIG91
dGxpbmUgdHlwZXMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBmYXN0L2JvcmRlcnMvaGlkcGktb3V0bGluZS1oYWlybGluZS1wYWludGluZy1leHBl
Y3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2JvcmRlcnMvaGlkcGktb3V0bGluZS1o
YWlybGluZS1wYWludGluZy5odG1sOiBBZGRlZC4KKwogMjAxNS0xMi0yNCAgWmFsYW4gQnVqdGFz
ICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6IHgyID49IHgx
IGluIFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OmRyYXdMaW5lRm9yQm94U2lkZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2hpZHBpLW91dGxpbmUtaGFpcmxpbmUtcGFpbnRp
bmctZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9oaWRwaS1vdXRsaW5l
LWhhaXJsaW5lLXBhaW50aW5nLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmM4NWUyMjBlMmI3
N2M4NDMwZmU3YjE5MWYzYjY2NDBjMzA4Y2IyMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvYm9yZGVycy9oaWRwaS1vdXRsaW5lLWhhaXJsaW5lLXBhaW50aW5nLWV4cGVjdGVk
Lmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHRpdGxlPlRoaXMgdGVzdHMgaGFpcmxpbmUgb3V0bGluZSBwYWludGluZy48L3RpdGxlPgorPHN0
eWxlPgorICBkaXYgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBoZWlnaHQ6IDVweDsK
KyAgICB3aWR0aDogNXB4OworICAgIGJvcmRlcjogMC41cHggc29saWQgZ3JlZW47CisgIH0KKzwv
c3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9ImJvcmRlci1zdHlsZTogc29saWQ7
IHRvcDogOS41cHg7IGxlZnQ6IDkuNXB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJib3JkZXItc3R5
bGU6IHNvbGlkOyB0b3A6IDkuNXB4OyBsZWZ0OiAyNC41cHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9
ImJvcmRlci1zdHlsZTogc29saWQ7IHRvcDogOS41cHg7IGxlZnQ6IDM5LjVweDsiPjwvZGl2Pgor
PGRpdiBzdHlsZT0iYm9yZGVyLXN0eWxlOiBzb2xpZDsgdG9wOiA5LjVweDsgbGVmdDogNTQuNXB4
OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJib3JkZXItc3R5bGU6IHNvbGlkOyB3aWR0aDogNnB4OyBo
ZWlnaHQ6IDZweDsgdG9wOiA5cHg7IGxlZnQ6IDY5cHg7Ij48L2Rpdj4KKzxkaXYgc3R5bGU9ImJv
cmRlci1zdHlsZTogc29saWQ7IHdpZHRoOiA2cHg7IGhlaWdodDogNnB4OyB0b3A6IDlweDsgbGVm
dDogODRweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0iYm9yZGVyLXN0eWxlOiBzb2xpZDsgd2lkdGg6
IDZweDsgaGVpZ2h0OiA2cHg7IHRvcDogOXB4OyBsZWZ0OiA5OXB4OyI+PC9kaXY+Cis8ZGl2IHN0
eWxlPSJib3JkZXItc3R5bGU6IHNvbGlkOyB3aWR0aDogNnB4OyBoZWlnaHQ6IDZweDsgdG9wOiA5
cHg7IGxlZnQ6IDExNHB4OyI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJib3JkZXItc3R5bGU6IHNvbGlk
OyB3aWR0aDogNnB4OyBoZWlnaHQ6IDZweDsgdG9wOiA5cHg7IGxlZnQ6IDEyOXB4OyI+PC9kaXY+
Cis8ZGl2IHN0eWxlPSJib3JkZXItc3R5bGU6IHNvbGlkOyBib3JkZXItd2lkdGg6IDFweDsgd2lk
dGg6IDdweDsgaGVpZ2h0OiA3cHg7IHRvcDogOHB4OyBsZWZ0OiAxNDNweDsiPjwvZGl2PgorPGRp
diBzdHlsZT0iYm9yZGVyLXN0eWxlOiBzb2xpZDsgYm9yZGVyLXdpZHRoOiAxcHg7IHdpZHRoOiA3
cHg7IGhlaWdodDogN3B4OyB0b3A6IDhweDsgbGVmdDogMTU4cHg7Ij48L2Rpdj4KKworPGRpdiBz
dHlsZT0iYm9yZGVyLXN0eWxlOiBkb3VibGU7IHRvcDogMjRweDsgbGVmdDogOXB4OyB3aWR0aDog
NnB4OyBoZWlnaHQ6IDZweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0iYm9yZGVyLXN0eWxlOiBkb3Vi
bGU7IHRvcDogMjRweDsgbGVmdDogMjRweDsgd2lkdGg6IDZweDsgaGVpZ2h0OiA2cHg7Ij48L2Rp
dj4KKzxkaXYgc3R5bGU9ImJvcmRlci1zdHlsZTogZG91YmxlOyBib3JkZXItd2lkdGg6IDFweDsg
dG9wOiAyM3B4OyBsZWZ0OiAzOHB4OyB3aWR0aDogN3B4OyBoZWlnaHQ6IDdweDsiPjwvZGl2Pgor
PGRpdiBzdHlsZT0iYm9yZGVyLXN0eWxlOiBkb3VibGU7IGJvcmRlci13aWR0aDogMXB4OyB0b3A6
IDIzcHg7IGxlZnQ6IDUzcHg7IHdpZHRoOiA3cHg7IGhlaWdodDogN3B4OyI+PC9kaXY+Cis8ZGl2
IHN0eWxlPSJib3JkZXItc3R5bGU6IGRvdWJsZTsgYm9yZGVyLXdpZHRoOiAxcHg7IHRvcDogMjNw
eDsgbGVmdDogNjhweDsgd2lkdGg6IDdweDsgaGVpZ2h0OiA3cHg7Ij48L2Rpdj4KKzxkaXYgc3R5
bGU9ImJvcmRlci1zdHlsZTogZG91YmxlOyBib3JkZXItd2lkdGg6IDFweDsgdG9wOiAyM3B4OyBs
ZWZ0OiA4M3B4OyB3aWR0aDogN3B4OyBoZWlnaHQ6IDdweDsiPjwvZGl2PgorPGRpdiBzdHlsZT0i
Ym9yZGVyLXN0eWxlOiBkb3VibGU7IGJvcmRlci13aWR0aDogMXB4OyB0b3A6IDIzcHg7IGxlZnQ6
IDk4cHg7IHdpZHRoOiA3cHg7IGhlaWdodDogN3B4OyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvaGlkcGktb3V0bGluZS1oYWly
bGluZS1wYWludGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2hpZHBpLW91dGxp
bmUtaGFpcmxpbmUtcGFpbnRpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYWY0MGYzZjU4YjI2MmQyNTNh
MzRiODJkZGI0N2RiNjgzMmQxYjkyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ib3JkZXJzL2hpZHBpLW91dGxpbmUtaGFpcmxpbmUtcGFpbnRpbmcuaHRtbApAQCAtMCwwICsx
LDQ3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGhpcyB0ZXN0
cyBoYWlybGluZSBvdXRsaW5lIHBhaW50aW5nPC90aXRsZT4KKzxzdHlsZT4KKyAgZGl2IHsKKyAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgaGVpZ2h0OiA1cHg7CisgICAgd2lkdGg6IDVweDsK
KyAgICBsZWZ0OiAxMHB4OworICAgIHRvcDogMTBweDsKKyAgICBvdXRsaW5lOiBzb2xpZCAwcHgg
Z3JlZW47CisgICAgb3V0bGluZS1vZmZzZXQ6IDBweDsKKyAgfQorPC9zdHlsZT4KKzwvaGVhZD4K
Kzxib2R5PgorPHAgaWQ9ImNvbnRhaW5lciI+PC9wPgorPHNjcmlwdD4KKyAgdmFyIGNvbnRhaW5l
ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKTsKKyAgdmFyIGxlZnRQb3Mg
PSAxMDsKKyAgdmFyIHdpZHRoID0gMC4xOworICBmb3IgKHZhciBpID0gMDsgaSA8PSAxMDsgKytp
KSB7CisgICAgdmFyIGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBlLnN0
eWxlLmxlZnQgPSBsZWZ0UG9zICsgInB4IjsKKyAgICBlLnN0eWxlLm91dGxpbmVXaWR0aCA9IHdp
ZHRoICsgInB4IjsKKyAgICBlLnN0eWxlLm91dGxpbmVPZmZzZXQgPSB3aWR0aCArICJweCI7Cisg
ICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGUpOworICAgIHdpZHRoICs9IDAuMTsKKyAgICBsZWZ0
UG9zICs9IDE1OworICB9CisgIGxlZnRQb3MgPSAxMDsKKyAgd2lkdGggPSAwLjg7CisgIGZvciAo
dmFyIGkgPSAwOyBpIDw9IDY7ICsraSkgeworICAgIHZhciBlID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7CisgICAgZS5zdHlsZS5sZWZ0ID0gbGVmdFBvcyArICJweCI7CisgICAgZS5z
dHlsZS50b3AgPSAiMjVweCI7CisgICAgZS5zdHlsZS5vdXRsaW5lV2lkdGggPSB3aWR0aCArICJw
eCI7CisgICAgZS5zdHlsZS5vdXRsaW5lT2Zmc2V0ID0gd2lkdGggKyAicHgiOworICAgIGUuc3R5
bGUub3V0bGluZVN0eWxlID0gImRvdWJsZSI7CisgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGUp
OworICAgIHdpZHRoICs9IDAuMTsKKyAgICBsZWZ0UG9zICs9IDE1OworICB9Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>