<?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>137552</bug_id>
          
          <creation_ts>2014-10-09 01:17:32 -0700</creation_ts>
          <short_desc>MediaPlayer should use a reference for the MediaPlayerClient</short_desc>
          <delta_ts>2014-10-09 23:56:44 -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>Platform</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>
          <dependson>21562</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1040510</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-10-09 01:17:32 -0700</bug_when>
    <thetext>It&apos;s currently a pointer that is checked almost everywhere before being used, and assumed to be non-null in a few places too. The client is set on constructor by HTMLMediaElement and cleared on HTMLMediaElement destructor that also frees the media player object. So, the client will never be null while the MediaPlayer player is alive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040511</commentid>
    <comment_count>1</comment_count>
      <attachid>239524</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-10-09 01:23:43 -0700</bug_when>
    <thetext>Created attachment 239524
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040565</commentid>
    <comment_count>2</comment_count>
      <attachid>239543</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-10-09 09:20:34 -0700</bug_when>
    <thetext>Created attachment 239543
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040827</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-10-09 23:56:44 -0700</bug_when>
    <thetext>Committed r174563: &lt;http://trac.webkit.org/changeset/174563&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239524</attachid>
            <date>2014-10-09 01:23:43 -0700</date>
            <delta_ts>2014-10-09 09:20:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-media-player-client.diff</filename>
            <type>text/plain</type>
            <size>32710</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2MGE4ODEyLi43NTRlNDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTkg
QEAKKzIwMTQtMTAtMDkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIE1lZGlhUGxheWVyIHNob3VsZCB1c2UgYSByZWZlcmVuY2UgZm9yIHRoZSBN
ZWRpYVBsYXllckNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTM3NTUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhlIE1lZGlhUGxheWVyIGNsaWVudCBpcyBzZXQgb24gY29uc3RydWN0b3IgYnkg
SFRNTE1lZGlhRWxlbWVudAorICAgICAgICBhbmQgY2xlYXJlZCBvbiBIVE1MTWVkaWFFbGVtZW50
IGRlc3RydWN0b3IgdGhhdCBhbHNvIGZyZWVzIHRoZQorICAgICAgICBNZWRpYVBsYXllciBvYmpl
Y3QuIFNpbmNlIHRoZSBjbGllbnQgd2lsbCBuZXZlciBiZSBudWxsIHdoaWxlIHRoZQorICAgICAg
ICBNZWRpYVBsYXllciBwbGF5ZXIgaXMgYWxpdmUsIHdlIGNhbiB1c2UgYSByZWZlcmVuY2UgYW5k
IHJlbW92ZSBhbGwKKyAgICAgICAgdGhlIHVubmVlZGVkIG51bGwgY2hlY2tzLiBUaGUgbWVtYmVy
IGhhcyBhbHNvIGJlZW4gcmVuYW1lZCB0byBtX2NsaWVudC4KKworICAgICAgICAqIGh0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp+
SFRNTE1lZGlhRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok1lZGlhUGxheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjp+TWVkaWFQbGF5ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXI6OmxvYWRXaXRoTmV4dE1lZGlhRW5naW5lKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyOjppbk1lZGlhRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXI6OmN1cnJlbnRQbGF5YmFja1RhcmdldElzV2lyZWxlc3NDaGFuZ2VkKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpuZXR3b3JrU3RhdGVDaGFuZ2VkKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpyZWFkeVN0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllcjo6dm9sdW1lQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllcjo6bXV0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnRp
bWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpzaXplQ2hhbmdlZCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6cmVwYWludCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllcjo6ZHVyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyOjpyYXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6
cGxheWJhY2tTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmZp
cnN0VmlkZW9GcmFtZUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6
Y2hhcmFjdGVyaXN0aWNDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpr
ZXlBZGRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6a2V5RXJyb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmtleU1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXI6OmtleU5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
cjo6cmVmZXJyZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnVzZXJBZ2VudCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6Z3JhcGhpY3NEZXZpY2VBZGFwdGVyKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpjYWNoZWRSZXNvdXJjZUxvYWRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6YWRkQXVkaW9UcmFjayk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllcjo6cmVtb3ZlQXVkaW9UcmFjayk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllcjo6YWRkVGV4dFRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyOjpyZW1vdmVUZXh0VHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmFk
ZFZpZGVvVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnJlbW92ZVZpZGVv
VHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Om91dE9mQmFuZFRyYWNrU291
cmNlcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6c2hvdWxkV2FpdEZvclJlc3Bv
bnNlVG9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllcjo6aGFuZGxlUGxheWJhY2tDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyOjpzb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXI6OmRvZXNIYXZlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyOjptZWRpYVBsYXllck5ldHdvcmtJbnRlcmZhY2VOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyOjpnZXRSYXdDb29raWVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyOjpzZXRXaXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllcjo6YXVkaW9Tb3VyY2VQcm92aWRlcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6ZW5naW5lRGVzY3JpcHRpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Om5vdGlmeVRyYWNrTW9kZUNoYW5nZWQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnRvdGFsRnJhbWVEZWxh
eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckZhY3RvcnlTdXBwb3J0
OjpjYWxsUmVnaXN0ZXJNZWRpYUVuZ2luZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnBsYXRmb3JtVm9sdW1lQ29u
ZmlndXJhdGlvblJlcXVpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpjbGll
bnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Om1lZGlhUGxheWVyQ2xpZW50KTog
RGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6cHJlZmVycmVkUmVuZGVyaW5nTW9kZSk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNldFVwVmlkZW9SZW5k
ZXJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
OjpwcmVwYXJlRm9yUmVuZGVyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRl
VmlkZW9MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpjcmVhdGVBVlBsYXllckxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OmFjY2VsZXJhdGVkUmVuZGVyaW5nU3RhdGVDaGFuZ2VkKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
YWRkRGlzcGxheUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQzo6cmVtb3ZlRGlzcGxheUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6YWRkQXVkaW9SZW5kZXJlcik6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OnJlbW92ZUF1ZGlvUmVuZGVyZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRBdWRpb1N0cmVhbVByb3BlcnRpZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlQbGF5
ZXJPZlZpZGVvKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6bm90aWZ5UGxheWVyT2ZWaWRlb0NhcHMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlQbGF5ZXJPZkF1ZGlvKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZGlkRW5kKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp0
cmlnZ2VyUmVwYWludCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dl
YktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgICh3ZWJLaXRXZWJTcmNTdGFydCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnByZWZlcnJl
ZFJlbmRlcmluZ01vZGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRL
aXQ6OnNldFVwVmlkZW9SZW5kZXJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlUVRLaXQ6OnByZXBhcmVGb3JSZW5kZXJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnNhd1Vuc3VwcG9ydGVkVHJhY2tzKToKKwogMjAxNC0xMC0w
MSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAg
TGF5ZXJpbmcgdmlvbGF0aW9uOiBNZWRpYVBsYXllciBzaG91bGQgbm90IHJlZmVyZW5jZS91c2Ug
RnJhbWVWaWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA4
MDhkZjU4Li5mYmExOTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKQEAgLTQxOSw4ICs0MTksNiBAQCBIVE1MTWVkaWFFbGVtZW50Ojp+SFRNTE1lZGlhRWxlbWVu
dCgpCiAjZW5kaWYKIAogICAgIG1fY29tcGxldGVseUxvYWRlZCA9IHRydWU7Ci0gICAgaWYgKG1f
cGxheWVyKQotICAgICAgICBtX3BsYXllci0+Y2xlYXJNZWRpYVBsYXllckNsaWVudCgpOwogfQog
CiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnJlZ2lzdGVyV2l0aERvY3VtZW50KERvY3VtZW50JiBk
b2N1bWVudCkKQEAgLTUzMjMsNyArNTMyMSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y3Jl
YXRlTWVkaWFQbGF5ZXIoKQogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBmb3JnZXRSZXNv
dXJjZVNwZWNpZmljVHJhY2tzKCk7CiAjZW5kaWYKLSAgICBtX3BsYXllciA9IE1lZGlhUGxheWVy
OjpjcmVhdGUodGhpcyk7CisgICAgbV9wbGF5ZXIgPSBNZWRpYVBsYXllcjo6Y3JlYXRlKCp0aGlz
KTsKIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgaWYgKG1fYXVkaW9Tb3VyY2VOb2RlKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAK
aW5kZXggNmE5Mzc5Zi4uOGFkNzlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMzA1LDggKzMwNSw4IEBAIHN0YXRpYyBNZWRp
YVBsYXllckZhY3RvcnkqIG5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXllckZhY3RvcnkqIGN1cnJl
bnQpCiAKIC8vIG1lZGlhIHBsYXllcgogCi1NZWRpYVBsYXllcjo6TWVkaWFQbGF5ZXIoTWVkaWFQ
bGF5ZXJDbGllbnQqIGNsaWVudCkKLSAgICA6IG1fbWVkaWFQbGF5ZXJDbGllbnQoY2xpZW50KQor
TWVkaWFQbGF5ZXI6Ok1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50JiBjbGllbnQpCisgICAg
OiBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX3JlbG9hZFRpbWVyKHRoaXMsICZNZWRpYVBsYXll
cjo6cmVsb2FkVGltZXJGaXJlZCkKICAgICAsIG1fcHJpdmF0ZShjcmVhdGVOdWxsTWVkaWFQbGF5
ZXIodGhpcykpCiAgICAgLCBtX2N1cnJlbnRNZWRpYUVuZ2luZSgwKQpAQCAtMzI0LDcgKzMyNCw2
IEBAIE1lZGlhUGxheWVyOjpNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCogY2xpZW50KQog
CiBNZWRpYVBsYXllcjo6fk1lZGlhUGxheWVyKCkKIHsKLSAgICBtX21lZGlhUGxheWVyQ2xpZW50
ID0gMDsKIH0KIAogYm9vbCBNZWRpYVBsYXllcjo6bG9hZChjb25zdCBVUkwmIHVybCwgY29uc3Qg
Q29udGVudFR5cGUmIGNvbnRlbnRUeXBlLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKQEAgLTQx
MSw4ICs0MTAsNyBAQCB2b2lkIE1lZGlhUGxheWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2luZShN
ZWRpYVBsYXllckZhY3RvcnkqIGN1cnJlbnQpCiAgICAgfSBlbHNlIGlmIChtX2N1cnJlbnRNZWRp
YUVuZ2luZSAhPSBlbmdpbmUpIHsKICAgICAgICAgbV9jdXJyZW50TWVkaWFFbmdpbmUgPSBlbmdp
bmU7CiAgICAgICAgIG1fcHJpdmF0ZSA9IGVuZ2luZS0+Y29uc3RydWN0b3IodGhpcyk7Ci0gICAg
ICAgIGlmIChtX21lZGlhUGxheWVyQ2xpZW50KQotICAgICAgICAgICAgbV9tZWRpYVBsYXllckNs
aWVudC0+bWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKHRoaXMpOworICAgICAgICBtX2NsaWVudC5t
ZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQodGhpcyk7CiAgICAgICAgIG1fcHJpdmF0ZS0+c2V0UHJp
dmF0ZUJyb3dzaW5nTW9kZShtX3ByaXZhdGVCcm93c2luZyk7CiAgICAgICAgIG1fcHJpdmF0ZS0+
c2V0UHJlbG9hZChtX3ByZWxvYWQpOwogICAgICAgICBtX3ByaXZhdGUtPnNldFByZXNlcnZlc1Bp
dGNoKHByZXNlcnZlc1BpdGNoKCkpOwpAQCAtNDI5LDEwICs0MjcsOCBAQCB2b2lkIE1lZGlhUGxh
eWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXllckZhY3RvcnkqIGN1cnJlbnQp
CiAgICAgICAgIG1fcHJpdmF0ZS0+bG9hZChtX3VybC5zdHJpbmcoKSk7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgbV9wcml2YXRlID0gY3JlYXRlTnVsbE1lZGlhUGxheWVyKHRoaXMpOwotICAgICAg
ICBpZiAobV9tZWRpYVBsYXllckNsaWVudCkgewotICAgICAgICAgICAgbV9tZWRpYVBsYXllckNs
aWVudC0+bWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKHRoaXMpOwotICAgICAgICAgICAgbV9tZWRp
YVBsYXllckNsaWVudC0+bWVkaWFQbGF5ZXJSZXNvdXJjZU5vdFN1cHBvcnRlZCh0aGlzKTsKLSAg
ICAgICAgfQorICAgICAgICBtX2NsaWVudC5tZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQodGhpcyk7
CisgICAgICAgIG1fY2xpZW50Lm1lZGlhUGxheWVyUmVzb3VyY2VOb3RTdXBwb3J0ZWQodGhpcyk7
CiAgICAgfQogfQogCkBAIC01ODgsNyArNTg0LDcgQEAgYm9vbCBNZWRpYVBsYXllcjo6aGFzQXVk
aW8oKSBjb25zdAogCiBib29sIE1lZGlhUGxheWVyOjppbk1lZGlhRG9jdW1lbnQoKSBjb25zdAog
ewotICAgIHJldHVybiBtX3Zpc2libGUgJiYgbV9tZWRpYVBsYXllckNsaWVudCAmJiBtX21lZGlh
UGxheWVyQ2xpZW50LT5tZWRpYVBsYXllcklzSW5NZWRpYURvY3VtZW50KCk7CisgICAgcmV0dXJu
IG1fdmlzaWJsZSAmJiBtX2NsaWVudC5tZWRpYVBsYXllcklzSW5NZWRpYURvY3VtZW50KCk7CiB9
CiAKIFBsYXRmb3JtTWVkaWEgTWVkaWFQbGF5ZXI6OnBsYXRmb3JtTWVkaWEoKSBjb25zdApAQCAt
ODczLDggKzg2OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXI6OnNldFdpcmVsZXNzVmlkZW9QbGF5YmFj
a0Rpc2FibGVkKGJvb2wgZGlzYWJsZWQpCiAKIHZvaWQgTWVkaWFQbGF5ZXI6OmN1cnJlbnRQbGF5
YmFja1RhcmdldElzV2lyZWxlc3NDaGFuZ2VkKCkKIHsKLSAgICBpZiAobV9tZWRpYVBsYXllckNs
aWVudCkKLSAgICAgICAgbV9tZWRpYVBsYXllckNsaWVudC0+bWVkaWFQbGF5ZXJDdXJyZW50UGxh
eWJhY2tUYXJnZXRJc1dpcmVsZXNzQ2hhbmdlZCh0aGlzKTsKKyAgICBtX2NsaWVudC5tZWRpYVBs
YXllckN1cnJlbnRQbGF5YmFja1RhcmdldElzV2lyZWxlc3NDaGFuZ2VkKHRoaXMpOwogfQogI2Vu
ZGlmCiAKQEAgLTEwMjcsMTQgKzEwMjIsMTIgQEAgdm9pZCBNZWRpYVBsYXllcjo6bmV0d29ya1N0
YXRlQ2hhbmdlZCgpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9Ci0gICAg
aWYgKG1fbWVkaWFQbGF5ZXJDbGllbnQpCi0gICAgICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1l
ZGlhUGxheWVyTmV0d29ya1N0YXRlQ2hhbmdlZCh0aGlzKTsKKyAgICBtX2NsaWVudC5tZWRpYVBs
YXllck5ldHdvcmtTdGF0ZUNoYW5nZWQodGhpcyk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXI6OnJl
YWR5U3RhdGVDaGFuZ2VkKCkKIHsKLSAgICBpZiAobV9tZWRpYVBsYXllckNsaWVudCkKLSAgICAg
ICAgbV9tZWRpYVBsYXllckNsaWVudC0+bWVkaWFQbGF5ZXJSZWFkeVN0YXRlQ2hhbmdlZCh0aGlz
KTsKKyAgICBtX2NsaWVudC5tZWRpYVBsYXllclJlYWR5U3RhdGVDaGFuZ2VkKHRoaXMpOwogfQog
CiB2b2lkIE1lZGlhUGxheWVyOjp2b2x1bWVDaGFuZ2VkKGRvdWJsZSBuZXdWb2x1bWUpCkBAIC0x
MDQ1LDYzICsxMDM4LDUzIEBAIHZvaWQgTWVkaWFQbGF5ZXI6OnZvbHVtZUNoYW5nZWQoZG91Ymxl
IG5ld1ZvbHVtZSkKICNlbHNlCiAgICAgbV92b2x1bWUgPSBuZXdWb2x1bWU7CiAjZW5kaWYKLSAg
ICBpZiAobV9tZWRpYVBsYXllckNsaWVudCkKLSAgICAgICAgbV9tZWRpYVBsYXllckNsaWVudC0+
bWVkaWFQbGF5ZXJWb2x1bWVDaGFuZ2VkKHRoaXMpOworICAgIG1fY2xpZW50Lm1lZGlhUGxheWVy
Vm9sdW1lQ2hhbmdlZCh0aGlzKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllcjo6bXV0ZUNoYW5nZWQo
Ym9vbCBuZXdNdXRlZCkKIHsKICAgICBtX211dGVkID0gbmV3TXV0ZWQ7Ci0gICAgaWYgKG1fbWVk
aWFQbGF5ZXJDbGllbnQpCi0gICAgICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVy
TXV0ZUNoYW5nZWQodGhpcyk7CisgICAgbV9jbGllbnQubWVkaWFQbGF5ZXJNdXRlQ2hhbmdlZCh0
aGlzKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllcjo6dGltZUNoYW5nZWQoKQogewotICAgIGlmICht
X21lZGlhUGxheWVyQ2xpZW50KQotICAgICAgICBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBs
YXllclRpbWVDaGFuZ2VkKHRoaXMpOworICAgIG1fY2xpZW50Lm1lZGlhUGxheWVyVGltZUNoYW5n
ZWQodGhpcyk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXI6OnNpemVDaGFuZ2VkKCkKIHsKLSAgICBp
ZiAobV9tZWRpYVBsYXllckNsaWVudCkKLSAgICAgICAgbV9tZWRpYVBsYXllckNsaWVudC0+bWVk
aWFQbGF5ZXJTaXplQ2hhbmdlZCh0aGlzKTsKKyAgICBtX2NsaWVudC5tZWRpYVBsYXllclNpemVD
aGFuZ2VkKHRoaXMpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyOjpyZXBhaW50KCkKIHsKLSAgICBp
ZiAobV9tZWRpYVBsYXllckNsaWVudCkKLSAgICAgICAgbV9tZWRpYVBsYXllckNsaWVudC0+bWVk
aWFQbGF5ZXJSZXBhaW50KHRoaXMpOworICAgIG1fY2xpZW50Lm1lZGlhUGxheWVyUmVwYWludCh0
aGlzKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllcjo6ZHVyYXRpb25DaGFuZ2VkKCkKIHsKLSAgICBp
ZiAobV9tZWRpYVBsYXllckNsaWVudCkKLSAgICAgICAgbV9tZWRpYVBsYXllckNsaWVudC0+bWVk
aWFQbGF5ZXJEdXJhdGlvbkNoYW5nZWQodGhpcyk7CisgICAgbV9jbGllbnQubWVkaWFQbGF5ZXJE
dXJhdGlvbkNoYW5nZWQodGhpcyk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXI6OnJhdGVDaGFuZ2Vk
KCkKIHsKLSAgICBpZiAobV9tZWRpYVBsYXllckNsaWVudCkKLSAgICAgICAgbV9tZWRpYVBsYXll
ckNsaWVudC0+bWVkaWFQbGF5ZXJSYXRlQ2hhbmdlZCh0aGlzKTsKKyAgICBtX2NsaWVudC5tZWRp
YVBsYXllclJhdGVDaGFuZ2VkKHRoaXMpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyOjpwbGF5YmFj
a1N0YXRlQ2hhbmdlZCgpCiB7Ci0gICAgaWYgKG1fbWVkaWFQbGF5ZXJDbGllbnQpCi0gICAgICAg
IG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyUGxheWJhY2tTdGF0ZUNoYW5nZWQodGhp
cyk7CisgICAgbV9jbGllbnQubWVkaWFQbGF5ZXJQbGF5YmFja1N0YXRlQ2hhbmdlZCh0aGlzKTsK
IH0KIAogdm9pZCBNZWRpYVBsYXllcjo6Zmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCkKIHsKLSAg
ICBpZiAobV9tZWRpYVBsYXllckNsaWVudCkKLSAgICAgICAgbV9tZWRpYVBsYXllckNsaWVudC0+
bWVkaWFQbGF5ZXJGaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUodGhpcyk7CisgICAgbV9jbGllbnQu
bWVkaWFQbGF5ZXJGaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUodGhpcyk7CiB9CiAKIHZvaWQgTWVk
aWFQbGF5ZXI6OmNoYXJhY3RlcmlzdGljQ2hhbmdlZCgpCiB7Ci0gICAgaWYgKG1fbWVkaWFQbGF5
ZXJDbGllbnQpCi0gICAgICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyQ2hhcmFj
dGVyaXN0aWNDaGFuZ2VkKHRoaXMpOworICAgIG1fY2xpZW50Lm1lZGlhUGxheWVyQ2hhcmFjdGVy
aXN0aWNDaGFuZ2VkKHRoaXMpOwogfQogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKQEAgLTExMTQs
NTMgKzEwOTcsNDAgQEAgQXVkaW9Tb3VyY2VQcm92aWRlciogTWVkaWFQbGF5ZXI6OmF1ZGlvU291
cmNlUHJvdmlkZXIoKQogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiB2b2lkIE1lZGlhUGxh
eWVyOjprZXlBZGRlZChjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBzZXNz
aW9uSWQpCiB7Ci0gICAgaWYgKG1fbWVkaWFQbGF5ZXJDbGllbnQpCi0gICAgICAgIG1fbWVkaWFQ
bGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyS2V5QWRkZWQodGhpcywga2V5U3lzdGVtLCBzZXNzaW9u
SWQpOworICAgIG1fY2xpZW50Lm1lZGlhUGxheWVyS2V5QWRkZWQodGhpcywga2V5U3lzdGVtLCBz
ZXNzaW9uSWQpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyOjprZXlFcnJvcihjb25zdCBTdHJpbmcm
IGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQsIE1lZGlhUGxheWVyQ2xpZW50OjpN
ZWRpYUtleUVycm9yQ29kZSBlcnJvckNvZGUsIHVuc2lnbmVkIHNob3J0IHN5c3RlbUNvZGUpCiB7
Ci0gICAgaWYgKG1fbWVkaWFQbGF5ZXJDbGllbnQpCi0gICAgICAgIG1fbWVkaWFQbGF5ZXJDbGll
bnQtPm1lZGlhUGxheWVyS2V5RXJyb3IodGhpcywga2V5U3lzdGVtLCBzZXNzaW9uSWQsIGVycm9y
Q29kZSwgc3lzdGVtQ29kZSk7CisgICAgbV9jbGllbnQubWVkaWFQbGF5ZXJLZXlFcnJvcih0aGlz
LCBrZXlTeXN0ZW0sIHNlc3Npb25JZCwgZXJyb3JDb2RlLCBzeXN0ZW1Db2RlKTsKIH0KIAogdm9p
ZCBNZWRpYVBsYXllcjo6a2V5TWVzc2FnZShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3Qg
U3RyaW5nJiBzZXNzaW9uSWQsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIG1lc3NhZ2UsIHVuc2lnbmVk
IG1lc3NhZ2VMZW5ndGgsIGNvbnN0IFVSTCYgZGVmYXVsdFVSTCkKIHsKLSAgICBpZiAobV9tZWRp
YVBsYXllckNsaWVudCkKLSAgICAgICAgbV9tZWRpYVBsYXllckNsaWVudC0+bWVkaWFQbGF5ZXJL
ZXlNZXNzYWdlKHRoaXMsIGtleVN5c3RlbSwgc2Vzc2lvbklkLCBtZXNzYWdlLCBtZXNzYWdlTGVu
Z3RoLCBkZWZhdWx0VVJMKTsKKyAgICBtX2NsaWVudC5tZWRpYVBsYXllcktleU1lc3NhZ2UodGhp
cywga2V5U3lzdGVtLCBzZXNzaW9uSWQsIG1lc3NhZ2UsIG1lc3NhZ2VMZW5ndGgsIGRlZmF1bHRV
UkwpOwogfQogCiBib29sIE1lZGlhUGxheWVyOjprZXlOZWVkZWQoY29uc3QgU3RyaW5nJiBrZXlT
eXN0ZW0sIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBpbml0
RGF0YSwgdW5zaWduZWQgaW5pdERhdGFMZW5ndGgpCiB7Ci0gICAgaWYgKG1fbWVkaWFQbGF5ZXJD
bGllbnQpCi0gICAgICAgIHJldHVybiBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllcktl
eU5lZWRlZCh0aGlzLCBrZXlTeXN0ZW0sIHNlc3Npb25JZCwgaW5pdERhdGEsIGluaXREYXRhTGVu
Z3RoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG1fY2xpZW50Lm1lZGlhUGxheWVy
S2V5TmVlZGVkKHRoaXMsIGtleVN5c3RlbSwgc2Vzc2lvbklkLCBpbml0RGF0YSwgaW5pdERhdGFM
ZW5ndGgpOwogfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBX1YyKQogYm9v
bCBNZWRpYVBsYXllcjo6a2V5TmVlZGVkKFVpbnQ4QXJyYXkqIGluaXREYXRhKQogewotICAgIGlm
IChtX21lZGlhUGxheWVyQ2xpZW50KQotICAgICAgICByZXR1cm4gbV9tZWRpYVBsYXllckNsaWVu
dC0+bWVkaWFQbGF5ZXJLZXlOZWVkZWQodGhpcywgaW5pdERhdGEpOwotICAgIHJldHVybiBmYWxz
ZTsKKyAgICByZXR1cm4gbV9jbGllbnQubWVkaWFQbGF5ZXJLZXlOZWVkZWQodGhpcywgaW5pdERh
dGEpOwogfQogI2VuZGlmCiAKIFN0cmluZyBNZWRpYVBsYXllcjo6cmVmZXJyZXIoKSBjb25zdAog
ewotICAgIGlmICghbV9tZWRpYVBsYXllckNsaWVudCkKLSAgICAgICAgcmV0dXJuIFN0cmluZygp
OwotCi0gICAgcmV0dXJuIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyUmVmZXJyZXIo
KTsKKyAgICByZXR1cm4gbV9jbGllbnQubWVkaWFQbGF5ZXJSZWZlcnJlcigpOwogfQogCiBTdHJp
bmcgTWVkaWFQbGF5ZXI6OnVzZXJBZ2VudCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX21lZGlhUGxh
eWVyQ2xpZW50KQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0gICAgCi0gICAgcmV0dXJuIG1f
bWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyVXNlckFnZW50KCk7CisgICAgcmV0dXJuIG1f
Y2xpZW50Lm1lZGlhUGxheWVyVXNlckFnZW50KCk7CiB9CiAKIFN0cmluZyBNZWRpYVBsYXllcjo6
ZW5naW5lRGVzY3JpcHRpb24oKSBjb25zdApAQCAtMTE3NCw2OCArMTE0NCw0NCBAQCBTdHJpbmcg
TWVkaWFQbGF5ZXI6OmVuZ2luZURlc2NyaXB0aW9uKCkgY29uc3QKICNpZiBQTEFURk9STShXSU4p
ICYmIFVTRShBVkZPVU5EQVRJT04pCiBHcmFwaGljc0RldmljZUFkYXB0ZXIqIE1lZGlhUGxheWVy
OjpncmFwaGljc0RldmljZUFkYXB0ZXIoKSBjb25zdAogewotICAgIGlmICghbV9tZWRpYVBsYXll
ckNsaWVudCkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgCi0gICAgcmV0dXJuIG1fbWVkaWFQbGF5
ZXJDbGllbnQtPm1lZGlhUGxheWVyR3JhcGhpY3NEZXZpY2VBZGFwdGVyKHRoaXMpOworICAgIHJl
dHVybiBtX2NsaWVudC5tZWRpYVBsYXllckdyYXBoaWNzRGV2aWNlQWRhcHRlcih0aGlzKTsKIH0K
ICNlbmRpZgogCiBDYWNoZWRSZXNvdXJjZUxvYWRlciogTWVkaWFQbGF5ZXI6OmNhY2hlZFJlc291
cmNlTG9hZGVyKCkKIHsKLSAgICBpZiAoIW1fbWVkaWFQbGF5ZXJDbGllbnQpCi0gICAgICAgIHJl
dHVybiAwOwotCi0gICAgcmV0dXJuIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIoKTsKKyAgICByZXR1cm4gbV9jbGllbnQubWVkaWFQbGF5ZXJDYWNo
ZWRSZXNvdXJjZUxvYWRlcigpOwogfQogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogdm9pZCBN
ZWRpYVBsYXllcjo6YWRkQXVkaW9UcmFjayhQYXNzUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlPiB0
cmFjaykKIHsKLSAgICBpZiAoIW1fbWVkaWFQbGF5ZXJDbGllbnQpCi0gICAgICAgIHJldHVybjsK
LQotICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyRGlkQWRkQXVkaW9UcmFjayh0
cmFjayk7CisgICAgbV9jbGllbnQubWVkaWFQbGF5ZXJEaWRBZGRBdWRpb1RyYWNrKHRyYWNrKTsK
IH0KIAogdm9pZCBNZWRpYVBsYXllcjo6cmVtb3ZlQXVkaW9UcmFjayhQYXNzUmVmUHRyPEF1ZGlv
VHJhY2tQcml2YXRlPiB0cmFjaykKIHsKLSAgICBpZiAoIW1fbWVkaWFQbGF5ZXJDbGllbnQpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyRGlk
UmVtb3ZlQXVkaW9UcmFjayh0cmFjayk7CisgICAgbV9jbGllbnQubWVkaWFQbGF5ZXJEaWRSZW1v
dmVBdWRpb1RyYWNrKHRyYWNrKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllcjo6YWRkVGV4dFRyYWNr
KFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gdHJhY2spCiB7Ci0gICAgaWYgKCFt
X21lZGlhUGxheWVyQ2xpZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX21lZGlhUGxheWVy
Q2xpZW50LT5tZWRpYVBsYXllckRpZEFkZFRleHRUcmFjayh0cmFjayk7CisgICAgbV9jbGllbnQu
bWVkaWFQbGF5ZXJEaWRBZGRUZXh0VHJhY2sodHJhY2spOwogfQogCiB2b2lkIE1lZGlhUGxheWVy
OjpyZW1vdmVUZXh0VHJhY2soUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiB0cmFj
aykKIHsKLSAgICBpZiAoIW1fbWVkaWFQbGF5ZXJDbGllbnQpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyRGlkUmVtb3ZlVGV4dFRyYWNrKHRy
YWNrKTsKKyAgICBtX2NsaWVudC5tZWRpYVBsYXllckRpZFJlbW92ZVRleHRUcmFjayh0cmFjayk7
CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXI6OmFkZFZpZGVvVHJhY2soUGFzc1JlZlB0cjxWaWRlb1Ry
YWNrUHJpdmF0ZT4gdHJhY2spCiB7Ci0gICAgaWYgKCFtX21lZGlhUGxheWVyQ2xpZW50KQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllckRpZEFk
ZFZpZGVvVHJhY2sodHJhY2spOworICAgIG1fY2xpZW50Lm1lZGlhUGxheWVyRGlkQWRkVmlkZW9U
cmFjayh0cmFjayk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXI6OnJlbW92ZVZpZGVvVHJhY2soUGFz
c1JlZlB0cjxWaWRlb1RyYWNrUHJpdmF0ZT4gdHJhY2spCiB7Ci0gICAgaWYgKCFtX21lZGlhUGxh
eWVyQ2xpZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX21lZGlhUGxheWVyQ2xpZW50LT5t
ZWRpYVBsYXllckRpZFJlbW92ZVZpZGVvVHJhY2sodHJhY2spOworICAgIG1fY2xpZW50Lm1lZGlh
UGxheWVyRGlkUmVtb3ZlVmlkZW9UcmFjayh0cmFjayk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXI6
OnJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSBjb25zdApAQCAtMTI2MiwxMCArMTIw
OCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXI6Om5vdGlmeVRyYWNrTW9kZUNoYW5nZWQoKQogCiBWZWN0
b3I8UmVmUHRyPFBsYXRmb3JtVGV4dFRyYWNrPj4gTWVkaWFQbGF5ZXI6Om91dE9mQmFuZFRyYWNr
U291cmNlcygpCiB7Ci0gICAgaWYgKCFtX21lZGlhUGxheWVyQ2xpZW50KQotICAgICAgICByZXR1
cm4gVmVjdG9yPFJlZlB0cjxQbGF0Zm9ybVRleHRUcmFjaz4+ICgpOwotICAgIAotICAgIHJldHVy
biBtX21lZGlhUGxheWVyQ2xpZW50LT5vdXRPZkJhbmRUcmFja1NvdXJjZXMoKTsKKyAgICByZXR1
cm4gbV9jbGllbnQub3V0T2ZCYW5kVHJhY2tTb3VyY2VzKCk7CiB9CiAjZW5kaWYKIApAQCAtMTM1
OCwyNiArMTMwMSwxNyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXI6OnRvdGFsRnJhbWVEZWxheSgp
CiAKIGJvb2wgTWVkaWFQbGF5ZXI6OnNob3VsZFdhaXRGb3JSZXNwb25zZVRvQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSkKIHsK
LSAgICBpZiAoIW1fbWVkaWFQbGF5ZXJDbGllbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIHJldHVybiBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllclNob3VsZFdhaXRGb3JS
ZXNwb25zZVRvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY2hhbGxlbmdlKTsKKyAgICByZXR1cm4g
bV9jbGllbnQubWVkaWFQbGF5ZXJTaG91bGRXYWl0Rm9yUmVzcG9uc2VUb0F1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKGNoYWxsZW5nZSk7CiB9Ci0gICAgCisKIHZvaWQgTWVkaWFQbGF5ZXI6OmhhbmRs
ZVBsYXliYWNrQ29tbWFuZChNZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSBj
b21tYW5kKQogewotICAgIGlmICghbV9tZWRpYVBsYXllckNsaWVudCkKLSAgICAgICAgcmV0dXJu
OwotICAgIAotICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVySGFuZGxlUGxheWJh
Y2tDb21tYW5kKGNvbW1hbmQpOworICAgIG1fY2xpZW50Lm1lZGlhUGxheWVySGFuZGxlUGxheWJh
Y2tDb21tYW5kKGNvbW1hbmQpOwogfQogCiBTdHJpbmcgTWVkaWFQbGF5ZXI6OnNvdXJjZUFwcGxp
Y2F0aW9uSWRlbnRpZmllcigpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX21lZGlhUGxheWVyQ2xpZW50
KQotICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLQotICAgIHJldHVybiBtX21lZGlhUGxh
eWVyQ2xpZW50LT5tZWRpYVBsYXllclNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcigpOworICAg
IHJldHVybiBtX2NsaWVudC5tZWRpYVBsYXllclNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcigp
OwogfQogCiB2b2lkIE1lZGlhUGxheWVyRmFjdG9yeVN1cHBvcnQ6OmNhbGxSZWdpc3Rlck1lZGlh
RW5naW5lKE1lZGlhRW5naW5lUmVnaXN0ZXIgcmVnaXN0ZXJNZWRpYUVuZ2luZSkKQEAgLTEzODcs
MjcgKzEzMjEsMTggQEAgdm9pZCBNZWRpYVBsYXllckZhY3RvcnlTdXBwb3J0OjpjYWxsUmVnaXN0
ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdGVyIHJlZ2kKIAogYm9vbCBNZWRpYVBsYXll
cjo6ZG9lc0hhdmVBdHRyaWJ1dGUoY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1dGUsIEF0b21p
Y1N0cmluZyogdmFsdWUpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX21lZGlhUGxheWVyQ2xpZW50KQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgcmV0dXJuIG1fbWVkaWFQbGF5ZXJDbGll
bnQtPmRvZXNIYXZlQXR0cmlidXRlKGF0dHJpYnV0ZSwgdmFsdWUpOworICAgIHJldHVybiBtX2Ns
aWVudC5kb2VzSGF2ZUF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsKIH0KIAogI2lmIFBMQVRG
T1JNKElPUykKIFN0cmluZyBNZWRpYVBsYXllcjo6bWVkaWFQbGF5ZXJOZXR3b3JrSW50ZXJmYWNl
TmFtZSgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX21lZGlhUGxheWVyQ2xpZW50KQotICAgICAgICBy
ZXR1cm4gZW1wdHlTdHJpbmcoKTsKLQotICAgIHJldHVybiBtX21lZGlhUGxheWVyQ2xpZW50LT5t
ZWRpYVBsYXllck5ldHdvcmtJbnRlcmZhY2VOYW1lKCk7CisgICAgcmV0dXJuIG1fY2xpZW50Lm1l
ZGlhUGxheWVyTmV0d29ya0ludGVyZmFjZU5hbWUoKTsKIH0KIAogYm9vbCBNZWRpYVBsYXllcjo6
Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIHVybCwgVmVjdG9yPENvb2tpZT4mIGNvb2tpZXMpIGNv
bnN0CiB7Ci0gICAgaWYgKCFtX21lZGlhUGxheWVyQ2xpZW50KQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0KLSAgICByZXR1cm4gbV9tZWRpYVBsYXllckNsaWVudC0+bWVkaWFQbGF5ZXJHZXRSYXdD
b29raWVzKHVybCwgY29va2llcyk7CisgICAgcmV0dXJuIG1fY2xpZW50Lm1lZGlhUGxheWVyR2V0
UmF3Q29va2llcyh1cmwsIGNvb2tpZXMpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IGRjYzIzYmYuLjdjNmFkZDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApA
QCAtMjc5LDcgKzI3OSw3IEBAIGNsYXNzIE1lZGlhUGxheWVyIHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShNZWRpYVBsYXllcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgog
Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TWVkaWFQbGF5ZXI+IGNyZWF0ZShNZWRpYVBsYXllckNs
aWVudCogY2xpZW50KQorICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyPiBjcmVhdGUo
TWVkaWFQbGF5ZXJDbGllbnQmIGNsaWVudCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFB0
cihuZXcgTWVkaWFQbGF5ZXIoY2xpZW50KSk7CiAgICAgfQpAQCAtMzgwLDcgKzM4MCw3IEBAIHB1
YmxpYzoKIAogICAgIGRvdWJsZSB2b2x1bWUoKSBjb25zdDsKICAgICB2b2lkIHNldFZvbHVtZShk
b3VibGUpOwotICAgIGJvb2wgcGxhdGZvcm1Wb2x1bWVDb25maWd1cmF0aW9uUmVxdWlyZWQoKSBj
b25zdCB7IHJldHVybiBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllclBsYXRmb3JtVm9s
dW1lQ29uZmlndXJhdGlvblJlcXVpcmVkKCk7IH0KKyAgICBib29sIHBsYXRmb3JtVm9sdW1lQ29u
ZmlndXJhdGlvblJlcXVpcmVkKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQubWVkaWFQbGF5ZXJQ
bGF0Zm9ybVZvbHVtZUNvbmZpZ3VyYXRpb25SZXF1aXJlZCgpOyB9CiAKICAgICBib29sIG11dGVk
KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRNdXRlZChib29sKTsKQEAgLTQzOCw4ICs0MzgsNyBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHJlcGFpbnQoKTsKIAotICAgIE1lZGlhUGxheWVyQ2xpZW50KiBt
ZWRpYVBsYXllckNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFQbGF5ZXJDbGllbnQ7IH0K
LSAgICB2b2lkIGNsZWFyTWVkaWFQbGF5ZXJDbGllbnQoKSB7IG1fbWVkaWFQbGF5ZXJDbGllbnQg
PSAwOyB9CisgICAgTWVkaWFQbGF5ZXJDbGllbnQmIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
Y2xpZW50OyB9CiAKICAgICBib29sIGhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoKSBjb25zdDsKICAg
ICB2b2lkIHByZXBhcmVGb3JSZW5kZXJpbmcoKTsKQEAgLTU3OCwxNCArNTc3LDE0IEBAIHB1Ymxp
YzoKICAgICBTdHJpbmcgc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKCkgY29uc3Q7CiAKIHBy
aXZhdGU6Ci0gICAgTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQqKTsKKyAgICBNZWRpYVBs
YXllcihNZWRpYVBsYXllckNsaWVudCYpOwogICAgIE1lZGlhUGxheWVyRmFjdG9yeSogbmV4dEJl
c3RNZWRpYUVuZ2luZShNZWRpYVBsYXllckZhY3RvcnkqKSBjb25zdDsKICAgICB2b2lkIGxvYWRX
aXRoTmV4dE1lZGlhRW5naW5lKE1lZGlhUGxheWVyRmFjdG9yeSopOwogICAgIHZvaWQgcmVsb2Fk
VGltZXJGaXJlZChUaW1lcjxNZWRpYVBsYXllcj4mKTsKIAogICAgIHN0YXRpYyB2b2lkIGluaXRp
YWxpemVNZWRpYUVuZ2luZXMoKTsKIAotICAgIE1lZGlhUGxheWVyQ2xpZW50KiBtX21lZGlhUGxh
eWVyQ2xpZW50OworICAgIE1lZGlhUGxheWVyQ2xpZW50JiBtX2NsaWVudDsKICAgICBUaW1lcjxN
ZWRpYVBsYXllcj4gbV9yZWxvYWRUaW1lcjsKICAgICBPd25QdHI8TWVkaWFQbGF5ZXJQcml2YXRl
SW50ZXJmYWNlPiBtX3ByaXZhdGU7CiAgICAgTWVkaWFQbGF5ZXJGYWN0b3J5KiBtX2N1cnJlbnRN
ZWRpYUVuZ2luZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbi5jcHAKaW5kZXggYWVkODg4Yi4uMDc3YTEyOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKQEAgLTEw
NSw3ICsxMDUsNyBAQCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Ok1lZGlhUmVuZGVy
aW5nTW9kZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpbwogICAgIGlmICghbV9wbGF5ZXIt
PnZpc2libGUoKSB8fCBhc3NldFN0YXR1cygpID09IE1lZGlhUGxheWVyQVZBc3NldFN0YXR1c1Vu
a25vd24pCiAgICAgICAgIHJldHVybiBNZWRpYVJlbmRlcmluZ05vbmU7CiAKLSAgICBpZiAoc3Vw
cG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpICYmIG1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVu
dCgpLT5tZWRpYVBsYXllclJlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQobV9wbGF5ZXIpKQorICAg
IGlmIChzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgJiYgbV9wbGF5ZXItPmNsaWVudCgp
Lm1lZGlhUGxheWVyUmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZChtX3BsYXllcikpCiAgICAgICAg
IHJldHVybiBNZWRpYVJlbmRlcmluZ1RvTGF5ZXI7CiAKICAgICByZXR1cm4gTWVkaWFSZW5kZXJp
bmdUb0NvbnRleHQ7CkBAIC0xNDUsNyArMTQ1LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb246OnNldFVwVmlkZW9SZW5kZXJpbmcoKQogICAgIC8vIElmIHVzaW5nIGEgbW92
aWUgbGF5ZXIsIGluZm9ybSB0aGUgY2xpZW50IHNvIHRoZSBjb21wb3NpdGluZyB0cmVlIGlzIHVw
ZGF0ZWQuCiAgICAgaWYgKGN1cnJlbnRNb2RlID09IE1lZGlhUmVuZGVyaW5nVG9MYXllciB8fCBw
cmVmZXJyZWRNb2RlID09IE1lZGlhUmVuZGVyaW5nVG9MYXllcikgewogICAgICAgICBMT0coTWVk
aWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNldFVwVmlkZW9SZW5kZXJpbmco
JXApIC0gY2FsbGluZyBtZWRpYVBsYXllclJlbmRlcmluZ01vZGVDaGFuZ2VkKCkiLCB0aGlzKTsK
LSAgICAgICAgbV9wbGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50KCktPm1lZGlhUGxheWVyUmVuZGVy
aW5nTW9kZUNoYW5nZWQobV9wbGF5ZXIpOworICAgICAgICBtX3BsYXllci0+Y2xpZW50KCkubWVk
aWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZChtX3BsYXllcik7CiAgICAgfQogfQogCkBAIC00
NTgsNyArNDU4LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnByZXBh
cmVGb3JSZW5kZXJpbmcoKQogICAgIHNldFVwVmlkZW9SZW5kZXJpbmcoKTsKIAogICAgIGlmIChj
dXJyZW50UmVuZGVyaW5nTW9kZSgpID09IE1lZGlhUmVuZGVyaW5nVG9MYXllciB8fCBwcmVmZXJy
ZWRSZW5kZXJpbmdNb2RlKCkgPT0gTWVkaWFSZW5kZXJpbmdUb0xheWVyKQotICAgICAgICBtX3Bs
YXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdl
ZChtX3BsYXllcik7CisgICAgICAgIG1fcGxheWVyLT5jbGllbnQoKS5tZWRpYVBsYXllclJlbmRl
cmluZ01vZGVDaGFuZ2VkKG1fcGxheWVyKTsKIH0KIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb246OnN1cHBvcnRzRnVsbHNjcmVlbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbQppbmRleCAxYjhhNTdhLi45OGViOGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAg
LTU4Miw3ICs1ODIsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OmNyZWF0ZVZpZGVvTGF5ZXIoKQogICAgICAgICBpZiAoIW1fdmlkZW9MYXllcikKICAgICAgICAg
ICAgIGNyZWF0ZUFWUGxheWVyTGF5ZXIoKTsKIAotICAgICAgICBwbGF5ZXIoKS0+bWVkaWFQbGF5
ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZChwbGF5ZXIoKSk7Cisg
ICAgICAgIHBsYXllcigpLT5jbGllbnQoKS5tZWRpYVBsYXllclJlbmRlcmluZ01vZGVDaGFuZ2Vk
KHBsYXllcigpKTsKICAgICB9KTsKIH0KIApAQCAtNTk5LDcgKzU5OSw3IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZQbGF5ZXJMYXllcigpCiAjZW5k
aWYKICAgICBbbV92aWRlb0xheWVyIGFkZE9ic2VydmVyOm1fb2JqY09ic2VydmVyLmdldCgpIGZv
cktleVBhdGg6QCJyZWFkeUZvckRpc3BsYXkiIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09w
dGlvbk5ldyBjb250ZXh0Oih2b2lkICopTWVkaWFQbGF5ZXJBVkZvdW5kYXRpb25PYnNlcnZhdGlv
bkNvbnRleHRBVlBsYXllckxheWVyXTsKICAgICB1cGRhdGVWaWRlb0xheWVyR3Jhdml0eSgpOwot
ICAgIEludFNpemUgZGVmYXVsdFNpemUgPSBwbGF5ZXIoKS0+bWVkaWFQbGF5ZXJDbGllbnQoKSA/
IHBsYXllcigpLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllckNvbnRlbnRCb3hSZWN0
KCkucGl4ZWxTbmFwcGVkU2l6ZSgpIDogSW50U2l6ZSgpOworICAgIEludFNpemUgZGVmYXVsdFNp
emUgPSBwbGF5ZXIoKS0+Y2xpZW50KCkubWVkaWFQbGF5ZXJDb250ZW50Qm94UmVjdCgpLnBpeGVs
U25hcHBlZFNpemUoKTsKICAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpjcmVhdGVWaWRlb0xheWVyKCVwKSAtIHJldHVybmluZyAlcCIsIHRoaXMsIG1f
dmlkZW9MYXllci5nZXQoKSk7CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC04NjUsNyArODY1LDcg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXll
cigpCiAgICAgW21fYXZQbGF5ZXIuZ2V0KCkgc2V0QWxsb3dzRXh0ZXJuYWxQbGF5YmFjazptX2Fs
bG93c1dpcmVsZXNzVmlkZW9QbGF5YmFja107CiAjZW5kaWYKIAotICAgIGlmIChwbGF5ZXIoKS0+
bWVkaWFQbGF5ZXJDbGllbnQoKSAmJiBwbGF5ZXIoKS0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVk
aWFQbGF5ZXJJc1ZpZGVvKCkpCisgICAgaWYgKHBsYXllcigpLT5jbGllbnQoKS5tZWRpYVBsYXll
cklzVmlkZW8oKSkKICAgICAgICAgY3JlYXRlQVZQbGF5ZXJMYXllcigpOwogCiAgICAgaWYgKG1f
YXZQbGF5ZXJJdGVtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IDRkZjQ3MmEuLjRl
NWY0M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTUzNyw3ICs1MzcsNyBAQCBi
b29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3VwcG9ydHNBY2NlbGVy
YXRlZFJlbmRlcmluZygpIGNvbnN0CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDOjphY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpCiB7Ci0gICAgaWYg
KG1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllclJlbmRlcmluZ0NhbkJl
QWNjZWxlcmF0ZWQobV9wbGF5ZXIpKQorICAgIGlmIChtX3BsYXllci0+Y2xpZW50KCkubWVkaWFQ
bGF5ZXJSZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKG1fcGxheWVyKSkKICAgICAgICAgZW5zdXJl
TGF5ZXIoKTsKICAgICBlbHNlCiAgICAgICAgIGRlc3Ryb3lMYXllcigpOwpAQCAtNzIwLDcgKzcy
MCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjphZGREaXNw
bGF5TGF5ZXIoQVZTYW1wbGVCdWZmZXJEaXNwbGF5CiAKICAgICBtX3NhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllciA9IGRpc3BsYXlMYXllcjsKICAgICBbbV9zeW5jaHJvbml6ZXIgYWRkUmVuZGVyZXI6
bV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuZ2V0KCldOwotICAgIG1fcGxheWVyLT5tZWRpYVBs
YXllckNsaWVudCgpLT5tZWRpYVBsYXllclJlbmRlcmluZ01vZGVDaGFuZ2VkKG1fcGxheWVyKTsK
KyAgICBtX3BsYXllci0+Y2xpZW50KCkubWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZCht
X3BsYXllcik7CiAKICAgICAvLyBGSVhNRTogbW92ZSB0aGlzIHNvbWV3aGVyZSBhcHByb3ByaWF0
ZToKICAgICBtX3BsYXllci0+Zmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCk7CkBAIC03MzcsNyAr
NzM3LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnJlbW92
ZURpc3BsYXlMYXllcihBVlNhbXBsZUJ1ZmZlckRpc3AKICAgICB9XTsKIAogICAgIG1fc2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyID0gbnVsbHB0cjsKLSAgICBtX3BsYXllci0+bWVkaWFQbGF5ZXJD
bGllbnQoKS0+bWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZChtX3BsYXllcik7CisgICAg
bV9wbGF5ZXItPmNsaWVudCgpLm1lZGlhUGxheWVyUmVuZGVyaW5nTW9kZUNoYW5nZWQobV9wbGF5
ZXIpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6YWRk
QXVkaW9SZW5kZXJlcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIqIGF1ZGlvUmVuZGVyZXIp
CkBAIC03NTEsNyArNzUxLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OmFkZEF1ZGlvUmVuZGVyZXIoQVZTYW1wbGVCdWZmZXJBdWRpb1IKICAgICBbYXVkaW9S
ZW5kZXJlciBzZXRWb2x1bWU6bV9wbGF5ZXItPnZvbHVtZSgpXTsKIAogICAgIFttX3N5bmNocm9u
aXplciBhZGRSZW5kZXJlcjphdWRpb1JlbmRlcmVyXTsKLSAgICBtX3BsYXllci0+bWVkaWFQbGF5
ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZChtX3BsYXllcik7Cisg
ICAgbV9wbGF5ZXItPmNsaWVudCgpLm1lZGlhUGxheWVyUmVuZGVyaW5nTW9kZUNoYW5nZWQobV9w
bGF5ZXIpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
cmVtb3ZlQXVkaW9SZW5kZXJlcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIqIGF1ZGlvUmVu
ZGVyZXIpCkBAIC03NjYsNyArNzY2LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OnJlbW92ZUF1ZGlvUmVuZGVyZXIoQVZTYW1wbGVCdWZmZXJBdWQKICAgICB9
XTsKIAogICAgIG1fc2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlcnMucmVtb3ZlKHBvcyk7Ci0gICAg
bV9wbGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50KCktPm1lZGlhUGxheWVyUmVuZGVyaW5nTW9kZUNo
YW5nZWQobV9wbGF5ZXIpOworICAgIG1fcGxheWVyLT5jbGllbnQoKS5tZWRpYVBsYXllclJlbmRl
cmluZ01vZGVDaGFuZ2VkKG1fcGxheWVyKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCAwMmI1YTU5Li44YWM4ZmNjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTMw
LDggKzEzMCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRBdWRpb1N0
cmVhbVByb3BlcnRpZXMoR09iamVjdCogb2JqZWN0KQogICAgIGlmIChnX3N0cmNtcDAoR19PQkpF
Q1RfVFlQRV9OQU1FKG9iamVjdCksICJHc3RQdWxzZVNpbmsiKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgY29uc3QgY2hhciogcm9sZSA9IG1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpICYm
IG1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllcklzVmlkZW8oKQotICAg
ICAgICA/ICJ2aWRlbyIgOiAibXVzaWMiOworICAgIGNvbnN0IGNoYXIqIHJvbGUgPSBtX3BsYXll
ci0+Y2xpZW50KCkubWVkaWFQbGF5ZXJJc1ZpZGVvKCkgPyAidmlkZW8iIDogIm11c2ljIjsKICAg
ICBHc3RTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGdzdF9zdHJ1Y3R1cmVfbmV3KCJzdHJlYW0tcHJv
cGVydGllcyIsICJtZWRpYS5yb2xlIiwgR19UWVBFX1NUUklORywgcm9sZSwgTlVMTCk7CiAgICAg
Z19vYmplY3Rfc2V0KG9iamVjdCwgInN0cmVhbS1wcm9wZXJ0aWVzIiwgc3RydWN0dXJlLCBOVUxM
KTsKICAgICBnc3Rfc3RydWN0dXJlX2ZyZWUoc3RydWN0dXJlKTsKQEAgLTY4MSwxMyArNjgwLDEz
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlQbGF5ZXJPZlZpZGVv
KCkKICAgICB9CiAjZW5kaWYKIAotICAgIG1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5t
ZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQobV9wbGF5ZXIpOworICAgIG1fcGxheWVyLT5jbGllbnQo
KS5tZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQobV9wbGF5ZXIpOwogfQogCiB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5UGxheWVyT2ZWaWRlb0NhcHMoKQogewogICAgIG1f
dmlkZW9TaXplID0gSW50U2l6ZSgpOwotICAgIG1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgp
LT5tZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQobV9wbGF5ZXIpOworICAgIG1fcGxheWVyLT5jbGll
bnQoKS5tZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQobV9wbGF5ZXIpOwogfQogCiB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6YXVkaW9DaGFuZ2VkKCkKQEAgLTcyOSw3ICs3MjgsNyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5UGxheWVyT2ZBdWRpbygp
CiAgICAgfQogI2VuZGlmCiAKLSAgICBtX3BsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVk
aWFQbGF5ZXJFbmdpbmVVcGRhdGVkKG1fcGxheWVyKTsKKyAgICBtX3BsYXllci0+Y2xpZW50KCku
bWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKG1fcGxheWVyKTsKIH0KIAogI2lmIEVOQUJMRShWSURF
T19UUkFDSykKQEAgLTE2MDksNyArMTYwOCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpkaWRFbmQoKQogICAgIG1faXNFbmRSZWFjaGVkID0gdHJ1ZTsKICAgICB0aW1lQ2hh
bmdlZCgpOwogCi0gICAgaWYgKCFtX3BsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQ
bGF5ZXJJc0xvb3BpbmcoKSkgeworICAgIGlmICghbV9wbGF5ZXItPmNsaWVudCgpLm1lZGlhUGxh
eWVySXNMb29waW5nKCkpIHsKICAgICAgICAgbV9wYXVzZWQgPSB0cnVlOwogICAgICAgICBjaGFu
Z2VQaXBlbGluZVN0YXRlKEdTVF9TVEFURV9SRUFEWSk7CiAgICAgICAgIG1fZG93bmxvYWRGaW5p
c2hlZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lckJhc2UuY3BwCmluZGV4IDZjZTk0OWUuLjM4ZDRmZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKQEAgLTMzMCw3ICsz
MzAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnRyaWdnZXJSZXBh
aW50KEdzdEJ1ZmZlciogYnVmZmVyKQogICAgIH0KIAogI2lmIFVTRShURVhUVVJFX01BUFBFUl9H
TCkgJiYgIVVTRShDT09SRElOQVRFRF9HUkFQSElDUykKLSAgICBpZiAoc3VwcG9ydHNBY2NlbGVy
YXRlZFJlbmRlcmluZygpICYmIG1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBs
YXllclJlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQobV9wbGF5ZXIpICYmIGNsaWVudCgpKSB7Cisg
ICAgaWYgKHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSAmJiBtX3BsYXllci0+Y2xpZW50
KCkubWVkaWFQbGF5ZXJSZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKG1fcGxheWVyKSAmJiBjbGll
bnQoKSkgewogICAgICAgICBjbGllbnQoKS0+c2V0UGxhdGZvcm1MYXllck5lZWRzRGlzcGxheSgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNl
R1N0cmVhbWVyLmNwcAppbmRleCBjNzFkM2MzLi5kM2Y1N2FjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVh
bWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
V2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcApAQCAtNDk1LDcgKzQ5NSw3IEBAIHN0YXRpYyB2
b2lkIHdlYktpdFdlYlNyY1N0YXJ0KFdlYktpdFdlYlNyYyogc3JjKQogCiAgICAgaWYgKHByaXYt
PnBsYXllcikgewogICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWRlciA9IHBy
aXYtPnBsYXllci0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKSkKLSAgICAgICAgICAgIHByaXYtPmNs
aWVudCA9IG5ldyBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudChzcmMsIGxvYWRlciwgcmVx
dWVzdCwgcHJpdi0+cGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllckNPUlNN
b2RlKCkpOworICAgICAgICAgICAgcHJpdi0+Y2xpZW50ID0gbmV3IENhY2hlZFJlc291cmNlU3Ry
ZWFtaW5nQ2xpZW50KHNyYywgbG9hZGVyLCByZXF1ZXN0LCBwcml2LT5wbGF5ZXItPmNsaWVudCgp
Lm1lZGlhUGxheWVyQ09SU01vZGUoKSk7CiAgICAgfQogCiAgICAgaWYgKCFwcml2LT5jbGllbnQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQ
bGF5ZXJQcml2YXRlUVRLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KaW5kZXggYzFmZmE2Yy4uYWY2NTllNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQpAQCAtNDYyLDcgKzQ2Miw3IEBAIE1lZGlhUGxh
eWVyUHJpdmF0ZVFUS2l0OjpNZWRpYVJlbmRlcmluZ01vZGUgTWVkaWFQbGF5ZXJQcml2YXRlUVRL
aXQ6OnByZWZlcnJlZFJlCiAgICAgaWYgKCFtX3F0TW92aWUpCiAgICAgICAgIHJldHVybiBNZWRp
YVJlbmRlcmluZ05vbmU7CiAKLSAgICBpZiAoc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygp
ICYmIG1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllclJlbmRlcmluZ0Nh
bkJlQWNjZWxlcmF0ZWQobV9wbGF5ZXIpKQorICAgIGlmIChzdXBwb3J0c0FjY2VsZXJhdGVkUmVu
ZGVyaW5nKCkgJiYgbV9wbGF5ZXItPmNsaWVudCgpLm1lZGlhUGxheWVyUmVuZGVyaW5nQ2FuQmVB
Y2NlbGVyYXRlZChtX3BsYXllcikpCiAgICAgICAgIHJldHVybiBNZWRpYVJlbmRlcmluZ01vdmll
TGF5ZXI7CiAKICAgICBpZiAoIVFUVmlkZW9SZW5kZXJlckNsYXNzKCkpCkBAIC00OTcsNyArNDk3
LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6c2V0VXBWaWRlb1JlbmRlcmluZygp
CiAKICAgICAvLyBJZiB1c2luZyBhIG1vdmllIGxheWVyLCBpbmZvcm0gdGhlIGNsaWVudCBzbyB0
aGUgY29tcG9zaXRpbmcgdHJlZSBpcyB1cGRhdGVkLgogICAgIGlmIChjdXJyZW50TW9kZSA9PSBN
ZWRpYVJlbmRlcmluZ01vdmllTGF5ZXIgfHwgcHJlZmVycmVkTW9kZSA9PSBNZWRpYVJlbmRlcmlu
Z01vdmllTGF5ZXIpCi0gICAgICAgIG1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRp
YVBsYXllclJlbmRlcmluZ01vZGVDaGFuZ2VkKG1fcGxheWVyKTsKKyAgICAgICAgbV9wbGF5ZXIt
PmNsaWVudCgpLm1lZGlhUGxheWVyUmVuZGVyaW5nTW9kZUNoYW5nZWQobV9wbGF5ZXIpOwogfQog
CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Ojp0ZWFyRG93blZpZGVvUmVuZGVyaW5nKCkK
QEAgLTkzMCw3ICs5MzAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpwcmVwYXJl
Rm9yUmVuZGVyaW5nKCkKICAgICAvLyBJZiB1c2luZyBhIG1vdmllIGxheWVyLCBpbmZvcm0gdGhl
IGNsaWVudCBzbyB0aGUgY29tcG9zaXRpbmcgdHJlZSBpcyB1cGRhdGVkLiBUaGlzIGlzIGNydWNp
YWwgaWYgdGhlIG1vdmllCiAgICAgLy8gaGFzIGEgcG9zdGVyLCBhcyBpdCB3aWxsIG1vc3QgbGlr
ZWx5IG5vdCBoYXZlIGEgbGF5ZXIgYW5kIHdlIHdpbGwgbm93IGJlIHJlbmRlcmluZyBmcmFtZXMg
dG8gdGhlIG1vdmllIGxheWVyLgogICAgIGlmIChjdXJyZW50UmVuZGVyaW5nTW9kZSgpID09IE1l
ZGlhUmVuZGVyaW5nTW92aWVMYXllciB8fCBwcmVmZXJyZWRSZW5kZXJpbmdNb2RlKCkgPT0gTWVk
aWFSZW5kZXJpbmdNb3ZpZUxheWVyKQotICAgICAgICBtX3BsYXllci0+bWVkaWFQbGF5ZXJDbGll
bnQoKS0+bWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZChtX3BsYXllcik7CisgICAgICAg
IG1fcGxheWVyLT5jbGllbnQoKS5tZWRpYVBsYXllclJlbmRlcmluZ01vZGVDaGFuZ2VkKG1fcGxh
eWVyKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6dXBkYXRlU3RhdGVzKCkK
QEAgLTE0NDUsNyArMTQ0NSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmRpc2Fi
bGVVbnN1cHBvcnRlZFRyYWNrcygpCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpzYXdV
bnN1cHBvcnRlZFRyYWNrcygpCiB7CiAgICAgbV9oYXNVbnN1cHBvcnRlZFRyYWNrcyA9IHRydWU7
Ci0gICAgbV9wbGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50KCktPm1lZGlhUGxheWVyU2F3VW5zdXBw
b3J0ZWRUcmFja3MobV9wbGF5ZXIpOworICAgIG1fcGxheWVyLT5jbGllbnQoKS5tZWRpYVBsYXll
clNhd1Vuc3VwcG9ydGVkVHJhY2tzKG1fcGxheWVyKTsKIH0KIAogYm9vbCBNZWRpYVBsYXllclBy
aXZhdGVRVEtpdDo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0Cg==
</data>
<flag name="review"
          id="264250"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239543</attachid>
            <date>2014-10-09 09:20:34 -0700</date>
            <delta_ts>2014-10-09 09:20:34 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wcore-media-player-client.diff</filename>
            <type>text/plain</type>
            <size>32765</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmMmU0NzNkLi5lYTQ2MTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTAx
