<?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>163014</bug_id>
          
          <creation_ts>2016-10-06 08:05:21 -0700</creation_ts>
          <short_desc>CachedResource client handling methods should take reference</short_desc>
          <delta_ts>2016-10-06 09:56:32 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1237062</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-06 08:05:21 -0700</bug_when>
    <thetext>CachedResource client handling methods should take reference</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237063</commentid>
    <comment_count>1</comment_count>
      <attachid>290823</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-06 08:07:39 -0700</bug_when>
    <thetext>Created attachment 290823
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237086</commentid>
    <comment_count>2</comment_count>
      <attachid>290823</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-10-06 09:12:39 -0700</bug_when>
    <thetext>Comment on attachment 290823
Patch

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

&gt; Source/WebCore/rendering/style/StyleCachedImage.cpp:188
&gt; +    ASSERT(renderer);

We should go and make this a reference, too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237109</commentid>
    <comment_count>3</comment_count>
      <attachid>290823</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-06 09:56:29 -0700</bug_when>
    <thetext>Comment on attachment 290823
Patch

Clearing flags on attachment: 290823

Committed r206867: &lt;http://trac.webkit.org/changeset/206867&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237110</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-06 09:56:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290823</attachid>
            <date>2016-10-06 08:07:39 -0700</date>
            <delta_ts>2016-10-06 09:56:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163014-20161006170424.patch</filename>
            <type>text/plain</type>
            <size>67618</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2ODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ1MTk1NTUzNzIwMWUz
