<?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>105723</bug_id>
          
          <creation_ts>2012-12-24 08:41:10 -0800</creation_ts>
          <short_desc>REGRESSION(r138436): Asserts on state restoration in debug builds (Requested by apavlov on #webkit).</short_desc>
          <delta_ts>2012-12-24 08:46:19 -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>105438</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>apavlov</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>796983</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-24 08:41:10 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/138436 broke the build:
Asserts on state restoration in debug builds (Requested by apavlov 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>796986</commentid>
    <comment_count>1</comment_count>
      <attachid>180674</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-24 08:41:54 -0800</bug_when>
    <thetext>Created attachment 180674
ROLLOUT of r138436

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>796987</commentid>
    <comment_count>2</comment_count>
      <attachid>180674</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-24 08:46:16 -0800</bug_when>
    <thetext>Comment on attachment 180674
ROLLOUT of r138436

Clearing flags on attachment: 180674

Committed r138443: &lt;http://trac.webkit.org/changeset/138443&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796988</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-24 08:46:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180674</attachid>
            <date>2012-12-24 08:41:54 -0800</date>
            <delta_ts>2012-12-24 08:46:16 -0800</delta_ts>
            <desc>ROLLOUT of r138436</desc>
            <filename>bug-105723-20121224164824.patch</filename>
            <type>text/plain</type>
            <size>59951</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzJiNWQxNThjMGZiZTcy
NTNhMGY3MDU5NGRmYTIzNzY1Mjk0NDc0YS4uZWE2MDBmMmQ4NmNiNjNiNTQyMTE5YjZlOTQ3ZTRi
ZWM3MzczNzJjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNiBAQAorMjAxMi0xMi0yNCAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjEzODQzNi4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9y
Zy9jaGFuZ2VzZXQvMTM4NDM2CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDU3MjMKKworICAgICAgICBBc3NlcnRzIG9uIHN0YXRlIHJlc3RvcmF0aW9u
IGluIGRlYnVnIGJ1aWxkcyAoUmVxdWVzdGVkIGJ5CisgICAgICAgIGFwYXZsb3Ygb24gI3dlYmtp
dCkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuY3BwOgorICAgICAgICAo
SW5zcGVjdG9yQWdlbnRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6
ZW5hYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50OjpkaXNhYmxlKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50OjpldmFsdWF0ZUZvclRlc3RJbkZyb250ZW5k
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50OjppbnNwZWN0KToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcDoKKyAgICAgICAg
KEFwcGxpY2F0aW9uQ2FjaGVBZ2VudFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6cmVzdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmVuYWJsZSk6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckNTU0FnZW50LmNwcDoKKyAgICAgICAgKENTU0FnZW50U3RhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OnJlc3RvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OmVuYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JDU1NBZ2VudDo6ZGlzYWJsZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNhbnZh
c0FnZW50LmNwcDoKKyAgICAgICAgKENhbnZhc0FnZW50U3RhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnJlc3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQ2FudmFzQWdlbnQ6OmVuYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JD
YW52YXNBZ2VudDo6ZGlzYWJsZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVj
dG9yQ29udHJvbGxlcik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSW5zcGVjdG9yQ29udHJvbGxlcik6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHA6CisgICAgICAg
IChET01TdG9yYWdlQWdlbnRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01T
dG9yYWdlQWdlbnQ6OnJlc3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50OjplbmFibGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50OjpkaXNhYmxlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VB
Z2VudC5jcHA6CisgICAgICAgIChEYXRhYmFzZUFnZW50U3RhdGUpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JEYXRhYmFzZUFnZW50OjplbmFibGUpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6ZGlzYWJsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JEYXRhYmFzZUFnZW50OjpyZXN0b3JlKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaXNhYmxlKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcDoKKyAgICAgICAgKEZpbGVTeXN0ZW1BZ2VudFN0
YXRlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRmls
ZVN5c3RlbUFnZW50OjplbmFibGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRmlsZVN5
c3RlbUFnZW50OjpkaXNhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZpbGVTeXN0
ZW1BZ2VudDo6Y2xlYXJGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGaWxl
U3lzdGVtQWdlbnQ6OnJlc3RvcmUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbmRl
eGVkREJBZ2VudC5jcHA6CisgICAgICAgIChJbmRleGVkREJBZ2VudFN0YXRlKToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ6OnJl
c3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ6OmVuYWJs
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbmRleGVkREJBZ2VudDo6ZGlzYWJsZSk6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNwcDoKKyAgICAg
ICAgKExheWVyVHJlZUFnZW50U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTGF5
ZXJUcmVlQWdlbnQ6OnJlc3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTGF5ZXJU
cmVlQWdlbnQ6OmVuYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JMYXllclRyZWVB
Z2VudDo6ZGlzYWJsZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5j
cHA6CisgICAgICAgIChQYWdlQWdlbnRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JQYWdlQWdlbnQ6OnJlc3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFn
ZW50Ojp3ZWJWaWV3UmVzaXplZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdl
bnQ6OmVuYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpc2Fi
bGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjphZGRTY3JpcHRUb0V2
YWx1YXRlT25Mb2FkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6cmVt
b3ZlU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQ
YWdlQWdlbnQ6OnNldERldmljZU1ldHJpY3NPdmVycmlkZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JQYWdlQWdlbnQ6OnNldFNob3dQYWludFJlY3RzKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclBhZ2VBZ2VudDo6c2V0U2hvd0ZQU0NvdW50ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpzZXRTY3JpcHRFeGVjdXRpb25EaXNhYmxlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpZENsZWFyV2luZG93T2JqZWN0SW5X
b3JsZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmFwcGx5U2NyZWVu
V2lkdGhPdmVycmlkZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmFw
cGx5U2NyZWVuSGVpZ2h0T3ZlcnJpZGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFn
ZUFnZW50OjpkaWRQYWludCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6
OmRpZExheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OnNldEVt
dWxhdGVkTWVkaWEpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjphcHBs
eUVtdWxhdGVkTWVkaWEpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFn
ZW50LmNwcDoKKyAgICAgICAgKFJlc291cmNlQWdlbnRTdGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpyZXN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclJlc291cmNlQWdlbnQ6On5JbnNwZWN0b3JSZXNvdXJjZUFnZW50KToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmVuYWJsZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaXNhYmxlKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yU3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3RhdGU6
Okluc3BlY3RvclN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0YXRlOjpsb2Fk
RnJvbUNvb2tpZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclN0YXRlOjptdXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0YXRlOjp1bm11
dGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3RhdGU6OnVwZGF0ZUNvb2tpZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdGF0ZTo6cmVtb3ZlKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yU3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSW5z
cGVjdG9yU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3RhdGU6OnNldExvbmcp
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcDoKKyAgICAg
ICAgKFRpbWVsaW5lQWdlbnRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1l
bGluZUFnZW50OjpyZXN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OnN0b3ApOgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6Oldvcmtlcklu
c3BlY3RvckNvbnRyb2xsZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXIpOgorCiAyMDEyLTEyLTI0ICBQZXRlciBSeWJpbiAgPHByeWJpbkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogS2VlcCBMaXZlRWRpdCBBUEkgZGlzYWJs
ZWQgd2hlbiBpZGxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNw
cAppbmRleCBhNmY4NDQ0YzNjYjYwMzRjMDZhMjM0M2E3OWVjNzAyMjI5ODc5NzBjLi4wMWJhZWI4
MDA0OTdlNWVjNDdkYmQ0M2MxYzJkMjZkNjUzMGU1ZDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgdXNpbmcgbmFtZXNw
YWNlIHN0ZDsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNlIEluc3BlY3RvckFnZW50
U3RhdGUgewotc3RhdGljIGNvbnN0IGNoYXIgZW5hYmxlZFtdID0gImVuYWJsZWQiOworc3RhdGlj
IGNvbnN0IGNoYXIgaW5zcGVjdG9yQWdlbnRFbmFibGVkW10gPSAiaW5zcGVjdG9yQWdlbnRFbmFi
bGVkIjsKIH0KIAogSW5zcGVjdG9yQWdlbnQ6Okluc3BlY3RvckFnZW50KFBhZ2UqIHBhZ2UsIElu
amVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBJbnN0cnVtZW50aW5n
QWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUpCkBAIC0x
MTMsNyArMTEzLDcgQEAgdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZGlkQ29tbWl0TG9hZCgpCiAKIHZv
aWQgSW5zcGVjdG9yQWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyopCiB7Ci0gICAgbV9zdGF0ZS0+
c2V0Qm9vbGVhbihJbnNwZWN0b3JBZ2VudFN0YXRlOjplbmFibGVkLCB0cnVlKTsKKyAgICBtX3N0
YXRlLT5zZXRCb29sZWFuKEluc3BlY3RvckFnZW50U3RhdGU6Omluc3BlY3RvckFnZW50RW5hYmxl
ZCwgdHJ1ZSk7CiAKICAgICBpZiAobV9wZW5kaW5nSW5zcGVjdERhdGEuZmlyc3QpCiAgICAgICAg
IGluc3BlY3QobV9wZW5kaW5nSW5zcGVjdERhdGEuZmlyc3QsIG1fcGVuZGluZ0luc3BlY3REYXRh
LnNlY29uZCk7CkBAIC0xMjUsNyArMTI1LDcgQEAgdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZW5hYmxl
KEVycm9yU3RyaW5nKikKIAogdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZGlzYWJsZShFcnJvclN0cmlu
ZyopCiB7Ci0gICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihJbnNwZWN0b3JBZ2VudFN0YXRlOjplbmFi
bGVkLCBmYWxzZSk7CisgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihJbnNwZWN0b3JBZ2VudFN0YXRl
OjppbnNwZWN0b3JBZ2VudEVuYWJsZWQsIGZhbHNlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JBZ2Vu
dDo6ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWQoKQpAQCAtMTQwLDcgKzE0MCw3IEBAIGJvb2wg
SW5zcGVjdG9yQWdlbnQ6OmlzTWFpblJlc291cmNlTG9hZGVyKERvY3VtZW50TG9hZGVyKiBsb2Fk
ZXIsIGNvbnN0IEtVUkwmIHJlCiAKIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OmV2YWx1YXRlRm9yVGVz
dEluRnJvbnRlbmQobG9uZyBjYWxsSWQsIGNvbnN0IFN0cmluZyYgc2NyaXB0KQogewotICAgIGlm
IChtX3N0YXRlLT5nZXRCb29sZWFuKEluc3BlY3RvckFnZW50U3RhdGU6OmVuYWJsZWQpKQorICAg
IGlmIChtX3N0YXRlLT5nZXRCb29sZWFuKEluc3BlY3RvckFnZW50U3RhdGU6Omluc3BlY3RvckFn
ZW50RW5hYmxlZCkpCiAgICAgICAgIG1fZnJvbnRlbmQtPmluc3BlY3RvcigpLT5ldmFsdWF0ZUZv
clRlc3RJbkZyb250ZW5kKHN0YXRpY19jYXN0PGludD4oY2FsbElkKSwgc2NyaXB0KTsKICAgICBl
bHNlCiAgICAgICAgIG1fcGVuZGluZ0V2YWx1YXRlVGVzdENvbW1hbmRzLmFwcGVuZChwYWlyPGxv
bmcsIFN0cmluZz4oY2FsbElkLCBzY3JpcHQpKTsKQEAgLTE1Myw3ICsxNTMsNyBAQCB2b2lkIElu
c3BlY3RvckFnZW50OjpzZXRJbmplY3RlZFNjcmlwdEZvck9yaWdpbihjb25zdCBTdHJpbmcmIG9y
aWdpbiwgY29uc3QgU3RyaQogCiB2b2lkIEluc3BlY3RvckFnZW50OjppbnNwZWN0KFBhc3NSZWZQ
dHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4gb2JqZWN0VG9JbnNwZWN0LCBQ
YXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gaGludHMpCiB7Ci0gICAgaWYgKG1fc3RhdGUtPmdl
dEJvb2xlYW4oSW5zcGVjdG9yQWdlbnRTdGF0ZTo6ZW5hYmxlZCkgJiYgbV9mcm9udGVuZCkgewor
ICAgIGlmIChtX3N0YXRlLT5nZXRCb29sZWFuKEluc3BlY3RvckFnZW50U3RhdGU6Omluc3BlY3Rv
ckFnZW50RW5hYmxlZCkgJiYgbV9mcm9udGVuZCkgewogICAgICAgICBtX2Zyb250ZW5kLT5pbnNw
ZWN0b3IoKS0+aW5zcGVjdChvYmplY3RUb0luc3BlY3QsIGhpbnRzKTsKICAgICAgICAgbV9wZW5k
aW5nSW5zcGVjdERhdGEuZmlyc3QgPSAwOwogICAgICAgICBtX3BlbmRpbmdJbnNwZWN0RGF0YS5z
ZWNvbmQgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcAppbmRleCA1OTBmMTYzYWZkYTg3NjM0Mzdm
OGNmMjlkOGRjODNjZTQ2NmUxZWRjLi4yZTdjN2Q5Yjg3Y2U5OWE2ZTc5ZWMzMzM0NmQ0NjAyNTQ3
MzBlNDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBw
bGljYXRpb25DYWNoZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcApAQCAtNDYsNyArNDYsNyBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgQXBwbGljYXRpb25DYWNoZUFnZW50U3RhdGUgewot
c3RhdGljIGNvbnN0IGNoYXIgZW5hYmxlZFtdID0gImVuYWJsZWQiOworc3RhdGljIGNvbnN0IGNo
YXIgYXBwbGljYXRpb25DYWNoZUFnZW50RW5hYmxlZFtdID0gImFwcGxpY2F0aW9uQ2FjaGVBZ2Vu
dEVuYWJsZWQiOwogfQogCiBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6Okluc3BlY3Rv
ckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5n
QWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFn
ZW50KQpAQCAtNjksNyArNjksNyBAQCB2b2lkIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2Vu
dDo6Y2xlYXJGcm9udGVuZCgpCiAKIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50
OjpyZXN0b3JlKCkKIHsKLSAgICBpZiAobV9zdGF0ZS0+Z2V0Qm9vbGVhbihBcHBsaWNhdGlvbkNh
Y2hlQWdlbnRTdGF0ZTo6ZW5hYmxlZCkpIHsKKyAgICBpZiAobV9zdGF0ZS0+Z2V0Qm9vbGVhbihB
cHBsaWNhdGlvbkNhY2hlQWdlbnRTdGF0ZTo6YXBwbGljYXRpb25DYWNoZUFnZW50RW5hYmxlZCkp
IHsKICAgICAgICAgRXJyb3JTdHJpbmcgZXJyb3I7CiAgICAgICAgIGVuYWJsZSgmZXJyb3IpOwog
ICAgIH0KQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdl
bnQ6OnJlc3RvcmUoKQogCiB2b2lkIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6ZW5h
YmxlKEVycm9yU3RyaW5nKikKIHsKLSAgICBtX3N0YXRlLT5zZXRCb29sZWFuKEFwcGxpY2F0aW9u
Q2FjaGVBZ2VudFN0YXRlOjplbmFibGVkLCB0cnVlKTsKKyAgICBtX3N0YXRlLT5zZXRCb29sZWFu
KEFwcGxpY2F0aW9uQ2FjaGVBZ2VudFN0YXRlOjphcHBsaWNhdGlvbkNhY2hlQWdlbnRFbmFibGVk
LCB0cnVlKTsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3RvckFwcGxpY2F0
aW9uQ2FjaGVBZ2VudCh0aGlzKTsKIAogICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBpbml0aWFsIG5h
dmlnYXRvci5vbk9ubGluZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q1NTQWdlbnQuY3BwCmluZGV4IDYyNjQwOTFiYTc1N2MyYzcxM2IwZGFiMTczMmUzMTAxNWEzMmY4
MTAuLmQ1MjVlNmRmNmE1YzgyM2I4NmNhYWVkNzQ3OTliNzkwNTNlNTNjZWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcApAQCAtNjMsNyArNjMs
NyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg+CiAKIG5hbWVzcGFj
ZSBDU1NBZ2VudFN0YXRlIHsKLXN0YXRpYyBjb25zdCBjaGFyIGVuYWJsZWRbXSA9ICJlbmFibGVk
IjsKK3N0YXRpYyBjb25zdCBjaGFyIGNzc0FnZW50RW5hYmxlZFtdID0gImNzc0FnZW50RW5hYmxl
ZCI7CiBzdGF0aWMgY29uc3QgY2hhciBpc1NlbGVjdG9yUHJvZmlsaW5nW10gPSAiaXNTZWxlY3Rv
clByb2ZpbGluZyI7CiB9CiAKQEAgLTU2MSw3ICs1NjEsNyBAQCB2b2lkIEluc3BlY3RvckNTU0Fn
ZW50OjpkaXNjYXJkQWdlbnQoKQogCiB2b2lkIEluc3BlY3RvckNTU0FnZW50OjpyZXN0b3JlKCkK
IHsKLSAgICBpZiAobV9zdGF0ZS0+Z2V0Qm9vbGVhbihDU1NBZ2VudFN0YXRlOjplbmFibGVkKSkg
eworICAgIGlmIChtX3N0YXRlLT5nZXRCb29sZWFuKENTU0FnZW50U3RhdGU6OmNzc0FnZW50RW5h
YmxlZCkpIHsKICAgICAgICAgRXJyb3JTdHJpbmcgZXJyb3I7CiAgICAgICAgIGVuYWJsZSgmZXJy
b3IpOwogICAgIH0KQEAgLTU5MCwxNCArNTkwLDE0IEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6
OnJlc2V0Tm9uUGVyc2lzdGVudERhdGEoKQogCiB2b2lkIEluc3BlY3RvckNTU0FnZW50OjplbmFi
bGUoRXJyb3JTdHJpbmcqKQogewotICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oQ1NTQWdlbnRTdGF0
ZTo6ZW5hYmxlZCwgdHJ1ZSk7CisgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihDU1NBZ2VudFN0YXRl
Ojpjc3NBZ2VudEVuYWJsZWQsIHRydWUpOwogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0
SW5zcGVjdG9yQ1NTQWdlbnQodGhpcyk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OmRp
c2FibGUoRXJyb3JTdHJpbmcqKQogewogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5z
cGVjdG9yQ1NTQWdlbnQoMCk7Ci0gICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihDU1NBZ2VudFN0YXRl
OjplbmFibGVkLCBmYWxzZSk7CisgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihDU1NBZ2VudFN0YXRl
Ojpjc3NBZ2VudEVuYWJsZWQsIGZhbHNlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6
bWVkaWFRdWVyeVJlc3VsdENoYW5nZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAKaW5kZXggMzlkY2EyNTVkZmI1MjA4NWUxYWViZmQz
MzA0YTEzMGFlZjIzYmQyZi4uMDRmZWIzMjQxNjBkMmJkYmU3NDVlZGZlNDZkOGI3YWIyZDIyMTQ0
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0Fn
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdl
bnQuY3BwCkBAIC00Nyw3ICs0Nyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFj
ZSBDYW52YXNBZ2VudFN0YXRlIHsKLXN0YXRpYyBjb25zdCBjaGFyIGVuYWJsZWRbXSA9ICJlbmFi
bGVkIjsKK3N0YXRpYyBjb25zdCBjaGFyIGNhbnZhc0FnZW50RW5hYmxlZFtdID0gImNhbnZhc0Fn
ZW50RW5hYmxlZCI7CiB9OwogCiBJbnNwZWN0b3JDYW52YXNBZ2VudDo6SW5zcGVjdG9yQ2FudmFz
QWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9y
U3RhdGUqIHN0YXRlLCBQYWdlKiBwYWdlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVk
U2NyaXB0TWFuYWdlcikKQEAgLTc2LDcgKzc2LDcgQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2Vu
dDo6Y2xlYXJGcm9udGVuZCgpCiAKIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnJlc3RvcmUo
KQogewotICAgIGlmIChtX3N0YXRlLT5nZXRCb29sZWFuKENhbnZhc0FnZW50U3RhdGU6OmVuYWJs
ZWQpKSB7CisgICAgaWYgKG1fc3RhdGUtPmdldEJvb2xlYW4oQ2FudmFzQWdlbnRTdGF0ZTo6Y2Fu
dmFzQWdlbnRFbmFibGVkKSkgewogICAgICAgICBFcnJvclN0cmluZyBlcnJvcjsKICAgICAgICAg
ZW5hYmxlKCZlcnJvcik7CiAgICAgfQpAQCAtODQsMTQgKzg0LDE0IEBAIHZvaWQgSW5zcGVjdG9y
Q2FudmFzQWdlbnQ6OnJlc3RvcmUoKQogCiB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjplbmFi
bGUoRXJyb3JTdHJpbmcqKQogewotICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oQ2FudmFzQWdlbnRT
dGF0ZTo6ZW5hYmxlZCwgdHJ1ZSk7CisgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihDYW52YXNBZ2Vu
dFN0YXRlOjpjYW52YXNBZ2VudEVuYWJsZWQsIHRydWUpOwogICAgIG1faW5zdHJ1bWVudGluZ0Fn
ZW50cy0+c2V0SW5zcGVjdG9yQ2FudmFzQWdlbnQodGhpcyk7CiB9CiAKIHZvaWQgSW5zcGVjdG9y
Q2FudmFzQWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcqKQogewogICAgIG1faW5zdHJ1bWVudGlu
Z0FnZW50cy0+c2V0SW5zcGVjdG9yQ2FudmFzQWdlbnQoMCk7Ci0gICAgbV9zdGF0ZS0+c2V0Qm9v
bGVhbihDYW52YXNBZ2VudFN0YXRlOjplbmFibGVkLCBmYWxzZSk7CisgICAgbV9zdGF0ZS0+c2V0
Qm9vbGVhbihDYW52YXNBZ2VudFN0YXRlOjpjYW52YXNBZ2VudEVuYWJsZWQsIGZhbHNlKTsKIH0K
IAogdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZHJvcFRyYWNlTG9nKEVycm9yU3RyaW5nKiBl
cnJvclN0cmluZywgY29uc3QgU3RyaW5nJiB0cmFjZUxvZ0lkKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGMzMjNmZTQ2MmRmODYw
MGU3NDYwMTk5MTIwYWMxNDRiNjRhMTgyNmUuLjNlNGRjOTNmNGU1NGQyMDQ5OGYyYjk0MDc3N2U5
YTkzY2ZjNjkwYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q29udHJvbGxlci5jcHAKQEAgLTgyLDgxICs4Miw4MSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBJ
bnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKFBhZ2UqIHBhZ2UsIEluc3Bl
Y3RvckNsaWVudCogaW5zcGVjdG9yQ2xpZW50KQogICAgIDogbV9pbnN0cnVtZW50aW5nQWdlbnRz
KGFkb3B0UHRyKG5ldyBJbnN0cnVtZW50aW5nQWdlbnRzKCkpKQogICAgICwgbV9pbmplY3RlZFNj
cmlwdE1hbmFnZXIoSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpjcmVhdGVGb3JQYWdlKCkpCi0gICAg
LCBtX3N0YXRlKGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZShpbnNwZWN0b3JD
bGllbnQpKSkKKyAgICAsIG1fc3RhdGUoYWRvcHRQdHIobmV3IEluc3BlY3RvclN0YXRlKGluc3Bl
Y3RvckNsaWVudCkpKQogICAgICwgbV9vdmVybGF5KEluc3BlY3Rvck92ZXJsYXk6OmNyZWF0ZShw
YWdlLCBpbnNwZWN0b3JDbGllbnQpKQogICAgICwgbV9wYWdlKHBhZ2UpCiAgICAgLCBtX2luc3Bl
Y3RvckNsaWVudChpbnNwZWN0b3JDbGllbnQpCiB7Ci0gICAgT3duUHRyPEluc3BlY3RvckFnZW50
PiBpbnNwZWN0b3JBZ2VudFB0cihJbnNwZWN0b3JBZ2VudDo6Y3JlYXRlKHBhZ2UsIG1faW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCBtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3Rh
dGUtPmNyZWF0ZUFnZW50U3RhdGUoKSkpOworICAgIE93blB0cjxJbnNwZWN0b3JBZ2VudD4gaW5z
cGVjdG9yQWdlbnRQdHIoSW5zcGVjdG9yQWdlbnQ6OmNyZWF0ZShwYWdlLCBtX2luamVjdGVkU2Ny
aXB0TWFuYWdlci5nZXQoKSwgbV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdl
dCgpKSk7CiAgICAgbV9pbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50UHRyLmdldCgpOwog
ICAgIG1fYWdlbnRzLmFwcGVuZChpbnNwZWN0b3JBZ2VudFB0ci5yZWxlYXNlKCkpOwogCi0gICAg
T3duUHRyPEluc3BlY3RvclBhZ2VBZ2VudD4gcGFnZUFnZW50UHRyKEluc3BlY3RvclBhZ2VBZ2Vu
dDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgcGFnZSwgbV9pbnNwZWN0b3JB
Z2VudCwgbV9zdGF0ZS0+Y3JlYXRlQWdlbnRTdGF0ZSgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdl
ci5nZXQoKSwgaW5zcGVjdG9yQ2xpZW50LCBtX292ZXJsYXkuZ2V0KCkpKTsKKyAgICBPd25QdHI8
SW5zcGVjdG9yUGFnZUFnZW50PiBwYWdlQWdlbnRQdHIoSW5zcGVjdG9yUGFnZUFnZW50OjpjcmVh
dGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBwYWdlLCBtX2luc3BlY3RvckFnZW50LCBt
X3N0YXRlLmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgaW5zcGVjdG9yQ2xp
ZW50LCBtX292ZXJsYXkuZ2V0KCkpKTsKICAgICBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2Vu
dCA9IHBhZ2VBZ2VudFB0ci5nZXQoKTsKICAgICBtX3BhZ2VBZ2VudCA9IHBhZ2VBZ2VudFB0ci5n
ZXQoKTsKICAgICBtX2FnZW50cy5hcHBlbmQocGFnZUFnZW50UHRyLnJlbGVhc2UoKSk7CiAKLSAg
ICBPd25QdHI8SW5zcGVjdG9yRE9NQWdlbnQ+IGRvbUFnZW50UHRyKEluc3BlY3RvckRPTUFnZW50
OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBwYWdlQWdlbnQsIG1fc3RhdGUt
PmNyZWF0ZUFnZW50U3RhdGUoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCksIG1fb3Zl
cmxheS5nZXQoKSkpOworICAgIE93blB0cjxJbnNwZWN0b3JET01BZ2VudD4gZG9tQWdlbnRQdHIo
SW5zcGVjdG9yRE9NQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIHBh
Z2VBZ2VudCwgbV9zdGF0ZS5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCksIG1f
b3ZlcmxheS5nZXQoKSkpOwogICAgIG1fZG9tQWdlbnQgPSBkb21BZ2VudFB0ci5nZXQoKTsKICAg
ICBtX2FnZW50cy5hcHBlbmQoZG9tQWdlbnRQdHIucmVsZWFzZSgpKTsKIAotICAgIG1fYWdlbnRz
LmFwcGVuZChJbnNwZWN0b3JDU1NBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5n
ZXQoKSwgbV9zdGF0ZS0+Y3JlYXRlQWdlbnRTdGF0ZSgpLCBtX2RvbUFnZW50KSk7CisgICAgbV9h
Z2VudHMuYXBwZW5kKEluc3BlY3RvckNTU0FnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdl
bnRzLmdldCgpLCBtX3N0YXRlLmdldCgpLCBtX2RvbUFnZW50KSk7CiAKICNpZiBFTkFCTEUoU1FM
X0RBVEFCQVNFKQotICAgIE93blB0cjxJbnNwZWN0b3JEYXRhYmFzZUFnZW50PiBkYXRhYmFzZUFn
ZW50UHRyKEluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2Vu
dHMuZ2V0KCksIG1fc3RhdGUtPmNyZWF0ZUFnZW50U3RhdGUoKSkpOworICAgIE93blB0cjxJbnNw
ZWN0b3JEYXRhYmFzZUFnZW50PiBkYXRhYmFzZUFnZW50UHRyKEluc3BlY3RvckRhdGFiYXNlQWdl
bnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCkpKTsK
ICAgICBJbnNwZWN0b3JEYXRhYmFzZUFnZW50KiBkYXRhYmFzZUFnZW50ID0gZGF0YWJhc2VBZ2Vu
dFB0ci5nZXQoKTsKICAgICBtX2FnZW50cy5hcHBlbmQoZGF0YWJhc2VBZ2VudFB0ci5yZWxlYXNl
KCkpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICBtX2FnZW50
cy5hcHBlbmQoSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdB
Z2VudHMuZ2V0KCksIG1fc3RhdGUtPmNyZWF0ZUFnZW50U3RhdGUoKSwgbV9pbmplY3RlZFNjcmlw
dE1hbmFnZXIuZ2V0KCksIHBhZ2VBZ2VudCkpOworICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0
b3JJbmRleGVkREJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9z
dGF0ZS5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCksIHBhZ2VBZ2VudCkpOwog
I2VuZGlmCiAKICNpZiBFTkFCTEUoRklMRV9TWVNURU0pCi0gICAgbV9hZ2VudHMuYXBwZW5kKElu
c3BlY3RvckZpbGVTeXN0ZW1BZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQo
KSwgcGFnZUFnZW50LCBtX3N0YXRlLT5jcmVhdGVBZ2VudFN0YXRlKCkpKTsKKyAgICBtX2FnZW50
cy5hcHBlbmQoSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5n
QWdlbnRzLmdldCgpLCBwYWdlQWdlbnQsIG1fc3RhdGUuZ2V0KCkpKTsKICNlbmRpZgotICAgIE93
blB0cjxJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ+IGRvbVN0b3JhZ2VBZ2VudFB0cihJbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1f
c3RhdGUtPmNyZWF0ZUFnZW50U3RhdGUoKSkpOworICAgIE93blB0cjxJbnNwZWN0b3JET01TdG9y
YWdlQWdlbnQ+IGRvbVN0b3JhZ2VBZ2VudFB0cihJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmNy
ZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCkpKTsKICAgICBJ
bnNwZWN0b3JET01TdG9yYWdlQWdlbnQqIGRvbVN0b3JhZ2VBZ2VudCA9IGRvbVN0b3JhZ2VBZ2Vu
dFB0ci5nZXQoKTsKICAgICBtX2FnZW50cy5hcHBlbmQoZG9tU3RvcmFnZUFnZW50UHRyLnJlbGVh
c2UoKSk7Ci0gICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3Rvck1lbW9yeUFnZW50OjpjcmVhdGUo
bV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBpbnNwZWN0b3JDbGllbnQsIG1fc3RhdGUtPmNy
ZWF0ZUFnZW50U3RhdGUoKSwgbV9wYWdlKSk7Ci0gICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2VB
Z2VudCwgbV9zdGF0ZS0+Y3JlYXRlQWdlbnRTdGF0ZSgpLCBJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpQYWdlSW5zcGVjdG9yLAorICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JNZW1vcnlBZ2Vu
dDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgaW5zcGVjdG9yQ2xpZW50LCBt
X3N0YXRlLmdldCgpLCBtX3BhZ2UpKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgcGFnZUFnZW50
LCBtX3N0YXRlLmdldCgpLCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpQYWdlSW5zcGVjdG9yLAog
ICAgICAgIGluc3BlY3RvckNsaWVudCkpOwotICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JB
cHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCks
IG1fc3RhdGUtPmNyZWF0ZUFnZW50U3RhdGUoKSwgcGFnZUFnZW50KSk7CisgICAgbV9hZ2VudHMu
YXBwZW5kKEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVu
dGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgcGFnZUFnZW50KSk7CiAKLSAgICBPd25Q
dHI8SW5zcGVjdG9yUmVzb3VyY2VBZ2VudD4gcmVzb3VyY2VBZ2VudFB0cihJbnNwZWN0b3JSZXNv
dXJjZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBwYWdlQWdlbnQs
IGluc3BlY3RvckNsaWVudCwgbV9zdGF0ZS0+Y3JlYXRlQWdlbnRTdGF0ZSgpKSk7CisgICAgT3du
UHRyPEluc3BlY3RvclJlc291cmNlQWdlbnQ+IHJlc291cmNlQWdlbnRQdHIoSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgcGFnZUFnZW50
LCBpbnNwZWN0b3JDbGllbnQsIG1fc3RhdGUuZ2V0KCkpKTsKICAgICBtX3Jlc291cmNlQWdlbnQg
PSByZXNvdXJjZUFnZW50UHRyLmdldCgpOwogICAgIG1fYWdlbnRzLmFwcGVuZChyZXNvdXJjZUFn
ZW50UHRyLnJlbGVhc2UoKSk7CiAKLSAgICBPd25QdHI8SW5zcGVjdG9yUnVudGltZUFnZW50PiBy
dW50aW1lQWdlbnRQdHIoUGFnZVJ1bnRpbWVBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0Fn
ZW50cy5nZXQoKSwgbV9zdGF0ZS0+Y3JlYXRlQWdlbnRTdGF0ZSgpLCBtX2luamVjdGVkU2NyaXB0
TWFuYWdlci5nZXQoKSwgcGFnZSwgcGFnZUFnZW50KSk7CisgICAgT3duUHRyPEluc3BlY3RvclJ1
bnRpbWVBZ2VudD4gcnVudGltZUFnZW50UHRyKFBhZ2VSdW50aW1lQWdlbnQ6OmNyZWF0ZShtX2lu
c3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyLmdldCgpLCBwYWdlLCBwYWdlQWdlbnQpKTsKICAgICBJbnNwZWN0b3JSdW50aW1lQWdl
bnQqIHJ1bnRpbWVBZ2VudCA9IHJ1bnRpbWVBZ2VudFB0ci5nZXQoKTsKICAgICBtX2FnZW50cy5h
cHBlbmQocnVudGltZUFnZW50UHRyLnJlbGVhc2UoKSk7CiAKLSAgICBPd25QdHI8SW5zcGVjdG9y
Q29uc29sZUFnZW50PiBjb25zb2xlQWdlbnRQdHIoUGFnZUNvbnNvbGVBZ2VudDo6Y3JlYXRlKG1f
aW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9pbnNwZWN0b3JBZ2VudCwgbV9zdGF0ZS0+Y3Jl
YXRlQWdlbnRTdGF0ZSgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgbV9kb21BZ2Vu
dCkpOworICAgIE93blB0cjxJbnNwZWN0b3JDb25zb2xlQWdlbnQ+IGNvbnNvbGVBZ2VudFB0cihQ
YWdlQ29uc29sZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX2lu
c3BlY3RvckFnZW50LCBtX3N0YXRlLmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQo
KSwgbV9kb21BZ2VudCkpOwogICAgIEluc3BlY3RvckNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50
ID0gY29uc29sZUFnZW50UHRyLmdldCgpOwogICAgIG1fYWdlbnRzLmFwcGVuZChjb25zb2xlQWdl
bnRQdHIucmVsZWFzZSgpKTsKIAogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAg
IE93blB0cjxJbnNwZWN0b3JEZWJ1Z2dlckFnZW50PiBkZWJ1Z2dlckFnZW50UHRyKFBhZ2VEZWJ1
Z2dlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLT5j
cmVhdGVBZ2VudFN0YXRlKCksIHBhZ2VBZ2VudCwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0
KCksIG1fb3ZlcmxheS5nZXQoKSkpOworICAgIE93blB0cjxJbnNwZWN0b3JEZWJ1Z2dlckFnZW50
PiBkZWJ1Z2dlckFnZW50UHRyKFBhZ2VEZWJ1Z2dlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50
aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpLCBwYWdlQWdlbnQsIG1faW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLmdldCgpLCBtX292ZXJsYXkuZ2V0KCkpKTsKICAgICBtX2RlYnVnZ2VyQWdlbnQg
PSBkZWJ1Z2dlckFnZW50UHRyLmdldCgpOwogICAgIG1fYWdlbnRzLmFwcGVuZChkZWJ1Z2dlckFn
ZW50UHRyLnJlbGVhc2UoKSk7CiAKLSAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yRE9NRGVi
dWdnZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS0+
Y3JlYXRlQWdlbnRTdGF0ZSgpLCBtX2RvbUFnZW50LCBtX2RlYnVnZ2VyQWdlbnQsIG1faW5zcGVj
dG9yQWdlbnQpKTsKKyAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgbV9k
b21BZ2VudCwgbV9kZWJ1Z2dlckFnZW50LCBtX2luc3BlY3RvckFnZW50KSk7CiAKLSAgICBPd25Q
dHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4gcHJvZmlsZXJBZ2VudFB0cihJbnNwZWN0b3JQcm9m
aWxlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBjb25zb2xlQWdl
bnQsIHBhZ2UsIG1fc3RhdGUtPmNyZWF0ZUFnZW50U3RhdGUoKSwgbV9pbmplY3RlZFNjcmlwdE1h
bmFnZXIuZ2V0KCkpKTsKKyAgICBPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4gcHJvZmls
ZXJBZ2VudFB0cihJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5n
QWdlbnRzLmdldCgpLCBjb25zb2xlQWdlbnQsIHBhZ2UsIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSk7CiAgICAgbV9wcm9maWxlckFnZW50ID0gcHJvZmlsZXJB
Z2VudFB0ci5nZXQoKTsKICAgICBtX2FnZW50cy5hcHBlbmQocHJvZmlsZXJBZ2VudFB0ci5yZWxl
YXNlKCkpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoV09SS0VSUykKLSAgICBtX2FnZW50cy5hcHBl
bmQoSW5zcGVjdG9yV29ya2VyQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0
KCksIG1fc3RhdGUtPmNyZWF0ZUFnZW50U3RhdGUoKSkpOworICAgIG1fYWdlbnRzLmFwcGVuZChJ
bnNwZWN0b3JXb3JrZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwg
bV9zdGF0ZS5nZXQoKSkpOwogI2VuZGlmCiAKLSAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9y
Q2FudmFzQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUt
PmNyZWF0ZUFnZW50U3RhdGUoKSwgcGFnZSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkp
KTsKKyAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmNyZWF0ZShtX2lu
c3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIHBhZ2UsIG1faW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyLmdldCgpKSk7CiAKLSAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9ySW5w
dXRBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS0+Y3Jl
YXRlQWdlbnRTdGF0ZSgpLCBwYWdlKSk7CisgICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3Rvcklu
cHV0QWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0
KCksIHBhZ2UpKTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBtX2Fn
ZW50cy5hcHBlbmQoSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRp
bmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUtPmNyZWF0ZUFnZW50U3RhdGUoKSwgcGFnZSkpOworICAg
IG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1
bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgcGFnZSkpOwogI2VuZGlmCiAKICAg
ICBBU1NFUlRfQVJHKGluc3BlY3RvckNsaWVudCwgaW5zcGVjdG9yQ2xpZW50KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IDRhMmM4OGQ3
N2NkYzZlNWYwYmM4ZWRhNzY2Y2MxZmMwNTA1NzIzYzguLmU2OWZiNzVjZjYwYjUzMjYxOTk2Njk4
MGJjOWIzMzYwOTFmNGQ3OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnRyb2xsZXIuaApAQCAtNTksNyArNTksNyBAQCBjbGFzcyBJbnNwZWN0b3JPdmVybGF5
OwogY2xhc3MgSW5zcGVjdG9yUGFnZUFnZW50OwogY2xhc3MgSW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dDsKIGNsYXNzIEluc3BlY3RvclJlc291cmNlQWdlbnQ7Ci1jbGFzcyBJbnNwZWN0b3JDb21wb3Np
dGVTdGF0ZTsKK2NsYXNzIEluc3BlY3RvclN0YXRlOwogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50
czsKIGNsYXNzIEludFNpemU7CiBjbGFzcyBQYWdlOwpAQCAtMTMwLDcgKzEzMCw3IEBAIHByaXZh
dGU6CiAKICAgICBPd25QdHI8SW5zdHJ1bWVudGluZ0FnZW50cz4gbV9pbnN0cnVtZW50aW5nQWdl
bnRzOwogICAgIE93blB0cjxJbmplY3RlZFNjcmlwdE1hbmFnZXI+IG1faW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyOwotICAgIE93blB0cjxJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZT4gbV9zdGF0ZTsKKyAg
ICBPd25QdHI8SW5zcGVjdG9yU3RhdGU+IG1fc3RhdGU7CiAgICAgT3duUHRyPEluc3BlY3Rvck92
ZXJsYXk+IG1fb3ZlcmxheTsKIAogICAgIEluc3BlY3RvckFnZW50KiBtX2luc3BlY3RvckFnZW50
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50LmNwcAppbmRleCAyM2NmNmQ0OWUyZTdiNWY2YzFjYTc3ODFmNWUxNTgyNGQ3YzFhMmQw
Li40MTBhZGVjY2I3NmEyYzI3NTk2OTUzYzdjNjcyYzQxNjA0MjdhYTJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcApA
QCAtNTMsNyArNTMsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgRE9NU3Rv
cmFnZUFnZW50U3RhdGUgewotc3RhdGljIGNvbnN0IGNoYXIgZW5hYmxlZFtdID0gImVuYWJsZWQi
Oworc3RhdGljIGNvbnN0IGNoYXIgZG9tU3RvcmFnZUFnZW50RW5hYmxlZFtdID0gImRvbVN0b3Jh
Z2VBZ2VudEVuYWJsZWQiOwogfTsKIAogSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpJbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50
cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRlKQpAQCAtODYsNyArODYsNyBAQCB2b2lkIEluc3BlY3Rv
ckRPTVN0b3JhZ2VBZ2VudDo6Y2xlYXJGcm9udGVuZCgpCiAKIHZvaWQgSW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50OjpyZXN0b3JlKCkKIHsKLSAgICBtX2VuYWJsZWQgPSAgbV9zdGF0ZS0+Z2V0Qm9v
bGVhbihET01TdG9yYWdlQWdlbnRTdGF0ZTo6ZW5hYmxlZCk7CisgICAgbV9lbmFibGVkID0gIG1f
c3RhdGUtPmdldEJvb2xlYW4oRE9NU3RvcmFnZUFnZW50U3RhdGU6OmRvbVN0b3JhZ2VBZ2VudEVu
YWJsZWQpOwogfQogCiB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6ZW5hYmxlKEVycm9y
U3RyaW5nKikKQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6
OmVuYWJsZShFcnJvclN0cmluZyopCiAgICAgaWYgKG1fZW5hYmxlZCkKICAgICAgICAgcmV0dXJu
OwogICAgIG1fZW5hYmxlZCA9IHRydWU7Ci0gICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihET01TdG9y
YWdlQWdlbnRTdGF0ZTo6ZW5hYmxlZCwgbV9lbmFibGVkKTsKKyAgICBtX3N0YXRlLT5zZXRCb29s
ZWFuKERPTVN0b3JhZ2VBZ2VudFN0YXRlOjpkb21TdG9yYWdlQWdlbnRFbmFibGVkLCBtX2VuYWJs
ZWQpOwogCiAgICAgRE9NU3RvcmFnZVJlc291cmNlc01hcDo6aXRlcmF0b3IgcmVzb3VyY2VzRW5k
ID0gbV9yZXNvdXJjZXMuZW5kKCk7CiAgICAgZm9yIChET01TdG9yYWdlUmVzb3VyY2VzTWFwOjpp
dGVyYXRvciBpdCA9IG1fcmVzb3VyY2VzLmJlZ2luKCk7IGl0ICE9IHJlc291cmNlc0VuZDsgKytp
dCkKQEAgLTEwNiw3ICsxMDYsNyBAQCB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6ZGlz
YWJsZShFcnJvclN0cmluZyopCiAgICAgaWYgKCFtX2VuYWJsZWQpCiAgICAgICAgIHJldHVybjsK
ICAgICBtX2VuYWJsZWQgPSBmYWxzZTsKLSAgICBtX3N0YXRlLT5zZXRCb29sZWFuKERPTVN0b3Jh
Z2VBZ2VudFN0YXRlOjplbmFibGVkLCBtX2VuYWJsZWQpOworICAgIG1fc3RhdGUtPnNldEJvb2xl
YW4oRE9NU3RvcmFnZUFnZW50U3RhdGU6OmRvbVN0b3JhZ2VBZ2VudEVuYWJsZWQsIG1fZW5hYmxl
ZCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpnZXRET01TdG9yYWdlRW50
cmllcyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgc3RvcmFnZUlkLCBSZWZQdHI8VHlwZUJ1
aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpBcnJheTxTdHJpbmc+ID4gPiYgZW50cmllcykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNw
cAppbmRleCAyZTdlOWQyOGZlYWQ1OGUxOWFiNjhhN2I0ZTM4OGI4YjQzODllNDVmLi4wYzIwYTNj
N2NlN2I2ZTcxMzE0NTVhNTk2NzgyYTIzZDFiYmFlNGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwCkBAIC01Niw3ICs1Niw3
IEBAIHR5cGVkZWYgV2ViQ29yZTo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OkRhdGFiYXNl
Q29tbWFuZEhhbmRsZXI6OkV4ZWN1dGVTUUxDCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVz
cGFjZSBEYXRhYmFzZUFnZW50U3RhdGUgewotc3RhdGljIGNvbnN0IGNoYXIgZW5hYmxlZFtdID0g
ImVuYWJsZWQiOworc3RhdGljIGNvbnN0IGNoYXIgZGF0YWJhc2VBZ2VudEVuYWJsZWRbXSA9ICJk
YXRhYmFzZUFnZW50RW5hYmxlZCI7CiB9OwogCiBuYW1lc3BhY2UgewpAQCAtMjQxLDcgKzI0MSw3
IEBAIHZvaWQgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nKikKICAg
ICBpZiAobV9lbmFibGVkKQogICAgICAgICByZXR1cm47CiAgICAgbV9lbmFibGVkID0gdHJ1ZTsK
LSAgICBtX3N0YXRlLT5zZXRCb29sZWFuKERhdGFiYXNlQWdlbnRTdGF0ZTo6ZW5hYmxlZCwgbV9l
bmFibGVkKTsKKyAgICBtX3N0YXRlLT5zZXRCb29sZWFuKERhdGFiYXNlQWdlbnRTdGF0ZTo6ZGF0
YWJhc2VBZ2VudEVuYWJsZWQsIG1fZW5hYmxlZCk7CiAKICAgICBEYXRhYmFzZVJlc291cmNlc01h
cDo6aXRlcmF0b3IgZGF0YWJhc2VzRW5kID0gbV9yZXNvdXJjZXMuZW5kKCk7CiAgICAgZm9yIChE
YXRhYmFzZVJlc291cmNlc01hcDo6aXRlcmF0b3IgaXQgPSBtX3Jlc291cmNlcy5iZWdpbigpOyBp
dCAhPSBkYXRhYmFzZXNFbmQ7ICsraXQpCkBAIC0yNTMsMTIgKzI1MywxMiBAQCB2b2lkIEluc3Bl
Y3RvckRhdGFiYXNlQWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcqKQogICAgIGlmICghbV9lbmFi
bGVkKQogICAgICAgICByZXR1cm47CiAgICAgbV9lbmFibGVkID0gZmFsc2U7Ci0gICAgbV9zdGF0
ZS0+c2V0Qm9vbGVhbihEYXRhYmFzZUFnZW50U3RhdGU6OmVuYWJsZWQsIG1fZW5hYmxlZCk7Cisg
ICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihEYXRhYmFzZUFnZW50U3RhdGU6OmRhdGFiYXNlQWdlbnRF
bmFibGVkLCBtX2VuYWJsZWQpOwogfQogCiB2b2lkIEluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OnJl
c3RvcmUoKQogewotICAgIG1fZW5hYmxlZCA9IG1fc3RhdGUtPmdldEJvb2xlYW4oRGF0YWJhc2VB
Z2VudFN0YXRlOjplbmFibGVkKTsKKyAgICBtX2VuYWJsZWQgPSBtX3N0YXRlLT5nZXRCb29sZWFu
KERhdGFiYXNlQWdlbnRTdGF0ZTo6ZGF0YWJhc2VBZ2VudEVuYWJsZWQpOwogfQogCiB2b2lkIElu
c3BlY3RvckRhdGFiYXNlQWdlbnQ6OmdldERhdGFiYXNlVGFibGVOYW1lcyhFcnJvclN0cmluZyog
ZXJyb3IsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VJZCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJh
eTxTdHJpbmc+ID4mIG5hbWVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IGE2MWIyMTRhYzA1NDIyMTQ3ODU4NWIwYjQy
OGJmY2ZjZGFkMjA2NjEuLjljZjhkMDFjYmM2ZjJiZjU4YjFmODA5ZWZhNWFmMGMwODE5YTJhMGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJB
Z2VudC5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojpl
bmFibGUoKQogCiB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRpc2FibGUoKQogewotICAg
IG1fc3RhdGUtPnJlbW92ZShEZWJ1Z2dlckFnZW50U3RhdGU6OmphdmFTY3JpcHRCcmVha3BvaW50
cyk7CisgICAgbV9zdGF0ZS0+c2V0T2JqZWN0KERlYnVnZ2VyQWdlbnRTdGF0ZTo6amF2YVNjcmlw
dEJyZWFrcG9pbnRzLCBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpKTsKICAgICBtX3N0YXRlLT5z
ZXRMb25nKERlYnVnZ2VyQWdlbnRTdGF0ZTo6cGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSwgU2NyaXB0
RGVidWdTZXJ2ZXI6OkRvbnRQYXVzZU9uRXhjZXB0aW9ucyk7CiAgICAgbV9pbnN0cnVtZW50aW5n
QWdlbnRzLT5zZXRJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KDApOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3BwCmluZGV4IGY1
MzQ2Nzg0Mjg1MWYwZGE0NDRmMTUyODg0Yjk3OTBhYzIwYTA2OTguLmMyNzIyZmUzYTRkN2UzYjEx
OWI4NWRjZDJmMjAxYzg0MTA1ODgxY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3BwCkBAIC03Nyw3ICs3Nyw3IEBAIHR5
cGVkZWYgV2ViQ29yZTo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OkZpbGVTeXN0ZW1Db21t
YW5kSGFuZGxlcjo6RGVsZXRlRW50CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFjZSBG
aWxlU3lzdGVtQWdlbnRTdGF0ZSB7Ci1zdGF0aWMgY29uc3QgY2hhciBlbmFibGVkW10gPSAiZW5h
YmxlZCI7CitzdGF0aWMgY29uc3QgY2hhciBmaWxlU3lzdGVtQWdlbnRFbmFibGVkW10gPSAiZmls
ZVN5c3RlbUFnZW50RW5hYmxlZCI7CiB9CiAKIG5hbWVzcGFjZSB7CkBAIC02MjAsNyArNjIwLDcg
QEAgdm9pZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyopCiAg
ICAgaWYgKG1fZW5hYmxlZCkKICAgICAgICAgcmV0dXJuOwogICAgIG1fZW5hYmxlZCA9IHRydWU7
Ci0gICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihGaWxlU3lzdGVtQWdlbnRTdGF0ZTo6ZW5hYmxlZCwg
bV9lbmFibGVkKTsKKyAgICBtX3N0YXRlLT5zZXRCb29sZWFuKEZpbGVTeXN0ZW1BZ2VudFN0YXRl
OjpmaWxlU3lzdGVtQWdlbnRFbmFibGVkLCBtX2VuYWJsZWQpOwogfQogCiB2b2lkIEluc3BlY3Rv
ckZpbGVTeXN0ZW1BZ2VudDo6ZGlzYWJsZShFcnJvclN0cmluZyopCkBAIC02MjgsNyArNjI4LDcg
QEAgdm9pZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcqKQog
ICAgIGlmICghbV9lbmFibGVkKQogICAgICAgICByZXR1cm47CiAgICAgbV9lbmFibGVkID0gZmFs
c2U7Ci0gICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihGaWxlU3lzdGVtQWdlbnRTdGF0ZTo6ZW5hYmxl
ZCwgbV9lbmFibGVkKTsKKyAgICBtX3N0YXRlLT5zZXRCb29sZWFuKEZpbGVTeXN0ZW1BZ2VudFN0
YXRlOjpmaWxlU3lzdGVtQWdlbnRFbmFibGVkLCBtX2VuYWJsZWQpOwogfQogCiB2b2lkIEluc3Bl
Y3RvckZpbGVTeXN0ZW1BZ2VudDo6cmVxdWVzdEZpbGVTeXN0ZW1Sb290KEVycm9yU3RyaW5nKiBl
cnJvciwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgdHlwZSwgUGFzc1JlZlB0
cjxSZXF1ZXN0RmlsZVN5c3RlbVJvb3RDYWxsYmFjaz4gcmVxdWVzdENhbGxiYWNrKQpAQCAtNjk4
LDEyICs2OTgsMTIgQEAgdm9pZCBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OmRlbGV0ZUVudHJ5
KEVycm9yU3RyaW5nKiBlcnJvciwgY29uc3QgU3RyaW5nJiB1cmwKIHZvaWQgSW5zcGVjdG9yRmls
ZVN5c3RlbUFnZW50OjpjbGVhckZyb250ZW5kKCkKIHsKICAgICBtX2VuYWJsZWQgPSBmYWxzZTsK
LSAgICBtX3N0YXRlLT5zZXRCb29sZWFuKEZpbGVTeXN0ZW1BZ2VudFN0YXRlOjplbmFibGVkLCBt
X2VuYWJsZWQpOworICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oRmlsZVN5c3RlbUFnZW50U3RhdGU6
OmZpbGVTeXN0ZW1BZ2VudEVuYWJsZWQsIG1fZW5hYmxlZCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9y
RmlsZVN5c3RlbUFnZW50OjpyZXN0b3JlKCkKIHsKLSAgICBtX2VuYWJsZWQgPSBtX3N0YXRlLT5n
ZXRCb29sZWFuKEZpbGVTeXN0ZW1BZ2VudFN0YXRlOjplbmFibGVkKTsKKyAgICBtX2VuYWJsZWQg
PSBtX3N0YXRlLT5nZXRCb29sZWFuKEZpbGVTeXN0ZW1BZ2VudFN0YXRlOjpmaWxlU3lzdGVtQWdl
bnRFbmFibGVkKTsKIH0KIAogSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpJbnNwZWN0b3JGaWxl
U3lzdGVtQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5z
cGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3Bw
CmluZGV4IDVhMTdkZjUzZDFlM2VlMmNkOTllOGI4ZTJjZTJlNWM0YTE3Yzg1YmQuLjRhMjgzZmEw
OTU5ZWFmMGIxNDEwNDM2ZDYzYmRlNzlmODk3YjhmM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApAQCAtODUsNyArODUs
NyBAQCB0eXBlZGVmIFdlYkNvcmU6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFj
a0Jhc2UgUmVxdWVzdENhbGxiYWNrOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2Ug
SW5kZXhlZERCQWdlbnRTdGF0ZSB7Ci1zdGF0aWMgY29uc3QgY2hhciBlbmFibGVkW10gPSAiZW5h
YmxlZCI7CitzdGF0aWMgY29uc3QgY2hhciBpbmRleGVkREJBZ2VudEVuYWJsZWRbXSA9ICJpbmRl
eGVkREJBZ2VudEVuYWJsZWQiOwogfTsKIAogbmFtZXNwYWNlIHsKQEAgLTU3NCw3ICs1NzQsNyBA
QCB2b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50OjpjbGVhckZyb250ZW5kKCkKIAogdm9pZCBJ
bnNwZWN0b3JJbmRleGVkREJBZ2VudDo6cmVzdG9yZSgpCiB7Ci0gICAgaWYgKG1fc3RhdGUtPmdl
dEJvb2xlYW4oSW5kZXhlZERCQWdlbnRTdGF0ZTo6ZW5hYmxlZCkpIHsKKyAgICBpZiAobV9zdGF0
ZS0+Z2V0Qm9vbGVhbihJbmRleGVkREJBZ2VudFN0YXRlOjppbmRleGVkREJBZ2VudEVuYWJsZWQp
KSB7CiAgICAgICAgIEVycm9yU3RyaW5nIGVycm9yOwogICAgICAgICBlbmFibGUoJmVycm9yKTsK
ICAgICB9CkBAIC01ODIsMTIgKzU4MiwxMiBAQCB2b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50
OjpyZXN0b3JlKCkKIAogdm9pZCBJbnNwZWN0b3JJbmRleGVkREJBZ2VudDo6ZW5hYmxlKEVycm9y
U3RyaW5nKikKIHsKLSAgICBtX3N0YXRlLT5zZXRCb29sZWFuKEluZGV4ZWREQkFnZW50U3RhdGU6
OmVuYWJsZWQsIHRydWUpOworICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oSW5kZXhlZERCQWdlbnRT
dGF0ZTo6aW5kZXhlZERCQWdlbnRFbmFibGVkLCB0cnVlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JJ
bmRleGVkREJBZ2VudDo6ZGlzYWJsZShFcnJvclN0cmluZyopCiB7Ci0gICAgbV9zdGF0ZS0+c2V0
Qm9vbGVhbihJbmRleGVkREJBZ2VudFN0YXRlOjplbmFibGVkLCBmYWxzZSk7CisgICAgbV9zdGF0
ZS0+c2V0Qm9vbGVhbihJbmRleGVkREJBZ2VudFN0YXRlOjppbmRleGVkREJBZ2VudEVuYWJsZWQs
IGZhbHNlKTsKIH0KIAogc3RhdGljIEZyYW1lKiBhc3NlcnRGcmFtZShFcnJvclN0cmluZyogZXJy
b3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdl
QWdlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5
ZXJUcmVlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVy
VHJlZUFnZW50LmNwcAppbmRleCBmYWNjYTYzZjU1OGVjZjNkMDI2MmMzOWI5M2U3YWE0MWY1ZmFk
NjE2Li42ODBlZTJmNzFkZjJkOWY3OGM2YTE0OTdmMTQ0NGEyZWY0NmQwMmE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAK
QEAgLTUwLDcgKzUwLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNlIExheWVy
VHJlZUFnZW50U3RhdGUgewotc3RhdGljIGNvbnN0IGNoYXIgZW5hYmxlZFtdID0gImVuYWJsZWQi
Oworc3RhdGljIGNvbnN0IGNoYXIgbGF5ZXJUcmVlQWdlbnRFbmFibGVkW10gPSAibGF5ZXJUcmVl
QWdlbnRFbmFibGVkIjsKIH07CiAKIEluc3BlY3RvckxheWVyVHJlZUFnZW50OjpJbnNwZWN0b3JM
YXllclRyZWVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJ
bnNwZWN0b3JTdGF0ZSogc3RhdGUsIFBhZ2UqIHBhZ2UpCkBAIC03OCw3ICs3OCw3IEBAIHZvaWQg
SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OmNsZWFyRnJvbnRlbmQoKQogCiB2b2lkIEluc3BlY3Rv
ckxheWVyVHJlZUFnZW50OjpyZXN0b3JlKCkKIHsKLSAgICBpZiAobV9zdGF0ZS0+Z2V0Qm9vbGVh
bihMYXllclRyZWVBZ2VudFN0YXRlOjplbmFibGVkKSkKKyAgICBpZiAobV9zdGF0ZS0+Z2V0Qm9v
bGVhbihMYXllclRyZWVBZ2VudFN0YXRlOjpsYXllclRyZWVBZ2VudEVuYWJsZWQpKQogICAgICAg
ICBlbmFibGUoMCk7CiB9CiAKQEAgLTkwLDE1ICs5MCwxNSBAQCB2b2lkIEluc3BlY3RvckxheWVy
VHJlZUFnZW50OjpyZXNldCgpCiAKIHZvaWQgSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OmVuYWJs
ZShFcnJvclN0cmluZyopCiB7Ci0gICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihMYXllclRyZWVBZ2Vu
dFN0YXRlOjplbmFibGVkLCB0cnVlKTsKKyAgICBtX3N0YXRlLT5zZXRCb29sZWFuKExheWVyVHJl
ZUFnZW50U3RhdGU6OmxheWVyVHJlZUFnZW50RW5hYmxlZCwgdHJ1ZSk7CiAgICAgbV9pbnN0cnVt
ZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JMYXllclRyZWVBZ2VudCh0aGlzKTsKIH0KIAogdm9p
ZCBJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6ZGlzYWJsZShFcnJvclN0cmluZyopCiB7Ci0gICAg
aWYgKCFtX3N0YXRlLT5nZXRCb29sZWFuKExheWVyVHJlZUFnZW50U3RhdGU6OmVuYWJsZWQpKQor
ICAgIGlmICghbV9zdGF0ZS0+Z2V0Qm9vbGVhbihMYXllclRyZWVBZ2VudFN0YXRlOjpsYXllclRy
ZWVBZ2VudEVuYWJsZWQpKQogICAgICAgICByZXR1cm47Ci0gICAgbV9zdGF0ZS0+c2V0Qm9vbGVh
bihMYXllclRyZWVBZ2VudFN0YXRlOjplbmFibGVkLCBmYWxzZSk7CisgICAgbV9zdGF0ZS0+c2V0
Qm9vbGVhbihMYXllclRyZWVBZ2VudFN0YXRlOjpsYXllclRyZWVBZ2VudEVuYWJsZWQsIGZhbHNl
KTsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3RvckxheWVyVHJlZUFnZW50
KDApOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdl
bnQuY3BwCmluZGV4IDY0NzUyNjcxYjVjMjYwMWExMmNlMDdkYjQyYWYxMjUzOThlNWNiMmUuLmY3
NTJhNTY2Mzk1NjRiZWZjNjlkZjFhODFjOTQ4ZDgwNmRhYjQ5NWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC04NSwxOSArODUsMTkg
QEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNl
IFBhZ2VBZ2VudFN0YXRlIHsKLXN0YXRpYyBjb25zdCBjaGFyIGVuYWJsZWRbXSA9ICJlbmFibGVk
IjsKLXN0YXRpYyBjb25zdCBjaGFyIHNjcmlwdEV4ZWN1dGlvbkRpc2FibGVkW10gPSAic2NyaXB0
RXhlY3V0aW9uRGlzYWJsZWQiOwotc3RhdGljIGNvbnN0IGNoYXIgc2NyaXB0c1RvRXZhbHVhdGVP
bkxvYWRbXSA9ICJzY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZCI7Ci1zdGF0aWMgY29uc3QgY2hhciBz
Y3JlZW5XaWR0aE92ZXJyaWRlW10gPSAic2NyZWVuV2lkdGhPdmVycmlkZSI7Ci1zdGF0aWMgY29u
c3QgY2hhciBzY3JlZW5IZWlnaHRPdmVycmlkZVtdID0gInNjcmVlbkhlaWdodE92ZXJyaWRlIjsK
LXN0YXRpYyBjb25zdCBjaGFyIGZvbnRTY2FsZUZhY3Rvck92ZXJyaWRlW10gPSAiZm9udFNjYWxl
RmFjdG9yT3ZlcnJpZGUiOwotc3RhdGljIGNvbnN0IGNoYXIgZml0V2luZG93W10gPSAiZml0V2lu
ZG93IjsKLXN0YXRpYyBjb25zdCBjaGFyIHNob3dGUFNDb3VudGVyW10gPSAic2hvd0ZQU0NvdW50
ZXIiOwotc3RhdGljIGNvbnN0IGNoYXIgc2hvd1BhaW50UmVjdHNbXSA9ICJzaG93UGFpbnRSZWN0
cyI7CitzdGF0aWMgY29uc3QgY2hhciBwYWdlQWdlbnRFbmFibGVkW10gPSAicGFnZUFnZW50RW5h
YmxlZCI7CitzdGF0aWMgY29uc3QgY2hhciBwYWdlQWdlbnRTY3JpcHRFeGVjdXRpb25EaXNhYmxl
ZFtdID0gInBhZ2VBZ2VudFNjcmlwdEV4ZWN1dGlvbkRpc2FibGVkIjsKK3N0YXRpYyBjb25zdCBj
aGFyIHBhZ2VBZ2VudFNjcmlwdHNUb0V2YWx1YXRlT25Mb2FkW10gPSAicGFnZUFnZW50U2NyaXB0
c1RvRXZhbHVhdGVPbkxvYWQiOworc3RhdGljIGNvbnN0IGNoYXIgcGFnZUFnZW50U2NyZWVuV2lk
dGhPdmVycmlkZVtdID0gInBhZ2VBZ2VudFNjcmVlbldpZHRoT3ZlcnJpZGUiOworc3RhdGljIGNv
bnN0IGNoYXIgcGFnZUFnZW50U2NyZWVuSGVpZ2h0T3ZlcnJpZGVbXSA9ICJwYWdlQWdlbnRTY3Jl
ZW5IZWlnaHRPdmVycmlkZSI7CitzdGF0aWMgY29uc3QgY2hhciBwYWdlQWdlbnRGb250U2NhbGVG
YWN0b3JPdmVycmlkZVtdID0gInBhZ2VBZ2VudEZvbnRTY2FsZUZhY3Rvck92ZXJyaWRlIjsKK3N0
YXRpYyBjb25zdCBjaGFyIHBhZ2VBZ2VudEZpdFdpbmRvd1tdID0gInBhZ2VBZ2VudEZpdFdpbmRv
dyI7CitzdGF0aWMgY29uc3QgY2hhciBwYWdlQWdlbnRTaG93RlBTQ291bnRlcltdID0gInBhZ2VB
Z2VudFNob3dGUFNDb3VudGVyIjsKK3N0YXRpYyBjb25zdCBjaGFyIHBhZ2VBZ2VudFNob3dQYWlu
dFJlY3RzW10gPSAicGFnZUFnZW50U2hvd1BhaW50UmVjdHMiOwogI2lmIEVOQUJMRShUT1VDSF9F
VkVOVFMpCiBzdGF0aWMgY29uc3QgY2hhciB0b3VjaEV2ZW50RW11bGF0aW9uRW5hYmxlZFtdID0g
InRvdWNoRXZlbnRFbXVsYXRpb25FbmFibGVkIjsKICNlbmRpZgotc3RhdGljIGNvbnN0IGNoYXIg
ZW11bGF0ZWRNZWRpYVtdID0gImVtdWxhdGVkTWVkaWEiOworc3RhdGljIGNvbnN0IGNoYXIgcGFn
ZUFnZW50RW11bGF0ZWRNZWRpYVtdID0gInBhZ2VBZ2VudEVtdWxhdGVkTWVkaWEiOwogfQogCiBz
dGF0aWMgYm9vbCBkZWNvZGVCdWZmZXIoY29uc3QgY2hhciogYnVmZmVyLCB1bnNpZ25lZCBzaXpl
LCBjb25zdCBTdHJpbmcmIHRleHRFbmNvZGluZ05hbWUsIFN0cmluZyogcmVzdWx0KQpAQCAtMzU1
LDIyICszNTUsMjIgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNsZWFyRnJvbnRlbmQoKQog
CiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6cmVzdG9yZSgpCiB7Ci0gICAgaWYgKG1fc3RhdGUt
PmdldEJvb2xlYW4oUGFnZUFnZW50U3RhdGU6OmVuYWJsZWQpKSB7CisgICAgaWYgKG1fc3RhdGUt
PmdldEJvb2xlYW4oUGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2VudEVuYWJsZWQpKSB7CiAgICAgICAg
IEVycm9yU3RyaW5nIGVycm9yOwogICAgICAgICBlbmFibGUoJmVycm9yKTsKLSAgICAgICAgYm9v
bCBzY3JpcHRFeGVjdXRpb25EaXNhYmxlZCA9IG1fc3RhdGUtPmdldEJvb2xlYW4oUGFnZUFnZW50
U3RhdGU6OnNjcmlwdEV4ZWN1dGlvbkRpc2FibGVkKTsKKyAgICAgICAgYm9vbCBzY3JpcHRFeGVj
dXRpb25EaXNhYmxlZCA9IG1fc3RhdGUtPmdldEJvb2xlYW4oUGFnZUFnZW50U3RhdGU6OnBhZ2VB
Z2VudFNjcmlwdEV4ZWN1dGlvbkRpc2FibGVkKTsKICAgICAgICAgc2V0U2NyaXB0RXhlY3V0aW9u
RGlzYWJsZWQoMCwgc2NyaXB0RXhlY3V0aW9uRGlzYWJsZWQpOwotICAgICAgICBib29sIHNob3dQ
YWludFJlY3RzID0gbV9zdGF0ZS0+Z2V0Qm9vbGVhbihQYWdlQWdlbnRTdGF0ZTo6c2hvd1BhaW50
UmVjdHMpOworICAgICAgICBib29sIHNob3dQYWludFJlY3RzID0gbV9zdGF0ZS0+Z2V0Qm9vbGVh
bihQYWdlQWdlbnRTdGF0ZTo6cGFnZUFnZW50U2hvd1BhaW50UmVjdHMpOwogICAgICAgICBzZXRT
aG93UGFpbnRSZWN0cygwLCBzaG93UGFpbnRSZWN0cyk7Ci0gICAgICAgIGJvb2wgc2hvd0ZQU0Nv
dW50ZXIgPSBtX3N0YXRlLT5nZXRCb29sZWFuKFBhZ2VBZ2VudFN0YXRlOjpzaG93RlBTQ291bnRl
cik7CisgICAgICAgIGJvb2wgc2hvd0ZQU0NvdW50ZXIgPSBtX3N0YXRlLT5nZXRCb29sZWFuKFBh
Z2VBZ2VudFN0YXRlOjpwYWdlQWdlbnRTaG93RlBTQ291bnRlcik7CiAgICAgICAgIHNldFNob3dG
UFNDb3VudGVyKDAsIHNob3dGUFNDb3VudGVyKTsKLSAgICAgICAgU3RyaW5nIGVtdWxhdGVkTWVk
aWEgPSBtX3N0YXRlLT5nZXRTdHJpbmcoUGFnZUFnZW50U3RhdGU6OmVtdWxhdGVkTWVkaWEpOwor
ICAgICAgICBTdHJpbmcgZW11bGF0ZWRNZWRpYSA9IG1fc3RhdGUtPmdldFN0cmluZyhQYWdlQWdl
bnRTdGF0ZTo6cGFnZUFnZW50RW11bGF0ZWRNZWRpYSk7CiAgICAgICAgIHNldEVtdWxhdGVkTWVk
aWEoMCwgZW11bGF0ZWRNZWRpYSk7CiAKLSAgICAgICAgaW50IGN1cnJlbnRXaWR0aCA9IHN0YXRp
Y19jYXN0PGludD4obV9zdGF0ZS0+Z2V0TG9uZyhQYWdlQWdlbnRTdGF0ZTo6c2NyZWVuV2lkdGhP
dmVycmlkZSkpOwotICAgICAgICBpbnQgY3VycmVudEhlaWdodCA9IHN0YXRpY19jYXN0PGludD4o
bV9zdGF0ZS0+Z2V0TG9uZyhQYWdlQWdlbnRTdGF0ZTo6c2NyZWVuSGVpZ2h0T3ZlcnJpZGUpKTsK
LSAgICAgICAgZG91YmxlIGN1cnJlbnRGb250U2NhbGVGYWN0b3IgPSBtX3N0YXRlLT5nZXREb3Vi
bGUoUGFnZUFnZW50U3RhdGU6OmZvbnRTY2FsZUZhY3Rvck92ZXJyaWRlKTsKLSAgICAgICAgYm9v
bCBjdXJyZW50Rml0V2luZG93ID0gbV9zdGF0ZS0+Z2V0Qm9vbGVhbihQYWdlQWdlbnRTdGF0ZTo6
Zml0V2luZG93KTsKKyAgICAgICAgaW50IGN1cnJlbnRXaWR0aCA9IHN0YXRpY19jYXN0PGludD4o
bV9zdGF0ZS0+Z2V0TG9uZyhQYWdlQWdlbnRTdGF0ZTo6cGFnZUFnZW50U2NyZWVuV2lkdGhPdmVy
cmlkZSkpOworICAgICAgICBpbnQgY3VycmVudEhlaWdodCA9IHN0YXRpY19jYXN0PGludD4obV9z
dGF0ZS0+Z2V0TG9uZyhQYWdlQWdlbnRTdGF0ZTo6cGFnZUFnZW50U2NyZWVuSGVpZ2h0T3ZlcnJp
ZGUpKTsKKyAgICAgICAgZG91YmxlIGN1cnJlbnRGb250U2NhbGVGYWN0b3IgPSBtX3N0YXRlLT5n
ZXREb3VibGUoUGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2VudEZvbnRTY2FsZUZhY3Rvck92ZXJyaWRl
KTsKKyAgICAgICAgYm9vbCBjdXJyZW50Rml0V2luZG93ID0gbV9zdGF0ZS0+Z2V0Qm9vbGVhbihQ
YWdlQWdlbnRTdGF0ZTo6cGFnZUFnZW50Rml0V2luZG93KTsKICAgICAgICAgdXBkYXRlVmlld01l
dHJpY3MoY3VycmVudFdpZHRoLCBjdXJyZW50SGVpZ2h0LCBjdXJyZW50Rm9udFNjYWxlRmFjdG9y
LCBjdXJyZW50Rml0V2luZG93KTsKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgICAgICB1
cGRhdGVUb3VjaEV2ZW50RW11bGF0aW9uSW5QYWdlKG1fc3RhdGUtPmdldEJvb2xlYW4oUGFnZUFn
ZW50U3RhdGU6OnRvdWNoRXZlbnRFbXVsYXRpb25FbmFibGVkKSk7CkBAIC0zODAsMjEgKzM4MCwy
MSBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6cmVzdG9yZSgpCiAKIHZvaWQgSW5zcGVjdG9y
UGFnZUFnZW50Ojp3ZWJWaWV3UmVzaXplZChjb25zdCBJbnRTaXplJiBzaXplKQogewotICAgIGlu
dCBjdXJyZW50V2lkdGggPSBzdGF0aWNfY2FzdDxpbnQ+KG1fc3RhdGUtPmdldExvbmcoUGFnZUFn
ZW50U3RhdGU6OnNjcmVlbldpZHRoT3ZlcnJpZGUpKTsKKyAgICBpbnQgY3VycmVudFdpZHRoID0g
c3RhdGljX2Nhc3Q8aW50PihtX3N0YXRlLT5nZXRMb25nKFBhZ2VBZ2VudFN0YXRlOjpwYWdlQWdl
bnRTY3JlZW5XaWR0aE92ZXJyaWRlKSk7CiAgICAgbV9vdmVybGF5LT5yZXNpemUoY3VycmVudFdp
ZHRoID8gc2l6ZSA6IEludFNpemUoKSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50Ojpl
bmFibGUoRXJyb3JTdHJpbmcqKQogewogICAgIG1fZW5hYmxlZCA9IHRydWU7Ci0gICAgbV9zdGF0
ZS0+c2V0Qm9vbGVhbihQYWdlQWdlbnRTdGF0ZTo6ZW5hYmxlZCwgdHJ1ZSk7CisgICAgbV9zdGF0
ZS0+c2V0Qm9vbGVhbihQYWdlQWdlbnRTdGF0ZTo6cGFnZUFnZW50RW5hYmxlZCwgdHJ1ZSk7CiAg
ICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JQYWdlQWdlbnQodGhpcyk7CiB9
CiAKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nKikKIHsKICAg
ICBtX2VuYWJsZWQgPSBmYWxzZTsKLSAgICBtX3N0YXRlLT5zZXRCb29sZWFuKFBhZ2VBZ2VudFN0
YXRlOjplbmFibGVkLCBmYWxzZSk7CisgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihQYWdlQWdlbnRT
dGF0ZTo6cGFnZUFnZW50RW5hYmxlZCwgZmFsc2UpOwogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50
cy0+c2V0SW5zcGVjdG9yUGFnZUFnZW50KDApOwogCiAgICAgc2V0U2NyaXB0RXhlY3V0aW9uRGlz
YWJsZWQoMCwgZmFsc2UpOwpAQCAtNDAzLDE5ICs0MDMsMjIgQEAgdm9pZCBJbnNwZWN0b3JQYWdl
QWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcqKQogICAgIHNldEVtdWxhdGVkTWVkaWEoMCwgIiIp
OwogCiAgICAgLy8gV2hlbiBkaXNhYmxpbmcgdGhlIGFnZW50LCByZXNldCB0aGUgb3ZlcnJpZGUg
dmFsdWVzLgotICAgIG1fc3RhdGUtPnJlbW92ZShQYWdlQWdlbnRTdGF0ZTo6c2NyZWVuV2lkdGhP
dmVycmlkZSk7Ci0gICAgbV9zdGF0ZS0+cmVtb3ZlKFBhZ2VBZ2VudFN0YXRlOjpzY3JlZW5IZWln
aHRPdmVycmlkZSk7Ci0gICAgbV9zdGF0ZS0+cmVtb3ZlKFBhZ2VBZ2VudFN0YXRlOjpmb250U2Nh
bGVGYWN0b3JPdmVycmlkZSk7Ci0gICAgbV9zdGF0ZS0+cmVtb3ZlKFBhZ2VBZ2VudFN0YXRlOjpm
aXRXaW5kb3cpOwotICAgIG1fc3RhdGUtPnJlbW92ZShQYWdlQWdlbnRTdGF0ZTo6c2NyaXB0c1Rv
RXZhbHVhdGVPbkxvYWQpOworICAgIG1fc3RhdGUtPnNldExvbmcoUGFnZUFnZW50U3RhdGU6OnBh
Z2VBZ2VudFNjcmVlbldpZHRoT3ZlcnJpZGUsIDApOworICAgIG1fc3RhdGUtPnNldExvbmcoUGFn
ZUFnZW50U3RhdGU6OnBhZ2VBZ2VudFNjcmVlbkhlaWdodE92ZXJyaWRlLCAwKTsKKyAgICBtX3N0
YXRlLT5zZXREb3VibGUoUGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2VudEZvbnRTY2FsZUZhY3Rvck92
ZXJyaWRlLCAxKTsKKyAgICBtX3N0YXRlLT5zZXRCb29sZWFuKFBhZ2VBZ2VudFN0YXRlOjpwYWdl
QWdlbnRGaXRXaW5kb3csIGZhbHNlKTsKKyAgICBtX3N0YXRlLT5yZW1vdmUoUGFnZUFnZW50U3Rh
dGU6OnBhZ2VBZ2VudFNjcmlwdHNUb0V2YWx1YXRlT25Mb2FkKTsKICAgICB1cGRhdGVWaWV3TWV0
cmljcygwLCAwLCAxLCBmYWxzZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjphZGRT
Y3JpcHRUb0V2YWx1YXRlT25Mb2FkKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzb3VyY2Us
IFN0cmluZyogaWRlbnRpZmllcikKIHsKLSAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBzY3Jp
cHRzID0gbV9zdGF0ZS0+Z2V0T2JqZWN0KFBhZ2VBZ2VudFN0YXRlOjpzY3JpcHRzVG9FdmFsdWF0
ZU9uTG9hZCk7Ci0KLSAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3Qgb3ZlcnJpZGUgZXhpc3Rpbmcg
aWRzIC0tIG1fbGFzdFNjcmlwdElkZW50aWZpZXIgY291bGQgZ2V0IG91dCBvZiBzeW5jIFdSVCBh
Y3R1YWwKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBzY3JpcHRzID0gbV9zdGF0ZS0+Z2V0
T2JqZWN0KFBhZ2VBZ2VudFN0YXRlOjpwYWdlQWdlbnRTY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZCk7
CisgICAgaWYgKCFzY3JpcHRzKSB7CisgICAgICAgIHNjcmlwdHMgPSBJbnNwZWN0b3JPYmplY3Q6
OmNyZWF0ZSgpOworICAgICAgICBtX3N0YXRlLT5zZXRPYmplY3QoUGFnZUFnZW50U3RhdGU6OnBh
Z2VBZ2VudFNjcmlwdHNUb0V2YWx1YXRlT25Mb2FkLCBzY3JpcHRzKTsKKyAgICB9CisgICAgLy8g
QXNzdXJlIHdlIGRvbid0IG92ZXJyaWRlIGV4aXN0aW5nIGlkcyAtLSBtX2xhc3RTY3JpcHRJZGVu
dGlmaWVyIGNvdWxkIGdldCBvdXQgb2Ygc3luYyBXUlQgYWN0dWFsCiAgICAgLy8gc2NyaXB0cyBv
bmNlIHdlIHJlc3RvcmVkIHRoZSBzY3JpcHRzIGZyb20gdGhlIGNvb2tpZSBkdXJpbmcgbmF2aWdh
dGlvbi4KICAgICBkbyB7CiAgICAgICAgICppZGVudGlmaWVyID0gU3RyaW5nOjpudW1iZXIoKytt
X2xhc3RTY3JpcHRJZGVudGlmaWVyKTsKQEAgLTQyNSw3ICs0MjgsNyBAQCB2b2lkIEluc3BlY3Rv
clBhZ2VBZ2VudDo6YWRkU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZChFcnJvclN0cmluZyosIGNvbnN0
IFN0cmluZyYgcwogCiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6cmVtb3ZlU2NyaXB0VG9FdmFs
dWF0ZU9uTG9hZChFcnJvclN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikK
IHsKLSAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBzY3JpcHRzID0gbV9zdGF0ZS0+Z2V0T2Jq
ZWN0KFBhZ2VBZ2VudFN0YXRlOjpzY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZCk7CisgICAgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gc2NyaXB0cyA9IG1fc3RhdGUtPmdldE9iamVjdChQYWdlQWdlbnRT
dGF0ZTo6cGFnZUFnZW50U2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQpOwogICAgIGlmICghc2NyaXB0
cyB8fCBzY3JpcHRzLT5maW5kKGlkZW50aWZpZXIpID09IHNjcmlwdHMtPmVuZCgpKSB7CiAgICAg
ICAgICplcnJvciA9ICJTY3JpcHQgbm90IGZvdW5kIjsKICAgICAgICAgcmV0dXJuOwpAQCAtNzEz
LDI1ICs3MTYsMjUgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OnNldERldmljZU1ldHJpY3NP
dmVycmlkZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludAogICAgIH0KIAogICAgIC8vIFRo
ZXNlIHR3byBhbHdheXMgZml0IGFuIGludC4KLSAgICBpbnQgY3VycmVudFdpZHRoID0gc3RhdGlj
X2Nhc3Q8aW50PihtX3N0YXRlLT5nZXRMb25nKFBhZ2VBZ2VudFN0YXRlOjpzY3JlZW5XaWR0aE92
ZXJyaWRlKSk7Ci0gICAgaW50IGN1cnJlbnRIZWlnaHQgPSBzdGF0aWNfY2FzdDxpbnQ+KG1fc3Rh
dGUtPmdldExvbmcoUGFnZUFnZW50U3RhdGU6OnNjcmVlbkhlaWdodE92ZXJyaWRlKSk7Ci0gICAg
ZG91YmxlIGN1cnJlbnRGb250U2NhbGVGYWN0b3IgPSBtX3N0YXRlLT5nZXREb3VibGUoUGFnZUFn
ZW50U3RhdGU6OmZvbnRTY2FsZUZhY3Rvck92ZXJyaWRlKTsKLSAgICBib29sIGN1cnJlbnRGaXRX
aW5kb3cgPSBtX3N0YXRlLT5nZXRCb29sZWFuKFBhZ2VBZ2VudFN0YXRlOjpmaXRXaW5kb3cpOwor
ICAgIGludCBjdXJyZW50V2lkdGggPSBzdGF0aWNfY2FzdDxpbnQ+KG1fc3RhdGUtPmdldExvbmco
UGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2VudFNjcmVlbldpZHRoT3ZlcnJpZGUpKTsKKyAgICBpbnQg
Y3VycmVudEhlaWdodCA9IHN0YXRpY19jYXN0PGludD4obV9zdGF0ZS0+Z2V0TG9uZyhQYWdlQWdl
bnRTdGF0ZTo6cGFnZUFnZW50U2NyZWVuSGVpZ2h0T3ZlcnJpZGUpKTsKKyAgICBkb3VibGUgY3Vy
cmVudEZvbnRTY2FsZUZhY3RvciA9IG1fc3RhdGUtPmdldERvdWJsZShQYWdlQWdlbnRTdGF0ZTo6
cGFnZUFnZW50Rm9udFNjYWxlRmFjdG9yT3ZlcnJpZGUpOworICAgIGJvb2wgY3VycmVudEZpdFdp
bmRvdyA9IG1fc3RhdGUtPmdldEJvb2xlYW4oUGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2VudEZpdFdp
bmRvdyk7CiAKICAgICBpZiAod2lkdGggPT0gY3VycmVudFdpZHRoICYmIGhlaWdodCA9PSBjdXJy
ZW50SGVpZ2h0ICYmIGZvbnRTY2FsZUZhY3RvciA9PSBjdXJyZW50Rm9udFNjYWxlRmFjdG9yICYm
IGZpdFdpbmRvdyA9PSBjdXJyZW50Rml0V2luZG93KQogICAgICAgICByZXR1cm47CiAKLSAgICBt
X3N0YXRlLT5zZXRMb25nKFBhZ2VBZ2VudFN0YXRlOjpzY3JlZW5XaWR0aE92ZXJyaWRlLCB3aWR0
aCk7Ci0gICAgbV9zdGF0ZS0+c2V0TG9uZyhQYWdlQWdlbnRTdGF0ZTo6c2NyZWVuSGVpZ2h0T3Zl
cnJpZGUsIGhlaWdodCk7Ci0gICAgbV9zdGF0ZS0+c2V0RG91YmxlKFBhZ2VBZ2VudFN0YXRlOjpm
b250U2NhbGVGYWN0b3JPdmVycmlkZSwgZm9udFNjYWxlRmFjdG9yKTsKLSAgICBtX3N0YXRlLT5z
ZXRCb29sZWFuKFBhZ2VBZ2VudFN0YXRlOjpmaXRXaW5kb3csIGZpdFdpbmRvdyk7CisgICAgbV9z
dGF0ZS0+c2V0TG9uZyhQYWdlQWdlbnRTdGF0ZTo6cGFnZUFnZW50U2NyZWVuV2lkdGhPdmVycmlk
ZSwgd2lkdGgpOworICAgIG1fc3RhdGUtPnNldExvbmcoUGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2Vu
dFNjcmVlbkhlaWdodE92ZXJyaWRlLCBoZWlnaHQpOworICAgIG1fc3RhdGUtPnNldERvdWJsZShQ
YWdlQWdlbnRTdGF0ZTo6cGFnZUFnZW50Rm9udFNjYWxlRmFjdG9yT3ZlcnJpZGUsIGZvbnRTY2Fs
ZUZhY3Rvcik7CisgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihQYWdlQWdlbnRTdGF0ZTo6cGFnZUFn
ZW50Rml0V2luZG93LCBmaXRXaW5kb3cpOwogCiAgICAgdXBkYXRlVmlld01ldHJpY3Mod2lkdGgs
IGhlaWdodCwgZm9udFNjYWxlRmFjdG9yLCBmaXRXaW5kb3cpOwogfQogCiB2b2lkIEluc3BlY3Rv
clBhZ2VBZ2VudDo6c2V0U2hvd1BhaW50UmVjdHMoRXJyb3JTdHJpbmcqLCBib29sIHNob3cpCiB7
Ci0gICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihQYWdlQWdlbnRTdGF0ZTo6c2hvd1BhaW50UmVjdHMs
IHNob3cpOworICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oUGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2Vu
dFNob3dQYWludFJlY3RzLCBzaG93KTsKICAgICBtX2NsaWVudC0+c2V0U2hvd1BhaW50UmVjdHMo
c2hvdyk7CiAKICAgICBpZiAoIXNob3cgJiYgbWFpbkZyYW1lKCkgJiYgbWFpbkZyYW1lKCktPnZp
ZXcoKSkKQEAgLTc0NSw3ICs3NDgsNyBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6Y2FuU2hv
d0ZQU0NvdW50ZXIoRXJyb3JTdHJpbmcqLCBib29sKiBvdXRQYXJhbSkKIAogdm9pZCBJbnNwZWN0
b3JQYWdlQWdlbnQ6OnNldFNob3dGUFNDb3VudGVyKEVycm9yU3RyaW5nKiwgYm9vbCBzaG93KQog
ewotICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oUGFnZUFnZW50U3RhdGU6OnNob3dGUFNDb3VudGVy
LCBzaG93KTsKKyAgICBtX3N0YXRlLT5zZXRCb29sZWFuKFBhZ2VBZ2VudFN0YXRlOjpwYWdlQWdl
bnRTaG93RlBTQ291bnRlciwgc2hvdyk7CiAgICAgbV9jbGllbnQtPnNldFNob3dGUFNDb3VudGVy
KHNob3cpOwogCiAgICAgaWYgKG1haW5GcmFtZSgpICYmIG1haW5GcmFtZSgpLT52aWV3KCkpCkBA
IC03NzYsNyArNzc5LDcgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmdldFNjcmlwdEV4ZWN1
dGlvblN0YXR1cyhFcnJvclN0cmluZyosIFBhZ2VDb21tYW5kSGFuZGwKIAogdm9pZCBJbnNwZWN0
b3JQYWdlQWdlbnQ6OnNldFNjcmlwdEV4ZWN1dGlvbkRpc2FibGVkKEVycm9yU3RyaW5nKiwgYm9v
bCB2YWx1ZSkKIHsKLSAgICBtX3N0YXRlLT5zZXRCb29sZWFuKFBhZ2VBZ2VudFN0YXRlOjpzY3Jp
cHRFeGVjdXRpb25EaXNhYmxlZCwgdmFsdWUpOworICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oUGFn
ZUFnZW50U3RhdGU6OnBhZ2VBZ2VudFNjcmlwdEV4ZWN1dGlvbkRpc2FibGVkLCB2YWx1ZSk7CiAg
ICAgaWYgKCFtYWluRnJhbWUoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC03OTYsNyArNzk5LDcg
QEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpZENsZWFyV2luZG93T2JqZWN0SW5Xb3JsZChG
cmFtZSogZnJhbWUsIERPTVdyYXBwZXJXb3IKICAgICBpZiAoIW1fZnJvbnRlbmQpCiAgICAgICAg
IHJldHVybjsKIAotICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHNjcmlwdHMgPSBtX3N0YXRl
LT5nZXRPYmplY3QoUGFnZUFnZW50U3RhdGU6OnNjcmlwdHNUb0V2YWx1YXRlT25Mb2FkKTsKKyAg
ICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBzY3JpcHRzID0gbV9zdGF0ZS0+Z2V0T2JqZWN0KFBh
Z2VBZ2VudFN0YXRlOjpwYWdlQWdlbnRTY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZCk7CiAgICAgaWYg
KHNjcmlwdHMpIHsKICAgICAgICAgSW5zcGVjdG9yT2JqZWN0Ojpjb25zdF9pdGVyYXRvciBlbmQg
PSBzY3JpcHRzLT5lbmQoKTsKICAgICAgICAgZm9yIChJbnNwZWN0b3JPYmplY3Q6OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gc2NyaXB0cy0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CkBAIC05MDUs
MjEgKzkwOCwyMSBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6bG9hZGVyRGV0YWNoZWRGcm9t
RnJhbWUoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKIAogdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6
OmFwcGx5U2NyZWVuV2lkdGhPdmVycmlkZShsb25nKiB3aWR0aCkKIHsKLSAgICBsb25nIHdpZHRo
T3ZlcnJpZGUgPSBtX3N0YXRlLT5nZXRMb25nKFBhZ2VBZ2VudFN0YXRlOjpzY3JlZW5XaWR0aE92
ZXJyaWRlKTsKKyAgICBsb25nIHdpZHRoT3ZlcnJpZGUgPSBtX3N0YXRlLT5nZXRMb25nKFBhZ2VB
Z2VudFN0YXRlOjpwYWdlQWdlbnRTY3JlZW5XaWR0aE92ZXJyaWRlKTsKICAgICBpZiAod2lkdGhP
dmVycmlkZSkKICAgICAgICAgKndpZHRoID0gd2lkdGhPdmVycmlkZTsKIH0KIAogdm9pZCBJbnNw
ZWN0b3JQYWdlQWdlbnQ6OmFwcGx5U2NyZWVuSGVpZ2h0T3ZlcnJpZGUobG9uZyogaGVpZ2h0KQog
ewotICAgIGxvbmcgaGVpZ2h0T3ZlcnJpZGUgPSBtX3N0YXRlLT5nZXRMb25nKFBhZ2VBZ2VudFN0
YXRlOjpzY3JlZW5IZWlnaHRPdmVycmlkZSk7CisgICAgbG9uZyBoZWlnaHRPdmVycmlkZSA9IG1f
c3RhdGUtPmdldExvbmcoUGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2VudFNjcmVlbkhlaWdodE92ZXJy
aWRlKTsKICAgICBpZiAoaGVpZ2h0T3ZlcnJpZGUpCiAgICAgICAgICpoZWlnaHQgPSBoZWlnaHRP
dmVycmlkZTsKIH0KIAogdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpZFBhaW50KEdyYXBoaWNz
Q29udGV4dCogY29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYgcmVjdCkKIHsKLSAgICBpZiAoIW1f
ZW5hYmxlZCB8fCBtX2NsaWVudC0+b3ZlcnJpZGVzU2hvd1BhaW50UmVjdHMoKSB8fCAhbV9zdGF0
ZS0+Z2V0Qm9vbGVhbihQYWdlQWdlbnRTdGF0ZTo6c2hvd1BhaW50UmVjdHMpKQorICAgIGlmICgh
bV9lbmFibGVkIHx8IG1fY2xpZW50LT5vdmVycmlkZXNTaG93UGFpbnRSZWN0cygpIHx8ICFtX3N0
YXRlLT5nZXRCb29sZWFuKFBhZ2VBZ2VudFN0YXRlOjpwYWdlQWdlbnRTaG93UGFpbnRSZWN0cykp
CiAgICAgICAgIHJldHVybjsKIAogICAgIHN0YXRpYyBpbnQgY29sb3JTZWxlY3RvciA9IDA7CkBA
IC05NDQsOCArOTQ3LDggQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpZExheW91dCgpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGlmIChpc0ZpcnN0TGF5b3V0KSB7Ci0gICAgICAgIGludCBj
dXJyZW50V2lkdGggPSBzdGF0aWNfY2FzdDxpbnQ+KG1fc3RhdGUtPmdldExvbmcoUGFnZUFnZW50
U3RhdGU6OnNjcmVlbldpZHRoT3ZlcnJpZGUpKTsKLSAgICAgICAgaW50IGN1cnJlbnRIZWlnaHQg
PSBzdGF0aWNfY2FzdDxpbnQ+KG1fc3RhdGUtPmdldExvbmcoUGFnZUFnZW50U3RhdGU6OnNjcmVl
bkhlaWdodE92ZXJyaWRlKSk7CisgICAgICAgIGludCBjdXJyZW50V2lkdGggPSBzdGF0aWNfY2Fz
dDxpbnQ+KG1fc3RhdGUtPmdldExvbmcoUGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2VudFNjcmVlbldp
ZHRoT3ZlcnJpZGUpKTsKKyAgICAgICAgaW50IGN1cnJlbnRIZWlnaHQgPSBzdGF0aWNfY2FzdDxp
bnQ+KG1fc3RhdGUtPmdldExvbmcoUGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2VudFNjcmVlbkhlaWdo
dE92ZXJyaWRlKSk7CiAKICAgICAgICAgaWYgKGN1cnJlbnRXaWR0aCAmJiBjdXJyZW50SGVpZ2h0
KQogICAgICAgICAgICAgbV9jbGllbnQtPmF1dG9ab29tUGFnZVRvRml0V2lkdGgoKTsKQEAgLTEx
NTQsMTEgKzExNTcsMTEgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OnNldFRvdWNoRW11bGF0
aW9uRW5hYmxlZChFcnJvclN0cmluZyogZXJyb3IsIGJvb2wgZW5hYmwKIAogdm9pZCBJbnNwZWN0
b3JQYWdlQWdlbnQ6OnNldEVtdWxhdGVkTWVkaWEoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcm
IG1lZGlhKQogewotICAgIFN0cmluZyBjdXJyZW50TWVkaWEgPSBtX3N0YXRlLT5nZXRTdHJpbmco
UGFnZUFnZW50U3RhdGU6OmVtdWxhdGVkTWVkaWEpOworICAgIFN0cmluZyBjdXJyZW50TWVkaWEg
PSBtX3N0YXRlLT5nZXRTdHJpbmcoUGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2VudEVtdWxhdGVkTWVk
aWEpOwogICAgIGlmIChtZWRpYSA9PSBjdXJyZW50TWVkaWEpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIG1fc3RhdGUtPnNldFN0cmluZyhQYWdlQWdlbnRTdGF0ZTo6ZW11bGF0ZWRNZWRpYSwgbWVk
aWEpOworICAgIG1fc3RhdGUtPnNldFN0cmluZyhQYWdlQWdlbnRTdGF0ZTo6cGFnZUFnZW50RW11
bGF0ZWRNZWRpYSwgbWVkaWEpOwogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IDA7CiAgICAgaWYg
KG1fcGFnZS0+bWFpbkZyYW1lKCkpCiAgICAgICAgIGRvY3VtZW50ID0gbV9wYWdlLT5tYWluRnJh
bWUoKS0+ZG9jdW1lbnQoKTsKQEAgLTExNzAsNyArMTE3Myw3IEBAIHZvaWQgSW5zcGVjdG9yUGFn
ZUFnZW50OjpzZXRFbXVsYXRlZE1lZGlhKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBtZWRp
YSkKIAogdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmFwcGx5RW11bGF0ZWRNZWRpYShTdHJpbmcq
IG1lZGlhKQogewotICAgIFN0cmluZyBlbXVsYXRlZE1lZGlhID0gbV9zdGF0ZS0+Z2V0U3RyaW5n
KFBhZ2VBZ2VudFN0YXRlOjplbXVsYXRlZE1lZGlhKTsKKyAgICBTdHJpbmcgZW11bGF0ZWRNZWRp
YSA9IG1fc3RhdGUtPmdldFN0cmluZyhQYWdlQWdlbnRTdGF0ZTo6cGFnZUFnZW50RW11bGF0ZWRN
ZWRpYSk7CiAgICAgaWYgKCFlbXVsYXRlZE1lZGlhLmlzRW1wdHkoKSkKICAgICAgICAgKm1lZGlh
ID0gZW11bGF0ZWRNZWRpYTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAppbmRleCAxODEyMjIyZjU2MzViNDMyMTUwNzJmN2Mx
NWUzMzhhMGM1YzliMTg2Li5hM2FlYzlhYTVmMWZlMmJhZjU4OTM4NjcwODYwZWQ0NDljYmU0ZjMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VB
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNl
QWdlbnQuY3BwCkBAIC03OCw3ICs3OCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVz
cGFjZSBSZXNvdXJjZUFnZW50U3RhdGUgewotc3RhdGljIGNvbnN0IGNoYXIgZW5hYmxlZFtdID0g
ImVuYWJsZWQiOworc3RhdGljIGNvbnN0IGNoYXIgcmVzb3VyY2VBZ2VudEVuYWJsZWRbXSA9ICJy
ZXNvdXJjZUFnZW50RW5hYmxlZCI7CiBzdGF0aWMgY29uc3QgY2hhciBleHRyYVJlcXVlc3RIZWFk
ZXJzW10gPSAiZXh0cmFSZXF1ZXN0SGVhZGVycyI7CiBzdGF0aWMgY29uc3QgY2hhciBjYWNoZURp
c2FibGVkW10gPSAiY2FjaGVEaXNhYmxlZCI7CiBzdGF0aWMgY29uc3QgY2hhciB1c2VyQWdlbnRP
dmVycmlkZVtdID0gInVzZXJBZ2VudE92ZXJyaWRlIjsKQEAgLTk4LDcgKzk4LDcgQEAgdm9pZCBJ
bnNwZWN0b3JSZXNvdXJjZUFnZW50OjpjbGVhckZyb250ZW5kKCkKIAogdm9pZCBJbnNwZWN0b3JS
ZXNvdXJjZUFnZW50OjpyZXN0b3JlKCkKIHsKLSAgICBpZiAobV9zdGF0ZS0+Z2V0Qm9vbGVhbihS
ZXNvdXJjZUFnZW50U3RhdGU6OmVuYWJsZWQpKQorICAgIGlmIChtX3N0YXRlLT5nZXRCb29sZWFu
KFJlc291cmNlQWdlbnRTdGF0ZTo6cmVzb3VyY2VBZ2VudEVuYWJsZWQpKQogICAgICAgICBlbmFi
bGUoKTsKIH0KIApAQCAtMjAwLDcgKzIwMCw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPFR5cGVCdWls
ZGVyOjpOZXR3b3JrOjpDYWNoZWRSZXNvdXJjZT4gYnVpbGRPYmplY3RGb3JDYWNoZWRSZXNvCiAK
IEluc3BlY3RvclJlc291cmNlQWdlbnQ6On5JbnNwZWN0b3JSZXNvdXJjZUFnZW50KCkKIHsKLSAg
ICBpZiAobV9zdGF0ZS0+Z2V0Qm9vbGVhbihSZXNvdXJjZUFnZW50U3RhdGU6OmVuYWJsZWQpKSB7
CisgICAgaWYgKG1fc3RhdGUtPmdldEJvb2xlYW4oUmVzb3VyY2VBZ2VudFN0YXRlOjpyZXNvdXJj
ZUFnZW50RW5hYmxlZCkpIHsKICAgICAgICAgRXJyb3JTdHJpbmcgZXJyb3I7CiAgICAgICAgIGRp
c2FibGUoJmVycm9yKTsKICAgICB9CkBAIC01NjEsMTQgKzU2MSwxNCBAQCB2b2lkIEluc3BlY3Rv
clJlc291cmNlQWdlbnQ6OmVuYWJsZSgpCiB7CiAgICAgaWYgKCFtX2Zyb250ZW5kKQogICAgICAg
ICByZXR1cm47Ci0gICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihSZXNvdXJjZUFnZW50U3RhdGU6OmVu
YWJsZWQsIHRydWUpOworICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oUmVzb3VyY2VBZ2VudFN0YXRl
OjpyZXNvdXJjZUFnZW50RW5hYmxlZCwgdHJ1ZSk7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRz
LT5zZXRJbnNwZWN0b3JSZXNvdXJjZUFnZW50KHRoaXMpOwogfQogCiB2b2lkIEluc3BlY3RvclJl
c291cmNlQWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcqKQogewotICAgIG1fc3RhdGUtPnNldEJv
b2xlYW4oUmVzb3VyY2VBZ2VudFN0YXRlOjplbmFibGVkLCBmYWxzZSk7Ci0gICAgbV9zdGF0ZS0+
cmVtb3ZlKFJlc291cmNlQWdlbnRTdGF0ZTo6dXNlckFnZW50T3ZlcnJpZGUpOworICAgIG1fc3Rh
dGUtPnNldEJvb2xlYW4oUmVzb3VyY2VBZ2VudFN0YXRlOjpyZXNvdXJjZUFnZW50RW5hYmxlZCwg
ZmFsc2UpOworICAgIG1fc3RhdGUtPnNldFN0cmluZyhSZXNvdXJjZUFnZW50U3RhdGU6OnVzZXJB
Z2VudE92ZXJyaWRlLCAiIik7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0
b3JSZXNvdXJjZUFnZW50KDApOwogICAgIG1fcmVzb3VyY2VzRGF0YS0+Y2xlYXIoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdGF0ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3RhdGUuY3BwCmluZGV4IGI5OGRlNTdi
ZGY0MDk4ZDU1MjZkNDMzYzAzNmI5M2MzNjg2NTU1MWMuLjY3NWQ0OTlkMWY1ZDI2ZWQxZDI3NDc2
NDcxNWZhZTNjMjY2ZmI1NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clN0YXRlLmNwcApAQCAtMzYsMjEgKzM2LDM3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
SW5zcGVjdG9yU3RhdGU6Okluc3BlY3RvclN0YXRlKEluc3BlY3RvclN0YXRlVXBkYXRlTGlzdGVu
ZXIqIGxpc3RlbmVyLCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcHJvcGVydGllcykKLSAg
ICA6IG1fbGlzdGVuZXIobGlzdGVuZXIpCi0gICAgLCBtX3Byb3BlcnRpZXMocHJvcGVydGllcykK
K0luc3BlY3RvclN0YXRlOjpJbnNwZWN0b3JTdGF0ZShJbnNwZWN0b3JTdGF0ZUNsaWVudCogY2xp
ZW50KQorICAgIDogbV9jbGllbnQoY2xpZW50KQorICAgICwgbV9wcm9wZXJ0aWVzKEluc3BlY3Rv
ck9iamVjdDo6Y3JlYXRlKCkpCisgICAgLCBtX2lzT25NdXRlKGZhbHNlKQogewogfQogCi12b2lk
IEluc3BlY3RvclN0YXRlOjp1cGRhdGVDb29raWUoKQordm9pZCBJbnNwZWN0b3JTdGF0ZTo6bG9h
ZEZyb21Db29raWUoY29uc3QgU3RyaW5nJiBpbnNwZWN0b3JTdGF0ZUNvb2tpZSkKK3sKKyAgICBt
X3Byb3BlcnRpZXMuY2xlYXIoKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IGNvb2tpZSA9
IEluc3BlY3RvclZhbHVlOjpwYXJzZUpTT04oaW5zcGVjdG9yU3RhdGVDb29raWUpOworICAgIGlm
IChjb29raWUpCisgICAgICAgIG1fcHJvcGVydGllcyA9IGNvb2tpZS0+YXNPYmplY3QoKTsKKyAg
ICBpZiAoIW1fcHJvcGVydGllcykKKyAgICAgICAgbV9wcm9wZXJ0aWVzID0gSW5zcGVjdG9yT2Jq
ZWN0OjpjcmVhdGUoKTsKK30KKwordm9pZCBJbnNwZWN0b3JTdGF0ZTo6bXV0ZSgpCiB7Ci0gICAg
aWYgKG1fbGlzdGVuZXIpCi0gICAgICAgIG1fbGlzdGVuZXItPmluc3BlY3RvclN0YXRlVXBkYXRl
ZCgpOworICAgIG1faXNPbk11dGUgPSB0cnVlOwogfQogCi12b2lkIEluc3BlY3RvclN0YXRlOjpz
ZXRGcm9tQ29va2llKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBwcm9wZXJ0aWVzKQordm9p
ZCBJbnNwZWN0b3JTdGF0ZTo6dW5tdXRlKCkKIHsKLSAgICBtX3Byb3BlcnRpZXMgPSBwcm9wZXJ0
aWVzOworICAgIG1faXNPbk11dGUgPSBmYWxzZTsKK30KKwordm9pZCBJbnNwZWN0b3JTdGF0ZTo6
dXBkYXRlQ29va2llKCkKK3sKKyAgICBpZiAobV9jbGllbnQgJiYgIW1faXNPbk11dGUgJiYgbV9j
bGllbnQtPnN1cHBvcnRzSW5zcGVjdG9yU3RhdGVVcGRhdGVzKCkpCisgICAgICAgIG1fY2xpZW50
LT51cGRhdGVJbnNwZWN0b3JTdGF0ZUNvb2tpZShtX3Byb3BlcnRpZXMtPnRvSlNPTlN0cmluZygp
KTsKIH0KIAogdm9pZCBJbnNwZWN0b3JTdGF0ZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9w
ZXJ0eU5hbWUsIFBhc3NSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IHZhbHVlKQpAQCAtNjIsNyArNzgs
NiBAQCB2b2lkIEluc3BlY3RvclN0YXRlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHByb3BlcnR5
TmFtZSwgUGFzc1JlZlB0cjxJbnNwZWN0b3JWYQogdm9pZCBJbnNwZWN0b3JTdGF0ZTo6cmVtb3Zl
KGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKQogewogICAgIG1fcHJvcGVydGllcy0+cmVtb3Zl
KHByb3BlcnR5TmFtZSk7Ci0gICAgdXBkYXRlQ29va2llKCk7CiB9CiAKIGJvb2wgSW5zcGVjdG9y
U3RhdGU6OmdldEJvb2xlYW4oY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpCkBAIC0xMTEsNTEg
KzEyNiw2IEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBJbnNwZWN0b3JTdGF0ZTo6Z2V0
T2JqZWN0KGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lCiAgICAgcmV0dXJuIGl0LT52YWx1ZS0+
YXNPYmplY3QoKTsKIH0KIAotSW5zcGVjdG9yU3RhdGUqIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRl
OjpjcmVhdGVBZ2VudFN0YXRlKCkKLXsKLSAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBzdGF0
ZVByb3BlcnRpZXMgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwotICAgIG1fc3RhdGVBcnJh
eS0+cHVzaE9iamVjdChzdGF0ZVByb3BlcnRpZXMpOwotICAgIG1fc3RhdGVzLmFwcGVuZChhZG9w
dFB0cihuZXcgSW5zcGVjdG9yU3RhdGUodGhpcywgc3RhdGVQcm9wZXJ0aWVzKSkpOwotICAgIHJl
dHVybiBtX3N0YXRlcy5sYXN0KCkuZ2V0KCk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQ29tcG9zaXRl
U3RhdGU6OmxvYWRGcm9tQ29va2llKGNvbnN0IFN0cmluZyYgaW5zcGVjdG9yQ29tcG9zaXRlU3Rh
dGVDb29raWUpCi17Ci0gICAgUmVmUHRyPEluc3BlY3RvclZhbHVlPiBjb29raWUgPSBJbnNwZWN0
b3JWYWx1ZTo6cGFyc2VKU09OKGluc3BlY3RvckNvbXBvc2l0ZVN0YXRlQ29va2llKTsKLSAgICBp
ZiAoY29va2llKQotICAgICAgICBtX3N0YXRlQXJyYXkgPSBjb29raWUtPmFzQXJyYXkoKTsKLSAg
ICBpZiAoIW1fc3RhdGVBcnJheSkgewotICAgICAgICBtX3N0YXRlQXJyYXkgPSBJbnNwZWN0b3JB
cnJheTo6Y3JlYXRlKCk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwLCBzaXplID0gbV9zdGF0
ZXMuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgICAgICBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiBzdGF0ZU9iamVjdCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgICAg
ICAgICBtX3N0YXRlQXJyYXktPnB1c2hPYmplY3Qoc3RhdGVPYmplY3QpOwotICAgICAgICB9Ci0g
ICAgfQotCi0gICAgQVNTRVJUKG1fc3RhdGVBcnJheSk7Ci0gICAgQVNTRVJUKG1fc3RhdGVBcnJh
eS0+bGVuZ3RoKCkgPT0gbV9zdGF0ZXMuc2l6ZSgpKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMCwg
c2l6ZSA9IG1fc3RhdGVzLnNpemUoKTsgaSA8IHNpemU7ICsraSkgewotICAgICAgICBSZWZQdHI8
SW5zcGVjdG9yVmFsdWU+IHN0YXRlT2JqZWN0ID0gbV9zdGF0ZUFycmF5LT5nZXQoaSk7Ci0gICAg
ICAgIG1fc3RhdGVzLmF0KGkpLT5zZXRGcm9tQ29va2llKHN0YXRlT2JqZWN0LT5hc09iamVjdCgp
KTsKLSAgICB9Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGU6Om11dGUoKQotewot
ICAgIG1faXNNdXRlZCA9IHRydWU7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGU6
OnVubXV0ZSgpCi17Ci0gICAgbV9pc011dGVkID0gZmFsc2U7Ci19Ci0KLXZvaWQgSW5zcGVjdG9y
Q29tcG9zaXRlU3RhdGU6Omluc3BlY3RvclN0YXRlVXBkYXRlZCgpCi17Ci0gICAgaWYgKG1fY2xp
ZW50ICYmICFtX2lzTXV0ZWQgJiYgbV9jbGllbnQtPnN1cHBvcnRzSW5zcGVjdG9yU3RhdGVVcGRh
dGVzKCkpCi0gICAgICAgIG1fY2xpZW50LT51cGRhdGVJbnNwZWN0b3JTdGF0ZUNvb2tpZShtX3N0
YXRlQXJyYXktPnRvSlNPTlN0cmluZygpKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclN0YXRlLmgKaW5kZXggN2ZlM2JlMTJkMzQ4ODE3ZTYzNTVlZmFhZTkwODFlNTBlMDVi
ZGFlNC4uM2RjMDkwYWJkOTUzN2NmYWI2NTA3ZTUyZTgyZmZlMjdhZWY0MWM3OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0YXRlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0YXRlLmgKQEAgLTM2LDI1ICszNiwyMyBAQAog
I2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgSW5zcGVjdG9yU3RhdGVDbGllbnQ7CiAKLWNsYXNzIEluc3BlY3RvclN0YXRlVXBkYXRlTGlz
dGVuZXIgewotcHVibGljOgotICAgIHZpcnR1YWwgfkluc3BlY3RvclN0YXRlVXBkYXRlTGlzdGVu
ZXIoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgaW5zcGVjdG9yU3RhdGVVcGRhdGVkKCkgPSAwOwot
fTsKLQogY2xhc3MgSW5zcGVjdG9yU3RhdGUgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgotICAgIEluc3BlY3RvclN0YXRlKEluc3BlY3RvclN0YXRlVXBkYXRlTGlzdGVu
ZXIqLCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4pOworICAgIEluc3BlY3RvclN0YXRlKElu
c3BlY3RvclN0YXRlQ2xpZW50Kik7CiAgICAgdmlydHVhbCB+SW5zcGVjdG9yU3RhdGUoKSB7fQog
CisgICAgdm9pZCBsb2FkRnJvbUNvb2tpZShjb25zdCBTdHJpbmcmIGluc3BlY3RvclN0YXRlQ29v
a2llKTsKKworICAgIHZvaWQgbXV0ZSgpOworICAgIHZvaWQgdW5tdXRlKCk7CisKICAgICBib29s
IGdldEJvb2xlYW4oY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpOwogICAgIFN0cmluZyBnZXRT
dHJpbmcoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpOwogICAgIGxvbmcgZ2V0TG9uZyhjb25z
dCBTdHJpbmcmIHByb3BlcnR5TmFtZSk7CkBAIC02Myw1MCArNjEsMTggQEAgcHVibGljOgogCiAg
ICAgdm9pZCBzZXRCb29sZWFuKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBib29sIHZhbHVl
KSB7IHNldFZhbHVlKHByb3BlcnR5TmFtZSwgSW5zcGVjdG9yQmFzaWNWYWx1ZTo6Y3JlYXRlKHZh
bHVlKSk7IH0KICAgICB2b2lkIHNldFN0cmluZyhjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSkgeyBzZXRWYWx1ZShwcm9wZXJ0eU5hbWUsIEluc3BlY3RvclN0
cmluZzo6Y3JlYXRlKHZhbHVlKSk7IH0KLSAgICB2b2lkIHNldExvbmcoY29uc3QgU3RyaW5nJiBw
cm9wZXJ0eU5hbWUsIGxvbmcgdmFsdWUpIHsgc2V0VmFsdWUocHJvcGVydHlOYW1lLCBJbnNwZWN0
b3JCYXNpY1ZhbHVlOjpjcmVhdGUoc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZSkpKTsgfQorICAg
IHZvaWQgc2V0TG9uZyhjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgbG9uZyB2YWx1ZSkgeyBz
ZXRWYWx1ZShwcm9wZXJ0eU5hbWUsIEluc3BlY3RvckJhc2ljVmFsdWU6OmNyZWF0ZSgoZG91Ymxl
KXZhbHVlKSk7IH0KICAgICB2b2lkIHNldERvdWJsZShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFt
ZSwgZG91YmxlIHZhbHVlKSB7IHNldFZhbHVlKHByb3BlcnR5TmFtZSwgSW5zcGVjdG9yQmFzaWNW
YWx1ZTo6Y3JlYXRlKHZhbHVlKSk7IH0KICAgICB2b2lkIHNldE9iamVjdChjb25zdCBTdHJpbmcm
IHByb3BlcnR5TmFtZSwgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHZhbHVlKSB7IHNldFZh
bHVlKHByb3BlcnR5TmFtZSwgdmFsdWUpOyB9CiAKICAgICB2b2lkIHJlbW92ZShjb25zdCBTdHJp
bmcmKTsKLQogcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUNvb2tpZSgpOwogICAgIHZvaWQgc2V0
VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIFBhc3NSZWZQdHI8SW5zcGVjdG9yVmFs
dWU+KTsKIAotICAgIC8vIFRoaXMgZ2V0cyBjYWxsZWQgZnJvbSBJbnNwZWN0b3JDb21wb3NpdGVT
dGF0ZTo6bG9hZEZyb21Db29raWUoKS4KLSAgICB2b2lkIHNldEZyb21Db29raWUoUGFzc1JlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+KTsKLQotICAgIGZyaWVuZCBjbGFzcyBJbnNwZWN0b3JDb21wb3Np
dGVTdGF0ZTsKLQotICAgIEluc3BlY3RvclN0YXRlVXBkYXRlTGlzdGVuZXIqIG1fbGlzdGVuZXI7
Ci0gICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gbV9wcm9wZXJ0aWVzOwotfTsKLQotY2xhc3Mg
SW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUgOiBwdWJsaWMgSW5zcGVjdG9yU3RhdGVVcGRhdGVMaXN0
ZW5lciB7Ci1wdWJsaWM6Ci0gICAgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUoSW5zcGVjdG9yU3Rh
dGVDbGllbnQqIGluc3BlY3RvckNsaWVudCkKLSAgICAgICAgOiBtX2NsaWVudChpbnNwZWN0b3JD
bGllbnQpCi0gICAgICAgICwgbV9zdGF0ZUFycmF5KEluc3BlY3RvckFycmF5OjpjcmVhdGUoKSkK
LSAgICAgICAgLCBtX2lzTXV0ZWQoZmFsc2UpCi0gICAgewotICAgIH0KLSAgICB2aXJ0dWFsIH5J
bnNwZWN0b3JDb21wb3NpdGVTdGF0ZSgpIHsgfQotCi0gICAgdm9pZCBtdXRlKCk7Ci0gICAgdm9p
ZCB1bm11dGUoKTsKLQotICAgIEluc3BlY3RvclN0YXRlKiBjcmVhdGVBZ2VudFN0YXRlKCk7Ci0g
ICAgdm9pZCBsb2FkRnJvbUNvb2tpZShjb25zdCBTdHJpbmcmKTsKLQotcHJpdmF0ZToKLSAgICB0
eXBlZGVmIFZlY3RvcjxPd25QdHI8SW5zcGVjdG9yU3RhdGU+ID4gSW5zcGVjdG9yU3RhdGVWZWN0
b3I7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgaW5zcGVjdG9yU3RhdGVVcGRhdGVkKCk7Ci0KICAgICBJ
bnNwZWN0b3JTdGF0ZUNsaWVudCogbV9jbGllbnQ7Ci0gICAgUmVmUHRyPEluc3BlY3RvckFycmF5
PiBtX3N0YXRlQXJyYXk7Ci0gICAgYm9vbCBtX2lzTXV0ZWQ7Ci0gICAgSW5zcGVjdG9yU3RhdGVW
ZWN0b3IgbV9zdGF0ZXM7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gbV9wcm9wZXJ0aWVz
OworICAgIGJvb2wgbV9pc09uTXV0ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNw
cAppbmRleCBlNjA1NDkzODJmZmNiZDhlYzNjYWE4MjYzNWQ1YjkwNTk0MTk4NzBiLi5mOWY5ZDE3
NWNmY2JkNmI4MjBmNDVlNjU1MjQxYzNjMTExMmY1Y2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCkBAIC01Nyw3ICs1Nyw3
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFjZSBUaW1lbGluZUFnZW50U3RhdGUg
ewotc3RhdGljIGNvbnN0IGNoYXIgZW5hYmxlZFtdID0gImVuYWJsZWQiOworc3RhdGljIGNvbnN0
IGNoYXIgdGltZWxpbmVBZ2VudEVuYWJsZWRbXSA9ICJ0aW1lbGluZUFnZW50RW5hYmxlZCI7CiBz
dGF0aWMgY29uc3QgY2hhciB0aW1lbGluZU1heENhbGxTdGFja0RlcHRoW10gPSAidGltZWxpbmVN
YXhDYWxsU3RhY2tEZXB0aCI7CiBzdGF0aWMgY29uc3QgY2hhciBpbmNsdWRlTWVtb3J5RGV0YWls
c1tdID0gImluY2x1ZGVNZW1vcnlEZXRhaWxzIjsKIH0KQEAgLTE0OSw3ICsxNDksNyBAQCB2b2lk
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmNsZWFyRnJvbnRlbmQoKQogCiB2b2lkIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OnJlc3RvcmUoKQogewotICAgIGlmIChtX3N0YXRlLT5nZXRCb29sZWFu
KFRpbWVsaW5lQWdlbnRTdGF0ZTo6ZW5hYmxlZCkpIHsKKyAgICBpZiAobV9zdGF0ZS0+Z2V0Qm9v
bGVhbihUaW1lbGluZUFnZW50U3RhdGU6OnRpbWVsaW5lQWdlbnRFbmFibGVkKSkgewogICAgICAg
ICBtX21heENhbGxTdGFja0RlcHRoID0gbV9zdGF0ZS0+Z2V0TG9uZyhUaW1lbGluZUFnZW50U3Rh
dGU6OnRpbWVsaW5lTWF4Q2FsbFN0YWNrRGVwdGgpOwogICAgICAgICBFcnJvclN0cmluZyBlcnJv
cjsKICAgICAgICAgc3RhcnQoJmVycm9yLCAmbV9tYXhDYWxsU3RhY2tEZXB0aCk7CkBAIC0xNzAs
MTIgKzE3MCwxMiBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0YXJ0KEVycm9yU3Ry
aW5nKiwgY29uc3QgaW50KiBtYXhDYWxsU3RhY2tEZXB0aCkKIAogICAgIG1faW5zdHJ1bWVudGlu
Z0FnZW50cy0+c2V0SW5zcGVjdG9yVGltZWxpbmVBZ2VudCh0aGlzKTsKICAgICBTY3JpcHRHQ0V2
ZW50OjphZGRFdmVudExpc3RlbmVyKHRoaXMpOwotICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oVGlt
ZWxpbmVBZ2VudFN0YXRlOjplbmFibGVkLCB0cnVlKTsKKyAgICBtX3N0YXRlLT5zZXRCb29sZWFu
KFRpbWVsaW5lQWdlbnRTdGF0ZTo6dGltZWxpbmVBZ2VudEVuYWJsZWQsIHRydWUpOwogfQogCiB2
b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0b3AoRXJyb3JTdHJpbmcqKQogewotICAgIGlm
ICghbV9zdGF0ZS0+Z2V0Qm9vbGVhbihUaW1lbGluZUFnZW50U3RhdGU6OmVuYWJsZWQpKQorICAg
IGlmICghbV9zdGF0ZS0+Z2V0Qm9vbGVhbihUaW1lbGluZUFnZW50U3RhdGU6OnRpbWVsaW5lQWdl
bnRFbmFibGVkKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRz
LT5zZXRJbnNwZWN0b3JUaW1lbGluZUFnZW50KDApOwpAQCAtMTg0LDcgKzE4NCw3IEBAIHZvaWQg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RvcChFcnJvclN0cmluZyopCiAgICAgY2xlYXJSZWNv
cmRTdGFjaygpOwogICAgIG1fZ2NFdmVudHMuY2xlYXIoKTsKIAotICAgIG1fc3RhdGUtPnNldEJv
b2xlYW4oVGltZWxpbmVBZ2VudFN0YXRlOjplbmFibGVkLCBmYWxzZSk7CisgICAgbV9zdGF0ZS0+
c2V0Qm9vbGVhbihUaW1lbGluZUFnZW50U3RhdGU6OnRpbWVsaW5lQWdlbnRFbmFibGVkLCBmYWxz
ZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c2V0SW5jbHVkZU1lbW9yeURl
dGFpbHMoRXJyb3JTdHJpbmcqLCBib29sIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDBjOTA2OTVl
ODFjNWZiYjk4ZWZmMWMwOTU2YTBlYmQxNTUwMGRmZTIuLmQ5YjM5MGZmNmY1M2ZhMzQwZGUwZDE5
N2ZiMDAzNmM4MjUwYjljYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9X
b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTkzLDI1ICs5MywyNSBAQCBwcml2
YXRlOgogV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxl
cihXb3JrZXJDb250ZXh0KiB3b3JrZXJDb250ZXh0KQogICAgIDogbV93b3JrZXJDb250ZXh0KHdv
cmtlckNvbnRleHQpCiAgICAgLCBtX3N0YXRlQ2xpZW50KGFkb3B0UHRyKG5ldyBXb3JrZXJTdGF0
ZUNsaWVudCh3b3JrZXJDb250ZXh0KSkpCi0gICAgLCBtX3N0YXRlKGFkb3B0UHRyKG5ldyBJbnNw
ZWN0b3JDb21wb3NpdGVTdGF0ZShtX3N0YXRlQ2xpZW50LmdldCgpKSkpCisgICAgLCBtX3N0YXRl
KGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JTdGF0ZShtX3N0YXRlQ2xpZW50LmdldCgpKSkpCiAgICAg
LCBtX2luc3RydW1lbnRpbmdBZ2VudHMoYWRvcHRQdHIobmV3IEluc3RydW1lbnRpbmdBZ2VudHMo
KSkpCiAgICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihJbmplY3RlZFNjcmlwdE1hbmFnZXI6
OmNyZWF0ZUZvcldvcmtlcigpKQogICAgICwgbV9ydW50aW1lQWdlbnQoMCkKIHsKLSAgICBPd25Q
dHI8SW5zcGVjdG9yUnVudGltZUFnZW50PiBydW50aW1lQWdlbnQgPSBXb3JrZXJSdW50aW1lQWdl
bnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUtPmNyZWF0ZUFn
ZW50U3RhdGUoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCksIHdvcmtlckNvbnRleHQp
OworICAgIE93blB0cjxJbnNwZWN0b3JSdW50aW1lQWdlbnQ+IHJ1bnRpbWVBZ2VudCA9IFdvcmtl
clJ1bnRpbWVBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0
ZS5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCksIHdvcmtlckNvbnRleHQpOwog
ICAgIG1fcnVudGltZUFnZW50ID0gcnVudGltZUFnZW50LmdldCgpOwogICAgIG1fYWdlbnRzLmFw
cGVuZChydW50aW1lQWdlbnQucmVsZWFzZSgpKTsKIAotICAgIE93blB0cjxJbnNwZWN0b3JDb25z
b2xlQWdlbnQ+IGNvbnNvbGVBZ2VudCA9IFdvcmtlckNvbnNvbGVBZ2VudDo6Y3JlYXRlKG1faW5z
dHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS0+Y3JlYXRlQWdlbnRTdGF0ZSgpLCBtX2lu
amVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSk7CisgICAgT3duUHRyPEluc3BlY3RvckNvbnNvbGVB
Z2VudD4gY29uc29sZUFnZW50ID0gV29ya2VyQ29uc29sZUFnZW50OjpjcmVhdGUobV9pbnN0cnVt
ZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdl
ci5nZXQoKSk7CiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0gICAgT3duUHRyPElu
c3BlY3RvckRlYnVnZ2VyQWdlbnQ+IGRlYnVnZ2VyQWdlbnQgPSBXb3JrZXJEZWJ1Z2dlckFnZW50
OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLT5jcmVhdGVBZ2Vu
dFN0YXRlKCksIHdvcmtlckNvbnRleHQsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKTsK
KyAgICBPd25QdHI8SW5zcGVjdG9yRGVidWdnZXJBZ2VudD4gZGVidWdnZXJBZ2VudCA9IFdvcmtl
ckRlYnVnZ2VyQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3Rh
dGUuZ2V0KCksIHdvcmtlckNvbnRleHQsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKTsK
ICAgICBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBkZWJ1Z2dlckFnZW50UHRyID0gZGVidWdnZXJB
Z2VudC5nZXQoKTsKICAgICBtX3J1bnRpbWVBZ2VudC0+c2V0U2NyaXB0RGVidWdTZXJ2ZXIoJmRl
YnVnZ2VyQWdlbnQtPnNjcmlwdERlYnVnU2VydmVyKCkpOwogICAgIG1fYWdlbnRzLmFwcGVuZChk
ZWJ1Z2dlckFnZW50LnJlbGVhc2UoKSk7CiAKLSAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9y
UHJvZmlsZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgY29uc29s
ZUFnZW50LmdldCgpLCB3b3JrZXJDb250ZXh0LCBtX3N0YXRlLT5jcmVhdGVBZ2VudFN0YXRlKCks
IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSk7CisgICAgbV9hZ2VudHMuYXBwZW5kKElu
c3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCks
IGNvbnNvbGVBZ2VudC5nZXQoKSwgd29ya2VyQ29udGV4dCwgbV9zdGF0ZS5nZXQoKSwgbV9pbmpl
Y3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkpKTsKICNlbmRpZgotICAgIG1fYWdlbnRzLmFwcGVuZChJ
bnNwZWN0b3JUaW1lbGluZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgp
LCAwLCBtX3N0YXRlLT5jcmVhdGVBZ2VudFN0YXRlKCksIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
Oldvcmtlckluc3BlY3RvciwgMCkpOworICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JUaW1l
bGluZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCAwLCBtX3N0YXRl
LmdldCgpLCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpXb3JrZXJJbnNwZWN0b3IsIDApKTsKICAg
ICBtX2FnZW50cy5hcHBlbmQoY29uc29sZUFnZW50LnJlbGVhc2UoKSk7CiAKICAgICBtX2luamVj
dGVkU2NyaXB0TWFuYWdlci0+aW5qZWN0ZWRTY3JpcHRIb3N0KCktPmluaXQoMApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgKaW5k
ZXggMTg3MzI4YzcyM2U3YTIzZTNlYzdhZjg5MjlkNzY0YzI3NTJhODQyMi4uMjFkYzcyM2ZlM2Fk
ZDA2OTExNzM1ZmQ0MjgyY2Q3YTY1NzI5MWZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC00OCw3ICs0OCw3IEBA
IGNsYXNzIEluc3BlY3RvckZyb250ZW5kOwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVs
OwogY2xhc3MgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOwogY2xhc3MgSW5zcGVjdG9yUnVudGlt
ZUFnZW50OwotY2xhc3MgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGU7CitjbGFzcyBJbnNwZWN0b3JT
dGF0ZTsKIGNsYXNzIEluc3BlY3RvclN0YXRlQ2xpZW50OwogY2xhc3MgSW5zdHJ1bWVudGluZ0Fn
ZW50czsKIGNsYXNzIFdvcmtlckNvbnRleHQ7CkBAIC03NCw3ICs3NCw3IEBAIHByaXZhdGU6CiAK
ICAgICBXb3JrZXJDb250ZXh0KiBtX3dvcmtlckNvbnRleHQ7CiAgICAgT3duUHRyPEluc3BlY3Rv
clN0YXRlQ2xpZW50PiBtX3N0YXRlQ2xpZW50OwotICAgIE93blB0cjxJbnNwZWN0b3JDb21wb3Np
dGVTdGF0ZT4gbV9zdGF0ZTsKKyAgICBPd25QdHI8SW5zcGVjdG9yU3RhdGU+IG1fc3RhdGU7CiAg
ICAgT3duUHRyPEluc3RydW1lbnRpbmdBZ2VudHM+IG1faW5zdHJ1bWVudGluZ0FnZW50czsKICAg
ICBPd25QdHI8SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyPiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcjsK
ICAgICBJbnNwZWN0b3JSdW50aW1lQWdlbnQqIG1fcnVudGltZUFnZW50Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>