<?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>145907</bug_id>
          
          <creation_ts>2015-06-11 23:22:11 -0700</creation_ts>
          <short_desc>Add the remaining missing override specifiers under Source/WebCore/</short_desc>
          <delta_ts>2015-06-12 11:49:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1101493</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-06-11 23:22:11 -0700</bug_when>
    <thetext>Add the remaining missing override specifiers under Source/WebCore/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101494</commentid>
    <comment_count>1</comment_count>
      <attachid>254779</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-06-11 23:36:07 -0700</bug_when>
    <thetext>Created attachment 254779
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101613</commentid>
    <comment_count>2</comment_count>
      <attachid>254779</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-12 09:45:54 -0700</bug_when>
    <thetext>Comment on attachment 254779
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +        Where the addition had to be performed on all virtual methods of the
&gt; +        class, the virtual specifier was removed so now only the override
&gt; +        specifier is in use.

Still a bit controversial, but Antti did suggest this and nobody said no!

&gt; Source/WebCore/ChangeLog:22
&gt; +        (WebCore::EqualPowerPanner::reset): Deleted.

I understand that the prepare change log script generated all of these, but please remove them. I don’t think it does anyone any good to list all these functions as deleted in the change log.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101652</commentid>
    <comment_count>3</comment_count>
      <attachid>254779</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-06-12 11:31:01 -0700</bug_when>
    <thetext>Comment on attachment 254779
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:22
&gt;&gt; +        (WebCore::EqualPowerPanner::reset): Deleted.
&gt; 
&gt; I understand that the prepare change log script generated all of these, but please remove them. I don’t think it does anyone any good to list all these functions as deleted in the change log.

Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101663</commentid>
    <comment_count>4</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-06-12 11:49:29 -0700</bug_when>
    <thetext>Committed r185518: &lt;http://trac.webkit.org/changeset/185518&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254779</attachid>
            <date>2015-06-11 23:36:07 -0700</date>
            <delta_ts>2015-06-12 09:45:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145907-20150611233536.patch</filename>
            <type>text/plain</type>
            <size>42990</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1NDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWY3NWYwZjFmOGFmMTg3
