<?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>101198</bug_id>
          
          <creation_ts>2012-11-05 02:15:35 -0800</creation_ts>
          <short_desc>REGRESSION(r133286): Broke image placement on some web sites. (Requested by kling on #webkit).</short_desc>
          <delta_ts>2012-11-05 10:47:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>100990</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>kevin</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>758353</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-05 02:15:35 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/133286 broke the build:
Broke image placement on some web sites. (Requested by kling on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758355</commentid>
    <comment_count>1</comment_count>
      <attachid>172296</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-05 02:16:13 -0800</bug_when>
    <thetext>Created attachment 172296
ROLLOUT of r133286

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758376</commentid>
    <comment_count>2</comment_count>
      <attachid>172296</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-05 02:48:02 -0800</bug_when>
    <thetext>Comment on attachment 172296
ROLLOUT of r133286

Clearing flags on attachment: 172296

Committed r133451: &lt;http://trac.webkit.org/changeset/133451&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758377</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-05 02:48:05 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758683</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-11-05 10:47:07 -0800</bug_when>
    <thetext>*** Bug 101128 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172296</attachid>
            <date>2012-11-05 02:16:13 -0800</date>
            <delta_ts>2012-11-05 02:48:02 -0800</delta_ts>
            <desc>ROLLOUT of r133286</desc>
            <filename>bug-101198-20121105102235.patch</filename>
            <type>text/plain</type>
            <size>43189</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNDQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjYwM2FiYjRjMjMyODZi
ZGE3OTc1NmU2NWU3YzU1ZWY4ODgxNWQxNi4uNDc5YmRlYmEzMWY1NTc3NDQ5OTIyNDIxMTVlMGM0
MmYwMjI2ODJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDEyLTExLTA1ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTMzMjg2LCByMTMzMzg1LCBhbmQgcjEzMzM5NC4KKyAgICAgICAg
aHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTMzMjg2CisgICAgICAgIGh0dHA6Ly90
cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEzMzM4NQorICAgICAgICBodHRwOi8vdHJhYy53ZWJr
aXQub3JnL2NoYW5nZXNldC8xMzMzOTQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwMTE5OAorCisgICAgICAgIEJyb2tlIGltYWdlIHBsYWNlbWVudCBv
biBzb21lIHdlYiBzaXRlcy4gKFJlcXVlc3RlZCBieSBrbGluZworICAgICAgICBvbiAjd2Via2l0
KS4KKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlUmVzb2x2ZXI6OnN3ZWVwTWF0Y2hlZFByb3BlcnRpZXNDYWNoZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZVJlc29sdmVyOjptYXRjaEFsbFJ1bGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlUmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVXaXRoRWxlbWVudCk6CisgICAgICAgICogZG9t
L0F0dHIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXR0cjo6ZGV0YWNoRnJvbUVsZW1lbnRXaXRo
VmFsdWUpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnQ6On5FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmRldGFjaEF0dHJp
YnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpnZXRBdHRyaWJ1dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0QXR0cmlidXRlTm9kZSk6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjpyZW1vdmVBdHRyaWJ1dGVJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50OjpnZXRBdHRyaWJ1dGVOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6Omdl
dEF0dHJpYnV0ZU5vZGVOUyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpub3JtYWxpemVB
dHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmF0dHJJZkV4aXN0cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjplbnN1cmVBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnQ6OmNsb25lQXR0cmlidXRlc0Zyb21FbGVtZW50KToKKyAgICAgICAgKiBkb20vRWxl
bWVudC5oOgorICAgICAgICAoRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojp1
cGRhdGVJbnZhbGlkQXR0cmlidXRlcyk6CisgICAgICAgICogZG9tL0VsZW1lbnRBdHRyaWJ1dGVE
YXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok11dGFibGVFbGVtZW50QXR0cmlidXRlRGF0YTo6
TXV0YWJsZUVsZW1lbnRBdHRyaWJ1dGVEYXRhKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6YXR0ckxpc3RNYXApOgorICAgICAgICAoV2ViQ29yZTo6YXR0ckxpc3RGb3JF
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmVuc3VyZUF0dHJMaXN0Rm9yRWxlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpyZW1vdmVBdHRyTGlzdEZvckVsZW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6ZmluZEF0dHJJbkxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudEF0dHJpYnV0
ZURhdGE6OmF0dHJJZkV4aXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50QXR0cmlidXRl
RGF0YTo6ZW5zdXJlQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50QXR0cmlidXRlRGF0
YTo6c2V0QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50QXR0cmlidXRlRGF0YTo6cmVt
b3ZlQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50QXR0cmlidXRlRGF0YTo6ZGV0YWNo
QXR0ck9iamVjdHNGcm9tRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50QXR0cmli
dXRlRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudEF0
dHJpYnV0ZURhdGE6OmNsb25lRGF0YUZyb20pOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudEF0
dHJpYnV0ZURhdGE6OmNsZWFyQXR0cmlidXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
QXR0cmlidXRlRGF0YTo6Z2V0QXR0cmlidXRlTm9kZSk6CisgICAgICAgICogZG9tL0VsZW1lbnRB
dHRyaWJ1dGVEYXRhLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnRBdHRyaWJ1dGVEYXRhOjphdHRyaWJ1dGVTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50QXR0cmlidXRlRGF0YTo6c2V0QXR0cmlidXRlU3R5bGUpOgorICAgICAgICAoRWxlbWVu
dEF0dHJpYnV0ZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudEF0dHJpYnV0ZURhdGE6
OkVsZW1lbnRBdHRyaWJ1dGVEYXRhKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpoYXNBdHRyTGlzdCk6CisgICAgICAg
IChXZWJDb3JlOjpOb2RlOjphdHRyaWJ1dGVTdHlsZURpcnR5KToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGU6OnNldEF0dHJpYnV0ZVN0eWxlRGlydHkpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6
Y2xlYXJBdHRyaWJ1dGVTdHlsZURpcnR5KToKKyAgICAgICAgKE5vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Tm9kZTo6c2V0SGFzQXR0ckxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6Y2xl
YXJIYXNBdHRyTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjppc1N0eWxlQXR0cmlidXRl
VmFsaWQpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0SXNTdHlsZUF0dHJpYnV0ZVZhbGlk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmNsZWFySXNTdHlsZUF0dHJpYnV0ZVZhbGlkKToK
KyAgICAgICAgKiBkb20vU3R5bGVkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZWRFbGVtZW50Ojp1cGRhdGVTdHlsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZWRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlZEVs
ZW1lbnQ6OnN0eWxlQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRF
bGVtZW50OjppbmxpbmVTdHlsZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkRWxl
bWVudDo6dXBkYXRlQXR0cmlidXRlU3R5bGUpOgorICAgICAgICAqIGRvbS9TdHlsZWRFbGVtZW50
Lmg6CisgICAgICAgIChTdHlsZWRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlZEVs
ZW1lbnQ6OmludmFsaWRhdGVTdHlsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZWRFbGVtZW50OjphdHRyaWJ1dGVTdHlsZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckNTU0FnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU0FnZW50OjpidWls
ZE9iamVjdEZvckF0dHJpYnV0ZXNTdHlsZSk6CisKIDIwMTItMTEtMDUgIFNpbW9uIEhhdXNtYW5u
ICA8c2ltb24uaGF1c21hbm5AZGlnaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgdHJpdmlh
bCBRdCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggYWIx
NTUzY2FlMTE5ZmIxMjZkNzE5NzgxOWZlOTk5N2NlNDA3ZTViNy4uN2NjZGZmZmQ3MDY0NWI2MWYx
NmM2YzcxNGY0Y2MyZTA3NDFmMGNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNw
cApAQCAtNDc4LDcgKzQ3OCw3IEBAIFN0eWxlUmVzb2x2ZXI6On5TdHlsZVJlc29sdmVyKCkKIHZv
aWQgU3R5bGVSZXNvbHZlcjo6c3dlZXBNYXRjaGVkUHJvcGVydGllc0NhY2hlKFRpbWVyPFN0eWxl
UmVzb2x2ZXI+KikKIHsKICAgICAvLyBMb29rIGZvciBjYWNoZSBlbnRyaWVzIGNvbnRhaW5pbmcg
YSBzdHlsZSBkZWNsYXJhdGlvbiB3aXRoIGEgc2luZ2xlIHJlZiBhbmQgcmVtb3ZlIHRoZW0uCi0g
ICAgLy8gVGhpcyBtYXkgaGFwcGVuIHdoZW4gYW4gZWxlbWVudCBhdHRyaWJ1dGUgbXV0YXRpb24g
Y2F1c2VzIGl0IHRvIGdlbmVyYXRlIGEgbmV3IHByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKCks
CisgICAgLy8gVGhpcyBtYXkgaGFwcGVuIHdoZW4gYW4gZWxlbWVudCBhdHRyaWJ1dGUgbXV0YXRp
b24gY2F1c2VzIGl0IHRvIGdlbmVyYXRlIGEgbmV3IGF0dHJpYnV0ZVN0eWxlKCksCiAgICAgLy8g
cG90ZW50aWFsbHkgbGVhdmluZyB0aGlzIGNhY2hlIHdpdGggdGhlIGxhc3QgcmVmIG9uIHRoZSBv
bGQgb25lLgogICAgIFZlY3Rvcjx1bnNpZ25lZCwgMTY+IHRvUmVtb3ZlOwogICAgIE1hdGNoZWRQ
cm9wZXJ0aWVzQ2FjaGU6Oml0ZXJhdG9yIGl0ID0gbV9tYXRjaGVkUHJvcGVydGllc0NhY2hlLmJl
Z2luKCk7CkBAIC05MjcsNyArOTI3LDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjptYXRjaEFsbFJ1
bGVzKE1hdGNoUmVzdWx0JiByZXN1bHQsIGJvb2wgaW5jbHVkZVNNSUxQcm9wZXJ0aWUKICAgICAg
ICAgCiAgICAgLy8gTm93IGNoZWNrIGF1dGhvciBydWxlcywgYmVnaW5uaW5nIGZpcnN0IHdpdGgg
cHJlc2VudGF0aW9uYWwgYXR0cmlidXRlcyBtYXBwZWQgZnJvbSBIVE1MLgogICAgIGlmIChtX3N0
eWxlZEVsZW1lbnQpIHsKLSAgICAgICAgYWRkRWxlbWVudFN0eWxlUHJvcGVydGllcyhyZXN1bHQs
IG1fc3R5bGVkRWxlbWVudC0+cHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKSk7CisgICAgICAg
IGFkZEVsZW1lbnRTdHlsZVByb3BlcnRpZXMocmVzdWx0LCBtX3N0eWxlZEVsZW1lbnQtPmF0dHJp
YnV0ZVN0eWxlKCkpOwogCiAgICAgICAgIC8vIE5vdyB3ZSBjaGVjayBhZGRpdGlvbmFsIG1hcHBl
ZCBkZWNsYXJhdGlvbnMuCiAgICAgICAgIC8vIFRhYmxlcyBhbmQgdGFibGUgY2VsbHMgc2hhcmUg
YW4gYWRkaXRpb25hbCBtYXBwZWQgcnVsZSB0aGF0IG11c3QgYmUgYXBwbGllZApAQCAtMTE3OSw3
ICsxMTc5LDcgQEAgYm9vbCBTdHlsZVJlc29sdmVyOjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQo
U3R5bGVkRWxlbWVudCogZWxlbWVudCkgY29uc3QKICAgICBpZiAoZWxlbWVudC0+aXNTVkdFbGVt
ZW50KCkgJiYgc3RhdGljX2Nhc3Q8U1ZHRWxlbWVudCo+KGVsZW1lbnQpLT5hbmltYXRlZFNNSUxT
dHlsZVByb3BlcnRpZXMoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCi0gICAgaWYg
KCEhZWxlbWVudC0+cHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKSAhPSAhIW1fc3R5bGVkRWxl
bWVudC0+cHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKSkKKyAgICBpZiAoISFlbGVtZW50LT5h
dHRyaWJ1dGVTdHlsZSgpICE9ICEhbV9zdHlsZWRFbGVtZW50LT5hdHRyaWJ1dGVTdHlsZSgpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgY29uc3QgU3R5bGVQcm9wZXJ0eVNldCogYWRkaXRp
b25hbEF0dHJpYnV0ZVN0eWxlQSA9IGVsZW1lbnQtPmFkZGl0aW9uYWxBdHRyaWJ1dGVTdHlsZSgp
OwogICAgIGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIGFkZGl0aW9uYWxBdHRyaWJ1dGVTdHlsZUIg
PSBtX3N0eWxlZEVsZW1lbnQtPmFkZGl0aW9uYWxBdHRyaWJ1dGVTdHlsZSgpOwpAQCAtMTI2Niw3
ICsxMjY2LDcgQEAgYm9vbCBTdHlsZVJlc29sdmVyOjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQo
U3R5bGVkRWxlbWVudCogZWxlbWVudCkgY29uc3QKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiAKLSAgICBpZiAoZWxlbWVudC0+cHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKSAm
JiAhYXR0cmlidXRlU3R5bGVzRXF1YWwoZWxlbWVudC0+cHJlc2VudGF0aW9uQXR0cmlidXRlU3R5
bGUoKSwgbV9zdHlsZWRFbGVtZW50LT5wcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSgpKSkKKyAg
ICBpZiAoZWxlbWVudC0+YXR0cmlidXRlU3R5bGUoKSAmJiAhYXR0cmlidXRlU3R5bGVzRXF1YWwo
ZWxlbWVudC0+YXR0cmlidXRlU3R5bGUoKSwgbV9zdHlsZWRFbGVtZW50LT5hdHRyaWJ1dGVTdHls
ZSgpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKGFkZGl0aW9uYWxBdHRyaWJ1
dGVTdHlsZUEgJiYgIWF0dHJpYnV0ZVN0eWxlc0VxdWFsKGFkZGl0aW9uYWxBdHRyaWJ1dGVTdHls
ZUEsIGFkZGl0aW9uYWxBdHRyaWJ1dGVTdHlsZUIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0F0dHIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwCmluZGV4IDI4N2Vm
NmE2YTQxMGU5NDZkMzMyY2EwZmFhZjk1YjE5ODVjMGYyNGIuLjU3ZWZlMjk4MjMyYWZiMjQ2NDIy
MmQwZDIzNzJmMDBhYTAxNzI2NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAKQEAgLTIxOCw2ICsyMTgsNyBA
QCB2b2lkIEF0dHI6OmRldGFjaEZyb21FbGVtZW50V2l0aFZhbHVlKGNvbnN0IEF0b21pY1N0cmlu
ZyYgdmFsdWUpCiB7CiAgICAgQVNTRVJUKG1fZWxlbWVudCk7CiAgICAgQVNTRVJUKG1fc3RhbmRh
bG9uZVZhbHVlLmlzTnVsbCgpKTsKKyAgICBtX2VsZW1lbnQtPmF0dHJpYnV0ZURhdGEoKS0+cmVt
b3ZlQXR0cihtX2VsZW1lbnQsIHF1YWxpZmllZE5hbWUoKSk7CiAgICAgbV9zdGFuZGFsb25lVmFs
dWUgPSB2YWx1ZTsKICAgICBtX2VsZW1lbnQgPSAwOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmlu
ZGV4IDhhNjcyZWE2OGRkMjY5NDYyMjMzYjRkMmZkNTA3NmM5NmZjNzY2NDguLmEwZTQyNDgyOWM5
OTM0ZjBmNWQxNzNiNzM4M2Q1MzhiZDc3MzBjOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAg
LTEyNCw1MiArMTI0LDYgQEAgcHJpdmF0ZToKICAgICBTdHlsZVJlc29sdmVyKiBtX3B1c2hlZFN0
eWxlUmVzb2x2ZXI7CiB9OwogCi10eXBlZGVmIFZlY3RvcjxSZWZQdHI8QXR0cj4gPiBBdHRyTm9k
ZUxpc3Q7Ci10eXBlZGVmIEhhc2hNYXA8RWxlbWVudCosIE93blB0cjxBdHRyTm9kZUxpc3Q+ID4g
QXR0ck5vZGVMaXN0TWFwOwotCi1zdGF0aWMgQXR0ck5vZGVMaXN0TWFwJiBhdHRyTm9kZUxpc3RN
YXAoKQotewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXR0ck5vZGVMaXN0TWFwLCBtYXAsICgp
KTsKLSAgICByZXR1cm4gbWFwOwotfQotCi1zdGF0aWMgQXR0ck5vZGVMaXN0KiBhdHRyTm9kZUxp
c3RGb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCi17Ci0gICAgaWYgKCFlbGVtZW50LT5oYXNT
eW50aGV0aWNBdHRyQ2hpbGROb2RlcygpKQotICAgICAgICByZXR1cm4gMDsKLSAgICBBU1NFUlQo
YXR0ck5vZGVMaXN0TWFwKCkuY29udGFpbnMoZWxlbWVudCkpOwotICAgIHJldHVybiBhdHRyTm9k
ZUxpc3RNYXAoKS5nZXQoZWxlbWVudCk7Ci19Ci0KLXN0YXRpYyBBdHRyTm9kZUxpc3QqIGVuc3Vy
ZUF0dHJOb2RlTGlzdEZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKLXsKLSAgICBpZiAoZWxl
bWVudC0+aGFzU3ludGhldGljQXR0ckNoaWxkTm9kZXMoKSkgewotICAgICAgICBBU1NFUlQoYXR0
ck5vZGVMaXN0TWFwKCkuY29udGFpbnMoZWxlbWVudCkpOwotICAgICAgICByZXR1cm4gYXR0ck5v
ZGVMaXN0TWFwKCkuZ2V0KGVsZW1lbnQpOwotICAgIH0KLSAgICBBU1NFUlQoIWF0dHJOb2RlTGlz
dE1hcCgpLmNvbnRhaW5zKGVsZW1lbnQpKTsKLSAgICBlbGVtZW50LT5zZXRIYXNTeW50aGV0aWNB
dHRyQ2hpbGROb2Rlcyh0cnVlKTsKLSAgICBBdHRyTm9kZUxpc3RNYXA6OkFkZFJlc3VsdCByZXN1
bHQgPSBhdHRyTm9kZUxpc3RNYXAoKS5hZGQoZWxlbWVudCwgYWRvcHRQdHIobmV3IEF0dHJOb2Rl
TGlzdCkpOwotICAgIHJldHVybiByZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmdldCgpOwotfQotCi1z
dGF0aWMgdm9pZCByZW1vdmVBdHRyTm9kZUxpc3RGb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQp
Ci17Ci0gICAgQVNTRVJUKGVsZW1lbnQtPmhhc1N5bnRoZXRpY0F0dHJDaGlsZE5vZGVzKCkpOwot
ICAgIEFTU0VSVChhdHRyTm9kZUxpc3RNYXAoKS5jb250YWlucyhlbGVtZW50KSk7Ci0gICAgYXR0
ck5vZGVMaXN0TWFwKCkucmVtb3ZlKGVsZW1lbnQpOwotICAgIGVsZW1lbnQtPnNldEhhc1N5bnRo
ZXRpY0F0dHJDaGlsZE5vZGVzKGZhbHNlKTsKLX0KLQotc3RhdGljIEF0dHIqIGZpbmRBdHRyTm9k
ZUluTGlzdChBdHRyTm9kZUxpc3QqIGF0dHJOb2RlTGlzdCwgY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSkKLXsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYXR0ck5vZGVMaXN0LT5zaXpl
KCk7ICsraSkgewotICAgICAgICBpZiAoYXR0ck5vZGVMaXN0LT5hdChpKS0+cXVhbGlmaWVkTmFt
ZSgpID09IG5hbWUpCi0gICAgICAgICAgICByZXR1cm4gYXR0ck5vZGVMaXN0LT5hdChpKS5nZXQo
KTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIFBhc3NSZWZQdHI8RWxlbWVudD4gRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVu
dCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQs
IENyZWF0ZUVsZW1lbnQpKTsKQEAgLTE5MSw4ICsxNDUsMTAgQEAgRWxlbWVudDo6fkVsZW1lbnQo
KQogICAgICAgICBlbGVtZW50UmFyZURhdGEoKS0+bV9zaGFkb3cuY2xlYXIoKTsKICAgICB9CiAK
LSAgICBpZiAoaGFzU3ludGhldGljQXR0ckNoaWxkTm9kZXMoKSkKLSAgICAgICAgZGV0YWNoQWxs
QXR0ck5vZGVzRnJvbUVsZW1lbnQoKTsKKyAgICBpZiAoaGFzQXR0ckxpc3QoKSkgeworICAgICAg
ICBBU1NFUlQobV9hdHRyaWJ1dGVEYXRhKTsKKyAgICAgICAgbV9hdHRyaWJ1dGVEYXRhLT5kZXRh
Y2hBdHRyT2JqZWN0c0Zyb21FbGVtZW50KHRoaXMpOworICAgIH0KIH0KIAogaW5saW5lIEVsZW1l
bnRSYXJlRGF0YSogRWxlbWVudDo6ZWxlbWVudFJhcmVEYXRhKCkgY29uc3QKQEAgLTI1MSwxNCAr
MjA3LDE0IEBAIFBhc3NSZWZQdHI8QXR0cj4gRWxlbWVudDo6ZGV0YWNoQXR0cmlidXRlKHNpemVf
dCBpbmRleCkKICAgICBjb25zdCBBdHRyaWJ1dGUqIGF0dHJpYnV0ZSA9IGF0dHJpYnV0ZURhdGEo
KS0+YXR0cmlidXRlSXRlbShpbmRleCk7CiAgICAgQVNTRVJUKGF0dHJpYnV0ZSk7CiAKLSAgICBS
ZWZQdHI8QXR0cj4gYXR0ck5vZGUgPSBhdHRySWZFeGlzdHMoYXR0cmlidXRlLT5uYW1lKCkpOwot
ICAgIGlmIChhdHRyTm9kZSkKLSAgICAgICAgZGV0YWNoQXR0ck5vZGVGcm9tRWxlbWVudFdpdGhW
YWx1ZShhdHRyTm9kZS5nZXQoKSwgYXR0cmlidXRlLT52YWx1ZSgpKTsKKyAgICBSZWZQdHI8QXR0
cj4gYXR0ciA9IGF0dHJJZkV4aXN0cyhhdHRyaWJ1dGUtPm5hbWUoKSk7CisgICAgaWYgKGF0dHIp
CisgICAgICAgIGF0dHItPmRldGFjaEZyb21FbGVtZW50V2l0aFZhbHVlKGF0dHJpYnV0ZS0+dmFs
dWUoKSk7CiAgICAgZWxzZQotICAgICAgICBhdHRyTm9kZSA9IEF0dHI6OmNyZWF0ZShkb2N1bWVu
dCgpLCBhdHRyaWJ1dGUtPm5hbWUoKSwgYXR0cmlidXRlLT52YWx1ZSgpKTsKKyAgICAgICAgYXR0
ciA9IEF0dHI6OmNyZWF0ZShkb2N1bWVudCgpLCBhdHRyaWJ1dGUtPm5hbWUoKSwgYXR0cmlidXRl
LT52YWx1ZSgpKTsKIAogICAgIHJlbW92ZUF0dHJpYnV0ZUludGVybmFsKGluZGV4LCBOb3RJblN5
bmNocm9uaXphdGlvbk9mTGF6eUF0dHJpYnV0ZSk7Ci0gICAgcmV0dXJuIGF0dHJOb2RlLnJlbGVh
c2UoKTsKKyAgICByZXR1cm4gYXR0ci5yZWxlYXNlKCk7CiB9CiAKIHZvaWQgRWxlbWVudDo6cmVt
b3ZlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpCkBAIC0zMDQsNyArMjYwLDcg
QEAgYm9vbCBFbGVtZW50OjpoYXNBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkg
Y29uc3QKIAogY29uc3QgQXRvbWljU3RyaW5nJiBFbGVtZW50OjpnZXRBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKIHsKLSAgICBpZiAoVU5MSUtFTFkobmFtZSA9PSBz
dHlsZUF0dHIpICYmIHN0eWxlQXR0cmlidXRlSXNEaXJ0eSgpKQorICAgIGlmIChVTkxJS0VMWShu
YW1lID09IHN0eWxlQXR0cikgJiYgIWlzU3R5bGVBdHRyaWJ1dGVWYWxpZCgpKQogICAgICAgICB1
cGRhdGVTdHlsZUF0dHJpYnV0ZSgpOwogCiAjaWYgRU5BQkxFKFNWRykKQEAgLTY2Miw3ICs2MTgs
NyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIEVsZW1lbnQ6OmdldEF0dHJpYnV0ZShjb25zdCBBdG9t
aWNTdHJpbmcmIG5hbWUpIGNvbnN0CiAgICAgYm9vbCBpZ25vcmVDYXNlID0gc2hvdWxkSWdub3Jl
QXR0cmlidXRlQ2FzZSh0aGlzKTsKIAogICAgIC8vIFVwZGF0ZSB0aGUgJ3N0eWxlJyBhdHRyaWJ1
dGUgaWYgaXQncyBpbnZhbGlkIGFuZCBiZWluZyByZXF1ZXN0ZWQ6Ci0gICAgaWYgKHN0eWxlQXR0
cmlidXRlSXNEaXJ0eSgpICYmIGVxdWFsUG9zc2libHlJZ25vcmluZ0Nhc2UobmFtZSwgc3R5bGVB
dHRyLmxvY2FsTmFtZSgpLCBpZ25vcmVDYXNlKSkKKyAgICBpZiAoIWlzU3R5bGVBdHRyaWJ1dGVW
YWxpZCgpICYmIGVxdWFsUG9zc2libHlJZ25vcmluZ0Nhc2UobmFtZSwgc3R5bGVBdHRyLmxvY2Fs
TmFtZSgpLCBpZ25vcmVDYXNlKSkKICAgICAgICAgdXBkYXRlU3R5bGVBdHRyaWJ1dGUoKTsKIAog
I2lmIEVOQUJMRShTVkcpCkBAIC0xNTI4LDIwICsxNDg0LDIwIEBAIHZvaWQgRWxlbWVudDo6Zm9y
bWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0CiB9CiAj
ZW5kaWYKIAotUGFzc1JlZlB0cjxBdHRyPiBFbGVtZW50OjpzZXRBdHRyaWJ1dGVOb2RlKEF0dHIq
IGF0dHJOb2RlLCBFeGNlcHRpb25Db2RlJiBlYykKK1Bhc3NSZWZQdHI8QXR0cj4gRWxlbWVudDo6
c2V0QXR0cmlidXRlTm9kZShBdHRyKiBhdHRyLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBp
ZiAoIWF0dHJOb2RlKSB7CisgICAgaWYgKCFhdHRyKSB7CiAgICAgICAgIGVjID0gVFlQRV9NSVNN
QVRDSF9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIFJlZlB0cjxBdHRyPiBv
bGRBdHRyTm9kZSA9IGF0dHJJZkV4aXN0cyhhdHRyTm9kZS0+cXVhbGlmaWVkTmFtZSgpKTsKLSAg
ICBpZiAob2xkQXR0ck5vZGUuZ2V0KCkgPT0gYXR0ck5vZGUpCi0gICAgICAgIHJldHVybiBhdHRy
Tm9kZTsgLy8gVGhpcyBBdHRyIGlzIGFscmVhZHkgYXR0YWNoZWQgdG8gdGhlIGVsZW1lbnQuCisg
ICAgUmVmUHRyPEF0dHI+IG9sZEF0dHIgPSBhdHRySWZFeGlzdHMoYXR0ci0+cXVhbGlmaWVkTmFt
ZSgpKTsKKyAgICBpZiAob2xkQXR0ci5nZXQoKSA9PSBhdHRyKQorICAgICAgICByZXR1cm4gYXR0
cjsgLy8gVGhpcyBBdHRyIGlzIGFscmVhZHkgYXR0YWNoZWQgdG8gdGhlIGVsZW1lbnQuCiAKICAg
ICAvLyBJTlVTRV9BVFRSSUJVVEVfRVJSOiBSYWlzZWQgaWYgbm9kZSBpcyBhbiBBdHRyIHRoYXQg
aXMgYWxyZWFkeSBhbiBhdHRyaWJ1dGUgb2YgYW5vdGhlciBFbGVtZW50IG9iamVjdC4KICAgICAv
LyBUaGUgRE9NIHVzZXIgbXVzdCBleHBsaWNpdGx5IGNsb25lIEF0dHIgbm9kZXMgdG8gcmUtdXNl
IHRoZW0gaW4gb3RoZXIgZWxlbWVudHMuCi0gICAgaWYgKGF0dHJOb2RlLT5vd25lckVsZW1lbnQo
KSkgeworICAgIGlmIChhdHRyLT5vd25lckVsZW1lbnQoKSkgewogICAgICAgICBlYyA9IElOVVNF
X0FUVFJJQlVURV9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTE1NDksMjAgKzE1
MDUsMTcgQEAgUGFzc1JlZlB0cjxBdHRyPiBFbGVtZW50OjpzZXRBdHRyaWJ1dGVOb2RlKEF0dHIq
IGF0dHJOb2RlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB1cGRhdGVJbnZhbGlkQXR0cmlidXRl
cygpOwogICAgIEVsZW1lbnRBdHRyaWJ1dGVEYXRhKiBhdHRyaWJ1dGVEYXRhID0gbXV0YWJsZUF0
dHJpYnV0ZURhdGEoKTsKIAotICAgIHNpemVfdCBpbmRleCA9IGF0dHJpYnV0ZURhdGEtPmdldEF0
dHJpYnV0ZUl0ZW1JbmRleChhdHRyTm9kZS0+cXVhbGlmaWVkTmFtZSgpKTsKKyAgICBzaXplX3Qg
aW5kZXggPSBhdHRyaWJ1dGVEYXRhLT5nZXRBdHRyaWJ1dGVJdGVtSW5kZXgoYXR0ci0+cXVhbGlm
aWVkTmFtZSgpKTsKICAgICBpZiAoaW5kZXggIT0gbm90Rm91bmQpIHsKLSAgICAgICAgaWYgKG9s
ZEF0dHJOb2RlKQotICAgICAgICAgICAgZGV0YWNoQXR0ck5vZGVGcm9tRWxlbWVudFdpdGhWYWx1
ZShvbGRBdHRyTm9kZS5nZXQoKSwgYXR0cmlidXRlRGF0YS0+YXR0cmlidXRlSXRlbShpbmRleCkt
PnZhbHVlKCkpOworICAgICAgICBpZiAob2xkQXR0cikKKyAgICAgICAgICAgIG9sZEF0dHItPmRl
dGFjaEZyb21FbGVtZW50V2l0aFZhbHVlKGF0dHJpYnV0ZURhdGEtPmF0dHJpYnV0ZUl0ZW0oaW5k
ZXgpLT52YWx1ZSgpKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgb2xkQXR0ck5vZGUgPSBB
dHRyOjpjcmVhdGUoZG9jdW1lbnQoKSwgYXR0ck5vZGUtPnF1YWxpZmllZE5hbWUoKSwgYXR0cmli
dXRlRGF0YS0+YXR0cmlidXRlSXRlbShpbmRleCktPnZhbHVlKCkpOworICAgICAgICAgICAgb2xk
QXR0ciA9IEF0dHI6OmNyZWF0ZShkb2N1bWVudCgpLCBhdHRyLT5xdWFsaWZpZWROYW1lKCksIGF0
dHJpYnV0ZURhdGEtPmF0dHJpYnV0ZUl0ZW0oaW5kZXgpLT52YWx1ZSgpKTsKICAgICB9CiAKLSAg
ICBzZXRBdHRyaWJ1dGVJbnRlcm5hbChpbmRleCwgYXR0ck5vZGUtPnF1YWxpZmllZE5hbWUoKSwg
YXR0ck5vZGUtPnZhbHVlKCksIE5vdEluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlKTsK
LQotICAgIGF0dHJOb2RlLT5hdHRhY2hUb0VsZW1lbnQodGhpcyk7Ci0gICAgZW5zdXJlQXR0ck5v
ZGVMaXN0Rm9yRWxlbWVudCh0aGlzKS0+YXBwZW5kKGF0dHJOb2RlKTsKLQotICAgIHJldHVybiBv
bGRBdHRyTm9kZS5yZWxlYXNlKCk7CisgICAgc2V0QXR0cmlidXRlSW50ZXJuYWwoaW5kZXgsIGF0
dHItPnF1YWxpZmllZE5hbWUoKSwgYXR0ci0+dmFsdWUoKSwgTm90SW5TeW5jaHJvbml6YXRpb25P
ZkxhenlBdHRyaWJ1dGUpOworICAgIGF0dHJpYnV0ZURhdGEtPnNldEF0dHIodGhpcywgYXR0ci0+
cXVhbGlmaWVkTmFtZSgpLCBhdHRyKTsKKyAgICByZXR1cm4gb2xkQXR0ci5yZWxlYXNlKCk7CiB9
CiAKIFBhc3NSZWZQdHI8QXR0cj4gRWxlbWVudDo6c2V0QXR0cmlidXRlTm9kZU5TKEF0dHIqIGF0
dHIsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtMTYzNSw4ICsxNTg4LDEwIEBAIHZvaWQgRWxlbWVu
dDo6cmVtb3ZlQXR0cmlidXRlSW50ZXJuYWwoc2l6ZV90IGluZGV4LCBTeW5jaHJvbml6YXRpb25P
ZkxhenlBdHRyaWJ1CiAgICAgICAgICAgICB3aWxsTW9kaWZ5QXR0cmlidXRlKG5hbWUsIHZhbHVl
QmVpbmdSZW1vdmVkLCBudWxsQXRvbSk7CiAgICAgfQogCi0gICAgaWYgKFJlZlB0cjxBdHRyPiBh
dHRyTm9kZSA9IGF0dHJJZkV4aXN0cyhuYW1lKSkKLSAgICAgICAgZGV0YWNoQXR0ck5vZGVGcm9t
RWxlbWVudFdpdGhWYWx1ZShhdHRyTm9kZS5nZXQoKSwgYXR0cmlidXRlRGF0YS0+YXR0cmlidXRl
SXRlbShpbmRleCktPnZhbHVlKCkpOworICAgIGlmIChoYXNBdHRyTGlzdCgpKSB7CisgICAgICAg
IGlmIChSZWZQdHI8QXR0cj4gYXR0ciA9IGF0dHJpYnV0ZURhdGEtPmF0dHJJZkV4aXN0cyh0aGlz
LCBuYW1lKSkKKyAgICAgICAgICAgIGF0dHItPmRldGFjaEZyb21FbGVtZW50V2l0aFZhbHVlKGF0
dHJpYnV0ZURhdGEtPmF0dHJpYnV0ZUl0ZW0oaW5kZXgpLT52YWx1ZSgpKTsKKyAgICB9CiAKICAg
ICBhdHRyaWJ1dGVEYXRhLT5yZW1vdmVBdHRyaWJ1dGUoaW5kZXgpOwogCkBAIC0xNjc4LDEwICsx
NjMzLDcgQEAgUGFzc1JlZlB0cjxBdHRyPiBFbGVtZW50OjpnZXRBdHRyaWJ1dGVOb2RlKGNvbnN0
IEF0b21pY1N0cmluZyYgbmFtZSkKICAgICBjb25zdCBFbGVtZW50QXR0cmlidXRlRGF0YSogYXR0
cmlidXRlRGF0YSA9IHVwZGF0ZWRBdHRyaWJ1dGVEYXRhKCk7CiAgICAgaWYgKCFhdHRyaWJ1dGVE
YXRhKQogICAgICAgICByZXR1cm4gMDsKLSAgICBjb25zdCBBdHRyaWJ1dGUqIGF0dHJpYnV0ZSA9
IGF0dHJpYnV0ZURhdGEtPmdldEF0dHJpYnV0ZUl0ZW0obmFtZSwgc2hvdWxkSWdub3JlQXR0cmli
dXRlQ2FzZSh0aGlzKSk7Ci0gICAgaWYgKCFhdHRyaWJ1dGUpCi0gICAgICAgIHJldHVybiAwOwot
ICAgIHJldHVybiBlbnN1cmVBdHRyKGF0dHJpYnV0ZS0+bmFtZSgpKTsKKyAgICByZXR1cm4gYXR0
cmlidXRlRGF0YS0+Z2V0QXR0cmlidXRlTm9kZShuYW1lLCBzaG91bGRJZ25vcmVBdHRyaWJ1dGVD
YXNlKHRoaXMpLCB0aGlzKTsKIH0KIAogUGFzc1JlZlB0cjxBdHRyPiBFbGVtZW50OjpnZXRBdHRy
aWJ1dGVOb2RlTlMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IEF0b21p
Y1N0cmluZyYgbG9jYWxOYW1lKQpAQCAtMTY4OSwxMCArMTY0MSw3IEBAIFBhc3NSZWZQdHI8QXR0
cj4gRWxlbWVudDo6Z2V0QXR0cmlidXRlTm9kZU5TKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNw
YWNlVVJJLCBjCiAgICAgY29uc3QgRWxlbWVudEF0dHJpYnV0ZURhdGEqIGF0dHJpYnV0ZURhdGEg
PSB1cGRhdGVkQXR0cmlidXRlRGF0YSgpOwogICAgIGlmICghYXR0cmlidXRlRGF0YSkKICAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgY29uc3QgQXR0cmlidXRlKiBhdHRyaWJ1dGUgPSBhdHRyaWJ1dGVE
YXRhLT5nZXRBdHRyaWJ1dGVJdGVtKFF1YWxpZmllZE5hbWUobnVsbEF0b20sIGxvY2FsTmFtZSwg
bmFtZXNwYWNlVVJJKSk7Ci0gICAgaWYgKCFhdHRyaWJ1dGUpCi0gICAgICAgIHJldHVybiAwOwot
ICAgIHJldHVybiBlbnN1cmVBdHRyKGF0dHJpYnV0ZS0+bmFtZSgpKTsKKyAgICByZXR1cm4gYXR0
cmlidXRlRGF0YS0+Z2V0QXR0cmlidXRlTm9kZShRdWFsaWZpZWROYW1lKG51bGxBdG9tLCBsb2Nh
bE5hbWUsIG5hbWVzcGFjZVVSSSksIHRoaXMpOwogfQogCiBib29sIEVsZW1lbnQ6Omhhc0F0dHJp
YnV0ZShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0CkBAIC0xOTI4LDkgKzE4NzcsMTUg
QEAgdm9pZCBFbGVtZW50OjpjYW5jZWxGb2N1c0FwcGVhcmFuY2VVcGRhdGUoKQogCiB2b2lkIEVs
ZW1lbnQ6Om5vcm1hbGl6ZUF0dHJpYnV0ZXMoKQogewotICAgIGlmIChBdHRyTm9kZUxpc3QqIGF0
dHJOb2RlTGlzdCA9IGF0dHJOb2RlTGlzdEZvckVsZW1lbnQodGhpcykpIHsKLSAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IGF0dHJOb2RlTGlzdC0+c2l6ZSgpOyArK2kpCi0gICAgICAg
ICAgICBhdHRyTm9kZUxpc3QtPmF0KGkpLT5ub3JtYWxpemUoKTsKKyAgICBpZiAoIWhhc0F0dHJM
aXN0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnN0IEVsZW1lbnRBdHRyaWJ1dGVEYXRh
KiBhdHRyaWJ1dGVEYXRhID0gdXBkYXRlZEF0dHJpYnV0ZURhdGEoKTsKKyAgICBBU1NFUlQoYXR0
cmlidXRlRGF0YSk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGF0dHJpYnV0ZURhdGEt
Pmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgaWYgKFJlZlB0cjxBdHRyPiBhdHRyID0gYXR0cklm
RXhpc3RzKGF0dHJpYnV0ZURhdGEtPmF0dHJpYnV0ZUl0ZW0oaSktPm5hbWUoKSkpCisgICAgICAg
ICAgICBhdHRyLT5ub3JtYWxpemUoKTsKICAgICB9CiB9CiAKQEAgLTIzODAsNTEgKzIzMzUsMTYg
QEAgdm9pZCBFbGVtZW50OjpzZXRTYXZlZExheWVyU2Nyb2xsT2Zmc2V0KGNvbnN0IEludFNpemUm
IHNpemUpCiAKIFBhc3NSZWZQdHI8QXR0cj4gRWxlbWVudDo6YXR0cklmRXhpc3RzKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUpCiB7Ci0gICAgaWYgKEF0dHJOb2RlTGlzdCogYXR0ck5vZGVMaXN0
ID0gYXR0ck5vZGVMaXN0Rm9yRWxlbWVudCh0aGlzKSkKLSAgICAgICAgcmV0dXJuIGZpbmRBdHRy
Tm9kZUluTGlzdChhdHRyTm9kZUxpc3QsIG5hbWUpOwotICAgIHJldHVybiAwOworICAgIGlmICgh
aGFzQXR0ckxpc3QoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgQVNTRVJUKGF0dHJpYnV0ZURh
dGEoKSk7CisgICAgcmV0dXJuIGF0dHJpYnV0ZURhdGEoKS0+YXR0cklmRXhpc3RzKHRoaXMsIG5h
bWUpOwogfQogCiBQYXNzUmVmUHRyPEF0dHI+IEVsZW1lbnQ6OmVuc3VyZUF0dHIoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSkKIHsKLSAgICBBdHRyTm9kZUxpc3QqIGF0dHJOb2RlTGlzdCA9IGVu
c3VyZUF0dHJOb2RlTGlzdEZvckVsZW1lbnQodGhpcyk7Ci0gICAgUmVmUHRyPEF0dHI+IGF0dHJO
b2RlID0gZmluZEF0dHJOb2RlSW5MaXN0KGF0dHJOb2RlTGlzdCwgbmFtZSk7Ci0gICAgaWYgKCFh
dHRyTm9kZSkgewotICAgICAgICBhdHRyTm9kZSA9IEF0dHI6OmNyZWF0ZSh0aGlzLCBuYW1lKTsK
LSAgICAgICAgYXR0ck5vZGVMaXN0LT5hcHBlbmQoYXR0ck5vZGUpOwotICAgIH0KLSAgICByZXR1
cm4gYXR0ck5vZGUucmVsZWFzZSgpOwotfQotCi12b2lkIEVsZW1lbnQ6OmRldGFjaEF0dHJOb2Rl
RnJvbUVsZW1lbnRXaXRoVmFsdWUoQXR0ciogYXR0ck5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYg
dmFsdWUpCi17Ci0gICAgQVNTRVJUKGhhc1N5bnRoZXRpY0F0dHJDaGlsZE5vZGVzKCkpOwotICAg
IGF0dHJOb2RlLT5kZXRhY2hGcm9tRWxlbWVudFdpdGhWYWx1ZSh2YWx1ZSk7Ci0KLSAgICBBdHRy
Tm9kZUxpc3QqIGF0dHJOb2RlTGlzdCA9IGF0dHJOb2RlTGlzdEZvckVsZW1lbnQodGhpcyk7Ci0g
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGF0dHJOb2RlTGlzdC0+c2l6ZSgpOyArK2kpIHsK
LSAgICAgICAgaWYgKGF0dHJOb2RlTGlzdC0+YXQoaSktPnF1YWxpZmllZE5hbWUoKSA9PSBhdHRy
Tm9kZS0+cXVhbGlmaWVkTmFtZSgpKSB7Ci0gICAgICAgICAgICBhdHRyTm9kZUxpc3QtPnJlbW92
ZShpKTsKLSAgICAgICAgICAgIGlmIChhdHRyTm9kZUxpc3QtPmlzRW1wdHkoKSkKLSAgICAgICAg
ICAgICAgICByZW1vdmVBdHRyTm9kZUxpc3RGb3JFbGVtZW50KHRoaXMpOwotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQot
Ci12b2lkIEVsZW1lbnQ6OmRldGFjaEFsbEF0dHJOb2Rlc0Zyb21FbGVtZW50KCkKLXsKLSAgICBB
dHRyTm9kZUxpc3QqIGF0dHJOb2RlTGlzdCA9IGF0dHJOb2RlTGlzdEZvckVsZW1lbnQodGhpcyk7
Ci0gICAgQVNTRVJUKGF0dHJOb2RlTGlzdCk7Ci0KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgYXR0cmlidXRlQ291bnQoKTsgKytpKSB7Ci0gICAgICAgIGNvbnN0IEF0dHJpYnV0ZSogYXR0
cmlidXRlID0gYXR0cmlidXRlSXRlbShpKTsKLSAgICAgICAgaWYgKFJlZlB0cjxBdHRyPiBhdHRy
Tm9kZSA9IGZpbmRBdHRyTm9kZUluTGlzdChhdHRyTm9kZUxpc3QsIGF0dHJpYnV0ZS0+bmFtZSgp
KSkKLSAgICAgICAgICAgIGF0dHJOb2RlLT5kZXRhY2hGcm9tRWxlbWVudFdpdGhWYWx1ZShhdHRy
aWJ1dGUtPnZhbHVlKCkpOwotICAgIH0KLQotICAgIHJlbW92ZUF0dHJOb2RlTGlzdEZvckVsZW1l
bnQodGhpcyk7CisgICAgQVNTRVJUKGF0dHJpYnV0ZURhdGEoKSk7CisgICAgcmV0dXJuIGF0dHJp
YnV0ZURhdGEoKS0+ZW5zdXJlQXR0cih0aGlzLCBuYW1lKTsKIH0KIAogYm9vbCBFbGVtZW50Ojp3
aWxsUmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UpCkBAIC0yNDQ4LDEzICsyMzY4LDEwIEBAIFBhc3NS
ZWZQdHI8UmVuZGVyU3R5bGU+IEVsZW1lbnQ6OmN1c3RvbVN0eWxlRm9yUmVuZGVyZXIoKQogCiB2
b2lkIEVsZW1lbnQ6OmNsb25lQXR0cmlidXRlc0Zyb21FbGVtZW50KGNvbnN0IEVsZW1lbnQmIG90
aGVyKQogewotICAgIGlmIChoYXNTeW50aGV0aWNBdHRyQ2hpbGROb2RlcygpKQotICAgICAgICBk
ZXRhY2hBbGxBdHRyTm9kZXNGcm9tRWxlbWVudCgpOwotCiAgICAgaWYgKGNvbnN0IEVsZW1lbnRB
dHRyaWJ1dGVEYXRhKiBhdHRyaWJ1dGVEYXRhID0gb3RoZXIudXBkYXRlZEF0dHJpYnV0ZURhdGEo
KSkKICAgICAgICAgbXV0YWJsZUF0dHJpYnV0ZURhdGEoKS0+Y2xvbmVEYXRhRnJvbSgqYXR0cmli
dXRlRGF0YSwgb3RoZXIsICp0aGlzKTsKICAgICBlbHNlIGlmIChtX2F0dHJpYnV0ZURhdGEpIHsK
LSAgICAgICAgbV9hdHRyaWJ1dGVEYXRhLT5jbGVhckF0dHJpYnV0ZXMoKTsKKyAgICAgICAgbV9h
dHRyaWJ1dGVEYXRhLT5jbGVhckF0dHJpYnV0ZXModGhpcyk7CiAgICAgICAgIG1fYXR0cmlidXRl
RGF0YS5jbGVhcigpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDcwMDk1ZmU4OTVm
NDZhYTY3ZmRlM2RhMTIyZDdhNjQzZThiNjc2OWQuLjUxMzU4Mzg5N2RlNDg3NjY2MWU0ODMwZjhl
YTRiOWU1OTgwZjAxNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMyw3ICszLDcgQEAKICAqICAg
ICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqICAg
ICAgICAgICAoQykgMjAwMSBQZXRlciBLZWxseSAocG1rQHBvc3QuY29tKQogICogICAgICAgICAg
IChDKSAyMDAxIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChD
KSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAy
MDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
MywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQ2NSw4ICs0
NjUsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gc3ZnQXR0cmlidXRlQ2hhbmdlZCAoY2FsbGVkIHdo
ZW4gZWxlbWVudC5jbGFzc05hbWUuYmFzZVZhbHVlIGlzIHNldCkKICAgICB2b2lkIGNsYXNzQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIG5ld0NsYXNzU3RyaW5nKTsKIAotICAg
IGJvb2wgc3R5bGVBdHRyaWJ1dGVJc0RpcnR5KCkgY29uc3Q7Ci0KIHByaXZhdGU6CiAgICAgLy8g
RklYTUU6IFJlbW92ZSB0aGUgbmVlZCBmb3IgQXR0ciB0byBjYWxsIHdpbGxNb2RpZnlBdHRyaWJ1
dGUvZGlkTW9kaWZ5QXR0cmlidXRlLgogICAgIGZyaWVuZCBjbGFzcyBBdHRyOwpAQCAtNTMwLDkg
KzUyOCw2IEBAIHByaXZhdGU6CiAgICAgRWxlbWVudFJhcmVEYXRhKiBlbGVtZW50UmFyZURhdGEo
KSBjb25zdDsKICAgICBFbGVtZW50UmFyZURhdGEqIGVuc3VyZUVsZW1lbnRSYXJlRGF0YSgpOwog
Ci0gICAgdm9pZCBkZXRhY2hBbGxBdHRyTm9kZXNGcm9tRWxlbWVudCgpOwotICAgIHZvaWQgZGV0
YWNoQXR0ck5vZGVGcm9tRWxlbWVudFdpdGhWYWx1ZShBdHRyKiwgY29uc3QgQXRvbWljU3RyaW5n
JiB2YWx1ZSk7Ci0KICAgICBSZWZQdHI8RWxlbWVudEF0dHJpYnV0ZURhdGE+IG1fYXR0cmlidXRl
RGF0YTsKIH07CiAgICAgCkBAIC03MzMsMTQgKzcyOCw5IEBAIGlubGluZSBBdHRyaWJ1dGUqIEVs
ZW1lbnQ6OmdldEF0dHJpYnV0ZUl0ZW0oY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkKICAgICBy
ZXR1cm4gbXV0YWJsZUF0dHJpYnV0ZURhdGEoKS0+Z2V0QXR0cmlidXRlSXRlbShuYW1lKTsKIH0K
IAotaW5saW5lIGJvb2wgRWxlbWVudDo6c3R5bGVBdHRyaWJ1dGVJc0RpcnR5KCkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV9hdHRyaWJ1dGVEYXRhICYmIG1fYXR0cmlidXRlRGF0YS0+c3R5bGVBdHRy
aWJ1dGVJc0RpcnR5KCk7Ci19Ci0KIGlubGluZSB2b2lkIEVsZW1lbnQ6OnVwZGF0ZUludmFsaWRB
dHRyaWJ1dGVzKCkgY29uc3QKIHsKLSAgICBpZiAoc3R5bGVBdHRyaWJ1dGVJc0RpcnR5KCkpCisg
ICAgaWYgKCFpc1N0eWxlQXR0cmlidXRlVmFsaWQoKSkKICAgICAgICAgdXBkYXRlU3R5bGVBdHRy
aWJ1dGUoKTsKIAogI2lmIEVOQUJMRShTVkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudEF0dHJpYnV0ZURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRB
dHRyaWJ1dGVEYXRhLmNwcAppbmRleCA5ZjJkYWNiYTU3ZTk1ZGUxOGNkMzIxYzgwZjIxOTNiMThj
OTMwMDA0Li5hMjE2OWZiNGNjMjk2M2Y5NjJiZDBlYjU1YWUwMGE0ZGE0MDkxOTBkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEF0dHJpYnV0ZURhdGEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5jcHAKQEAgLTM1LDEyICszNSw2
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RydWN0IFNhbWVTaXplQXNFbGVtZW50QXR0
cmlidXRlRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPFNhbWVTaXplQXNFbGVtZW50QXR0cmlidXRl
RGF0YT4gewotICAgIHVuc2lnbmVkIGJpdGZpZWxkOwotICAgIHZvaWQqIHBvaW50ZXJzWzRdOwot
fTsKLUNPTVBJTEVfQVNTRVJUKHNpemVvZihFbGVtZW50QXR0cmlidXRlRGF0YSkgPT0gc2l6ZW9m
KEVsZW1lbnRBdHRyaWJ1dGVEYXRhKSwgZWxlbWVudF9hdHRyaWJ1dGVfZGF0YV9zaG91bGRfc3Rh
eV9zbWFsbCk7Ci0KIHN0YXRpYyBzaXplX3Qgc2l6ZUZvckltbXV0YWJsZUVsZW1lbnRBdHRyaWJ1
dGVEYXRhV2l0aEF0dHJpYnV0ZUNvdW50KHVuc2lnbmVkIGNvdW50KQogewogICAgIHJldHVybiBz
aXplb2YoSW1tdXRhYmxlRWxlbWVudEF0dHJpYnV0ZURhdGEpIC0gc2l6ZW9mKHZvaWQqKSArIHNp
emVvZihBdHRyaWJ1dGUpICogY291bnQ7CkBAIC02OSw3ICs2Myw3IEBAIE11dGFibGVFbGVtZW50
QXR0cmlidXRlRGF0YTo6TXV0YWJsZUVsZW1lbnRBdHRyaWJ1dGVEYXRhKGNvbnN0IEltbXV0YWJs
ZUVsZW1lbnRBCiAgICAgY29uc3QgRWxlbWVudEF0dHJpYnV0ZURhdGEmIGJhc2VPdGhlciA9IHN0
YXRpY19jYXN0PGNvbnN0IEVsZW1lbnRBdHRyaWJ1dGVEYXRhJj4ob3RoZXIpOwogCiAgICAgbV9p
bmxpbmVTdHlsZURlY2wgPSBiYXNlT3RoZXIubV9pbmxpbmVTdHlsZURlY2w7Ci0gICAgbV9wcmVz
ZW50YXRpb25BdHRyaWJ1dGVTdHlsZSA9IGJhc2VPdGhlci5tX3ByZXNlbnRhdGlvbkF0dHJpYnV0
ZVN0eWxlOworICAgIG1fYXR0cmlidXRlU3R5bGUgPSBiYXNlT3RoZXIubV9hdHRyaWJ1dGVTdHls
ZTsKICAgICBtX2NsYXNzTmFtZXMgPSBiYXNlT3RoZXIubV9jbGFzc05hbWVzOwogICAgIG1faWRG
b3JTdHlsZVJlc29sdXRpb24gPSBiYXNlT3RoZXIubV9pZEZvclN0eWxlUmVzb2x1dGlvbjsKIApA
QCAtOTMsNiArODcsMTAxIEBAIFBhc3NSZWZQdHI8RWxlbWVudEF0dHJpYnV0ZURhdGE+IEVsZW1l
bnRBdHRyaWJ1dGVEYXRhOjptYWtlTXV0YWJsZUNvcHkoKSBjb25zdAogICAgIHJldHVybiBhZG9w
dFJlZihuZXcgTXV0YWJsZUVsZW1lbnRBdHRyaWJ1dGVEYXRhKHN0YXRpY19jYXN0PGNvbnN0IElt
bXV0YWJsZUVsZW1lbnRBdHRyaWJ1dGVEYXRhJj4oKnRoaXMpKSk7CiB9CiAKK3R5cGVkZWYgVmVj
dG9yPFJlZlB0cjxBdHRyPiA+IEF0dHJMaXN0OwordHlwZWRlZiBIYXNoTWFwPEVsZW1lbnQqLCBP
d25QdHI8QXR0ckxpc3Q+ID4gQXR0ckxpc3RNYXA7CisKK3N0YXRpYyBBdHRyTGlzdE1hcCYgYXR0
ckxpc3RNYXAoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXR0ckxpc3RNYXAsIG1hcCwg
KCkpOworICAgIHJldHVybiBtYXA7Cit9CisKK3N0YXRpYyBBdHRyTGlzdCogYXR0ckxpc3RGb3JF
bGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgQVNTRVJUKGVsZW1lbnQpOworICAgIGlm
ICghZWxlbWVudC0+aGFzQXR0ckxpc3QoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgQVNTRVJU
KGF0dHJMaXN0TWFwKCkuY29udGFpbnMoZWxlbWVudCkpOworICAgIHJldHVybiBhdHRyTGlzdE1h
cCgpLmdldChlbGVtZW50KTsKK30KKworc3RhdGljIEF0dHJMaXN0KiBlbnN1cmVBdHRyTGlzdEZv
ckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBBU1NFUlQoZWxlbWVudCk7CisgICAg
aWYgKGVsZW1lbnQtPmhhc0F0dHJMaXN0KCkpIHsKKyAgICAgICAgQVNTRVJUKGF0dHJMaXN0TWFw
KCkuY29udGFpbnMoZWxlbWVudCkpOworICAgICAgICByZXR1cm4gYXR0ckxpc3RNYXAoKS5nZXQo
ZWxlbWVudCk7CisgICAgfQorICAgIEFTU0VSVCghYXR0ckxpc3RNYXAoKS5jb250YWlucyhlbGVt
ZW50KSk7CisgICAgZWxlbWVudC0+c2V0SGFzQXR0ckxpc3QoKTsKKyAgICBBdHRyTGlzdE1hcDo6
QWRkUmVzdWx0IHJlc3VsdCA9IGF0dHJMaXN0TWFwKCkuYWRkKGVsZW1lbnQsIGFkb3B0UHRyKG5l
dyBBdHRyTGlzdCkpOworICAgIHJldHVybiByZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmdldCgpOwor
fQorCitzdGF0aWMgdm9pZCByZW1vdmVBdHRyTGlzdEZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVu
dCkKK3sKKyAgICBBU1NFUlQoZWxlbWVudCk7CisgICAgQVNTRVJUKGVsZW1lbnQtPmhhc0F0dHJM
aXN0KCkpOworICAgIEFTU0VSVChhdHRyTGlzdE1hcCgpLmNvbnRhaW5zKGVsZW1lbnQpKTsKKyAg
ICBhdHRyTGlzdE1hcCgpLnJlbW92ZShlbGVtZW50KTsKKyAgICBlbGVtZW50LT5jbGVhckhhc0F0
dHJMaXN0KCk7Cit9CisKK3N0YXRpYyBBdHRyKiBmaW5kQXR0ckluTGlzdChBdHRyTGlzdCogYXR0
ckxpc3QsIGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpCit7CisgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IGF0dHJMaXN0LT5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAoYXR0ckxpc3Qt
PmF0KGkpLT5xdWFsaWZpZWROYW1lKCkgPT0gbmFtZSkKKyAgICAgICAgICAgIHJldHVybiBhdHRy
TGlzdC0+YXQoaSkuZ2V0KCk7CisgICAgfQorICAgIHJldHVybiAwOworfQorCitQYXNzUmVmUHRy
PEF0dHI+IEVsZW1lbnRBdHRyaWJ1dGVEYXRhOjphdHRySWZFeGlzdHMoRWxlbWVudCogZWxlbWVu
dCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKK3sKKyAgICBpZiAoQXR0ckxpc3Qq
IGF0dHJMaXN0ID0gYXR0ckxpc3RGb3JFbGVtZW50KGVsZW1lbnQpKQorICAgICAgICByZXR1cm4g
ZmluZEF0dHJJbkxpc3QoYXR0ckxpc3QsIG5hbWUpOworICAgIHJldHVybiAwOworfQorCitQYXNz
UmVmUHRyPEF0dHI+IEVsZW1lbnRBdHRyaWJ1dGVEYXRhOjplbnN1cmVBdHRyKEVsZW1lbnQqIGVs
ZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0Cit7CisgICAgQXR0ckxpc3Qq
IGF0dHJMaXN0ID0gZW5zdXJlQXR0ckxpc3RGb3JFbGVtZW50KGVsZW1lbnQpOworICAgIFJlZlB0
cjxBdHRyPiBhdHRyID0gZmluZEF0dHJJbkxpc3QoYXR0ckxpc3QsIG5hbWUpOworICAgIGlmICgh
YXR0cikgeworICAgICAgICBhdHRyID0gQXR0cjo6Y3JlYXRlKGVsZW1lbnQsIG5hbWUpOworICAg
ICAgICBhdHRyTGlzdC0+YXBwZW5kKGF0dHIpOworICAgIH0KKyAgICByZXR1cm4gYXR0ci5yZWxl
YXNlKCk7Cit9CisKK3ZvaWQgRWxlbWVudEF0dHJpYnV0ZURhdGE6OnNldEF0dHIoRWxlbWVudCog
ZWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgQXR0ciogYXR0cikgY29uc3QKK3sK
KyAgICBBdHRyTGlzdCogYXR0ckxpc3QgPSBlbnN1cmVBdHRyTGlzdEZvckVsZW1lbnQoZWxlbWVu
dCk7CisKKyAgICBpZiAoZmluZEF0dHJJbkxpc3QoYXR0ckxpc3QsIG5hbWUpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBhdHRyTGlzdC0+YXBwZW5kKGF0dHIpOworICAgIGF0dHItPmF0dGFjaFRv
RWxlbWVudChlbGVtZW50KTsKK30KKwordm9pZCBFbGVtZW50QXR0cmlidXRlRGF0YTo6cmVtb3Zl
QXR0cihFbGVtZW50KiBlbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAor
eworICAgIEF0dHJMaXN0KiBhdHRyTGlzdCA9IGF0dHJMaXN0Rm9yRWxlbWVudChlbGVtZW50KTsK
KyAgICBBU1NFUlQoYXR0ckxpc3QpOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGF0
dHJMaXN0LT5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAoYXR0ckxpc3QtPmF0KGkpLT5xdWFs
aWZpZWROYW1lKCkgPT0gbmFtZSkgeworICAgICAgICAgICAgYXR0ckxpc3QtPnJlbW92ZShpKTsK
KyAgICAgICAgICAgIGlmIChhdHRyTGlzdC0+aXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIHJl
bW92ZUF0dHJMaXN0Rm9yRWxlbWVudChlbGVtZW50KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCiBTdHlsZVBy
b3BlcnR5U2V0KiBFbGVtZW50QXR0cmlidXRlRGF0YTo6ZW5zdXJlSW5saW5lU3R5bGUoU3R5bGVk
RWxlbWVudCogZWxlbWVudCkKIHsKICAgICBBU1NFUlQoaXNNdXRhYmxlKCkpOwpAQCAtMTY5LDEy
ICsyNTgsMjYgQEAgYm9vbCBFbGVtZW50QXR0cmlidXRlRGF0YTo6aXNFcXVpdmFsZW50KGNvbnN0
IEVsZW1lbnRBdHRyaWJ1dGVEYXRhKiBvdGhlcikgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAordm9pZCBFbGVtZW50QXR0cmlidXRlRGF0YTo6ZGV0YWNoQXR0ck9iamVjdHNGcm9tRWxlbWVu
dChFbGVtZW50KiBlbGVtZW50KSBjb25zdAoreworICAgIEFTU0VSVChlbGVtZW50LT5oYXNBdHRy
TGlzdCgpKTsKKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGgoKTsgKytpKSB7
CisgICAgICAgIGNvbnN0IEF0dHJpYnV0ZSogYXR0cmlidXRlID0gYXR0cmlidXRlSXRlbShpKTsK
KyAgICAgICAgaWYgKFJlZlB0cjxBdHRyPiBhdHRyID0gYXR0cklmRXhpc3RzKGVsZW1lbnQsIGF0
dHJpYnV0ZS0+bmFtZSgpKSkKKyAgICAgICAgICAgIGF0dHItPmRldGFjaEZyb21FbGVtZW50V2l0
aFZhbHVlKGF0dHJpYnV0ZS0+dmFsdWUoKSk7CisgICAgfQorCisgICAgLy8gVGhlIGxvb3AgYWJv
dmUgc2hvdWxkIGhhdmUgY2xlYW5lZCBvdXQgdGhpcyBlbGVtZW50J3MgQXR0ciBtYXAuCisgICAg
QVNTRVJUKCFlbGVtZW50LT5oYXNBdHRyTGlzdCgpKTsKK30KKwogdm9pZCBFbGVtZW50QXR0cmli
dXRlRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0
SW5mbykgY29uc3QKIHsKICAgICBzaXplX3QgYWN0dWFsU2l6ZSA9IG1faXNNdXRhYmxlID8gc2l6
ZW9mKEVsZW1lbnRBdHRyaWJ1dGVEYXRhKSA6IHNpemVGb3JJbW11dGFibGVFbGVtZW50QXR0cmli
dXRlRGF0YVdpdGhBdHRyaWJ1dGVDb3VudChtX2FycmF5U2l6ZSk7CiAgICAgTWVtb3J5Q2xhc3NJ
bmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00s
IGFjdHVhbFNpemUpOwogICAgIGluZm8uYWRkTWVtYmVyKG1faW5saW5lU3R5bGVEZWNsKTsKLSAg
ICBpbmZvLmFkZE1lbWJlcihtX3ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX2F0dHJpYnV0ZVN0eWxlKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2NsYXNz
TmFtZXMpOwogICAgIGluZm8uYWRkTWVtYmVyKG1faWRGb3JTdHlsZVJlc29sdXRpb24pOwogICAg
IGlmIChtX2lzTXV0YWJsZSkKQEAgLTIxOSw3ICszMjIsNyBAQCB2b2lkIEVsZW1lbnRBdHRyaWJ1
dGVEYXRhOjpjbG9uZURhdGFGcm9tKGNvbnN0IEVsZW1lbnRBdHRyaWJ1dGVEYXRhJiBzb3VyY2VE
YXRhLAogICAgIGlmICghb2xkTmFtZS5pc051bGwoKSB8fCAhbmV3TmFtZS5pc051bGwoKSkKICAg
ICAgICAgdGFyZ2V0RWxlbWVudC51cGRhdGVOYW1lKG9sZE5hbWUsIG5ld05hbWUpOwogCi0gICAg
Y2xlYXJBdHRyaWJ1dGVzKCk7CisgICAgY2xlYXJBdHRyaWJ1dGVzKCZ0YXJnZXRFbGVtZW50KTsK
IAogICAgIGlmIChzb3VyY2VEYXRhLmlzTXV0YWJsZSgpKQogICAgICAgICBtdXRhYmxlQXR0cmli
dXRlVmVjdG9yKCkgPSBzb3VyY2VEYXRhLm11dGFibGVBdHRyaWJ1dGVWZWN0b3IoKTsKQEAgLTIz
OCwyNSArMzQxLDM5IEBAIHZvaWQgRWxlbWVudEF0dHJpYnV0ZURhdGE6OmNsb25lRGF0YUZyb20o
Y29uc3QgRWxlbWVudEF0dHJpYnV0ZURhdGEmIHNvdXJjZURhdGEsCiAgICAgICAgIHRhcmdldEVs
ZW1lbnQuYXR0cmlidXRlQ2hhbmdlZChhdHRyaWJ1dGUubmFtZSgpLCBhdHRyaWJ1dGUudmFsdWUo
KSk7CiAgICAgfQogCi0gICAgaWYgKCF0YXJnZXRFbGVtZW50LmlzU3R5bGVkRWxlbWVudCgpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBtX3N0eWxlQXR0cmlidXRlSXNEaXJ0eSA9IHNvdXJjZURh
dGEubV9zdHlsZUF0dHJpYnV0ZUlzRGlydHk7Ci0gICAgbV9wcmVzZW50YXRpb25BdHRyaWJ1dGVT
dHlsZUlzRGlydHkgPSBzb3VyY2VEYXRhLm1fcHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGVJc0Rp
cnR5OwotCi0gICAgLy8gQ2xvbmUgdGhlIHNvdXJjZSBlbGVtZW50J3MgaW5saW5lIHN0eWxlIHVu
bGVzcyBpdCdzIGltbXV0YWJsZS4KLSAgICBpZiAoc291cmNlRGF0YS5tX2lubGluZVN0eWxlRGVj
bCkKKyAgICBpZiAodGFyZ2V0RWxlbWVudC5pc1N0eWxlZEVsZW1lbnQoKSAmJiBzb3VyY2VEYXRh
Lm1faW5saW5lU3R5bGVEZWNsKSB7CiAgICAgICAgIG1faW5saW5lU3R5bGVEZWNsID0gc291cmNl
RGF0YS5tX2lubGluZVN0eWxlRGVjbC0+aW1tdXRhYmxlQ29weUlmTmVlZGVkKCk7Ci0KLSAgICAv
LyBTaGFyZSB0aGUgcHJlc2VudGF0aW9uIGF0dHJpYnV0ZSBzdHlsZSAobm8gbmVlZCBmb3IgY2xv
bmluZyBzaW5jZSBpdCdzIG5vdCBhY2Nlc3NpYmxlIHZpYSBDU1NPTS4pCi0gICAgbV9wcmVzZW50
YXRpb25BdHRyaWJ1dGVTdHlsZSA9IHNvdXJjZURhdGEubV9wcmVzZW50YXRpb25BdHRyaWJ1dGVT
dHlsZTsKKyAgICAgICAgdGFyZ2V0RWxlbWVudC5zZXRJc1N0eWxlQXR0cmlidXRlVmFsaWQoc291
cmNlRWxlbWVudC5pc1N0eWxlQXR0cmlidXRlVmFsaWQoKSk7CisgICAgfQogfQogCi12b2lkIEVs
ZW1lbnRBdHRyaWJ1dGVEYXRhOjpjbGVhckF0dHJpYnV0ZXMoKQordm9pZCBFbGVtZW50QXR0cmli
dXRlRGF0YTo6Y2xlYXJBdHRyaWJ1dGVzKEVsZW1lbnQqIGVsZW1lbnQpCiB7CiAgICAgQVNTRVJU
KGlzTXV0YWJsZSgpKTsKKworICAgIGlmIChlbGVtZW50LT5oYXNBdHRyTGlzdCgpKQorICAgICAg
ICBkZXRhY2hBdHRyT2JqZWN0c0Zyb21FbGVtZW50KGVsZW1lbnQpOworCiAgICAgY2xlYXJDbGFz
cygpOwogICAgIG11dGFibGVBdHRyaWJ1dGVWZWN0b3IoKS5jbGVhcigpOwogfQogCitQYXNzUmVm
UHRyPEF0dHI+IEVsZW1lbnRBdHRyaWJ1dGVEYXRhOjpnZXRBdHRyaWJ1dGVOb2RlKGNvbnN0IFN0
cmluZyYgbmFtZSwgYm9vbCBzaG91bGRJZ25vcmVBdHRyaWJ1dGVDYXNlLCBFbGVtZW50KiBlbGVt
ZW50KSBjb25zdAoreworICAgIEFTU0VSVChlbGVtZW50KTsKKyAgICBjb25zdCBBdHRyaWJ1dGUq
IGF0dHJpYnV0ZSA9IGdldEF0dHJpYnV0ZUl0ZW0obmFtZSwgc2hvdWxkSWdub3JlQXR0cmlidXRl
Q2FzZSk7CisgICAgaWYgKCFhdHRyaWJ1dGUpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVy
biBlbnN1cmVBdHRyKGVsZW1lbnQsIGF0dHJpYnV0ZS0+bmFtZSgpKTsKK30KKworUGFzc1JlZlB0
cjxBdHRyPiBFbGVtZW50QXR0cmlidXRlRGF0YTo6Z2V0QXR0cmlidXRlTm9kZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBFbGVtZW50KiBlbGVtZW50KSBjb25zdAoreworICAgIEFTU0VSVChl
bGVtZW50KTsKKyAgICBjb25zdCBBdHRyaWJ1dGUqIGF0dHJpYnV0ZSA9IGdldEF0dHJpYnV0ZUl0
ZW0obmFtZSk7CisgICAgaWYgKCFhdHRyaWJ1dGUpCisgICAgICAgIHJldHVybiAwOworICAgIHJl
dHVybiBlbnN1cmVBdHRyKGVsZW1lbnQsIGF0dHJpYnV0ZS0+bmFtZSgpKTsKK30KKwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRhLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudEF0dHJpYnV0ZURhdGEuaAppbmRleCA0M2Y5N2Q5ZmIwZTM5
NDQ5NDExZGFmYTA0YzFhNGEyZTFkN2FmOGQyLi44NDdkMzk5NTFhNWE3ZDAwNDgxODdkYjIwMTFh
MDA0NGJkMjAxN2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEF0dHJp
YnV0ZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEF0dHJpYnV0ZURhdGEu
aApAQCAtMzMsNiArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEF0dHI7
CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgSW1tdXRhYmxlRWxlbWVudEF0dHJpYnV0ZURhdGE7CiBj
bGFzcyBNdXRhYmxlRWxlbWVudEF0dHJpYnV0ZURhdGE7CkBAIC02MiwxMiArNjMsMTUgQEAgcHVi
bGljOgogICAgIHZvaWQgZGVzdHJveUlubGluZVN0eWxlKFN0eWxlZEVsZW1lbnQqKTsKICAgICB2
b2lkIGRldGFjaENTU09NV3JhcHBlcklmTmVlZGVkKFN0eWxlZEVsZW1lbnQqKTsKIAotICAgIGNv
bnN0IFN0eWxlUHJvcGVydHlTZXQqIHByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKCkgY29uc3Qg
eyByZXR1cm4gbV9wcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZS5nZXQoKTsgfQotICAgIHZvaWQg
c2V0UHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0
PiBzdHlsZSkgY29uc3QgeyBtX3ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlPSBzdHlsZTsgfQor
ICAgIGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIGF0dHJpYnV0ZVN0eWxlKCkgY29uc3QgeyByZXR1
cm4gbV9hdHRyaWJ1dGVTdHlsZS5nZXQoKTsgfQorICAgIHZvaWQgc2V0QXR0cmlidXRlU3R5bGUo
UGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBzdHlsZSkgY29uc3QgeyBtX2F0dHJpYnV0ZVN0
eWxlID0gc3R5bGU7IH0KIAogICAgIHNpemVfdCBsZW5ndGgoKSBjb25zdDsKICAgICBib29sIGlz
RW1wdHkoKSBjb25zdCB7IHJldHVybiAhbGVuZ3RoKCk7IH0KIAorICAgIFBhc3NSZWZQdHI8QXR0
cj4gZ2V0QXR0cmlidXRlTm9kZShjb25zdCBTdHJpbmcmLCBib29sIHNob3VsZElnbm9yZUF0dHJp
YnV0ZUNhc2UsIEVsZW1lbnQqKSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPEF0dHI+IGdldEF0dHJp
YnV0ZU5vZGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIEVsZW1lbnQqKSBjb25zdDsKKwogICAgIC8v
IEludGVybmFsIGludGVyZmFjZS4KICAgICBjb25zdCBBdHRyaWJ1dGUqIGF0dHJpYnV0ZUl0ZW0o
dW5zaWduZWQgaW5kZXgpIGNvbnN0OwogICAgIGNvbnN0IEF0dHJpYnV0ZSogZ2V0QXR0cmlidXRl
SXRlbShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Q7CkBAIC04NSwxMCArODksMTEgQEAgcHVi
bGljOgogCiAgICAgYm9vbCBpc0VxdWl2YWxlbnQoY29uc3QgRWxlbWVudEF0dHJpYnV0ZURhdGEq
IG90aGVyKSBjb25zdDsKIAotICAgIGJvb2wgc3R5bGVBdHRyaWJ1dGVJc0RpcnR5KCkgY29uc3Qg
eyByZXR1cm4gbV9zdHlsZUF0dHJpYnV0ZUlzRGlydHk7IH0KLSAgICB2b2lkIHNldFN0eWxlQXR0
cmlidXRlSXNEaXJ0eShib29sIGYpIGNvbnN0IHsgbV9zdHlsZUF0dHJpYnV0ZUlzRGlydHkgPSBm
OyB9Ci0gICAgYm9vbCBwcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZUlzRGlydHkoKSBjb25zdCB7
IHJldHVybiBtX3ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlSXNEaXJ0eTsgfQotICAgIHZvaWQg
c2V0UHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGVJc0RpcnR5KGJvb2wgZikgY29uc3QgeyBtX3By
ZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlSXNEaXJ0eSA9IGY7IH0KKyAgICB2b2lkIHNldEF0dHIo
RWxlbWVudCosIGNvbnN0IFF1YWxpZmllZE5hbWUmLCBBdHRyKikgY29uc3Q7CisgICAgdm9pZCBy
ZW1vdmVBdHRyKEVsZW1lbnQqLCBjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Q7CisgICAgUGFz
c1JlZlB0cjxBdHRyPiBhdHRySWZFeGlzdHMoRWxlbWVudCosIGNvbnN0IFF1YWxpZmllZE5hbWUm
KSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPEF0dHI+IGVuc3VyZUF0dHIoRWxlbWVudCosIGNvbnN0
IFF1YWxpZmllZE5hbWUmKSBjb25zdDsKKyAgICB2b2lkIGRldGFjaEF0dHJPYmplY3RzRnJvbUVs
ZW1lbnQoRWxlbWVudCopIGNvbnN0OwogCiAgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKikgY29uc3Q7CiAKQEAgLTk4LDI1ICsxMDMsMTkgQEAgcHVibGljOgogcHJv
dGVjdGVkOgogICAgIEVsZW1lbnRBdHRyaWJ1dGVEYXRhKCkKICAgICAgICAgOiBtX2lzTXV0YWJs
ZSh0cnVlKQotICAgICAgICAsIG1fc3R5bGVBdHRyaWJ1dGVJc0RpcnR5KGZhbHNlKQotICAgICAg
ICAsIG1fcHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGVJc0RpcnR5KGZhbHNlKQogICAgICAgICAs
IG1fYXJyYXlTaXplKDApCiAgICAgeyB9CiAKICAgICBFbGVtZW50QXR0cmlidXRlRGF0YSh1bnNp
Z25lZCBhcnJheVNpemUpCiAgICAgICAgIDogbV9pc011dGFibGUoZmFsc2UpCi0gICAgICAgICwg
bV9zdHlsZUF0dHJpYnV0ZUlzRGlydHkoZmFsc2UpCi0gICAgICAgICwgbV9wcmVzZW50YXRpb25B
dHRyaWJ1dGVTdHlsZUlzRGlydHkoZmFsc2UpCiAgICAgICAgICwgbV9hcnJheVNpemUoYXJyYXlT
aXplKQogICAgIHsgfQogCiAgICAgdW5zaWduZWQgbV9pc011dGFibGUgOiAxOwotICAgIG11dGFi
bGUgdW5zaWduZWQgbV9zdHlsZUF0dHJpYnV0ZUlzRGlydHkgOiAxOwotICAgIG11dGFibGUgdW5z
aWduZWQgbV9wcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZUlzRGlydHkgOiAxOwotICAgIHVuc2ln
bmVkIG1fYXJyYXlTaXplIDogMjk7CisgICAgdW5zaWduZWQgbV9hcnJheVNpemUgOiAzMTsKIAog
ICAgIG11dGFibGUgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IG1faW5saW5lU3R5bGVEZWNsOwot
ICAgIG11dGFibGUgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IG1fcHJlc2VudGF0aW9uQXR0cmli
dXRlU3R5bGU7CisgICAgbXV0YWJsZSBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gbV9hdHRyaWJ1
dGVTdHlsZTsKICAgICBtdXRhYmxlIFNwYWNlU3BsaXRTdHJpbmcgbV9jbGFzc05hbWVzOwogICAg
IG11dGFibGUgQXRvbWljU3RyaW5nIG1faWRGb3JTdHlsZVJlc29sdXRpb247CiAKQEAgLTEzMCw3
ICsxMjksNyBAQCBwcml2YXRlOgogICAgIGNvbnN0IEF0dHJpYnV0ZSogZ2V0QXR0cmlidXRlSXRl
bShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGJvb2wgc2hvdWxkSWdub3JlQXR0cmlidXRlQ2Fz
ZSkgY29uc3Q7CiAgICAgc2l6ZV90IGdldEF0dHJpYnV0ZUl0ZW1JbmRleFNsb3dDYXNlKGNvbnN0
IEF0b21pY1N0cmluZyYgbmFtZSwgYm9vbCBzaG91bGRJZ25vcmVBdHRyaWJ1dGVDYXNlKSBjb25z
dDsKICAgICB2b2lkIGNsb25lRGF0YUZyb20oY29uc3QgRWxlbWVudEF0dHJpYnV0ZURhdGEmIHNv
dXJjZURhdGEsIGNvbnN0IEVsZW1lbnQmIHNvdXJjZUVsZW1lbnQsIEVsZW1lbnQmIHRhcmdldEVs
ZW1lbnQpOwotICAgIHZvaWQgY2xlYXJBdHRyaWJ1dGVzKCk7CisgICAgdm9pZCBjbGVhckF0dHJp
YnV0ZXMoRWxlbWVudCopOwogCiAgICAgUGFzc1JlZlB0cjxFbGVtZW50QXR0cmlidXRlRGF0YT4g
bWFrZU11dGFibGVDb3B5KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDFmNTNjMTE0YWIwM2Qy
NDE3ZmVhMTQ1ZGU0YzJkNDEyZjIzZWFlODEuLmQxOWM3MjVmM2JkMjc0NjJlM2I2ZDM0ODc4YTFl
ZDU4Mjc0MGRjMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtOTksNyArOTksNyBAQCBjbGFzcyBQcm9wZXJ0
eU5vZGVMaXN0OwogCiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCi1jb25zdCBpbnQgbm9k
ZVN0eWxlQ2hhbmdlU2hpZnQgPSAxOTsKK2NvbnN0IGludCBub2RlU3R5bGVDaGFuZ2VTaGlmdCA9
IDIwOwogCiAvLyBTeW50aGV0aWNTdHlsZUNoYW5nZSBtZWFucyB0aGF0IHdlIG5lZWQgdG8gZ28g
dGhyb3VnaCB0aGUgZW50aXJlIHN0eWxlIGNoYW5nZSBsb2dpYyBldmVuIHRob3VnaAogLy8gbm8g
c3R5bGUgcHJvcGVydHkgaGFzIGFjdHVhbGx5IGNoYW5nZWQuIEl0IGlzIHVzZWQgdG8gcmVzdHJ1
Y3R1cmUgdGhlIHRyZWUgd2hlbiwgZm9yIGluc3RhbmNlLApAQCAtMjM3LDExICsyMzcsOSBAQCBw
dWJsaWM6CiAgICAgYm9vbCBpc0RvY3VtZW50Tm9kZSgpIGNvbnN0OwogICAgIGJvb2wgaXNTaGFk
b3dSb290KCkgY29uc3QgeyByZXR1cm4gZ2V0RmxhZyhJc1NoYWRvd1Jvb3RGbGFnKTsgfQogICAg
IGJvb2wgaW5OYW1lZEZsb3coKSBjb25zdCB7IHJldHVybiBnZXRGbGFnKEluTmFtZWRGbG93Rmxh
Zyk7IH0KKyAgICBib29sIGhhc0F0dHJMaXN0KCkgY29uc3QgeyByZXR1cm4gZ2V0RmxhZyhIYXNB
dHRyTGlzdEZsYWcpOyB9CiAgICAgYm9vbCBoYXNDdXN0b21DYWxsYmFja3MoKSBjb25zdCB7IHJl
dHVybiBnZXRGbGFnKEhhc0N1c3RvbUNhbGxiYWNrc0ZsYWcpOyB9CiAKLSAgICBib29sIGhhc1N5
bnRoZXRpY0F0dHJDaGlsZE5vZGVzKCkgY29uc3QgeyByZXR1cm4gZ2V0RmxhZyhIYXNTeW50aGV0
aWNBdHRyQ2hpbGROb2Rlc0ZsYWcpOyB9Ci0gICAgdm9pZCBzZXRIYXNTeW50aGV0aWNBdHRyQ2hp
bGROb2Rlcyhib29sIGZsYWcpIHsgc2V0RmxhZyhmbGFnLCBIYXNTeW50aGV0aWNBdHRyQ2hpbGRO
b2Rlc0ZsYWcpOyB9Ci0KICAgICAvLyBJZiB0aGlzIG5vZGUgaXMgaW4gYSBzaGFkb3cgdHJlZSwg
cmV0dXJucyBpdHMgc2hhZG93IGhvc3QuIE90aGVyd2lzZSwgcmV0dXJucyAwLgogICAgIEVsZW1l
bnQqIHNoYWRvd0hvc3QoKSBjb25zdDsKICAgICAvLyBJZiB0aGlzIG5vZGUgaXMgaW4gYSBzaGFk
b3cgdHJlZSwgcmV0dXJucyBpdHMgc2hhZG93IGhvc3QuIE90aGVyd2lzZSwgcmV0dXJucyB0aGlz
LgpAQCAtMzIwLDYgKzMxOCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5TG9h
ZGVkU2hlZXRBbmRBbGxDcml0aWNhbFN1YnJlc291cmNlcyhib29sIC8qIGVycm9yIGxvYWRpbmcg
c3VicmVzb3VyY2UgKi8pIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzdGFydExvYWRpbmdEeW5hbWlj
U2hlZXQoKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAKKyAgICBib29sIGF0dHJpYnV0ZVN0
eWxlRGlydHkoKSBjb25zdCB7IHJldHVybiBnZXRGbGFnKEF0dHJpYnV0ZVN0eWxlRGlydHlGbGFn
KTsgfQogICAgIGJvb2wgaGFzTmFtZSgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSGFzTmFtZUZs
YWcpOyB9CiAgICAgYm9vbCBoYXNJRCgpIGNvbnN0OwogICAgIGJvb2wgaGFzQ2xhc3MoKSBjb25z
dDsKQEAgLTMzNSw2ICszMzQsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBjaGlsZE5lZWRzU3R5bGVS
ZWNhbGMoKSBjb25zdCB7IHJldHVybiBnZXRGbGFnKENoaWxkTmVlZHNTdHlsZVJlY2FsY0ZsYWcp
OyB9CiAgICAgYm9vbCBpc0xpbmsoKSBjb25zdCB7IHJldHVybiBnZXRGbGFnKElzTGlua0ZsYWcp
OyB9CiAKKyAgICB2b2lkIHNldEF0dHJpYnV0ZVN0eWxlRGlydHkoKSB7IHNldEZsYWcoQXR0cmli
dXRlU3R5bGVEaXJ0eUZsYWcpOyB9CisgICAgdm9pZCBjbGVhckF0dHJpYnV0ZVN0eWxlRGlydHko
KSB7IGNsZWFyRmxhZyhBdHRyaWJ1dGVTdHlsZURpcnR5RmxhZyk7IH0KKwogICAgIHZvaWQgc2V0
SGFzTmFtZShib29sIGYpIHsgc2V0RmxhZyhmLCBIYXNOYW1lRmxhZyk7IH0KICAgICB2b2lkIHNl
dENoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHsgc2V0RmxhZyhDaGlsZE5lZWRzU3R5bGVSZWNhbGNG
bGFnKTsgfQogICAgIHZvaWQgY2xlYXJDaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB7IGNsZWFyRmxh
ZyhDaGlsZE5lZWRzU3R5bGVSZWNhbGNGbGFnKTsgfQpAQCAtMzUzLDYgKzM1NSw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldEluTmFtZWRGbG93KCkgeyBzZXRGbGFnKEluTmFtZWRGbG93RmxhZyk7
IH0KICAgICB2b2lkIGNsZWFySW5OYW1lZEZsb3coKSB7IGNsZWFyRmxhZyhJbk5hbWVkRmxvd0Zs
YWcpOyB9CiAKKyAgICB2b2lkIHNldEhhc0F0dHJMaXN0KCkgeyBzZXRGbGFnKEhhc0F0dHJMaXN0
RmxhZyk7IH0KKyAgICB2b2lkIGNsZWFySGFzQXR0ckxpc3QoKSB7IGNsZWFyRmxhZyhIYXNBdHRy
TGlzdEZsYWcpOyB9CisKICAgICBib29sIGhhc1Njb3BlZEhUTUxTdHlsZUNoaWxkKCkgY29uc3Qg
eyByZXR1cm4gZ2V0RmxhZyhIYXNTY29wZWRIVE1MU3R5bGVDaGlsZEZsYWcpOyB9CiAgICAgdm9p
ZCBzZXRIYXNTY29wZWRIVE1MU3R5bGVDaGlsZChib29sIGZsYWcpIHsgc2V0RmxhZyhmbGFnLCBI
YXNTY29wZWRIVE1MU3R5bGVDaGlsZEZsYWcpOyB9CiAKQEAgLTcwNywzMiArNzEyLDM0IEBAIHBy
aXZhdGU6CiAgICAgICAgIC8vIFRoZXNlIGJpdHMgYXJlIHVzZWQgYnkgZGVyaXZlZCBjbGFzc2Vz
LCBwdWxsZWQgdXAgaGVyZSBzbyB0aGV5IGNhbgogICAgICAgICAvLyBiZSBzdG9yZWQgaW4gdGhl
IHNhbWUgbWVtb3J5IHdvcmQgYXMgdGhlIE5vZGUgYml0cyBhYm92ZS4KICAgICAgICAgSXNQYXJz
aW5nQ2hpbGRyZW5GaW5pc2hlZEZsYWcgPSAxIDw8IDE1LCAvLyBFbGVtZW50CisgICAgICAgIElz
U3R5bGVBdHRyaWJ1dGVWYWxpZEZsYWcgPSAxIDw8IDE2LCAvLyBTdHlsZWRFbGVtZW50CiAjaWYg
RU5BQkxFKFNWRykKLSAgICAgICAgQXJlU1ZHQXR0cmlidXRlc1ZhbGlkRmxhZyA9IDEgPDwgMTYs
IC8vIEVsZW1lbnQKLSAgICAgICAgSXNTeW5jaHJvbml6aW5nU1ZHQXR0cmlidXRlc0ZsYWcgPSAx
IDw8IDE3LCAvLyBTVkdFbGVtZW50Ci0gICAgICAgIEhhc1NWR1JhcmVEYXRhRmxhZyA9IDEgPDwg
MTgsIC8vIFNWR0VsZW1lbnQKKyAgICAgICAgQXJlU1ZHQXR0cmlidXRlc1ZhbGlkRmxhZyA9IDEg
PDwgMTcsIC8vIEVsZW1lbnQKKyAgICAgICAgSXNTeW5jaHJvbml6aW5nU1ZHQXR0cmlidXRlc0Zs
YWcgPSAxIDw8IDE4LCAvLyBTVkdFbGVtZW50CisgICAgICAgIEhhc1NWR1JhcmVEYXRhRmxhZyA9
IDEgPDwgMTksIC8vIFNWR0VsZW1lbnQKICNlbmRpZgogCiAgICAgICAgIFN0eWxlQ2hhbmdlTWFz
ayA9IDEgPDwgbm9kZVN0eWxlQ2hhbmdlU2hpZnQgfCAxIDw8IChub2RlU3R5bGVDaGFuZ2VTaGlm
dCArIDEpLAogCi0gICAgICAgIFNlbGZPckFuY2VzdG9ySGFzRGlyQXV0b0ZsYWcgPSAxIDw8IDIx
LAorICAgICAgICBTZWxmT3JBbmNlc3Rvckhhc0RpckF1dG9GbGFnID0gMSA8PCAyMiwKIAotICAg
ICAgICBIYXNOYW1lRmxhZyA9IDEgPDwgMjIsCisgICAgICAgIEhhc05hbWVGbGFnID0gMSA8PCAy
MywKIAorICAgICAgICBBdHRyaWJ1dGVTdHlsZURpcnR5RmxhZyA9IDEgPDwgMjQsCiAKICNpZiBF
TkFCTEUoU1ZHKQotICAgICAgICBEZWZhdWx0Tm9kZUZsYWdzID0gSXNQYXJzaW5nQ2hpbGRyZW5G
aW5pc2hlZEZsYWcgfCBBcmVTVkdBdHRyaWJ1dGVzVmFsaWRGbGFnLAorICAgICAgICBEZWZhdWx0
Tm9kZUZsYWdzID0gSXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hlZEZsYWcgfCBJc1N0eWxlQXR0cmli
dXRlVmFsaWRGbGFnIHwgQXJlU1ZHQXR0cmlidXRlc1ZhbGlkRmxhZywKICNlbHNlCi0gICAgICAg
IERlZmF1bHROb2RlRmxhZ3MgPSBJc1BhcnNpbmdDaGlsZHJlbkZpbmlzaGVkRmxhZywKKyAgICAg
ICAgRGVmYXVsdE5vZGVGbGFncyA9IElzUGFyc2luZ0NoaWxkcmVuRmluaXNoZWRGbGFnIHwgSXNT
dHlsZUF0dHJpYnV0ZVZhbGlkRmxhZywKICNlbmRpZgotICAgICAgICBJbk5hbWVkRmxvd0ZsYWcg
PSAxIDw8IDIzLAotICAgICAgICBIYXNTeW50aGV0aWNBdHRyQ2hpbGROb2Rlc0ZsYWcgPSAxIDw8
IDI0LAotICAgICAgICBIYXNDdXN0b21DYWxsYmFja3NGbGFnID0gMSA8PCAyNSwKLSAgICAgICAg
SGFzU2NvcGVkSFRNTFN0eWxlQ2hpbGRGbGFnID0gMSA8PCAyNiwKLSAgICAgICAgSGFzRXZlbnRU
YXJnZXREYXRhRmxhZyA9IDEgPDwgMjcsCisgICAgICAgIEluTmFtZWRGbG93RmxhZyA9IDEgPDwg
MjYsCisgICAgICAgIEhhc0F0dHJMaXN0RmxhZyA9IDEgPDwgMjcsCisgICAgICAgIEhhc0N1c3Rv
bUNhbGxiYWNrc0ZsYWcgPSAxIDw8IDI4LAorICAgICAgICBIYXNTY29wZWRIVE1MU3R5bGVDaGls
ZEZsYWcgPSAxIDw8IDI5LAorICAgICAgICBIYXNFdmVudFRhcmdldERhdGFGbGFnID0gMSA8PCAz
MCwKICAgICB9OwogCi0gICAgLy8gNCBiaXRzIHJlbWFpbmluZworICAgIC8vIDIgYml0cyByZW1h
aW5pbmcKIAogICAgIGJvb2wgZ2V0RmxhZyhOb2RlRmxhZ3MgbWFzaykgY29uc3QgeyByZXR1cm4g
bV9ub2RlRmxhZ3MgJiBtYXNrOyB9CiAgICAgdm9pZCBzZXRGbGFnKGJvb2wgZiwgTm9kZUZsYWdz
IG1hc2spIGNvbnN0IHsgbV9ub2RlRmxhZ3MgPSAobV9ub2RlRmxhZ3MgJiB+bWFzaykgfCAoLShp
bnQzMl90KWYgJiBtYXNrKTsgfSAKQEAgLTgzMyw2ICs4NDAsMTIgQEAgcHJpdmF0ZToKICAgICAg
ICAgTm9kZVJhcmVEYXRhQmFzZSogbV9yYXJlRGF0YTsKICAgICB9IG1fZGF0YTsKIAorcHVibGlj
OgorICAgIGJvb2wgaXNTdHlsZUF0dHJpYnV0ZVZhbGlkKCkgY29uc3QgeyByZXR1cm4gZ2V0Rmxh
ZyhJc1N0eWxlQXR0cmlidXRlVmFsaWRGbGFnKTsgfQorICAgIHZvaWQgc2V0SXNTdHlsZUF0dHJp
YnV0ZVZhbGlkKGJvb2wgZikgeyBzZXRGbGFnKGYsIElzU3R5bGVBdHRyaWJ1dGVWYWxpZEZsYWcp
OyB9CisgICAgdm9pZCBzZXRJc1N0eWxlQXR0cmlidXRlVmFsaWQoKSBjb25zdCB7IHNldEZsYWco
SXNTdHlsZUF0dHJpYnV0ZVZhbGlkRmxhZyk7IH0KKyAgICB2b2lkIGNsZWFySXNTdHlsZUF0dHJp
YnV0ZVZhbGlkKCkgeyBjbGVhckZsYWcoSXNTdHlsZUF0dHJpYnV0ZVZhbGlkRmxhZyk7IH0KKwog
cHJvdGVjdGVkOgogICAgIGJvb2wgaXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hlZCgpIGNvbnN0IHsg
cmV0dXJuIGdldEZsYWcoSXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hlZEZsYWcpOyB9CiAgICAgdm9p
ZCBzZXRJc1BhcnNpbmdDaGlsZHJlbkZpbmlzaGVkKCkgeyBzZXRGbGFnKElzUGFyc2luZ0NoaWxk
cmVuRmluaXNoZWRGbGFnKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxl
ZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCmluZGV4
IGNlY2FlMDUyMGNkZDFhOTNmNmIwODg2Mzg1YmU0MzI5MzRlMGI2ZGIuLjU3NmFhMjI4NDgwYTM1
MDFjYzE2MjU0NTg3ZWQ4MWFjMjRhNDc2YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TdHlsZWRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVu
dC5jcHAKQEAgLTEyNiwxMSArMTI2LDEwIEBAIHN0YXRpYyBQcmVzZW50YXRpb25BdHRyaWJ1dGVD
YWNoZUNsZWFuZXImIHByZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hlQ2xlYW5lcigpCiAKIHZvaWQg
U3R5bGVkRWxlbWVudDo6dXBkYXRlU3R5bGVBdHRyaWJ1dGUoKSBjb25zdAogewotICAgIEFTU0VS
VChzdHlsZUF0dHJpYnV0ZUlzRGlydHkoKSk7Ci0gICAgQVNTRVJUKGF0dHJpYnV0ZURhdGEoKSk7
Ci0gICAgYXR0cmlidXRlRGF0YSgpLT5zZXRTdHlsZUF0dHJpYnV0ZUlzRGlydHkoZmFsc2UpOwot
ICAgIGlmIChpbmxpbmVTdHlsZSgpKQotICAgICAgICBjb25zdF9jYXN0PFN0eWxlZEVsZW1lbnQq
Pih0aGlzKS0+c2V0U3luY2hyb25pemVkTGF6eUF0dHJpYnV0ZShzdHlsZUF0dHIsIGlubGluZVN0
eWxlKCktPmFzVGV4dCgpKTsKKyAgICBBU1NFUlQoIWlzU3R5bGVBdHRyaWJ1dGVWYWxpZCgpKTsK
KyAgICBzZXRJc1N0eWxlQXR0cmlidXRlVmFsaWQoKTsKKyAgICBpZiAoY29uc3QgU3R5bGVQcm9w
ZXJ0eVNldCogaW5saW5lU3R5bGUgPSB0aGlzLT5pbmxpbmVTdHlsZSgpKQorICAgICAgICBjb25z
dF9jYXN0PFN0eWxlZEVsZW1lbnQqPih0aGlzKS0+c2V0U3luY2hyb25pemVkTGF6eUF0dHJpYnV0
ZShzdHlsZUF0dHIsIGlubGluZVN0eWxlLT5hc1RleHQoKSk7CiB9CiAKIFN0eWxlZEVsZW1lbnQ6
OlN0eWxlZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgRG9jdW1lbnQqIGRvY3Vt
ZW50LCBDb25zdHJ1Y3Rpb25UeXBlIHR5cGUpCkBAIC0xNTIsNyArMTUxLDcgQEAgQ1NTU3R5bGVE
ZWNsYXJhdGlvbiogU3R5bGVkRWxlbWVudDo6c3R5bGUoKQogdm9pZCBTdHlsZWRFbGVtZW50Ojph
dHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0
cmluZyYgbmV3VmFsdWUpCiB7CiAgICAgaWYgKGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUp
KSB7Ci0gICAgICAgIGF0dHJpYnV0ZURhdGEoKS0+c2V0UHJlc2VudGF0aW9uQXR0cmlidXRlU3R5
bGVJc0RpcnR5KHRydWUpOworICAgICAgICBzZXRBdHRyaWJ1dGVTdHlsZURpcnR5KCk7CiAgICAg
ICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoSW5saW5lU3R5bGVDaGFuZ2UpOwogICAgIH0KIApAQCAt
MTY5LDggKzE2OCw3IEBAIHZvaWQgU3R5bGVkRWxlbWVudDo6c3R5bGVBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IEF0b21pY1N0cmluZyYgbmV3U3R5bGVTdHJpbmcsIFNoCiAgICAgICAgICAgICBtdXRh
YmxlQXR0cmlidXRlRGF0YSgpLT5kZXN0cm95SW5saW5lU3R5bGUodGhpcyk7CiAgICAgICAgIGVs
c2UgaWYgKGRvY3VtZW50KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd0lubGluZVN0
eWxlKGRvY3VtZW50KCktPnVybCgpLCBzdGFydExpbmVOdW1iZXIpKQogICAgICAgICAgICAgZW5z
dXJlQXR0cmlidXRlRGF0YSgpLT51cGRhdGVJbmxpbmVTdHlsZUF2b2lkaW5nTXV0YXRpb24odGhp
cywgbmV3U3R5bGVTdHJpbmcpOwotCi0gICAgICAgIGF0dHJpYnV0ZURhdGEoKS0+c2V0U3R5bGVB
dHRyaWJ1dGVJc0RpcnR5KGZhbHNlKTsKKyAgICAgICAgc2V0SXNTdHlsZUF0dHJpYnV0ZVZhbGlk
KCk7CiAgICAgfQogICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKICAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZEludmFsaWRhdGVTdHlsZUF0dHIoZG9jdW1lbnQoKSwgdGhpcyk7CkBA
IC0xODcsNyArMTg1LDcgQEAgdm9pZCBTdHlsZWRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkKIHZvaWQgU3R5bGVkRWxlbWVudDo6aW5saW5lU3R5bGVD
aGFuZ2VkKCkKIHsKICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKElubGluZVN0eWxlQ2hhbmdlKTsK
LSAgICBhdHRyaWJ1dGVEYXRhKCktPnNldFN0eWxlQXR0cmlidXRlSXNEaXJ0eSh0cnVlKTsKKyAg
ICBzZXRJc1N0eWxlQXR0cmlidXRlVmFsaWQoZmFsc2UpOwogICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkSW52YWxpZGF0ZVN0eWxlQXR0cihkb2N1bWVudCgpLCB0aGlzKTsKIH0KICAg
ICAKQEAgLTI3Miw3ICsyNzAsNyBAQCBzdGF0aWMgdW5zaWduZWQgY29tcHV0ZVByZXNlbnRhdGlv
bkF0dHJpYnV0ZUNhY2hlSGFzaChjb25zdCBQcmVzZW50YXRpb25BdHRyaWJ1dAogICAgIHJldHVy
biBXVEY6OnBhaXJJbnRIYXNoKGtleS50YWdOYW1lLT5leGlzdGluZ0hhc2goKSwgYXR0cmlidXRl
SGFzaCk7CiB9CiAKLXZvaWQgU3R5bGVkRWxlbWVudDo6cmVidWlsZFByZXNlbnRhdGlvbkF0dHJp
YnV0ZVN0eWxlKCkKK3ZvaWQgU3R5bGVkRWxlbWVudDo6dXBkYXRlQXR0cmlidXRlU3R5bGUoKQog
ewogICAgIFByZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hlS2V5IGNhY2hlS2V5OwogICAgIG1ha2VQ
cmVzZW50YXRpb25BdHRyaWJ1dGVDYWNoZUtleShjYWNoZUtleSk7CkBAIC0yOTksOSArMjk3LDkg
QEAgdm9pZCBTdHlsZWRFbGVtZW50OjpyZWJ1aWxkUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUo
KQogICAgICAgICAgICAgY29sbGVjdFN0eWxlRm9yQXR0cmlidXRlKCphdHRyaWJ1dGUsIHN0eWxl
LmdldCgpKTsKICAgICAgICAgfQogICAgIH0KKyAgICBjbGVhckF0dHJpYnV0ZVN0eWxlRGlydHko
KTsKIAotICAgIGF0dHJpYnV0ZURhdGEoKS0+c2V0UHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGVJ
c0RpcnR5KGZhbHNlKTsKLSAgICBhdHRyaWJ1dGVEYXRhKCktPnNldFByZXNlbnRhdGlvbkF0dHJp
YnV0ZVN0eWxlKHN0eWxlLT5pc0VtcHR5KCkgPyAwIDogc3R5bGUpOworICAgIGF0dHJpYnV0ZURh
dGEoKS0+c2V0QXR0cmlidXRlU3R5bGUoc3R5bGUtPmlzRW1wdHkoKSA/IDAgOiBzdHlsZSk7CiAK
ICAgICBpZiAoIWNhY2hlSGFzaCB8fCBjYWNoZUl0ZXJhdG9yLT52YWx1ZSkKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmgKaW5kZXggZTA3MTNhODRiYzI2YWNlZTAx
NjZhNDgzNTdhMDM3YzY3OTY5ZDQ5Mi4uY2Y1OWVkMWFkYjNiMDc5OGRiN2Q1OTA3OWNkYzUyZGMz
OWZkMGM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5oCkBAIC01MSw3ICs1MSw3IEBA
IHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlKCkg
T1ZFUlJJREU7CiAKLSAgICBjb25zdCBTdHlsZVByb3BlcnR5U2V0KiBwcmVzZW50YXRpb25BdHRy
aWJ1dGVTdHlsZSgpOworICAgIGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIGF0dHJpYnV0ZVN0eWxl
KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yQXR0cmlidXRlKGNvbnN0IEF0
dHJpYnV0ZSYsIFN0eWxlUHJvcGVydHlTZXQqKSB7IH0KIApAQCAtNzgsMjIgKzc4LDE5IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBpbmxpbmVTdHlsZUNoYW5nZWQoKTsKIAogICAgIHZvaWQgbWFrZVBy
ZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hlS2V5KFByZXNlbnRhdGlvbkF0dHJpYnV0ZUNhY2hlS2V5
JikgY29uc3Q7Ci0gICAgdm9pZCByZWJ1aWxkUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKTsK
KyAgICB2b2lkIHVwZGF0ZUF0dHJpYnV0ZVN0eWxlKCk7CiB9OwogCiBpbmxpbmUgdm9pZCBTdHls
ZWRFbGVtZW50OjppbnZhbGlkYXRlU3R5bGVBdHRyaWJ1dGUoKQogewotICAgIEFTU0VSVChhdHRy
aWJ1dGVEYXRhKCkpOwotICAgIGF0dHJpYnV0ZURhdGEoKS0+c2V0U3R5bGVBdHRyaWJ1dGVJc0Rp
cnR5KHRydWUpOworICAgIGNsZWFySXNTdHlsZUF0dHJpYnV0ZVZhbGlkKCk7CiB9CiAKLWlubGlu
ZSBjb25zdCBTdHlsZVByb3BlcnR5U2V0KiBTdHlsZWRFbGVtZW50OjpwcmVzZW50YXRpb25BdHRy
aWJ1dGVTdHlsZSgpCitpbmxpbmUgY29uc3QgU3R5bGVQcm9wZXJ0eVNldCogU3R5bGVkRWxlbWVu
dDo6YXR0cmlidXRlU3R5bGUoKQogewotICAgIGlmICghYXR0cmlidXRlRGF0YSgpKQotICAgICAg
ICByZXR1cm4gMDsKLSAgICBpZiAoYXR0cmlidXRlRGF0YSgpLT5wcmVzZW50YXRpb25BdHRyaWJ1
dGVTdHlsZUlzRGlydHkoKSkKLSAgICAgICAgcmVidWlsZFByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0
eWxlKCk7Ci0gICAgcmV0dXJuIGF0dHJpYnV0ZURhdGEoKS0+cHJlc2VudGF0aW9uQXR0cmlidXRl
U3R5bGUoKTsKKyAgICBpZiAoYXR0cmlidXRlU3R5bGVEaXJ0eSgpKQorICAgICAgICB1cGRhdGVB
dHRyaWJ1dGVTdHlsZSgpOworICAgIHJldHVybiBhdHRyaWJ1dGVEYXRhKCkgPyBhdHRyaWJ1dGVE
YXRhKCktPmF0dHJpYnV0ZVN0eWxlKCkgOiAwOwogfQogCiB9IC8vbmFtZXNwYWNlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAppbmRleCA1N2ZkZGUx
MTNkNmZiNzVlNTAwM2I3YzNjOWEzZWE1MWYyOTYzOWVkLi41Y2Q5YzYwYzk2OWE2MTU3ZjE0MjRk
OGJmM2RjYzM1MTIyZThjMDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ1NTQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDU1NBZ2VudC5jcHAKQEAgLTExODQsMTEgKzExODQsMTEgQEAgUGFzc1JlZlB0cjxUeXBl
QnVpbGRlcjo6Q1NTOjpDU1NTdHlsZT4gSW5zcGVjdG9yQ1NTQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9y
QXR0cmlidXQKICAgICBpZiAoIWVsZW1lbnQtPmlzU3R5bGVkRWxlbWVudCgpKQogICAgICAgICBy
ZXR1cm4gMDsKIAotICAgIGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIHByZXNlbnRhdGlvbkF0dHJp
YnV0ZVN0eWxlID0gc3RhdGljX2Nhc3Q8U3R5bGVkRWxlbWVudCo+KGVsZW1lbnQpLT5wcmVzZW50
YXRpb25BdHRyaWJ1dGVTdHlsZSgpOwotICAgIGlmICghcHJlc2VudGF0aW9uQXR0cmlidXRlU3R5
bGUpCisgICAgY29uc3QgU3R5bGVQcm9wZXJ0eVNldCogYXR0cmlidXRlU3R5bGUgPSBzdGF0aWNf
Y2FzdDxTdHlsZWRFbGVtZW50Kj4oZWxlbWVudCktPmF0dHJpYnV0ZVN0eWxlKCk7CisgICAgaWYg
KCFhdHRyaWJ1dGVTdHlsZSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBSZWZQdHI8SW5zcGVj
dG9yU3R5bGU+IGluc3BlY3RvclN0eWxlID0gSW5zcGVjdG9yU3R5bGU6OmNyZWF0ZShJbnNwZWN0
b3JDU1NJZCgpLCBjb25zdF9jYXN0PFN0eWxlUHJvcGVydHlTZXQqPihwcmVzZW50YXRpb25BdHRy
aWJ1dGVTdHlsZSktPmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRpb24oKSwgMCk7CisgICAgUmVmUHRy
PEluc3BlY3RvclN0eWxlPiBpbnNwZWN0b3JTdHlsZSA9IEluc3BlY3RvclN0eWxlOjpjcmVhdGUo
SW5zcGVjdG9yQ1NTSWQoKSwgY29uc3RfY2FzdDxTdHlsZVByb3BlcnR5U2V0Kj4oYXR0cmlidXRl
U3R5bGUpLT5lbnN1cmVDU1NTdHlsZURlY2xhcmF0aW9uKCksIDApOwogICAgIHJldHVybiBpbnNw
ZWN0b3JTdHlsZS0+YnVpbGRPYmplY3RGb3JTdHlsZSgpOwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>