IEBACiAyMDE0LTEwLTA5ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KIAorICAgICAgICBNZWRpYVBsYXllciBzaG91bGQgdXNlIGEgcmVmZXJlbmNlIGZvciB0aGUg
TWVkaWFQbGF5ZXJDbGllbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzNzU1MgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisg
ICAgICAgIFRoZSBNZWRpYVBsYXllciBjbGllbnQgaXMgc2V0IG9uIGNvbnN0cnVjdG9yIGJ5IEhU
TUxNZWRpYUVsZW1lbnQKKyAgICAgICAgYW5kIGNsZWFyZWQgb24gSFRNTE1lZGlhRWxlbWVudCBk
ZXN0cnVjdG9yIHRoYXQgYWxzbyBmcmVlcyB0aGUKKyAgICAgICAgTWVkaWFQbGF5ZXIgb2JqZWN0
LiBTaW5jZSB0aGUgY2xpZW50IHdpbGwgbmV2ZXIgYmUgbnVsbCB3aGlsZSB0aGUKKyAgICAgICAg
TWVkaWFQbGF5ZXIgcGxheWVyIGlzIGFsaXZlLCB3ZSBjYW4gdXNlIGEgcmVmZXJlbmNlIGFuZCBy
ZW1vdmUgYWxsCisgICAgICAgIHRoZSB1bm5lZWRlZCBudWxsIGNoZWNrcy4gVGhlIG1lbWJlciBo
YXMgYWxzbyBiZWVuIHJlbmFtZWQgdG8gbV9jbGllbnQuCisKKyAgICAgICAgKiBodG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6fkhU
TUxNZWRpYUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpNZWRpYVBsYXllcik6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllcjo6fk1lZGlhUGxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyOjpsb2FkV2l0aE5leHRNZWRpYUVuZ2luZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllcjo6aW5NZWRpYURvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyOjpjdXJyZW50UGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzQ2hhbmdlZCk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllcjo6bmV0d29ya1N0YXRlQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllcjo6cmVhZHlTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXI6OnZvbHVtZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXI6Om11dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjp0aW1l
Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6c2l6ZUNoYW5nZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnJlcGFpbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXI6OmR1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllcjo6cmF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnBs
YXliYWNrU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpmaXJz
dFZpZGVvRnJhbWVBdmFpbGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmNo
YXJhY3RlcmlzdGljQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6a2V5
QWRkZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmtleUVycm9yKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjprZXlNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyOjprZXlOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6
OnJlZmVycmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjp1c2VyQWdlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmdyYXBoaWNzRGV2aWNlQWRhcHRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6Y2FjaGVkUmVzb3VyY2VMb2FkZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmFkZEF1ZGlvVHJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXI6OnJlbW92ZUF1ZGlvVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXI6OmFkZFRleHRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
cjo6cmVtb3ZlVGV4dFRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjphZGRW
aWRlb1RyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpyZW1vdmVWaWRlb1Ry
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpvdXRPZkJhbmRUcmFja1NvdXJj
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNob3VsZFdhaXRGb3JSZXNwb25z
ZVRvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXI6OmhhbmRsZVBsYXliYWNrQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
cjo6c291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyOjpkb2VzSGF2ZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
cjo6bWVkaWFQbGF5ZXJOZXR3b3JrSW50ZXJmYWNlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllcjo6Z2V0UmF3Q29va2llcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
cjo6c2V0V2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmF1ZGlvU291cmNlUHJvdmlkZXIpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmVuZ2luZURlc2NyaXB0aW9uKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpub3RpZnlUcmFja01vZGVDaGFuZ2VkKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjp0b3RhbEZyYW1lRGVsYXkp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJGYWN0b3J5U3VwcG9ydDo6
Y2FsbFJlZ2lzdGVyTWVkaWFFbmdpbmUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpwbGF0Zm9ybVZvbHVtZUNvbmZp
Z3VyYXRpb25SZXF1aXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6Y2xpZW50
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjptZWRpYVBsYXllckNsaWVudCk6IERl
bGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb246OnByZWZlcnJlZFJlbmRlcmluZ01vZGUpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXRVcFZpZGVvUmVuZGVy
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6
cHJlcGFyZUZvclJlbmRlcmluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZVZp
ZGVvTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6Y3JlYXRlQVZQbGF5ZXJMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllcik6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjphY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmFk
ZERpc3BsYXlMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OnJlbW92ZURpc3BsYXlMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmFkZEF1ZGlvUmVuZGVyZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpy
ZW1vdmVBdWRpb1JlbmRlcmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0QXVkaW9TdHJlYW1Qcm9wZXJ0aWVzKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5UGxheWVy
T2ZWaWRlbyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
Om5vdGlmeVBsYXllck9mVmlkZW9DYXBzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5UGxheWVyT2ZBdWRpbyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmRpZEVuZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6dHJp
Z2dlclJlcGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJL
aXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAod2ViS2l0V2ViU3JjU3RhcnQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5t
bToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpwcmVmZXJyZWRS
ZW5kZXJpbmdNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
OjpzZXRVcFZpZGVvUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0OjpwcmVwYXJlRm9yUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZVFUS2l0OjpzYXdVbnN1cHBvcnRlZFRyYWNrcyk6CisKKzIwMTQtMTAtMDkg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCiAgICAgICAgIExh
eWVyaW5nIHZpb2xhdGlvbjogTWVkaWFQbGF5ZXIgc2hvdWxkIG5vdCByZWZlcmVuY2UvdXNlIEZy
YW1lVmlldwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE1NjIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggODA4
ZGY1OC4uZmJhMTkyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CkBAIC00MTksOCArNDE5LDYgQEAgSFRNTE1lZGlhRWxlbWVudDo6fkhUTUxNZWRpYUVsZW1lbnQo
KQogI2VuZGlmCiAKICAgICBtX2NvbXBsZXRlbHlMb2FkZWQgPSB0cnVlOwotICAgIGlmIChtX3Bs
YXllcikKLSAgICAgICAgbV9wbGF5ZXItPmNsZWFyTWVkaWFQbGF5ZXJDbGllbnQoKTsKIH0KIAog
dm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZWdpc3RlcldpdGhEb2N1bWVudChEb2N1bWVudCYgZG9j
dW1lbnQpCkBAIC01MzIzLDcgKzUzMjEsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNyZWF0
ZU1lZGlhUGxheWVyKCkKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgZm9yZ2V0UmVzb3Vy
Y2VTcGVjaWZpY1RyYWNrcygpOwogI2VuZGlmCi0gICAgbV9wbGF5ZXIgPSBNZWRpYVBsYXllcjo6
Y3JlYXRlKHRoaXMpOworICAgIG1fcGxheWVyID0gTWVkaWFQbGF5ZXI6OmNyZWF0ZSgqdGhpcyk7
CiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogICAgIGlmIChtX2F1ZGlvU291cmNlTm9kZSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmlu
ZGV4IDZhOTM3OWYuLjhhZDc5ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTMwNSw4ICszMDUsOCBAQCBzdGF0aWMgTWVkaWFQ
bGF5ZXJGYWN0b3J5KiBuZXh0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50
KQogCiAvLyBtZWRpYSBwbGF5ZXIKIAotTWVkaWFQbGF5ZXI6Ok1lZGlhUGxheWVyKE1lZGlhUGxh
eWVyQ2xpZW50KiBjbGllbnQpCi0gICAgOiBtX21lZGlhUGxheWVyQ2xpZW50KGNsaWVudCkKK01l
ZGlhUGxheWVyOjpNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCYgY2xpZW50KQorICAgIDog
bV9jbGllbnQoY2xpZW50KQogICAgICwgbV9yZWxvYWRUaW1lcih0aGlzLCAmTWVkaWFQbGF5ZXI6
OnJlbG9hZFRpbWVyRmlyZWQpCiAgICAgLCBtX3ByaXZhdGUoY3JlYXRlTnVsbE1lZGlhUGxheWVy
KHRoaXMpKQogICAgICwgbV9jdXJyZW50TWVkaWFFbmdpbmUoMCkKQEAgLTMyNCw3ICszMjQsNiBA
QCBNZWRpYVBsYXllcjo6TWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQqIGNsaWVudCkKIAog
TWVkaWFQbGF5ZXI6On5NZWRpYVBsYXllcigpCiB7Ci0gICAgbV9tZWRpYVBsYXllckNsaWVudCA9
IDA7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXI6OmxvYWQoY29uc3QgVVJMJiB1cmwsIGNvbnN0IENv
bnRlbnRUeXBlJiBjb250ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCkBAIC00MTEs
OCArNDEwLDcgQEAgdm9pZCBNZWRpYVBsYXllcjo6bG9hZFdpdGhOZXh0TWVkaWFFbmdpbmUoTWVk
aWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50KQogICAgIH0gZWxzZSBpZiAobV9jdXJyZW50TWVkaWFF
bmdpbmUgIT0gZW5naW5lKSB7CiAgICAgICAgIG1fY3VycmVudE1lZGlhRW5naW5lID0gZW5naW5l
OwogICAgICAgICBtX3ByaXZhdGUgPSBlbmdpbmUtPmNvbnN0cnVjdG9yKHRoaXMpOwotICAgICAg
ICBpZiAobV9tZWRpYVBsYXllckNsaWVudCkKLSAgICAgICAgICAgIG1fbWVkaWFQbGF5ZXJDbGll
bnQtPm1lZGlhUGxheWVyRW5naW5lVXBkYXRlZCh0aGlzKTsKKyAgICAgICAgbV9jbGllbnQubWVk
aWFQbGF5ZXJFbmdpbmVVcGRhdGVkKHRoaXMpOwogICAgICAgICBtX3ByaXZhdGUtPnNldFByaXZh
dGVCcm93c2luZ01vZGUobV9wcml2YXRlQnJvd3NpbmcpOwogICAgICAgICBtX3ByaXZhdGUtPnNl
dFByZWxvYWQobV9wcmVsb2FkKTsKICAgICAgICAgbV9wcml2YXRlLT5zZXRQcmVzZXJ2ZXNQaXRj
aChwcmVzZXJ2ZXNQaXRjaCgpKTsKQEAgLTQyOSwxMCArNDI3LDggQEAgdm9pZCBNZWRpYVBsYXll
cjo6bG9hZFdpdGhOZXh0TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5KiBjdXJyZW50KQog
ICAgICAgICBtX3ByaXZhdGUtPmxvYWQobV91cmwuc3RyaW5nKCkpOwogICAgIH0gZWxzZSB7CiAg
ICAgICAgIG1fcHJpdmF0ZSA9IGNyZWF0ZU51bGxNZWRpYVBsYXllcih0aGlzKTsKLSAgICAgICAg
aWYgKG1fbWVkaWFQbGF5ZXJDbGllbnQpIHsKLSAgICAgICAgICAgIG1fbWVkaWFQbGF5ZXJDbGll
bnQtPm1lZGlhUGxheWVyRW5naW5lVXBkYXRlZCh0aGlzKTsKLSAgICAgICAgICAgIG1fbWVkaWFQ
bGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyUmVzb3VyY2VOb3RTdXBwb3J0ZWQodGhpcyk7Ci0gICAg
ICAgIH0KKyAgICAgICAgbV9jbGllbnQubWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKHRoaXMpOwor
ICAgICAgICBtX2NsaWVudC5tZWRpYVBsYXllclJlc291cmNlTm90U3VwcG9ydGVkKHRoaXMpOwog
ICAgIH0KIH0KIApAQCAtNTg4LDcgKzU4NCw3IEBAIGJvb2wgTWVkaWFQbGF5ZXI6Omhhc0F1ZGlv
KCkgY29uc3QKIAogYm9vbCBNZWRpYVBsYXllcjo6aW5NZWRpYURvY3VtZW50KCkgY29uc3QKIHsK
LSAgICByZXR1cm4gbV92aXNpYmxlICYmIG1fbWVkaWFQbGF5ZXJDbGllbnQgJiYgbV9tZWRpYVBs
YXllckNsaWVudC0+bWVkaWFQbGF5ZXJJc0luTWVkaWFEb2N1bWVudCgpOworICAgIHJldHVybiBt
X3Zpc2libGUgJiYgbV9jbGllbnQubWVkaWFQbGF5ZXJJc0luTWVkaWFEb2N1bWVudCgpOwogfQog
CiBQbGF0Zm9ybU1lZGlhIE1lZGlhUGxheWVyOjpwbGF0Zm9ybU1lZGlhKCkgY29uc3QKQEAgLTg3
Myw4ICs4NjksNyBAQCB2b2lkIE1lZGlhUGxheWVyOjpzZXRXaXJlbGVzc1ZpZGVvUGxheWJhY2tE
aXNhYmxlZChib29sIGRpc2FibGVkKQogCiB2b2lkIE1lZGlhUGxheWVyOjpjdXJyZW50UGxheWJh
Y2tUYXJnZXRJc1dpcmVsZXNzQ2hhbmdlZCgpCiB7Ci0gICAgaWYgKG1fbWVkaWFQbGF5ZXJDbGll
bnQpCi0gICAgICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyQ3VycmVudFBsYXli
YWNrVGFyZ2V0SXNXaXJlbGVzc0NoYW5nZWQodGhpcyk7CisgICAgbV9jbGllbnQubWVkaWFQbGF5
ZXJDdXJyZW50UGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzQ2hhbmdlZCh0aGlzKTsKIH0KICNlbmRp
ZgogCkBAIC0xMDI3LDE0ICsxMDIyLDEyIEBAIHZvaWQgTWVkaWFQbGF5ZXI6Om5ldHdvcmtTdGF0
ZUNoYW5nZWQoKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQotICAgIGlm
IChtX21lZGlhUGxheWVyQ2xpZW50KQotICAgICAgICBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRp
YVBsYXllck5ldHdvcmtTdGF0ZUNoYW5nZWQodGhpcyk7CisgICAgbV9jbGllbnQubWVkaWFQbGF5
ZXJOZXR3b3JrU3RhdGVDaGFuZ2VkKHRoaXMpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyOjpyZWFk
eVN0YXRlQ2hhbmdlZCgpCiB7Ci0gICAgaWYgKG1fbWVkaWFQbGF5ZXJDbGllbnQpCi0gICAgICAg
IG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyUmVhZHlTdGF0ZUNoYW5nZWQodGhpcyk7
CisgICAgbV9jbGllbnQubWVkaWFQbGF5ZXJSZWFkeVN0YXRlQ2hhbmdlZCh0aGlzKTsKIH0KIAog
dm9pZCBNZWRpYVBsYXllcjo6dm9sdW1lQ2hhbmdlZChkb3VibGUgbmV3Vm9sdW1lKQpAQCAtMTA0
NSw2MyArMTAzOCw1MyBAQCB2b2lkIE1lZGlhUGxheWVyOjp2b2x1bWVDaGFuZ2VkKGRvdWJsZSBu
ZXdWb2x1bWUpCiAjZWxzZQogICAgIG1fdm9sdW1lID0gbmV3Vm9sdW1lOwogI2VuZGlmCi0gICAg
aWYgKG1fbWVkaWFQbGF5ZXJDbGllbnQpCi0gICAgICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1l
ZGlhUGxheWVyVm9sdW1lQ2hhbmdlZCh0aGlzKTsKKyAgICBtX2NsaWVudC5tZWRpYVBsYXllclZv
bHVtZUNoYW5nZWQodGhpcyk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXI6Om11dGVDaGFuZ2VkKGJv
b2wgbmV3TXV0ZWQpCiB7CiAgICAgbV9tdXRlZCA9IG5ld011dGVkOwotICAgIGlmIChtX21lZGlh
UGxheWVyQ2xpZW50KQotICAgICAgICBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllck11
dGVDaGFuZ2VkKHRoaXMpOworICAgIG1fY2xpZW50Lm1lZGlhUGxheWVyTXV0ZUNoYW5nZWQodGhp
cyk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXI6OnRpbWVDaGFuZ2VkKCkKIHsKLSAgICBpZiAobV9t
ZWRpYVBsYXllckNsaWVudCkKLSAgICAgICAgbV9tZWRpYVBsYXllckNsaWVudC0+bWVkaWFQbGF5
ZXJUaW1lQ2hhbmdlZCh0aGlzKTsKKyAgICBtX2NsaWVudC5tZWRpYVBsYXllclRpbWVDaGFuZ2Vk
KHRoaXMpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyOjpzaXplQ2hhbmdlZCgpCiB7Ci0gICAgaWYg
KG1fbWVkaWFQbGF5ZXJDbGllbnQpCi0gICAgICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlh
UGxheWVyU2l6ZUNoYW5nZWQodGhpcyk7CisgICAgbV9jbGllbnQubWVkaWFQbGF5ZXJTaXplQ2hh
bmdlZCh0aGlzKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllcjo6cmVwYWludCgpCiB7Ci0gICAgaWYg
KG1fbWVkaWFQbGF5ZXJDbGllbnQpCi0gICAgICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlh
UGxheWVyUmVwYWludCh0aGlzKTsKKyAgICBtX2NsaWVudC5tZWRpYVBsYXllclJlcGFpbnQodGhp
cyk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXI6OmR1cmF0aW9uQ2hhbmdlZCgpCiB7Ci0gICAgaWYg
KG1fbWVkaWFQbGF5ZXJDbGllbnQpCi0gICAgICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlh
UGxheWVyRHVyYXRpb25DaGFuZ2VkKHRoaXMpOworICAgIG1fY2xpZW50Lm1lZGlhUGxheWVyRHVy
YXRpb25DaGFuZ2VkKHRoaXMpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyOjpyYXRlQ2hhbmdlZCgp
CiB7Ci0gICAgaWYgKG1fbWVkaWFQbGF5ZXJDbGllbnQpCi0gICAgICAgIG1fbWVkaWFQbGF5ZXJD
bGllbnQtPm1lZGlhUGxheWVyUmF0ZUNoYW5nZWQodGhpcyk7CisgICAgbV9jbGllbnQubWVkaWFQ
bGF5ZXJSYXRlQ2hhbmdlZCh0aGlzKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllcjo6cGxheWJhY2tT
dGF0ZUNoYW5nZWQoKQogewotICAgIGlmIChtX21lZGlhUGxheWVyQ2xpZW50KQotICAgICAgICBt
X21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllclBsYXliYWNrU3RhdGVDaGFuZ2VkKHRoaXMp
OworICAgIG1fY2xpZW50Lm1lZGlhUGxheWVyUGxheWJhY2tTdGF0ZUNoYW5nZWQodGhpcyk7CiB9
CiAKIHZvaWQgTWVkaWFQbGF5ZXI6OmZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpCiB7Ci0gICAg
aWYgKG1fbWVkaWFQbGF5ZXJDbGllbnQpCi0gICAgICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1l
ZGlhUGxheWVyRmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKHRoaXMpOworICAgIG1fY2xpZW50Lm1l
ZGlhUGxheWVyRmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKHRoaXMpOwogfQogCiB2b2lkIE1lZGlh
UGxheWVyOjpjaGFyYWN0ZXJpc3RpY0NoYW5nZWQoKQogewotICAgIGlmIChtX21lZGlhUGxheWVy
Q2xpZW50KQotICAgICAgICBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllckNoYXJhY3Rl
cmlzdGljQ2hhbmdlZCh0aGlzKTsKKyAgICBtX2NsaWVudC5tZWRpYVBsYXllckNoYXJhY3Rlcmlz
dGljQ2hhbmdlZCh0aGlzKTsKIH0KIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCkBAIC0xMTE0LDUz
ICsxMDk3LDQwIEBAIEF1ZGlvU291cmNlUHJvdmlkZXIqIE1lZGlhUGxheWVyOjphdWRpb1NvdXJj
ZVByb3ZpZGVyKCkKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogdm9pZCBNZWRpYVBsYXll
cjo6a2V5QWRkZWQoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgc2Vzc2lv
bklkKQogewotICAgIGlmIChtX21lZGlhUGxheWVyQ2xpZW50KQotICAgICAgICBtX21lZGlhUGxh
eWVyQ2xpZW50LT5tZWRpYVBsYXllcktleUFkZGVkKHRoaXMsIGtleVN5c3RlbSwgc2Vzc2lvbklk
KTsKKyAgICBtX2NsaWVudC5tZWRpYVBsYXllcktleUFkZGVkKHRoaXMsIGtleVN5c3RlbSwgc2Vz
c2lvbklkKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllcjo6a2V5RXJyb3IoY29uc3QgU3RyaW5nJiBr
ZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBNZWRpYVBsYXllckNsaWVudDo6TWVk
aWFLZXlFcnJvckNvZGUgZXJyb3JDb2RlLCB1bnNpZ25lZCBzaG9ydCBzeXN0ZW1Db2RlKQogewot
ICAgIGlmIChtX21lZGlhUGxheWVyQ2xpZW50KQotICAgICAgICBtX21lZGlhUGxheWVyQ2xpZW50
LT5tZWRpYVBsYXllcktleUVycm9yKHRoaXMsIGtleVN5c3RlbSwgc2Vzc2lvbklkLCBlcnJvckNv
ZGUsIHN5c3RlbUNvZGUpOworICAgIG1fY2xpZW50Lm1lZGlhUGxheWVyS2V5RXJyb3IodGhpcywg
a2V5U3lzdGVtLCBzZXNzaW9uSWQsIGVycm9yQ29kZSwgc3lzdGVtQ29kZSk7CiB9CiAKIHZvaWQg
TWVkaWFQbGF5ZXI6OmtleU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0
cmluZyYgc2Vzc2lvbklkLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBtZXNzYWdlLCB1bnNpZ25lZCBt
ZXNzYWdlTGVuZ3RoLCBjb25zdCBVUkwmIGRlZmF1bHRVUkwpCiB7Ci0gICAgaWYgKG1fbWVkaWFQ
bGF5ZXJDbGllbnQpCi0gICAgICAgIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyS2V5
TWVzc2FnZSh0aGlzLCBrZXlTeXN0ZW0sIHNlc3Npb25JZCwgbWVzc2FnZSwgbWVzc2FnZUxlbmd0
aCwgZGVmYXVsdFVSTCk7CisgICAgbV9jbGllbnQubWVkaWFQbGF5ZXJLZXlNZXNzYWdlKHRoaXMs
IGtleVN5c3RlbSwgc2Vzc2lvbklkLCBtZXNzYWdlLCBtZXNzYWdlTGVuZ3RoLCBkZWZhdWx0VVJM
KTsKIH0KIAogYm9vbCBNZWRpYVBsYXllcjo6a2V5TmVlZGVkKGNvbnN0IFN0cmluZyYga2V5U3lz
dGVtLCBjb25zdCBTdHJpbmcmIHNlc3Npb25JZCwgY29uc3QgdW5zaWduZWQgY2hhciogaW5pdERh
dGEsIHVuc2lnbmVkIGluaXREYXRhTGVuZ3RoKQogewotICAgIGlmIChtX21lZGlhUGxheWVyQ2xp
ZW50KQotICAgICAgICByZXR1cm4gbV9tZWRpYVBsYXllckNsaWVudC0+bWVkaWFQbGF5ZXJLZXlO
ZWVkZWQodGhpcywga2V5U3lzdGVtLCBzZXNzaW9uSWQsIGluaXREYXRhLCBpbml0RGF0YUxlbmd0
aCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX2NsaWVudC5tZWRpYVBsYXllcktl
eU5lZWRlZCh0aGlzLCBrZXlTeXN0ZW0sIHNlc3Npb25JZCwgaW5pdERhdGEsIGluaXREYXRhTGVu
Z3RoKTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQV9WMikKIGJvb2wg
TWVkaWFQbGF5ZXI6OmtleU5lZWRlZChVaW50OEFycmF5KiBpbml0RGF0YSkKIHsKLSAgICBpZiAo
bV9tZWRpYVBsYXllckNsaWVudCkKLSAgICAgICAgcmV0dXJuIG1fbWVkaWFQbGF5ZXJDbGllbnQt
Pm1lZGlhUGxheWVyS2V5TmVlZGVkKHRoaXMsIGluaXREYXRhKTsKLSAgICByZXR1cm4gZmFsc2U7
CisgICAgcmV0dXJuIG1fY2xpZW50Lm1lZGlhUGxheWVyS2V5TmVlZGVkKHRoaXMsIGluaXREYXRh
KTsKIH0KICNlbmRpZgogCiBTdHJpbmcgTWVkaWFQbGF5ZXI6OnJlZmVycmVyKCkgY29uc3QKIHsK
LSAgICBpZiAoIW1fbWVkaWFQbGF5ZXJDbGllbnQpCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsK
LQotICAgIHJldHVybiBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllclJlZmVycmVyKCk7
CisgICAgcmV0dXJuIG1fY2xpZW50Lm1lZGlhUGxheWVyUmVmZXJyZXIoKTsKIH0KIAogU3RyaW5n
IE1lZGlhUGxheWVyOjp1c2VyQWdlbnQoKSBjb25zdAogewotICAgIGlmICghbV9tZWRpYVBsYXll
ckNsaWVudCkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwotICAgIAotICAgIHJldHVybiBtX21l
ZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllclVzZXJBZ2VudCgpOworICAgIHJldHVybiBtX2Ns
aWVudC5tZWRpYVBsYXllclVzZXJBZ2VudCgpOwogfQogCiBTdHJpbmcgTWVkaWFQbGF5ZXI6OmVu
Z2luZURlc2NyaXB0aW9uKCkgY29uc3QKQEAgLTExNzQsNjggKzExNDQsNDQgQEAgU3RyaW5nIE1l
ZGlhUGxheWVyOjplbmdpbmVEZXNjcmlwdGlvbigpIGNvbnN0CiAjaWYgUExBVEZPUk0oV0lOKSAm
JiBVU0UoQVZGT1VOREFUSU9OKQogR3JhcGhpY3NEZXZpY2VBZGFwdGVyKiBNZWRpYVBsYXllcjo6
Z3JhcGhpY3NEZXZpY2VBZGFwdGVyKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fbWVkaWFQbGF5ZXJD
bGllbnQpCi0gICAgICAgIHJldHVybiAwOwotICAgIAotICAgIHJldHVybiBtX21lZGlhUGxheWVy
Q2xpZW50LT5tZWRpYVBsYXllckdyYXBoaWNzRGV2aWNlQWRhcHRlcih0aGlzKTsKKyAgICByZXR1
cm4gbV9jbGllbnQubWVkaWFQbGF5ZXJHcmFwaGljc0RldmljZUFkYXB0ZXIodGhpcyk7CiB9CiAj
ZW5kaWYKIAogQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIE1lZGlhUGxheWVyOjpjYWNoZWRSZXNvdXJj
ZUxvYWRlcigpCiB7Ci0gICAgaWYgKCFtX21lZGlhUGxheWVyQ2xpZW50KQotICAgICAgICByZXR1
cm4gMDsKLQotICAgIHJldHVybiBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllckNhY2hl
ZFJlc291cmNlTG9hZGVyKCk7CisgICAgcmV0dXJuIG1fY2xpZW50Lm1lZGlhUGxheWVyQ2FjaGVk
UmVzb3VyY2VMb2FkZXIoKTsKIH0KIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIHZvaWQgTWVk
aWFQbGF5ZXI6OmFkZEF1ZGlvVHJhY2soUGFzc1JlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZT4gdHJh
Y2spCiB7Ci0gICAgaWYgKCFtX21lZGlhUGxheWVyQ2xpZW50KQotICAgICAgICByZXR1cm47Ci0K
LSAgICBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllckRpZEFkZEF1ZGlvVHJhY2sodHJh
Y2spOworICAgIG1fY2xpZW50Lm1lZGlhUGxheWVyRGlkQWRkQXVkaW9UcmFjayh0cmFjayk7CiB9
CiAKIHZvaWQgTWVkaWFQbGF5ZXI6OnJlbW92ZUF1ZGlvVHJhY2soUGFzc1JlZlB0cjxBdWRpb1Ry
YWNrUHJpdmF0ZT4gdHJhY2spCiB7Ci0gICAgaWYgKCFtX21lZGlhUGxheWVyQ2xpZW50KQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllckRpZFJl
bW92ZUF1ZGlvVHJhY2sodHJhY2spOworICAgIG1fY2xpZW50Lm1lZGlhUGxheWVyRGlkUmVtb3Zl
QXVkaW9UcmFjayh0cmFjayk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXI6OmFkZFRleHRUcmFjayhQ
YXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+IHRyYWNrKQogewotICAgIGlmICghbV9t
ZWRpYVBsYXllckNsaWVudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9tZWRpYVBsYXllckNs
aWVudC0+bWVkaWFQbGF5ZXJEaWRBZGRUZXh0VHJhY2sodHJhY2spOworICAgIG1fY2xpZW50Lm1l
ZGlhUGxheWVyRGlkQWRkVGV4dFRyYWNrKHRyYWNrKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllcjo6
cmVtb3ZlVGV4dFRyYWNrKFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gdHJhY2sp
CiB7Ci0gICAgaWYgKCFtX21lZGlhUGxheWVyQ2xpZW50KQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllckRpZFJlbW92ZVRleHRUcmFjayh0cmFj
ayk7CisgICAgbV9jbGllbnQubWVkaWFQbGF5ZXJEaWRSZW1vdmVUZXh0VHJhY2sodHJhY2spOwog
fQogCiB2b2lkIE1lZGlhUGxheWVyOjphZGRWaWRlb1RyYWNrKFBhc3NSZWZQdHI8VmlkZW9UcmFj
a1ByaXZhdGU+IHRyYWNrKQogewotICAgIGlmICghbV9tZWRpYVBsYXllckNsaWVudCkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgbV9tZWRpYVBsYXllckNsaWVudC0+bWVkaWFQbGF5ZXJEaWRBZGRW
aWRlb1RyYWNrKHRyYWNrKTsKKyAgICBtX2NsaWVudC5tZWRpYVBsYXllckRpZEFkZFZpZGVvVHJh
Y2sodHJhY2spOwogfQogCiB2b2lkIE1lZGlhUGxheWVyOjpyZW1vdmVWaWRlb1RyYWNrKFBhc3NS
ZWZQdHI8VmlkZW9UcmFja1ByaXZhdGU+IHRyYWNrKQogewotICAgIGlmICghbV9tZWRpYVBsYXll
ckNsaWVudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9tZWRpYVBsYXllckNsaWVudC0+bWVk
aWFQbGF5ZXJEaWRSZW1vdmVWaWRlb1RyYWNrKHRyYWNrKTsKKyAgICBtX2NsaWVudC5tZWRpYVBs
YXllckRpZFJlbW92ZVZpZGVvVHJhY2sodHJhY2spOwogfQogCiBib29sIE1lZGlhUGxheWVyOjpy
ZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uKCkgY29uc3QKQEAgLTEyNjIsMTAgKzEyMDgs
NyBAQCB2b2lkIE1lZGlhUGxheWVyOjpub3RpZnlUcmFja01vZGVDaGFuZ2VkKCkKIAogVmVjdG9y
PFJlZlB0cjxQbGF0Zm9ybVRleHRUcmFjaz4+IE1lZGlhUGxheWVyOjpvdXRPZkJhbmRUcmFja1Nv
dXJjZXMoKQogewotICAgIGlmICghbV9tZWRpYVBsYXllckNsaWVudCkKLSAgICAgICAgcmV0dXJu
IFZlY3RvcjxSZWZQdHI8UGxhdGZvcm1UZXh0VHJhY2s+PiAoKTsKLSAgICAKLSAgICByZXR1cm4g
bV9tZWRpYVBsYXllckNsaWVudC0+b3V0T2ZCYW5kVHJhY2tTb3VyY2VzKCk7CisgICAgcmV0dXJu
IG1fY2xpZW50Lm91dE9mQmFuZFRyYWNrU291cmNlcygpOwogfQogI2VuZGlmCiAKQEAgLTEzNTgs
MjYgKzEzMDEsMTcgQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyOjp0b3RhbEZyYW1lRGVsYXkoKQog
CiBib29sIE1lZGlhUGxheWVyOjpzaG91bGRXYWl0Rm9yUmVzcG9uc2VUb0F1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpCiB7Ci0g
ICAgaWYgKCFtX21lZGlhUGxheWVyQ2xpZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAg
ICByZXR1cm4gbV9tZWRpYVBsYXllckNsaWVudC0+bWVkaWFQbGF5ZXJTaG91bGRXYWl0Rm9yUmVz
cG9uc2VUb0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNoYWxsZW5nZSk7CisgICAgcmV0dXJuIG1f
Y2xpZW50Lm1lZGlhUGxheWVyU2hvdWxkV2FpdEZvclJlc3BvbnNlVG9BdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShjaGFsbGVuZ2UpOwogfQotICAgIAorCiB2b2lkIE1lZGlhUGxheWVyOjpoYW5kbGVQ
bGF5YmFja0NvbW1hbmQoTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGUgY29t
bWFuZCkKIHsKLSAgICBpZiAoIW1fbWVkaWFQbGF5ZXJDbGllbnQpCi0gICAgICAgIHJldHVybjsK
LSAgICAKLSAgICBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllckhhbmRsZVBsYXliYWNr
Q29tbWFuZChjb21tYW5kKTsKKyAgICBtX2NsaWVudC5tZWRpYVBsYXllckhhbmRsZVBsYXliYWNr
Q29tbWFuZChjb21tYW5kKTsKIH0KIAogU3RyaW5nIE1lZGlhUGxheWVyOjpzb3VyY2VBcHBsaWNh
dGlvbklkZW50aWZpZXIoKSBjb25zdAogewotICAgIGlmICghbV9tZWRpYVBsYXllckNsaWVudCkK
LSAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Ci0KLSAgICByZXR1cm4gbV9tZWRpYVBsYXll
ckNsaWVudC0+bWVkaWFQbGF5ZXJTb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIoKTsKKyAgICBy
ZXR1cm4gbV9jbGllbnQubWVkaWFQbGF5ZXJTb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIoKTsK
IH0KIAogdm9pZCBNZWRpYVBsYXllckZhY3RvcnlTdXBwb3J0OjpjYWxsUmVnaXN0ZXJNZWRpYUVu
Z2luZShNZWRpYUVuZ2luZVJlZ2lzdGVyIHJlZ2lzdGVyTWVkaWFFbmdpbmUpCkBAIC0xMzg3LDI3
ICsxMzIxLDE4IEBAIHZvaWQgTWVkaWFQbGF5ZXJGYWN0b3J5U3VwcG9ydDo6Y2FsbFJlZ2lzdGVy
TWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RlciByZWdpCiAKIGJvb2wgTWVkaWFQbGF5ZXI6
OmRvZXNIYXZlQXR0cmlidXRlKGNvbnN0IEF0b21pY1N0cmluZyYgYXR0cmlidXRlLCBBdG9taWNT
dHJpbmcqIHZhbHVlKSBjb25zdAogewotICAgIGlmICghbV9tZWRpYVBsYXllckNsaWVudCkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIHJldHVybiBtX21lZGlhUGxheWVyQ2xpZW50
LT5kb2VzSGF2ZUF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsKKyAgICByZXR1cm4gbV9jbGll
bnQuZG9lc0hhdmVBdHRyaWJ1dGUoYXR0cmlidXRlLCB2YWx1ZSk7CiB9CiAKICNpZiBQTEFURk9S
TShJT1MpCiBTdHJpbmcgTWVkaWFQbGF5ZXI6Om1lZGlhUGxheWVyTmV0d29ya0ludGVyZmFjZU5h
bWUoKSBjb25zdAogewotICAgIGlmICghbV9tZWRpYVBsYXllckNsaWVudCkKLSAgICAgICAgcmV0
dXJuIGVtcHR5U3RyaW5nKCk7Ci0KLSAgICByZXR1cm4gbV9tZWRpYVBsYXllckNsaWVudC0+bWVk
aWFQbGF5ZXJOZXR3b3JrSW50ZXJmYWNlTmFtZSgpOworICAgIHJldHVybiBtX2NsaWVudC5tZWRp
YVBsYXllck5ldHdvcmtJbnRlcmZhY2VOYW1lKCk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXI6Omdl
dFJhd0Nvb2tpZXMoY29uc3QgVVJMJiB1cmwsIFZlY3RvcjxDb29raWU+JiBjb29raWVzKSBjb25z
dAogewotICAgIGlmICghbV9tZWRpYVBsYXllckNsaWVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotCi0gICAgcmV0dXJuIG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyR2V0UmF3Q29v
a2llcyh1cmwsIGNvb2tpZXMpOworICAgIHJldHVybiBtX2NsaWVudC5tZWRpYVBsYXllckdldFJh
d0Nvb2tpZXModXJsLCBjb29raWVzKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCBkY2MyM2JmLi43YzZhZGQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAg
LTI3OSw3ICsyNzksNyBAQCBjbGFzcyBNZWRpYVBsYXllciB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoTWVkaWFQbGF5ZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKIAot
ICAgIHN0YXRpYyBQYXNzT3duUHRyPE1lZGlhUGxheWVyPiBjcmVhdGUoTWVkaWFQbGF5ZXJDbGll
bnQqIGNsaWVudCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxNZWRpYVBsYXllcj4gY3JlYXRlKE1l
ZGlhUGxheWVyQ2xpZW50JiBjbGllbnQpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IE1lZGlhUGxheWVyKGNsaWVudCkpOwogICAgIH0KQEAgLTM4MCw3ICszODAsNyBAQCBwdWJs
aWM6CiAKICAgICBkb3VibGUgdm9sdW1lKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRWb2x1bWUoZG91
YmxlKTsKLSAgICBib29sIHBsYXRmb3JtVm9sdW1lQ29uZmlndXJhdGlvblJlcXVpcmVkKCkgY29u
c3QgeyByZXR1cm4gbV9tZWRpYVBsYXllckNsaWVudC0+bWVkaWFQbGF5ZXJQbGF0Zm9ybVZvbHVt
ZUNvbmZpZ3VyYXRpb25SZXF1aXJlZCgpOyB9CisgICAgYm9vbCBwbGF0Zm9ybVZvbHVtZUNvbmZp
Z3VyYXRpb25SZXF1aXJlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50Lm1lZGlhUGxheWVyUGxh
dGZvcm1Wb2x1bWVDb25maWd1cmF0aW9uUmVxdWlyZWQoKTsgfQogCiAgICAgYm9vbCBtdXRlZCgp
IGNvbnN0OwogICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCk7CkBAIC00MzgsOCArNDM4LDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCByZXBhaW50KCk7CiAKLSAgICBNZWRpYVBsYXllckNsaWVudCogbWVk
aWFQbGF5ZXJDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX21lZGlhUGxheWVyQ2xpZW50OyB9Ci0g
ICAgdm9pZCBjbGVhck1lZGlhUGxheWVyQ2xpZW50KCkgeyBtX21lZGlhUGxheWVyQ2xpZW50ID0g
MDsgfQorICAgIE1lZGlhUGxheWVyQ2xpZW50JiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2Ns
aWVudDsgfQogCiAgICAgYm9vbCBoYXNBdmFpbGFibGVWaWRlb0ZyYW1lKCkgY29uc3Q7CiAgICAg
dm9pZCBwcmVwYXJlRm9yUmVuZGVyaW5nKCk7CkBAIC01NzgsMTQgKzU3NywxNCBAQCBwdWJsaWM6
CiAgICAgU3RyaW5nIHNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcigpIGNvbnN0OwogCiBwcml2
YXRlOgotICAgIE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50Kik7CisgICAgTWVkaWFQbGF5
ZXIoTWVkaWFQbGF5ZXJDbGllbnQmKTsKICAgICBNZWRpYVBsYXllckZhY3RvcnkqIG5leHRCZXN0
TWVkaWFFbmdpbmUoTWVkaWFQbGF5ZXJGYWN0b3J5KikgY29uc3Q7CiAgICAgdm9pZCBsb2FkV2l0
aE5leHRNZWRpYUVuZ2luZShNZWRpYVBsYXllckZhY3RvcnkqKTsKICAgICB2b2lkIHJlbG9hZFRp
bWVyRmlyZWQoVGltZXI8TWVkaWFQbGF5ZXI+Jik7CiAKICAgICBzdGF0aWMgdm9pZCBpbml0aWFs
aXplTWVkaWFFbmdpbmVzKCk7CiAKLSAgICBNZWRpYVBsYXllckNsaWVudCogbV9tZWRpYVBsYXll
ckNsaWVudDsKKyAgICBNZWRpYVBsYXllckNsaWVudCYgbV9jbGllbnQ7CiAgICAgVGltZXI8TWVk
aWFQbGF5ZXI+IG1fcmVsb2FkVGltZXI7CiAgICAgT3duUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZT4gbV9wcml2YXRlOwogICAgIE1lZGlhUGxheWVyRmFjdG9yeSogbV9jdXJyZW50TWVk
aWFFbmdpbmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb24uY3BwCmluZGV4IGFlZDg4OGIuLjA3N2ExMjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCkBAIC0xMDUs
NyArMTA1LDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpNZWRpYVJlbmRlcmlu
Z01vZGUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW8KICAgICBpZiAoIW1fcGxheWVyLT52
aXNpYmxlKCkgfHwgYXNzZXRTdGF0dXMoKSA9PSBNZWRpYVBsYXllckFWQXNzZXRTdGF0dXNVbmtu
b3duKQogICAgICAgICByZXR1cm4gTWVkaWFSZW5kZXJpbmdOb25lOwogCi0gICAgaWYgKHN1cHBv
cnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSAmJiBtX3BsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQo
KS0+bWVkaWFQbGF5ZXJSZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKG1fcGxheWVyKSkKKyAgICBp
ZiAoc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpICYmIG1fcGxheWVyLT5jbGllbnQoKS5t
ZWRpYVBsYXllclJlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQobV9wbGF5ZXIpKQogICAgICAgICBy
ZXR1cm4gTWVkaWFSZW5kZXJpbmdUb0xheWVyOwogCiAgICAgcmV0dXJuIE1lZGlhUmVuZGVyaW5n
VG9Db250ZXh0OwpAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uOjpzZXRVcFZpZGVvUmVuZGVyaW5nKCkKICAgICAvLyBJZiB1c2luZyBhIG1vdmll
IGxheWVyLCBpbmZvcm0gdGhlIGNsaWVudCBzbyB0aGUgY29tcG9zaXRpbmcgdHJlZSBpcyB1cGRh
dGVkLgogICAgIGlmIChjdXJyZW50TW9kZSA9PSBNZWRpYVJlbmRlcmluZ1RvTGF5ZXIgfHwgcHJl
ZmVycmVkTW9kZSA9PSBNZWRpYVJlbmRlcmluZ1RvTGF5ZXIpIHsKICAgICAgICAgTE9HKE1lZGlh
LCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXRVcFZpZGVvUmVuZGVyaW5nKCVw
KSAtIGNhbGxpbmcgbWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZCgpIiwgdGhpcyk7Ci0g
ICAgICAgIG1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllclJlbmRlcmlu
Z01vZGVDaGFuZ2VkKG1fcGxheWVyKTsKKyAgICAgICAgbV9wbGF5ZXItPmNsaWVudCgpLm1lZGlh
UGxheWVyUmVuZGVyaW5nTW9kZUNoYW5nZWQobV9wbGF5ZXIpOwogICAgIH0KIH0KIApAQCAtNDU4
LDcgKzQ1OCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpwcmVwYXJl
Rm9yUmVuZGVyaW5nKCkKICAgICBzZXRVcFZpZGVvUmVuZGVyaW5nKCk7CiAKICAgICBpZiAoY3Vy
cmVudFJlbmRlcmluZ01vZGUoKSA9PSBNZWRpYVJlbmRlcmluZ1RvTGF5ZXIgfHwgcHJlZmVycmVk
UmVuZGVyaW5nTW9kZSgpID09IE1lZGlhUmVuZGVyaW5nVG9MYXllcikKLSAgICAgICAgbV9wbGF5
ZXItPm1lZGlhUGxheWVyQ2xpZW50KCktPm1lZGlhUGxheWVyUmVuZGVyaW5nTW9kZUNoYW5nZWQo
bV9wbGF5ZXIpOworICAgICAgICBtX3BsYXllci0+Y2xpZW50KCkubWVkaWFQbGF5ZXJSZW5kZXJp
bmdNb2RlQ2hhbmdlZChtX3BsYXllcik7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uOjpzdXBwb3J0c0Z1bGxzY3JlZW4oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0KaW5kZXggMWI4YTU3YS4uOThlYjhlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC01
ODIsNyArNTgyLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpj
cmVhdGVWaWRlb0xheWVyKCkKICAgICAgICAgaWYgKCFtX3ZpZGVvTGF5ZXIpCiAgICAgICAgICAg
ICBjcmVhdGVBVlBsYXllckxheWVyKCk7CiAKLSAgICAgICAgcGxheWVyKCktPm1lZGlhUGxheWVy
Q2xpZW50KCktPm1lZGlhUGxheWVyUmVuZGVyaW5nTW9kZUNoYW5nZWQocGxheWVyKCkpOworICAg
ICAgICBwbGF5ZXIoKS0+Y2xpZW50KCkubWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZChw
bGF5ZXIoKSk7CiAgICAgfSk7CiB9CiAKQEAgLTU5OSw3ICs1OTksNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyTGF5ZXIoKQogI2VuZGlm
CiAgICAgW21fdmlkZW9MYXllciBhZGRPYnNlcnZlcjptX29iamNPYnNlcnZlci5nZXQoKSBmb3JL
ZXlQYXRoOkAicmVhZHlGb3JEaXNwbGF5IiBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRp
b25OZXcgY29udGV4dDoodm9pZCAqKU1lZGlhUGxheWVyQVZGb3VuZGF0aW9uT2JzZXJ2YXRpb25D
b250ZXh0QVZQbGF5ZXJMYXllcl07CiAgICAgdXBkYXRlVmlkZW9MYXllckdyYXZpdHkoKTsKLSAg
ICBJbnRTaXplIGRlZmF1bHRTaXplID0gcGxheWVyKCktPm1lZGlhUGxheWVyQ2xpZW50KCkgPyBw
bGF5ZXIoKS0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJDb250ZW50Qm94UmVjdCgp
LnBpeGVsU25hcHBlZFNpemUoKSA6IEludFNpemUoKTsKKyAgICBJbnRTaXplIGRlZmF1bHRTaXpl
ID0gcGxheWVyKCktPmNsaWVudCgpLm1lZGlhUGxheWVyQ29udGVudEJveFJlY3QoKS5waXhlbFNu
YXBwZWRTaXplKCk7CiAgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6Y3JlYXRlVmlkZW9MYXllciglcCkgLSByZXR1cm5pbmcgJXAiLCB0aGlzLCBtX3Zp
ZGVvTGF5ZXIuZ2V0KCkpOwogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtODY1LDcgKzg2NSw3IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZQbGF5ZXIo
KQogICAgIFttX2F2UGxheWVyLmdldCgpIHNldEFsbG93c0V4dGVybmFsUGxheWJhY2s6bV9hbGxv
d3NXaXJlbGVzc1ZpZGVvUGxheWJhY2tdOwogI2VuZGlmCiAKLSAgICBpZiAocGxheWVyKCktPm1l
ZGlhUGxheWVyQ2xpZW50KCkgJiYgcGxheWVyKCktPm1lZGlhUGxheWVyQ2xpZW50KCktPm1lZGlh
UGxheWVySXNWaWRlbygpKQorICAgIGlmIChwbGF5ZXIoKS0+Y2xpZW50KCkubWVkaWFQbGF5ZXJJ
c1ZpZGVvKCkpCiAgICAgICAgIGNyZWF0ZUFWUGxheWVyTGF5ZXIoKTsKIAogICAgIGlmIChtX2F2
UGxheWVySXRlbSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCA0ZGY0NzJhLi40ZTVm
NDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC01MzcsNyArNTM3LDcgQEAgYm9v
bCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnN1cHBvcnRzQWNjZWxlcmF0
ZWRSZW5kZXJpbmcoKSBjb25zdAogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQzo6YWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKQogewotICAgIGlmICht
X3BsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJSZW5kZXJpbmdDYW5CZUFj
Y2VsZXJhdGVkKG1fcGxheWVyKSkKKyAgICBpZiAobV9wbGF5ZXItPmNsaWVudCgpLm1lZGlhUGxh
eWVyUmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZChtX3BsYXllcikpCiAgICAgICAgIGVuc3VyZUxh
eWVyKCk7CiAgICAgZWxzZQogICAgICAgICBkZXN0cm95TGF5ZXIoKTsKQEAgLTcyMCw3ICs3MjAs
NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6YWRkRGlzcGxh
eUxheWVyKEFWU2FtcGxlQnVmZmVyRGlzcGxheQogCiAgICAgbV9zYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIgPSBkaXNwbGF5TGF5ZXI7CiAgICAgW21fc3luY2hyb25pemVyIGFkZFJlbmRlcmVyOm1f
c2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmdldCgpXTsKLSAgICBtX3BsYXllci0+bWVkaWFQbGF5
ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZChtX3BsYXllcik7Cisg
ICAgbV9wbGF5ZXItPmNsaWVudCgpLm1lZGlhUGxheWVyUmVuZGVyaW5nTW9kZUNoYW5nZWQobV9w
bGF5ZXIpOwogCiAgICAgLy8gRklYTUU6IG1vdmUgdGhpcyBzb21ld2hlcmUgYXBwcm9wcmlhdGU6
CiAgICAgbV9wbGF5ZXItPmZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpOwpAQCAtNzM3LDcgKzcz
Nyw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpyZW1vdmVE
aXNwbGF5TGF5ZXIoQVZTYW1wbGVCdWZmZXJEaXNwCiAgICAgfV07CiAKICAgICBtX3NhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllciA9IG51bGxwdHI7Ci0gICAgbV9wbGF5ZXItPm1lZGlhUGxheWVyQ2xp
ZW50KCktPm1lZGlhUGxheWVyUmVuZGVyaW5nTW9kZUNoYW5nZWQobV9wbGF5ZXIpOworICAgIG1f
cGxheWVyLT5jbGllbnQoKS5tZWRpYVBsYXllclJlbmRlcmluZ01vZGVDaGFuZ2VkKG1fcGxheWVy
KTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmFkZEF1
ZGlvUmVuZGVyZXIoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyKiBhdWRpb1JlbmRlcmVyKQpA
QCAtNzUxLDcgKzc1MSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjphZGRBdWRpb1JlbmRlcmVyKEFWU2FtcGxlQnVmZmVyQXVkaW9SCiAgICAgW2F1ZGlvUmVu
ZGVyZXIgc2V0Vm9sdW1lOm1fcGxheWVyLT52b2x1bWUoKV07CiAKICAgICBbbV9zeW5jaHJvbml6
ZXIgYWRkUmVuZGVyZXI6YXVkaW9SZW5kZXJlcl07Ci0gICAgbV9wbGF5ZXItPm1lZGlhUGxheWVy
Q2xpZW50KCktPm1lZGlhUGxheWVyUmVuZGVyaW5nTW9kZUNoYW5nZWQobV9wbGF5ZXIpOworICAg
IG1fcGxheWVyLT5jbGllbnQoKS5tZWRpYVBsYXllclJlbmRlcmluZ01vZGVDaGFuZ2VkKG1fcGxh
eWVyKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnJl
bW92ZUF1ZGlvUmVuZGVyZXIoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyKiBhdWRpb1JlbmRl
cmVyKQpAQCAtNzY2LDcgKzc2Niw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDOjpyZW1vdmVBdWRpb1JlbmRlcmVyKEFWU2FtcGxlQnVmZmVyQXVkCiAgICAgfV07
CiAKICAgICBtX3NhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJzLnJlbW92ZShwb3MpOwotICAgIG1f
cGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllclJlbmRlcmluZ01vZGVDaGFu
Z2VkKG1fcGxheWVyKTsKKyAgICBtX3BsYXllci0+Y2xpZW50KCkubWVkaWFQbGF5ZXJSZW5kZXJp
bmdNb2RlQ2hhbmdlZChtX3BsYXllcik7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggMDJiNWE1OS4uOGFjOGZjYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTEzMCw4
ICsxMzAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0QXVkaW9TdHJl
YW1Qcm9wZXJ0aWVzKEdPYmplY3QqIG9iamVjdCkKICAgICBpZiAoZ19zdHJjbXAwKEdfT0JKRUNU
X1RZUEVfTkFNRShvYmplY3QpLCAiR3N0UHVsc2VTaW5rIikpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGNvbnN0IGNoYXIqIHJvbGUgPSBtX3BsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKSAmJiBt
X3BsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJJc1ZpZGVvKCkKLSAgICAg
ICAgPyAidmlkZW8iIDogIm11c2ljIjsKKyAgICBjb25zdCBjaGFyKiByb2xlID0gbV9wbGF5ZXIt
PmNsaWVudCgpLm1lZGlhUGxheWVySXNWaWRlbygpID8gInZpZGVvIiA6ICJtdXNpYyI7CiAgICAg
R3N0U3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBnc3Rfc3RydWN0dXJlX25ldygic3RyZWFtLXByb3Bl
cnRpZXMiLCAibWVkaWEucm9sZSIsIEdfVFlQRV9TVFJJTkcsIHJvbGUsIE5VTEwpOwogICAgIGdf
b2JqZWN0X3NldChvYmplY3QsICJzdHJlYW0tcHJvcGVydGllcyIsIHN0cnVjdHVyZSwgTlVMTCk7
CiAgICAgZ3N0X3N0cnVjdHVyZV9mcmVlKHN0cnVjdHVyZSk7CkBAIC02ODEsMTMgKzY4MCwxMyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5UGxheWVyT2ZWaWRlbygp
CiAgICAgfQogI2VuZGlmCiAKLSAgICBtX3BsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVk
aWFQbGF5ZXJFbmdpbmVVcGRhdGVkKG1fcGxheWVyKTsKKyAgICBtX3BsYXllci0+Y2xpZW50KCku
bWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKG1fcGxheWVyKTsKIH0KIAogdm9pZCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVBsYXllck9mVmlkZW9DYXBzKCkKIHsKICAgICBtX3Zp
ZGVvU2l6ZSA9IEludFNpemUoKTsKLSAgICBtX3BsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+
bWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKG1fcGxheWVyKTsKKyAgICBtX3BsYXllci0+Y2xpZW50
KCkubWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKG1fcGxheWVyKTsKIH0KIAogdm9pZCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OmF1ZGlvQ2hhbmdlZCgpCkBAIC03MjksNyArNzI4LDcgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVBsYXllck9mQXVkaW8oKQog
ICAgIH0KICNlbmRpZgogCi0gICAgbV9wbGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50KCktPm1lZGlh
UGxheWVyRW5naW5lVXBkYXRlZChtX3BsYXllcik7CisgICAgbV9wbGF5ZXItPmNsaWVudCgpLm1l
ZGlhUGxheWVyRW5naW5lVXBkYXRlZChtX3BsYXllcik7CiB9CiAKICNpZiBFTkFCTEUoVklERU9f
VFJBQ0spCkBAIC0xNjA5LDcgKzE2MDgsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6ZGlkRW5kKCkKICAgICBtX2lzRW5kUmVhY2hlZCA9IHRydWU7CiAgICAgdGltZUNoYW5n
ZWQoKTsKIAotICAgIGlmICghbV9wbGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50KCktPm1lZGlhUGxh
eWVySXNMb29waW5nKCkpIHsKKyAgICBpZiAoIW1fcGxheWVyLT5jbGllbnQoKS5tZWRpYVBsYXll
cklzTG9vcGluZygpKSB7CiAgICAgICAgIG1fcGF1c2VkID0gdHJ1ZTsKICAgICAgICAgY2hhbmdl
UGlwZWxpbmVTdGF0ZShHU1RfU1RBVEVfUkVBRFkpOwogICAgICAgICBtX2Rvd25sb2FkRmluaXNo
ZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJCYXNlLmNwcAppbmRleCA2Y2U5NDllLi4zOGQ0ZmVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCkBAIC0zMzAsNyArMzMw
LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp0cmlnZ2VyUmVwYWlu
dChHc3RCdWZmZXIqIGJ1ZmZlcikKICAgICB9CiAKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wp
ICYmICFVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCi0gICAgaWYgKHN1cHBvcnRzQWNjZWxlcmF0
ZWRSZW5kZXJpbmcoKSAmJiBtX3BsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5
ZXJSZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKG1fcGxheWVyKSAmJiBjbGllbnQoKSkgeworICAg
IGlmIChzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgJiYgbV9wbGF5ZXItPmNsaWVudCgp
Lm1lZGlhUGxheWVyUmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZChtX3BsYXllcikgJiYgY2xpZW50
KCkpIHsKICAgICAgICAgY2xpZW50KCktPnNldFBsYXRmb3JtTGF5ZXJOZWVkc0Rpc3BsYXkoKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdT
dHJlYW1lci5jcHAKaW5kZXggYzcxZDNjMy4uZDNmNTdhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dl
YktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTQ5NSw3ICs0OTUsNyBAQCBzdGF0aWMgdm9p
ZCB3ZWJLaXRXZWJTcmNTdGFydChXZWJLaXRXZWJTcmMqIHNyYykKIAogICAgIGlmIChwcml2LT5w
bGF5ZXIpIHsKICAgICAgICAgaWYgKENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkZXIgPSBwcml2
LT5wbGF5ZXItPmNhY2hlZFJlc291cmNlTG9hZGVyKCkpCi0gICAgICAgICAgICBwcml2LT5jbGll
bnQgPSBuZXcgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQoc3JjLCBsb2FkZXIsIHJlcXVl
c3QsIHByaXYtPnBsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJDT1JTTW9k
ZSgpKTsKKyAgICAgICAgICAgIHByaXYtPmNsaWVudCA9IG5ldyBDYWNoZWRSZXNvdXJjZVN0cmVh
bWluZ0NsaWVudChzcmMsIGxvYWRlciwgcmVxdWVzdCwgcHJpdi0+cGxheWVyLT5jbGllbnQoKS5t
ZWRpYVBsYXllckNPUlNNb2RlKCkpOwogICAgIH0KIAogICAgIGlmICghcHJpdi0+Y2xpZW50KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxh
eWVyUHJpdmF0ZVFUS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCmluZGV4IGMxZmZhNmMuLmFmNjU5ZTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclBy
aXZhdGVRVEtpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KQEAgLTQ2Miw3ICs0NjIsNyBAQCBNZWRpYVBsYXll
clByaXZhdGVRVEtpdDo6TWVkaWFSZW5kZXJpbmdNb2RlIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
OjpwcmVmZXJyZWRSZQogICAgIGlmICghbV9xdE1vdmllKQogICAgICAgICByZXR1cm4gTWVkaWFS
ZW5kZXJpbmdOb25lOwogCi0gICAgaWYgKHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSAm
JiBtX3BsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJSZW5kZXJpbmdDYW5C
ZUFjY2VsZXJhdGVkKG1fcGxheWVyKSkKKyAgICBpZiAoc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRl
cmluZygpICYmIG1fcGxheWVyLT5jbGllbnQoKS5tZWRpYVBsYXllclJlbmRlcmluZ0NhbkJlQWNj
ZWxlcmF0ZWQobV9wbGF5ZXIpKQogICAgICAgICByZXR1cm4gTWVkaWFSZW5kZXJpbmdNb3ZpZUxh
eWVyOwogCiAgICAgaWYgKCFRVFZpZGVvUmVuZGVyZXJDbGFzcygpKQpAQCAtNDk3LDcgKzQ5Nyw3
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnNldFVwVmlkZW9SZW5kZXJpbmcoKQog
CiAgICAgLy8gSWYgdXNpbmcgYSBtb3ZpZSBsYXllciwgaW5mb3JtIHRoZSBjbGllbnQgc28gdGhl
IGNvbXBvc2l0aW5nIHRyZWUgaXMgdXBkYXRlZC4KICAgICBpZiAoY3VycmVudE1vZGUgPT0gTWVk
aWFSZW5kZXJpbmdNb3ZpZUxheWVyIHx8IHByZWZlcnJlZE1vZGUgPT0gTWVkaWFSZW5kZXJpbmdN
b3ZpZUxheWVyKQotICAgICAgICBtX3BsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQ
bGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZChtX3BsYXllcik7CisgICAgICAgIG1fcGxheWVyLT5j
bGllbnQoKS5tZWRpYVBsYXllclJlbmRlcmluZ01vZGVDaGFuZ2VkKG1fcGxheWVyKTsKIH0KIAog
dm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6dGVhckRvd25WaWRlb1JlbmRlcmluZygpCkBA
IC05MzAsNyArOTMwLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6cHJlcGFyZUZv
clJlbmRlcmluZygpCiAgICAgLy8gSWYgdXNpbmcgYSBtb3ZpZSBsYXllciwgaW5mb3JtIHRoZSBj
bGllbnQgc28gdGhlIGNvbXBvc2l0aW5nIHRyZWUgaXMgdXBkYXRlZC4gVGhpcyBpcyBjcnVjaWFs
IGlmIHRoZSBtb3ZpZQogICAgIC8vIGhhcyBhIHBvc3RlciwgYXMgaXQgd2lsbCBtb3N0IGxpa2Vs
eSBub3QgaGF2ZSBhIGxheWVyIGFuZCB3ZSB3aWxsIG5vdyBiZSByZW5kZXJpbmcgZnJhbWVzIHRv
IHRoZSBtb3ZpZSBsYXllci4KICAgICBpZiAoY3VycmVudFJlbmRlcmluZ01vZGUoKSA9PSBNZWRp
YVJlbmRlcmluZ01vdmllTGF5ZXIgfHwgcHJlZmVycmVkUmVuZGVyaW5nTW9kZSgpID09IE1lZGlh
UmVuZGVyaW5nTW92aWVMYXllcikKLSAgICAgICAgbV9wbGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50
KCktPm1lZGlhUGxheWVyUmVuZGVyaW5nTW9kZUNoYW5nZWQobV9wbGF5ZXIpOworICAgICAgICBt
X3BsYXllci0+Y2xpZW50KCkubWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZChtX3BsYXll
cik7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnVwZGF0ZVN0YXRlcygpCkBA
IC0xNDQ1LDcgKzE0NDUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpkaXNhYmxl
VW5zdXBwb3J0ZWRUcmFja3MoKQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6c2F3VW5z
dXBwb3J0ZWRUcmFja3MoKQogewogICAgIG1faGFzVW5zdXBwb3J0ZWRUcmFja3MgPSB0cnVlOwot
ICAgIG1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllclNhd1Vuc3VwcG9y
dGVkVHJhY2tzKG1fcGxheWVyKTsKKyAgICBtX3BsYXllci0+Y2xpZW50KCkubWVkaWFQbGF5ZXJT
YXdVbnN1cHBvcnRlZFRyYWNrcyhtX3BsYXllcik7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2
YXRlUVRLaXQ6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>