ZWE5MjBkZTJhZmE0ZDYxZGFlNDU1YTY0Yi4uMjU3Zjk4MTQ3YzYxZmIzZTExMTIwNzU5NTIyOTUw
MzRiNmNiYTM5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDE1LTA2LTExICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgdGhlIHJlbWFp
bmluZyBtaXNzaW5nIG92ZXJyaWRlIHNwZWNpZmllcnMgdW5kZXIgU291cmNlL1dlYkNvcmUvCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU5MDcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggdGhlIHJl
bWFpbmluZyBjb21waWxlciB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIG92ZXJyaWRlIHNwZWNpZmll
cnMKKyAgICAgICAgZm9yIG92ZXJyaWRpbmcgbWV0aG9kIGRlY2xhcmF0aW9ucyBpbiBjbGFzc2Vz
IHVuZGVyIFNvdXJjZS9XZWJDb3JlLy4KKworICAgICAgICBXaGVyZSB0aGUgYWRkaXRpb24gaGFk
IHRvIGJlIHBlcmZvcm1lZCBvbiBhbGwgdmlydHVhbCBtZXRob2RzIG9mIHRoZQorICAgICAgICBj
bGFzcywgdGhlIHZpcnR1YWwgc3BlY2lmaWVyIHdhcyByZW1vdmVkIHNvIG5vdyBvbmx5IHRoZSBv
dmVycmlkZQorICAgICAgICBzcGVjaWZpZXIgaXMgaW4gdXNlLgorCisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQlJlcXVlc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
U2VydmVyLmg6CisgICAgICAgICogYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5oOgorICAg
ICAgICAqIGVkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaDoKKyAgICAgICAgKiBtYXRobWwvTWF0
aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0Vx
dWFsUG93ZXJQYW5uZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVxdWFsUG93ZXJQYW5uZXI6OnJl
c2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlOjpsb2FkKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok51bGxNZWRpYVBsYXllclByaXZhdGU6OmNhbmNlbExv
YWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TnVsbE1lZGlhUGxheWVyUHJpdmF0ZTo6
cHJlcGFyZVRvUGxheSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpOdWxsTWVkaWFQbGF5
ZXJQcml2YXRlOjpwbGF5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok51bGxNZWRpYVBs
YXllclByaXZhdGU6OnBhdXNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok51bGxNZWRp
YVBsYXllclByaXZhdGU6OnBsYXRmb3JtTWVkaWEpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TnVsbE1lZGlhUGxheWVyUHJpdmF0ZTo6cGxhdGZvcm1MYXllcik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlOjpuYXR1cmFsU2l6ZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlOjpoYXNWaWRlbyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlOjpoYXNB
dWRpbyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRl
OjpzZXRWaXNpYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok51bGxNZWRpYVBsYXll
clByaXZhdGU6OmR1cmF0aW9uRG91YmxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok51
bGxNZWRpYVBsYXllclByaXZhdGU6OmN1cnJlbnRUaW1lRG91YmxlKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Ok51bGxNZWRpYVBsYXllclByaXZhdGU6OnNlZWtEb3VibGUpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6TnVsbE1lZGlhUGxheWVyUHJpdmF0ZTo6c2Vla2luZyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRSYXRl
RG91YmxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok51bGxNZWRpYVBsYXllclByaXZh
dGU6OnNldFByZXNlcnZlc1BpdGNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok51bGxN
ZWRpYVBsYXllclByaXZhdGU6OnBhdXNlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpO
dWxsTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRWb2x1bWVEb3VibGUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6TnVsbE1lZGlhUGxheWVyUHJpdmF0ZTo6c3VwcG9ydHNNdXRpbmcpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6TnVsbE1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0TXV0ZWQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TnVsbE1lZGlhUGxheWVyUHJpdmF0ZTo6aGFz
Q2xvc2VkQ2FwdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TnVsbE1lZGlhUGxh
eWVyUHJpdmF0ZTo6c2V0Q2xvc2VkQ2FwdGlvbnNWaXNpYmxlKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok51bGxNZWRpYVBsYXllclByaXZhdGU6Om5ldHdvcmtTdGF0ZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlOjpyZWFkeVN0YXRlKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok51bGxNZWRpYVBsYXllclByaXZhdGU6Om1heFRp
bWVTZWVrYWJsZURvdWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpOdWxsTWVkaWFQ
bGF5ZXJQcml2YXRlOjptaW5UaW1lU2Vla2FibGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TnVsbE1lZGlhUGxheWVyUHJpdmF0ZTo6YnVmZmVyZWQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6TnVsbE1lZGlhUGxheWVyUHJpdmF0ZTo6dG90YWxCeXRlcyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlOjpkaWRMb2FkaW5nUHJvZ3Jl
c3MpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TnVsbE1lZGlhUGxheWVyUHJpdmF0ZTo6
c2V0U2l6ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpOdWxsTWVkaWFQbGF5ZXJQcml2
YXRlOjpjYW5Mb2FkUG9zdGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok51bGxNZWRp
YVBsYXllclByaXZhdGU6OnNldFBvc3Rlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpO
dWxsTWVkaWFQbGF5ZXJQcml2YXRlOjpoYXNTaW5nbGVTZWN1cml0eU9yaWdpbik6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9EaXN0YW50TGlnaHRTb3VyY2Uu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oOgor
ICAgICAgICAoV2ViQ29yZTo6RkVEaXNwbGFjZW1lbnRNYXA6OmRldGVybWluZUFic29sdXRlUGFp
bnRSZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Rmxvb2QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZFRmxvb2Q6OmRldGVybWluZUFic29sdXRlUGFp
bnRSZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Bv
aW50TGlnaHRTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nw
b3RMaWdodFNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6aGFzVmlkZW8pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYXNBdWRpbyk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmF1ZGlvU291cmNlUHJv
dmlkZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjplbmdpbmVEZXNjcmlwdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmlzTGl2ZVN0cmVhbSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnRvdGFsVmlkZW9GcmFt
ZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpkcm9wcGVkVmlkZW9GcmFtZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjb3JydXB0ZWRWaWRlb0ZyYW1lcyk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnRvdGFsRnJh
bWVEZWxheSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0Jp
dG1hcFRleHR1cmVHTC5oOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUdMOjppc0Jh
Y2tlZEJ5T3BlbkdMKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFu
c2Zvcm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24uaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1BlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0
aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Sb3RhdGVUcmFu
c2Zvcm1PcGVyYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1z
L1NjYWxlVHJhbnNmb3JtT3BlcmF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dHJhbnNmb3Jtcy9Ta2V3VHJhbnNmb3JtT3BlcmF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0v
aW1hZ2UtZGVjb2RlcnMvcG5nL1BOR0ltYWdlRGVjb2Rlci5oOgorICAgICAgICAoV2ViQ29yZTo6
UE5HSW1hZ2VEZWNvZGVyOjpmaWxlbmFtZUV4dGVuc2lvbik6IERlbGV0ZWQuCisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
T3dyLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5oOgorCiAyMDE1LTA2LTExICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAog
ICAgICAgICBXZWJDb3JlOjpyZXBvcnRFeGNlcHRpb24oKSBuZWVkcyB0byBiZSBhYmxlIHRvIGFj
Y2VwdCBhIHJhdyB0aHJvd24gdmFsdWUgaW4gYWRkaXRpb24gdG8gRXhjZXB0aW9uIG9iamVjdHMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJS
ZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1
ZXN0LmgKaW5kZXggN2FhOGIwZDY0NDg1MjNjNTRjYzgzMzUzOTk4YjY4NmY0MmRjZjM2NC4uOTFk
NGIwMWY1NmE4ODg0OTIyNDkzNjhlYTk2YzE0ZGNiOWQyYTdlYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaApAQCAtNDcsNyAr
NDcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElE
QkRhdGFiYXNlQmFja2VuZD4sIGNvbnN0IElEQkRhdGFiYXNlTWV0YWRhdGEmKSBvdmVycmlkZTsK
IAogICAgIC8vIEV2ZW50VGFyZ2V0Ci0gICAgdmlydHVhbCBFdmVudFRhcmdldEludGVyZmFjZSBl
dmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0OworICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRl
cmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IGJvb2wgZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50Pikgb3ZlcnJpZGU7CiAKIHByb3Rl
Y3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJl
cXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaApp
bmRleCAxODNiOWZjM2RhYjA5MDZkMWYwZjI0YWU1MjA2OTM2ZDA2MDJkMDhiLi4wZWE3ZTJmMWRi
MmVhZmI3NzI5ZDU5ODllMDZhZTBiN2ZhMTI0OTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCkBAIC04MCwxNSArODAsMTUgQEAgcHVibGljOgog
ICAgIHZvaWQgYWJvcnQoKTsKIAogICAgIC8vIElEQkNhbGxiYWNrcwotICAgIHZpcnR1YWwgdm9p
ZCBvbkVycm9yKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pOwotICAgIHZpcnR1YWwgdm9p
ZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0Pik7Ci0gICAgdmlydHVhbCB2b2lk
IG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmQ+KTsKLSAgICB2aXJ0dWFsIHZv
aWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCS2V5Pik7Ci0gICAgdmlydHVhbCB2b2lkIG9uU3Vj
Y2VzcyhQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4pOwotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nl
c3MoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCBQYXNzUmVmUHRyPElEQktleT4sIGNvbnN0IElE
QktleVBhdGgmKTsKLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGludDY0X3QpOwotICAgIHZp
cnR1YWwgdm9pZCBvblN1Y2Nlc3MoKTsKLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NS
ZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIFBhc3NSZWZQdHI8
U2hhcmVkQnVmZmVyPik7CisgICAgdmlydHVhbCB2b2lkIG9uRXJyb3IoUGFzc1JlZlB0cjxJREJE
YXRhYmFzZUVycm9yPikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNz
UmVmUHRyPERPTVN0cmluZ0xpc3Q+KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNj
ZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZD4pIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJLZXk+KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQ
dHI8SURCS2V5PiwgY29uc3QgSURCS2V5UGF0aCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBvblN1Y2Nlc3MoaW50NjRfdCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vz
cygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJL
ZXk+LCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZm
ZXI+KSBvdmVycmlkZTsKIAogICAgIC8vIEV2ZW50VGFyZ2V0CiAgICAgdmlydHVhbCBFdmVudFRh
cmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVNlcnZl
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVNlcnZlci5o
CmluZGV4IGJlNDgxMDgwY2MyMTE1MGI2N2RhOWQ1NTgwZjA0ZmQwOTFiZTU3YmEuLjUxNDliNWNh
OGQ2NzgyOTJiY2VjZmM0NmI3ZWE2NTFjMzBjYjA2ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlU2VydmVyLmgKQEAgLTM2LDMzICszNiwz
MyBAQCBwdWJsaWM6CiAgICAgRGF0YWJhc2VTZXJ2ZXIoKSB7IH07CiAgICAgdmlydHVhbCB+RGF0
YWJhc2VTZXJ2ZXIoKSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplKGNvbnN0IFN0
cmluZyYgZGF0YWJhc2VQYXRoKTsKKyAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgU3RyaW5nJiBk
YXRhYmFzZVBhdGgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHNldENsaWVudChEYXRh
YmFzZU1hbmFnZXJDbGllbnQqKTsKLSAgICB2aXJ0dWFsIFN0cmluZyBkYXRhYmFzZURpcmVjdG9y
eVBhdGgoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RGF0YWJhc2VEaXJlY3RvcnlQYXRo
KGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgc2V0Q2xpZW50KERhdGFiYXNlTWFuYWdlckNsaWVu
dCopIG92ZXJyaWRlOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVBhdGgoKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2b2lkIHNldERhdGFiYXNlRGlyZWN0b3J5UGF0aChjb25zdCBTdHJpbmcm
KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgU3RyaW5nIGZ1bGxQYXRoRm9yRGF0YWJhc2UoU2Vj
dXJpdHlPcmlnaW4qLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZEb2VzTm90RXhp
c3QpOworICAgIFN0cmluZyBmdWxsUGF0aEZvckRhdGFiYXNlKFNlY3VyaXR5T3JpZ2luKiwgY29u
c3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmRG9lc05vdEV4aXN0KSBvdmVycmlkZTsKIAot
ICAgIHZpcnR1YWwgUmVmUHRyPERhdGFiYXNlQmFja2VuZEJhc2U+IG9wZW5EYXRhYmFzZShSZWZQ
dHI8RGF0YWJhc2VDb250ZXh0PiYsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBl
eHBlY3RlZFZlcnNpb24sIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcg
ZXN0aW1hdGVkU2l6ZSwgYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRGF0YWJhc2VFcnJv
ciYsIFN0cmluZyYgZXJyb3JNZXNzYWdlLCBPcGVuQXR0ZW1wdCk7CisgICAgUmVmUHRyPERhdGFi
YXNlQmFja2VuZEJhc2U+IG9wZW5EYXRhYmFzZShSZWZQdHI8RGF0YWJhc2VDb250ZXh0PiYsIGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBleHBlY3RlZFZlcnNpb24sIGNvbnN0IFN0
cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSwgYm9vbCBzZXRW
ZXJzaW9uSW5OZXdEYXRhYmFzZSwgRGF0YWJhc2VFcnJvciYsIFN0cmluZyYgZXJyb3JNZXNzYWdl
LCBPcGVuQXR0ZW1wdCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGNsb3NlQWxsRGF0YWJhc2VzKCkg
b3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaGFzRW50cnlGb3JPcmlnaW4oU2VjdXJpdHlP
cmlnaW4qKTsKLSAgICB2aXJ0dWFsIHZvaWQgb3JpZ2lucyhWZWN0b3I8UmVmUHRyPFNlY3VyaXR5
T3JpZ2luPj4mIHJlc3VsdCk7Ci0gICAgdmlydHVhbCBib29sIGRhdGFiYXNlTmFtZXNGb3JPcmln
aW4oU2VjdXJpdHlPcmlnaW4qLCBWZWN0b3I8U3RyaW5nPiYgcmVzdWx0KTsKLSAgICB2aXJ0dWFs
IERhdGFiYXNlRGV0YWlscyBkZXRhaWxzRm9yTmFtZUFuZE9yaWdpbihjb25zdCBTdHJpbmcmLCBT
ZWN1cml0eU9yaWdpbiopOworICAgIGJvb2wgaGFzRW50cnlGb3JPcmlnaW4oU2VjdXJpdHlPcmln
aW4qKSBvdmVycmlkZTsKKyAgICB2b2lkIG9yaWdpbnMoVmVjdG9yPFJlZlB0cjxTZWN1cml0eU9y
aWdpbj4+JiByZXN1bHQpIG92ZXJyaWRlOworICAgIGJvb2wgZGF0YWJhc2VOYW1lc0Zvck9yaWdp
bihTZWN1cml0eU9yaWdpbiosIFZlY3RvcjxTdHJpbmc+JiByZXN1bHQpIG92ZXJyaWRlOworICAg
IERhdGFiYXNlRGV0YWlscyBkZXRhaWxzRm9yTmFtZUFuZE9yaWdpbihjb25zdCBTdHJpbmcmLCBT
ZWN1cml0eU9yaWdpbiopIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGxv
bmcgdXNhZ2VGb3JPcmlnaW4oU2VjdXJpdHlPcmlnaW4qKTsKLSAgICB2aXJ0dWFsIHVuc2lnbmVk
IGxvbmcgbG9uZyBxdW90YUZvck9yaWdpbihTZWN1cml0eU9yaWdpbiopOworICAgIHVuc2lnbmVk
IGxvbmcgbG9uZyB1c2FnZUZvck9yaWdpbihTZWN1cml0eU9yaWdpbiopIG92ZXJyaWRlOworICAg
IHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YUZvck9yaWdpbihTZWN1cml0eU9yaWdpbiopIG92ZXJy
aWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHNldFF1b3RhKFNlY3VyaXR5T3JpZ2luKiwgdW5zaWdu
ZWQgbG9uZyBsb25nKTsKKyAgICB2b2lkIHNldFF1b3RhKFNlY3VyaXR5T3JpZ2luKiwgdW5zaWdu
ZWQgbG9uZyBsb25nKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVBbGxEYXRh
YmFzZXMoKTsKLSAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlT3JpZ2luKFNlY3VyaXR5T3JpZ2luKik7
Ci0gICAgdmlydHVhbCBib29sIGRlbGV0ZURhdGFiYXNlKFNlY3VyaXR5T3JpZ2luKiwgY29uc3Qg
U3RyaW5nJiBuYW1lKTsKKyAgICB2b2lkIGRlbGV0ZUFsbERhdGFiYXNlcygpIG92ZXJyaWRlOwor
ICAgIGJvb2wgZGVsZXRlT3JpZ2luKFNlY3VyaXR5T3JpZ2luKikgb3ZlcnJpZGU7CisgICAgYm9v
bCBkZWxldGVEYXRhYmFzZShTZWN1cml0eU9yaWdpbiosIGNvbnN0IFN0cmluZyYgbmFtZSkgb3Zl
cnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgaW50ZXJydXB0QWxsRGF0YWJhc2VzRm9yQ29udGV4
dChjb25zdCBEYXRhYmFzZUNvbnRleHQqKTsKKyAgICB2b2lkIGludGVycnVwdEFsbERhdGFiYXNl
c0ZvckNvbnRleHQoY29uc3QgRGF0YWJhc2VDb250ZXh0Kikgb3ZlcnJpZGU7CiAKIHByb3RlY3Rl
ZDoKICAgICB2aXJ0dWFsIFJlZlB0cjxEYXRhYmFzZUJhY2tlbmRCYXNlPiBjcmVhdGVEYXRhYmFz
ZShSZWZQdHI8RGF0YWJhc2VDb250ZXh0PiYsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3Ry
aW5nJiBleHBlY3RlZFZlcnNpb24sIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVk
IGxvbmcgZXN0aW1hdGVkU2l6ZSwgYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRGF0YWJh
c2VFcnJvciYsIFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlSlNTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1JlYWRhYmxlSlNTdHJlYW0uaAppbmRleCBkNGZmMjhlMDc0NTY2NzNjZWQzMTc3NzI4
NjBiZTVjMmJjNGY4Mjc3Li5hMjA0MDE0ZTc1Njk5YzA2OWJmZTJhMGU0N2ZlZGViMDM0NWJkMDRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZUpTU3RyZWFt
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5oCkBA
IC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICBKU0M6OkpTVmFsdWUganNDb250cm9sbGVyKEpT
Qzo6RXhlY1N0YXRlJiwgSlNET01HbG9iYWxPYmplY3QqKTsKIAogICAgIHZvaWQgc3RvcmVFcnJv
cihKU0M6OkV4ZWNTdGF0ZSYpOwotICAgIEpTQzo6SlNWYWx1ZSBlcnJvcigpIHsgcmV0dXJuIG1f
ZXJyb3IuZ2V0KCk7IH0KKyAgICBKU0M6OkpTVmFsdWUgZXJyb3IoKSBvdmVycmlkZSB7IHJldHVy
biBtX2Vycm9yLmdldCgpOyB9CiAKICAgICB2b2lkIGVucXVldWUoSlNDOjpFeGVjU3RhdGUmKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oCmluZGV4IDY1Mjgx
NjExNjRkMTM4YzQ2NTQwNjc5ZjY0ODljZTQwODA0YjgyNTUuLjNiZTY2MWJhMjQxNjE3OTFjYjNj
N2E3ZDU2YTI3ZTkwZWU2ZWZhZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0VGV4dENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFRl
eHRDb21tYW5kLmgKQEAgLTY3LDcgKzY3LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGVsZXRl
Q2hhcmFjdGVyKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpOworICAgIHZpcnR1YWwg
dm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNJbnNlcnRUZXh0
Q29tbWFuZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmgKaW5kZXgg
ZDRjM2JiYzNhNzg4NmIyMmJjYmEyNzdkNmE5MzlhMDg0OTQ1M2VhMy4uODFlMWVlNTNmNDM4OGNl
Mzg4YTZjYzRkNDI2YTBmZTM3MjI4ZDIxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0
aG1sL01hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9t
YXRobWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5oCkBAIC00MCw3ICs0MCw3IEBAIHB1
YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKLSAgICB2b2lkIGNoaWxkcmVu
Q2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpOworICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNo
YW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICB2aXJ0
dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVmPFJl
bmRlclN0eWxlPiYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0VxdWFsUG93ZXJQYW5uZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0VxdWFsUG93ZXJQYW5uZXIuaAppbmRleCAx
NzMzMzNkZTVmNDVkMWU2Y2RmMjc5YWUxOWY0NTFhZTQ0MjM4NjQxLi5kMjlhNmU3MGZkNWVlYjg4
YTc3MjVmZjQ4MTRmMzE0ODUzYzNhNmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9FcXVhbFBvd2VyUGFubmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vRXF1YWxQb3dlclBhbm5lci5oCkBAIC0zNSw5ICszNSw5IEBAIGNsYXNzIEVxdWFs
UG93ZXJQYW5uZXIgOiBwdWJsaWMgUGFubmVyIHsKIHB1YmxpYzoKICAgICBFcXVhbFBvd2VyUGFu
bmVyKGZsb2F0IHNhbXBsZVJhdGUpOwogCi0gICAgdmlydHVhbCB2b2lkIHBhbihkb3VibGUgYXpp
bXV0aCwgZG91YmxlIGVsZXZhdGlvbiwgY29uc3QgQXVkaW9CdXMqIGlucHV0QnVzLCBBdWRpb0J1
cyogb3V0cHV0QnVmLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICB2aXJ0dWFsIHZvaWQg
cGFuKGRvdWJsZSBhemltdXRoLCBkb3VibGUgZWxldmF0aW9uLCBjb25zdCBBdWRpb0J1cyogaW5w
dXRCdXMsIEF1ZGlvQnVzKiBvdXRwdXRCdWYsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIG92ZXJy
aWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHJlc2V0KCkgeyBtX2lzRmlyc3RSZW5kZXIgPSB0cnVl
OyB9CisgICAgdmlydHVhbCB2b2lkIHJlc2V0KCkgb3ZlcnJpZGUgeyBtX2lzRmlyc3RSZW5kZXIg
PSB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIGRvdWJsZSB0YWlsVGltZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIGRvdWJsZSBsYXRlbmN5VGltZSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIDA7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA3ZTg5NDA2NDE1MGI4ZDYxNmU2ZGVkYzY0ZTgwOTVk
N2E1ZmE0MjMxLi5kOTM5ZDY3YmRhNjQwM2YxYTlkMjA2ZmQ4NDczMjMzY2JiZjNjY2JlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBA
IC04NSw3MCArODUsNzAgQEAgY2xhc3MgTnVsbE1lZGlhUGxheWVyUHJpdmF0ZSA6IHB1YmxpYyBN
ZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UgewogcHVibGljOgogICAgIGV4cGxpY2l0IE51bGxN
ZWRpYVBsYXllclByaXZhdGUoTWVkaWFQbGF5ZXIqKSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBs
b2FkKGNvbnN0IFN0cmluZyYpIHsgfQorICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmKSBvdmVy
cmlkZSB7IH0KICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIHZpcnR1YWwgdm9pZCBsb2Fk
KGNvbnN0IFN0cmluZyYsIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCopIHsgfQorICAgIHZvaWQg
bG9hZChjb25zdCBTdHJpbmcmLCBNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQqKSBvdmVycmlkZSB7
IH0KICNlbmRpZgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgdmlydHVhbCB2b2lkIGxv
YWQoTWVkaWFTdHJlYW1Qcml2YXRlKikgeyB9CisgICAgdm9pZCBsb2FkKE1lZGlhU3RyZWFtUHJp
dmF0ZSopIG92ZXJyaWRlIHsgfQogI2VuZGlmCi0gICAgdmlydHVhbCB2b2lkIGNhbmNlbExvYWQo
KSB7IH0KKyAgICB2b2lkIGNhbmNlbExvYWQoKSBvdmVycmlkZSB7IH0KIAotICAgIHZpcnR1YWwg
dm9pZCBwcmVwYXJlVG9QbGF5KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHBsYXkoKSB7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgcGF1c2UoKSB7IH0gICAgCisgICAgdm9pZCBwcmVwYXJlVG9QbGF5KCkg
b3ZlcnJpZGUgeyB9CisgICAgdm9pZCBwbGF5KCkgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCBwYXVz
ZSgpIG92ZXJyaWRlIHsgfQogCi0gICAgdmlydHVhbCBQbGF0Zm9ybU1lZGlhIHBsYXRmb3JtTWVk
aWEoKSBjb25zdCB7IHJldHVybiBOb1BsYXRmb3JtTWVkaWE7IH0KLSAgICB2aXJ0dWFsIFBsYXRm
b3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCB7IHJldHVybiAwOyB9CisgICAgUGxhdGZv
cm1NZWRpYSBwbGF0Zm9ybU1lZGlhKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gTm9QbGF0Zm9y
bU1lZGlhOyB9CisgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIDA7IH0KIAotICAgIHZpcnR1YWwgRmxvYXRTaXplIG5hdHVyYWxTaXplKCkg
Y29uc3QgeyByZXR1cm4gRmxvYXRTaXplKCk7IH0KKyAgICBGbG9hdFNpemUgbmF0dXJhbFNpemUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBGbG9hdFNpemUoKTsgfQogCi0gICAgdmlydHVhbCBi
b29sIGhhc1ZpZGVvKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wg
aGFzQXVkaW8oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgaGFzVmlkZW8oKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgaGFzQXVkaW8oKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIHNldFZpc2li
bGUoYm9vbCkgeyB9CisgICAgdm9pZCBzZXRWaXNpYmxlKGJvb2wpIG92ZXJyaWRlIHsgfQogCi0g
ICAgdmlydHVhbCBkb3VibGUgZHVyYXRpb25Eb3VibGUoKSBjb25zdCB7IHJldHVybiAwOyB9Cisg
ICAgZG91YmxlIGR1cmF0aW9uRG91YmxlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQog
Ci0gICAgdmlydHVhbCBkb3VibGUgY3VycmVudFRpbWVEb3VibGUoKSBjb25zdCB7IHJldHVybiAw
OyB9Ci0gICAgdmlydHVhbCB2b2lkIHNlZWtEb3VibGUoZG91YmxlKSB7IH0KLSAgICB2aXJ0dWFs
IGJvb2wgc2Vla2luZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgZG91YmxlIGN1cnJl
bnRUaW1lRG91YmxlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQorICAgIHZvaWQgc2Vl
a0RvdWJsZShkb3VibGUpIG92ZXJyaWRlIHsgfQorICAgIGJvb2wgc2Vla2luZygpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UmF0ZURvdWJs
ZShkb3VibGUpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRQcmVzZXJ2ZXNQaXRjaChib29sKSB7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgcGF1c2VkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAg
ICB2b2lkIHNldFJhdGVEb3VibGUoZG91YmxlKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIHNldFBy
ZXNlcnZlc1BpdGNoKGJvb2wpIG92ZXJyaWRlIHsgfQorICAgIGJvb2wgcGF1c2VkKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBzZXRWb2x1bWVE
b3VibGUoZG91YmxlKSB7IH0KKyAgICB2b2lkIHNldFZvbHVtZURvdWJsZShkb3VibGUpIG92ZXJy
aWRlIHsgfQogCi0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzTXV0aW5nKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0TXV0ZWQoYm9vbCkgeyB9CisgICAgYm9v
bCBzdXBwb3J0c011dGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
dm9pZCBzZXRNdXRlZChib29sKSBvdmVycmlkZSB7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBoYXND
bG9zZWRDYXB0aW9ucygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lk
IHNldENsb3NlZENhcHRpb25zVmlzaWJsZShib29sKSB7IH07CisgICAgYm9vbCBoYXNDbG9zZWRD
YXB0aW9ucygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdm9pZCBzZXRD
bG9zZWRDYXB0aW9uc1Zpc2libGUoYm9vbCkgb3ZlcnJpZGUgeyB9OwogCi0gICAgdmlydHVhbCBN
ZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG5ldHdvcmtTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIE1l
ZGlhUGxheWVyOjpFbXB0eTsgfQotICAgIHZpcnR1YWwgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUg
cmVhZHlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIE1lZGlhUGxheWVyOjpIYXZlTm90aGluZzsgfQor
ICAgIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gTWVkaWFQbGF5ZXI6OkVtcHR5OyB9CisgICAgTWVkaWFQbGF5ZXI6OlJlYWR5
U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIE1lZGlhUGxheWVyOjpI
YXZlTm90aGluZzsgfQogCi0gICAgdmlydHVhbCBkb3VibGUgbWF4VGltZVNlZWthYmxlRG91Ymxl
KCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgZG91YmxlIG1pblRpbWVTZWVrYWJs
ZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxQbGF0
Zm9ybVRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3QgeyByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxQbGF0Zm9ybVRpbWVSYW5nZXM+KCk7IH0KKyAgICBmbG9hdCBtYXhUaW1lU2Vla2FibGUoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CisgICAgZG91YmxlIG1pblRpbWVTZWVrYWJsZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZv
cm1UaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8UGxhdGZvcm1UaW1lUmFuZ2VzPigpOyB9CiAKLSAgICB2aXJ0dWFsIHVuc2lnbmVk
IGxvbmcgbG9uZyB0b3RhbEJ5dGVzKCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwg
Ym9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHVu
c2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsg
fQorICAgIGJvb2wgZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBzZXRTaXplKGNvbnN0IEludFNpemUmKSB7IH0K
KyAgICB2b2lkIHNldFNpemUoY29uc3QgSW50U2l6ZSYpIG92ZXJyaWRlIHsgfQogCi0gICAgdmly
dHVhbCB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJy
aWRlIHsgfQorICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0
Jikgb3ZlcnJpZGUgeyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuTG9hZFBvc3RlcigpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldFBvc3Rlcihjb25zdCBTdHJp
bmcmKSB7IH0KKyAgICBib29sIGNhbkxvYWRQb3N0ZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBmYWxzZTsgfQorICAgIHZvaWQgc2V0UG9zdGVyKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlIHsg
fQogCi0gICAgdmlydHVhbCBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQorICAgIGJvb2wgaGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQot
ICAgIHZpcnR1YWwgTWVkaWFQbGF5ZXI6Ok1lZGlhS2V5RXhjZXB0aW9uIGdlbmVyYXRlS2V5UmVx
dWVzdChjb25zdCBTdHJpbmcmLCBjb25zdCB1bnNpZ25lZCBjaGFyKiwgdW5zaWduZWQpIG92ZXJy
aWRlIHsgcmV0dXJuIE1lZGlhUGxheWVyOjpJbnZhbGlkUGxheWVyU3RhdGU7IH0KLSAgICB2aXJ0
dWFsIE1lZGlhUGxheWVyOjpNZWRpYUtleUV4Y2VwdGlvbiBhZGRLZXkoY29uc3QgU3RyaW5nJiwg
Y29uc3QgdW5zaWduZWQgY2hhciosIHVuc2lnbmVkLCBjb25zdCB1bnNpZ25lZCBjaGFyKiwgdW5z
aWduZWQsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlIHsgcmV0dXJuIE1lZGlhUGxheWVyOjpJbnZh
bGlkUGxheWVyU3RhdGU7IH0KLSAgICB2aXJ0dWFsIE1lZGlhUGxheWVyOjpNZWRpYUtleUV4Y2Vw
dGlvbiBjYW5jZWxLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJy
aWRlIHsgcmV0dXJuIE1lZGlhUGxheWVyOjpJbnZhbGlkUGxheWVyU3RhdGU7IH0KKyAgICBNZWRp
YVBsYXllcjo6TWVkaWFLZXlFeGNlcHRpb24gZ2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IHVuc2lnbmVkIGNoYXIqLCB1bnNpZ25lZCkgb3ZlcnJpZGUgeyByZXR1cm4gTWVk
aWFQbGF5ZXI6OkludmFsaWRQbGF5ZXJTdGF0ZTsgfQorICAgIE1lZGlhUGxheWVyOjpNZWRpYUtl
eUV4Y2VwdGlvbiBhZGRLZXkoY29uc3QgU3RyaW5nJiwgY29uc3QgdW5zaWduZWQgY2hhciosIHVu
c2lnbmVkLCBjb25zdCB1bnNpZ25lZCBjaGFyKiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIG92
ZXJyaWRlIHsgcmV0dXJuIE1lZGlhUGxheWVyOjpJbnZhbGlkUGxheWVyU3RhdGU7IH0KKyAgICBN
ZWRpYVBsYXllcjo6TWVkaWFLZXlFeGNlcHRpb24gY2FuY2VsS2V5UmVxdWVzdChjb25zdCBTdHJp
bmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZSB7IHJldHVybiBNZWRpYVBsYXllcjo6SW52YWxp
ZFBsYXllclN0YXRlOyB9CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRGlzdGFudExpZ2h0U291cmNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Rpc3RhbnRMaWdodFNvdXJjZS5oCmlu
ZGV4IGI1ZTc4NTYyZTM3ZmEzNDU1N2ZjMmMzZDZkNmZlYmRmYjhkZjg0Y2IuLjk1NGY3MTQ4MzYw
NWFkNTRjOTJhZGU5ZTZiYzdmYzk2ZDg4YzQ3NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRGlzdGFudExpZ2h0U291cmNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9EaXN0YW50TGlnaHRTb3VyY2Uu
aApAQCAtNDAsMTAgKzQwLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2V0QXppbXV0
aChmbG9hdCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHNldEVsZXZhdGlvbihmbG9hdCkg
b3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgaW5pdFBhaW50aW5nRGF0YShQYWludGluZ0Rh
dGEmKTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUGFpbnRpbmdEYXRhKFBhaW50aW5nRGF0YSYs
IGludCB4LCBpbnQgeSwgZmxvYXQgeik7CisgICAgdmlydHVhbCB2b2lkIGluaXRQYWludGluZ0Rh
dGEoUGFpbnRpbmdEYXRhJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVBhaW50
aW5nRGF0YShQYWludGluZ0RhdGEmLCBpbnQgeCwgaW50IHksIGZsb2F0IHopIG92ZXJyaWRlOwog
Ci0gICAgdmlydHVhbCBUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJl
YW0mKSBjb25zdDsKKyAgICB2aXJ0dWFsIFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRp
b24oVGV4dFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIERpc3RhbnRM
aWdodFNvdXJjZShmbG9hdCBhemltdXRoLCBmbG9hdCBlbGV2YXRpb24pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmgKaW5k
ZXggMDI2ZmY0OTQ2MTUwNTBlMzc4ZGUyNTI5ZjQ3MWQxYWQ5ZWRiZDNlZi4uOGM4ODVjNWQ1ZDg1
NzExNjU1NDJhOTllYThiMTNiNjZlY2ZkMGM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuaApAQCAtNjAsMTIgKzYw
LDEyIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBjb3JyZWN0RmlsdGVyUmVzdWx0SWZO
ZWVkZWQoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdh
cmUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZHVtcCgpOworICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9y
bUFwcGx5U29mdHdhcmUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZHVtcCgpIG92ZXJy
aWRlOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgp
OworICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpIG92ZXJyaWRl
OwogCi0gICAgdmlydHVhbCBUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRT
dHJlYW0mLCBpbnQgaW5kZW50aW9uKSBjb25zdDsKKyAgICB2aXJ0dWFsIFRleHRTdHJlYW0mIGV4
dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYsIGludCBpbmRlbnRpb24pIGNvbnN0IG92
ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHJlcXVpcmVzVmFsaWRQcmVN
dWx0aXBsaWVkUGl4ZWxzKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV90eXBlICE9IEZFQ09NUE9TSVRF
X09QRVJBVE9SX0FSSVRITUVUSUM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuaAppbmRleCBiMDgx
MGE2ZjVhMjE0YmIxZWI0Njc4ZmQ5OTRkY2U4Yjk2ZTJkNzM4Li4xNjRmMmMyNWM1ZGEzYmQ4NjMx
MTY5NTNhYzc4ZDFlODM2NjM3MDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oCkBAIC01Miwx
MiArNTIsMTIgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UmVzdWx0Q29sb3JTcGFjZShDb2xvclNw
YWNlKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgdHJhbnNmb3JtUmVzdWx0Q29sb3JTcGFj
ZShGaWx0ZXJFZmZlY3QqLCBjb25zdCBpbnQpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lk
IHBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpOwotICAgIHZpcnR1YWwgdm9pZCBkdW1wKCk7CisgICAg
dmlydHVhbCB2b2lkIHBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBkdW1wKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGV0ZXJtaW5lQWJz
b2x1dGVQYWludFJlY3QoKSB7IHNldEFic29sdXRlUGFpbnRSZWN0KGVuY2xvc2luZ0ludFJlY3Qo
bWF4RWZmZWN0UmVjdCgpKSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQ
YWludFJlY3QoKSBvdmVycmlkZSB7IHNldEFic29sdXRlUGFpbnRSZWN0KGVuY2xvc2luZ0ludFJl
Y3QobWF4RWZmZWN0UmVjdCgpKSk7IH0KIAotICAgIHZpcnR1YWwgVGV4dFN0cmVhbSYgZXh0ZXJu
YWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiwgaW50IGluZGVudGlvbikgY29uc3Q7CisgICAg
dmlydHVhbCBUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mLCBp
bnQgaW5kZW50aW9uKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBGRURpc3BsYWNl
bWVudE1hcChGaWx0ZXImLCBDaGFubmVsU2VsZWN0b3JUeXBlIHhDaGFubmVsU2VsZWN0b3IsIENo
YW5uZWxTZWxlY3RvclR5cGUgeUNoYW5uZWxTZWxlY3RvciwgZmxvYXQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaAppbmRleCAyYzEx
YzkxNjZjY2RlYzkzNGZkN2M4YmE2ZTI4YTk0MGQ5Y2VmNjA3Li5jNTVlYzdmM2RjY2U2YTJhZmRm
NGI2ZjU3YTMxM2MxMzU4MjExNGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaApAQCAtNDUsMTUgKzQ1LDE1IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFJlc3VsdENvbG9yU3BhY2UoQ29sb3JTcGFjZSkgb3ZlcnJpZGUgeyBGaWx0
ZXJFZmZlY3Q6OnNldFJlc3VsdENvbG9yU3BhY2UoQ29sb3JTcGFjZURldmljZVJHQik7IH0KICNl
bmRpZgogCi0gICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtQXBwbHlTb2Z0d2FyZSgpOworICAgIHZp
cnR1YWwgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKSBvdmVycmlkZTsKICNpZiBFTkFCTEUo
T1BFTkNMKQotICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUFwcGx5T3BlbkNMKCk7CisgICAgdmly
dHVhbCBib29sIHBsYXRmb3JtQXBwbHlPcGVuQ0woKSBvdmVycmlkZTsKICNlbmRpZgotICAgIHZp
cnR1YWwgdm9pZCBkdW1wKCk7CisgICAgdmlydHVhbCB2b2lkIGR1bXAoKSBvdmVycmlkZTsKIAot
ICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpIHsgc2V0QWJzb2x1
dGVQYWludFJlY3QoZW5jbG9zaW5nSW50UmVjdChtYXhFZmZlY3RSZWN0KCkpKTsgfQorICAgIHZp
cnR1YWwgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpIG92ZXJyaWRlIHsgc2V0QWJz
b2x1dGVQYWludFJlY3QoZW5jbG9zaW5nSW50UmVjdChtYXhFZmZlY3RSZWN0KCkpKTsgfQogCi0g
ICAgdmlydHVhbCBUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0m
LCBpbnQgaW5kZW50aW9uKSBjb25zdDsKKyAgICB2aXJ0dWFsIFRleHRTdHJlYW0mIGV4dGVybmFs
UmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYsIGludCBpbmRlbnRpb24pIGNvbnN0IG92ZXJyaWRl
OwogCiBwcml2YXRlOgogICAgIEZFRmxvb2QoRmlsdGVyJiwgY29uc3QgQ29sb3ImLCBmbG9hdCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Bv
aW50TGlnaHRTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvUG9pbnRMaWdodFNvdXJjZS5oCmluZGV4IDQ2YzBjYWFjOWM1MDY5ZTI2MjgzOTQ5MjhkY2M0
MzExNGUxNGI2Y2UuLmMwODk3ZjM4ZTUwMzVjMDkwNjNjN2QzMWE4YWVhZmI5OTAyNmVhNTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvUG9pbnRM
aWdodFNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvUG9pbnRMaWdodFNvdXJjZS5oCkBAIC0zOSwxMCArMzksMTAgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBzZXRZKGZsb2F0KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgc2V0Wihm
bG9hdCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgaW5pdFBhaW50aW5nRGF0YShQYWlu
dGluZ0RhdGEmKTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUGFpbnRpbmdEYXRhKFBhaW50aW5n
RGF0YSYsIGludCB4LCBpbnQgeSwgZmxvYXQgeik7CisgICAgdmlydHVhbCB2b2lkIGluaXRQYWlu
dGluZ0RhdGEoUGFpbnRpbmdEYXRhJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZVBhaW50aW5nRGF0YShQYWludGluZ0RhdGEmLCBpbnQgeCwgaW50IHksIGZsb2F0IHopIG92ZXJy
aWRlOwogCi0gICAgdmlydHVhbCBUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRl
eHRTdHJlYW0mKSBjb25zdDsKKyAgICB2aXJ0dWFsIFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVz
ZW50YXRpb24oVGV4dFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIFBv
aW50TGlnaHRTb3VyY2UoY29uc3QgRmxvYXRQb2ludDNEJiBwb3NpdGlvbikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU3BvdExpZ2h0U291cmNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nwb3RMaWdodFNv
dXJjZS5oCmluZGV4IGI3ZTYxZTdmMzU2ODRhNGIwYjE1Mjg4NTVhZTRiYmJjOTRmYzMwNWIuLmNh
N2QxYTQ1MDllODEwN2QxMjdkNzhkMmU2YWYzNjI1MGI2NWQwNTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU3BvdExpZ2h0U291cmNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9TcG90TGlnaHRTb3Vy
Y2UuaApAQCAtNTAsMTAgKzUwLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2V0U3Bl
Y3VsYXJFeHBvbmVudChmbG9hdCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHNldExpbWl0
aW5nQ29uZUFuZ2xlKGZsb2F0KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBpbml0UGFp
bnRpbmdEYXRhKFBhaW50aW5nRGF0YSYpOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVQYWludGlu
Z0RhdGEoUGFpbnRpbmdEYXRhJiwgaW50IHgsIGludCB5LCBmbG9hdCB6KTsKKyAgICB2aXJ0dWFs
IHZvaWQgaW5pdFBhaW50aW5nRGF0YShQYWludGluZ0RhdGEmKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlUGFpbnRpbmdEYXRhKFBhaW50aW5nRGF0YSYsIGludCB4LCBpbnQgeSwg
ZmxvYXQgeikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFRleHRTdHJlYW0mIGV4dGVybmFsUmVw
cmVzZW50YXRpb24oVGV4dFN0cmVhbSYpIGNvbnN0OworICAgIHZpcnR1YWwgVGV4dFN0cmVhbSYg
ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7CiAKIHBy
aXZhdGU6CiAgICAgU3BvdExpZ2h0U291cmNlKGNvbnN0IEZsb2F0UG9pbnQzRCYgcG9zaXRpb24s
IGNvbnN0IEZsb2F0UG9pbnQzRCYgZGlyZWN0aW9uLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDRjMjZmMGQ3OGUyZGViNDZhNmMxNjlmMWE0MzE2
NDNjODNlZmZkNDYuLjQxZWZiM2JjZGYyZWNhMmU5YTBlNjhkZTM1MmQ2OWNkNDgwOWE1ZjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTY5LDQy
ICs2OSw0MiBAQCBwdWJsaWM6CiAgICAgZ2Jvb2xlYW4gaGFuZGxlTWVzc2FnZShHc3RNZXNzYWdl
Kik7CiAgICAgdm9pZCBoYW5kbGVQbHVnaW5JbnN0YWxsZXJSZXN1bHQoR3N0SW5zdGFsbFBsdWdp
bnNSZXR1cm4pOwogCi0gICAgYm9vbCBoYXNWaWRlbygpIGNvbnN0IHsgcmV0dXJuIG1faGFzVmlk
ZW87IH0KLSAgICBib29sIGhhc0F1ZGlvKCkgY29uc3QgeyByZXR1cm4gbV9oYXNBdWRpbzsgfQor
ICAgIGJvb2wgaGFzVmlkZW8oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2hhc1ZpZGVvOyB9
CisgICAgYm9vbCBoYXNBdWRpbygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faGFzQXVkaW87
IH0KIAotICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcgJnVybCk7CisgICAgdm9pZCBsb2FkKGNv
bnN0IFN0cmluZyAmdXJsKSBvdmVycmlkZTsKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAg
IHZvaWQgbG9hZChjb25zdCBTdHJpbmcmIHVybCwgTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50Kik7
CisgICAgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYgdXJsLCBNZWRpYVNvdXJjZVByaXZhdGVDbGll
bnQqKSBvdmVycmlkZTsKICNlbmRpZgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgdm9p
ZCBsb2FkKE1lZGlhU3RyZWFtUHJpdmF0ZSopOworICAgIHZvaWQgbG9hZChNZWRpYVN0cmVhbVBy
aXZhdGUqKSBvdmVycmlkZTsKICNlbmRpZgogICAgIHZvaWQgY29tbWl0TG9hZCgpOwotICAgIHZv
aWQgY2FuY2VsTG9hZCgpOworICAgIHZvaWQgY2FuY2VsTG9hZCgpIG92ZXJyaWRlOwogCi0gICAg
dm9pZCBwcmVwYXJlVG9QbGF5KCk7Ci0gICAgdm9pZCBwbGF5KCk7Ci0gICAgdm9pZCBwYXVzZSgp
OworICAgIHZvaWQgcHJlcGFyZVRvUGxheSgpIG92ZXJyaWRlOworICAgIHZvaWQgcGxheSgpIG92
ZXJyaWRlOworICAgIHZvaWQgcGF1c2UoKSBvdmVycmlkZTsKIAotICAgIGJvb2wgcGF1c2VkKCkg
Y29uc3Q7Ci0gICAgYm9vbCBzZWVraW5nKCkgY29uc3Q7CisgICAgYm9vbCBwYXVzZWQoKSBjb25z
dCBvdmVycmlkZTsKKyAgICBib29sIHNlZWtpbmcoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIGZs
b2F0IGR1cmF0aW9uKCkgY29uc3Q7Ci0gICAgZmxvYXQgY3VycmVudFRpbWUoKSBjb25zdDsKLSAg
ICB2b2lkIHNlZWsoZmxvYXQpOworICAgIGZsb2F0IGR1cmF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgZmxvYXQgY3VycmVudFRpbWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIHNlZWso
ZmxvYXQpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBzZXRSYXRlKGZsb2F0KTsKKyAgICB2b2lkIHNl
dFJhdGUoZmxvYXQpIG92ZXJyaWRlOwogICAgIGRvdWJsZSByYXRlKCkgY29uc3Qgb3ZlcnJpZGU7
Ci0gICAgdm9pZCBzZXRQcmVzZXJ2ZXNQaXRjaChib29sKTsKKyAgICB2b2lkIHNldFByZXNlcnZl
c1BpdGNoKGJvb2wpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBzZXRQcmVsb2FkKE1lZGlhUGxheWVy
OjpQcmVsb2FkKTsKKyAgICB2b2lkIHNldFByZWxvYWQoTWVkaWFQbGF5ZXI6OlByZWxvYWQpIG92
ZXJyaWRlOwogICAgIHZvaWQgZmlsbFRpbWVyRmlyZWQoKTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0
cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3Q7Ci0gICAgZmxvYXQgbWF4VGlt
ZVNlZWthYmxlKCkgY29uc3Q7Ci0gICAgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdDsK
LSAgICB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlcygpIGNvbnN0OwotICAgIGZsb2F0IG1h
eFRpbWVMb2FkZWQoKSBjb25zdDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFu
Z2VzPiBidWZmZXJlZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIGZsb2F0IG1heFRpbWVTZWVrYWJs
ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXMoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICBmbG9hdCBtYXhUaW1lTG9hZGVkKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2
b2lkIGxvYWRTdGF0ZUNoYW5nZWQoKTsKICAgICB2b2lkIHRpbWVDaGFuZ2VkKCk7CkBAIC0xMjgs
MTYgKzEyOCwxNiBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZvaWQgc291cmNlQ2hhbmdlZCgp
OwotICAgIEdzdEVsZW1lbnQqIGF1ZGlvU2luaygpIGNvbnN0OworICAgIEdzdEVsZW1lbnQqIGF1
ZGlvU2luaygpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBzZXRBdWRpb1N0cmVhbVByb3Bl
cnRpZXMoR09iamVjdCopOwogCi0gICAgdm9pZCBzaW11bGF0ZUF1ZGlvSW50ZXJydXB0aW9uKCk7
CisgICAgdm9pZCBzaW11bGF0ZUF1ZGlvSW50ZXJydXB0aW9uKCkgb3ZlcnJpZGU7CiAKICAgICBi
b29sIGNoYW5nZVBpcGVsaW5lU3RhdGUoR3N0U3RhdGUpOwogCiAjaWYgRU5BQkxFKFdFQl9BVURJ
TykKLSAgICBBdWRpb1NvdXJjZVByb3ZpZGVyKiBhdWRpb1NvdXJjZVByb3ZpZGVyKCkgeyByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDxBdWRpb1NvdXJjZVByb3ZpZGVyKj4obV9hdWRpb1NvdXJjZVBy
b3ZpZGVyLmdldCgpKTsgfQorICAgIEF1ZGlvU291cmNlUHJvdmlkZXIqIGF1ZGlvU291cmNlUHJv
dmlkZXIoKSBvdmVycmlkZSB7IHJldHVybiByZWludGVycHJldF9jYXN0PEF1ZGlvU291cmNlUHJv
dmlkZXIqPihtX2F1ZGlvU291cmNlUHJvdmlkZXIuZ2V0KCkpOyB9CiAjZW5kaWYKIAogcHJpdmF0
ZToKQEAgLTE0Niw3ICsxNDYsNyBAQCBwcml2YXRlOgogCiAgICAgc3RhdGljIGJvb2wgaXNBdmFp
bGFibGUoKTsKIAotICAgIEdzdEVsZW1lbnQqIGNyZWF0ZUF1ZGlvU2luaygpOworICAgIEdzdEVs
ZW1lbnQqIGNyZWF0ZUF1ZGlvU2luaygpIG92ZXJyaWRlOwogCiAgICAgZmxvYXQgcGxheWJhY2tQ
b3NpdGlvbigpIGNvbnN0OwogCkBAIC0xNzIsMTcgKzE3MiwxNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgdXBkYXRlUGxheWJhY2tSYXRlKCk7CiAKIAotICAgIHZpcnR1YWwgU3RyaW5nIGVuZ2luZURl
c2NyaXB0aW9uKCkgY29uc3QgeyByZXR1cm4gIkdTdHJlYW1lciI7IH0KLSAgICB2aXJ0dWFsIGJv
b2wgaXNMaXZlU3RyZWFtKCkgY29uc3QgeyByZXR1cm4gbV9pc1N0cmVhbWluZzsgfQotICAgIHZp
cnR1YWwgYm9vbCBkaWRQYXNzQ09SU0FjY2Vzc0NoZWNrKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBi
b29sIGNhblNhdmVNZWRpYURhdGEoKSBjb25zdCBvdmVycmlkZTsKKyAgICBTdHJpbmcgZW5naW5l
RGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiR1N0cmVhbWVyIjsgfQorICAg
IGJvb2wgaXNMaXZlU3RyZWFtKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9pc1N0cmVhbWlu
ZzsgfQorICAgIGJvb2wgZGlkUGFzc0NPUlNBY2Nlc3NDaGVjaygpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIGJvb2wgY2FuU2F2ZU1lZGlhRGF0YSgpIGNvbnN0IG92ZXJyaWRlOwogCiAjaWYgRU5BQkxF
KE1FRElBX1NPVVJDRSkKICAgICAvLyBUT0RPOiBJbXBsZW1lbnQKLSAgICB2aXJ0dWFsIHVuc2ln
bmVkIGxvbmcgdG90YWxWaWRlb0ZyYW1lcygpIHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHVu
c2lnbmVkIGxvbmcgZHJvcHBlZFZpZGVvRnJhbWVzKCkgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1
YWwgdW5zaWduZWQgbG9uZyBjb3JydXB0ZWRWaWRlb0ZyYW1lcygpIHsgcmV0dXJuIDA7IH0KLSAg
ICB2aXJ0dWFsIE1lZGlhVGltZSB0b3RhbEZyYW1lRGVsYXkoKSB7IHJldHVybiBNZWRpYVRpbWU6
Onplcm9UaW1lKCk7IH0KKyAgICB1bnNpZ25lZCBsb25nIHRvdGFsVmlkZW9GcmFtZXMoKSBvdmVy
cmlkZSB7IHJldHVybiAwOyB9CisgICAgdW5zaWduZWQgbG9uZyBkcm9wcGVkVmlkZW9GcmFtZXMo
KSBvdmVycmlkZSB7IHJldHVybiAwOyB9CisgICAgdW5zaWduZWQgbG9uZyBjb3JydXB0ZWRWaWRl
b0ZyYW1lcygpIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KKyAgICBNZWRpYVRpbWUgdG90YWxGcmFt
ZURlbGF5KCkgb3ZlcnJpZGUgeyByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOyB9CiAjZW5k
aWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlR0wuaAppbmRleCA3ZTBlNDJlM2M1OWU4NmVlZDk4
OGJlYTMyZThmYzhhOTQxMzc3NmY5Li4wZTE4ODA5YmExMGU2NTdmYWQxMTMyM2M3NzMxMDMyNjUz
YTlhMjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvQml0bWFwVGV4dHVyZUdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL0JpdG1hcFRleHR1cmVHTC5oCkBAIC0zNiwyMiArMzYsMjIgQEAgY2xhc3MgRmls
dGVyT3BlcmF0aW9uOwogY2xhc3MgQml0bWFwVGV4dHVyZUdMIDogcHVibGljIEJpdG1hcFRleHR1
cmUgewogcHVibGljOgogICAgIEJpdG1hcFRleHR1cmVHTChQYXNzUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dDNEPik7CisgICAgdmlydHVhbCB+Qml0bWFwVGV4dHVyZUdMKCk7CiAKLSAgICB2aXJ0dWFs
IEludFNpemUgc2l6ZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7
Ci0gICAgdmlydHVhbCBib29sIGNhblJldXNlV2l0aChjb25zdCBJbnRTaXplJiBjb250ZW50c1Np
emUsIEZsYWdzID0gMCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlc2V0KCk7CisgICAgdmlydHVh
bCBJbnRTaXplIHNpemUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNWYWxp
ZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjYW5SZXVzZVdpdGgoY29uc3Qg
SW50U2l6ZSYgY29udGVudHNTaXplLCBGbGFncyA9IDApIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBkaWRSZXNldCgpIG92ZXJyaWRlOwogICAgIHZvaWQgYmluZEFzU3VyZmFjZShHcmFwaGlj
c0NvbnRleHQzRCopOwogICAgIHZvaWQgaW5pdGlhbGl6ZVN0ZW5jaWwoKTsKICAgICB2b2lkIGlu
aXRpYWxpemVEZXB0aEJ1ZmZlcigpOwotICAgIH5CaXRtYXBUZXh0dXJlR0woKTsKICAgICB2aXJ0
dWFsIHVpbnQzMl90IGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQogICAgIHVpbnQzMl90IHRl
eHR1cmVUYXJnZXQoKSBjb25zdCB7IHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8y
RDsgfQogICAgIEludFNpemUgdGV4dHVyZVNpemUoKSBjb25zdCB7IHJldHVybiBtX3RleHR1cmVT
aXplOyB9Ci0gICAgdm9pZCB1cGRhdGVDb250ZW50cyhJbWFnZSosIGNvbnN0IEludFJlY3QmLCBj
b25zdCBJbnRQb2ludCYsIFVwZGF0ZUNvbnRlbnRzRmxhZyk7Ci0gICAgdmlydHVhbCB2b2lkIHVw
ZGF0ZUNvbnRlbnRzKGNvbnN0IHZvaWQqLCBjb25zdCBJbnRSZWN0JiB0YXJnZXQsIGNvbnN0IElu
dFBvaW50JiBzb3VyY2VPZmZzZXQsIGludCBieXRlc1BlckxpbmUsIFVwZGF0ZUNvbnRlbnRzRmxh
Zyk7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvbnRlbnRzKEltYWdlKiwgY29uc3QgSW50UmVj
dCYsIGNvbnN0IEludFBvaW50JiwgVXBkYXRlQ29udGVudHNGbGFnKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlQ29udGVudHMoY29uc3Qgdm9pZCosIGNvbnN0IEludFJlY3QmIHRh
cmdldCwgY29uc3QgSW50UG9pbnQmIHNvdXJjZU9mZnNldCwgaW50IGJ5dGVzUGVyTGluZSwgVXBk
YXRlQ29udGVudHNGbGFnKSBvdmVycmlkZTsKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzTm9Td2l6
emxlKGNvbnN0IHZvaWQqLCBjb25zdCBJbnRSZWN0JiB0YXJnZXQsIGNvbnN0IEludFBvaW50JiBz
b3VyY2VPZmZzZXQsIGludCBieXRlc1BlckxpbmUsIHVuc2lnbmVkIGJ5dGVzUGVyUGl4ZWwgPSA0
LCBQbGF0Zm9ybTNET2JqZWN0IGdsRm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEpOwot
ICAgIHZpcnR1YWwgYm9vbCBpc0JhY2tlZEJ5T3BlbkdMKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQorICAgIHZpcnR1YWwgYm9vbCBpc0JhY2tlZEJ5T3BlbkdMKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IGFw
cGx5RmlsdGVycyhUZXh0dXJlTWFwcGVyKiwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYpIG92ZXJy
aWRlOwogICAgIHN0cnVjdCBGaWx0ZXJJbmZvIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4M0RU
cmFuc2Zvcm1PcGVyYXRpb24uaAppbmRleCBmNDYxMmE0MTBlODg0NmJiNWM2NWJmNzNhMzY4ZmY5
MmI5ZDc0NTI5Li43MTBmMGZmMmQ0ZjA0ZTFhMTA0Zjc2YWU3NjQxMzI3NTUxNzBjNDQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJp
eDNEVHJhbnNmb3JtT3BlcmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5oCkBAIC00Nyw3ICs0
Nyw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZTogICAgCiAgICAgdmlydHVhbCBib29sIGlzSWRlbnRp
dHkoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX21hdHJpeC5pc0lkZW50aXR5KCk7IH0KLSAg
ICB2aXJ0dWFsIGJvb2wgaXNBZmZlY3RlZEJ5VHJhbnNmb3JtT3JpZ2luKCkgY29uc3QgeyByZXR1
cm4gIWlzSWRlbnRpdHkoKTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0FmZmVjdGVkQnlUcmFuc2Zv
cm1PcmlnaW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAhaXNJZGVudGl0eSgpOyB9CiAKICAg
ICB2aXJ0dWFsIE9wZXJhdGlvblR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIE1B
VFJJWF8zRDsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NhbWVUeXBlKGNvbnN0IFRyYW5zZm9ybU9w
ZXJhdGlvbiYgbykgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gby50eXBlKCkgPT0gTUFUUklYXzNE
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zv
cm1zL01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24uaAppbmRleCA5MDM4
MGY0ZGEwZTYzMDhiMDhmNzQ0YWYyZTViMDczMDhmOGFiYzNiLi5hOGUxMTVlYjM4YzFmNmM3OGYx
NWM5NTkwMTg3NjYxZmEwYzkxOWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4VHJhbnNmb3Jt
T3BlcmF0aW9uLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHZp
cnR1YWwgYm9vbCBpc0lkZW50aXR5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9hID09IDEg
JiYgbV9iID09IDAgJiYgbV9jID09IDAgJiYgbV9kID09IDEgJiYgbV9lID09IDAgJiYgbV9mID09
IDA7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNBZmZlY3RlZEJ5VHJhbnNmb3JtT3JpZ2luKCkgY29u
c3QgeyByZXR1cm4gIWlzSWRlbnRpdHkoKTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0FmZmVjdGVk
QnlUcmFuc2Zvcm1PcmlnaW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAhaXNJZGVudGl0eSgp
OyB9CiAKICAgICB2aXJ0dWFsIE9wZXJhdGlvblR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIE1BVFJJWDsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NhbWVUeXBlKGNvbnN0IFRyYW5z
Zm9ybU9wZXJhdGlvbiYgbykgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gby50eXBlKCkgPT0gTUFU
UklYOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFu
c2Zvcm1zL1BlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1BlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9u
LmgKaW5kZXggZjgwZDVhMzM2YjhmNmQ0ODUwNDdkY2U1MjFkNzQyNGQ1MjZkNjEwOS4uMjA0MWIx
YWVkOWZmZDFhODA4NjExZmZhMjBlODllOTU5N2M5MmZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9QZXJzcGVjdGl2ZVRyYW5zZm9ybU9w
ZXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9y
bXMvUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24uaApAQCAtNDksNyArNDksNyBAQCBwdWJs
aWM6CiAgICAgCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0lkZW50aXR5KCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gIWZsb2F0VmFsdWVGb3JMZW5ndGgobV9wLCAxKTsgfQotICAgIHZp
cnR1YWwgYm9vbCBpc0FmZmVjdGVkQnlUcmFuc2Zvcm1PcmlnaW4oKSBjb25zdCB7IHJldHVybiAh
aXNJZGVudGl0eSgpOyB9CisgICAgdmlydHVhbCBib29sIGlzQWZmZWN0ZWRCeVRyYW5zZm9ybU9y
aWdpbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICFpc0lkZW50aXR5KCk7IH0KIAogICAgIHZp
cnR1YWwgT3BlcmF0aW9uVHlwZSB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUEVSU1BF
Q1RJVkU7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTYW1lVHlwZShjb25zdCBUcmFuc2Zvcm1PcGVy
YXRpb24mIG8pIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG8udHlwZSgpID09IFBFUlNQRUNUSVZF
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zv
cm1zL1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdHJhbnNmb3Jtcy9Sb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaAppbmRleCA3MWQy
YWJkMTJjYzI4ZWI4N2Y3YjljNWQ0NTdlZmI3ZDUxMzU0YTU3Li5hNWIwZWQwNTY4MWNkYjdjNmE0
OTg5ZTQ1ZmExZjcyYThjNjYxODRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUm90YXRlVHJhbnNmb3Jt
T3BlcmF0aW9uLmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHZp
cnR1YWwgYm9vbCBpc0lkZW50aXR5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9hbmdsZSA9
PSAwOyB9Ci0gICAgdmlydHVhbCBib29sIGlzQWZmZWN0ZWRCeVRyYW5zZm9ybU9yaWdpbigpIGNv
bnN0IHsgcmV0dXJuICFpc0lkZW50aXR5KCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNBZmZlY3Rl
ZEJ5VHJhbnNmb3JtT3JpZ2luKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIWlzSWRlbnRpdHko
KTsgfQogCiAgICAgdmlydHVhbCBPcGVyYXRpb25UeXBlIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBtX3R5cGU7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTYW1lVHlwZShjb25zdCBUcmFu
c2Zvcm1PcGVyYXRpb24mIG8pIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG8udHlwZSgpID09IG1f
dHlwZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJh
bnNmb3Jtcy9TY2FsZVRyYW5zZm9ybU9wZXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9TY2FsZVRyYW5zZm9ybU9wZXJhdGlvbi5oCmluZGV4IDgx
ZGQ1NDljYWViNDIyMzMzMjNhNTk2OGVlMWIxOTM2YTUyMTFjYzIuLjY0YjQ2YmYxMGJjMTBlYzZl
ODk0NGNlZGJiODZjZDgzZjIzOGVjNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1NjYWxlVHJhbnNmb3Jt
T3BlcmF0aW9uLmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHZp
cnR1YWwgYm9vbCBpc0lkZW50aXR5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV94ID09IDEg
JiYgIG1feSA9PSAxICYmICBtX3ogPT0gMTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc0FmZmVjdGVk
QnlUcmFuc2Zvcm1PcmlnaW4oKSBjb25zdCB7IHJldHVybiAhaXNJZGVudGl0eSgpOyB9CisgICAg
dmlydHVhbCBib29sIGlzQWZmZWN0ZWRCeVRyYW5zZm9ybU9yaWdpbigpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuICFpc0lkZW50aXR5KCk7IH0KIAogICAgIHZpcnR1YWwgT3BlcmF0aW9uVHlwZSB0
eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgdmlydHVhbCBib29s
IGlzU2FtZVR5cGUoY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uJiBvKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBvLnR5cGUoKSA9PSBtX3R5cGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Ta2V3VHJhbnNmb3Jt
T3BlcmF0aW9uLmgKaW5kZXggYjUzNDU4ZmNiZWRhNWE2NmEwYmIzODk3MTVkNzBmYTQxNjMzY2Jj
ZS4uYTI1MTc3ZDg3NTc5ZmU1NTExZjM3MWNjYTYzNGM4NTA1MmQ3MmFmOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Ta2V3VHJhbnNmb3Jt
T3BlcmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNm
b3Jtcy9Ta2V3VHJhbnNmb3JtT3BlcmF0aW9uLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgog
CiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0lkZW50aXR5KCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gbV9hbmdsZVggPT0gMCAmJiBtX2FuZ2xlWSA9PSAwOyB9Ci0gICAgdmlydHVhbCBi
b29sIGlzQWZmZWN0ZWRCeVRyYW5zZm9ybU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuICFpc0lkZW50
aXR5KCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNBZmZlY3RlZEJ5VHJhbnNmb3JtT3JpZ2luKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIWlzSWRlbnRpdHkoKTsgfQogCiAgICAgdmlydHVhbCBP
cGVyYXRpb25UeXBlIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3R5cGU7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNTYW1lVHlwZShjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb24mIG8pIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIG8udHlwZSgpID09IG1fdHlwZTsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvcG5nL1BOR0ltYWdlRGVjb2Rl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvcG5nL1BOR0ltYWdl
RGVjb2Rlci5oCmluZGV4IGEwMWZmMjUzZmI4NmM1M2UwY2QxZjkwYWU1MTcxMGJiYWJhZGMzN2Eu
LmQ0YmUzM2U3OTEwZTVmYTYxMDE1ODJhM2ZhNzNlZjc0MjU3ZjhkZWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29kZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1h
Z2VEZWNvZGVyLmgKQEAgLTQyLDE4ICs0MiwxOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIHZpcnR1YWwgflBOR0ltYWdlRGVjb2RlcigpOwogCiAgICAgICAgIC8vIEltYWdlRGVjb2Rl
cgotICAgICAgICB2aXJ0dWFsIFN0cmluZyBmaWxlbmFtZUV4dGVuc2lvbigpIGNvbnN0IHsgcmV0
dXJuICJwbmciOyB9CisgICAgICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVuYW1lRXh0ZW5zaW9uKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gInBuZyI7IH0KICNpZiBFTkFCTEUoQVBORykKICAgICAg
ICAgdmlydHVhbCBzaXplX3QgZnJhbWVDb3VudCgpIG92ZXJyaWRlIHsgcmV0dXJuIG1fZnJhbWVD
b3VudDsgfQogICAgICAgICB2aXJ0dWFsIGludCByZXBldGl0aW9uQ291bnQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX3BsYXlDb3VudC0xOyB9CiAjZW5kaWYKLSAgICAgICAgdmlydHVhbCBi
b29sIGlzU2l6ZUF2YWlsYWJsZSgpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgc2V0U2l6ZSh1bnNp
Z25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KTsKLSAgICAgICAgdmlydHVhbCBJbWFnZUZyYW1l
KiBmcmFtZUJ1ZmZlckF0SW5kZXgoc2l6ZV90IGluZGV4KTsKKyAgICAgICAgdmlydHVhbCBib29s
IGlzU2l6ZUF2YWlsYWJsZSgpIG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFsIGJvb2wgc2V0U2l6
ZSh1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KSBvdmVycmlkZTsKKyAgICAgICAgdmly
dHVhbCBJbWFnZUZyYW1lKiBmcmFtZUJ1ZmZlckF0SW5kZXgoc2l6ZV90IGluZGV4KSBvdmVycmlk
ZTsKICAgICAgICAgLy8gQ0FVVElPTjogc2V0RmFpbGVkKCkgZGVsZXRlcyB8bV9yZWFkZXJ8LiAg
QmUgY2FyZWZ1bCB0byBhdm9pZAogICAgICAgICAvLyBhY2Nlc3NpbmcgZGVsZXRlZCBtZW1vcnks
IGVzcGVjaWFsbHkgd2hlbiBjYWxsaW5nIHRoaXMgZnJvbSBpbnNpZGUKICAgICAgICAgLy8gUE5H
SW1hZ2VSZWFkZXIhCi0gICAgICAgIHZpcnR1YWwgYm9vbCBzZXRGYWlsZWQoKTsKKyAgICAgICAg
dmlydHVhbCBib29sIHNldEZhaWxlZCgpIG92ZXJyaWRlOwogCiAgICAgICAgIC8vIENhbGxiYWNr
cyBmcm9tIGxpYnBuZwogICAgICAgICB2b2lkIGhlYWRlckF2YWlsYWJsZSgpOwpAQCAtNjQsNyAr
NjQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgZnJhbWVIZWFkZXIoKTsK
IAogICAgICAgICB2b2lkIGluaXQoKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGNsZWFyRnJhbWVC
dWZmZXJDYWNoZShzaXplX3QgY2xlYXJCZWZvcmVGcmFtZSk7CisgICAgICAgIHZpcnR1YWwgdm9p
ZCBjbGVhckZyYW1lQnVmZmVyQ2FjaGUoc2l6ZV90IGNsZWFyQmVmb3JlRnJhbWUpIG92ZXJyaWRl
OwogI2VuZGlmCiAKICAgICAgICAgYm9vbCBpc0NvbXBsZXRlKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlck93ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyLmgKaW5kZXggNjVkOWU2
NGI2OWFlMGUyMGJhNTViNTk5MTJkNGEzMDRiNTAzZjFhYi4uNTM1ZGExNjI0YjY4YzgxZDc3MWEz
Zjc4MDBiZGJlNDAyOWU2ODA1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyT3dyLmgKQEAgLTUyLDkgKzUyLDkgQEAgcHVibGljOgogICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IoKTsKICAgICB+UmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlck93cigpOwogCi0gICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRz
KFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudD4sIFBhc3NSZWZQdHI8TWVkaWFD
b25zdHJhaW50cz4gYXVkaW9Db25zdHJhaW50cywgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRz
PiB2aWRlb0NvbnN0cmFpbnRzKTsKLSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlTWVkaWFTdHJlYW0o
UGFzc1JlZlB0cjxNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50PiwgUGFzc1JlZlB0cjxNZWRpYUNv
bnN0cmFpbnRzPiBhdWRpb0NvbnN0cmFpbnRzLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+
IHZpZGVvQ29uc3RyYWludHMpOwotICAgIHZpcnR1YWwgYm9vbCBnZXRNZWRpYVN0cmVhbVRyYWNr
U291cmNlcyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudD4p
IG92ZXJyaWRlOworICAgIHZvaWQgdmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoUGFzc1JlZlB0
cjxNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50PiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRz
PiBhdWRpb0NvbnN0cmFpbnRzLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IHZpZGVvQ29u
c3RyYWludHMpIG92ZXJyaWRlOworICAgIHZvaWQgY3JlYXRlTWVkaWFTdHJlYW0oUGFzc1JlZlB0
cjxNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50PiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRz
PiBhdWRpb0NvbnN0cmFpbnRzLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IHZpZGVvQ29u
c3RyYWludHMpIG92ZXJyaWRlOworICAgIGJvb2wgZ2V0TWVkaWFTdHJlYW1UcmFja1NvdXJjZXMo
UGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQ+KSBvdmVycmlk
ZTsKIAogICAgIHZvaWQgbWVkaWFTb3VyY2VzQXZhaWxhYmxlKEdMaXN0KiBzb3VyY2VzKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlci5oCmluZGV4IGRmMmFhNzhiY2M3OWYxMDQ1NDMxODI2NGFjMTc0
MjhkNDYyYmZmMzUuLjliYTIxNDA2YjU0MzM1ODQ5MDE0ZmYwNjFmMDliNTBkMzBiNGM5OGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyLmgKQEAgLTM3LDggKzM3LDggQEAgY2xhc3MgTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXIgZmluYWwgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlciB7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgcmVnaXN0ZXJN
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcigpOwogCi0gICAgdmlydHVhbCB2b2lkIHZhbGlk
YXRlUmVxdWVzdENvbnN0cmFpbnRzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVu
dD4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gYXVkaW9Db25zdHJhaW50cywgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiB2aWRlb0NvbnN0cmFpbnRzKTsKLSAgICB2aXJ0dWFsIHZv
aWQgY3JlYXRlTWVkaWFTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50
PiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiBhdWRpb0NvbnN0cmFpbnRzLCBQYXNzUmVm
UHRyPE1lZGlhQ29uc3RyYWludHM+IHZpZGVvQ29uc3RyYWludHMpOworICAgIHZpcnR1YWwgdm9p
ZCB2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtQ3JlYXRp
b25DbGllbnQ+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IGF1ZGlvQ29uc3RyYWludHMs
IFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gdmlkZW9Db25zdHJhaW50cykgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU1lZGlhU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJl
YW1DcmVhdGlvbkNsaWVudD4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gYXVkaW9Db25z
dHJhaW50cywgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiB2aWRlb0NvbnN0cmFpbnRzKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0TWVkaWFTdHJlYW1UcmFja1NvdXJjZXMoUGFz
c1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQ+KSBvdmVycmlkZTsK
IAogcHJpdmF0ZToK
</data>
<flag name="review"
          id="279772"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>