OWQ2MWI1NjZmMjhjM2U1NjA5MzJiODA0ZS4uNTIxODA0Y2ViZWFlMTIzOGQwZDdiYmMwYTM4ZGRi
YTFhMTM1ZmMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE0MSBAQAogMjAxNi0xMC0wNiAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2Ug
Y2xpZW50IGhhbmRsaW5nIG1ldGhvZHMgc2hvdWxkIHRha2UgcmVmZXJlbmNlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjMwMTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBjaGFuZ2Ugb2YgYmVoYXZp
b3IuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5o
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXI6On5DYWNoZWRT
Y3JpcHRTb3VyY2VQcm92aWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRTY3JpcHRTb3Vy
Y2VQcm92aWRlcjo6Q2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIpOgorICAgICAgICAqIGNzcy9D
U1NDcm9zc2ZhZGVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDcm9zc2ZhZGVWYWx1
ZTo6fkNTU0Nyb3NzZmFkZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nyb3NzZmFkZVZh
bHVlOjpsb2FkU3ViaW1hZ2VzKToKKyAgICAgICAgKiBjc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGaWx0ZXJJbWFnZVZhbHVlOjp+Q1NTRmlsdGVySW1h
Z2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGaWx0ZXJJbWFnZVZhbHVlOjpsb2FkU3Vi
aW1hZ2VzKToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTRm9udEZhY2VTb3VyY2U6OkNTU0ZvbnRGYWNlU291cmNlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU0ZvbnRGYWNlU291cmNlOjp+Q1NTRm9udEZhY2VTb3VyY2UpOgorICAgICAg
ICAqIGNzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxl
SW1wb3J0Ojp+U3R5bGVSdWxlSW1wb3J0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUlt
cG9ydDo6cmVxdWVzdFN0eWxlU2hlZXQpOgorICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0ltYWdlTG9hZGVyOjpzdGFydExvYWRpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6RHJhZ0ltYWdlTG9hZGVyOjpzdG9wTG9hZGluZyk6CisgICAgICAgICog
ZG9tL0xvYWRhYmxlQ2xhc3NpY1NjcmlwdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2FkYWJs
ZUNsYXNzaWNTY3JpcHQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpMb2FkYWJsZUNsYXNz
aWNTY3JpcHQ6On5Mb2FkYWJsZUNsYXNzaWNTY3JpcHQpOgorICAgICAgICAqIGRvbS9Qcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc2luZ0luc3RydWN0
aW9uOjp+UHJvY2Vzc2luZ0luc3RydWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlByb2Nlc3Np
bmdJbnN0cnVjdGlvbjo6Y2hlY2tTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OlByb2Nl
c3NpbmdJbnN0cnVjdGlvbjo6cGFyc2VTdHlsZVNoZWV0KToKKyAgICAgICAgKiBodG1sL0hUTUxM
aW5rRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQ6On5IVE1M
TGlua0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTExpbmtFbGVtZW50Ojpwcm9jZXNz
KToKKyAgICAgICAgKiBsb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVja2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlcjo6fkNyb3NzT3JpZ2lu
UHJlZmxpZ2h0Q2hlY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpDcm9zc09yaWdpblByZWZsaWdo
dENoZWNrZXI6OnN0YXJ0UHJlZmxpZ2h0KToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OmRldGFjaEZyb21GcmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6Y2xlYXJNYWluUmVzb3VyY2Up
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OmJlY29tZU1haW5SZXNvdXJjZUNs
aWVudCk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6On5Eb2N1bWVudFRocmVh
ZGFibGVMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
OjpjbGVhclJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFkYWJsZUxv
YWRlcjo6bG9hZFJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9JbWFnZUxvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6fkltYWdlTG9hZGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlTG9hZGVyOjpjbGVhckltYWdlV2l0aG91dENvbnNpZGVyaW5nUGVuZGluZ0xv
YWRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6dXBkYXRlRnJvbUVsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VMb2FkZXI6OmRpc3BhdGNoUGVuZGluZ0JlZm9y
ZUxvYWRFdmVudCk6CisgICAgICAgICogbG9hZGVyL0xpbmtMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TGlua0xvYWRlcjo6fkxpbmtMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6TGlu
a0xvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6TGlua0xvYWRlcjo6
bG9hZExpbmspOgorICAgICAgICAqIGxvYWRlci9MaW5rUHJlbG9hZFJlc291cmNlQ2xpZW50cy5o
OgorICAgICAgICAoV2ViQ29yZTo6TGlua1ByZWxvYWRSZXNvdXJjZUNsaWVudDo6YWRkUmVzb3Vy
Y2UpOgorICAgICAgICAoV2ViQ29yZTo6TGlua1ByZWxvYWRSZXNvdXJjZUNsaWVudDo6Y2xlYXJS
ZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFSZXNvdXJjZTo6TWVkaWFSZXNvdXJjZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVJlc291cmNlOjpzdG9wKToKKyAgICAgICAgKiBsb2FkZXIvVGV4dFRyYWNr
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0xvYWRlcjo6flRleHRUcmFj
a0xvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tMb2FkZXI6OmNhbmNlbExvYWQp
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrTG9hZGVyOjpsb2FkKToKKyAgICAgICAgKiBs
b2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRDU1NTdHlsZVNoZWV0OjpkaWRBZGRDbGllbnQpOgorICAgICAgICAqIGxvYWRlci9jYWNo
ZS9DYWNoZWRDU1NTdHlsZVNoZWV0Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZEZv
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkRm9udDo6ZGlkQWRkQ2xpZW50KToKKyAg
ICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oOgorICAgICAgICAqIGxvYWRlci9jYWNo
ZS9DYWNoZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6ZGlkQWRk
Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEltYWdlOjpkaWRSZW1vdmVDbGllbnQp
OgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oOgorICAgICAgICAqIGxvYWRl
ci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
YXdSZXNvdXJjZTo6ZGlkQWRkQ2xpZW50KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVk
UmF3UmVzb3VyY2UuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OmFkZENsaWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6ZGlkQWRkQ2xpZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkNhY2hlZFJlc291cmNlOjphZGRDbGllbnRUb1NldCk6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRSZXNvdXJjZTo6cmVtb3ZlQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlOjpzd2l0Y2hDbGllbnRzVG9SZXZhbGlkYXRlZFJlc291cmNlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlOjpDYWxsYmFjazo6dGltZXJGaXJlZCk6CisgICAgICAgICog
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZTo6aGFzQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjpk
aWRSZW1vdmVDbGllbnQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVu
dFJlZmVyZW5jZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRTVkdEb2N1bWVudFJlZmVy
ZW5jZTo6fkNhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNh
Y2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlOjpsb2FkKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUv
Q2FjaGVkWFNMU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRYU0xTdHls
ZVNoZWV0OjpkaWRBZGRDbGllbnQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRYU0xT
dHlsZVNoZWV0Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjphZGRJbWFnZVRvQ2FjaGUpOgorICAgICAgICAo
V2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZUltYWdlRnJvbUNhY2hlKToKKyAgICAgICAgKiBs
b2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25Mb2FkZXI6
OnN0YXJ0TG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpJY29uTG9hZGVyOjpzdG9wTG9hZGlu
Zyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL1dlYkNvcmVB
VkNGUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZUFWQ0ZSZXNv
dXJjZUxvYWRlcjo6c3RhcnRMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVBVkNG
UmVzb3VyY2VMb2FkZXI6OnN0b3BMb2FkaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW06CisgICAgICAg
IChXZWJDb3JlOjpXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXI6OnN0YXJ0TG9hZGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXI6OnN0b3BMb2FkaW5nKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2VSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJJbWFnZVJlc291cmNlOjpzaHV0ZG93bik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJJbWFnZVJlc291cmNlOjpzZXRDYWNoZWRJbWFnZSk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxheWVyRmlsdGVySW5mby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6RmlsdGVySW5mbzo6dXBkYXRlUmVmZXJlbmNlRmlsdGVyQ2xpZW50cyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6RmlsdGVySW5mbzo6cmVtb3ZlUmVmZXJlbmNlRmlsdGVyQ2xp
ZW50cyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVDYWNoZWRJbWFnZTo6YWRkQ2xpZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlQ2FjaGVkSW1hZ2U6OnJlbW92ZUNsaWVudCk6CisgICAgICAgICogc3Zn
L1NWR0ZFSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFSW1hZ2VFbGVt
ZW50OjpjbGVhclJlc291cmNlUmVmZXJlbmNlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUlt
YWdlRWxlbWVudDo6cmVxdWVzdEltYWdlUmVzb3VyY2UpOgorICAgICAgICAqIHN2Zy9TVkdGb250
RmFjZVVyaUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRm9udEZhY2VVcmlFbGVt
ZW50Ojp+U1ZHRm9udEZhY2VVcmlFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZvbnRG
YWNlVXJpRWxlbWVudDo6bG9hZEZvbnQpOgorICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6On5TVkdVc2VFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OnVwZGF0ZUV4dGVybmFsRG9jdW1lbnQpOgor
ICAgICAgICAqIHhtbC9YU0xJbXBvcnRSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhTTElt
cG9ydFJ1bGU6On5YU0xJbXBvcnRSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlhTTEltcG9ydFJ1
bGU6OnNldFhTTFN0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6WFNMSW1wb3J0UnVsZTo6
bG9hZFNoZWV0KToKKyAgICAgICAgKiB4bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpub3RpZnlGaW5pc2hlZCk6Cisg
ICAgICAgICogeG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6On5YTUxEb2N1bWVudFBhcnNlcik6CisgICAg
ICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6ZW5kRWxlbWVudE5zKToKKworMjAxNi0x
MC0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKICAgICAgICAgW0ZldGNo
IEFQSV0gRm9yYmlkIHJlZGlyZWN0aW9uIHRvIG5vbi1IVFRQKHMpIFVSTCBpbiBub24tbmF2aWdh
dGlvbiBtb2RlLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYyNzg1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBjY2IyOWFlMDQxN2RkMmMxYzUzMzkxMWYw
NGZjMzIzZDhmYmNjZjc4Li41OTU0NmUxNTM2MmQ4YjFhNTc4MWEyMDhjMzhmOGM0MjQ5YjFlZjJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTYtMTAtMDYgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIENhY2hlZFJlc291cmNlIGNsaWVu
dCBoYW5kbGluZyBtZXRob2RzIHNob3VsZCB0YWtlIHJlZmVyZW5jZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzMDE0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1t
OgorICAgICAgICAocHJvbWlzZWREYXRhQ2xpZW50KToKKwogMjAxNi0xMC0wNSAgTXlsZXMgQy4g
TWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFB1dCB2YXJpYXRpb24g
Zm9udHMgd29yayBiZWhpbmQgYSBjb21waWxlLXRpbWUgZmxhZwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgKaW5kZXgg
OGI4YTk3YmVkOWVlZWZjYzQzYzFmZTI4MWExZGM2MGM1NjI1ZTc3OS4uZjdlNzg2N2RlY2Q5NDlm
MzYxOWU1YzU1OTE4N2ZiMmNmNTIwMjNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oCkBAIC00MSw3ICs0MSw3
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfkNhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyKCkK
ICAgICB7Ci0gICAgICAgIG1fY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7CisgICAg
ICAgIG1fY2FjaGVkU2NyaXB0LT5yZW1vdmVDbGllbnQoKnRoaXMpOwogICAgIH0KIAogICAgIHVu
c2lnbmVkIGhhc2goKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2NhY2hlZFNjcmlwdC0+c2Ny
aXB0SGFzaCgpOyB9CkBAIC01Miw3ICs1Miw3IEBAIHByaXZhdGU6CiAgICAgICAgIDogU291cmNl
UHJvdmlkZXIoY2FjaGVkU2NyaXB0LT5yZXNwb25zZSgpLnVybCgpLCBUZXh0UG9zaXRpb246Om1p
bmltdW1Qb3NpdGlvbigpLCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6UHJvZ3JhbSkK
ICAgICAgICAgLCBtX2NhY2hlZFNjcmlwdChjYWNoZWRTY3JpcHQpCiAgICAgewotICAgICAgICBt
X2NhY2hlZFNjcmlwdC0+YWRkQ2xpZW50KHRoaXMpOworICAgICAgICBtX2NhY2hlZFNjcmlwdC0+
YWRkQ2xpZW50KCp0aGlzKTsKICAgICB9CiAKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRTY3JpcHQ+IG1fY2FjaGVkU2NyaXB0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0Nyb3NzZmFkZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVW
YWx1ZS5jcHAKaW5kZXggNmYwN2MwMzQxZDgyYjZmZWI4OWViOGNmZGU1ZDkwM2FhNzcyMzRhYy4u
MGNmNzliY2M2YjFjODQ0ODU2ZGFiMWU4YmMwNzdjOTE0MmI1NGY1ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCkBAIC02MSw5ICs2MSw5IEBAIHN0YXRpYyBib29s
IHN1YmltYWdlS25vd25Ub0JlT3BhcXVlKGNvbnN0IENTU1ZhbHVlJiB2YWx1ZSwgY29uc3QgUmVu
ZGVyRWxlbWVudCoKIENTU0Nyb3NzZmFkZVZhbHVlOjp+Q1NTQ3Jvc3NmYWRlVmFsdWUoKQogewog
ICAgIGlmIChtX2NhY2hlZEZyb21JbWFnZSkKLSAgICAgICAgbV9jYWNoZWRGcm9tSW1hZ2UtPnJl
bW92ZUNsaWVudCgmbV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyKTsKKyAgICAgICAgbV9jYWNo
ZWRGcm9tSW1hZ2UtPnJlbW92ZUNsaWVudChtX2Nyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXIpOwog
ICAgIGlmIChtX2NhY2hlZFRvSW1hZ2UpCi0gICAgICAgIG1fY2FjaGVkVG9JbWFnZS0+cmVtb3Zl
Q2xpZW50KCZtX2Nyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXIpOworICAgICAgICBtX2NhY2hlZFRv
SW1hZ2UtPnJlbW92ZUNsaWVudChtX2Nyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXIpOwogfQogCiBT
dHJpbmcgQ1NTQ3Jvc3NmYWRlVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdApAQCAtMTMxLDE2
ICsxMzEsMTYgQEAgdm9pZCBDU1NDcm9zc2ZhZGVWYWx1ZTo6bG9hZFN1YmltYWdlcyhDYWNoZWRS
ZXNvdXJjZUxvYWRlciYgY2FjaGVkUmVzb3VyY2VMb2FkZXIKIAogICAgIGlmIChtX2NhY2hlZEZy
b21JbWFnZSAhPSBvbGRDYWNoZWRGcm9tSW1hZ2UpIHsKICAgICAgICAgaWYgKG9sZENhY2hlZEZy
b21JbWFnZSkKLSAgICAgICAgICAgIG9sZENhY2hlZEZyb21JbWFnZS0+cmVtb3ZlQ2xpZW50KCZt
X2Nyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXIpOworICAgICAgICAgICAgb2xkQ2FjaGVkRnJvbUlt
YWdlLT5yZW1vdmVDbGllbnQobV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyKTsKICAgICAgICAg
aWYgKG1fY2FjaGVkRnJvbUltYWdlKQotICAgICAgICAgICAgbV9jYWNoZWRGcm9tSW1hZ2UtPmFk
ZENsaWVudCgmbV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyKTsKKyAgICAgICAgICAgIG1fY2Fj
aGVkRnJvbUltYWdlLT5hZGRDbGllbnQobV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyKTsKICAg
ICB9CiAKICAgICBpZiAobV9jYWNoZWRUb0ltYWdlICE9IG9sZENhY2hlZFRvSW1hZ2UpIHsKICAg
ICAgICAgaWYgKG9sZENhY2hlZFRvSW1hZ2UpCi0gICAgICAgICAgICBvbGRDYWNoZWRUb0ltYWdl
LT5yZW1vdmVDbGllbnQoJm1fY3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlcik7CisgICAgICAgICAg
ICBvbGRDYWNoZWRUb0ltYWdlLT5yZW1vdmVDbGllbnQobV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2Vy
dmVyKTsKICAgICAgICAgaWYgKG1fY2FjaGVkVG9JbWFnZSkKLSAgICAgICAgICAgIG1fY2FjaGVk
VG9JbWFnZS0+YWRkQ2xpZW50KCZtX2Nyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXIpOworICAgICAg
ICAgICAgbV9jYWNoZWRUb0ltYWdlLT5hZGRDbGllbnQobV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2Vy
dmVyKTsKICAgICB9CiAKICAgICBtX2Nyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXIuc2V0UmVhZHko
dHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHAKaW5kZXgg
ZTVmNWVmOGMyNDI3NjNlZjQxNDdkZjEyOTQ0YzNlZTI5MTM1YzFiNi4uYTE4NjA2NDYxMGZlNGU4
OTc1NGJkOGIzZDY3NWJlNWNhZjQ3YzdkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0
ZXJJbWFnZVZhbHVlLmNwcApAQCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBD
U1NGaWx0ZXJJbWFnZVZhbHVlOjp+Q1NTRmlsdGVySW1hZ2VWYWx1ZSgpCiB7CiAgICAgaWYgKG1f
Y2FjaGVkSW1hZ2UpCi0gICAgICAgIG1fY2FjaGVkSW1hZ2UtPnJlbW92ZUNsaWVudCgmbV9maWx0
ZXJTdWJpbWFnZU9ic2VydmVyKTsKKyAgICAgICAgbV9jYWNoZWRJbWFnZS0+cmVtb3ZlQ2xpZW50
KG1fZmlsdGVyU3ViaW1hZ2VPYnNlcnZlcik7CiB9CiAKIFN0cmluZyBDU1NGaWx0ZXJJbWFnZVZh
bHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKQEAgLTkyLDkgKzkyLDkgQEAgdm9pZCBDU1NGaWx0
ZXJJbWFnZVZhbHVlOjpsb2FkU3ViaW1hZ2VzKENhY2hlZFJlc291cmNlTG9hZGVyJiBjYWNoZWRS
ZXNvdXJjZUxvYWQKIAogICAgIGlmIChtX2NhY2hlZEltYWdlICE9IG9sZENhY2hlZEltYWdlKSB7
CiAgICAgICAgIGlmIChvbGRDYWNoZWRJbWFnZSkKLSAgICAgICAgICAgIG9sZENhY2hlZEltYWdl
LT5yZW1vdmVDbGllbnQoJm1fZmlsdGVyU3ViaW1hZ2VPYnNlcnZlcik7CisgICAgICAgICAgICBv
bGRDYWNoZWRJbWFnZS0+cmVtb3ZlQ2xpZW50KG1fZmlsdGVyU3ViaW1hZ2VPYnNlcnZlcik7CiAg
ICAgICAgIGlmIChtX2NhY2hlZEltYWdlKQotICAgICAgICAgICAgbV9jYWNoZWRJbWFnZS0+YWRk
Q2xpZW50KCZtX2ZpbHRlclN1YmltYWdlT2JzZXJ2ZXIpOworICAgICAgICAgICAgbV9jYWNoZWRJ
bWFnZS0+YWRkQ2xpZW50KG1fZmlsdGVyU3ViaW1hZ2VPYnNlcnZlcik7CiAgICAgfQogCiAgICAg
Zm9yIChhdXRvJiBmaWx0ZXJPcGVyYXRpb24gOiBtX2ZpbHRlck9wZXJhdGlvbnMub3BlcmF0aW9u
cygpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcAppbmRleCBmMDJj
MDgyZTIzOWNkMzE4MTY5Zjc2NjQ5MzI0ZmEwNDg2YThjOWZmLi4wZGEzNGZiZDFlYzZjMGExYTkw
OGVmNjc1MTNhZjBjNDQ1MWFhYTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Rm9udEZhY2VTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNv
dXJjZS5jcHAKQEAgLTg4LDcgKzg4LDcgQEAgQ1NTRm9udEZhY2VTb3VyY2U6OkNTU0ZvbnRGYWNl
U291cmNlKENTU0ZvbnRGYWNlJiBvd25lciwgY29uc3QgU3RyaW5nJiBmYW1pbHlOYW0KIAogICAg
IC8vIFRoaXMgbWF5IHN5bmNocm9ub3VzbHkgY2FsbCBmb250TG9hZGVkKCkuCiAgICAgaWYgKG1f
Zm9udCkKLSAgICAgICAgbV9mb250LT5hZGRDbGllbnQodGhpcyk7CisgICAgICAgIG1fZm9udC0+
YWRkQ2xpZW50KCp0aGlzKTsKIAogICAgIGlmIChzdGF0dXMoKSA9PSBTdGF0dXM6OlBlbmRpbmcg
JiYgKCFtX2ZvbnQgfHwgbV9mb250LT5pc0xvYWRlZCgpKSkgewogICAgICAgICBzZXRTdGF0dXMo
U3RhdHVzOjpMb2FkaW5nKTsKQEAgLTEwMiw3ICsxMDIsNyBAQCBDU1NGb250RmFjZVNvdXJjZTo6
Q1NTRm9udEZhY2VTb3VyY2UoQ1NTRm9udEZhY2UmIG93bmVyLCBjb25zdCBTdHJpbmcmIGZhbWls
eU5hbQogQ1NTRm9udEZhY2VTb3VyY2U6On5DU1NGb250RmFjZVNvdXJjZSgpCiB7CiAgICAgaWYg
KG1fZm9udCkKLSAgICAgICAgbV9mb250LT5yZW1vdmVDbGllbnQodGhpcyk7CisgICAgICAgIG1f
Zm9udC0+cmVtb3ZlQ2xpZW50KCp0aGlzKTsKIH0KIAogdm9pZCBDU1NGb250RmFjZVNvdXJjZTo6
Zm9udExvYWRlZChDYWNoZWRGb250JiBsb2FkZWRGb250KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
dWxlSW1wb3J0LmNwcAppbmRleCAwY2JhYTlmMGUyNWIxNjhkMDA3MjIxMDZkNjU0YjQ1MTkzMDFk
YmEwLi4wMTJlZGYxZTkxYThhYmVhNzNkZTRjYzFmY2E1NzBjYjllYTlkMWRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcApAQCAtNTgsNyArNTgsNyBAQCBTdHlsZVJ1bGVJ
bXBvcnQ6On5TdHlsZVJ1bGVJbXBvcnQoKQogICAgIGlmIChtX3N0eWxlU2hlZXQpCiAgICAgICAg
IG1fc3R5bGVTaGVldC0+Y2xlYXJPd25lclJ1bGUoKTsKICAgICBpZiAobV9jYWNoZWRTaGVldCkK
LSAgICAgICAgbV9jYWNoZWRTaGVldC0+cmVtb3ZlQ2xpZW50KCZtX3N0eWxlU2hlZXRDbGllbnQp
OworICAgICAgICBtX2NhY2hlZFNoZWV0LT5yZW1vdmVDbGllbnQobV9zdHlsZVNoZWV0Q2xpZW50
KTsKIH0KIAogdm9pZCBTdHlsZVJ1bGVJbXBvcnQ6OnNldENTU1N0eWxlU2hlZXQoY29uc3QgU3Ry
aW5nJiBocmVmLCBjb25zdCBVUkwmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgY29u
c3QgQ2FjaGVkQ1NTU3R5bGVTaGVldCogY2FjaGVkU3R5bGVTaGVldCkKQEAgLTExOCw3ICsxMTgs
NyBAQCB2b2lkIFN0eWxlUnVsZUltcG9ydDo6cmVxdWVzdFN0eWxlU2hlZXQoKQogICAgIENhY2hl
ZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChhYnNVUkwpLCBtX3BhcmVu
dFN0eWxlU2hlZXQtPmNoYXJzZXQoKSk7CiAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoY2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpLmNzcyk7CiAgICAgaWYgKG1fY2FjaGVkU2hlZXQp
Ci0gICAgICAgIG1fY2FjaGVkU2hlZXQtPnJlbW92ZUNsaWVudCgmbV9zdHlsZVNoZWV0Q2xpZW50
KTsKKyAgICAgICAgbV9jYWNoZWRTaGVldC0+cmVtb3ZlQ2xpZW50KG1fc3R5bGVTaGVldENsaWVu
dCk7CiAgICAgaWYgKG1fcGFyZW50U3R5bGVTaGVldC0+aXNVc2VyU3R5bGVTaGVldCgpKSB7CiAg
ICAgICAgIHJlcXVlc3Quc2V0T3B0aW9ucyhSZXNvdXJjZUxvYWRlck9wdGlvbnMoRG9Ob3RTZW5k
Q2FsbGJhY2tzLCBTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEsIEFsbG93U3RvcmVkQ3JlZGVudGlh
bHMsIENsaWVudENyZWRlbnRpYWxQb2xpY3k6Ok1heUFza0NsaWVudEZvckNyZWRlbnRpYWxzLCBG
ZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpJbmNsdWRlLCBTa2lwU2VjdXJpdHlDaGVjaywgRmV0
Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMsIERvTm90SW5jbHVkZUNlcnRpZmljYXRlSW5mbywgQ29u
dGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6U2tpcFBvbGljeUNoZWNrLCBEZWZlcnNMb2Fk
aW5nUG9saWN5OjpBbGxvd0RlZmVyc0xvYWRpbmcsIENhY2hpbmdQb2xpY3k6OkFsbG93Q2FjaGlu
ZykpOwogICAgICAgICBtX2NhY2hlZFNoZWV0ID0gZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9h
ZGVyKCkucmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KFdURk1vdmUocmVxdWVzdCkpOwpAQCAtMTMx
LDcgKzEzMSw3IEBAIHZvaWQgU3R5bGVSdWxlSW1wb3J0OjpyZXF1ZXN0U3R5bGVTaGVldCgpCiAg
ICAgICAgIGlmIChtX3BhcmVudFN0eWxlU2hlZXQgJiYgbV9wYXJlbnRTdHlsZVNoZWV0LT5sb2Fk
Q29tcGxldGVkKCkgJiYgcm9vdFNoZWV0ID09IG1fcGFyZW50U3R5bGVTaGVldCkKICAgICAgICAg
ICAgIG1fcGFyZW50U3R5bGVTaGVldC0+c3RhcnRMb2FkaW5nRHluYW1pY1NoZWV0KCk7CiAgICAg
ICAgIG1fbG9hZGluZyA9IHRydWU7Ci0gICAgICAgIG1fY2FjaGVkU2hlZXQtPmFkZENsaWVudCgm
bV9zdHlsZVNoZWV0Q2xpZW50KTsKKyAgICAgICAgbV9jYWNoZWRTaGVldC0+YWRkQ2xpZW50KG1f
c3R5bGVTaGVldENsaWVudCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGF0YVRyYW5zZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIu
Y3BwCmluZGV4IDIwOGQ1YmMzNjljOTM4MjVhMjBiZGFlNGI2ZjFjYTUxNDg2MTcwOGQuLjY0MmZm
YTIyYjUwNzdmYmI5MDllNTczNzdiZGFkNWE0ODE4MDM5MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRh
VHJhbnNmZXIuY3BwCkBAIC0zMTEsMTIgKzMxMSwxMiBAQCBEcmFnSW1hZ2VMb2FkZXI6OkRyYWdJ
bWFnZUxvYWRlcihEYXRhVHJhbnNmZXIqIGRhdGFUcmFuc2ZlcikKIHZvaWQgRHJhZ0ltYWdlTG9h
ZGVyOjpzdGFydExvYWRpbmcoQ2FjaGVkUmVzb3VyY2VIYW5kbGU8V2ViQ29yZTo6Q2FjaGVkSW1h
Z2U+JiBpbWFnZSkKIHsKICAgICAvLyBGSVhNRTogRG9lcyB0aGlzIHJlYWxseSB0cmlnZ2VyIGEg
bG9hZD8gRG9lcyBpdCBuZWVkIHRvPwotICAgIGltYWdlLT5hZGRDbGllbnQodGhpcyk7CisgICAg
aW1hZ2UtPmFkZENsaWVudCgqdGhpcyk7CiB9CiAKIHZvaWQgRHJhZ0ltYWdlTG9hZGVyOjpzdG9w
TG9hZGluZyhDYWNoZWRSZXNvdXJjZUhhbmRsZTxXZWJDb3JlOjpDYWNoZWRJbWFnZT4mIGltYWdl
KQogewotICAgIGltYWdlLT5yZW1vdmVDbGllbnQodGhpcyk7CisgICAgaW1hZ2UtPnJlbW92ZUNs
aWVudCgqdGhpcyk7CiB9CiAKIHZvaWQgRHJhZ0ltYWdlTG9hZGVyOjppbWFnZUNoYW5nZWQoQ2Fj
aGVkSW1hZ2UqLCBjb25zdCBJbnRSZWN0KikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Mb2FkYWJsZUNsYXNzaWNTY3JpcHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxl
Q2xhc3NpY1NjcmlwdC5jcHAKaW5kZXggMTFmMTIwNTg3NzUyNzI1ZmNlODk1MzM2MGVmZDQ2OWYw
ZDljNzEyOS4uODFlMmQyZWZjNzdkMzUzODlkOWJlOWMwNDU3NWZjNjcxNmZlZjc3ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlQ2xhc3NpY1NjcmlwdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlQ2xhc3NpY1NjcmlwdC5jcHAKQEAgLTM3LDEzICsz
NywxMyBAQCBSZWY8TG9hZGFibGVDbGFzc2ljU2NyaXB0PiBMb2FkYWJsZUNsYXNzaWNTY3JpcHQ6
OmNyZWF0ZShDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYQogewogICAgIEFTU0VSVChjYWNoZWRTY3Jp
cHQpOwogICAgIGF1dG8gc2NyaXB0ID0gYWRvcHRSZWYoKm5ldyBMb2FkYWJsZUNsYXNzaWNTY3Jp
cHQoV1RGTW92ZShjYWNoZWRTY3JpcHQpKSk7Ci0gICAgY2FjaGVkU2NyaXB0LT5hZGRDbGllbnQo
c2NyaXB0LnB0cigpKTsKKyAgICBjYWNoZWRTY3JpcHQtPmFkZENsaWVudChzY3JpcHQuZ2V0KCkp
OwogICAgIHJldHVybiBzY3JpcHQ7CiB9CiAKIExvYWRhYmxlQ2xhc3NpY1NjcmlwdDo6fkxvYWRh
YmxlQ2xhc3NpY1NjcmlwdCgpCiB7Ci0gICAgbV9jYWNoZWRTY3JpcHQtPnJlbW92ZUNsaWVudCh0
aGlzKTsKKyAgICBtX2NhY2hlZFNjcmlwdC0+cmVtb3ZlQ2xpZW50KCp0aGlzKTsKIH0KIAogYm9v
bCBMb2FkYWJsZUNsYXNzaWNTY3JpcHQ6OmlzTG9hZGVkKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKaW5kZXggY2E5YTdhNDUxZDdiNTY4NWQz
MTY5Yzc4NDQ1M2JjNWZiNDZiZmU4NS4uNzNiYmQyMjcwZjhhODMzOTA0NzQ0NDdjOThlMzI4NmU2
ODA0YzdlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5j
cHAKQEAgLTU2LDcgKzU2LDcgQEAgUHJvY2Vzc2luZ0luc3RydWN0aW9uOjp+UHJvY2Vzc2luZ0lu
c3RydWN0aW9uKCkKICAgICAgICAgbV9zaGVldC0+Y2xlYXJPd25lck5vZGUoKTsKIAogICAgIGlm
IChtX2NhY2hlZFNoZWV0KQotICAgICAgICBtX2NhY2hlZFNoZWV0LT5yZW1vdmVDbGllbnQodGhp
cyk7CisgICAgICAgIG1fY2FjaGVkU2hlZXQtPnJlbW92ZUNsaWVudCgqdGhpcyk7CiAKICAgICBp
ZiAoaW5Eb2N1bWVudCgpKQogICAgICAgICBkb2N1bWVudCgpLmF1dGhvclN0eWxlU2hlZXRzKCku
cmVtb3ZlU3R5bGVTaGVldENhbmRpZGF0ZU5vZGUoKnRoaXMpOwpAQCAtMTI2LDcgKzEyNiw3IEBA
IHZvaWQgUHJvY2Vzc2luZ0luc3RydWN0aW9uOjpjaGVja1N0eWxlU2hlZXQoKQogI2VuZGlmCiAg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBpZiAobV9jYWNoZWRTaGVldCkgewotICAgICAg
ICAgICAgICAgIG1fY2FjaGVkU2hlZXQtPnJlbW92ZUNsaWVudCh0aGlzKTsKKyAgICAgICAgICAg
ICAgICBtX2NhY2hlZFNoZWV0LT5yZW1vdmVDbGllbnQoKnRoaXMpOwogICAgICAgICAgICAgICAg
IG1fY2FjaGVkU2hlZXQgPSBudWxscHRyOwogICAgICAgICAgICAgfQogCkBAIC0xNTQsNyArMTU0
LDcgQEAgdm9pZCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246OmNoZWNrU3R5bGVTaGVldCgpCiAgICAg
ICAgICAgICAgICAgbV9jYWNoZWRTaGVldCA9IGRvY3VtZW50KCkuY2FjaGVkUmVzb3VyY2VMb2Fk
ZXIoKS5yZXF1ZXN0Q1NTU3R5bGVTaGVldChXVEZNb3ZlKHJlcXVlc3QpKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGlmIChtX2NhY2hlZFNoZWV0KQotICAgICAgICAgICAgICAgIG1fY2Fj
aGVkU2hlZXQtPmFkZENsaWVudCh0aGlzKTsKKyAgICAgICAgICAgICAgICBtX2NhY2hlZFNoZWV0
LT5hZGRDbGllbnQoKnRoaXMpOwogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAg
Ly8gVGhlIHJlcXVlc3QgbWF5IGhhdmUgYmVlbiBkZW5pZWQgaWYgKGZvciBleGFtcGxlKSB0aGUg
c3R5bGVzaGVldCBpcyBsb2NhbCBhbmQgdGhlIGRvY3VtZW50IGlzIHJlbW90ZS4KICAgICAgICAg
ICAgICAgICBtX2xvYWRpbmcgPSBmYWxzZTsKQEAgLTIyNSw3ICsyMjUsNyBAQCB2b2lkIFByb2Nl
c3NpbmdJbnN0cnVjdGlvbjo6cGFyc2VTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyYgc2hlZXQpCiAj
ZW5kaWYKIAogICAgIGlmIChtX2NhY2hlZFNoZWV0KQotICAgICAgICBtX2NhY2hlZFNoZWV0LT5y
ZW1vdmVDbGllbnQodGhpcyk7CisgICAgICAgIG1fY2FjaGVkU2hlZXQtPnJlbW92ZUNsaWVudCgq
dGhpcyk7CiAgICAgbV9jYWNoZWRTaGVldCA9IG51bGxwdHI7CiAKICAgICBtX2xvYWRpbmcgPSBm
YWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRleCBiODkxNzZk
MTNlNzYyMjY2YzRkYTExMzUyYzNhZDdmMjlhOTFmNjFhLi4xNTRiMWE0Mzk5NDk4MDk1ZDY3MTJi
ZDk0Mjk0MmM0MzAxNTk0NmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxM
aW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQu
Y3BwCkBAIC05OSw3ICs5OSw3IEBAIEhUTUxMaW5rRWxlbWVudDo6fkhUTUxMaW5rRWxlbWVudCgp
CiAgICAgICAgIG1fc2hlZXQtPmNsZWFyT3duZXJOb2RlKCk7CiAKICAgICBpZiAobV9jYWNoZWRT
aGVldCkKLSAgICAgICAgbV9jYWNoZWRTaGVldC0+cmVtb3ZlQ2xpZW50KHRoaXMpOworICAgICAg
ICBtX2NhY2hlZFNoZWV0LT5yZW1vdmVDbGllbnQoKnRoaXMpOwogCiAgICAgaWYgKGluRG9jdW1l
bnQoKSkKICAgICAgICAgZG9jdW1lbnQoKS5hdXRob3JTdHlsZVNoZWV0cygpLnJlbW92ZVN0eWxl
U2hlZXRDYW5kaWRhdGVOb2RlKCp0aGlzKTsKQEAgLTIzMSwxMCArMjMxLDEwIEBAIHZvaWQgSFRN
TExpbmtFbGVtZW50Ojpwcm9jZXNzKCkKICAgICAgICAgQXRvbWljU3RyaW5nIGNoYXJzZXQgPSBh
dHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGNoYXJzZXRBdHRyKTsKICAgICAgICAgaWYg
KGNoYXJzZXQuaXNFbXB0eSgpICYmIGRvY3VtZW50KCkuZnJhbWUoKSkKICAgICAgICAgICAgIGNo
YXJzZXQgPSBkb2N1bWVudCgpLmNoYXJzZXQoKTsKLSAgICAgICAgCisKICAgICAgICAgaWYgKG1f
Y2FjaGVkU2hlZXQpIHsKICAgICAgICAgICAgIHJlbW92ZVBlbmRpbmdTaGVldCgpOwotICAgICAg
ICAgICAgbV9jYWNoZWRTaGVldC0+cmVtb3ZlQ2xpZW50KHRoaXMpOworICAgICAgICAgICAgbV9j
YWNoZWRTaGVldC0+cmVtb3ZlQ2xpZW50KCp0aGlzKTsKICAgICAgICAgICAgIG1fY2FjaGVkU2hl
ZXQgPSBudWxscHRyOwogICAgICAgICB9CiAKQEAgLTI3NCw3ICsyNzQsNyBAQCB2b2lkIEhUTUxM
aW5rRWxlbWVudDo6cHJvY2VzcygpCiAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgp
LmNhY2hlZFJlc291cmNlTG9hZGVyKCkucmVxdWVzdENTU1N0eWxlU2hlZXQoV1RGTW92ZShyZXF1
ZXN0KSk7CiAKICAgICAgICAgaWYgKG1fY2FjaGVkU2hlZXQpCi0gICAgICAgICAgICBtX2NhY2hl
ZFNoZWV0LT5hZGRDbGllbnQodGhpcyk7CisgICAgICAgICAgICBtX2NhY2hlZFNoZWV0LT5hZGRD
bGllbnQoKnRoaXMpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIC8vIFRoZSByZXF1ZXN0
IG1heSBoYXZlIGJlZW4gZGVuaWVkIGlmIChmb3IgZXhhbXBsZSkgdGhlIHN0eWxlc2hlZXQgaXMg
bG9jYWwgYW5kIHRoZSBkb2N1bWVudCBpcyByZW1vdGUuCiAgICAgICAgICAgICBtX2xvYWRpbmcg
PSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblBy
ZWZsaWdodENoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJl
ZmxpZ2h0Q2hlY2tlci5jcHAKaW5kZXggZWEyOGQ0M2NjMjI1NTk3OGNjNTZiMzI0NzQ4MTgzYjVl
NmM3ODY3NS4uYzlmYjk5ODgzMzk4Y2Q4MjRkOWExMThjMjgwNGFlYzBiZDUwZThjMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tl
ci5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVja2VyOjpDcm9z
c09yaWdpblByZWZsaWdodENoZWNrZXIoRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGUKIENyb3NzT3Jp
Z2luUHJlZmxpZ2h0Q2hlY2tlcjo6fkNyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlcigpCiB7CiAg
ICAgaWYgKG1fcmVzb3VyY2UpCi0gICAgICAgIG1fcmVzb3VyY2UtPnJlbW92ZUNsaWVudCh0aGlz
KTsKKyAgICAgICAgbV9yZXNvdXJjZS0+cmVtb3ZlQ2xpZW50KCp0aGlzKTsKIH0KIAogdm9pZCBD
cm9zc09yaWdpblByZWZsaWdodENoZWNrZXI6OnZhbGlkYXRlUHJlZmxpZ2h0UmVzcG9uc2UoRG9j
dW1lbnRUaHJlYWRhYmxlTG9hZGVyJiBsb2FkZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3Qs
IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UpCkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBDcm9zc09yaWdpblByZWZsaWdodENoZWNrZXI6
OnN0YXJ0UHJlZmxpZ2h0KCkKICAgICBBU1NFUlQoIW1fcmVzb3VyY2UpOwogICAgIG1fcmVzb3Vy
Y2UgPSBtX2xvYWRlci5kb2N1bWVudCgpLmNhY2hlZFJlc291cmNlTG9hZGVyKCkucmVxdWVzdFJh
d1Jlc291cmNlKFdURk1vdmUocHJlZmxpZ2h0UmVxdWVzdCkpOwogICAgIGlmIChtX3Jlc291cmNl
KQotICAgICAgICBtX3Jlc291cmNlLT5hZGRDbGllbnQodGhpcyk7CisgICAgICAgIG1fcmVzb3Vy
Y2UtPmFkZENsaWVudCgqdGhpcyk7CiB9CiAKIHZvaWQgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVj
a2VyOjpkb1ByZWZsaWdodChEb2N1bWVudFRocmVhZGFibGVMb2FkZXImIGxvYWRlciwgUmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwCmluZGV4IDk3ZDg3NTU4MjY4OWU2YzJlYmIxNTQ1N2UxYTE1YWRlMDdkZWYxMTIuLjFjMGQy
OTBmODBmMjM4MjJlNDQwM2MzYmU0NGNkZmZkNzFjOGNkMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtMTAyMCw4ICsxMDIwLDggQEAgdm9pZCBEb2N1bWVu
dExvYWRlcjo6ZGV0YWNoRnJvbUZyYW1lKCkKICAgICAvLyBJdCBuZXZlciBtYWtlcyBzZW5zZSB0
byBoYXZlIGEgZG9jdW1lbnQgbG9hZGVyIHRoYXQgaXMgZGV0YWNoZWQgZnJvbSBpdHMKICAgICAv
LyBmcmFtZSBoYXZlIGFueSBsb2FkcyBhY3RpdmUsIHNvIGtpbGwgYWxsIHRoZSBsb2Fkcy4KICAg
ICBzdG9wTG9hZGluZygpOwotICAgIGlmIChtX21haW5SZXNvdXJjZSAmJiBtX21haW5SZXNvdXJj
ZS0+aGFzQ2xpZW50KHRoaXMpKQotICAgICAgICBtX21haW5SZXNvdXJjZS0+cmVtb3ZlQ2xpZW50
KHRoaXMpOworICAgIGlmIChtX21haW5SZXNvdXJjZSAmJiBtX21haW5SZXNvdXJjZS0+aGFzQ2xp
ZW50KCp0aGlzKSkKKyAgICAgICAgbV9tYWluUmVzb3VyY2UtPnJlbW92ZUNsaWVudCgqdGhpcyk7
CiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQogICAgIGlmIChtX2NvbnRlbnRGaWx0ZXIp
CiAgICAgICAgIG1fY29udGVudEZpbHRlci0+c3RvcEZpbHRlcmluZ01haW5SZXNvdXJjZSgpOwpA
QCAtMTU5NSw4ICsxNTk1LDggQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6Y2FuY2VsTWFpblJlc291
cmNlTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVycm9yKQogCiB2b2lkIERvY3Vt
ZW50TG9hZGVyOjpjbGVhck1haW5SZXNvdXJjZSgpCiB7Ci0gICAgaWYgKG1fbWFpblJlc291cmNl
ICYmIG1fbWFpblJlc291cmNlLT5oYXNDbGllbnQodGhpcykpCi0gICAgICAgIG1fbWFpblJlc291
cmNlLT5yZW1vdmVDbGllbnQodGhpcyk7CisgICAgaWYgKG1fbWFpblJlc291cmNlICYmIG1fbWFp
blJlc291cmNlLT5oYXNDbGllbnQoKnRoaXMpKQorICAgICAgICBtX21haW5SZXNvdXJjZS0+cmVt
b3ZlQ2xpZW50KCp0aGlzKTsKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCiAgICAgaWYg
KG1fY29udGVudEZpbHRlcikKICAgICAgICAgbV9jb250ZW50RmlsdGVyLT5zdG9wRmlsdGVyaW5n
TWFpblJlc291cmNlKCk7CkBAIC0xNjk5LDcgKzE2OTksNyBAQCB2b2lkIERvY3VtZW50TG9hZGVy
OjpiZWNvbWVNYWluUmVzb3VyY2VDbGllbnQoKQogICAgIGlmIChtX2NvbnRlbnRGaWx0ZXIpCiAg
ICAgICAgIG1fY29udGVudEZpbHRlci0+c3RhcnRGaWx0ZXJpbmdNYWluUmVzb3VyY2UoKm1fbWFp
blJlc291cmNlKTsKICNlbmRpZgotICAgIG1fbWFpblJlc291cmNlLT5hZGRDbGllbnQodGhpcyk7
CisgICAgbV9tYWluUmVzb3VyY2UtPmFkZENsaWVudCgqdGhpcyk7CiB9CiAKICNpZiBFTkFCTEUo
Q09OVEVOVF9FWFRFTlNJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyLmNwcAppbmRleCAzOThmOGMxMGQ1ZGViZjczMzc5OTVjYmUxY2Jm
MjViZDA3Y2IyOTNmLi40M2YwYTkwMjU4ZGRjZDc2ZjhkNzgxOTE5NTI0MjhlNjZjN2YxZWIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
LmNwcApAQCAtMTY3LDcgKzE2Nyw3IEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpt
YWtlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0V2l0aFByZWZsaWdodChSZXNvdXJjCiBEb2N1bWVu
dFRocmVhZGFibGVMb2FkZXI6On5Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIoKQogewogICAgIGlm
IChtX3Jlc291cmNlKQotICAgICAgICBtX3Jlc291cmNlLT5yZW1vdmVDbGllbnQodGhpcyk7Cisg
ICAgICAgIG1fcmVzb3VyY2UtPnJlbW92ZUNsaWVudCgqdGhpcyk7CiB9CiAKIHZvaWQgRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyOjpjYW5jZWwoKQpAQCAtMjAwLDcgKzIwMCw3IEBAIHZvaWQgRG9j
dW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpjbGVhclJlc291cmNlKCkKICAgICAvLyBwcmV2ZW50IHRo
ZSByZWVudHJhbmN5LgogICAgIGlmIChDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNv
dXJjZT4gcmVzb3VyY2UgPSBtX3Jlc291cmNlKSB7CiAgICAgICAgIG1fcmVzb3VyY2UgPSBudWxs
cHRyOwotICAgICAgICByZXNvdXJjZS0+cmVtb3ZlQ2xpZW50KHRoaXMpOworICAgICAgICByZXNv
dXJjZS0+cmVtb3ZlQ2xpZW50KCp0aGlzKTsKICAgICB9CiAgICAgaWYgKG1fcHJlZmxpZ2h0Q2hl
Y2tlcikKICAgICAgICAgbV9wcmVmbGlnaHRDaGVja2VyID0gTnVsbG9wdDsKQEAgLTM5MSw3ICsz
OTEsNyBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJlcXVlc3QoUmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCwgU2VjdXJpdHlDaAogICAgICAgICBVUkwgcmVxdWVzdFVybCA9
IG5ld1JlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCk7CiAgICAgICAgIG1fcmVzb3VyY2Ug
PSBtX2RvY3VtZW50LmNhY2hlZFJlc291cmNlTG9hZGVyKCkucmVxdWVzdFJhd1Jlc291cmNlKFdU
Rk1vdmUobmV3UmVxdWVzdCkpOwogICAgICAgICBpZiAobV9yZXNvdXJjZSkKLSAgICAgICAgICAg
IG1fcmVzb3VyY2UtPmFkZENsaWVudCh0aGlzKTsKKyAgICAgICAgICAgIG1fcmVzb3VyY2UtPmFk
ZENsaWVudCgqdGhpcyk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgLy8gRklYTUU6IFNp
bmNlIHdlIHJlY2VpdmUgYSBzeW5jaHJvbm91cyBlcnJvciwgdGhpcyBpcyBwcm9iYWJseSBkdWUg
dG8gc29tZSBBY2Nlc3NDb250cm9sIGNoZWNrcy4gV2Ugc2hvdWxkIHRyeSB0byByZXRyaWV2ZSB0
aGUgYWN0dWFsIGVycm9yLgogICAgICAgICAgICAgbV9jbGllbnQtPmRpZEZhaWwoUmVzb3VyY2VF
cnJvcihTdHJpbmcoKSwgMCwgcmVxdWVzdFVybCwgU3RyaW5nKCksIFJlc291cmNlRXJyb3I6OlR5
cGU6OkFjY2Vzc0NvbnRyb2wpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9J
bWFnZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCmlu
ZGV4IGMxYWMzYmU0MjY1MWZiMGZlYmYxYWMyZDIwZDNmNzY3NDZmYzgyMzEuLjgwMTZlODI2YjY4
ZTlmNjQyODI1MmM4NTNhYzhiMGMwYjYxYmMxNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9JbWFnZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdl
TG9hZGVyLmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIEltYWdlTG9hZGVyOjpJbWFnZUxvYWRlcihF
bGVtZW50JiBlbGVtZW50KQogSW1hZ2VMb2FkZXI6On5JbWFnZUxvYWRlcigpCiB7CiAgICAgaWYg
KG1faW1hZ2UpCi0gICAgICAgIG1faW1hZ2UtPnJlbW92ZUNsaWVudCh0aGlzKTsKKyAgICAgICAg
bV9pbWFnZS0+cmVtb3ZlQ2xpZW50KCp0aGlzKTsKIAogICAgIEFTU0VSVChtX2hhc1BlbmRpbmdC
ZWZvcmVMb2FkRXZlbnQgfHwgIWJlZm9yZUxvYWRFdmVudFNlbmRlcigpLmhhc1BlbmRpbmdFdmVu
dHMoKnRoaXMpKTsKICAgICBpZiAobV9oYXNQZW5kaW5nQmVmb3JlTG9hZEV2ZW50KQpAQCAtMTQ4
LDcgKzE0OCw3IEBAIHZvaWQgSW1hZ2VMb2FkZXI6OmNsZWFySW1hZ2VXaXRob3V0Q29uc2lkZXJp
bmdQZW5kaW5nTG9hZEV2ZW50KCkKICAgICAgICAgfQogICAgICAgICBtX2ltYWdlQ29tcGxldGUg
PSB0cnVlOwogICAgICAgICBpZiAob2xkSW1hZ2UpCi0gICAgICAgICAgICBvbGRJbWFnZS0+cmVt
b3ZlQ2xpZW50KHRoaXMpOworICAgICAgICAgICAgb2xkSW1hZ2UtPnJlbW92ZUNsaWVudCgqdGhp
cyk7CiAgICAgfQogCiAgICAgaWYgKFJlbmRlckltYWdlUmVzb3VyY2UqIGltYWdlUmVzb3VyY2Ug
PSByZW5kZXJJbWFnZVJlc291cmNlKCkpCkBAIC0yNDgsMTAgKzI0OCwxMCBAQCB2b2lkIEltYWdl
TG9hZGVyOjp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgICAgICAgICAvLyBJZiBuZXdJbWFnZSBp
cyBjYWNoZWQsIGFkZENsaWVudCgpIHdpbGwgcmVzdWx0IGluIHRoZSBsb2FkIGV2ZW50CiAgICAg
ICAgICAgICAvLyBiZWluZyBxdWV1ZWQgdG8gZmlyZS4gRW5zdXJlIHRoaXMgaGFwcGVucyBhZnRl
ciBiZWZvcmVsb2FkIGlzCiAgICAgICAgICAgICAvLyBkaXNwYXRjaGVkLgotICAgICAgICAgICAg
bmV3SW1hZ2UtPmFkZENsaWVudCh0aGlzKTsKKyAgICAgICAgICAgIG5ld0ltYWdlLT5hZGRDbGll
bnQoKnRoaXMpOwogICAgICAgICB9CiAgICAgICAgIGlmIChvbGRJbWFnZSkgewotICAgICAgICAg
ICAgb2xkSW1hZ2UtPnJlbW92ZUNsaWVudCh0aGlzKTsKKyAgICAgICAgICAgIG9sZEltYWdlLT5y
ZW1vdmVDbGllbnQoKnRoaXMpOwogICAgICAgICAgICAgdXBkYXRlUmVuZGVyZXIoKTsKICAgICAg
ICAgfQogICAgIH0KQEAgLTQwMCw3ICs0MDAsNyBAQCB2b2lkIEltYWdlTG9hZGVyOjpkaXNwYXRj
aFBlbmRpbmdCZWZvcmVMb2FkRXZlbnQoKQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlm
IChtX2ltYWdlKSB7Ci0gICAgICAgIG1faW1hZ2UtPnJlbW92ZUNsaWVudCh0aGlzKTsKKyAgICAg
ICAgbV9pbWFnZS0+cmVtb3ZlQ2xpZW50KCp0aGlzKTsKICAgICAgICAgbV9pbWFnZSA9IG51bGxw
dHI7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKaW5kZXggNjNlOTlj
NTU0YjQyOGFiNzg0NTNmMGEwMzQ3Y2U3YTkwOGJhY2QwNC4uMzU5ZjZiOTRlNjIwZTgzMGI4MGFj
MDNmYmQwOThhZmQ3MmNlMDcwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xp
bmtMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcApA
QCAtNjAsNyArNjAsNyBAQCBMaW5rTG9hZGVyOjpMaW5rTG9hZGVyKExpbmtMb2FkZXJDbGllbnQm
IGNsaWVudCkKIExpbmtMb2FkZXI6On5MaW5rTG9hZGVyKCkKIHsKICAgICBpZiAobV9jYWNoZWRM
aW5rUmVzb3VyY2UpCi0gICAgICAgIG1fY2FjaGVkTGlua1Jlc291cmNlLT5yZW1vdmVDbGllbnQo
dGhpcyk7CisgICAgICAgIG1fY2FjaGVkTGlua1Jlc291cmNlLT5yZW1vdmVDbGllbnQoKnRoaXMp
OwogICAgIGlmIChtX3ByZWxvYWRSZXNvdXJjZUNsaWVudCkKICAgICAgICAgbV9wcmVsb2FkUmVz
b3VyY2VDbGllbnQtPmNsZWFyKCk7CiB9CkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgTGlua0xvYWRl
cjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogCiAgICAgdHJpZ2dl
ckV2ZW50cyhtX2NhY2hlZExpbmtSZXNvdXJjZS5nZXQoKSk7CiAKLSAgICBtX2NhY2hlZExpbmtS
ZXNvdXJjZS0+cmVtb3ZlQ2xpZW50KHRoaXMpOworICAgIG1fY2FjaGVkTGlua1Jlc291cmNlLT5y
ZW1vdmVDbGllbnQoKnRoaXMpOwogICAgIG1fY2FjaGVkTGlua1Jlc291cmNlID0gbnVsbHB0cjsK
IH0KIApAQCAtMTk3LDE0ICsxOTcsMTQgQEAgYm9vbCBMaW5rTG9hZGVyOjpsb2FkTGluayhjb25z
dCBMaW5rUmVsQXR0cmlidXRlJiByZWxBdHRyaWJ1dGUsIGNvbnN0IFVSTCYgaHJlZiwKICAgICAg
ICAgfQogCiAgICAgICAgIGlmIChtX2NhY2hlZExpbmtSZXNvdXJjZSkgewotICAgICAgICAgICAg
bV9jYWNoZWRMaW5rUmVzb3VyY2UtPnJlbW92ZUNsaWVudCh0aGlzKTsKKyAgICAgICAgICAgIG1f
Y2FjaGVkTGlua1Jlc291cmNlLT5yZW1vdmVDbGllbnQoKnRoaXMpOwogICAgICAgICAgICAgbV9j
YWNoZWRMaW5rUmVzb3VyY2UgPSBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIFJlc291cmNl
TG9hZGVyT3B0aW9ucyBvcHRpb25zID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNo
ZWRSZXNvdXJjZU9wdGlvbnMoKTsKICAgICAgICAgb3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xp
Y3lJbXBvc2l0aW9uID0gQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6U2tpcFBvbGlj
eUNoZWNrOwogICAgICAgICBtX2NhY2hlZExpbmtSZXNvdXJjZSA9IGRvY3VtZW50LmNhY2hlZFJl
c291cmNlTG9hZGVyKCkucmVxdWVzdExpbmtSZXNvdXJjZSh0eXBlLCBDYWNoZWRSZXNvdXJjZVJl
cXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LmNvbXBsZXRlVVJMKGhyZWYpKSwgb3B0aW9u
cywgcHJpb3JpdHkpKTsKICAgICAgICAgaWYgKG1fY2FjaGVkTGlua1Jlc291cmNlKQotICAgICAg
ICAgICAgbV9jYWNoZWRMaW5rUmVzb3VyY2UtPmFkZENsaWVudCh0aGlzKTsKKyAgICAgICAgICAg
IG1fY2FjaGVkTGlua1Jlc291cmNlLT5hZGRDbGllbnQoKnRoaXMpOwogICAgIH0KICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua1ByZWxvYWRSZXNvdXJjZUNs
aWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rUHJlbG9hZFJlc291cmNlQ2xpZW50
cy5oCmluZGV4IDkyNzNkNjliZGZhZjVjYjk0MjRjNmNkY2YwNWQ3ZWUxYjBlZWY2MWEuLmQ3ZDYy
MzlmNzIyOTg2NDA0MTAxZGFkOWIzNTkzMDI0NTIxYmY1MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9MaW5rUHJlbG9hZFJlc291cmNlQ2xpZW50cy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9MaW5rUHJlbG9hZFJlc291cmNlQ2xpZW50cy5oCkBAIC01NCwxMiArNTQs
MTIgQEAgcHJvdGVjdGVkOgogCiAgICAgTGlua1ByZWxvYWRSZXNvdXJjZUNsaWVudChMaW5rTG9h
ZGVyJiwgQ2FjaGVkUmVzb3VyY2UmKTsKIAotICAgIHZvaWQgYWRkUmVzb3VyY2UoQ2FjaGVkUmVz
b3VyY2VDbGllbnQqIGNsaWVudCkKKyAgICB2b2lkIGFkZFJlc291cmNlKENhY2hlZFJlc291cmNl
Q2xpZW50JiBjbGllbnQpCiAgICAgewogICAgICAgICBtX3Jlc291cmNlLT5hZGRDbGllbnQoY2xp
ZW50KTsKICAgICB9CiAKLSAgICB2b2lkIGNsZWFyUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2VDbGll
bnQqIGNsaWVudCkKKyAgICB2b2lkIGNsZWFyUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2VDbGllbnQm
IGNsaWVudCkKICAgICB7CiAgICAgICAgIGlmIChtX3Jlc291cmNlKQogICAgICAgICAgICAgbV9y
ZXNvdXJjZS0+cmVtb3ZlQ2xpZW50KGNsaWVudCk7CkBAIC04OSwxMyArODksMTMgQEAgcHVibGlj
OgogICAgICAgICB0cmlnZ2VyRXZlbnRzKHJlc291cmNlKTsKICAgICB9CiAKLSAgICB2b2lkIGNs
ZWFyKCkgb3ZlcnJpZGUgeyBjbGVhclJlc291cmNlKHRoaXMpOyB9CisgICAgdm9pZCBjbGVhcigp
IG92ZXJyaWRlIHsgY2xlYXJSZXNvdXJjZSgqdGhpcyk7IH0KIAogcHJpdmF0ZToKICAgICBMaW5r
UHJlbG9hZFNjcmlwdFJlc291cmNlQ2xpZW50KExpbmtMb2FkZXImIGxvYWRlciwgQ2FjaGVkU2Ny
aXB0JiByZXNvdXJjZSkKICAgICAgICAgOiBMaW5rUHJlbG9hZFJlc291cmNlQ2xpZW50KGxvYWRl
ciwgcmVzb3VyY2UpCiAgICAgewotICAgICAgICBhZGRSZXNvdXJjZSh0aGlzKTsKKyAgICAgICAg
YWRkUmVzb3VyY2UoKnRoaXMpOwogICAgIH0KIH07CiAKQEAgLTExNCwxMyArMTE0LDEzIEBAIHB1
YmxpYzoKICAgICAgICAgdHJpZ2dlckV2ZW50cyhyZXNvdXJjZSk7CiAgICAgfQogCi0gICAgdm9p
ZCBjbGVhcigpIG92ZXJyaWRlIHsgY2xlYXJSZXNvdXJjZSh0aGlzKTsgfQorICAgIHZvaWQgY2xl
YXIoKSBvdmVycmlkZSB7IGNsZWFyUmVzb3VyY2UoKnRoaXMpOyB9CiAKIHByaXZhdGU6CiAgICAg
TGlua1ByZWxvYWRTdHlsZVJlc291cmNlQ2xpZW50KExpbmtMb2FkZXImIGxvYWRlciwgQ2FjaGVk
Q1NTU3R5bGVTaGVldCYgcmVzb3VyY2UpCiAgICAgICAgIDogTGlua1ByZWxvYWRSZXNvdXJjZUNs
aWVudChsb2FkZXIsIHJlc291cmNlKQogICAgIHsKLSAgICAgICAgYWRkUmVzb3VyY2UodGhpcyk7
CisgICAgICAgIGFkZFJlc291cmNlKCp0aGlzKTsKICAgICB9CiB9OwogCkBAIC0xMzksMTMgKzEz
OSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIHRyaWdnZXJFdmVudHMocmVzb3VyY2UpOwogICAgIH0K
IAotICAgIHZvaWQgY2xlYXIoKSBvdmVycmlkZSB7IGNsZWFyUmVzb3VyY2UodGhpcyk7IH0KKyAg
ICB2b2lkIGNsZWFyKCkgb3ZlcnJpZGUgeyBjbGVhclJlc291cmNlKCp0aGlzKTsgfQogCiBwcml2
YXRlOgogICAgIExpbmtQcmVsb2FkSW1hZ2VSZXNvdXJjZUNsaWVudChMaW5rTG9hZGVyJiBsb2Fk
ZXIsIENhY2hlZEltYWdlJiByZXNvdXJjZSkKICAgICAgICAgOiBMaW5rUHJlbG9hZFJlc291cmNl
Q2xpZW50KGxvYWRlciwgZHluYW1pY19jYXN0PENhY2hlZFJlc291cmNlJj4ocmVzb3VyY2UpKQog
ICAgIHsKLSAgICAgICAgYWRkUmVzb3VyY2UodGhpcyk7CisgICAgICAgIGFkZFJlc291cmNlKCp0
aGlzKTsKICAgICB9CiB9OwogCkBAIC0xNjQsMTMgKzE2NCwxMyBAQCBwdWJsaWM6CiAgICAgICAg
IHRyaWdnZXJFdmVudHMoJnJlc291cmNlKTsKICAgICB9CiAKLSAgICB2b2lkIGNsZWFyKCkgb3Zl
cnJpZGUgeyBjbGVhclJlc291cmNlKHRoaXMpOyB9CisgICAgdm9pZCBjbGVhcigpIG92ZXJyaWRl
IHsgY2xlYXJSZXNvdXJjZSgqdGhpcyk7IH0KIAogcHJpdmF0ZToKICAgICBMaW5rUHJlbG9hZEZv
bnRSZXNvdXJjZUNsaWVudChMaW5rTG9hZGVyJiBsb2FkZXIsIENhY2hlZEZvbnQmIHJlc291cmNl
KQogICAgICAgICA6IExpbmtQcmVsb2FkUmVzb3VyY2VDbGllbnQobG9hZGVyLCByZXNvdXJjZSkK
ICAgICB7Ci0gICAgICAgIGFkZFJlc291cmNlKHRoaXMpOworICAgICAgICBhZGRSZXNvdXJjZSgq
dGhpcyk7CiAgICAgfQogfTsKIApAQCAtMTg5LDEzICsxODksMTMgQEAgcHVibGljOgogICAgICAg
ICB0cmlnZ2VyRXZlbnRzKHJlc291cmNlKTsKICAgICB9CiAKLSAgICB2b2lkIGNsZWFyKCkgb3Zl
cnJpZGUgeyBjbGVhclJlc291cmNlKHRoaXMpOyB9CisgICAgdm9pZCBjbGVhcigpIG92ZXJyaWRl
IHsgY2xlYXJSZXNvdXJjZSgqdGhpcyk7IH0KIAogcHJpdmF0ZToKICAgICBMaW5rUHJlbG9hZFJh
d1Jlc291cmNlQ2xpZW50KExpbmtMb2FkZXImIGxvYWRlciwgQ2FjaGVkUmF3UmVzb3VyY2UmIHJl
c291cmNlKQogICAgICAgICA6IExpbmtQcmVsb2FkUmVzb3VyY2VDbGllbnQobG9hZGVyLCByZXNv
dXJjZSkKICAgICB7Ci0gICAgICAgIGFkZFJlc291cmNlKHRoaXMpOworICAgICAgICBhZGRSZXNv
dXJjZSgqdGhpcyk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlh
UmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDljNzI2NThhMjljOGRhNzAxOTU1ZGVmZTg5YmI5NDBi
OGNhZDJlNGIuLjkxNzYzZDY1MTU3NzAyMjQ1YmIwNzIxNzU1YzAzMTJjZDc4ZmJhNGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTEwNSw3
ICsxMDUsNyBAQCBNZWRpYVJlc291cmNlOjpNZWRpYVJlc291cmNlKE1lZGlhUmVzb3VyY2VMb2Fk
ZXImIGxvYWRlciwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8QwogICAgICwgbV9yZXNvdXJjZShyZXNv
dXJjZSkKIHsKICAgICBBU1NFUlQocmVzb3VyY2UpOwotICAgIHJlc291cmNlLT5hZGRDbGllbnQo
dGhpcyk7CisgICAgcmVzb3VyY2UtPmFkZENsaWVudCgqdGhpcyk7CiB9CiAKIE1lZGlhUmVzb3Vy
Y2U6On5NZWRpYVJlc291cmNlKCkKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lkIE1lZGlhUmVzb3Vy
Y2U6OnN0b3AoKQogICAgIGlmICghbV9yZXNvdXJjZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
bV9yZXNvdXJjZS0+cmVtb3ZlQ2xpZW50KHRoaXMpOworICAgIG1fcmVzb3VyY2UtPnJlbW92ZUNs
aWVudCgqdGhpcyk7CiAgICAgbV9yZXNvdXJjZSA9IG51bGxwdHI7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAKaW5kZXggZWViMjA5ZDdlZDcxYTQ4NzQ1M2Qx
ZGM4ZWU4MjBlZGEwYmUwMjhiNC4uZjg1ZDVkNTM1MmM5YTE1YWYyY2QxYTg5ZDlhZWRlNzViM2Zi
NDFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAKQEAgLTU2
LDcgKzU2LDcgQEAgVGV4dFRyYWNrTG9hZGVyOjpUZXh0VHJhY2tMb2FkZXIoVGV4dFRyYWNrTG9h
ZGVyQ2xpZW50JiBjbGllbnQsIFNjcmlwdEV4ZWN1dGlvbkMKIFRleHRUcmFja0xvYWRlcjo6flRl
eHRUcmFja0xvYWRlcigpCiB7CiAgICAgaWYgKG1fcmVzb3VyY2UpCi0gICAgICAgIG1fcmVzb3Vy
Y2UtPnJlbW92ZUNsaWVudCh0aGlzKTsKKyAgICAgICAgbV9yZXNvdXJjZS0+cmVtb3ZlQ2xpZW50
KCp0aGlzKTsKIH0KIAogdm9pZCBUZXh0VHJhY2tMb2FkZXI6OmN1ZUxvYWRUaW1lckZpcmVkKCkK
QEAgLTczLDcgKzczLDcgQEAgdm9pZCBUZXh0VHJhY2tMb2FkZXI6OmN1ZUxvYWRUaW1lckZpcmVk
KCkKIHZvaWQgVGV4dFRyYWNrTG9hZGVyOjpjYW5jZWxMb2FkKCkKIHsKICAgICBpZiAobV9yZXNv
dXJjZSkgewotICAgICAgICBtX3Jlc291cmNlLT5yZW1vdmVDbGllbnQodGhpcyk7CisgICAgICAg
IG1fcmVzb3VyY2UtPnJlbW92ZUNsaWVudCgqdGhpcyk7CiAgICAgICAgIG1fcmVzb3VyY2UgPSBu
dWxscHRyOwogICAgIH0KIH0KQEAgLTE2MSw3ICsxNjEsNyBAQCBib29sIFRleHRUcmFja0xvYWRl
cjo6bG9hZChjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjcm9zc09yaWdpbk1vZGUsIGJv
b2wgaQogICAgIGlmICghbV9yZXNvdXJjZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAg
bV9yZXNvdXJjZS0+YWRkQ2xpZW50KHRoaXMpOworICAgIG1fcmVzb3VyY2UtPmFkZENsaWVudCgq
dGhpcyk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAppbmRleCAzNTJmYTUzOGY0MTI5NWJi
ODI0MGE4MWJjNTFlZDZhZTA0MTQ1Mjk0Li5iZmRlNDhmMDQ2ZmMyMTVkMWIxOTdmZmRhMTc5MmRk
YTA1OTQwZWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
Q1NTU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZENTU1N0eWxlU2hlZXQuY3BwCkBAIC01MywxNiArNTMsMTYgQEAgQ2FjaGVkQ1NTU3R5bGVTaGVl
dDo6fkNhY2hlZENTU1N0eWxlU2hlZXQoKQogICAgICAgICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNo
ZS0+cmVtb3ZlZEZyb21NZW1vcnlDYWNoZSgpOwogfQogCi12b2lkIENhY2hlZENTU1N0eWxlU2hl
ZXQ6OmRpZEFkZENsaWVudChDYWNoZWRSZXNvdXJjZUNsaWVudCogYykKK3ZvaWQgQ2FjaGVkQ1NT
U3R5bGVTaGVldDo6ZGlkQWRkQ2xpZW50KENhY2hlZFJlc291cmNlQ2xpZW50JiBjbGllbnQpCiB7
Ci0gICAgQVNTRVJUKGMtPnJlc291cmNlQ2xpZW50VHlwZSgpID09IENhY2hlZFN0eWxlU2hlZXRD
bGllbnQ6OmV4cGVjdGVkVHlwZSgpKTsKKyAgICBBU1NFUlQoY2xpZW50LnJlc291cmNlQ2xpZW50
VHlwZSgpID09IENhY2hlZFN0eWxlU2hlZXRDbGllbnQ6OmV4cGVjdGVkVHlwZSgpKTsKICAgICAv
LyBDYWNoZWRSZXNvdXJjZTo6ZGlkQWRkQ2xpZW50KCkgbXVzdCBiZSBiZWZvcmUgc2V0Q1NTU3R5
bGVTaGVldCgpLAogICAgIC8vIGJlY2F1c2Ugc2V0Q1NTU3R5bGVTaGVldCgpIG1heSBjYXVzZSBz
Y3JpcHRzIHRvIGJlIGV4ZWN1dGVkLCB3aGljaCBjb3VsZCBkZXN0cm95ICdjJyBpZiBpdCBpcyBh
biBpbnN0YW5jZSBvZiBIVE1MTGlua0VsZW1lbnQuCiAgICAgLy8gc2VlIHRoZSBjb21tZW50IG9m
IEhUTUxMaW5rRWxlbWVudDo6c2V0Q1NTU3R5bGVTaGVldC4KLSAgICBDYWNoZWRSZXNvdXJjZTo6
ZGlkQWRkQ2xpZW50KGMpOworICAgIENhY2hlZFJlc291cmNlOjpkaWRBZGRDbGllbnQoY2xpZW50
KTsKIAogICAgIGlmICghaXNMb2FkaW5nKCkpCi0gICAgICAgIHN0YXRpY19jYXN0PENhY2hlZFN0
eWxlU2hlZXRDbGllbnQqPihjKS0+c2V0Q1NTU3R5bGVTaGVldChtX3Jlc291cmNlUmVxdWVzdC51
cmwoKSwgbV9yZXNwb25zZS51cmwoKSwgbV9kZWNvZGVyLT5lbmNvZGluZygpLm5hbWUoKSwgdGhp
cyk7CisgICAgICAgIHN0YXRpY19jYXN0PENhY2hlZFN0eWxlU2hlZXRDbGllbnQmPihjbGllbnQp
LnNldENTU1N0eWxlU2hlZXQobV9yZXNvdXJjZVJlcXVlc3QudXJsKCksIG1fcmVzcG9uc2UudXJs
KCksIG1fZGVjb2Rlci0+ZW5jb2RpbmcoKS5uYW1lKCksIHRoaXMpOwogfQogCiB2b2lkIENhY2hl
ZENTU1N0eWxlU2hlZXQ6OnNldEVuY29kaW5nKGNvbnN0IFN0cmluZyYgY2hzKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmgKaW5kZXggMDg0
MzM3NjczOWRjZmU2OGQwNGI4YzJhZWJhMGMzNTMxNzk0MTFlMy4uZGU3NzUzNzk2ZTc0ZjZiZmUy
NmFmZjdkOWUyNWE5YzViNjUwZTVlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oCkBAIC01MCw3ICs1MCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgYm9vbCBjYW5Vc2VTaGVldChNSU1FVHlwZUNoZWNrLCBib29sKiBo
YXNWYWxpZE1JTUVUeXBlKSBjb25zdDsKICAgICAgICAgYm9vbCBtYXlUcnlSZXBsYWNlRW5jb2Rl
ZERhdGEoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICAgICAgdm9pZCBkaWRB
ZGRDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQqKSBmaW5hbDsKKyAgICAgICAgdm9pZCBkaWRB
ZGRDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQmKSBmaW5hbDsKIAogICAgICAgICB2b2lkIHNl
dEVuY29kaW5nKGNvbnN0IFN0cmluZyYpIGZpbmFsOwogICAgICAgICBTdHJpbmcgZW5jb2Rpbmco
KSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRGb250LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmNw
cAppbmRleCBlYTA3MjcxNzU3ODQ0MTUxOTYzNjY3OTQyZDk0YzkyNzc3MTkxNzNkLi4wMzA1MWNk
MGYyOTE0MjAzYTAzMDlkYTVkYmZmYmNlMmVlZjhkYTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCkBAIC02MywxMSArNjMsMTEgQEAgdm9pZCBDYWNoZWRG
b250Ojpsb2FkKENhY2hlZFJlc291cmNlTG9hZGVyJikKICAgICBzZXRMb2FkaW5nKHRydWUpOwog
fQogCi12b2lkIENhY2hlZEZvbnQ6OmRpZEFkZENsaWVudChDYWNoZWRSZXNvdXJjZUNsaWVudCog
Y2xpZW50KQordm9pZCBDYWNoZWRGb250OjpkaWRBZGRDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGll
bnQmIGNsaWVudCkKIHsKLSAgICBBU1NFUlQoY2xpZW50LT5yZXNvdXJjZUNsaWVudFR5cGUoKSA9
PSBDYWNoZWRGb250Q2xpZW50OjpleHBlY3RlZFR5cGUoKSk7CisgICAgQVNTRVJUKGNsaWVudC5y
ZXNvdXJjZUNsaWVudFR5cGUoKSA9PSBDYWNoZWRGb250Q2xpZW50OjpleHBlY3RlZFR5cGUoKSk7
CiAgICAgaWYgKCFpc0xvYWRpbmcoKSkKLSAgICAgICAgc3RhdGljX2Nhc3Q8Q2FjaGVkRm9udENs
aWVudCo+KGNsaWVudCktPmZvbnRMb2FkZWQoKnRoaXMpOworICAgICAgICBzdGF0aWNfY2FzdDxD
YWNoZWRGb250Q2xpZW50Jj4oY2xpZW50KS5mb250TG9hZGVkKCp0aGlzKTsKIH0KIAogdm9pZCBD
YWNoZWRGb250OjpmaW5pc2hMb2FkaW5nKFNoYXJlZEJ1ZmZlciogZGF0YSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oCmluZGV4IGNhNzkxMWU1NWM1YmI5ZmU3OTM4NzA5
MTMxNmQ5OTRiMWZlYjM5MTIuLmYzOWQwOTdiNzQ3NWY5ZWNkYjY2NTE2YTUyM2EzZDMyYTRiNjBh
NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuaApAQCAtNjksNyAr
NjksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciYpIG92
ZXJyaWRlOwogICAgIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgc2V0Qm9keURhdGFGcm9t
KGNvbnN0IENhY2hlZFJlc291cmNlJikgZmluYWwgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQog
Ci0gICAgdm9pZCBkaWRBZGRDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQqKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRpZEFkZENsaWVudChDYWNoZWRSZXNvdXJjZUNsaWVudCYpIG92ZXJyaWRlOwog
ICAgIHZvaWQgZmluaXNoTG9hZGluZyhTaGFyZWRCdWZmZXIqKSBvdmVycmlkZTsKIAogICAgIHZv
aWQgYWxsQ2xpZW50c1JlbW92ZWQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCmluZGV4IDJmMzYxMzA3YTkxZDRlMTg3NzhkNjNlYjRhODI2
NmI2MTU1Yzc4NzEuLmNjNjkxZTEzZDY0NWY4NzdlZmMxMTNhNDZjMmM4MDI4NjdkNDBkNWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcApAQCAtMTAyLDI5
ICsxMDIsMjggQEAgdm9pZCBDYWNoZWRJbWFnZTo6c2V0Qm9keURhdGFGcm9tKGNvbnN0IENhY2hl
ZFJlc291cmNlJiByZXNvdXJjZSkKICAgICAgICAgbV9zdmdJbWFnZUNhY2hlID0gc3RkOjptYWtl
X3VuaXF1ZTxTVkdJbWFnZUNhY2hlPigmZG93bmNhc3Q8U1ZHSW1hZ2U+KCptX2ltYWdlKSk7CiB9
CiAKLXZvaWQgQ2FjaGVkSW1hZ2U6OmRpZEFkZENsaWVudChDYWNoZWRSZXNvdXJjZUNsaWVudCog
Y2xpZW50KQordm9pZCBDYWNoZWRJbWFnZTo6ZGlkQWRkQ2xpZW50KENhY2hlZFJlc291cmNlQ2xp
ZW50JiBjbGllbnQpCiB7CiAgICAgaWYgKG1fZGF0YSAmJiAhbV9pbWFnZSAmJiAhZXJyb3JPY2N1
cnJlZCgpKSB7CiAgICAgICAgIGNyZWF0ZUltYWdlKCk7CiAgICAgICAgIG1faW1hZ2UtPnNldERh
dGEobV9kYXRhLmNvcHlSZWYoKSwgdHJ1ZSk7CiAgICAgfQogCi0gICAgQVNTRVJUKGNsaWVudC0+
cmVzb3VyY2VDbGllbnRUeXBlKCkgPT0gQ2FjaGVkSW1hZ2VDbGllbnQ6OmV4cGVjdGVkVHlwZSgp
KTsKKyAgICBBU1NFUlQoY2xpZW50LnJlc291cmNlQ2xpZW50VHlwZSgpID09IENhY2hlZEltYWdl
Q2xpZW50OjpleHBlY3RlZFR5cGUoKSk7CiAgICAgaWYgKG1faW1hZ2UgJiYgIW1faW1hZ2UtPmlz
TnVsbCgpKQotICAgICAgICBzdGF0aWNfY2FzdDxDYWNoZWRJbWFnZUNsaWVudCo+KGNsaWVudCkt
PmltYWdlQ2hhbmdlZCh0aGlzKTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8Q2FjaGVkSW1hZ2VDbGll
bnQmPihjbGllbnQpLmltYWdlQ2hhbmdlZCh0aGlzKTsKIAogICAgIENhY2hlZFJlc291cmNlOjpk
aWRBZGRDbGllbnQoY2xpZW50KTsKIH0KIAotdm9pZCBDYWNoZWRJbWFnZTo6ZGlkUmVtb3ZlQ2xp
ZW50KENhY2hlZFJlc291cmNlQ2xpZW50KiBjbGllbnQpCit2b2lkIENhY2hlZEltYWdlOjpkaWRS
ZW1vdmVDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQmIGNsaWVudCkKIHsKLSAgICBBU1NFUlQo
Y2xpZW50KTsKLSAgICBBU1NFUlQoY2xpZW50LT5yZXNvdXJjZUNsaWVudFR5cGUoKSA9PSBDYWNo
ZWRJbWFnZUNsaWVudDo6ZXhwZWN0ZWRUeXBlKCkpOworICAgIEFTU0VSVChjbGllbnQucmVzb3Vy
Y2VDbGllbnRUeXBlKCkgPT0gQ2FjaGVkSW1hZ2VDbGllbnQ6OmV4cGVjdGVkVHlwZSgpKTsKIAot
ICAgIG1fcGVuZGluZ0NvbnRhaW5lclNpemVSZXF1ZXN0cy5yZW1vdmUoc3RhdGljX2Nhc3Q8Q2Fj
aGVkSW1hZ2VDbGllbnQqPihjbGllbnQpKTsKKyAgICBtX3BlbmRpbmdDb250YWluZXJTaXplUmVx
dWVzdHMucmVtb3ZlKCZzdGF0aWNfY2FzdDxDYWNoZWRJbWFnZUNsaWVudCY+KGNsaWVudCkpOwog
CiAgICAgaWYgKG1fc3ZnSW1hZ2VDYWNoZSkKLSAgICAgICAgbV9zdmdJbWFnZUNhY2hlLT5yZW1v
dmVDbGllbnRGcm9tQ2FjaGUoc3RhdGljX2Nhc3Q8Q2FjaGVkSW1hZ2VDbGllbnQqPihjbGllbnQp
KTsKKyAgICAgICAgbV9zdmdJbWFnZUNhY2hlLT5yZW1vdmVDbGllbnRGcm9tQ2FjaGUoJnN0YXRp
Y19jYXN0PENhY2hlZEltYWdlQ2xpZW50Jj4oY2xpZW50KSk7CiAKICAgICBDYWNoZWRSZXNvdXJj
ZTo6ZGlkUmVtb3ZlQ2xpZW50KGNsaWVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRJbWFnZS5oCmluZGV4IDhjZmNjOTJkOGUxZjMyNWMzMTIzYTg0YmUyOGJmMTdlODFk
NzVlOTUuLmY3OTNiYzlhMTY1ZmQ1YTQzYmJkOTBiMWNmMGU3MWQxZGRjZjU1YzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oCkBAIC05OSwxMSArOTksMTEgQEAg
cHJpdmF0ZToKICAgICB2b2lkIG5vdGlmeU9ic2VydmVycyhjb25zdCBJbnRSZWN0KiBjaGFuZ2VS
ZWN0ID0gbnVsbHB0cik7CiAgICAgdm9pZCBjaGVja1Nob3VsZFBhaW50QnJva2VuSW1hZ2UoKTsK
IAotICAgIHZvaWQgc3dpdGNoQ2xpZW50c1RvUmV2YWxpZGF0ZWRSZXNvdXJjZSgpIG92ZXJyaWRl
OwotICAgIGJvb2wgbWF5VHJ5UmVwbGFjZUVuY29kZWREYXRhKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gdHJ1ZTsgfQorICAgIHZvaWQgc3dpdGNoQ2xpZW50c1RvUmV2YWxpZGF0ZWRSZXNvdXJj
ZSgpIGZpbmFsOworICAgIGJvb2wgbWF5VHJ5UmVwbGFjZUVuY29kZWREYXRhKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdm9pZCBkaWRBZGRDbGllbnQoQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQqKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZFJlbW92ZUNsaWVudChDYWNoZWRSZXNv
dXJjZUNsaWVudCopIG92ZXJyaWRlOworICAgIHZvaWQgZGlkQWRkQ2xpZW50KENhY2hlZFJlc291
cmNlQ2xpZW50JikgZmluYWw7CisgICAgdm9pZCBkaWRSZW1vdmVDbGllbnQoQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQmKSBmaW5hbDsKIAogICAgIHZvaWQgYWxsQ2xpZW50c1JlbW92ZWQoKSBvdmVycmlk
ZTsKICAgICB2b2lkIGRlc3Ryb3lEZWNvZGVkRGF0YSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKaW5kZXggMzMzMmUw
YzViYmU4OWZmYzA5ZjM2ZDU5N2JmYTVjMzA0YzM4YTllOS4uNDJlY2JiYzBkMTE2YmE3Mzc0OTJj
Zjk4YjQ2ZTMyZjc0NWJmZTg2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCkBAIC0xMTgsNyArMTE4LDcgQEAgdm9pZCBDYWNoZWRS
YXdSZXNvdXJjZTo6bm90aWZ5Q2xpZW50c0RhdGFXYXNSZWNlaXZlZChjb25zdCBjaGFyKiBkYXRh
LCB1bnNpZ25lZAogICAgICAgICBjLT5kYXRhUmVjZWl2ZWQodGhpcywgZGF0YSwgbGVuZ3RoKTsK
IH0KIAotdm9pZCBDYWNoZWRSYXdSZXNvdXJjZTo6ZGlkQWRkQ2xpZW50KENhY2hlZFJlc291cmNl
Q2xpZW50KiBjKQordm9pZCBDYWNoZWRSYXdSZXNvdXJjZTo6ZGlkQWRkQ2xpZW50KENhY2hlZFJl
c291cmNlQ2xpZW50JiBjKQogewogICAgIGlmICghaGFzQ2xpZW50KGMpKQogICAgICAgICByZXR1
cm47CkBAIC0xMjYsMTIgKzEyNiwxMiBAQCB2b2lkIENhY2hlZFJhd1Jlc291cmNlOjpkaWRBZGRD
bGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQqIGMpCiAgICAgLy8gdGhpcyByZXNvdXJjZSB0byBi
ZSBldmljdGVkIGZyb20gdGhlIGNhY2hlIGFuZCBhbGwgY2xpZW50cyB0byBiZSByZW1vdmVkLAog
ICAgIC8vIHNvIGEgcHJvdGVjdG9yIGlzIG5lY2Vzc2FyeS4KICAgICBDYWNoZWRSZXNvdXJjZUhh
bmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKLSAgICBDYWNoZWRS
YXdSZXNvdXJjZUNsaWVudCogY2xpZW50ID0gc3RhdGljX2Nhc3Q8Q2FjaGVkUmF3UmVzb3VyY2VD
bGllbnQqPihjKTsKKyAgICBDYWNoZWRSYXdSZXNvdXJjZUNsaWVudCYgY2xpZW50ID0gc3RhdGlj
X2Nhc3Q8Q2FjaGVkUmF3UmVzb3VyY2VDbGllbnQmPihjKTsKICAgICBzaXplX3QgcmVkaXJlY3RD
b3VudCA9IG1fcmVkaXJlY3RDaGFpbi5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCByZWRpcmVjdENvdW50OyBpKyspIHsKICAgICAgICAgUmVkaXJlY3RQYWlyIHJlZGlyZWN0ID0g
bV9yZWRpcmVjdENoYWluW2ldOwogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChyZWRp
cmVjdC5tX3JlcXVlc3QpOwotICAgICAgICBjbGllbnQtPnJlZGlyZWN0UmVjZWl2ZWQodGhpcywg
cmVxdWVzdCwgcmVkaXJlY3QubV9yZWRpcmVjdFJlc3BvbnNlKTsKKyAgICAgICAgY2xpZW50LnJl
ZGlyZWN0UmVjZWl2ZWQodGhpcywgcmVxdWVzdCwgcmVkaXJlY3QubV9yZWRpcmVjdFJlc3BvbnNl
KTsKICAgICAgICAgaWYgKCFoYXNDbGllbnQoYykpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
fQpAQCAtMTQ1LDEyICsxNDUsMTIgQEAgdm9pZCBDYWNoZWRSYXdSZXNvdXJjZTo6ZGlkQWRkQ2xp
ZW50KENhY2hlZFJlc291cmNlQ2xpZW50KiBjKQogICAgICAgICAgICAgQVNTRVJUKCF2YWxpZGF0
aW9uSW5Qcm9ncmVzcygpKTsKICAgICAgICAgICAgIHJlc3BvbnNlLnNldFNvdXJjZShSZXNvdXJj
ZVJlc3BvbnNlOjpTb3VyY2U6Ok1lbW9yeUNhY2hlKTsKICAgICAgICAgfQotICAgICAgICBjbGll
bnQtPnJlc3BvbnNlUmVjZWl2ZWQodGhpcywgcmVzcG9uc2UpOworICAgICAgICBjbGllbnQucmVz
cG9uc2VSZWNlaXZlZCh0aGlzLCByZXNwb25zZSk7CiAgICAgfQogICAgIGlmICghaGFzQ2xpZW50
KGMpKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKG1fZGF0YSkKLSAgICAgICAgY2xpZW50LT5k
YXRhUmVjZWl2ZWQodGhpcywgbV9kYXRhLT5kYXRhKCksIG1fZGF0YS0+c2l6ZSgpKTsKKyAgICAg
ICAgY2xpZW50LmRhdGFSZWNlaXZlZCh0aGlzLCBtX2RhdGEtPmRhdGEoKSwgbV9kYXRhLT5zaXpl
KCkpOwogICAgIGlmICghaGFzQ2xpZW50KGMpKQogICAgICAgIHJldHVybjsKICAgICBDYWNoZWRS
ZXNvdXJjZTo6ZGlkQWRkQ2xpZW50KGNsaWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5oCmluZGV4IDA1YTFhNWRjOTU1MDdmMmMxNTJkZjcw
YmU4OWNkYzBjZmY0MTBlOGQuLjljNWU3ZWNlMzQyMDQzODRkMjYzNjNhNzM1MjBlNThkZGI4ZTUw
MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNv
dXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJj
ZS5oCkBAIC01MSwxMCArNTEsMTAgQEAgcHVibGljOgogICAgIGJvb2wgd2FzUmVkaXJlY3RlZCgp
IGNvbnN0IHsgcmV0dXJuICFtX3JlZGlyZWN0Q2hhaW4uaXNFbXB0eSgpOyB9OwogCiBwcml2YXRl
OgotICAgIHZvaWQgZGlkQWRkQ2xpZW50KENhY2hlZFJlc291cmNlQ2xpZW50Kikgb3ZlcnJpZGU7
Ci0gICAgdm9pZCBhZGREYXRhQnVmZmVyKFNoYXJlZEJ1ZmZlciYpIG92ZXJyaWRlOwotICAgIHZv
aWQgYWRkRGF0YShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpIG92ZXJyaWRlOwot
ICAgIHZvaWQgZmluaXNoTG9hZGluZyhTaGFyZWRCdWZmZXIqKSBvdmVycmlkZTsKKyAgICB2b2lk
IGRpZEFkZENsaWVudChDYWNoZWRSZXNvdXJjZUNsaWVudCYpIGZpbmFsOworICAgIHZvaWQgYWRk
RGF0YUJ1ZmZlcihTaGFyZWRCdWZmZXImKSBmaW5hbDsKKyAgICB2b2lkIGFkZERhdGEoY29uc3Qg
Y2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBmaW5hbDsKKyAgICB2b2lkIGZpbmlzaExvYWRp
bmcoU2hhcmVkQnVmZmVyKikgZmluYWw7CiAKICAgICBib29sIHNob3VsZElnbm9yZUhUVFBTdGF0
dXNDb2RlRXJyb3JzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQg
YWxsQ2xpZW50c1JlbW92ZWQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCmluZGV4IDNiYWM5MTZiMTlkZjIxOGFhMjg3YjQzMjJk
ZmM4M2M2YTBkZGI4NTkuLmVjYjc4NTc3MjQxYzUzNThlNWQyZmFiOTNkYmQ1MDI2ZjAwOTM4NTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApA
QCAtNTI5LDI0ICs1MjksMjQgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6Y2xlYXJMb2FkZXIoKQog
ICAgIGRlbGV0ZUlmUG9zc2libGUoKTsKIH0KIAotdm9pZCBDYWNoZWRSZXNvdXJjZTo6YWRkQ2xp
ZW50KENhY2hlZFJlc291cmNlQ2xpZW50KiBjbGllbnQpCit2b2lkIENhY2hlZFJlc291cmNlOjph
ZGRDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQmIGNsaWVudCkKIHsKICAgICBpZiAoYWRkQ2xp
ZW50VG9TZXQoY2xpZW50KSkKICAgICAgICAgZGlkQWRkQ2xpZW50KGNsaWVudCk7CiB9CiAKLXZv
aWQgQ2FjaGVkUmVzb3VyY2U6OmRpZEFkZENsaWVudChDYWNoZWRSZXNvdXJjZUNsaWVudCogY2xp
ZW50KQordm9pZCBDYWNoZWRSZXNvdXJjZTo6ZGlkQWRkQ2xpZW50KENhY2hlZFJlc291cmNlQ2xp
ZW50JiBjbGllbnQpCiB7CiAgICAgaWYgKG1fZGVjb2RlZERhdGFEZWxldGlvblRpbWVyLmlzQWN0
aXZlKCkpCiAgICAgICAgIG1fZGVjb2RlZERhdGFEZWxldGlvblRpbWVyLnN0b3AoKTsKIAotICAg
IGlmIChtX2NsaWVudHNBd2FpdGluZ0NhbGxiYWNrLnJlbW92ZShjbGllbnQpKQotICAgICAgICBt
X2NsaWVudHMuYWRkKGNsaWVudCk7CisgICAgaWYgKG1fY2xpZW50c0F3YWl0aW5nQ2FsbGJhY2su
cmVtb3ZlKCZjbGllbnQpKQorICAgICAgICBtX2NsaWVudHMuYWRkKCZjbGllbnQpOwogICAgIGlm
ICghaXNMb2FkaW5nKCkgJiYgIXN0aWxsTmVlZHNMb2FkKCkpCi0gICAgICAgIGNsaWVudC0+bm90
aWZ5RmluaXNoZWQodGhpcyk7CisgICAgICAgIGNsaWVudC5ub3RpZnlGaW5pc2hlZCh0aGlzKTsK
IH0KIAotYm9vbCBDYWNoZWRSZXNvdXJjZTo6YWRkQ2xpZW50VG9TZXQoQ2FjaGVkUmVzb3VyY2VD
bGllbnQqIGNsaWVudCkKK2Jvb2wgQ2FjaGVkUmVzb3VyY2U6OmFkZENsaWVudFRvU2V0KENhY2hl
ZFJlc291cmNlQ2xpZW50JiBjbGllbnQpCiB7CiAgICAgaWYgKG1fcHJlbG9hZFJlc3VsdCA9PSBQ
cmVsb2FkTm90UmVmZXJlbmNlZCkgewogICAgICAgICBpZiAoaXNMb2FkZWQoKSkKQEAgLTU2NCwy
NSArNTY0LDI1IEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2U6OmFkZENsaWVudFRvU2V0KENhY2hlZFJl
c291cmNlQ2xpZW50KiBjbGllbnQpCiAgICAgICAgIC8vIHN5bmNocm9ub3VzbHkgKGUuZy4sIHNj
cmlwdHMgbWF5IG5vdCBoYXZlIHNldCBhbGwgdGhlIHN0YXRlIHRoZXkgbmVlZCB0byBoYW5kbGUg
dGhlIGxvYWQpLgogICAgICAgICAvLyBUaGVyZWZvcmUsIHJhdGhlciB0aGFuIGltbWVkaWF0ZWx5
IHNlbmRpbmcgY2FsbGJhY2tzIG9uIGEgY2FjaGUgaGl0IGxpa2Ugb3RoZXIgQ2FjaGVkUmVzb3Vy
Y2VzLAogICAgICAgICAvLyB3ZSBzY2hlZHVsZSB0aGUgY2FsbGJhY2tzIGFuZCBlbnN1cmUgd2Ug
bmV2ZXIgZmluaXNoIHN5bmNocm9ub3VzbHkuCi0gICAgICAgIEFTU0VSVCghbV9jbGllbnRzQXdh
aXRpbmdDYWxsYmFjay5jb250YWlucyhjbGllbnQpKTsKLSAgICAgICAgbV9jbGllbnRzQXdhaXRp
bmdDYWxsYmFjay5hZGQoY2xpZW50LCBzdGQ6Om1ha2VfdW5pcXVlPENhbGxiYWNrPigqdGhpcywg
KmNsaWVudCkpOworICAgICAgICBBU1NFUlQoIW1fY2xpZW50c0F3YWl0aW5nQ2FsbGJhY2suY29u
dGFpbnMoJmNsaWVudCkpOworICAgICAgICBtX2NsaWVudHNBd2FpdGluZ0NhbGxiYWNrLmFkZCgm
Y2xpZW50LCBzdGQ6Om1ha2VfdW5pcXVlPENhbGxiYWNrPigqdGhpcywgY2xpZW50KSk7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBtX2NsaWVudHMuYWRkKGNsaWVudCk7Cisg
ICAgbV9jbGllbnRzLmFkZCgmY2xpZW50KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBD
YWNoZWRSZXNvdXJjZTo6cmVtb3ZlQ2xpZW50KENhY2hlZFJlc291cmNlQ2xpZW50KiBjbGllbnQp
Cit2b2lkIENhY2hlZFJlc291cmNlOjpyZW1vdmVDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQm
IGNsaWVudCkKIHsKLSAgICBhdXRvIGNhbGxiYWNrID0gbV9jbGllbnRzQXdhaXRpbmdDYWxsYmFj
ay50YWtlKGNsaWVudCk7CisgICAgYXV0byBjYWxsYmFjayA9IG1fY2xpZW50c0F3YWl0aW5nQ2Fs
bGJhY2sudGFrZSgmY2xpZW50KTsKICAgICBpZiAoY2FsbGJhY2spIHsKLSAgICAgICAgQVNTRVJU
KCFtX2NsaWVudHMuY29udGFpbnMoY2xpZW50KSk7CisgICAgICAgIEFTU0VSVCghbV9jbGllbnRz
LmNvbnRhaW5zKCZjbGllbnQpKTsKICAgICAgICAgY2FsbGJhY2stPmNhbmNlbCgpOwogICAgICAg
ICBjYWxsYmFjayA9IG51bGxwdHI7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUKG1fY2xp
ZW50cy5jb250YWlucyhjbGllbnQpKTsKLSAgICAgICAgbV9jbGllbnRzLnJlbW92ZShjbGllbnQp
OworICAgICAgICBBU1NFUlQobV9jbGllbnRzLmNvbnRhaW5zKCZjbGllbnQpKTsKKyAgICAgICAg
bV9jbGllbnRzLnJlbW92ZSgmY2xpZW50KTsKICAgICAgICAgZGlkUmVtb3ZlQ2xpZW50KGNsaWVu
dCk7CiAgICAgfQogCkBAIC03NzUsMTggKzc3NSwxOCBAQCB2b2lkIENhY2hlZFJlc291cmNlOjpz
d2l0Y2hDbGllbnRzVG9SZXZhbGlkYXRlZFJlc291cmNlKCkKICAgICB9CiAKICAgICBmb3IgKGF1
dG8mIGNsaWVudCA6IGNsaWVudHNUb01vdmUpCi0gICAgICAgIHJlbW92ZUNsaWVudChjbGllbnQp
OworICAgICAgICByZW1vdmVDbGllbnQoKmNsaWVudCk7CiAgICAgQVNTRVJUKG1fY2xpZW50cy5p
c0VtcHR5KCkpOwogCiAgICAgZm9yIChhdXRvJiBjbGllbnQgOiBjbGllbnRzVG9Nb3ZlKQotICAg
ICAgICBtX3Jlc291cmNlVG9SZXZhbGlkYXRlLT5hZGRDbGllbnRUb1NldChjbGllbnQpOworICAg
ICAgICBtX3Jlc291cmNlVG9SZXZhbGlkYXRlLT5hZGRDbGllbnRUb1NldCgqY2xpZW50KTsKICAg
ICBmb3IgKGF1dG8mIGNsaWVudCA6IGNsaWVudHNUb01vdmUpIHsKICAgICAgICAgLy8gQ2FsbGlu
ZyBkaWRBZGRDbGllbnQgbWF5IGRvIGFueXRoaW5nLCBpbmNsdWRpbmcgdHJ5aW5nIHRvIGNhbmNl
bCByZXZhbGlkYXRpb24uCiAgICAgICAgIC8vIEFzc2VydCB0aGF0IGl0IGRpZG4ndCBzdWNjZWVk
LgogICAgICAgICBBU1NFUlQobV9yZXNvdXJjZVRvUmV2YWxpZGF0ZSk7CiAgICAgICAgIC8vIENh
bGxpbmcgZGlkQWRkQ2xpZW50IGZvciBhIGNsaWVudCBtYXkgZW5kIHVwIHJlbW92aW5nIGFub3Ro
ZXIgY2xpZW50LiBJbiB0aGF0IGNhc2UgaXQgd29uJ3QgYmUgaW4gdGhlIHNldCBhbnltb3JlLgog
ICAgICAgICBpZiAobV9yZXNvdXJjZVRvUmV2YWxpZGF0ZS0+bV9jbGllbnRzLmNvbnRhaW5zKGNs
aWVudCkpCi0gICAgICAgICAgICBtX3Jlc291cmNlVG9SZXZhbGlkYXRlLT5kaWRBZGRDbGllbnQo
Y2xpZW50KTsKKyAgICAgICAgICAgIG1fcmVzb3VyY2VUb1JldmFsaWRhdGUtPmRpZEFkZENsaWVu
dCgqY2xpZW50KTsKICAgICB9CiAgICAgbV9zd2l0Y2hpbmdDbGllbnRzVG9SZXZhbGlkYXRlZFJl
c291cmNlID0gZmFsc2U7CiB9CkBAIC05MTEsNyArOTExLDcgQEAgaW5saW5lIHZvaWQgQ2FjaGVk
UmVzb3VyY2U6OkNhbGxiYWNrOjpjYW5jZWwoKQogCiB2b2lkIENhY2hlZFJlc291cmNlOjpDYWxs
YmFjazo6dGltZXJGaXJlZCgpCiB7Ci0gICAgbV9yZXNvdXJjZS5kaWRBZGRDbGllbnQoJm1fY2xp
ZW50KTsKKyAgICBtX3Jlc291cmNlLmRpZEFkZENsaWVudChtX2NsaWVudCk7CiB9CiAKICNpZiBV
U0UoRk9VTkRBVElPTikgfHwgVVNFKFNPVVApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5oCmluZGV4IGQ2YTAxYjY5NmQ0NjNjZDMzZDI0MWNiZmNkYmUzYTc4
Y2ZjNTFkYTcuLjY3OTFkZjhmN2I0MTYzNzVlMGMxODk5M2EyNjc1NDEyZDFlYjc0YjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCkBAIC0xMjQsMTAg
KzEyNCwxMCBAQCBwdWJsaWM6CiAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkgbG9hZFByaW9yaXR5
KCkgY29uc3QgeyByZXR1cm4gbV9sb2FkUHJpb3JpdHk7IH0KICAgICB2b2lkIHNldExvYWRQcmlv
cml0eShjb25zdCBPcHRpb25hbDxSZXNvdXJjZUxvYWRQcmlvcml0eT4mKTsKIAotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgYWRkQ2xpZW50KENhY2hlZFJlc291cmNlQ2xpZW50Kik7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCByZW1vdmVDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQqKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZENsaWVudChDYWNoZWRSZXNvdXJjZUNsaWVudCYpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlQ2xpZW50KENhY2hlZFJlc291cmNlQ2xpZW50
Jik7CiAgICAgYm9vbCBoYXNDbGllbnRzKCkgY29uc3QgeyByZXR1cm4gIW1fY2xpZW50cy5pc0Vt
cHR5KCkgfHwgIW1fY2xpZW50c0F3YWl0aW5nQ2FsbGJhY2suaXNFbXB0eSgpOyB9Ci0gICAgYm9v
bCBoYXNDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQqIGNsaWVudCkgeyByZXR1cm4gbV9jbGll
bnRzLmNvbnRhaW5zKGNsaWVudCkgfHwgbV9jbGllbnRzQXdhaXRpbmdDYWxsYmFjay5jb250YWlu
cyhjbGllbnQpOyB9CisgICAgYm9vbCBoYXNDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQmIGNs
aWVudCkgeyByZXR1cm4gbV9jbGllbnRzLmNvbnRhaW5zKCZjbGllbnQpIHx8IG1fY2xpZW50c0F3
YWl0aW5nQ2FsbGJhY2suY29udGFpbnMoJmNsaWVudCk7IH0KICAgICBib29sIGRlbGV0ZUlmUG9z
c2libGUoKTsKIAogICAgIGVudW0gUHJlbG9hZFJlc3VsdCB7CkBAIC0xMzgsOCArMTM4LDggQEAg
cHVibGljOgogICAgIH07CiAgICAgUHJlbG9hZFJlc3VsdCBwcmVsb2FkUmVzdWx0KCkgY29uc3Qg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8UHJlbG9hZFJlc3VsdD4obV9wcmVsb2FkUmVzdWx0KTsgfQog
Ci0gICAgdmlydHVhbCB2b2lkIGRpZEFkZENsaWVudChDYWNoZWRSZXNvdXJjZUNsaWVudCopOwot
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZW1vdmVDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQqKSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkQ2xpZW50KENhY2hlZFJlc291cmNlQ2xpZW50Jik7
CisgICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZUNsaWVudChDYWNoZWRSZXNvdXJjZUNsaWVudCYp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBhbGxDbGllbnRzUmVtb3ZlZCgpIHsgfQogICAgIHZvaWQg
ZGVzdHJveURlY29kZWREYXRhSWZOZWVkZWQoKTsKIApAQCAtMzAzLDcgKzMwMyw3IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIGZpbmlzaFJlcXVlc3RJbml0aWFsaXphdGlvbigpOwogCi0gICAgYm9v
bCBhZGRDbGllbnRUb1NldChDYWNoZWRSZXNvdXJjZUNsaWVudCopOworICAgIGJvb2wgYWRkQ2xp
ZW50VG9TZXQoQ2FjaGVkUmVzb3VyY2VDbGllbnQmKTsKIAogICAgIHZvaWQgZGVjb2RlZERhdGFE
ZWxldGlvblRpbWVyRmlyZWQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZS5jcHAKaW5kZXggMTBjZjNhM2Zh
YThkYzNjODI4YzU5OTk2MTAxM2ZjOTM3NTBjYjAyMi4uYTliZjdjNjZlNDI5OGU5OGU0NDNkNDM3
ZTc0YmIxMzM5NWQ3NjVkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuY3BwCkBAIC00NCw3ICs0NCw3IEBA
IENhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlOjpDYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZShj
b25zdCBTdHJpbmcmIHVybCkKIENhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlOjp+Q2FjaGVkU1ZH
RG9jdW1lbnRSZWZlcmVuY2UoKQogewogICAgIGlmIChtX2RvY3VtZW50KQotICAgICAgICBtX2Rv
Y3VtZW50LT5yZW1vdmVDbGllbnQodGhpcyk7CisgICAgICAgIG1fZG9jdW1lbnQtPnJlbW92ZUNs
aWVudCgqdGhpcyk7CiB9CiAKIHZvaWQgQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2U6OmxvYWQo
Q2FjaGVkUmVzb3VyY2VMb2FkZXImIGxvYWRlciwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25z
JiBvcHRpb25zKQpAQCAtNTgsNyArNTgsNyBAQCB2b2lkIENhY2hlZFNWR0RvY3VtZW50UmVmZXJl
bmNlOjpsb2FkKENhY2hlZFJlc291cmNlTG9hZGVyJiBsb2FkZXIsIGNvbnN0IFJlc291cgogICAg
IHJlcXVlc3Quc2V0SW5pdGlhdG9yKGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5j
c3MpOwogICAgIG1fZG9jdW1lbnQgPSBsb2FkZXIucmVxdWVzdFNWR0RvY3VtZW50KFdURk1vdmUo
cmVxdWVzdCkpOwogICAgIGlmIChtX2RvY3VtZW50KQotICAgICAgICBtX2RvY3VtZW50LT5hZGRD
bGllbnQodGhpcyk7CisgICAgICAgIG1fZG9jdW1lbnQtPmFkZENsaWVudCgqdGhpcyk7CiAKICAg
ICBtX2xvYWRSZXF1ZXN0ZWQgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuY3BwCmluZGV4IDJjMzIwZmVmMTg0OTAzYzE3
NzY4YjZiMDBiZDNlM2IwZGM1ZTJmODYuLmM5ZjBkYzg3YWZjNmI4Y2JjM2YwYTFjM2QwMGI2Mzkz
Y2MwYTdjMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRY
U0xTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
WFNMU3R5bGVTaGVldC5jcHAKQEAgLTQ2LDExICs0NiwxMSBAQCBDYWNoZWRYU0xTdHlsZVNoZWV0
Ojp+Q2FjaGVkWFNMU3R5bGVTaGVldCgpCiB7CiB9CiAKLXZvaWQgQ2FjaGVkWFNMU3R5bGVTaGVl
dDo6ZGlkQWRkQ2xpZW50KENhY2hlZFJlc291cmNlQ2xpZW50KiBjKQordm9pZCBDYWNoZWRYU0xT
dHlsZVNoZWV0OjpkaWRBZGRDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQmIGNsaWVudCkKIHsK
LSAgICBBU1NFUlQoYy0+cmVzb3VyY2VDbGllbnRUeXBlKCkgPT0gQ2FjaGVkU3R5bGVTaGVldENs
aWVudDo6ZXhwZWN0ZWRUeXBlKCkpOworICAgIEFTU0VSVChjbGllbnQucmVzb3VyY2VDbGllbnRU
eXBlKCkgPT0gQ2FjaGVkU3R5bGVTaGVldENsaWVudDo6ZXhwZWN0ZWRUeXBlKCkpOwogICAgIGlm
ICghaXNMb2FkaW5nKCkpCi0gICAgICAgIHN0YXRpY19jYXN0PENhY2hlZFN0eWxlU2hlZXRDbGll
bnQqPihjKS0+c2V0WFNMU3R5bGVTaGVldChtX3Jlc291cmNlUmVxdWVzdC51cmwoKSwgbV9yZXNw
b25zZS51cmwoKSwgbV9zaGVldCk7CisgICAgICAgIHN0YXRpY19jYXN0PENhY2hlZFN0eWxlU2hl
ZXRDbGllbnQmPihjbGllbnQpLnNldFhTTFN0eWxlU2hlZXQobV9yZXNvdXJjZVJlcXVlc3QudXJs
KCksIG1fcmVzcG9uc2UudXJsKCksIG1fc2hlZXQpOwogfQogCiB2b2lkIENhY2hlZFhTTFN0eWxl
U2hlZXQ6OnNldEVuY29kaW5nKGNvbnN0IFN0cmluZyYgY2hzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmgKaW5kZXggNWI0NzkzZTUyYjRh
YTI3MzRmMjE2YzZjOTAwOTAxOTExOTFjOGQxYS4uM2VmMGY2MDBlNDQ4N2NkNjI4MTVkZDc5ZWUw
YzQwMzk4NTM4YjdkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFhTTFN0eWxlU2hlZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkWFNMU3R5bGVTaGVldC5oCkBAIC0yMyw4ICsyMyw3IEBACiAgICAgcGFnZXMgZnJvbSB0aGUg
d2ViLiBJdCBoYXMgYSBtZW1vcnkgY2FjaGUgZm9yIHRoZXNlIG9iamVjdHMuCiAqLwogCi0jaWZu
ZGVmIENhY2hlZFhTTFN0eWxlU2hlZXRfaAotI2RlZmluZSBDYWNoZWRYU0xTdHlsZVNoZWV0X2gK
KyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKFhTTFQpCiAKQEAgLTQyLDEzICs0MSwxMyBAQCBw
dWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBzaGVldCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hlZXQ7
IH0KIAogcHJpdmF0ZToKLSAgICB2b2lkIGNoZWNrTm90aWZ5KCkgb3ZlcnJpZGU7Ci0gICAgYm9v
bCBtYXlUcnlSZXBsYWNlRW5jb2RlZERhdGEoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVl
OyB9Ci0gICAgdm9pZCBkaWRBZGRDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQqKSBvdmVycmlk
ZTsKLSAgICB2b2lkIHNldEVuY29kaW5nKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwotICAgIFN0
cmluZyBlbmNvZGluZygpIGNvbnN0IG92ZXJyaWRlOwotICAgIGNvbnN0IFRleHRSZXNvdXJjZURl
Y29kZXIqIHRleHRSZXNvdXJjZURlY29kZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2Rl
Y29kZXIuZ2V0KCk7IH0KLSAgICB2b2lkIGZpbmlzaExvYWRpbmcoU2hhcmVkQnVmZmVyKikgb3Zl
cnJpZGU7CisgICAgdm9pZCBjaGVja05vdGlmeSgpIGZpbmFsOworICAgIGJvb2wgbWF5VHJ5UmVw
bGFjZUVuY29kZWREYXRhKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZvaWQg
ZGlkQWRkQ2xpZW50KENhY2hlZFJlc291cmNlQ2xpZW50JikgZmluYWw7CisgICAgdm9pZCBzZXRF
bmNvZGluZyhjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAgICBTdHJpbmcgZW5jb2RpbmcoKSBjb25z
dCBmaW5hbDsKKyAgICBjb25zdCBUZXh0UmVzb3VyY2VEZWNvZGVyKiB0ZXh0UmVzb3VyY2VEZWNv
ZGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9kZWNvZGVyLmdldCgpOyB9CisgICAgdm9pZCBm
aW5pc2hMb2FkaW5nKFNoYXJlZEJ1ZmZlciopIGZpbmFsOwogCiAgICAgU3RyaW5nIG1fc2hlZXQ7
CiAgICAgUmVmUHRyPFRleHRSZXNvdXJjZURlY29kZXI+IG1fZGVjb2RlcjsKQEAgLTU5LDUgKzU4
LDMgQEAgcHJpdmF0ZToKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ0FDSEVEX1JFU09VUkNFKENh
Y2hlZFhTTFN0eWxlU2hlZXQsIENhY2hlZFJlc291cmNlOjpYU0xTdHlsZVNoZWV0KQogCiAjZW5k
aWYgLy8gRU5BQkxFKFhTTFQpCi0KLSNlbmRpZiAvLyBDYWNoZWRYU0xTdHlsZVNoZWV0X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCmluZGV4IDc1ZTFkN2Vh
NmRkZjczNjk5ZmQ5OTJjMjkyYTVjMTUyNjI0Y2IzYmIuLjliNDI4NDdhMDQ4MWY0NDQ1OTY2MjFj
NjA3M2RhMDVkMTZiODczOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9NZW1vcnlDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9y
eUNhY2hlLmNwcApAQCAtMjIzLDcgKzIyMyw3IEBAIGJvb2wgTWVtb3J5Q2FjaGU6OmFkZEltYWdl
VG9DYWNoZShOYXRpdmVJbWFnZVB0ciYmIGltYWdlLCBjb25zdCBVUkwmIHVybCwgY29uc3QKIAog
ICAgIGF1dG8gY2FjaGVkSW1hZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPENhY2hlZEltYWdlPih1cmws
IGJpdG1hcEltYWdlLmdldCgpLCBzZXNzaW9uSUQpOwogCi0gICAgY2FjaGVkSW1hZ2UtPmFkZENs
aWVudCgmZHVtbXlDYWNoZWRJbWFnZUNsaWVudCgpKTsKKyAgICBjYWNoZWRJbWFnZS0+YWRkQ2xp
ZW50KGR1bW15Q2FjaGVkSW1hZ2VDbGllbnQoKSk7CiAgICAgY2FjaGVkSW1hZ2UtPnNldERlY29k
ZWRTaXplKGJpdG1hcEltYWdlLT5kZWNvZGVkU2l6ZSgpKTsKICNpZiBFTkFCTEUoQ0FDSEVfUEFS
VElUSU9OSU5HKQogICAgIGNhY2hlZEltYWdlLT5yZXNvdXJjZVJlcXVlc3QoKS5zZXREb21haW5G
b3JDYWNoZVBhcnRpdGlvbihkb21haW5Gb3JDYWNoZVBhcnRpdGlvbik7CkBAIC0yNTgsNyArMjU4
LDcgQEAgdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlSW1hZ2VGcm9tQ2FjaGUoY29uc3QgVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgZG9tYWluRm9yQ2EKICAgICAvLyBkZWFkIHJlc291cmNlcyBhcmUg
cHJ1bmVkLiBUaGF0IG1pZ2h0IGJlIGltbWVkaWF0ZWx5IHNpbmNlCiAgICAgLy8gcmVtb3Zpbmcg
dGhlIGxhc3QgY2xpZW50IHRyaWdnZXJzIGEgTWVtb3J5Q2FjaGU6OnBydW5lLCBzbyB0aGUKICAg
ICAvLyByZXNvdXJjZSBtYXkgYmUgZGVsZXRlZCBhZnRlciB0aGlzIGNhbGwuCi0gICAgZG93bmNh
c3Q8Q2FjaGVkSW1hZ2U+KCpyZXNvdXJjZSkucmVtb3ZlQ2xpZW50KCZkdW1teUNhY2hlZEltYWdl
Q2xpZW50KCkpOworICAgIGRvd25jYXN0PENhY2hlZEltYWdlPigqcmVzb3VyY2UpLnJlbW92ZUNs
aWVudChkdW1teUNhY2hlZEltYWdlQ2xpZW50KCkpOwogfQogCiB2b2lkIE1lbW9yeUNhY2hlOjpw
cnVuZUxpdmVSZXNvdXJjZXMoYm9vbCBzaG91bGREZXN0cm95RGVjb2RlZERhdGFGb3JBbGxMaXZl
UmVzb3VyY2VzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcAppbmRl
eCBjMjQzZjQyYWM5YTU4ZjZkZjU4MGYyZjhkOGQzYWRjZjMwOTVhMjEzLi5hOGQzMjgyNTY4YTlm
ZTZjYTY2NmU3ODU4MjE4MjI3YzA4NjhmNGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNv
bi9JY29uTG9hZGVyLmNwcApAQCAtNjYsNyArNjYsNyBAQCB2b2lkIEljb25Mb2FkZXI6OnN0YXJ0
TG9hZGluZygpCiAKICAgICBtX3Jlc291cmNlID0gbV9mcmFtZS5kb2N1bWVudCgpLT5jYWNoZWRS
ZXNvdXJjZUxvYWRlcigpLnJlcXVlc3RSYXdSZXNvdXJjZShXVEZNb3ZlKHJlcXVlc3QpKTsKICAg
ICBpZiAobV9yZXNvdXJjZSkKLSAgICAgICAgbV9yZXNvdXJjZS0+YWRkQ2xpZW50KHRoaXMpOwor
ICAgICAgICBtX3Jlc291cmNlLT5hZGRDbGllbnQoKnRoaXMpOwogICAgIGVsc2UKICAgICAgICAg
TE9HX0VSUk9SKCJGYWlsZWQgdG8gc3RhcnQgbG9hZCBmb3IgaWNvbiBhdCB1cmwgJXMiLCBtX2Zy
YW1lLmxvYWRlcigpLmljb24oKS51cmwoKS5zdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSk7CiB9CkBA
IC03NCw3ICs3NCw3IEBAIHZvaWQgSWNvbkxvYWRlcjo6c3RhcnRMb2FkaW5nKCkKIHZvaWQgSWNv
bkxvYWRlcjo6c3RvcExvYWRpbmcoKQogewogICAgIGlmIChtX3Jlc291cmNlKSB7Ci0gICAgICAg
IG1fcmVzb3VyY2UtPnJlbW92ZUNsaWVudCh0aGlzKTsKKyAgICAgICAgbV9yZXNvdXJjZS0+cmVt
b3ZlQ2xpZW50KCp0aGlzKTsKICAgICAgICAgbV9yZXNvdXJjZSA9IG51bGxwdHI7CiAgICAgfQog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL2NmL1dlYkNvcmVBVkNGUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL1dlYkNvcmVBVkNGUmVzb3VyY2VMb2FkZXIu
Y3BwCmluZGV4IDkxMmMyYmZlZGU4NmYxNWYyZDkyYjExMzAyYjA0MWZkY2YwZDAzYjcuLmExZGMz
ODIzNWI2YjQ5NzUxZGU3MmUxZTFlMjVhNmI0MzQ2ZTgzMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9XZWJDb3JlQVZDRlJlc291
cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vY2YvV2ViQ29yZUFWQ0ZSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTc3LDcgKzc3LDcg
QEAgdm9pZCBXZWJDb3JlQVZDRlJlc291cmNlTG9hZGVyOjpzdGFydExvYWRpbmcoKQogICAgIENh
Y2hlZFJlc291cmNlTG9hZGVyKiBsb2FkZXIgPSBtX3BhcmVudC0+cGxheWVyKCktPmNhY2hlZFJl
c291cmNlTG9hZGVyKCk7CiAgICAgbV9yZXNvdXJjZSA9IGxvYWRlciA/IGxvYWRlci0+cmVxdWVz
dFJhd1Jlc291cmNlKFdURk1vdmUocmVxdWVzdCkpIDogMDsKICAgICBpZiAobV9yZXNvdXJjZSkK
LSAgICAgICAgbV9yZXNvdXJjZS0+YWRkQ2xpZW50KHRoaXMpOworICAgICAgICBtX3Jlc291cmNl
LT5hZGRDbGllbnQoKnRoaXMpOwogICAgIGVsc2UgewogICAgICAgICBMT0dfRVJST1IoIkZhaWxl
ZCB0byBzdGFydCBsb2FkIGZvciBtZWRpYSBhdCB1cmwgJXMiLCBVUkwoQ0ZVUkxSZXF1ZXN0R2V0
VVJMKHVybFJlcXVlc3QuZ2V0KCkpKS5zdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSk7CiAgICAgICAg
IFJldGFpblB0cjxDRkVycm9yUmVmPiBlcnJvciA9IGFkb3B0Q0YoQ0ZFcnJvckNyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBrQ0ZFcnJvckRvbWFpbkNGTmV0d29yaywga0NGVVJMRXJyb3JVbmtu
b3duLCBudWxscHRyKSk7CkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgV2ViQ29yZUFWQ0ZSZXNvdXJj
ZUxvYWRlcjo6c3RvcExvYWRpbmcoKQogICAgIGlmICghbV9yZXNvdXJjZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgbV9yZXNvdXJjZS0+cmVtb3ZlQ2xpZW50KHRoaXMpOworICAgIG1fcmVzb3Vy
Y2UtPnJlbW92ZUNsaWVudCgqdGhpcyk7CiAgICAgbV9yZXNvdXJjZSA9IDA7CiAKICAgICBpZiAo
bV9wYXJlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3Vy
Y2VMb2FkZXIubW0KaW5kZXggNzY0YjBkZjA1ZjM5YmI2ODliMWQwMDM5ZTc4ZDhlNGMxMDA0MmVj
ZS4uNjc5NzY1MjM1MzNlZDk5N2EwNmYzNWIyMGY3MzVkZjE2MTliODQyMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvV2ViQ29y
ZUFWRlJlc291cmNlTG9hZGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL1dlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbQpAQCAtNzUs
NyArNzUsNyBAQCB2b2lkIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlcjo6c3RhcnRMb2FkaW5nKCkK
ICAgICAgICAgbV9yZXNvdXJjZSA9IGxvYWRlci0+cmVxdWVzdE1lZGlhKFdURk1vdmUocmVxdWVz
dCkpOwogCiAgICAgaWYgKG1fcmVzb3VyY2UpCi0gICAgICAgIG1fcmVzb3VyY2UtPmFkZENsaWVu
dCh0aGlzKTsKKyAgICAgICAgbV9yZXNvdXJjZS0+YWRkQ2xpZW50KCp0aGlzKTsKICAgICBlbHNl
IHsKICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gc3RhcnQgbG9hZCBmb3IgbWVkaWEgYXQg
dXJsICVzIiwgW1tbbnNSZXF1ZXN0IFVSTF0gYWJzb2x1dGVTdHJpbmddIFVURjhTdHJpbmddKTsK
ICAgICAgICAgW21fYXZSZXF1ZXN0LmdldCgpIGZpbmlzaExvYWRpbmdXaXRoRXJyb3I6MF07CkBA
IC04Nyw3ICs4Nyw3IEBAIHZvaWQgV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyOjpzdG9wTG9hZGlu
ZygpCiAgICAgaWYgKCFtX3Jlc291cmNlKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3Jlc291
cmNlLT5yZW1vdmVDbGllbnQodGhpcyk7CisgICAgbV9yZXNvdXJjZS0+cmVtb3ZlQ2xpZW50KCp0
aGlzKTsKICAgICBtX3Jlc291cmNlID0gMDsKIAogICAgIGlmIChtX3BhcmVudCAmJiBtX2F2UmVx
dWVzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZVJl
c291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZVJlc291cmNl
LmNwcAppbmRleCA0NTExNWE2ZmFlNWNmMzM1MjlkYTIxYjhkYjcyNWQ4MTY1MTFmMDA2Li4wYzYw
MDUyMDBmOWYzMWQ5ZWNiM2RkNWUzNjZjNTQ1YWUyZjNmNmRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2VSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlUmVzb3VyY2UuY3BwCkBAIC01Nyw3ICs1Nyw3IEBA
IHZvaWQgUmVuZGVySW1hZ2VSZXNvdXJjZTo6c2h1dGRvd24oKQogICAgIEFTU0VSVChtX3JlbmRl
cmVyKTsKIAogICAgIGlmIChtX2NhY2hlZEltYWdlKQotICAgICAgICBtX2NhY2hlZEltYWdlLT5y
ZW1vdmVDbGllbnQobV9yZW5kZXJlcik7CisgICAgICAgIG1fY2FjaGVkSW1hZ2UtPnJlbW92ZUNs
aWVudCgqbV9yZW5kZXJlcik7CiB9CiAKIHZvaWQgUmVuZGVySW1hZ2VSZXNvdXJjZTo6c2V0Q2Fj
aGVkSW1hZ2UoQ2FjaGVkSW1hZ2UqIG5ld0ltYWdlKQpAQCAtNjgsMTAgKzY4LDEwIEBAIHZvaWQg
UmVuZGVySW1hZ2VSZXNvdXJjZTo6c2V0Q2FjaGVkSW1hZ2UoQ2FjaGVkSW1hZ2UqIG5ld0ltYWdl
KQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9jYWNoZWRJbWFnZSkKLSAgICAgICAgbV9j
YWNoZWRJbWFnZS0+cmVtb3ZlQ2xpZW50KG1fcmVuZGVyZXIpOworICAgICAgICBtX2NhY2hlZElt
YWdlLT5yZW1vdmVDbGllbnQoKm1fcmVuZGVyZXIpOwogICAgIG1fY2FjaGVkSW1hZ2UgPSBuZXdJ
bWFnZTsKICAgICBpZiAobV9jYWNoZWRJbWFnZSkgewotICAgICAgICBtX2NhY2hlZEltYWdlLT5h
ZGRDbGllbnQobV9yZW5kZXJlcik7CisgICAgICAgIG1fY2FjaGVkSW1hZ2UtPmFkZENsaWVudCgq
bV9yZW5kZXJlcik7CiAgICAgICAgIGlmIChtX2NhY2hlZEltYWdlLT5lcnJvck9jY3VycmVkKCkp
CiAgICAgICAgICAgICBtX3JlbmRlcmVyLT5pbWFnZUNoYW5nZWQobV9jYWNoZWRJbWFnZS5nZXQo
KSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyRmlsdGVySW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJG
aWx0ZXJJbmZvLmNwcAppbmRleCA1NmIxMzhkODk5YzU4YzZhOWI2Y2Q4ZGRiZWViM2UwODk3YzIw
NDQ3Li4xMjEzOGM0YTYwMGQ1YjA5NzU3N2NkY2U3YThiZmM2ZjZjOWIxZmZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJJbmZvLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJJbmZvLmNwcApAQCAt
OTEsNyArOTEsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpGaWx0ZXJJbmZvOjpub3RpZnlGaW5pc2hl
ZChDYWNoZWRSZXNvdXJjZSopCiB7CiAgICAgbV9sYXllci5maWx0ZXJOZWVkc1JlcGFpbnQoKTsK
IH0KLSAgICAKKwogdm9pZCBSZW5kZXJMYXllcjo6RmlsdGVySW5mbzo6dXBkYXRlUmVmZXJlbmNl
RmlsdGVyQ2xpZW50cyhjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBvcGVyYXRpb25zKQogewogICAg
IHJlbW92ZVJlZmVyZW5jZUZpbHRlckNsaWVudHMoKTsKQEAgLTEwMiw3ICsxMDIsNyBAQCB2b2lk
IFJlbmRlckxheWVyOjpGaWx0ZXJJbmZvOjp1cGRhdGVSZWZlcmVuY2VGaWx0ZXJDbGllbnRzKGNv
bnN0IEZpbHRlck9wZXJhdGlvbgogICAgICAgICBhdXRvKiBkb2N1bWVudFJlZmVyZW5jZSA9IHJl
ZmVyZW5jZU9wZXJhdGlvbi5jYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZSgpOwogICAgICAgICBp
ZiAoYXV0byogY2FjaGVkU1ZHRG9jdW1lbnQgPSBkb2N1bWVudFJlZmVyZW5jZSA/IGRvY3VtZW50
UmVmZXJlbmNlLT5kb2N1bWVudCgpIDogbnVsbHB0cikgewogICAgICAgICAgICAgLy8gUmVmZXJl
bmNlIGlzIGV4dGVybmFsOyB3YWl0IGZvciBub3RpZnlGaW5pc2hlZCgpLgotICAgICAgICAgICAg
Y2FjaGVkU1ZHRG9jdW1lbnQtPmFkZENsaWVudCh0aGlzKTsKKyAgICAgICAgICAgIGNhY2hlZFNW
R0RvY3VtZW50LT5hZGRDbGllbnQoKnRoaXMpOwogICAgICAgICAgICAgbV9leHRlcm5hbFNWR1Jl
ZmVyZW5jZXMuYXBwZW5kKGNhY2hlZFNWR0RvY3VtZW50KTsKICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgIC8vIFJlZmVyZW5jZSBpcyBpbnRlcm5hbDsgYWRkIGxheWVyIGFzIGEgY2xpZW50
IHNvIHdlIGNhbiB0cmlnZ2VyIGZpbHRlciByZXBhaW50IG9uIFNWRyBhdHRyaWJ1dGUgY2hhbmdl
LgpAQCAtMTIxLDcgKzEyMSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OkZpbHRlckluZm86OnVwZGF0
ZVJlZmVyZW5jZUZpbHRlckNsaWVudHMoY29uc3QgRmlsdGVyT3BlcmF0aW9uCiB2b2lkIFJlbmRl
ckxheWVyOjpGaWx0ZXJJbmZvOjpyZW1vdmVSZWZlcmVuY2VGaWx0ZXJDbGllbnRzKCkKIHsKICAg
ICBmb3IgKGF1dG8mIHJlc291cmNlSGFuZGxlIDogbV9leHRlcm5hbFNWR1JlZmVyZW5jZXMpCi0g
ICAgICAgIHJlc291cmNlSGFuZGxlLT5yZW1vdmVDbGllbnQodGhpcyk7CisgICAgICAgIHJlc291
cmNlSGFuZGxlLT5yZW1vdmVDbGllbnQoKnRoaXMpOwogICAgIG1fZXh0ZXJuYWxTVkdSZWZlcmVu
Y2VzLmNsZWFyKCk7CiAKICAgICBmb3IgKGF1dG8mIGZpbHRlciA6IG1faW50ZXJuYWxTVkdSZWZl
cmVuY2VzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVDYWNoZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVD
YWNoZWRJbWFnZS5jcHAKaW5kZXggM2Q4MjQ5ZGQ4ODYyMzVmZmJjODVjN2IxYzgxYTg0Mzk1MmVi
ZWQzYi4uYWE5OTNlMTBhN2UyMjNjMjcwNDVkZmIzZjgzMzZlZWJlMDM5ZDAxNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmNwcApA
QCAtMTc2LDcgKzE3Niw4IEBAIHZvaWQgU3R5bGVDYWNoZWRJbWFnZTo6YWRkQ2xpZW50KFJlbmRl
ckVsZW1lbnQqIHJlbmRlcmVyKQogICAgIEFTU0VSVCghbV9pc1BlbmRpbmcpOwogICAgIGlmICgh
bV9jYWNoZWRJbWFnZSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fY2FjaGVkSW1hZ2UtPmFkZENs
aWVudChyZW5kZXJlcik7CisgICAgQVNTRVJUKHJlbmRlcmVyKTsKKyAgICBtX2NhY2hlZEltYWdl
LT5hZGRDbGllbnQoKnJlbmRlcmVyKTsKIH0KIAogdm9pZCBTdHlsZUNhY2hlZEltYWdlOjpyZW1v
dmVDbGllbnQoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIpCkBAIC0xODQsNyArMTg1LDggQEAgdm9p
ZCBTdHlsZUNhY2hlZEltYWdlOjpyZW1vdmVDbGllbnQoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIp
CiAgICAgQVNTRVJUKCFtX2lzUGVuZGluZyk7CiAgICAgaWYgKCFtX2NhY2hlZEltYWdlKQogICAg
ICAgICByZXR1cm47Ci0gICAgbV9jYWNoZWRJbWFnZS0+cmVtb3ZlQ2xpZW50KHJlbmRlcmVyKTsK
KyAgICBBU1NFUlQocmVuZGVyZXIpOworICAgIG1fY2FjaGVkSW1hZ2UtPnJlbW92ZUNsaWVudCgq
cmVuZGVyZXIpOwogfQogCiBSZWZQdHI8SW1hZ2U+IFN0eWxlQ2FjaGVkSW1hZ2U6OmltYWdlKFJl
bmRlckVsZW1lbnQqIHJlbmRlcmVyLCBjb25zdCBGbG9hdFNpemUmKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKaW5kZXggNGQ1OTI5MTAzODg3MDY1MDFlMTEy
OGNiNGY3MWUzYjM3MTA3NzNiYy4uYzg1NWIzNDc4OTFiYjdkYzRlMjZhYjAzYmFmMmRlYWQ3ZWQ5
ZjFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCkBAIC03Niw3
ICs3Niw3IEBAIGJvb2wgU1ZHRkVJbWFnZUVsZW1lbnQ6Omhhc1NpbmdsZVNlY3VyaXR5T3JpZ2lu
KCkgY29uc3QKIHZvaWQgU1ZHRkVJbWFnZUVsZW1lbnQ6OmNsZWFyUmVzb3VyY2VSZWZlcmVuY2Vz
KCkKIHsKICAgICBpZiAobV9jYWNoZWRJbWFnZSkgewotICAgICAgICBtX2NhY2hlZEltYWdlLT5y
ZW1vdmVDbGllbnQodGhpcyk7CisgICAgICAgIG1fY2FjaGVkSW1hZ2UtPnJlbW92ZUNsaWVudCgq
dGhpcyk7CiAgICAgICAgIG1fY2FjaGVkSW1hZ2UgPSBudWxscHRyOwogICAgIH0KIApAQCAtOTMs
NyArOTMsNyBAQCB2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjpyZXF1ZXN0SW1hZ2VSZXNvdXJjZSgp
CiAgICAgbV9jYWNoZWRJbWFnZSA9IGRvY3VtZW50KCkuY2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5y
ZXF1ZXN0SW1hZ2UoV1RGTW92ZShyZXF1ZXN0KSk7CiAKICAgICBpZiAobV9jYWNoZWRJbWFnZSkK
LSAgICAgICAgbV9jYWNoZWRJbWFnZS0+YWRkQ2xpZW50KHRoaXMpOworICAgICAgICBtX2NhY2hl
ZEltYWdlLT5hZGRDbGllbnQoKnRoaXMpOwogfQogCiB2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50Ojpi
dWlsZFBlbmRpbmdSZXNvdXJjZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9udEZhY2VVcmlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVy
aUVsZW1lbnQuY3BwCmluZGV4IGEzODk4ZTBjNTkzM2JiYTVhZjQ3YThkMjUxYTlkMTUyMmU5Yzgy
ZmEuLjM1NjZhYzQ2NTMyOWY3ZmExY2Q0NDZlZjE3YTM2NWQ3NWVmNmYyNDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCkBAIC01MCw3ICs1MCw3IEBA
IFJlZjxTVkdGb250RmFjZVVyaUVsZW1lbnQ+IFNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhCiBTVkdGb250RmFjZVVyaUVsZW1lbnQ6On5TVkdGb250
RmFjZVVyaUVsZW1lbnQoKQogewogICAgIGlmIChtX2NhY2hlZEZvbnQpCi0gICAgICAgIG1fY2Fj
aGVkRm9udC0+cmVtb3ZlQ2xpZW50KHRoaXMpOworICAgICAgICBtX2NhY2hlZEZvbnQtPnJlbW92
ZUNsaWVudCgqdGhpcyk7CiB9CiAKIFJlZjxDU1NGb250RmFjZVNyY1ZhbHVlPiBTVkdGb250RmFj
ZVVyaUVsZW1lbnQ6OnNyY1ZhbHVlKCkgY29uc3QKQEAgLTk2LDcgKzk2LDcgQEAgc3RhdGljIGJv
b2wgaXNTVkdGb250VGFyZ2V0KGNvbnN0IFNWR0ZvbnRGYWNlVXJpRWxlbWVudCYgZWxlbWVudCkK
IHZvaWQgU1ZHRm9udEZhY2VVcmlFbGVtZW50Ojpsb2FkRm9udCgpCiB7CiAgICAgaWYgKG1fY2Fj
aGVkRm9udCkKLSAgICAgICAgbV9jYWNoZWRGb250LT5yZW1vdmVDbGllbnQodGhpcyk7CisgICAg
ICAgIG1fY2FjaGVkRm9udC0+cmVtb3ZlQ2xpZW50KCp0aGlzKTsKIAogICAgIGNvbnN0IEF0b21p
Y1N0cmluZyYgaHJlZiA9IGdldEF0dHJpYnV0ZShYTGlua05hbWVzOjpocmVmQXR0cik7CiAgICAg
aWYgKCFocmVmLmlzTnVsbCgpKSB7CkBAIC0xMDgsNyArMTA4LDcgQEAgdm9pZCBTVkdGb250RmFj
ZVVyaUVsZW1lbnQ6OmxvYWRGb250KCkKICAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IodGhp
cyk7CiAgICAgICAgIG1fY2FjaGVkRm9udCA9IGNhY2hlZFJlc291cmNlTG9hZGVyLnJlcXVlc3RG
b250KFdURk1vdmUocmVxdWVzdCksIGlzU1ZHRm9udFRhcmdldCgqdGhpcykpOwogICAgICAgICBp
ZiAobV9jYWNoZWRGb250KSB7Ci0gICAgICAgICAgICBtX2NhY2hlZEZvbnQtPmFkZENsaWVudCh0
aGlzKTsKKyAgICAgICAgICAgIG1fY2FjaGVkRm9udC0+YWRkQ2xpZW50KCp0aGlzKTsKICAgICAg
ICAgICAgIG1fY2FjaGVkRm9udC0+YmVnaW5Mb2FkSWZOZWVkZWQoY2FjaGVkUmVzb3VyY2VMb2Fk
ZXIpOwogICAgICAgICB9CiAgICAgfSBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVXNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5j
cHAKaW5kZXggYTA0N2FkNjg4M2JlOGE4NThjNWRmNWNmNGIzMDE3OTFjYmNjYzA4ZC4uMWE2YjEw
Nzg3NTlmZmQwOWUyYjBjZDNlMGUxZDBkOGJjMDBjMWViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdV
c2VFbGVtZW50LmNwcApAQCAtNzksNyArNzksNyBAQCBSZWY8U1ZHVXNlRWxlbWVudD4gU1ZHVXNl
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jgog
U1ZHVXNlRWxlbWVudDo6flNWR1VzZUVsZW1lbnQoKQogewogICAgIGlmIChtX2V4dGVybmFsRG9j
dW1lbnQpCi0gICAgICAgIG1fZXh0ZXJuYWxEb2N1bWVudC0+cmVtb3ZlQ2xpZW50KHRoaXMpOwor
ICAgICAgICBtX2V4dGVybmFsRG9jdW1lbnQtPnJlbW92ZUNsaWVudCgqdGhpcyk7CiB9CiAKIHZv
aWQgU1ZHVXNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKQEAgLTU2Myw3ICs1NjMsNyBAQCB2b2lkIFNW
R1VzZUVsZW1lbnQ6OnVwZGF0ZUV4dGVybmFsRG9jdW1lbnQoKQogICAgICAgICByZXR1cm47CiAK
ICAgICBpZiAobV9leHRlcm5hbERvY3VtZW50KQotICAgICAgICBtX2V4dGVybmFsRG9jdW1lbnQt
PnJlbW92ZUNsaWVudCh0aGlzKTsKKyAgICAgICAgbV9leHRlcm5hbERvY3VtZW50LT5yZW1vdmVD
bGllbnQoKnRoaXMpOwogCiAgICAgaWYgKGV4dGVybmFsRG9jdW1lbnRVUkwuaXNOdWxsKCkpCiAg
ICAgICAgIG1fZXh0ZXJuYWxEb2N1bWVudCA9IG51bGxwdHI7CkBAIC01NzUsNyArNTc1LDcgQEAg
dm9pZCBTVkdVc2VFbGVtZW50Ojp1cGRhdGVFeHRlcm5hbERvY3VtZW50KCkKICAgICAgICAgcmVx
dWVzdC5zZXRJbml0aWF0b3IodGhpcyk7CiAgICAgICAgIG1fZXh0ZXJuYWxEb2N1bWVudCA9IGRv
Y3VtZW50KCkuY2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5yZXF1ZXN0U1ZHRG9jdW1lbnQoV1RGTW92
ZShyZXF1ZXN0KSk7CiAgICAgICAgIGlmIChtX2V4dGVybmFsRG9jdW1lbnQpCi0gICAgICAgICAg
ICBtX2V4dGVybmFsRG9jdW1lbnQtPmFkZENsaWVudCh0aGlzKTsKKyAgICAgICAgICAgIG1fZXh0
ZXJuYWxEb2N1bWVudC0+YWRkQ2xpZW50KCp0aGlzKTsKICAgICB9CiAKICAgICBpbnZhbGlkYXRl
U2hhZG93VHJlZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTEltcG9ydFJ1
bGUuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTEltcG9ydFJ1bGUuY3BwCmluZGV4IGIzZDRl
MWE0OWE1ZTQ3ZTJlOTY5OGM4NGU2NTQxMmJiYjhjMGJlNTkuLjYxZGUxMTE1ZDJiYzM0NWQ1Y2Rm
YmZiOTA4ZWE4YjEwMGM4ZWE0M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xJ
bXBvcnRSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMSW1wb3J0UnVsZS5jcHAK
QEAgLTQzLDkgKzQzLDkgQEAgWFNMSW1wb3J0UnVsZTo6flhTTEltcG9ydFJ1bGUoKQogewogICAg
IGlmIChtX3N0eWxlU2hlZXQpCiAgICAgICAgIG1fc3R5bGVTaGVldC0+c2V0UGFyZW50U3R5bGVT
aGVldChudWxscHRyKTsKLSAgICAKKwogICAgIGlmIChtX2NhY2hlZFNoZWV0KQotICAgICAgICBt
X2NhY2hlZFNoZWV0LT5yZW1vdmVDbGllbnQodGhpcyk7CisgICAgICAgIG1fY2FjaGVkU2hlZXQt
PnJlbW92ZUNsaWVudCgqdGhpcyk7CiB9CiAKIHZvaWQgWFNMSW1wb3J0UnVsZTo6c2V0WFNMU3R5
bGVTaGVldChjb25zdCBTdHJpbmcmIGhyZWYsIGNvbnN0IFVSTCYgYmFzZVVSTCwgY29uc3QgU3Ry
aW5nJiBzaGVldCkKQEAgLTYxLDcgKzYxLDcgQEAgdm9pZCBYU0xJbXBvcnRSdWxlOjpzZXRYU0xT
dHlsZVNoZWV0KGNvbnN0IFN0cmluZyYgaHJlZiwgY29uc3QgVVJMJiBiYXNlVVJMLCBjb24KIAog
ICAgIG1fc3R5bGVTaGVldC0+cGFyc2VTdHJpbmcoc2hlZXQpOwogICAgIG1fbG9hZGluZyA9IGZh
bHNlOwotICAgIAorCiAgICAgaWYgKHBhcmVudCkKICAgICAgICAgcGFyZW50LT5jaGVja0xvYWRl
ZCgpOwogfQpAQCAtODQsNyArODQsNyBAQCB2b2lkIFhTTEltcG9ydFJ1bGU6OmxvYWRTaGVldCgp
CiAKICAgICBpZiAocm9vdFNoZWV0KQogICAgICAgICBjYWNoZWRSZXNvdXJjZUxvYWRlciA9IHJv
b3RTaGVldC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsKLSAgICAKKwogICAgIFN0cmluZyBhYnNI
cmVmID0gbV9zdHJIcmVmOwogICAgIFhTTFN0eWxlU2hlZXQqIHBhcmVudFNoZWV0ID0gcGFyZW50
U3R5bGVTaGVldCgpOwogICAgIGlmICghcGFyZW50U2hlZXQtPmJhc2VVUkwoKS5pc051bGwoKSkK
QEAgLTk5LDE0ICs5OSwxNCBAQCB2b2lkIFhTTEltcG9ydFJ1bGU6OmxvYWRTaGVldCgpCiAgICAg
fQogCiAgICAgaWYgKG1fY2FjaGVkU2hlZXQpCi0gICAgICAgIG1fY2FjaGVkU2hlZXQtPnJlbW92
ZUNsaWVudCh0aGlzKTsKKyAgICAgICAgbV9jYWNoZWRTaGVldC0+cmVtb3ZlQ2xpZW50KCp0aGlz
KTsKIAogICAgIGF1dG8gb3B0aW9ucyA9IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2Fj
aGVkUmVzb3VyY2VPcHRpb25zKCk7CiAgICAgb3B0aW9ucy5tb2RlID0gRmV0Y2hPcHRpb25zOjpN
b2RlOjpTYW1lT3JpZ2luOwogICAgIG1fY2FjaGVkU2hlZXQgPSBjYWNoZWRSZXNvdXJjZUxvYWRl
ci0+cmVxdWVzdFhTTFN0eWxlU2hlZXQoe1Jlc291cmNlUmVxdWVzdChjYWNoZWRSZXNvdXJjZUxv
YWRlci0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoYWJzSHJlZikpLCBvcHRpb25zfSk7CiAKICAg
ICBpZiAobV9jYWNoZWRTaGVldCkgewotICAgICAgICBtX2NhY2hlZFNoZWV0LT5hZGRDbGllbnQo
dGhpcyk7CisgICAgICAgIG1fY2FjaGVkU2hlZXQtPmFkZENsaWVudCgqdGhpcyk7CiAKICAgICAg
ICAgLy8gSWYgdGhlIGltcG9ydGVkIHNoZWV0IGlzIGluIHRoZSBjYWNoZSwgdGhlbiBzZXRYU0xT
dHlsZVNoZWV0IGdldHMgY2FsbGVkLAogICAgICAgICAvLyBhbmQgdGhlIHNoZWV0IGV2ZW4gZ2V0
cyBwYXJzZWQgKHZpYSBwYXJzZVN0cmluZykuICBJbiB0aGlzIGNhc2Ugd2UgaGF2ZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcAppbmRleCA3ZWZk
NzRkZTAyMTJlZmEzMTJlYWY2NzQ4ODlmN2I4OWY5ZDdhMDU4Li4zMzhjOGFhMzFlZGZlY2I3YzA2
NzU0YTdjODcyNDg3NDIzMmMxYjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFy
c2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2Vy
L1hNTERvY3VtZW50UGFyc2VyLmNwcApAQCAtMjM3LDcgKzIzNyw3IEBAIHZvaWQgWE1MRG9jdW1l
bnRQYXJzZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiB1bnVzZWRSZXNvdXJjZSkK
ICAgICBib29sIGVycm9yT2NjdXJyZWQgPSBtX3BlbmRpbmdTY3JpcHQtPmVycm9yT2NjdXJyZWQo
KTsKICAgICBib29sIHdhc0NhbmNlbGVkID0gbV9wZW5kaW5nU2NyaXB0LT53YXNDYW5jZWxlZCgp
OwogCi0gICAgbV9wZW5kaW5nU2NyaXB0LT5yZW1vdmVDbGllbnQodGhpcyk7CisgICAgbV9wZW5k
aW5nU2NyaXB0LT5yZW1vdmVDbGllbnQoKnRoaXMpOwogICAgIG1fcGVuZGluZ1NjcmlwdCA9IG51
bGxwdHI7CiAKICAgICBSZWZQdHI8RWxlbWVudD4gZSA9IG1fc2NyaXB0RWxlbWVudDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwy
LmNwcAppbmRleCAzNmZhZGFlNDk3MWNiYzFkZGM4MTFhNjI3ZDI5OGQwMDljMWZlNGU1Li4xY2Rj
MGFjZDcyNzdlOTM0NTA3YWZiZTU2OTQ0OThiNmVhYWJiY2M1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCkBAIC02
NjYsNyArNjY2LDcgQEAgWE1MRG9jdW1lbnRQYXJzZXI6On5YTUxEb2N1bWVudFBhcnNlcigpCiAK
ICAgICAvLyBGSVhNRTogbV9wZW5kaW5nU2NyaXB0IGhhbmRsaW5nIHNob3VsZCBiZSBtb3ZlZCBp
bnRvIFhNTERvY3VtZW50UGFyc2VyLmNwcCEKICAgICBpZiAobV9wZW5kaW5nU2NyaXB0KQotICAg
ICAgICBtX3BlbmRpbmdTY3JpcHQtPnJlbW92ZUNsaWVudCh0aGlzKTsKKyAgICAgICAgbV9wZW5k
aW5nU2NyaXB0LT5yZW1vdmVDbGllbnQoKnRoaXMpOwogfQogCiB2b2lkIFhNTERvY3VtZW50UGFy
c2VyOjpkb1dyaXRlKGNvbnN0IFN0cmluZyYgcGFyc2VTdHJpbmcpCkBAIC05MjcsNyArOTI3LDcg
QEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZW5kRWxlbWVudE5zKCkKICAgICAgICAgICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE2NTEKICAgICAgICAg
ICAgIG1fcGVuZGluZ1NjcmlwdCA9ICZkb3duY2FzdDxMb2FkYWJsZUNsYXNzaWNTY3JpcHQ+KCpz
Y3JpcHRFbGVtZW50LT5sb2FkYWJsZVNjcmlwdCgpKS5jYWNoZWRTY3JpcHQoKTsKICAgICAgICAg
ICAgIG1fc2NyaXB0RWxlbWVudCA9ICZlbGVtZW50OwotICAgICAgICAgICAgbV9wZW5kaW5nU2Ny
aXB0LT5hZGRDbGllbnQodGhpcyk7CisgICAgICAgICAgICBtX3BlbmRpbmdTY3JpcHQtPmFkZENs
aWVudCgqdGhpcyk7CiAKICAgICAgICAgICAgIC8vIG1fcGVuZGluZ1NjcmlwdCB3aWxsIGJlIDAg
aWYgc2NyaXB0IHdhcyBhbHJlYWR5IGxvYWRlZCBhbmQgYWRkQ2xpZW50KCkgZXhlY3V0ZWQgaXQu
CiAgICAgICAgICAgICBpZiAobV9wZW5kaW5nU2NyaXB0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggMDYxMzgxMDExN2YzOTI0MmFhODY4MTYyMjQ4NTAyNDFj
ZGNhNDA5Zi4uYmNmOWM0YTk3ZTYzYTdiYjNhNDA3NDI2ZWU4ODM0OGNkZjYwMTA3MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC03ODksMTAgKzc4OSwxMCBA
QCBjb25zdCBmbG9hdCBfV2ViSFRNTFZpZXdQcmludGluZ01heGltdW1TaHJpbmtGYWN0b3IgPSBQ
cmludENvbnRleHQ6Om1heGltdW1TaHJpbgogCiAjaWYgIVBMQVRGT1JNKElPUykKIC8vIFdlIG5l
ZWQgdGhpcyB0byBiZSBhYmxlIHRvIHNhZmVseSByZWZlcmVuY2UgdGhlIENhY2hlZEltYWdlIGZv
ciB0aGUgcHJvbWlzZWQgZHJhZyBkYXRhCi1zdGF0aWMgQ2FjaGVkSW1hZ2VDbGllbnQqIHByb21p
c2VkRGF0YUNsaWVudCgpCitzdGF0aWMgQ2FjaGVkSW1hZ2VDbGllbnQmIHByb21pc2VkRGF0YUNs
aWVudCgpCiB7CiAgICAgc3RhdGljIENhY2hlZEltYWdlQ2xpZW50KiBzdGF0aWNDYWNoZWRSZXNv
dXJjZUNsaWVudCA9IG5ldyBDYWNoZWRJbWFnZUNsaWVudDsKLSAgICByZXR1cm4gc3RhdGljQ2Fj
aGVkUmVzb3VyY2VDbGllbnQ7CisgICAgcmV0dXJuICpzdGF0aWNDYWNoZWRSZXNvdXJjZUNsaWVu
dDsKIH0KICNlbmRpZgogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>