<?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>80316</bug_id>
          
          <creation_ts>2012-03-05 12:35:03 -0800</creation_ts>
          <short_desc>REGRESSION(r109656): This seems to have regressed Parser/html5-full-render by about 10% (Requested by anttik on #webkit).</short_desc>
          <delta_ts>2012-03-05 12:44:20 -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>27160</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>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>570950</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-05 12:35:03 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/109656 broke the build:
This seems to have regressed Parser/html5-full-render by about 10% (Requested by anttik 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>570951</commentid>
    <comment_count>1</comment_count>
      <attachid>130182</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-05 12:35:44 -0800</bug_when>
    <thetext>Created attachment 130182
ROLLOUT of r109656

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>570960</commentid>
    <comment_count>2</comment_count>
      <attachid>130182</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-05 12:44:15 -0800</bug_when>
    <thetext>Comment on attachment 130182
ROLLOUT of r109656

Clearing flags on attachment: 130182

Committed r109785: &lt;http://trac.webkit.org/changeset/109785&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570961</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-05 12:44:20 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130182</attachid>
            <date>2012-03-05 12:35:44 -0800</date>
            <delta_ts>2012-03-05 12:44:15 -0800</delta_ts>
            <desc>ROLLOUT of r109656</desc>
            <filename>bug-80316-20120305203759.patch</filename>
            <type>text/plain</type>
            <size>173537</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NzgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGVlMWE0NGUyODRmZDdl
NzQ3MDYyMTQ0ZmUxMDcxYWE5NmZlOTgwZi4uNDU1ZjU2NmVmZjU5NmZhZWFjMzI4ZTg3NjJmMGU2
Y2JlNTg0MDViMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzNiBAQAorMjAxMi0wMy0wNSAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjEwOTY1Ni4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9y
Zy9jaGFuZ2VzZXQvMTA5NjU2CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MDMxNgorCisgICAgICAgIFRoaXMgc2VlbXMgdG8gaGF2ZSByZWdyZXNzZWQg
UGFyc2VyL2h0bWw1LWZ1bGwtcmVuZGVyIGJ5IGFib3V0CisgICAgICAgIDEwJSAoUmVxdWVzdGVk
IGJ5IGFudHRpayBvbiAjd2Via2l0KS4KKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0UG9zaXRpb25PZmZzZXRWYWx1
ZSk6CisgICAgICAgIChXZWJDb3JlOjpnZXRCb3JkZXJSYWRpdXNDb3JuZXJWYWx1ZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6Z2V0Qm9yZGVyUmFkaXVzQ29ybmVyVmFsdWUpOgorICAgICAgICAoV2Vi
Q29yZTo6Z2V0Qm9yZGVyUmFkaXVzU2hvcnRoYW5kVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6
bGluZUhlaWdodEZyb21TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NHcmFt
bWFyLnk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQYXJzZXI6OnZhbGlkVW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNyZWF0
ZVByaW1pdGl2ZU51bWVyaWNWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjp1bml0RnJvbVN0cmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsaWRQcmltaXRpdmUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpkZXRlY3ROdW1iZXJUb2tlbik6CisgICAgICAg
ICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzVmFsaWRD
U1NVbml0VHlwZUZvckRvdWJsZUNvbnZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6dW5pdENh
dGVnb3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRp
dmVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Y2Fub25pY2Fs
VW5pdFR5cGVGb3JDYXRlZ29yeSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6Y3VzdG9tQ3NzVGV4dCk6CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmg6Cisg
ICAgICAgIChDU1NQcmltaXRpdmVWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZh
bHVlLmlkbDoKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlMZW5ndGg6OmFwcGx5VmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUJvcmRlclJhZGl1czo6YXBwbHlWYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBseVByb3BlcnR5Rm9udFNpemU6OmFwcGx5VmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUxpbmVIZWlnaHQ6OmFwcGx5VmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6QXBwbHlQcm9wZXJ0eVZlcnRpY2FsQWxpZ246OmFwcGx5VmFsdWUpOgorICAgICAg
ICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxl
U2VsZWN0b3I6OmNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdCk6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpwYWdlU2l6ZUFuZE1hcmdp
bnNJblBpeGVscyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKERvY3VtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxBcmVhRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQXJlYUVsZW1lbnQ6OmdldFJlZ2lvbik6CisgICAg
ICAgICogcGxhdGZvcm0vTGVuZ3RoLmg6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6OmNhbGNW
YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6OmNhbGNNaW5WYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpMZW5ndGg6OmNhbGNGbG9hdFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Okxl
bmd0aDo6YmxlbmQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCUi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCUjo6bGluZUhlaWdodCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsaW5lSGVpZ2h0
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJveDo6cmVmbGVjdGlvbk9mZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
b3g6OnBhaW50Qm94RGVjb3JhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpj
bGlwUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2FsV2lk
dGhJblJlZ2lvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2Fs
V2lkdGhJblJlZ2lvblVzaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0
ZUlubGluZURpcmVjdGlvbk1hcmdpbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpj
b21wdXRlTG9naWNhbEhlaWdodFVzaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6
Y29tcHV0ZVBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJveDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodFVzaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveDo6Y29tcHV0ZUJsb2NrRGlyZWN0aW9uTWFyZ2lucyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbFdpZHRoVXNpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRlUG9zaXRpb25lZExvZ2ljYWxIZWln
aHRVc2luZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVk
TG9naWNhbFdpZHRoUmVwbGFjZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21w
dXRlUG9zaXRpb25lZExvZ2ljYWxIZWlnaHRSZXBsYWNlZCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1v
ZGVsT2JqZWN0OjpyZWxhdGl2ZVBvc2l0aW9uT2Zmc2V0WCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6cmVsYXRpdmVQb3NpdGlvbk9mZnNldFkpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhZGRpbmdUb3ApOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhZGRpbmdCb3R0b20pOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhZGRpbmdMZWZ0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWRkaW5nUmlnaHQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhZGRpbmdCZWZvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhZGRpbmdBZnRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFkZGluZ1N0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWRkaW5nRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJveE1vZGVsT2JqZWN0OjpnZXRCYWNrZ3JvdW5kUm91bmRlZFJlY3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1bGF0ZUZpbGxUaWxlU2l6ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYXRlQmFja2dyb3Vu
ZEltYWdlR2VvbWV0cnkpOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZUJvcmRlckltYWdlU2lk
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnROaW5lUGll
Y2VJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRC
b3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Qm94
U2hhZG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OnByZWZlcnJlZE1haW5BeGlzQ29udGVu
dEV4dGVudEZvckNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94Ojpj
b21wdXRlTWFpbkF4aXNQcmVmZXJyZWRTaXplcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJG
bGV4aWJsZUJveDo6cnVuRnJlZVNwYWNlQWxsb2NhdGlvbkFsZ29yaXRobSk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlTWFy
Z2luKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcklubGluZTo6bGluZUhlaWdodCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlck1lbnVMaXN0Ojp1cGRhdGVPcHRpb25zV2lkdGgpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpyZXBhaW50
QWZ0ZXJMYXlvdXRJZk5lZWRlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5o
OgorICAgICAgICAoUmVuZGVyT2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVw
bGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OnBhaW50KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyUGFydC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjYWxjU2Nyb2xsYmFyVGhpY2tuZXNzVXNpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU2Nyb2xsYmFyUGFydDo6Y29tcHV0ZVNjcm9sbGJhcldpZHRoKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclNjcm9sbGJhclBhcnQ6OmNvbXB1dGVTY3JvbGxiYXJIZWlnaHQpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
YWJsZTo6Y29tcHV0ZUxvZ2ljYWxXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJs
ZTo6Y29udmVydFN0eWxlTG9naWNhbFdpZHRoVG9Db21wdXRlZFdpZHRoKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRh
YmxlQ2VsbDo6bG9naWNhbEhlaWdodEZvclJvd1NpemluZyk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRhYmxlU2VjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVNl
Y3Rpb246OmNhbGNSb3dMb2dpY2FsSGVpZ2h0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6bWFyZ2luTGVmdCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0OjptYXJnaW5SaWdodCk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6
OnBhaW50TWVudUxpc3RCdXR0b25HcmFkaWVudHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJXaWRnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyV2lkZ2V0OjpwYWludCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Um9vdElubGluZUJveDo6dmVydGljYWxQb3NpdGlvbkZvckJveCk6CisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhbGNSYWRpaUZv
cik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Z2V0Um91bmRlZEJvcmRlckZvcik6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlc29sdmVM
ZW5ndGhBdHRyaWJ1dGVGb3JTVkcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6
Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNW
R1Jvb3Q6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQpOgorCiAyMDEyLTAzLTA1ICBSb2Ig
QnVpcyAgPHJidWlzQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIFVURiBjaGFycyBw
cmludGVkIGJhY2sgZnJvbSBjb29raWUgdGhyb3VnaCBwaHAgc2hvd3MgYXMgPz8/CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4
IDBjMDU4NGU4MzZkZjUzOWE1NDJkZjY1YjM5YTViMjdiZDBiNTdhZDEuLjZkMjMzZjkyMmJjY2I2
NmFmODQ5NTk5MDg0NjMzMDEwOGE1OWE5MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC01NDMsNyArNTQzLDcgQEAgc3Rh
dGljIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlRm9yUmVmbGVjdGlvbihjb25zdCBTdHlsZVJl
ZmxlY3Rpb24qIHJlZmxlY3Rpb24KICAgICByZXR1cm4gQ1NTUmVmbGVjdFZhbHVlOjpjcmVhdGUo
cmVmbGVjdGlvbi0+ZGlyZWN0aW9uKCksIG9mZnNldC5yZWxlYXNlKCksIHZhbHVlRm9yTmluZVBp
ZWNlSW1hZ2UocmVmbGVjdGlvbi0+bWFzaygpLCBjc3NWYWx1ZVBvb2wpKTsKIH0KIAotc3RhdGlj
IFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGdldFBvc2l0aW9uT2Zmc2V0VmFsdWUoUmVuZGVyU3R5bGUq
IHN0eWxlLCBpbnQgcHJvcGVydHlJRCwgQ1NTVmFsdWVQb29sKiBjc3NWYWx1ZVBvb2wsIGNvbnN0
IEludFNpemUmIHZpZXdwb3J0U2l6ZSkKK3N0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlPiBnZXRQ
b3NpdGlvbk9mZnNldFZhbHVlKFJlbmRlclN0eWxlKiBzdHlsZSwgaW50IHByb3BlcnR5SUQsIENT
U1ZhbHVlUG9vbCogY3NzVmFsdWVQb29sKQogewogICAgIGlmICghc3R5bGUpCiAgICAgICAgIHJl
dHVybiAwOwpAQCAtNTY5LDggKzU2OSw2IEBAIHN0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlPiBn
ZXRQb3NpdGlvbk9mZnNldFZhbHVlKFJlbmRlclN0eWxlKiBzdHlsZSwgaW50IHByb3BlCiAgICAg
aWYgKHN0eWxlLT5wb3NpdGlvbigpID09IEFic29sdXRlUG9zaXRpb24gfHwgc3R5bGUtPnBvc2l0
aW9uKCkgPT0gRml4ZWRQb3NpdGlvbikgewogICAgICAgICBpZiAobC50eXBlKCkgPT0gV2ViQ29y
ZTo6Rml4ZWQpCiAgICAgICAgICAgICByZXR1cm4gem9vbUFkanVzdGVkUGl4ZWxWYWx1ZShsLnZh
bHVlKCksIHN0eWxlLCBjc3NWYWx1ZVBvb2wpOwotICAgICAgICBlbHNlIGlmIChsLmlzVmlld3Bv
cnRSZWxhdGl2ZSgpKQotICAgICAgICAgICAgcmV0dXJuIHpvb21BZGp1c3RlZFBpeGVsVmFsdWUo
bC5jYWxjVmFsdWUoMCwgdmlld3BvcnRTaXplKSwgc3R5bGUsIGNzc1ZhbHVlUG9vbCk7CiAgICAg
ICAgIHJldHVybiBjc3NWYWx1ZVBvb2wtPmNyZWF0ZVZhbHVlKGwpOwogICAgIH0KIApAQCAtNTky
LDMxICs1OTAsMzEgQEAgUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uOjpjdXJyZW50Q29sb3JPclZhbGlkQ28KICAgICByZXR1cm4gY3NzVmFs
dWVQb29sLT5jcmVhdGVDb2xvclZhbHVlKGNvbG9yLnJnYigpKTsKIH0KIAotc3RhdGljIFBhc3NS
ZWZQdHI8Q1NTVmFsdWVMaXN0PiBnZXRCb3JkZXJSYWRpdXNDb3JuZXJWYWx1ZXMoTGVuZ3RoU2l6
ZSByYWRpdXMsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwgQ1NTVmFsdWVQb29sKiBjc3NWYWx1
ZVBvb2wsIGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSkKK3N0YXRpYyBQYXNzUmVmUHRyPENT
U1ZhbHVlTGlzdD4gZ2V0Qm9yZGVyUmFkaXVzQ29ybmVyVmFsdWVzKExlbmd0aFNpemUgcmFkaXVz
LCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUsIENTU1ZhbHVlUG9vbCogY3NzVmFsdWVQb29sKQog
ewogICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNw
YWNlU2VwYXJhdGVkKCk7CiAgICAgaWYgKHJhZGl1cy53aWR0aCgpLnR5cGUoKSA9PSBQZXJjZW50
KQogICAgICAgICBsaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sLT5jcmVhdGVWYWx1ZShyYWRpdXMu
d2lkdGgoKS5wZXJjZW50KCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSkpOwog
ICAgIGVsc2UKLSAgICAgICAgbGlzdC0+YXBwZW5kKHpvb21BZGp1c3RlZFBpeGVsVmFsdWUocmFk
aXVzLndpZHRoKCkuY2FsY1ZhbHVlKDAsIHZpZXdwb3J0U2l6ZSksIHN0eWxlLCBjc3NWYWx1ZVBv
b2wpKTsKKyAgICAgICAgbGlzdC0+YXBwZW5kKHpvb21BZGp1c3RlZFBpeGVsVmFsdWUocmFkaXVz
LndpZHRoKCkudmFsdWUoKSwgc3R5bGUsIGNzc1ZhbHVlUG9vbCkpOwogICAgIGlmIChyYWRpdXMu
aGVpZ2h0KCkudHlwZSgpID09IFBlcmNlbnQpCiAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1
ZVBvb2wtPmNyZWF0ZVZhbHVlKHJhZGl1cy5oZWlnaHQoKS5wZXJjZW50KCksIENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSkpOwogICAgIGVsc2UKLSAgICAgICAgbGlzdC0+YXBwZW5k
KHpvb21BZGp1c3RlZFBpeGVsVmFsdWUocmFkaXVzLmhlaWdodCgpLmNhbGNWYWx1ZSgwLCB2aWV3
cG9ydFNpemUpLCBzdHlsZSwgY3NzVmFsdWVQb29sKSk7CisgICAgICAgIGxpc3QtPmFwcGVuZCh6
b29tQWRqdXN0ZWRQaXhlbFZhbHVlKHJhZGl1cy5oZWlnaHQoKS52YWx1ZSgpLCBzdHlsZSwgY3Nz
VmFsdWVQb29sKSk7CiAgICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOwogfQogCi1zdGF0aWMgUGFz
c1JlZlB0cjxDU1NWYWx1ZT4gZ2V0Qm9yZGVyUmFkaXVzQ29ybmVyVmFsdWUoTGVuZ3RoU2l6ZSBy
YWRpdXMsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwgQ1NTVmFsdWVQb29sKiBjc3NWYWx1ZVBv
b2wsIGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSkKK3N0YXRpYyBQYXNzUmVmUHRyPENTU1Zh
bHVlPiBnZXRCb3JkZXJSYWRpdXNDb3JuZXJWYWx1ZShMZW5ndGhTaXplIHJhZGl1cywgY29uc3Qg
UmVuZGVyU3R5bGUqIHN0eWxlLCBDU1NWYWx1ZVBvb2wqIGNzc1ZhbHVlUG9vbCkKIHsKICAgICBp
ZiAocmFkaXVzLndpZHRoKCkgPT0gcmFkaXVzLmhlaWdodCgpKSB7CiAgICAgICAgIGlmIChyYWRp
dXMud2lkdGgoKS50eXBlKCkgPT0gUGVyY2VudCkKICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1
ZVBvb2wtPmNyZWF0ZVZhbHVlKHJhZGl1cy53aWR0aCgpLnBlcmNlbnQoKSwgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19QRVJDRU5UQUdFKTsKLSAgICAgICAgcmV0dXJuIHpvb21BZGp1c3RlZFBpeGVs
VmFsdWUocmFkaXVzLndpZHRoKCkuY2FsY1ZhbHVlKDAsIHZpZXdwb3J0U2l6ZSksIHN0eWxlLCBj
c3NWYWx1ZVBvb2wpOworICAgICAgICByZXR1cm4gem9vbUFkanVzdGVkUGl4ZWxWYWx1ZShyYWRp
dXMud2lkdGgoKS52YWx1ZSgpLCBzdHlsZSwgY3NzVmFsdWVQb29sKTsKICAgICB9Ci0gICAgcmV0
dXJuIGdldEJvcmRlclJhZGl1c0Nvcm5lclZhbHVlcyhyYWRpdXMsIHN0eWxlLCBjc3NWYWx1ZVBv
b2wsIHZpZXdwb3J0U2l6ZSk7CisgICAgcmV0dXJuIGdldEJvcmRlclJhZGl1c0Nvcm5lclZhbHVl
cyhyYWRpdXMsIHN0eWxlLCBjc3NWYWx1ZVBvb2wpOwogfQogCi1zdGF0aWMgUGFzc1JlZlB0cjxD
U1NWYWx1ZUxpc3Q+IGdldEJvcmRlclJhZGl1c1Nob3J0aGFuZFZhbHVlKGNvbnN0IFJlbmRlclN0
eWxlKiBzdHlsZSwgQ1NTVmFsdWVQb29sKiBjc3NWYWx1ZVBvb2wsIGNvbnN0IEludFNpemUmIHZp
ZXdwb3J0U2l6ZSkKK3N0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlTGlzdD4gZ2V0Qm9yZGVyUmFk
aXVzU2hvcnRoYW5kVmFsdWUoY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlLCBDU1NWYWx1ZVBvb2wq
IGNzc1ZhbHVlUG9vbCkKIHsKICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFs
dWVMaXN0OjpjcmVhdGVTbGFzaFNlcGFyYXRlZCgpOwogICAgIGJvb2wgc2hvd0hvcml6b250YWxC
b3R0b21MZWZ0ID0gc3R5bGUtPmJvcmRlclRvcFJpZ2h0UmFkaXVzKCkud2lkdGgoKSAhPSBzdHls
ZS0+Ym9yZGVyQm90dG9tTGVmdFJhZGl1cygpLndpZHRoKCk7CkBAIC02MjgsMTAgKzYyNiwxMCBA
QCBzdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1ZUxpc3Q+IGdldEJvcmRlclJhZGl1c1Nob3J0aGFu
ZFZhbHVlKGNvbnN0IFJlbmRlclN0eWxlKgogICAgIGJvb2wgc2hvd1ZlcnRpY2FsVG9wUmlnaHQg
PSAoc3R5bGUtPmJvcmRlclRvcFJpZ2h0UmFkaXVzKCkuaGVpZ2h0KCkgIT0gc3R5bGUtPmJvcmRl
clRvcExlZnRSYWRpdXMoKS5oZWlnaHQoKSkgfHwgc2hvd1ZlcnRpY2FsQm90dG9tUmlnaHQ7CiAg
ICAgYm9vbCBzaG93VmVydGljYWxUb3BMZWZ0ID0gKHN0eWxlLT5ib3JkZXJUb3BMZWZ0UmFkaXVz
KCkud2lkdGgoKSAhPSBzdHlsZS0+Ym9yZGVyVG9wTGVmdFJhZGl1cygpLmhlaWdodCgpKTsKIAot
ICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IHRvcExlZnRSYWRpdXMgPSBnZXRCb3JkZXJSYWRpdXND
b3JuZXJWYWx1ZXMoc3R5bGUtPmJvcmRlclRvcExlZnRSYWRpdXMoKSwgc3R5bGUsIGNzc1ZhbHVl
UG9vbCwgdmlld3BvcnRTaXplKTsKLSAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiB0b3BSaWdodFJh
ZGl1cyA9IGdldEJvcmRlclJhZGl1c0Nvcm5lclZhbHVlcyhzdHlsZS0+Ym9yZGVyVG9wUmlnaHRS
YWRpdXMoKSwgc3R5bGUsIGNzc1ZhbHVlUG9vbCwgdmlld3BvcnRTaXplKTsKLSAgICBSZWZQdHI8
Q1NTVmFsdWVMaXN0PiBib3R0b21SaWdodFJhZGl1cyA9IGdldEJvcmRlclJhZGl1c0Nvcm5lclZh
bHVlcyhzdHlsZS0+Ym9yZGVyQm90dG9tUmlnaHRSYWRpdXMoKSwgc3R5bGUsIGNzc1ZhbHVlUG9v
bCwgdmlld3BvcnRTaXplKTsKLSAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBib3R0b21MZWZ0UmFk
aXVzID0gZ2V0Qm9yZGVyUmFkaXVzQ29ybmVyVmFsdWVzKHN0eWxlLT5ib3JkZXJCb3R0b21MZWZ0
UmFkaXVzKCksIHN0eWxlLCBjc3NWYWx1ZVBvb2wsIHZpZXdwb3J0U2l6ZSk7CisgICAgUmVmUHRy
PENTU1ZhbHVlTGlzdD4gdG9wTGVmdFJhZGl1cyA9IGdldEJvcmRlclJhZGl1c0Nvcm5lclZhbHVl
cyhzdHlsZS0+Ym9yZGVyVG9wTGVmdFJhZGl1cygpLCBzdHlsZSwgY3NzVmFsdWVQb29sKTsKKyAg
ICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiB0b3BSaWdodFJhZGl1cyA9IGdldEJvcmRlclJhZGl1c0Nv
cm5lclZhbHVlcyhzdHlsZS0+Ym9yZGVyVG9wUmlnaHRSYWRpdXMoKSwgc3R5bGUsIGNzc1ZhbHVl
UG9vbCk7CisgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gYm90dG9tUmlnaHRSYWRpdXMgPSBnZXRC
b3JkZXJSYWRpdXNDb3JuZXJWYWx1ZXMoc3R5bGUtPmJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzKCks
IHN0eWxlLCBjc3NWYWx1ZVBvb2wpOworICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGJvdHRvbUxl
ZnRSYWRpdXMgPSBnZXRCb3JkZXJSYWRpdXNDb3JuZXJWYWx1ZXMoc3R5bGUtPmJvcmRlckJvdHRv
bUxlZnRSYWRpdXMoKSwgc3R5bGUsIGNzc1ZhbHVlUG9vbCk7CiAKICAgICBSZWZQdHI8Q1NTVmFs
dWVMaXN0PiBob3Jpem9udGFsUmFkaWkgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJh
dGVkKCk7CiAgICAgaG9yaXpvbnRhbFJhZGlpLT5hcHBlbmQodG9wTGVmdFJhZGl1cy0+aXRlbSgw
KSk7CkBAIC0xMjM0LDcgKzEyMzIsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1ZUxpc3Q+
IGZvbnRGYW1pbHlGcm9tU3R5bGUoUmVuZGVyU3R5bGUqIHN0eWxlLCBDU1NWYWx1ZQogICAgIHJl
dHVybiBsaXN0LnJlbGVhc2UoKTsKIH0KIAotc3RhdGljIFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZl
VmFsdWU+IGxpbmVIZWlnaHRGcm9tU3R5bGUoUmVuZGVyU3R5bGUqIHN0eWxlLCBDU1NWYWx1ZVBv
b2wqIGNzc1ZhbHVlUG9vbCwgY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplKQorc3RhdGljIFBh
c3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGxpbmVIZWlnaHRGcm9tU3R5bGUoUmVuZGVyU3R5
bGUqIHN0eWxlLCBDU1NWYWx1ZVBvb2wqIGNzc1ZhbHVlUG9vbCkKIHsKICAgICBMZW5ndGggbGVu
Z3RoID0gc3R5bGUtPmxpbmVIZWlnaHQoKTsKICAgICBpZiAobGVuZ3RoLmlzTmVnYXRpdmUoKSkK
QEAgLTEyNDUsNyArMTI0Myw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVl
PiBsaW5lSGVpZ2h0RnJvbVN0eWxlKFJlbmRlclN0eWxlKiBzdHlsZSwgQ1NTCiAgICAgICAgIC8v
IE9uIHRoZSBvdGhlciBoYW5kLCBzaW5jZSBmb250LXNpemUgZG9lc24ndCBpbmNsdWRlIHRoZSB6
b29tIGZhY3Rvciwgd2UgcmVhbGx5IGNhbid0IGRvCiAgICAgICAgIC8vIHRoYXQgaGVyZSBlaXRo
ZXIuCiAgICAgICAgIHJldHVybiB6b29tQWRqdXN0ZWRQaXhlbFZhbHVlKHN0YXRpY19jYXN0PGlu
dD4obGVuZ3RoLnBlcmNlbnQoKSAqIHN0eWxlLT5mb250RGVzY3JpcHRpb24oKS5zcGVjaWZpZWRT
aXplKCkpIC8gMTAwLCBzdHlsZSwgY3NzVmFsdWVQb29sKTsKLSAgICByZXR1cm4gem9vbUFkanVz
dGVkUGl4ZWxWYWx1ZShsZW5ndGguY2FsY1ZhbHVlKDAsIHZpZXdwb3J0U2l6ZSksIHN0eWxlLCBj
c3NWYWx1ZVBvb2wpOworICAgIHJldHVybiB6b29tQWRqdXN0ZWRQaXhlbFZhbHVlKGxlbmd0aC52
YWx1ZSgpLCBzdHlsZSwgY3NzVmFsdWVQb29sKTsKIH0KIAogc3RhdGljIFBhc3NSZWZQdHI8Q1NT
UHJpbWl0aXZlVmFsdWU+IGZvbnRTaXplRnJvbVN0eWxlKFJlbmRlclN0eWxlKiBzdHlsZSwgQ1NT
VmFsdWVQb29sKiBjc3NWYWx1ZVBvb2wpCkBAIC0xNTA3LDcgKzE1MDUsNyBAQCBQYXNzUmVmUHRy
PENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFs
dWUoaW50IHByb3BlcgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyTGVmdFdpZHRoOgog
ICAgICAgICAgICAgcmV0dXJuIHpvb21BZGp1c3RlZFBpeGVsVmFsdWUoc3R5bGUtPmJvcmRlckxl
ZnRXaWR0aCgpLCBzdHlsZS5nZXQoKSwgY3NzVmFsdWVQb29sKTsKICAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eUJvdHRvbToKLSAgICAgICAgICAgIHJldHVybiBnZXRQb3NpdGlvbk9mZnNldFZhbHVl
KHN0eWxlLmdldCgpLCBDU1NQcm9wZXJ0eUJvdHRvbSwgY3NzVmFsdWVQb29sLCBtX25vZGUtPmRv
Y3VtZW50KCktPnZpZXdwb3J0U2l6ZSgpKTsKKyAgICAgICAgICAgIHJldHVybiBnZXRQb3NpdGlv
bk9mZnNldFZhbHVlKHN0eWxlLmdldCgpLCBDU1NQcm9wZXJ0eUJvdHRvbSwgY3NzVmFsdWVQb29s
KTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJveEFsaWduOgogICAgICAgICAgICAg
cmV0dXJuIGNzc1ZhbHVlUG9vbC0+Y3JlYXRlVmFsdWUoc3R5bGUtPmJveEFsaWduKCkpOwogICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm94RGlyZWN0aW9uOgpAQCAtMTYyMyw3ICsxNjIx
LDcgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpn
ZXRQcm9wZXJ0eUNTU1ZhbHVlKGludCBwcm9wZXIKICAgICAgICAgICAgIGNvbXB1dGVkRm9udC0+
dmFyaWFudCA9IGZvbnRWYXJpYW50RnJvbVN0eWxlKHN0eWxlLmdldCgpLCBjc3NWYWx1ZVBvb2wp
OwogICAgICAgICAgICAgY29tcHV0ZWRGb250LT53ZWlnaHQgPSBmb250V2VpZ2h0RnJvbVN0eWxl
KHN0eWxlLmdldCgpLCBjc3NWYWx1ZVBvb2wpOwogICAgICAgICAgICAgY29tcHV0ZWRGb250LT5z
aXplID0gZm9udFNpemVGcm9tU3R5bGUoc3R5bGUuZ2V0KCksIGNzc1ZhbHVlUG9vbCk7Ci0gICAg
ICAgICAgICBjb21wdXRlZEZvbnQtPmxpbmVIZWlnaHQgPSBsaW5lSGVpZ2h0RnJvbVN0eWxlKHN0
eWxlLmdldCgpLCBjc3NWYWx1ZVBvb2wsIG1fbm9kZS0+ZG9jdW1lbnQoKS0+dmlld3BvcnRTaXpl
KCkpOworICAgICAgICAgICAgY29tcHV0ZWRGb250LT5saW5lSGVpZ2h0ID0gbGluZUhlaWdodEZy
b21TdHlsZShzdHlsZS5nZXQoKSwgY3NzVmFsdWVQb29sKTsKICAgICAgICAgICAgIGNvbXB1dGVk
Rm9udC0+ZmFtaWx5ID0gZm9udEZhbWlseUZyb21TdHlsZShzdHlsZS5nZXQoKSwgY3NzVmFsdWVQ
b29sKTsKICAgICAgICAgICAgIHJldHVybiBjb21wdXRlZEZvbnQucmVsZWFzZSgpOwogICAgICAg
ICB9CkBAIC0xNzA2LDcgKzE3MDQsNyBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUoaW50IHByb3BlcgogICAgICAg
ICBjYXNlIENTU1Byb3BlcnR5SW1hZ2VSZW5kZXJpbmc6CiAgICAgICAgICAgICByZXR1cm4gQ1NT
UHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShzdHlsZS0+aW1hZ2VSZW5kZXJpbmcoKSk7CiAgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlMZWZ0OgotICAgICAgICAgICAgcmV0dXJuIGdldFBvc2l0aW9uT2Zm
c2V0VmFsdWUoc3R5bGUuZ2V0KCksIENTU1Byb3BlcnR5TGVmdCwgY3NzVmFsdWVQb29sLCBtX25v
ZGUtPmRvY3VtZW50KCktPnZpZXdwb3J0U2l6ZSgpKTsKKyAgICAgICAgICAgIHJldHVybiBnZXRQ
b3NpdGlvbk9mZnNldFZhbHVlKHN0eWxlLmdldCgpLCBDU1NQcm9wZXJ0eUxlZnQsIGNzc1ZhbHVl
UG9vbCk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlMZXR0ZXJTcGFjaW5nOgogICAgICAgICAg
ICAgaWYgKCFzdHlsZS0+bGV0dGVyU3BhY2luZygpKQogICAgICAgICAgICAgICAgIHJldHVybiBj
c3NWYWx1ZVBvb2wtPmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vcm1hbCk7CkBAIC0x
NzE2LDcgKzE3MTQsNyBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUoaW50IHByb3BlcgogICAgICAgICAgICAgICAg
IHJldHVybiBjc3NWYWx1ZVBvb2wtPmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vbmUp
OwogICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC0+Y3JlYXRlVmFsdWUoc3R5bGUtPmxp
bmVDbGFtcCgpLnZhbHVlKCksIHN0eWxlLT5saW5lQ2xhbXAoKS5pc1BlcmNlbnRhZ2UoKSA/IENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSA6IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
TlVNQkVSKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUxpbmVIZWlnaHQ6Ci0gICAgICAgICAg
ICByZXR1cm4gbGluZUhlaWdodEZyb21TdHlsZShzdHlsZS5nZXQoKSwgY3NzVmFsdWVQb29sLCBt
X25vZGUtPmRvY3VtZW50KCktPnZpZXdwb3J0U2l6ZSgpKTsKKyAgICAgICAgICAgIHJldHVybiBs
aW5lSGVpZ2h0RnJvbVN0eWxlKHN0eWxlLmdldCgpLCBjc3NWYWx1ZVBvb2wpOwogICAgICAgICBj
YXNlIENTU1Byb3BlcnR5TGlzdFN0eWxlSW1hZ2U6CiAgICAgICAgICAgICBpZiAoc3R5bGUtPmxp
c3RTdHlsZUltYWdlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0eWxlLT5saXN0U3R5bGVJ
bWFnZSgpLT5jc3NWYWx1ZSgpOwpAQCAtMTc0MCwxMSArMTczOCwxMSBAQCBQYXNzUmVmUHRyPENT
U1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUo
aW50IHByb3BlcgogICAgICAgICAgICAgaWYgKG1hcmdpblJpZ2h0LmlzRml4ZWQoKSB8fCAhcmVu
ZGVyZXIgfHwgIXJlbmRlcmVyLT5pc0JveCgpKQogICAgICAgICAgICAgICAgIHJldHVybiB6b29t
QWRqdXN0ZWRQaXhlbFZhbHVlRm9yTGVuZ3RoKG1hcmdpblJpZ2h0LCBzdHlsZS5nZXQoKSwgY3Nz
VmFsdWVQb29sKTsKICAgICAgICAgICAgIGludCB2YWx1ZTsKLSAgICAgICAgICAgIGlmIChtYXJn
aW5SaWdodC5pc1BlcmNlbnQoKSB8fCBtYXJnaW5SaWdodC5pc1ZpZXdwb3J0UmVsYXRpdmUoKSkK
KyAgICAgICAgICAgIGlmIChtYXJnaW5SaWdodC5pc1BlcmNlbnQoKSkKICAgICAgICAgICAgICAg
ICAvLyBSZW5kZXJCb3ggZ2l2ZXMgYSBtYXJnaW5SaWdodCgpIHRoYXQgaXMgdGhlIGRpc3RhbmNl
IGJldHdlZW4gdGhlIHJpZ2h0LWVkZ2Ugb2YgdGhlIGNoaWxkIGJveAogICAgICAgICAgICAgICAg
IC8vIGFuZCB0aGUgcmlnaHQtZWRnZSBvZiB0aGUgY29udGFpbmluZyBib3gsIHdoZW4gZGlzcGxh
eSA9PSBCTE9DSy4gTGV0J3MgY2FsY3VsYXRlIHRoZSBhYnNvbHV0ZQogICAgICAgICAgICAgICAg
IC8vIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgbWFyZ2luLXJpZ2h0ICUgaW5zdGVhZCBvZiByZWx5
aW5nIG9uIFJlbmRlckJveCdzIG1hcmdpblJpZ2h0KCkgdmFsdWUuCi0gICAgICAgICAgICAgICAg
dmFsdWUgPSBtYXJnaW5SaWdodC5jYWxjTWluVmFsdWUodG9SZW5kZXJCb3gocmVuZGVyZXIpLT5j
b250YWluaW5nQmxvY2tMb2dpY2FsV2lkdGhGb3JDb250ZW50KCksIG1fbm9kZS0+ZG9jdW1lbnQo
KS0+dmlld3BvcnRTaXplKCkpOworICAgICAgICAgICAgICAgIHZhbHVlID0gbWFyZ2luUmlnaHQu
Y2FsY01pblZhbHVlKHRvUmVuZGVyQm94KHJlbmRlcmVyKS0+Y29udGFpbmluZ0Jsb2NrTG9naWNh
bFdpZHRoRm9yQ29udGVudCgpKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICB2
YWx1ZSA9IHRvUmVuZGVyQm94KHJlbmRlcmVyKS0+bWFyZ2luUmlnaHQoKTsKICAgICAgICAgICAg
IHJldHVybiB6b29tQWRqdXN0ZWRQaXhlbFZhbHVlKHZhbHVlLCBzdHlsZS5nZXQoKSwgY3NzVmFs
dWVQb29sKTsKQEAgLTE4MzksNyArMTgzNyw3IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZShpbnQgcHJvcGVyCiAg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQb3NpdGlvbjoKICAgICAgICAgICAgIHJldHVybiBjc3NW
YWx1ZVBvb2wtPmNyZWF0ZVZhbHVlKHN0eWxlLT5wb3NpdGlvbigpKTsKICAgICAgICAgY2FzZSBD
U1NQcm9wZXJ0eVJpZ2h0OgotICAgICAgICAgICAgcmV0dXJuIGdldFBvc2l0aW9uT2Zmc2V0VmFs
dWUoc3R5bGUuZ2V0KCksIENTU1Byb3BlcnR5UmlnaHQsIGNzc1ZhbHVlUG9vbCwgbV9ub2RlLT5k
b2N1bWVudCgpLT52aWV3cG9ydFNpemUoKSk7CisgICAgICAgICAgICByZXR1cm4gZ2V0UG9zaXRp
b25PZmZzZXRWYWx1ZShzdHlsZS5nZXQoKSwgQ1NTUHJvcGVydHlSaWdodCwgY3NzVmFsdWVQb29s
KTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVRhYmxlTGF5b3V0OgogICAgICAgICAgICAgcmV0
dXJuIGNzc1ZhbHVlUG9vbC0+Y3JlYXRlVmFsdWUoc3R5bGUtPnRhYmxlTGF5b3V0KCkpOwogICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dEFsaWduOgpAQCAtMTg5Nyw3ICsxODk1LDcgQEAgUGFz
c1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0
eUNTU1ZhbHVlKGludCBwcm9wZXIKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRUcmFuc2Zv
cm06CiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLT5jcmVhdGVWYWx1ZShzdHlsZS0+
dGV4dFRyYW5zZm9ybSgpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVRvcDoKLSAgICAgICAg
ICAgIHJldHVybiBnZXRQb3NpdGlvbk9mZnNldFZhbHVlKHN0eWxlLmdldCgpLCBDU1NQcm9wZXJ0
eVRvcCwgY3NzVmFsdWVQb29sLCBtX25vZGUtPmRvY3VtZW50KCktPnZpZXdwb3J0U2l6ZSgpKTsK
KyAgICAgICAgICAgIHJldHVybiBnZXRQb3NpdGlvbk9mZnNldFZhbHVlKHN0eWxlLmdldCgpLCBD
U1NQcm9wZXJ0eVRvcCwgY3NzVmFsdWVQb29sKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVVu
aWNvZGVCaWRpOgogICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC0+Y3JlYXRlVmFsdWUo
c3R5bGUtPnVuaWNvZGVCaWRpKCkpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5VmVydGljYWxB
bGlnbjoKQEAgLTIxNTYsOSArMjE1NCw4IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZShpbnQgcHJvcGVyCiAgICAg
ICAgICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVT
cGFjZVNlcGFyYXRlZCgpOwogICAgICAgICAgICAgaWYgKHJlbmRlcmVyKSB7CiAgICAgICAgICAg
ICAgICAgTGF5b3V0UmVjdCBib3ggPSBzaXppbmdCb3gocmVuZGVyZXIpOwotICAgICAgICAgICAg
ICAgIEludFNpemUgdmlld3BvcnRTaXplID0gbV9ub2RlLT5kb2N1bWVudCgpLT52aWV3cG9ydFNp
emUoKTsKLSAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoem9vbUFkanVzdGVkUGl4ZWxWYWx1
ZShzdHlsZS0+cGVyc3BlY3RpdmVPcmlnaW5YKCkuY2FsY01pblZhbHVlKGJveC53aWR0aCgpLCB2
aWV3cG9ydFNpemUpLCBzdHlsZS5nZXQoKSwgY3NzVmFsdWVQb29sKSk7Ci0gICAgICAgICAgICAg
ICAgbGlzdC0+YXBwZW5kKHpvb21BZGp1c3RlZFBpeGVsVmFsdWUoc3R5bGUtPnBlcnNwZWN0aXZl
T3JpZ2luWSgpLmNhbGNNaW5WYWx1ZShib3guaGVpZ2h0KCksIHZpZXdwb3J0U2l6ZSksIHN0eWxl
LmdldCgpLCBjc3NWYWx1ZVBvb2wpKTsKKyAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoem9v
bUFkanVzdGVkUGl4ZWxWYWx1ZShzdHlsZS0+cGVyc3BlY3RpdmVPcmlnaW5YKCkuY2FsY01pblZh
bHVlKGJveC53aWR0aCgpKSwgc3R5bGUuZ2V0KCksIGNzc1ZhbHVlUG9vbCkpOworICAgICAgICAg
ICAgICAgIGxpc3QtPmFwcGVuZCh6b29tQWRqdXN0ZWRQaXhlbFZhbHVlKHN0eWxlLT5wZXJzcGVj
dGl2ZU9yaWdpblkoKS5jYWxjTWluVmFsdWUoYm94LmhlaWdodCgpKSwgc3R5bGUuZ2V0KCksIGNz
c1ZhbHVlUG9vbCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAg
ICAgICAgICAgbGlzdC0+YXBwZW5kKHpvb21BZGp1c3RlZFBpeGVsVmFsdWVGb3JMZW5ndGgoc3R5
bGUtPnBlcnNwZWN0aXZlT3JpZ2luWCgpLCBzdHlsZS5nZXQoKSwgY3NzVmFsdWVQb29sKSk7CkBA
IC0yMTc4LDEzICsyMTc1LDEzIEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZShpbnQgcHJvcGVyCiAgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRVc2VyU2VsZWN0OgogICAgICAgICAgICAgcmV0dXJuIGNzc1Zh
bHVlUG9vbC0+Y3JlYXRlVmFsdWUoc3R5bGUtPnVzZXJTZWxlY3QoKSk7CiAgICAgICAgIGNhc2Ug
Q1NTUHJvcGVydHlCb3JkZXJCb3R0b21MZWZ0UmFkaXVzOgotICAgICAgICAgICAgcmV0dXJuIGdl
dEJvcmRlclJhZGl1c0Nvcm5lclZhbHVlKHN0eWxlLT5ib3JkZXJCb3R0b21MZWZ0UmFkaXVzKCks
IHN0eWxlLmdldCgpLCBjc3NWYWx1ZVBvb2wsIG1fbm9kZS0+ZG9jdW1lbnQoKS0+dmlld3BvcnRT
aXplKCkpOworICAgICAgICAgICAgcmV0dXJuIGdldEJvcmRlclJhZGl1c0Nvcm5lclZhbHVlKHN0
eWxlLT5ib3JkZXJCb3R0b21MZWZ0UmFkaXVzKCksIHN0eWxlLmdldCgpLCBjc3NWYWx1ZVBvb2wp
OwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyQm90dG9tUmlnaHRSYWRpdXM6Ci0gICAg
ICAgICAgICByZXR1cm4gZ2V0Qm9yZGVyUmFkaXVzQ29ybmVyVmFsdWUoc3R5bGUtPmJvcmRlckJv
dHRvbVJpZ2h0UmFkaXVzKCksIHN0eWxlLmdldCgpLCBjc3NWYWx1ZVBvb2wsIG1fbm9kZS0+ZG9j
dW1lbnQoKS0+dmlld3BvcnRTaXplKCkpOworICAgICAgICAgICAgcmV0dXJuIGdldEJvcmRlclJh
ZGl1c0Nvcm5lclZhbHVlKHN0eWxlLT5ib3JkZXJCb3R0b21SaWdodFJhZGl1cygpLCBzdHlsZS5n
ZXQoKSwgY3NzVmFsdWVQb29sKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclRvcExl
ZnRSYWRpdXM6Ci0gICAgICAgICAgICByZXR1cm4gZ2V0Qm9yZGVyUmFkaXVzQ29ybmVyVmFsdWUo
c3R5bGUtPmJvcmRlclRvcExlZnRSYWRpdXMoKSwgc3R5bGUuZ2V0KCksIGNzc1ZhbHVlUG9vbCwg
bV9ub2RlLT5kb2N1bWVudCgpLT52aWV3cG9ydFNpemUoKSk7CisgICAgICAgICAgICByZXR1cm4g
Z2V0Qm9yZGVyUmFkaXVzQ29ybmVyVmFsdWUoc3R5bGUtPmJvcmRlclRvcExlZnRSYWRpdXMoKSwg
c3R5bGUuZ2V0KCksIGNzc1ZhbHVlUG9vbCk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3Jk
ZXJUb3BSaWdodFJhZGl1czoKLSAgICAgICAgICAgIHJldHVybiBnZXRCb3JkZXJSYWRpdXNDb3Ju
ZXJWYWx1ZShzdHlsZS0+Ym9yZGVyVG9wUmlnaHRSYWRpdXMoKSwgc3R5bGUuZ2V0KCksIGNzc1Zh
bHVlUG9vbCwgbV9ub2RlLT5kb2N1bWVudCgpLT52aWV3cG9ydFNpemUoKSk7CisgICAgICAgICAg
ICByZXR1cm4gZ2V0Qm9yZGVyUmFkaXVzQ29ybmVyVmFsdWUoc3R5bGUtPmJvcmRlclRvcFJpZ2h0
UmFkaXVzKCksIHN0eWxlLmdldCgpLCBjc3NWYWx1ZVBvb2wpOwogICAgICAgICBjYXNlIENTU1By
b3BlcnR5Q2xpcDogewogICAgICAgICAgICAgaWYgKCFzdHlsZS0+aGFzQ2xpcCgpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wtPmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NW
YWx1ZUF1dG8pOwpAQCAtMjIwMyw5ICsyMjAwLDggQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKGludCBwcm9wZXIK
ICAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNy
ZWF0ZVNwYWNlU2VwYXJhdGVkKCk7CiAgICAgICAgICAgICBpZiAocmVuZGVyZXIpIHsKICAgICAg
ICAgICAgICAgICBJbnRSZWN0IGJveCA9IHNpemluZ0JveChyZW5kZXJlcik7Ci0gICAgICAgICAg
ICAgICAgSW50U2l6ZSB2aWV3cG9ydFNpemUgPSBtX25vZGUtPmRvY3VtZW50KCktPnZpZXdwb3J0
U2l6ZSgpOwotICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZCh6b29tQWRqdXN0ZWRQaXhlbFZh
bHVlKHN0eWxlLT50cmFuc2Zvcm1PcmlnaW5YKCkuY2FsY01pblZhbHVlKGJveC53aWR0aCgpLCB2
aWV3cG9ydFNpemUpLCBzdHlsZS5nZXQoKSwgY3NzVmFsdWVQb29sKSk7Ci0gICAgICAgICAgICAg
ICAgbGlzdC0+YXBwZW5kKHpvb21BZGp1c3RlZFBpeGVsVmFsdWUoc3R5bGUtPnRyYW5zZm9ybU9y
aWdpblkoKS5jYWxjTWluVmFsdWUoYm94LmhlaWdodCgpLCB2aWV3cG9ydFNpemUpLCBzdHlsZS5n
ZXQoKSwgY3NzVmFsdWVQb29sKSk7CisgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKHpvb21B
ZGp1c3RlZFBpeGVsVmFsdWUoc3R5bGUtPnRyYW5zZm9ybU9yaWdpblgoKS5jYWxjTWluVmFsdWUo
Ym94LndpZHRoKCkpLCBzdHlsZS5nZXQoKSwgY3NzVmFsdWVQb29sKSk7CisgICAgICAgICAgICAg
ICAgbGlzdC0+YXBwZW5kKHpvb21BZGp1c3RlZFBpeGVsVmFsdWUoc3R5bGUtPnRyYW5zZm9ybU9y
aWdpblkoKS5jYWxjTWluVmFsdWUoYm94LmhlaWdodCgpKSwgc3R5bGUuZ2V0KCksIGNzc1ZhbHVl
UG9vbCkpOwogICAgICAgICAgICAgICAgIGlmIChzdHlsZS0+dHJhbnNmb3JtT3JpZ2luWigpICE9
IDApCiAgICAgICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZCh6b29tQWRqdXN0ZWRQaXhlbFZh
bHVlKHN0eWxlLT50cmFuc2Zvcm1PcmlnaW5aKCksIHN0eWxlLmdldCgpLCBjc3NWYWx1ZVBvb2wp
KTsKICAgICAgICAgICAgIH0gZWxzZSB7CkBAIC0yMzMzLDcgKzIzMjksNyBAQCBQYXNzUmVmUHRy
PENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFs
dWUoaW50IHByb3BlcgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVySW1hZ2U6CiAgICAg
ICAgICAgICByZXR1cm4gdmFsdWVGb3JOaW5lUGllY2VJbWFnZShzdHlsZS0+Ym9yZGVySW1hZ2Uo
KSwgY3NzVmFsdWVQb29sKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclJhZGl1czoK
LSAgICAgICAgICAgIHJldHVybiBnZXRCb3JkZXJSYWRpdXNTaG9ydGhhbmRWYWx1ZShzdHlsZS5n
ZXQoKSwgY3NzVmFsdWVQb29sLCBtX25vZGUtPmRvY3VtZW50KCktPnZpZXdwb3J0U2l6ZSgpKTsK
KyAgICAgICAgICAgIHJldHVybiBnZXRCb3JkZXJSYWRpdXNTaG9ydGhhbmRWYWx1ZShzdHlsZS5n
ZXQoKSwgY3NzVmFsdWVQb29sKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0
OiB7CiAgICAgICAgICAgICBjb25zdCBpbnQgcHJvcGVydGllc1szXSA9IHsgQ1NTUHJvcGVydHlC
b3JkZXJSaWdodFdpZHRoLCBDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0U3R5bGUsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NTUHJvcGVydHlCb3JkZXJSaWdodENvbG9y
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55IGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQppbmRleCBiZTZiYTA0ZTY1MWViZThjNjlkNjg0NWNl
ZjViMDVjODA2MjcyZjY1Li5hNTdlZGYzZDFhNzA1ZTUwZjYzYjg5ZDA1MDMzZGU4MDRmZDIyMzg5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkKQEAgLTEwMCw3ICsxMDAsNyBAQCBzdGF0aWMgaW50
IGNzc3l5bGV4KFlZU1RZUEUqIHl5bHZhbCwgdm9pZCogcGFyc2VyKQogCiAlfQogCi0lZXhwZWN0
IDU4CislZXhwZWN0IDU1CiAKICVub25hc3NvYyBMT1dFU1RfUFJFQwogCkBAIC0xODksOSArMTg5
LDYgQEAgc3RhdGljIGludCBjc3N5eWxleChZWVNUWVBFKiB5eWx2YWwsIHZvaWQqIHBhcnNlcikK
ICV0b2tlbiA8bnVtYmVyPiBQRVJDRU5UQUdFCiAldG9rZW4gPG51bWJlcj4gRkxPQVRUT0tFTgog
JXRva2VuIDxudW1iZXI+IElOVEVHRVIKLSV0b2tlbiA8bnVtYmVyPiBWVwotJXRva2VuIDxudW1i
ZXI+IFZICi0ldG9rZW4gPG51bWJlcj4gVk1JTgogCiAldG9rZW4gPHN0cmluZz4gVVJJCiAldG9r
ZW4gPHN0cmluZz4gRlVOQ1RJT04KQEAgLTE0NzMsOSArMTQ3MCw2IEBAIHVuYXJ5X3Rlcm06CiAg
ICAgICBpZiAoRG9jdW1lbnQqIGRvYyA9IHAtPmZpbmREb2N1bWVudCgpKQogICAgICAgICAgIGRv
Yy0+c2V0VXNlc1JlbVVuaXRzKHRydWUpOwogICB9Ci0gIHwgVlcgbWF5YmVfc3BhY2UgeyAkJC5p
ZCA9IDA7ICQkLmZWYWx1ZSA9ICQxOyAkJC51bml0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19W
VzsgfQotICB8IFZIIG1heWJlX3NwYWNlIHsgJCQuaWQgPSAwOyAkJC5mVmFsdWUgPSAkMTsgJCQu
dW5pdCA9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVkg7IH0KLSAgfCBWTUlOIG1heWJlX3NwYWNl
IHsgJCQuaWQgPSAwOyAkJC5mVmFsdWUgPSAkMTsgJCQudW5pdCA9IENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfVk1JTjsgfQogICA7CiAKIGZ1bmN0aW9uOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApp
bmRleCAwZTIxYjhlNmU3NGQ3OTM1ZTU5NTg1MDFiMjYzZDUzYzRjYTNmNGMxLi5kMjVkOTNiODAz
YjcxMzMwZTFjNWE0ZTViZmE2OThhZWExNDViYTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNw
cApAQCAtNzc4LDkgKzc3OCw2IEBAIGJvb2wgQ1NTUGFyc2VyOjp2YWxpZFVuaXQoQ1NTUGFyc2Vy
VmFsdWUqIHZhbHVlLCBVbml0cyB1bml0ZmxhZ3MsIGJvb2wgc3RyaWN0KQogICAgIGNhc2UgQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU19JTjoKICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
UFQ6CiAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BDOgotICAgIGNhc2UgQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU19WVzoKLSAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVkg6
Ci0gICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1ZNSU46CiAgICAgICAgIGIgPSAodW5p
dGZsYWdzICYgRkxlbmd0aCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19NUzoKQEAgLTgxMiw4ICs4MDksNyBAQCBpbmxpbmUgUGFzc1JlZlB0cjxDU1NQ
cmltaXRpdmVWYWx1ZT4gQ1NTUGFyc2VyOjpjcmVhdGVQcmltaXRpdmVOdW1lcmljVmFsdWUoQ1NT
UAogICAgIH0KICAgICAgICAgICAgICAgIAogICAgIEFTU0VSVCgodmFsdWUtPnVuaXQgPj0gQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIgJiYgdmFsdWUtPnVuaXQgPD0gQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19LSFopCi0gICAgICAgICAgIHx8ICh2YWx1ZS0+dW5pdCA+PSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTX1RVUk4gJiYgdmFsdWUtPnVuaXQgPD0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U19SRU1TKQotICAgICAgICAgICB8fCAodmFsdWUtPnVuaXQgPj0gQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU19WVyAmJiB2YWx1ZS0+dW5pdCA8PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1ZNSU4pKTsK
KyAgICAgICAgICAgfHwgKHZhbHVlLT51bml0ID49IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVFVS
TiAmJiB2YWx1ZS0+dW5pdCA8PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1JFTVMpKTsKICAgICBy
ZXR1cm4gY3NzVmFsdWVQb29sKCktPmNyZWF0ZVZhbHVlKHZhbHVlLT5mVmFsdWUsIHN0YXRpY19j
YXN0PENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXM+KHZhbHVlLT51bml0KSk7CiB9CiAKQEAg
LTg2MiwxMiArODU4LDYgQEAgc3RhdGljIGludCB1bml0RnJvbVN0cmluZyhDU1NQYXJzZXJWYWx1
ZSogdmFsdWUpCiAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0haOwogICAg
IGlmIChlcXVhbCh2YWx1ZS0+c3RyaW5nLCAia0h6IikpCiAgICAgICAgIHJldHVybiBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX0tIWjsKLSAgICBpZiAoZXF1YWwodmFsdWUtPnN0cmluZywgInZ3Iikp
Ci0gICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1ZXOwotICAgIGlmIChlcXVh
bCh2YWx1ZS0+c3RyaW5nLCAidmgiKSkKLSAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfVkg7Ci0gICAgaWYgKGVxdWFsKHZhbHVlLT5zdHJpbmcsICJ2bWluIikpCi0gICAgICAg
IHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1ZNSU47CiAKICAgICByZXR1cm4gMDsKIH0K
QEAgLTkxMyw4ICs5MDMsNiBAQCBpbmxpbmUgUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4g
Q1NTUGFyc2VyOjpwYXJzZVZhbGlkUHJpbWl0aXZlKGludCBpZCwgQ1NTUAogICAgICAgICByZXR1
cm4gY3JlYXRlUHJpbWl0aXZlTnVtZXJpY1ZhbHVlKHZhbHVlKTsKICAgICBpZiAodmFsdWUtPnVu
aXQgPj0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19UVVJOICYmIHZhbHVlLT51bml0IDw9IENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NfUkVNUykKICAgICAgICAgcmV0dXJuIGNyZWF0ZVByaW1pdGl2ZU51
bWVyaWNWYWx1ZSh2YWx1ZSk7Ci0gICAgaWYgKHZhbHVlLT51bml0ID49IENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfVlcgJiYgdmFsdWUtPnVuaXQgPD0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19WTUlO
KQotICAgICAgICByZXR1cm4gY3JlYXRlUHJpbWl0aXZlTnVtZXJpY1ZhbHVlKHZhbHVlKTsKICAg
ICBpZiAodmFsdWUtPnVuaXQgPj0gQ1NTUGFyc2VyVmFsdWU6OlFfRU1TKQogICAgICAgICByZXR1
cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUFsbG93aW5nTWFyZ2luUXVpcmsodmFsdWUtPmZW
YWx1ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19FTVMpOwogICAgIGlmIChpc0NhbGN1bGF0aW9u
KHZhbHVlKSkKQEAgLTgwNTAsMTYgKzgwMzgsNiBAQCBpbmxpbmUgdm9pZCBDU1NQYXJzZXI6OmRl
dGVjdE51bWJlclRva2VuKFVDaGFyKiB0eXBlLCBpbnQgbGVuZ3RoKQogICAgICAgICAgICAgICAg
ICYmIGlzQVNDSUlBbHBoYUNhc2VsZXNzRXF1YWwodHlwZVsyXSwgJ3InKSAmJiBpc0FTQ0lJQWxw
aGFDYXNlbGVzc0VxdWFsKHR5cGVbM10sICduJykpCiAgICAgICAgICAgICBtX3Rva2VuID0gVFVS
TlM7CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlICd2JzoKLSAgICAgICAgaWYgKGxlbmd0aCA9
PSAyKSB7Ci0gICAgICAgICAgICBpZiAoaXNBU0NJSUFscGhhQ2FzZWxlc3NFcXVhbCh0eXBlWzFd
LCAndycpKQotICAgICAgICAgICAgICAgIG1fdG9rZW4gPSBWVzsKLSAgICAgICAgICAgIGVsc2Ug
aWYgKGlzQVNDSUlBbHBoYUNhc2VsZXNzRXF1YWwodHlwZVsxXSwgJ2gnKSkKLSAgICAgICAgICAg
ICAgICBtX3Rva2VuID0gVkg7Ci0gICAgICAgIH0gZWxzZSBpZiAobGVuZ3RoID09IDQgJiYgaXNB
U0NJSUFscGhhQ2FzZWxlc3NFcXVhbCh0eXBlWzFdLCAnbScpCi0gICAgICAgICAgICAgICAgJiYg
aXNBU0NJSUFscGhhQ2FzZWxlc3NFcXVhbCh0eXBlWzJdLCAnaScpICYmIGlzQVNDSUlBbHBoYUNh
c2VsZXNzRXF1YWwodHlwZVszXSwgJ24nKSkKLSAgICAgICAgICAgIG1fdG9rZW4gPSBWTUlOOwot
ICAgICAgICByZXR1cm47CiAKICAgICBkZWZhdWx0OgogICAgICAgICBpZiAodHlwZVswXSA9PSAn
XycgJiYgbGVuZ3RoID09IDUgJiYgdHlwZVsxXSA9PSAnXycgJiYgaXNBU0NJSUFscGhhQ2FzZWxl
c3NFcXVhbCh0eXBlWzJdLCAncScpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVl
LmNwcAppbmRleCAzOTEzYzA0YzllMmNiM2RkZjliNWQzM2M4MWFjYjY4NGNlZWFiMDgwLi4xZGRm
Yjc5OWM0NzFjZTYxNjIzNzUzMDZjNDcwMjM5NjgzYzYyMDUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKQEAgLTc3LDkgKzc3LDYgQEAgc3RhdGljIGlubGluZSBi
b29sIGlzVmFsaWRDU1NVbml0VHlwZUZvckRvdWJsZUNvbnZlcnNpb24oQ1NTUHJpbWl0aXZlVmFs
dWU6OlVuaXQKICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjogQ1NTX1JFTVM6CiAgICAgY2Fz
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6IENTU19TOgogICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6
OiBDU1NfVFVSTjoKLSAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjogQ1NTX1ZXOgotICAgIGNh
c2UgQ1NTUHJpbWl0aXZlVmFsdWU6OiBDU1NfVkg6Ci0gICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1
ZTo6IENTU19WTUlOOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIENTU1ByaW1pdGl2
ZVZhbHVlOjogQ1NTX0FUVFI6CiAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6IENTU19DT1VO
VEVSOgpAQCAtMTMzLDEwICsxMzAsNiBAQCBzdGF0aWMgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRD
YXRlZ29yeSB1bml0Q2F0ZWdvcnkoQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcwogICAgIGNh
c2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19IWjoKICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfS0haOgogICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OlVGcmVxdWVuY3k7
Ci0gICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1ZXOgotICAgIGNhc2UgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU19WSDoKLSAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVk1JTjoK
LSAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpVVmlld3BvcnRSZWxhdGl2ZUxlbmd0
aDsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OlVPdGhl
cjsKICAgICB9CkBAIC0yNzMsMTggKzI2Niw2IEBAIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmlt
aXRpdmVWYWx1ZShjb25zdCBMZW5ndGgmIGxlbmd0aCkKICAgICAgICAgICAgIEFTU0VSVChpc2Zp
bml0ZShsZW5ndGgucGVyY2VudCgpKSk7CiAgICAgICAgICAgICBtX3ZhbHVlLm51bSA9IGxlbmd0
aC5wZXJjZW50KCk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBWaWV3cG9ydFJl
bGF0aXZlV2lkdGg6Ci0gICAgICAgICAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZXOwot
ICAgICAgICAgICAgbV92YWx1ZS5udW0gPSBsZW5ndGgudmlld3BvcnRSZWxhdGl2ZUxlbmd0aCgp
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVmlld3BvcnRSZWxhdGl2ZUhlaWdo
dDoKLSAgICAgICAgICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfVkg7Ci0gICAgICAgICAg
ICBtX3ZhbHVlLm51bSA9IGxlbmd0aC52aWV3cG9ydFJlbGF0aXZlTGVuZ3RoKCk7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBWaWV3cG9ydFJlbGF0aXZlTWluOgotICAgICAgICAg
ICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WTUlOOwotICAgICAgICAgICAgbV92YWx1ZS5u
dW0gPSBsZW5ndGgudmlld3BvcnRSZWxhdGl2ZUxlbmd0aCgpOwotICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgUmVsYXRpdmU6CiAgICAgICAgIGNhc2UgVW5kZWZpbmVkOgogICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC02MTMsOCArNTk0LDYgQEAgQ1NTUHJpbWl0
aXZlVmFsdWU6OlVuaXRUeXBlcyBDU1NQcmltaXRpdmVWYWx1ZTo6Y2Fub25pY2FsVW5pdFR5cGVG
b3JDYXRlZ29yeShVbmkKICAgICAgICAgcmV0dXJuIENTU19ERUc7CiAgICAgY2FzZSBVRnJlcXVl
bmN5OgogICAgICAgICByZXR1cm4gQ1NTX0haOwotICAgIGNhc2UgVVZpZXdwb3J0UmVsYXRpdmVM
ZW5ndGg6Ci0gICAgICAgIHJldHVybiBDU1NfVU5LTk9XTjsgLy8gQ2Fubm90IGNvbnZlcnQgYmV0
d2VlbiBudW1iZXJzIGFuZCByZWxhdGl2ZSBsZW5ndGhzLgogICAgIGRlZmF1bHQ6CiAgICAgICAg
IHJldHVybiBDU1NfVU5LTk9XTjsKICAgICB9CkBAIC0xMDM1LDE1ICsxMDE0LDYgQEAgU3RyaW5n
IENTU1ByaW1pdGl2ZVZhbHVlOjpjdXN0b21Dc3NUZXh0KCkgY29uc3QKICAgICAgICAgY2FzZSBD
U1NfU0hBUEU6CiAgICAgICAgICAgICB0ZXh0ID0gbV92YWx1ZS5zaGFwZS0+Y3NzVGV4dCgpOwog
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTX1ZXOgotICAgICAgICAgICAgdGV4
dCA9IGZvcm1hdE51bWJlcihtX3ZhbHVlLm51bSkgKyAidnciOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgQ1NTX1ZIOgotICAgICAgICAgICAgdGV4dCA9IGZvcm1hdE51bWJlciht
X3ZhbHVlLm51bSkgKyAidmgiOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NT
X1ZNSU46Ci0gICAgICAgICAgICB0ZXh0ID0gZm9ybWF0TnVtYmVyKG1fdmFsdWUubnVtKSArICJ2
bWluIjsKLSAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIEFTU0VSVCghY3NzVGV4dENh
Y2hlKCkuY29udGFpbnModGhpcykpOwpAQCAtMTA1OCwyNCArMTAyOCw0IEBAIHZvaWQgQ1NTUHJp
bWl0aXZlVmFsdWU6OmFkZFN1YnJlc291cmNlU3R5bGVVUkxzKExpc3RIYXNoU2V0PEtVUkw+JiB1
cmxzLCBjb25zdCBDCiAgICAgICAgIGFkZFN1YnJlc291cmNlVVJMKHVybHMsIHN0eWxlU2hlZXQt
PmNvbXBsZXRlVVJMKG1fdmFsdWUuc3RyaW5nKSk7CiB9CiAKLUxlbmd0aCBDU1NQcmltaXRpdmVW
YWx1ZTo6dmlld3BvcnRSZWxhdGl2ZUxlbmd0aCgpCi17Ci0gICAgQVNTRVJUKGlzVmlld3BvcnRS
ZWxhdGl2ZUxlbmd0aCgpKTsKLSAgICBMZW5ndGggdmlld3BvcnRMZW5ndGg7Ci0gICAgc3dpdGNo
IChtX3ByaW1pdGl2ZVVuaXRUeXBlKSB7Ci0gICAgY2FzZSBDU1NfVlc6Ci0gICAgICAgIHZpZXdw
b3J0TGVuZ3RoID0gTGVuZ3RoKGdldERvdWJsZVZhbHVlKCksIFZpZXdwb3J0UmVsYXRpdmVXaWR0
aCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ1NTX1ZIOgotICAgICAgICB2aWV3cG9ydExl
bmd0aCA9IExlbmd0aChnZXREb3VibGVWYWx1ZSgpLCBWaWV3cG9ydFJlbGF0aXZlSGVpZ2h0KTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NfVk1JTjoKLSAgICAgICAgdmlld3BvcnRMZW5n
dGggPSBMZW5ndGgoZ2V0RG91YmxlVmFsdWUoKSwgVmlld3BvcnRSZWxhdGl2ZU1pbik7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICByZXR1
cm4gdmlld3BvcnRMZW5ndGg7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKaW5kZXggNTFjNzVlMzRjNDEzZWM1ZmYzOTk1N2Ri
ZjdjZTZlMDMxZDBlZWMwZi4uMTNlNTc2YTNlNzJmYWQ5MWRkNDg5ZTgwYWJlMGYwZmJhNTFmNjNi
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKQEAgLTgwLDEwICs4MCw2
IEBAIHB1YmxpYzoKICAgICAgICAgQ1NTX0NPVU5URVIgPSAyMywKICAgICAgICAgQ1NTX1JFQ1Qg
PSAyNCwKICAgICAgICAgQ1NTX1JHQkNPTE9SID0gMjUsCi0gICAgICAgIC8vIEZyb20gQ1NTIFZh
bHVlcyBhbmQgVW5pdHMuIFZpZXdwb3J0IFJlbGF0aXZlIExlbmd0aHMgKHZ3L3ZoL3ZtaW4pLgot
ICAgICAgICBDU1NfVlcgPSAyNiwKLSAgICAgICAgQ1NTX1ZIID0gMjcsCi0gICAgICAgIENTU19W
TUlOID0gMjgsCiAgICAgICAgIENTU19QQUlSID0gMTAwLCAvLyBXZSBlbnZpc2lvbiB0aGlzIGJl
aW5nIGV4cG9zZWQgYXMgYSBtZWFucyBvZiBnZXR0aW5nIGNvbXB1dGVkIHN0eWxlIHZhbHVlcyBm
b3IgcGFpcnMgKGJvcmRlci1zcGFjaW5nL3JhZGl1cywgYmFja2dyb3VuZC1wb3NpdGlvbiwgZXRj
LikKICAgICAgICAgQ1NTX0RBU0hCT0FSRF9SRUdJT04gPSAxMDEsIC8vIEZJWE1FOiBEYXNoYm9h
cmQgcmVnaW9uIHNob3VsZCBub3QgYmUgYSBwcmltaXRpdmUgdmFsdWUuCiAgICAgICAgIENTU19V
TklDT0RFX1JBTkdFID0gMTAyLApAQCAtMTIyLDcgKzExOCw2IEBAIHB1YmxpYzoKICAgICAgICAg
VUFuZ2xlLAogICAgICAgICBVVGltZSwKICAgICAgICAgVUZyZXF1ZW5jeSwKLSAgICAgICAgVVZp
ZXdwb3J0UmVsYXRpdmVMZW5ndGgsCiAgICAgICAgIFVPdGhlcgogICAgIH07CiAKQEAgLTE1OCw3
ICsxNTMsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0NhbGN1bGF0ZWQoKSBjb25zdCB7IHJldHVy
biBtX3ByaW1pdGl2ZVVuaXRUeXBlID09IENTU19DQUxDOyB9CiAgICAgYm9vbCBpc0NhbGN1bGF0
ZWRQZXJjZW50YWdlV2l0aE51bWJlcigpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9
PSBDU1NfQ0FMQ19QRVJDRU5UQUdFX1dJVEhfTlVNQkVSOyB9CiAgICAgYm9vbCBpc0NhbGN1bGF0
ZWRQZXJjZW50YWdlV2l0aExlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9
PSBDU1NfQ0FMQ19QRVJDRU5UQUdFX1dJVEhfTEVOR1RIOyB9Ci0gICAgYm9vbCBpc1ZpZXdwb3J0
UmVsYXRpdmVMZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX3ByaW1pdGl2ZVVuaXRUeXBlID49IENT
U19WVyAmJiBtX3ByaW1pdGl2ZVVuaXRUeXBlIDw9IENTU19WTUlOOyB9CiAKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlSWRlbnRpZmllcihpbnQgaWRlbnRp
ZmllcikgeyByZXR1cm4gYWRvcHRSZWYobmV3IENTU1ByaW1pdGl2ZVZhbHVlKGlkZW50aWZpZXIp
KTsgfQogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVDb2xv
cih1bnNpZ25lZCByZ2JWYWx1ZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENTU1ByaW1pdGl2ZVZh
bHVlKHJnYlZhbHVlKSk7IH0KQEAgLTI3NCw4ICsyNjgsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IGFkZFN1YnJlc291cmNlU3R5bGVVUkxzKExpc3RIYXNoU2V0PEtVUkw+JiwgY29uc3QgQ1NTU3R5
bGVTaGVldCopOwogCi0gICAgTGVuZ3RoIHZpZXdwb3J0UmVsYXRpdmVMZW5ndGgoKTsKLQogcHJv
dGVjdGVkOgogICAgIENTU1ByaW1pdGl2ZVZhbHVlKENsYXNzVHlwZSwgaW50IGlkZW50KTsKICAg
ICBDU1NQcmltaXRpdmVWYWx1ZShDbGFzc1R5cGUsIGNvbnN0IFN0cmluZyYsIFVuaXRUeXBlcyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaWRsIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmlkbAppbmRleCA2YzYzN2M5YWI3
NmVjMjZiM2I1Zjg5ZjMwYzQ4NDE1NzE0MDRjY2M5Li41MTdhYmEyMjZkMjZhMDNmYjk4OGVlY2Iw
NzRjNWY0YjEwMWQ3OTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0
aXZlVmFsdWUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5p
ZGwKQEAgLTQ4LDEwICs0OCw3IEBAIG1vZHVsZSBjc3MgewogICAgICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBDU1NfQ09VTlRFUiAgICA9IDIzOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9y
dCBDU1NfUkVDVCAgICAgICA9IDI0OwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1Nf
UkdCQ09MT1IgICA9IDI1OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfVlcgICAg
ICAgICA9IDI2OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfVkggICAgICAgICA9
IDI3OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfVk1JTiAgICAgICA9IDI4Owot
ICAgICAgICAKKwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgcHJp
bWl0aXZlVHlwZTsKIAogICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2b2lk
IHNldEZsb2F0VmFsdWUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWduZWQg
c2hvcnQgdW5pdFR5cGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVB
cHBseVByb3BlcnR5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZUFwcGx5UHJvcGVy
dHkuY3BwCmluZGV4IDgyMTc4OTA4OWQyMzY0YjJmNjgzZDJlNjM4NDU3ZDVlZDcyNWIyOGIuLmFi
YWM1ZjFmZWVkZGU4YmY0NTZlZmZiYTliNTA4OTI0ZTNkNzUyOTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZUFwcGx5UHJvcGVydHkuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTdHlsZUFwcGx5UHJvcGVydHkuY3BwCkBAIC0zODksOCArMzg5LDYgQEAgcHVi
bGljOgogICAgICAgICAgICAgICAgIHNldFZhbHVlKHNlbGVjdG9yLT5zdHlsZSgpLCBsZW5ndGgp
OwogICAgICAgICAgICAgfSBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNQZXJjZW50YWdlKCkp
CiAgICAgICAgICAgICAgICAgc2V0VmFsdWUoc2VsZWN0b3ItPnN0eWxlKCksIExlbmd0aChwcmlt
aXRpdmVWYWx1ZS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCkpOwotICAgICAgICAgICAgZWxz
ZSBpZiAocHJpbWl0aXZlVmFsdWUtPmlzVmlld3BvcnRSZWxhdGl2ZUxlbmd0aCgpKQotICAgICAg
ICAgICAgICAgIHNldFZhbHVlKHNlbGVjdG9yLT5zdHlsZSgpLCBwcmltaXRpdmVWYWx1ZS0+dmll
d3BvcnRSZWxhdGl2ZUxlbmd0aCgpKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtNDQyLDggKzQ0
MCw2IEBAIHB1YmxpYzoKICAgICAgICAgTGVuZ3RoIHJhZGl1c0hlaWdodDsKICAgICAgICAgaWYg
KHBhaXItPmZpcnN0KCktPmlzUGVyY2VudGFnZSgpKQogICAgICAgICAgICAgcmFkaXVzV2lkdGgg
PSBMZW5ndGgocGFpci0+Zmlyc3QoKS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7Ci0gICAg
ICAgIGVsc2UgaWYgKHBhaXItPmZpcnN0KCktPmlzVmlld3BvcnRSZWxhdGl2ZUxlbmd0aCgpKQot
ICAgICAgICAgICAgcmFkaXVzV2lkdGggPSBwYWlyLT5maXJzdCgpLT52aWV3cG9ydFJlbGF0aXZl
TGVuZ3RoKCk7CiAgICAgICAgIGVsc2UgaWYgKHBhaXItPmZpcnN0KCktPmlzQ2FsY3VsYXRlZFBl
cmNlbnRhZ2VXaXRoTGVuZ3RoKCkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FIGNhbGMoKTogaHR0
cDovL3dlYmtpdC5vcmcvYi8xNjY2MgogICAgICAgICAgICAgLy8gaGFuZGxlIHRoaXMgY2FzZQpA
QCAtNDUyLDggKzQ0OCw2IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJhZGl1c1dpZHRoID0gTGVu
Z3RoKG1heChpbnRNaW5Gb3JMZW5ndGgsIG1pbihpbnRNYXhGb3JMZW5ndGgsIHBhaXItPmZpcnN0
KCktPmNvbXB1dGVMZW5ndGg8aW50PihzZWxlY3Rvci0+c3R5bGUoKSwgc2VsZWN0b3ItPnJvb3RF
bGVtZW50U3R5bGUoKSwgc2VsZWN0b3ItPnN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKSkpKSwgRml4
ZWQpOwogICAgICAgICBpZiAocGFpci0+c2Vjb25kKCktPmlzUGVyY2VudGFnZSgpKQogICAgICAg
ICAgICAgcmFkaXVzSGVpZ2h0ID0gTGVuZ3RoKHBhaXItPnNlY29uZCgpLT5nZXREb3VibGVWYWx1
ZSgpLCBQZXJjZW50KTsKLSAgICAgICAgZWxzZSBpZiAocGFpci0+c2Vjb25kKCktPmlzVmlld3Bv
cnRSZWxhdGl2ZUxlbmd0aCgpKQotICAgICAgICAgICAgcmFkaXVzSGVpZ2h0ID0gcGFpci0+c2Vj
b25kKCktPnZpZXdwb3J0UmVsYXRpdmVMZW5ndGgoKTsKICAgICAgICAgZWxzZSBpZiAocGFpci0+
c2Vjb25kKCktPmlzQ2FsY3VsYXRlZFBlcmNlbnRhZ2VXaXRoTGVuZ3RoKCkpIHsKICAgICAgICAg
ICAgIC8vIEZJWE1FIGNhbGMoKTogaHR0cDovL3dlYmtpdC5vcmcvYi8xNjY2MgogICAgICAgICAg
ICAgLy8gaGFuZGxlIHRoaXMgY2FzZQpAQCAtNzQyLDggKzczNiw2IEBAIHB1YmxpYzoKICAgICAg
ICAgICAgICAgICBzaXplID0gcHJpbWl0aXZlVmFsdWUtPmNvbXB1dGVMZW5ndGg8ZmxvYXQ+KHNl
bGVjdG9yLT5wYXJlbnRTdHlsZSgpLCBzZWxlY3Rvci0+cm9vdEVsZW1lbnRTdHlsZSgpLCAxLjAs
IHRydWUpOwogICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmlzUGVyY2VudGFn
ZSgpKQogICAgICAgICAgICAgICAgIHNpemUgPSAocHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0VmFs
dWUoKSAqIHBhcmVudFNpemUpIC8gMTAwLjBmOwotICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0
aXZlVmFsdWUtPmlzVmlld3BvcnRSZWxhdGl2ZUxlbmd0aCgpKQotICAgICAgICAgICAgICAgIHNp
emUgPSBwcmltaXRpdmVWYWx1ZS0+dmlld3BvcnRSZWxhdGl2ZUxlbmd0aCgpLmNhbGNWYWx1ZSgw
LCBzZWxlY3Rvci0+ZG9jdW1lbnQoKS0+dmlld3BvcnRTaXplKCkpOwogICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTE3Nyw4ICsxMTY5LDYg
QEAgcHVibGljOgogICAgICAgICB9IGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc051bWJlcigp
KSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogbnVtYmVyIGFuZCBwZXJjZW50YWdlIHZhbHVlcyBz
aG91bGQgcHJvZHVjZSB0aGUgc2FtZSB0eXBlIG9mIExlbmd0aCAoaWUuIEZpeGVkIG9yIFBlcmNl
bnQpLgogICAgICAgICAgICAgbGluZUhlaWdodCA9IExlbmd0aChwcmltaXRpdmVWYWx1ZS0+Z2V0
RG91YmxlVmFsdWUoKSAqIDEwMC4wLCBQZXJjZW50KTsKLSAgICAgICAgfSBlbHNlIGlmIChwcmlt
aXRpdmVWYWx1ZS0+aXNWaWV3cG9ydFJlbGF0aXZlTGVuZ3RoKCkpIHsKLSAgICAgICAgICAgIGxp
bmVIZWlnaHQgPSBwcmltaXRpdmVWYWx1ZS0+dmlld3BvcnRSZWxhdGl2ZUxlbmd0aCgpOwogICAg
ICAgICB9IGVsc2UKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgc2VsZWN0b3ItPnN0eWxl
KCktPnNldExpbmVIZWlnaHQobGluZUhlaWdodCk7CkBAIC0xNTM3LDggKzE1MjcsNiBAQCBwdWJs
aWM6CiAgICAgICAgICAgICBsZW5ndGggPSBwcmltaXRpdmVWYWx1ZS0+Y29tcHV0ZUxlbmd0aDxM
ZW5ndGg+KHNlbGVjdG9yLT5zdHlsZSgpLCBzZWxlY3Rvci0+cm9vdEVsZW1lbnRTdHlsZSgpLCBz
ZWxlY3Rvci0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpKTsKICAgICAgICAgZWxzZSBpZiAocHJp
bWl0aXZlVmFsdWUtPmlzUGVyY2VudGFnZSgpKQogICAgICAgICAgICAgbGVuZ3RoID0gTGVuZ3Ro
KHByaW1pdGl2ZVZhbHVlLT5nZXREb3VibGVWYWx1ZSgpLCBQZXJjZW50KTsKLSAgICAgICAgZWxz
ZSBpZiAocHJpbWl0aXZlVmFsdWUtPmlzVmlld3BvcnRSZWxhdGl2ZUxlbmd0aCgpKQotICAgICAg
ICAgICAgbGVuZ3RoID0gcHJpbWl0aXZlVmFsdWUtPnZpZXdwb3J0UmVsYXRpdmVMZW5ndGgoKTsK
IAogICAgICAgICBzZWxlY3Rvci0+c3R5bGUoKS0+c2V0VmVydGljYWxBbGlnbkxlbmd0aChsZW5n
dGgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVj
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCBm
NDA3OGZjMWM4YWZkMmNmZmIxOTg3Y2MwYTM3OTU0ZTYzZWRkYWE3Li5mMWFjODU4MDMwYTQzYjY3
ODEzMTUxZDgwMTFhZjU5YTM4NjUxOGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2Vs
ZWN0b3IuY3BwCkBAIC0yNTQwLDggKzI1NDAsNiBAQCBzdGF0aWMgTGVuZ3RoIGNvbnZlcnRUb0xl
bmd0aChDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUsIFJlbmRlclN0eWxlKiBzdAog
ICAgICAgICAgICAgbCA9IExlbmd0aChwcmltaXRpdmVWYWx1ZS0+Z2V0RG91YmxlVmFsdWUoKSwg
UGVyY2VudCk7CiAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc051bWJlcigpKQog
ICAgICAgICAgICAgbCA9IExlbmd0aChwcmltaXRpdmVWYWx1ZS0+Z2V0RG91YmxlVmFsdWUoKSAq
IDEwMC4wLCBQZXJjZW50KTsKLSAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPmlzVmll
d3BvcnRSZWxhdGl2ZUxlbmd0aCgpKQotICAgICAgICAgICAgbCA9IHByaW1pdGl2ZVZhbHVlLT52
aWV3cG9ydFJlbGF0aXZlTGVuZ3RoKCk7CiAgICAgICAgIGVsc2UgaWYgKG9rKQogICAgICAgICAg
ICAgKm9rID0gZmFsc2U7CiAgICAgfQpAQCAtMjk1MywxMSArMjk1MSw2IEBAIHN0YXRpYyBib29s
IGNyZWF0ZUdyaWRUcmFja0JyZWFkdGgoQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVl
LCBDU1NTdHlsZVNlCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIGlmIChwcmlt
aXRpdmVWYWx1ZS0+aXNWaWV3cG9ydFJlbGF0aXZlTGVuZ3RoKCkpIHsKLSAgICAgICAgbGVuZ3Ro
ID0gcHJpbWl0aXZlVmFsdWUtPnZpZXdwb3J0UmVsYXRpdmVMZW5ndGgoKTsKLSAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgfQotCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkBAIC00MjU0LDggKzQy
NDcsNiBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6Om1hcEZpbGxTaXplKENTU1Byb3BlcnR5SUQs
IEZpbGxMYXllciogbGF5ZXIsIENTU1ZhbHVlKiB2YQogICAgICAgICBmaXJzdExlbmd0aCA9IGZp
cnN0LT5jb21wdXRlTGVuZ3RoPExlbmd0aD4oc3R5bGUoKSwgbV9yb290RWxlbWVudFN0eWxlLCB6
b29tRmFjdG9yKTsKICAgICBlbHNlIGlmIChmaXJzdC0+aXNQZXJjZW50YWdlKCkpCiAgICAgICAg
IGZpcnN0TGVuZ3RoID0gTGVuZ3RoKGZpcnN0LT5nZXREb3VibGVWYWx1ZSgpLCBQZXJjZW50KTsK
LSAgICBlbHNlIGlmIChmaXJzdC0+aXNWaWV3cG9ydFJlbGF0aXZlTGVuZ3RoKCkpCi0gICAgICAg
IGZpcnN0TGVuZ3RoID0gZmlyc3QtPnZpZXdwb3J0UmVsYXRpdmVMZW5ndGgoKTsKICAgICBlbHNl
CiAgICAgICAgIHJldHVybjsKIApAQCAtNDI2NSw4ICs0MjU2LDYgQEAgdm9pZCBDU1NTdHlsZVNl
bGVjdG9yOjptYXBGaWxsU2l6ZShDU1NQcm9wZXJ0eUlELCBGaWxsTGF5ZXIqIGxheWVyLCBDU1NW
YWx1ZSogdmEKICAgICAgICAgc2Vjb25kTGVuZ3RoID0gc2Vjb25kLT5jb21wdXRlTGVuZ3RoPExl
bmd0aD4oc3R5bGUoKSwgbV9yb290RWxlbWVudFN0eWxlLCB6b29tRmFjdG9yKTsKICAgICBlbHNl
IGlmIChzZWNvbmQtPmlzUGVyY2VudGFnZSgpKQogICAgICAgICBzZWNvbmRMZW5ndGggPSBMZW5n
dGgoc2Vjb25kLT5nZXREb3VibGVWYWx1ZSgpLCBQZXJjZW50KTsKLSAgICBlbHNlIGlmIChzZWNv
bmQtPmlzVmlld3BvcnRSZWxhdGl2ZUxlbmd0aCgpKQotICAgICAgICBzZWNvbmRMZW5ndGggPSBz
ZWNvbmQtPnZpZXdwb3J0UmVsYXRpdmVMZW5ndGgoKTsKICAgICBlbHNlCiAgICAgICAgIHJldHVy
bjsKIApAQCAtNDI5Myw4ICs0MjgyLDYgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjptYXBGaWxs
WFBvc2l0aW9uKENTU1Byb3BlcnR5SUQsIEZpbGxMYXllciogbGF5ZXIsIENTU1ZhbHUKICAgICAg
ICAgbCA9IHByaW1pdGl2ZVZhbHVlLT5jb21wdXRlTGVuZ3RoPExlbmd0aD4oc3R5bGUoKSwgbV9y
b290RWxlbWVudFN0eWxlLCB6b29tRmFjdG9yKTsKICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1
ZS0+aXNQZXJjZW50YWdlKCkpCiAgICAgICAgIGwgPSBMZW5ndGgocHJpbWl0aXZlVmFsdWUtPmdl
dERvdWJsZVZhbHVlKCksIFBlcmNlbnQpOwotICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5p
c1ZpZXdwb3J0UmVsYXRpdmVMZW5ndGgoKSkKLSAgICAgICAgbCA9IHByaW1pdGl2ZVZhbHVlLT52
aWV3cG9ydFJlbGF0aXZlTGVuZ3RoKCk7CiAgICAgZWxzZQogICAgICAgICByZXR1cm47CiAgICAg
bGF5ZXItPnNldFhQb3NpdGlvbihsKTsKQEAgLTQzMTgsOCArNDMwNSw2IEBAIHZvaWQgQ1NTU3R5
bGVTZWxlY3Rvcjo6bWFwRmlsbFlQb3NpdGlvbihDU1NQcm9wZXJ0eUlELCBGaWxsTGF5ZXIqIGxh
eWVyLCBDU1NWYWx1CiAgICAgICAgIGwgPSBwcmltaXRpdmVWYWx1ZS0+Y29tcHV0ZUxlbmd0aDxM
ZW5ndGg+KHN0eWxlKCksIG1fcm9vdEVsZW1lbnRTdHlsZSwgem9vbUZhY3Rvcik7CiAgICAgZWxz
ZSBpZiAocHJpbWl0aXZlVmFsdWUtPmlzUGVyY2VudGFnZSgpKQogICAgICAgICBsID0gTGVuZ3Ro
KHByaW1pdGl2ZVZhbHVlLT5nZXREb3VibGVWYWx1ZSgpLCBQZXJjZW50KTsKLSAgICBlbHNlIGlm
IChwcmltaXRpdmVWYWx1ZS0+aXNWaWV3cG9ydFJlbGF0aXZlTGVuZ3RoKCkpCi0gICAgICAgIGwg
PSBwcmltaXRpdmVWYWx1ZS0+dmlld3BvcnRSZWxhdGl2ZUxlbmd0aCgpOwogICAgIGVsc2UKICAg
ICAgICAgcmV0dXJuOwogICAgIGxheWVyLT5zZXRZUG9zaXRpb24obCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAppbmRleCBlODg3MjYyODk1MjJiMGYwNWQ3ZGZhMTJjOTBmMmNjYjQ1YzUyZmQxLi5l
OTk5MzY4NTRlOGJjMTAyNWNkNGYxMGFkNTZkNmIxOTk2ZjlmODY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKQEAgLTE3NjMsNyArMTc2Myw2IEBAIGJvb2wgRG9jdW1lbnQ6OmlzUGFnZUJveFZp
c2libGUoaW50IHBhZ2VJbmRleCkKIHZvaWQgRG9jdW1lbnQ6OnBhZ2VTaXplQW5kTWFyZ2luc0lu
UGl4ZWxzKGludCBwYWdlSW5kZXgsIEludFNpemUmIHBhZ2VTaXplLCBpbnQmIG1hcmdpblRvcCwg
aW50JiBtYXJnaW5SaWdodCwgaW50JiBtYXJnaW5Cb3R0b20sIGludCYgbWFyZ2luTGVmdCkKIHsK
ICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlID0gc3R5bGVGb3JQYWdlKHBhZ2VJbmRleCk7
Ci0gICAgSW50U2l6ZSB2aWV3U2l6ZSA9IHZpZXdwb3J0U2l6ZSgpOwogCiAgICAgaW50IHdpZHRo
ID0gcGFnZVNpemUud2lkdGgoKTsKICAgICBpbnQgaGVpZ2h0ID0gcGFnZVNpemUuaGVpZ2h0KCk7
CkBAIC0xNzgyLDggKzE3ODEsOCBAQCB2b2lkIERvY3VtZW50OjpwYWdlU2l6ZUFuZE1hcmdpbnNJ
blBpeGVscyhpbnQgcGFnZUluZGV4LCBJbnRTaXplJiBwYWdlU2l6ZSwgaW50JgogICAgICAgICBM
ZW5ndGhTaXplIHNpemUgPSBzdHlsZS0+cGFnZVNpemUoKTsKICAgICAgICAgQVNTRVJUKHNpemUu
d2lkdGgoKS5pc0ZpeGVkKCkpOwogICAgICAgICBBU1NFUlQoc2l6ZS5oZWlnaHQoKS5pc0ZpeGVk
KCkpOwotICAgICAgICB3aWR0aCA9IHNpemUud2lkdGgoKS5jYWxjVmFsdWUoMCwgdmlld1NpemUp
OwotICAgICAgICBoZWlnaHQgPSBzaXplLmhlaWdodCgpLmNhbGNWYWx1ZSgwLCB2aWV3U2l6ZSk7
CisgICAgICAgIHdpZHRoID0gc2l6ZS53aWR0aCgpLmNhbGNWYWx1ZSgwKTsKKyAgICAgICAgaGVp
Z2h0ID0gc2l6ZS5oZWlnaHQoKS5jYWxjVmFsdWUoMCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0K
ICAgICBkZWZhdWx0OgpAQCAtMTc5MywxMSArMTc5MiwxMCBAQCB2b2lkIERvY3VtZW50OjpwYWdl
U2l6ZUFuZE1hcmdpbnNJblBpeGVscyhpbnQgcGFnZUluZGV4LCBJbnRTaXplJiBwYWdlU2l6ZSwg
aW50JgogCiAgICAgLy8gVGhlIHBlcmNlbnRhZ2UgaXMgY2FsY3VsYXRlZCB3aXRoIHJlc3BlY3Qg
dG8gdGhlIHdpZHRoIGV2ZW4gZm9yIG1hcmdpbiB0b3AgYW5kIGJvdHRvbS4KICAgICAvLyBodHRw
Oi8vd3d3LnczLm9yZy9UUi9DU1MyL2JveC5odG1sI21hcmdpbi1wcm9wZXJ0aWVzCi0KLSAgICBt
YXJnaW5Ub3AgPSBzdHlsZS0+bWFyZ2luVG9wKCkuaXNBdXRvKCkgPyBtYXJnaW5Ub3AgOiBzdHls
ZS0+bWFyZ2luVG9wKCkuY2FsY1ZhbHVlKHdpZHRoLCB2aWV3U2l6ZSk7Ci0gICAgbWFyZ2luUmln
aHQgPSBzdHlsZS0+bWFyZ2luUmlnaHQoKS5pc0F1dG8oKSA/IG1hcmdpblJpZ2h0IDogc3R5bGUt
Pm1hcmdpblJpZ2h0KCkuY2FsY1ZhbHVlKHdpZHRoLCB2aWV3U2l6ZSk7Ci0gICAgbWFyZ2luQm90
dG9tID0gc3R5bGUtPm1hcmdpbkJvdHRvbSgpLmlzQXV0bygpID8gbWFyZ2luQm90dG9tIDogc3R5
bGUtPm1hcmdpbkJvdHRvbSgpLmNhbGNWYWx1ZSh3aWR0aCwgdmlld1NpemUpOwotICAgIG1hcmdp
bkxlZnQgPSBzdHlsZS0+bWFyZ2luTGVmdCgpLmlzQXV0bygpID8gbWFyZ2luTGVmdCA6IHN0eWxl
LT5tYXJnaW5MZWZ0KCkuY2FsY1ZhbHVlKHdpZHRoLCB2aWV3U2l6ZSk7CisgICAgbWFyZ2luVG9w
ID0gc3R5bGUtPm1hcmdpblRvcCgpLmlzQXV0bygpID8gbWFyZ2luVG9wIDogc3R5bGUtPm1hcmdp
blRvcCgpLmNhbGNWYWx1ZSh3aWR0aCk7CisgICAgbWFyZ2luUmlnaHQgPSBzdHlsZS0+bWFyZ2lu
UmlnaHQoKS5pc0F1dG8oKSA/IG1hcmdpblJpZ2h0IDogc3R5bGUtPm1hcmdpblJpZ2h0KCkuY2Fs
Y1ZhbHVlKHdpZHRoKTsKKyAgICBtYXJnaW5Cb3R0b20gPSBzdHlsZS0+bWFyZ2luQm90dG9tKCku
aXNBdXRvKCkgPyBtYXJnaW5Cb3R0b20gOiBzdHlsZS0+bWFyZ2luQm90dG9tKCkuY2FsY1ZhbHVl
KHdpZHRoKTsKKyAgICBtYXJnaW5MZWZ0ID0gc3R5bGUtPm1hcmdpbkxlZnQoKS5pc0F1dG8oKSA/
IG1hcmdpbkxlZnQgOiBzdHlsZS0+bWFyZ2luTGVmdCgpLmNhbGNWYWx1ZSh3aWR0aCk7CiB9CiAK
IFBhc3NSZWZQdHI8Q1NTVmFsdWVQb29sPiBEb2N1bWVudDo6Y3NzVmFsdWVQb29sKCkgY29uc3QK
QEAgLTU0NTYsMTEgKzU0NTQsNCBAQCB2b2lkIERvY3VtZW50OjpyZW1vdmVDYWNoZWRNaWNyb0Rh
dGFJdGVtTGlzdChNaWNyb0RhdGFJdGVtTGlzdCogbGlzdCwgY29uc3QgU3RyaQogfQogI2VuZGlm
CiAKLUludFNpemUgRG9jdW1lbnQ6OnZpZXdwb3J0U2l6ZSgpIGNvbnN0Ci17Ci0gICAgaWYgKCF2
aWV3KCkpCi0gICAgICAgIHJldHVybiBJbnRTaXplKCk7Ci0gICAgcmV0dXJuIHZpZXcoKS0+dmlz
aWJsZUNvbnRlbnRSZWN0KCkuc2l6ZSgpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCmluZGV4IDIyMGFmNzU3N2FkZmU5YTJkOGE3NmIxMzIwOGE5NmQ4ZjQy
ZmUzMjkuLjFlMzA1ZDQ2MGJhZDY1ZWI5N2NjMGIwMjE0YjliZjJiNzg4M2Q2MjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCkBAIC0xMTIzLDggKzExMjMsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdXNw
ZW5kU2NoZWR1bGVkVGFza3MoKTsKICAgICB2b2lkIHJlc3VtZVNjaGVkdWxlZFRhc2tzKCk7CiAK
LSAgICBJbnRTaXplIHZpZXdwb3J0U2l6ZSgpIGNvbnN0OwotCiBwcm90ZWN0ZWQ6CiAgICAgRG9j
dW1lbnQoRnJhbWUqLCBjb25zdCBLVVJMJiwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmNwcAppbmRleCBkMTMzNmYyZGFlZmE2
NTZkODY0ODU1NzU4NTQzN2ZkNmM0NWQyNTdjLi41N2I1Zjc2OGQ0ODg2MDU1YjU1NmZlOWM5NGYw
NzI3YjYwMjBmM2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuY3BwCkBA
IC0xNDMsMzAgKzE0MywyOSBAQCBQYXRoIEhUTUxBcmVhRWxlbWVudDo6Z2V0UmVnaW9uKGNvbnN0
IExheW91dFNpemUmIHNpemUpIGNvbnN0CiAgICAgfQogCiAgICAgUGF0aCBwYXRoOwotICAgIElu
dFNpemUgdmlld3BvcnRTaXplID0gZG9jdW1lbnQoKS0+dmlld3BvcnRTaXplKCk7CiAgICAgc3dp
dGNoIChzaGFwZSkgewogICAgICAgICBjYXNlIFBvbHk6CiAgICAgICAgICAgICBpZiAobV9jb29y
ZHNMZW4gPj0gNikgewogICAgICAgICAgICAgICAgIGludCBudW1Qb2ludHMgPSBtX2Nvb3Jkc0xl
biAvIDI7Ci0gICAgICAgICAgICAgICAgcGF0aC5tb3ZlVG8oRmxvYXRQb2ludChtX2Nvb3Jkc1sw
XS5jYWxjTWluVmFsdWUod2lkdGgsIHZpZXdwb3J0U2l6ZSksIG1fY29vcmRzWzFdLmNhbGNNaW5W
YWx1ZShoZWlnaHQsIHZpZXdwb3J0U2l6ZSkpKTsKKyAgICAgICAgICAgICAgICBwYXRoLm1vdmVU
byhGbG9hdFBvaW50KG1fY29vcmRzWzBdLmNhbGNNaW5WYWx1ZSh3aWR0aCksIG1fY29vcmRzWzFd
LmNhbGNNaW5WYWx1ZShoZWlnaHQpKSk7CiAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7
IGkgPCBudW1Qb2ludHM7ICsraSkKLSAgICAgICAgICAgICAgICAgICAgcGF0aC5hZGRMaW5lVG8o
RmxvYXRQb2ludChtX2Nvb3Jkc1tpICogMl0uY2FsY01pblZhbHVlKHdpZHRoLCB2aWV3cG9ydFNp
emUpLCBtX2Nvb3Jkc1tpICogMiArIDFdLmNhbGNNaW5WYWx1ZShoZWlnaHQsIHZpZXdwb3J0U2l6
ZSkpKTsKKyAgICAgICAgICAgICAgICAgICAgcGF0aC5hZGRMaW5lVG8oRmxvYXRQb2ludChtX2Nv
b3Jkc1tpICogMl0uY2FsY01pblZhbHVlKHdpZHRoKSwgbV9jb29yZHNbaSAqIDIgKyAxXS5jYWxj
TWluVmFsdWUoaGVpZ2h0KSkpOwogICAgICAgICAgICAgICAgIHBhdGguY2xvc2VTdWJwYXRoKCk7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDaXJjbGU6
CiAgICAgICAgICAgICBpZiAobV9jb29yZHNMZW4gPj0gMykgewogICAgICAgICAgICAgICAgIExl
bmd0aCByYWRpdXMgPSBtX2Nvb3Jkc1syXTsKLSAgICAgICAgICAgICAgICBpbnQgciA9IG1pbihy
YWRpdXMuY2FsY01pblZhbHVlKHdpZHRoLCB2aWV3cG9ydFNpemUpLCByYWRpdXMuY2FsY01pblZh
bHVlKGhlaWdodCwgdmlld3BvcnRTaXplKSk7Ci0gICAgICAgICAgICAgICAgcGF0aC5hZGRFbGxp
cHNlKEZsb2F0UmVjdChtX2Nvb3Jkc1swXS5jYWxjTWluVmFsdWUod2lkdGgsIHZpZXdwb3J0U2l6
ZSkgLSByLCBtX2Nvb3Jkc1sxXS5jYWxjTWluVmFsdWUoaGVpZ2h0LCB2aWV3cG9ydFNpemUpIC0g
ciwgMiAqIHIsIDIgKiByKSk7CisgICAgICAgICAgICAgICAgaW50IHIgPSBtaW4ocmFkaXVzLmNh
bGNNaW5WYWx1ZSh3aWR0aCksIHJhZGl1cy5jYWxjTWluVmFsdWUoaGVpZ2h0KSk7CisgICAgICAg
ICAgICAgICAgcGF0aC5hZGRFbGxpcHNlKEZsb2F0UmVjdChtX2Nvb3Jkc1swXS5jYWxjTWluVmFs
dWUod2lkdGgpIC0gciwgbV9jb29yZHNbMV0uY2FsY01pblZhbHVlKGhlaWdodCkgLSByLCAyICog
ciwgMiAqIHIpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIFJlY3Q6CiAgICAgICAgICAgICBpZiAobV9jb29yZHNMZW4gPj0gNCkgewotICAgICAgICAg
ICAgICAgIGludCB4MCA9IG1fY29vcmRzWzBdLmNhbGNNaW5WYWx1ZSh3aWR0aCwgdmlld3BvcnRT
aXplKTsKLSAgICAgICAgICAgICAgICBpbnQgeTAgPSBtX2Nvb3Jkc1sxXS5jYWxjTWluVmFsdWUo
aGVpZ2h0LCB2aWV3cG9ydFNpemUpOwotICAgICAgICAgICAgICAgIGludCB4MSA9IG1fY29vcmRz
WzJdLmNhbGNNaW5WYWx1ZSh3aWR0aCwgdmlld3BvcnRTaXplKTsKLSAgICAgICAgICAgICAgICBp
bnQgeTEgPSBtX2Nvb3Jkc1szXS5jYWxjTWluVmFsdWUoaGVpZ2h0LCB2aWV3cG9ydFNpemUpOwor
ICAgICAgICAgICAgICAgIGludCB4MCA9IG1fY29vcmRzWzBdLmNhbGNNaW5WYWx1ZSh3aWR0aCk7
CisgICAgICAgICAgICAgICAgaW50IHkwID0gbV9jb29yZHNbMV0uY2FsY01pblZhbHVlKGhlaWdo
dCk7CisgICAgICAgICAgICAgICAgaW50IHgxID0gbV9jb29yZHNbMl0uY2FsY01pblZhbHVlKHdp
ZHRoKTsKKyAgICAgICAgICAgICAgICBpbnQgeTEgPSBtX2Nvb3Jkc1szXS5jYWxjTWluVmFsdWUo
aGVpZ2h0KTsKICAgICAgICAgICAgICAgICBwYXRoLmFkZFJlY3QoRmxvYXRSZWN0KHgwLCB5MCwg
eDEgLSB4MCwgeTEgLSB5MCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xlbmd0aC5oCmluZGV4IGYxY2EzNjQ1YTYxMjY5ZmFlZDM3MTZhM2VlZmQ3
YzYwZGU1NTY3ZTEuLjUzYjAyNjBjMjA3YjA3ODI4OTVlZjM3N2M4NGNmNjE2NDc1NzQ5N2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5oCkBAIC0yMyw3ICsyMyw2IEBACiAjZGVmaW5lIExlbmd0
aF9oCiAKICNpbmNsdWRlICJBbmltYXRpb25VdGlsaXRpZXMuaCIKLSNpbmNsdWRlICJJbnRTaXpl
LmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvRmFzdEFsbG9j
QmFzZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0zNSw3ICszNCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNvbnN0IGludCBpbnRNYXhGb3JMZW5ndGggPSAweDdmZmZmZmY7IC8v
IG1heCB2YWx1ZSBmb3IgYSAyOC1iaXQgaW50CiBjb25zdCBpbnQgaW50TWluRm9yTGVuZ3RoID0g
KC0weDdmZmZmZmYgLSAxKTsgLy8gbWluIHZhbHVlIGZvciBhIDI4LWJpdCBpbnQKIAotZW51bSBM
ZW5ndGhUeXBlIHsgQXV0bywgUmVsYXRpdmUsIFBlcmNlbnQsIEZpeGVkLCBJbnRyaW5zaWMsIE1p
bkludHJpbnNpYywgVmlld3BvcnRSZWxhdGl2ZVdpZHRoLCBWaWV3cG9ydFJlbGF0aXZlSGVpZ2h0
LCBWaWV3cG9ydFJlbGF0aXZlTWluLCBVbmRlZmluZWQgfTsKK2VudW0gTGVuZ3RoVHlwZSB7IEF1
dG8sIFJlbGF0aXZlLCBQZXJjZW50LCBGaXhlZCwgSW50cmluc2ljLCBNaW5JbnRyaW5zaWMsIFVu
ZGVmaW5lZCB9OwogCiBzdHJ1Y3QgTGVuZ3RoIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKQEAgLTEyNCwxOCArMTIzLDE0IEBAIHB1YmxpYzoKIAogICAgIC8vIE5vdGU6IE1heSBvbmx5
IGJlIGNhbGxlZCBmb3IgRml4ZWQsIFBlcmNlbnQgYW5kIEF1dG8gbGVuZ3Rocy4KICAgICAvLyBP
dGhlciB0eXBlcyB3aWxsIEFTU0VSVCBpbiBvcmRlciB0byBjYXRjaCBpbnZhbGlkIGxlbmd0aCBj
YWxjdWxhdGlvbnMuCi0gICAgaW50IGNhbGNWYWx1ZShpbnQgbWF4VmFsdWUsIEludFNpemUgdmll
d3BvcnRTaXplID0gSW50U2l6ZSgpLCBib29sIHJvdW5kUGVyY2VudGFnZXMgPSBmYWxzZSkgY29u
c3QKKyAgICBpbnQgY2FsY1ZhbHVlKGludCBtYXhWYWx1ZSwgYm9vbCByb3VuZFBlcmNlbnRhZ2Vz
ID0gZmFsc2UpIGNvbnN0CiAgICAgewogICAgICAgICBzd2l0Y2ggKHR5cGUoKSkgewogICAgICAg
ICAgICAgY2FzZSBGaXhlZDoKICAgICAgICAgICAgIGNhc2UgUGVyY2VudDoKLSAgICAgICAgICAg
ICAgICByZXR1cm4gY2FsY01pblZhbHVlKG1heFZhbHVlLCB2aWV3cG9ydFNpemUsIHJvdW5kUGVy
Y2VudGFnZXMpOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxjTWluVmFsdWUobWF4VmFsdWUs
IHJvdW5kUGVyY2VudGFnZXMpOwogICAgICAgICAgICAgY2FzZSBBdXRvOgogICAgICAgICAgICAg
ICAgIHJldHVybiBtYXhWYWx1ZTsKLSAgICAgICAgICAgIGNhc2UgVmlld3BvcnRSZWxhdGl2ZVdp
ZHRoOgotICAgICAgICAgICAgY2FzZSBWaWV3cG9ydFJlbGF0aXZlSGVpZ2h0OgotICAgICAgICAg
ICAgY2FzZSBWaWV3cG9ydFJlbGF0aXZlTWluOgotICAgICAgICAgICAgICAgIHJldHVybiBjYWxj
TWluVmFsdWUobWF4VmFsdWUsIHZpZXdwb3J0U2l6ZSwgcm91bmRQZXJjZW50YWdlcyk7ICAgICAg
ICAgICAgCiAgICAgICAgICAgICBjYXNlIFJlbGF0aXZlOgogICAgICAgICAgICAgY2FzZSBJbnRy
aW5zaWM6CiAgICAgICAgICAgICBjYXNlIE1pbkludHJpbnNpYzoKQEAgLTE0Nyw3ICsxNDIsNyBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIGludCBjYWxjTWluVmFs
dWUoaW50IG1heFZhbHVlLCBJbnRTaXplIHZpZXdwb3J0U2l6ZSA9IEludFNpemUoKSwgYm9vbCBy
b3VuZFBlcmNlbnRhZ2VzID0gZmFsc2UpIGNvbnN0CisgICAgaW50IGNhbGNNaW5WYWx1ZShpbnQg
bWF4VmFsdWUsIGJvb2wgcm91bmRQZXJjZW50YWdlcyA9IGZhbHNlKSBjb25zdAogICAgIHsKICAg
ICAgICAgc3dpdGNoICh0eXBlKCkpIHsKICAgICAgICAgICAgIGNhc2UgRml4ZWQ6CkBAIC0xNTks
MTIgKzE1NCw2IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
aW50PihzdGF0aWNfY2FzdDxmbG9hdD4obWF4VmFsdWUgKiBwZXJjZW50KCkgLyAxMDAuMGYpKTsK
ICAgICAgICAgICAgIGNhc2UgQXV0bzoKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAg
ICAgICAgIGNhc2UgVmlld3BvcnRSZWxhdGl2ZVdpZHRoOgotICAgICAgICAgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxpbnQ+KHZpZXdwb3J0U2l6ZS53aWR0aCgpICogdmlld3BvcnRSZWxhdGl2
ZUxlbmd0aCgpIC8gMTAwLjBmKTsKLSAgICAgICAgICAgIGNhc2UgVmlld3BvcnRSZWxhdGl2ZUhl
aWdodDoKLSAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50Pih2aWV3cG9ydFNp
emUuaGVpZ2h0KCkgKiB2aWV3cG9ydFJlbGF0aXZlTGVuZ3RoKCkgLyAxMDAuMGYpOwotICAgICAg
ICAgICAgY2FzZSBWaWV3cG9ydFJlbGF0aXZlTWluOgotICAgICAgICAgICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDxpbnQ+KHN0ZDo6bWluKHZpZXdwb3J0U2l6ZS53aWR0aCgpLCB2aWV3cG9ydFNp
emUuaGVpZ2h0KCkpICogdmlld3BvcnRSZWxhdGl2ZUxlbmd0aCgpIC8gMTAwLjBmKTsKICAgICAg
ICAgICAgIGNhc2UgUmVsYXRpdmU6CiAgICAgICAgICAgICBjYXNlIEludHJpbnNpYzoKICAgICAg
ICAgICAgIGNhc2UgTWluSW50cmluc2ljOgpAQCAtMTc2LDcgKzE2NSw3IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgZmxvYXQgY2FsY0Zsb2F0VmFsdWUoaW50IG1h
eFZhbHVlLCBJbnRTaXplIHZpZXdwb3J0U2l6ZSA9IEludFNpemUoKSkgY29uc3QKKyAgICBmbG9h
dCBjYWxjRmxvYXRWYWx1ZShpbnQgbWF4VmFsdWUpIGNvbnN0CiAgICAgewogICAgICAgICBzd2l0
Y2ggKHR5cGUoKSkgewogICAgICAgICAgICAgY2FzZSBGaXhlZDoKQEAgLTE4NSwxMiArMTc0LDYg
QEAgcHVibGljOgogICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4obWF4
VmFsdWUgKiBwZXJjZW50KCkgLyAxMDAuMGYpOwogICAgICAgICAgICAgY2FzZSBBdXRvOgogICAg
ICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4obWF4VmFsdWUpOwotICAgICAg
ICAgICAgY2FzZSBWaWV3cG9ydFJlbGF0aXZlV2lkdGg6Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGZsb2F0Pih2aWV3cG9ydFNpemUud2lkdGgoKSAqIHZpZXdwb3J0UmVsYXRp
dmVMZW5ndGgoKSAvIDEwMC4wZik7Ci0gICAgICAgICAgICBjYXNlIFZpZXdwb3J0UmVsYXRpdmVI
ZWlnaHQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0Pih2aWV3cG9y
dFNpemUuaGVpZ2h0KCkgKiB2aWV3cG9ydFJlbGF0aXZlTGVuZ3RoKCkgLyAxMDAuMGYpOwotICAg
ICAgICAgICAgY2FzZSBWaWV3cG9ydFJlbGF0aXZlTWluOgotICAgICAgICAgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxmbG9hdD4oc3RkOjptaW4odmlld3BvcnRTaXplLndpZHRoKCksIHZpZXdw
b3J0U2l6ZS5oZWlnaHQoKSkgKiB2aWV3cG9ydFJlbGF0aXZlTGVuZ3RoKCkgLyAxMDAuMGYpOwog
ICAgICAgICAgICAgY2FzZSBSZWxhdGl2ZToKICAgICAgICAgICAgIGNhc2UgSW50cmluc2ljOgog
ICAgICAgICAgICAgY2FzZSBNaW5JbnRyaW5zaWM6CkBAIC0yNDIsMTMgKzIyNSw2IEBAIHB1Ymxp
YzoKICAgICAgICAgZmxvYXQgdG9WYWx1ZSA9IGlzWmVybygpID8gMCA6IHZhbHVlKCk7CiAgICAg
ICAgIHJldHVybiBMZW5ndGgoV2ViQ29yZTo6YmxlbmQoZnJvbVZhbHVlLCB0b1ZhbHVlLCBwcm9n
cmVzcyksIHJlc3VsdFR5cGUpOwogICAgIH0KLSAgICAKLSAgICBib29sIGlzVmlld3BvcnRSZWxh
dGl2ZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA+PSBWaWV3cG9ydFJlbGF0aXZlV2lkdGggJiYg
dHlwZSgpIDw9IFZpZXdwb3J0UmVsYXRpdmVNaW47IH0KLSAgICBmbG9hdCB2aWV3cG9ydFJlbGF0
aXZlTGVuZ3RoKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChpc1ZpZXdwb3J0UmVsYXRp
dmUoKSk7Ci0gICAgICAgIHJldHVybiBnZXRGbG9hdFZhbHVlKCk7Ci0gICAgfQogCiBwcml2YXRl
OgogICAgIGludCBnZXRJbnRWYWx1ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQlIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJSLmNwcAppbmRleCBjNDUzY2RjYTFiNDllOWJkMWFmOTkyMmZhZDU1Mzk4YjhmNjg2ZGY5Li5j
YTE0ZTQ1YmVkMjgzMjVjNGQ3N2M4YzM0YjZhZDNlYzg5Y2IwOTQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQlIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCUi5jcHAKQEAgLTQzLDExICs0MywxMSBAQCBpbnQgUmVuZGVyQlI6Omxp
bmVIZWlnaHQoYm9vbCBmaXJzdExpbmUpIGNvbnN0CiAgICAgaWYgKGZpcnN0TGluZSAmJiBkb2N1
bWVudCgpLT51c2VzRmlyc3RMaW5lUnVsZXMoKSkgewogICAgICAgICBSZW5kZXJTdHlsZSogcyA9
IHN0eWxlKGZpcnN0TGluZSk7CiAgICAgICAgIGlmIChzICE9IHN0eWxlKCkpCi0gICAgICAgICAg
ICByZXR1cm4gcy0+Y29tcHV0ZWRMaW5lSGVpZ2h0KHZpZXdwb3J0U2l6ZSgpKTsKKyAgICAgICAg
ICAgIHJldHVybiBzLT5jb21wdXRlZExpbmVIZWlnaHQoKTsKICAgICB9CiAgICAgCiAgICAgaWYg
KG1fbGluZUhlaWdodCA9PSAtMSkKLSAgICAgICAgbV9saW5lSGVpZ2h0ID0gc3R5bGUoKS0+Y29t
cHV0ZWRMaW5lSGVpZ2h0KHZpZXdwb3J0U2l6ZSgpKTsKKyAgICAgICAgbV9saW5lSGVpZ2h0ID0g
c3R5bGUoKS0+Y29tcHV0ZWRMaW5lSGVpZ2h0KCk7CiAgICAgCiAgICAgcmV0dXJuIG1fbGluZUhl
aWdodDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IDcw
MDBjMmQzNTNlMTBkMjg3ZmJjMjhlZDJiNGZiZTZlZGExZmU1ZmEuLjYwMTFhMzk3Yjg5NGI1MzFi
OWZjZGEyMjFmZDAzMmE2YWEwOTM2YWYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcApAQCAtNTc5NCwxMSArNTc5NCwxMSBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2Nr
OjpsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSBkaXJlY3Rpb24s
CiAgICAgaWYgKGZpcnN0TGluZSAmJiBkb2N1bWVudCgpLT51c2VzRmlyc3RMaW5lUnVsZXMoKSkg
ewogICAgICAgICBSZW5kZXJTdHlsZSogcyA9IHN0eWxlKGZpcnN0TGluZSk7CiAgICAgICAgIGlm
IChzICE9IHN0eWxlKCkpCi0gICAgICAgICAgICByZXR1cm4gcy0+Y29tcHV0ZWRMaW5lSGVpZ2h0
KHZpZXdwb3J0U2l6ZSgpKTsKKyAgICAgICAgICAgIHJldHVybiBzLT5jb21wdXRlZExpbmVIZWln
aHQoKTsKICAgICB9CiAgICAgCiAgICAgaWYgKG1fbGluZUhlaWdodCA9PSAtMSkKLSAgICAgICAg
bV9saW5lSGVpZ2h0ID0gc3R5bGUoKS0+Y29tcHV0ZWRMaW5lSGVpZ2h0KHZpZXdwb3J0U2l6ZSgp
KTsKKyAgICAgICAgbV9saW5lSGVpZ2h0ID0gc3R5bGUoKS0+Y29tcHV0ZWRMaW5lSGVpZ2h0KCk7
CiAKICAgICByZXR1cm4gbV9saW5lSGVpZ2h0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmNwcAppbmRleCA3NmQ0NzRkZDdhMzliNjZlYzkxOTBhZjU4MmM2MjYzZTU2OTczNzk5
Li41NDEyOGY5N2Q5MDk4ZDBjY2RkODlkNDM5MzYxNGI5OTJhOTY4Yjc3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtNjE1LDEwICs2MTUsOSBAQCBpbnQgUmVuZGVy
Qm94OjpyZWZsZWN0aW9uT2Zmc2V0KCkgY29uc3QKIHsKICAgICBpZiAoIXN0eWxlKCktPmJveFJl
ZmxlY3QoKSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgSW50U2l6ZSB2aWV3U2l6ZSA9IHZpZXdw
b3J0U2l6ZSgpOwogICAgIGlmIChzdHlsZSgpLT5ib3hSZWZsZWN0KCktPmRpcmVjdGlvbigpID09
IFJlZmxlY3Rpb25MZWZ0IHx8IHN0eWxlKCktPmJveFJlZmxlY3QoKS0+ZGlyZWN0aW9uKCkgPT0g
UmVmbGVjdGlvblJpZ2h0KQotICAgICAgICByZXR1cm4gc3R5bGUoKS0+Ym94UmVmbGVjdCgpLT5v
ZmZzZXQoKS5jYWxjVmFsdWUoYm9yZGVyQm94UmVjdCgpLndpZHRoKCksIHZpZXdTaXplKTsKLSAg
ICByZXR1cm4gc3R5bGUoKS0+Ym94UmVmbGVjdCgpLT5vZmZzZXQoKS5jYWxjVmFsdWUoYm9yZGVy
Qm94UmVjdCgpLmhlaWdodCgpLCB2aWV3U2l6ZSk7CisgICAgICAgIHJldHVybiBzdHlsZSgpLT5i
b3hSZWZsZWN0KCktPm9mZnNldCgpLmNhbGNWYWx1ZShib3JkZXJCb3hSZWN0KCkud2lkdGgoKSk7
CisgICAgcmV0dXJuIHN0eWxlKCktPmJveFJlZmxlY3QoKS0+b2Zmc2V0KCkuY2FsY1ZhbHVlKGJv
cmRlckJveFJlY3QoKS5oZWlnaHQoKSk7CiB9CiAKIExheW91dFJlY3QgUmVuZGVyQm94OjpyZWZs
ZWN0ZWRSZWN0KGNvbnN0IExheW91dFJlY3QmIHIpIGNvbnN0CkBAIC05NDUsNyArOTQ0LDcgQEAg
dm9pZCBSZW5kZXJCb3g6OnBhaW50Qm94RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiBwYWludEluZm8s
IGNvbnN0IExheW91dFBvaW50JiBwYWkKICAgICAgICAgLy8gVG8gYXZvaWQgdGhlIGJhY2tncm91
bmQgY29sb3IgYmxlZWRpbmcgb3V0IGJlaGluZCB0aGUgYm9yZGVyLCB3ZSdsbCByZW5kZXIgYmFj
a2dyb3VuZCBhbmQgYm9yZGVyCiAgICAgICAgIC8vIGludG8gYSB0cmFuc3BhcmVuY3kgbGF5ZXIs
IGFuZCB0aGVuIGNsaXAgdGhhdCBpbiBvbmUgZ28gKHdoaWNoIHJlcXVpcmVzIHNldHRpbmcgdXAg
dGhlIGNsaXAgYmVmb3JlCiAgICAgICAgIC8vIGJlZ2lubmluZyB0aGUgbGF5ZXIpLgotICAgICAg
ICBSb3VuZGVkUmVjdCBib3JkZXIgPSBzdHlsZSgpLT5nZXRSb3VuZGVkQm9yZGVyRm9yKHBhaW50
UmVjdCwgdmlld3BvcnRTaXplKCkpOworICAgICAgICBSb3VuZGVkUmVjdCBib3JkZXIgPSBzdHls
ZSgpLT5nZXRSb3VuZGVkQm9yZGVyRm9yKHBhaW50UmVjdCk7CiAgICAgICAgIHN0YXRlU2F2ZXIu
c2F2ZSgpOwogICAgICAgICBwYWludEluZm8uY29udGV4dC0+YWRkUm91bmRlZFJlY3RDbGlwKGJv
cmRlcik7CiAgICAgICAgIHBhaW50SW5mby5jb250ZXh0LT5iZWdpblRyYW5zcGFyZW5jeUxheWVy
KDEpOwpAQCAtMTI0NiwxMCArMTI0NSw5IEBAIExheW91dFJlY3QgUmVuZGVyQm94OjpjbGlwUmVj
dChjb25zdCBMYXlvdXRQb2ludCYgbG9jYXRpb24sIFJlbmRlclJlZ2lvbiogcmVnaW9uCiB7CiAg
ICAgTGF5b3V0UmVjdCBib3JkZXJCb3hSZWN0ID0gYm9yZGVyQm94UmVjdEluUmVnaW9uKHJlZ2lv
bik7CiAgICAgTGF5b3V0UmVjdCBjbGlwUmVjdCA9IExheW91dFJlY3QoYm9yZGVyQm94UmVjdC5s
b2NhdGlvbigpICsgbG9jYXRpb24sIGJvcmRlckJveFJlY3Quc2l6ZSgpKTsKLSAgICBJbnRTaXpl
IHZpZXdTaXplID0gdmlld3BvcnRTaXplKCk7CiAKICAgICBpZiAoIXN0eWxlKCktPmNsaXBMZWZ0
KCkuaXNBdXRvKCkpIHsKLSAgICAgICAgTGF5b3V0VW5pdCBjID0gc3R5bGUoKS0+Y2xpcExlZnQo
KS5jYWxjVmFsdWUoYm9yZGVyQm94UmVjdC53aWR0aCgpLCB2aWV3U2l6ZSk7CisgICAgICAgIExh
eW91dFVuaXQgYyA9IHN0eWxlKCktPmNsaXBMZWZ0KCkuY2FsY1ZhbHVlKGJvcmRlckJveFJlY3Qu
d2lkdGgoKSk7CiAgICAgICAgIGNsaXBSZWN0Lm1vdmUoYywgMCk7CiAgICAgICAgIGNsaXBSZWN0
LmNvbnRyYWN0KGMsIDApOwogICAgIH0KQEAgLTEyNTgsMTYgKzEyNTYsMTYgQEAgTGF5b3V0UmVj
dCBSZW5kZXJCb3g6OmNsaXBSZWN0KGNvbnN0IExheW91dFBvaW50JiBsb2NhdGlvbiwgUmVuZGVy
UmVnaW9uKiByZWdpb24KICAgICAvLyBmcm9tIHRoZSBsZWZ0IGFuZCB0b3AgZWRnZXMuIFRoZXJl
Zm9yZSBpdCdzIGJldHRlciB0byBhdm9pZCBjb25zdHJhaW5pbmcgdG8gc21hbGxlciB3aWR0aHMg
YW5kIGhlaWdodHMuCiAKICAgICBpZiAoIXN0eWxlKCktPmNsaXBSaWdodCgpLmlzQXV0bygpKQot
ICAgICAgICBjbGlwUmVjdC5jb250cmFjdCh3aWR0aCgpIC0gc3R5bGUoKS0+Y2xpcFJpZ2h0KCku
Y2FsY1ZhbHVlKHdpZHRoKCksIHZpZXdTaXplKSwgMCk7CisgICAgICAgIGNsaXBSZWN0LmNvbnRy
YWN0KHdpZHRoKCkgLSBzdHlsZSgpLT5jbGlwUmlnaHQoKS5jYWxjVmFsdWUod2lkdGgoKSksIDAp
OwogCiAgICAgaWYgKCFzdHlsZSgpLT5jbGlwVG9wKCkuaXNBdXRvKCkpIHsKLSAgICAgICAgTGF5
b3V0VW5pdCBjID0gc3R5bGUoKS0+Y2xpcFRvcCgpLmNhbGNWYWx1ZShib3JkZXJCb3hSZWN0Lmhl
aWdodCgpLCB2aWV3U2l6ZSk7CisgICAgICAgIExheW91dFVuaXQgYyA9IHN0eWxlKCktPmNsaXBU
b3AoKS5jYWxjVmFsdWUoYm9yZGVyQm94UmVjdC5oZWlnaHQoKSk7CiAgICAgICAgIGNsaXBSZWN0
Lm1vdmUoMCwgYyk7CiAgICAgICAgIGNsaXBSZWN0LmNvbnRyYWN0KDAsIGMpOwogICAgIH0KIAog
ICAgIGlmICghc3R5bGUoKS0+Y2xpcEJvdHRvbSgpLmlzQXV0bygpKQotICAgICAgICBjbGlwUmVj
dC5jb250cmFjdCgwLCBoZWlnaHQoKSAtIHN0eWxlKCktPmNsaXBCb3R0b20oKS5jYWxjVmFsdWUo
aGVpZ2h0KCksIHZpZXdTaXplKSk7CisgICAgICAgIGNsaXBSZWN0LmNvbnRyYWN0KDAsIGhlaWdo
dCgpIC0gc3R5bGUoKS0+Y2xpcEJvdHRvbSgpLmNhbGNWYWx1ZShoZWlnaHQoKSkpOwogCiAgICAg
cmV0dXJuIGNsaXBSZWN0OwogfQpAQCAtMTcyMiw3ICsxNzIwLDYgQEAgdm9pZCBSZW5kZXJCb3g6
OmNvbXB1dGVMb2dpY2FsV2lkdGhJblJlZ2lvbihSZW5kZXJSZWdpb24qIHJlZ2lvbiwgTGF5b3V0
VW5pdCBvZmYKICAgICBib29sIGluVmVydGljYWxCb3ggPSBwYXJlbnQoKS0+aXNEZXByZWNhdGVk
RmxleGlibGVCb3goKSAmJiAocGFyZW50KCktPnN0eWxlKCktPmJveE9yaWVudCgpID09IFZFUlRJ
Q0FMKTsKICAgICBib29sIHN0cmV0Y2hpbmcgPSAocGFyZW50KCktPnN0eWxlKCktPmJveEFsaWdu
KCkgPT0gQlNUUkVUQ0gpOwogICAgIGJvb2wgdHJlYXRBc1JlcGxhY2VkID0gc2hvdWxkQ29tcHV0
ZVNpemVBc1JlcGxhY2VkKCkgJiYgKCFpblZlcnRpY2FsQm94IHx8ICFzdHJldGNoaW5nKTsKLSAg
ICBJbnRTaXplIHZpZXdTaXplID0gdmlld3BvcnRTaXplKCk7CiAKICAgICBSZW5kZXJTdHlsZSog
c3R5bGVUb1VzZSA9IHN0eWxlKCk7CiAgICAgTGVuZ3RoIGxvZ2ljYWxXaWR0aExlbmd0aCA9ICh0
cmVhdEFzUmVwbGFjZWQpID8gTGVuZ3RoKGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aCgpLCBG
aXhlZCkgOiBzdHlsZVRvVXNlLT5sb2dpY2FsV2lkdGgoKTsKQEAgLTE3MzYsOCArMTczMyw4IEBA
IHZvaWQgUmVuZGVyQm94Ojpjb21wdXRlTG9naWNhbFdpZHRoSW5SZWdpb24oUmVuZGVyUmVnaW9u
KiByZWdpb24sIExheW91dFVuaXQgb2ZmCiAgICAgCiAgICAgaWYgKGlzSW5saW5lKCkgJiYgIWlz
SW5saW5lQmxvY2tPcklubGluZVRhYmxlKCkpIHsKICAgICAgICAgLy8ganVzdCBjYWxjdWxhdGUg
bWFyZ2lucwotICAgICAgICBzZXRNYXJnaW5TdGFydChzdHlsZVRvVXNlLT5tYXJnaW5TdGFydCgp
LmNhbGNNaW5WYWx1ZShjb250YWluZXJMb2dpY2FsV2lkdGgsIHZpZXdTaXplKSk7Ci0gICAgICAg
IHNldE1hcmdpbkVuZChzdHlsZVRvVXNlLT5tYXJnaW5FbmQoKS5jYWxjTWluVmFsdWUoY29udGFp
bmVyTG9naWNhbFdpZHRoLCB2aWV3U2l6ZSkpOworICAgICAgICBzZXRNYXJnaW5TdGFydChzdHls
ZVRvVXNlLT5tYXJnaW5TdGFydCgpLmNhbGNNaW5WYWx1ZShjb250YWluZXJMb2dpY2FsV2lkdGgp
KTsKKyAgICAgICAgc2V0TWFyZ2luRW5kKHN0eWxlVG9Vc2UtPm1hcmdpbkVuZCgpLmNhbGNNaW5W
YWx1ZShjb250YWluZXJMb2dpY2FsV2lkdGgpKTsKICAgICAgICAgaWYgKHRyZWF0QXNSZXBsYWNl
ZCkKICAgICAgICAgICAgIHNldExvZ2ljYWxXaWR0aChtYXg8TGF5b3V0VW5pdD4obG9naWNhbFdp
ZHRoTGVuZ3RoLmNhbGNGbG9hdFZhbHVlKDApICsgYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxXaWR0
aCgpLCBtaW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSkpOwogICAgICAgICByZXR1cm47CkBAIC0x
Nzc1LDggKzE3NzIsOCBAQCB2b2lkIFJlbmRlckJveDo6Y29tcHV0ZUxvZ2ljYWxXaWR0aEluUmVn
aW9uKFJlbmRlclJlZ2lvbiogcmVnaW9uLCBMYXlvdXRVbml0IG9mZgogCiAgICAgLy8gTWFyZ2lu
IGNhbGN1bGF0aW9ucy4KICAgICBpZiAobG9naWNhbFdpZHRoTGVuZ3RoLmlzQXV0bygpIHx8IGhh
c1BlcnBlbmRpY3VsYXJDb250YWluaW5nQmxvY2spIHsKLSAgICAgICAgc2V0TWFyZ2luU3RhcnQo
c3R5bGVUb1VzZS0+bWFyZ2luU3RhcnQoKS5jYWxjTWluVmFsdWUoY29udGFpbmVyTG9naWNhbFdp
ZHRoLCB2aWV3U2l6ZSkpOwotICAgICAgICBzZXRNYXJnaW5FbmQoc3R5bGVUb1VzZS0+bWFyZ2lu
RW5kKCkuY2FsY01pblZhbHVlKGNvbnRhaW5lckxvZ2ljYWxXaWR0aCwgdmlld1NpemUpKTsKKyAg
ICAgICAgc2V0TWFyZ2luU3RhcnQoc3R5bGVUb1VzZS0+bWFyZ2luU3RhcnQoKS5jYWxjTWluVmFs
dWUoY29udGFpbmVyTG9naWNhbFdpZHRoKSk7CisgICAgICAgIHNldE1hcmdpbkVuZChzdHlsZVRv
VXNlLT5tYXJnaW5FbmQoKS5jYWxjTWluVmFsdWUoY29udGFpbmVyTG9naWNhbFdpZHRoKSk7CiAg
ICAgfSBlbHNlCiAgICAgICAgIGNvbXB1dGVJbmxpbmVEaXJlY3Rpb25NYXJnaW5zKGNiLCBjb250
YWluZXJMb2dpY2FsV2lkdGgsIGxvZ2ljYWxXaWR0aCgpKTsKIApAQCAtMTc5OSw5ICsxNzk2LDgg
QEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2FsV2lkdGhJblJlZ2lvblVzaW5n
KExvZ2ljYWxXaWR0aFR5cGUgd2lkdGhUeXAKICAgICAgICAgbG9naWNhbFdpZHRoID0gc3R5bGVU
b1VzZS0+bG9naWNhbE1heFdpZHRoKCk7CiAKICAgICBpZiAobG9naWNhbFdpZHRoLmlzSW50cmlu
c2ljT3JBdXRvKCkpIHsKLSAgICAgICAgSW50U2l6ZSB2aWV3U2l6ZSA9IHZpZXdwb3J0U2l6ZSgp
OwotICAgICAgICBMYXlvdXRVbml0IG1hcmdpblN0YXJ0ID0gc3R5bGVUb1VzZS0+bWFyZ2luU3Rh
cnQoKS5jYWxjTWluVmFsdWUoYXZhaWxhYmxlTG9naWNhbFdpZHRoLCB2aWV3U2l6ZSk7Ci0gICAg
ICAgIExheW91dFVuaXQgbWFyZ2luRW5kID0gc3R5bGVUb1VzZS0+bWFyZ2luRW5kKCkuY2FsY01p
blZhbHVlKGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwgdmlld1NpemUpOworICAgICAgICBMYXlvdXRV
bml0IG1hcmdpblN0YXJ0ID0gc3R5bGVUb1VzZS0+bWFyZ2luU3RhcnQoKS5jYWxjTWluVmFsdWUo
YXZhaWxhYmxlTG9naWNhbFdpZHRoKTsKKyAgICAgICAgTGF5b3V0VW5pdCBtYXJnaW5FbmQgPSBz
dHlsZVRvVXNlLT5tYXJnaW5FbmQoKS5jYWxjTWluVmFsdWUoYXZhaWxhYmxlTG9naWNhbFdpZHRo
KTsKICAgICAgICAgbG9naWNhbFdpZHRoUmVzdWx0ID0gYXZhaWxhYmxlTG9naWNhbFdpZHRoIC0g
bWFyZ2luU3RhcnQgLSBtYXJnaW5FbmQ7CiAKICAgICAgICAgaWYgKHNocmlua1RvQXZvaWRGbG9h
dHMoKSAmJiBjYi0+Y29udGFpbnNGbG9hdHMoKSkKQEAgLTE4MTIsNyArMTgwOCw3IEBAIExheW91
dFVuaXQgUmVuZGVyQm94Ojpjb21wdXRlTG9naWNhbFdpZHRoSW5SZWdpb25Vc2luZyhMb2dpY2Fs
V2lkdGhUeXBlIHdpZHRoVHlwCiAgICAgICAgICAgICBsb2dpY2FsV2lkdGhSZXN1bHQgPSBtaW4o
bG9naWNhbFdpZHRoUmVzdWx0LCBtYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSk7CiAgICAgICAg
IH0KICAgICB9IGVsc2UgLy8gRklYTUU6IElmIHRoZSBjb250YWluaW5nIGJsb2NrIGZsb3cgaXMg
cGVycGVuZGljdWxhciB0byBvdXIgZGlyZWN0aW9uIHdlIG5lZWQgdG8gdXNlIHRoZSBhdmFpbGFi
bGUgbG9naWNhbCBoZWlnaHQgaW5zdGVhZC4KLSAgICAgICAgbG9naWNhbFdpZHRoUmVzdWx0ID0g
Y29tcHV0ZUJvcmRlckJveExvZ2ljYWxXaWR0aChsb2dpY2FsV2lkdGguY2FsY1ZhbHVlKGF2YWls
YWJsZUxvZ2ljYWxXaWR0aCwgdmlld3BvcnRTaXplKCkpKTsKKyAgICAgICAgbG9naWNhbFdpZHRo
UmVzdWx0ID0gY29tcHV0ZUJvcmRlckJveExvZ2ljYWxXaWR0aChsb2dpY2FsV2lkdGguY2FsY1Zh
bHVlKGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCkpOyAKIAogICAgIHJldHVybiBsb2dpY2FsV2lkdGhS
ZXN1bHQ7CiB9CkBAIC0xODc5LDEyICsxODc1LDExIEBAIHZvaWQgUmVuZGVyQm94Ojpjb21wdXRl
SW5saW5lRGlyZWN0aW9uTWFyZ2lucyhSZW5kZXJCbG9jayogY29udGFpbmluZ0Jsb2NrLCBMYXlv
CiAgICAgY29uc3QgUmVuZGVyU3R5bGUqIGNvbnRhaW5pbmdCbG9ja1N0eWxlID0gY29udGFpbmlu
Z0Jsb2NrLT5zdHlsZSgpOwogICAgIExlbmd0aCBtYXJnaW5TdGFydExlbmd0aCA9IHN0eWxlKCkt
Pm1hcmdpblN0YXJ0VXNpbmcoY29udGFpbmluZ0Jsb2NrU3R5bGUpOwogICAgIExlbmd0aCBtYXJn
aW5FbmRMZW5ndGggPSBzdHlsZSgpLT5tYXJnaW5FbmRVc2luZyhjb250YWluaW5nQmxvY2tTdHls
ZSk7Ci0gICAgSW50U2l6ZSB2aWV3U2l6ZSA9IHZpZXdwb3J0U2l6ZSgpOwogCiAgICAgaWYgKGlz
RmxvYXRpbmcoKSB8fCBpc0lubGluZSgpKSB7CiAgICAgICAgIC8vIElubGluZSBibG9ja3MvdGFi
bGVzIGFuZCBmbG9hdHMgZG9uJ3QgaGF2ZSB0aGVpciBtYXJnaW5zIGluY3JlYXNlZC4KLSAgICAg
ICAgY29udGFpbmluZ0Jsb2NrLT5zZXRNYXJnaW5TdGFydEZvckNoaWxkKHRoaXMsIG1hcmdpblN0
YXJ0TGVuZ3RoLmNhbGNNaW5WYWx1ZShjb250YWluZXJXaWR0aCwgdmlld1NpemUpKTsKLSAgICAg
ICAgY29udGFpbmluZ0Jsb2NrLT5zZXRNYXJnaW5FbmRGb3JDaGlsZCh0aGlzLCBtYXJnaW5FbmRM
ZW5ndGguY2FsY01pblZhbHVlKGNvbnRhaW5lcldpZHRoLCB2aWV3U2l6ZSkpOworICAgICAgICBj
b250YWluaW5nQmxvY2stPnNldE1hcmdpblN0YXJ0Rm9yQ2hpbGQodGhpcywgbWFyZ2luU3RhcnRM
ZW5ndGguY2FsY01pblZhbHVlKGNvbnRhaW5lcldpZHRoKSk7CisgICAgICAgIGNvbnRhaW5pbmdC
bG9jay0+c2V0TWFyZ2luRW5kRm9yQ2hpbGQodGhpcywgbWFyZ2luRW5kTGVuZ3RoLmNhbGNNaW5W
YWx1ZShjb250YWluZXJXaWR0aCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xODk4
LDcgKzE4OTMsNyBAQCB2b2lkIFJlbmRlckJveDo6Y29tcHV0ZUlubGluZURpcmVjdGlvbk1hcmdp
bnMoUmVuZGVyQmxvY2sqIGNvbnRhaW5pbmdCbG9jaywgTGF5bwogICAgIAogICAgIC8vIENhc2Ug
VHdvOiBUaGUgb2JqZWN0IGlzIGJlaW5nIHB1c2hlZCB0byB0aGUgc3RhcnQgb2YgdGhlIGNvbnRh
aW5pbmcgYmxvY2sncyBhdmFpbGFibGUgbG9naWNhbCB3aWR0aC4KICAgICBpZiAobWFyZ2luRW5k
TGVuZ3RoLmlzQXV0bygpICYmIGNoaWxkV2lkdGggPCBjb250YWluZXJXaWR0aCkgewotICAgICAg
ICBjb250YWluaW5nQmxvY2stPnNldE1hcmdpblN0YXJ0Rm9yQ2hpbGQodGhpcywgbWFyZ2luU3Rh
cnRMZW5ndGguY2FsY1ZhbHVlKGNvbnRhaW5lcldpZHRoLCB2aWV3U2l6ZSkpOworICAgICAgICBj
b250YWluaW5nQmxvY2stPnNldE1hcmdpblN0YXJ0Rm9yQ2hpbGQodGhpcywgbWFyZ2luU3RhcnRM
ZW5ndGguY2FsY1ZhbHVlKGNvbnRhaW5lcldpZHRoKSk7CiAgICAgICAgIGNvbnRhaW5pbmdCbG9j
ay0+c2V0TWFyZ2luRW5kRm9yQ2hpbGQodGhpcywgY29udGFpbmVyV2lkdGggLSBjaGlsZFdpZHRo
IC0gY29udGFpbmluZ0Jsb2NrLT5tYXJnaW5TdGFydEZvckNoaWxkKHRoaXMpKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0gCkBAIC0xOTA3LDE1ICsxOTAyLDE1IEBAIHZvaWQgUmVuZGVyQm94Ojpj
b21wdXRlSW5saW5lRGlyZWN0aW9uTWFyZ2lucyhSZW5kZXJCbG9jayogY29udGFpbmluZ0Jsb2Nr
LCBMYXlvCiAgICAgYm9vbCBwdXNoVG9FbmRGcm9tVGV4dEFsaWduID0gIW1hcmdpbkVuZExlbmd0
aC5pc0F1dG8oKSAmJiAoKCFjb250YWluaW5nQmxvY2tTdHlsZS0+aXNMZWZ0VG9SaWdodERpcmVj
dGlvbigpICYmIGNvbnRhaW5pbmdCbG9ja1N0eWxlLT50ZXh0QWxpZ24oKSA9PSBXRUJLSVRfTEVG
VCkKICAgICAgICAgfHwgKGNvbnRhaW5pbmdCbG9ja1N0eWxlLT5pc0xlZnRUb1JpZ2h0RGlyZWN0
aW9uKCkgJiYgY29udGFpbmluZ0Jsb2NrU3R5bGUtPnRleHRBbGlnbigpID09IFdFQktJVF9SSUdI
VCkpOwogICAgIGlmICgobWFyZ2luU3RhcnRMZW5ndGguaXNBdXRvKCkgJiYgY2hpbGRXaWR0aCA8
IGNvbnRhaW5lcldpZHRoKSB8fCBwdXNoVG9FbmRGcm9tVGV4dEFsaWduKSB7Ci0gICAgICAgIGNv
bnRhaW5pbmdCbG9jay0+c2V0TWFyZ2luRW5kRm9yQ2hpbGQodGhpcywgbWFyZ2luRW5kTGVuZ3Ro
LmNhbGNWYWx1ZShjb250YWluZXJXaWR0aCwgdmlld1NpemUpKTsKKyAgICAgICAgY29udGFpbmlu
Z0Jsb2NrLT5zZXRNYXJnaW5FbmRGb3JDaGlsZCh0aGlzLCBtYXJnaW5FbmRMZW5ndGguY2FsY1Zh
bHVlKGNvbnRhaW5lcldpZHRoKSk7CiAgICAgICAgIGNvbnRhaW5pbmdCbG9jay0+c2V0TWFyZ2lu
U3RhcnRGb3JDaGlsZCh0aGlzLCBjb250YWluZXJXaWR0aCAtIGNoaWxkV2lkdGggLSBjb250YWlu
aW5nQmxvY2stPm1hcmdpbkVuZEZvckNoaWxkKHRoaXMpKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0gCiAgICAgCiAgICAgLy8gQ2FzZSBGb3VyOiBFaXRoZXIgbm8gYXV0byBtYXJnaW5zLCBvciBv
dXIgd2lkdGggaXMgPj0gdGhlIGNvbnRhaW5lciB3aWR0aCAoY3NzMi4xLCAxMC4zLjMpLiAgSW4g
dGhhdCBjYXNlCiAgICAgLy8gYXV0byBtYXJnaW5zIHdpbGwganVzdCB0dXJuIGludG8gMC4KLSAg
ICBjb250YWluaW5nQmxvY2stPnNldE1hcmdpblN0YXJ0Rm9yQ2hpbGQodGhpcywgbWFyZ2luU3Rh
cnRMZW5ndGguY2FsY01pblZhbHVlKGNvbnRhaW5lcldpZHRoLCB2aWV3U2l6ZSkpOwotICAgIGNv
bnRhaW5pbmdCbG9jay0+c2V0TWFyZ2luRW5kRm9yQ2hpbGQodGhpcywgbWFyZ2luRW5kTGVuZ3Ro
LmNhbGNNaW5WYWx1ZShjb250YWluZXJXaWR0aCwgdmlld1NpemUpKTsKKyAgICBjb250YWluaW5n
QmxvY2stPnNldE1hcmdpblN0YXJ0Rm9yQ2hpbGQodGhpcywgbWFyZ2luU3RhcnRMZW5ndGguY2Fs
Y01pblZhbHVlKGNvbnRhaW5lcldpZHRoKSk7CisgICAgY29udGFpbmluZ0Jsb2NrLT5zZXRNYXJn
aW5FbmRGb3JDaGlsZCh0aGlzLCBtYXJnaW5FbmRMZW5ndGguY2FsY01pblZhbHVlKGNvbnRhaW5l
cldpZHRoKSk7CiB9CiAKIFJlbmRlckJveFJlZ2lvbkluZm8qIFJlbmRlckJveDo6cmVuZGVyQm94
UmVnaW9uSW5mbyhSZW5kZXJSZWdpb24qIHJlZ2lvbiwgTGF5b3V0VW5pdCBvZmZzZXRGcm9tTG9n
aWNhbFRvcE9mRmlyc3RQYWdlLCBSZW5kZXJCb3hSZWdpb25JbmZvRmxhZ3MgY2FjaGVGbGFnKSBj
b25zdApAQCAtMjExOCw5ICsyMTEzLDYgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNvbXB1dGVM
b2dpY2FsSGVpZ2h0VXNpbmcoY29uc3QgTGVuZ3RoJiBoKQogICAgICAgICAgICAgbG9naWNhbEhl
aWdodCA9IGgudmFsdWUoKTsKICAgICAgICAgZWxzZSBpZiAoaC5pc1BlcmNlbnQoKSkKICAgICAg
ICAgICAgIGxvZ2ljYWxIZWlnaHQgPSBjb21wdXRlUGVyY2VudGFnZUxvZ2ljYWxIZWlnaHQoaCk7
Ci0gICAgICAgIGVsc2UgaWYgKGguaXNWaWV3cG9ydFJlbGF0aXZlKCkpCi0gICAgICAgICAgICBs
b2dpY2FsSGVpZ2h0ID0gaC5jYWxjVmFsdWUoMCwgdmlld3BvcnRTaXplKCkpOwotCiAgICAgICAg
IGlmIChsb2dpY2FsSGVpZ2h0ICE9IC0xKSB7CiAgICAgICAgICAgICBsb2dpY2FsSGVpZ2h0ID0g
Y29tcHV0ZUJvcmRlckJveExvZ2ljYWxIZWlnaHQobG9naWNhbEhlaWdodCk7CiAgICAgICAgICAg
ICByZXR1cm4gbG9naWNhbEhlaWdodDsKQEAgLTIyMDIsNyArMjE5NCw3IEBAIExheW91dFVuaXQg
UmVuZGVyQm94Ojpjb21wdXRlUGVyY2VudGFnZUxvZ2ljYWxIZWlnaHQoY29uc3QgTGVuZ3RoJiBo
ZWlnaHQpCiAgICAgICAgIHJlc3VsdCA9IGNiLT5jb21wdXRlQ29udGVudEJveExvZ2ljYWxIZWln
aHQoY2ItPmF2YWlsYWJsZUxvZ2ljYWxIZWlnaHQoKSk7CiAKICAgICBpZiAocmVzdWx0ICE9IC0x
KSB7Ci0gICAgICAgIHJlc3VsdCA9IGhlaWdodC5jYWxjVmFsdWUocmVzdWx0LCB2aWV3cG9ydFNp
emUoKSk7CisgICAgICAgIHJlc3VsdCA9IGhlaWdodC5jYWxjVmFsdWUocmVzdWx0KTsKICAgICAg
ICAgaWYgKGluY2x1ZGVCb3JkZXJQYWRkaW5nKSB7CiAgICAgICAgICAgICAvLyBJdCBpcyBuZWNl
c3NhcnkgdG8gdXNlIHRoZSBib3JkZXItYm94IHRvIG1hdGNoIFdpbklFJ3MgYnJva2VuCiAgICAg
ICAgICAgICAvLyBib3ggbW9kZWwuICBUaGlzIGlzIGVzc2VudGlhbCBmb3Igc2l6aW5nIGluc2lk
ZQpAQCAtMjI1OSw3ICsyMjUxLDYgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNvbXB1dGVSZXBs
YWNlZExvZ2ljYWxIZWlnaHRSZXNwZWN0aW5nTWluTWF4SGVpZ2h0KExheW91dFUKIAogTGF5b3V0
VW5pdCBSZW5kZXJCb3g6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHRVc2luZyhMZW5ndGgg
bG9naWNhbEhlaWdodCkgY29uc3QKIHsKLSAgICBJbnRTaXplIHZpZXdTaXplID0gdmlld3BvcnRT
aXplKCk7CiAgICAgc3dpdGNoIChsb2dpY2FsSGVpZ2h0LnR5cGUoKSkgewogICAgICAgICBjYXNl
IEZpeGVkOgogICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVDb250ZW50Qm94TG9naWNhbEhlaWdo
dChsb2dpY2FsSGVpZ2h0LnZhbHVlKCkpOwpAQCAtMjI4MCw3ICsyMjcxLDcgQEAgTGF5b3V0VW5p
dCBSZW5kZXJCb3g6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHRVc2luZyhMZW5ndGggbG9n
aWNhbEhlaWdodCkgY28KICAgICAgICAgICAgICAgICBibG9jay0+Y29tcHV0ZUxvZ2ljYWxIZWln
aHQoKTsKICAgICAgICAgICAgICAgICBMYXlvdXRVbml0IG5ld0hlaWdodCA9IGJsb2NrLT5jb21w
dXRlQ29udGVudEJveExvZ2ljYWxIZWlnaHQoYmxvY2stPmNvbnRlbnRIZWlnaHQoKSk7CiAgICAg
ICAgICAgICAgICAgYmxvY2stPnNldEhlaWdodChvbGRIZWlnaHQpOwotICAgICAgICAgICAgICAg
IHJldHVybiBjb21wdXRlQ29udGVudEJveExvZ2ljYWxIZWlnaHQobG9naWNhbEhlaWdodC5jYWxj
VmFsdWUobmV3SGVpZ2h0LCB2aWV3U2l6ZSkpOworICAgICAgICAgICAgICAgIHJldHVybiBjb21w
dXRlQ29udGVudEJveExvZ2ljYWxIZWlnaHQobG9naWNhbEhlaWdodC5jYWxjVmFsdWUobmV3SGVp
Z2h0KSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8vIEZJWE1F
OiBhdmFpbGFibGVMb2dpY2FsSGVpZ2h0KCkgaXMgd3JvbmcgaWYgdGhlIHJlcGxhY2VkIGVsZW1l
bnQncyBibG9jay1mbG93IGlzIHBlcnBlbmRpY3VsYXIgdG8gdGhlCkBAIC0yMzAxLDEyICsyMjky
LDEyIEBAIExheW91dFVuaXQgUmVuZGVyQm94Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0
VXNpbmcoTGVuZ3RoIGxvZ2ljYWxIZWlnaHQpIGNvCiAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBEb24ndCBsZXQgdGFibGUgY2VsbHMgc3F1ZWV6ZSBwZXJjZW50LWhlaWdodCByZXBsYWNlZCBl
bGVtZW50cwogICAgICAgICAgICAgICAgICAgICAgICAgLy8gPGh0dHA6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1MzU5PgogICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxh
YmxlSGVpZ2h0ID0gbWF4KGF2YWlsYWJsZUhlaWdodCwgaW50cmluc2ljTG9naWNhbEhlaWdodCgp
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBsb2dpY2FsSGVpZ2h0LmNhbGNWYWx1
ZShhdmFpbGFibGVIZWlnaHQgLSBib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgpLCB2aWV3
U2l6ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbG9naWNhbEhlaWdodC5jYWxj
VmFsdWUoYXZhaWxhYmxlSGVpZ2h0IC0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSk7
CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgY2IgPSBjYi0+Y29u
dGFpbmluZ0Jsb2NrKCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotICAgICAg
ICAgICAgcmV0dXJuIGNvbXB1dGVDb250ZW50Qm94TG9naWNhbEhlaWdodChsb2dpY2FsSGVpZ2h0
LmNhbGNWYWx1ZShhdmFpbGFibGVIZWlnaHQsIHZpZXdTaXplKSk7CisgICAgICAgICAgICByZXR1
cm4gY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0KGxvZ2ljYWxIZWlnaHQuY2FsY1ZhbHVl
KGF2YWlsYWJsZUhlaWdodCkpOwogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAg
ICAgICByZXR1cm4gaW50cmluc2ljTG9naWNhbEhlaWdodCgpOwpAQCAtMjM3MSwxMSArMjM2Miwx
MCBAQCB2b2lkIFJlbmRlckJveDo6Y29tcHV0ZUJsb2NrRGlyZWN0aW9uTWFyZ2lucyhSZW5kZXJC
bG9jayogY29udGFpbmluZ0Jsb2NrKQogICAgIC8vIE1hcmdpbnMgYXJlIGNhbGN1bGF0ZWQgd2l0
aCByZXNwZWN0IHRvIHRoZSBsb2dpY2FsIHdpZHRoIG9mCiAgICAgLy8gdGhlIGNvbnRhaW5pbmcg
YmxvY2sgKDguMykKICAgICBMYXlvdXRVbml0IGN3ID0gY29udGFpbmluZ0Jsb2NrTG9naWNhbFdp
ZHRoRm9yQ29udGVudCgpOwotICAgIEludFNpemUgdmlld1NpemUgPSB2aWV3cG9ydFNpemUoKTsK
IAogICAgIFJlbmRlclN0eWxlKiBjb250YWluaW5nQmxvY2tTdHlsZSA9IGNvbnRhaW5pbmdCbG9j
ay0+c3R5bGUoKTsKLSAgICBjb250YWluaW5nQmxvY2stPnNldE1hcmdpbkJlZm9yZUZvckNoaWxk
KHRoaXMsIHN0eWxlKCktPm1hcmdpbkJlZm9yZVVzaW5nKGNvbnRhaW5pbmdCbG9ja1N0eWxlKS5j
YWxjTWluVmFsdWUoY3csIHZpZXdTaXplKSk7Ci0gICAgY29udGFpbmluZ0Jsb2NrLT5zZXRNYXJn
aW5BZnRlckZvckNoaWxkKHRoaXMsIHN0eWxlKCktPm1hcmdpbkFmdGVyVXNpbmcoY29udGFpbmlu
Z0Jsb2NrU3R5bGUpLmNhbGNNaW5WYWx1ZShjdywgdmlld1NpemUpKTsKKyAgICBjb250YWluaW5n
QmxvY2stPnNldE1hcmdpbkJlZm9yZUZvckNoaWxkKHRoaXMsIHN0eWxlKCktPm1hcmdpbkJlZm9y
ZVVzaW5nKGNvbnRhaW5pbmdCbG9ja1N0eWxlKS5jYWxjTWluVmFsdWUoY3cpKTsKKyAgICBjb250
YWluaW5nQmxvY2stPnNldE1hcmdpbkFmdGVyRm9yQ2hpbGQodGhpcywgc3R5bGUoKS0+bWFyZ2lu
QWZ0ZXJVc2luZyhjb250YWluaW5nQmxvY2tTdHlsZSkuY2FsY01pblZhbHVlKGN3KSk7CiB9CiAK
IExheW91dFVuaXQgUmVuZGVyQm94Ojpjb250YWluaW5nQmxvY2tMb2dpY2FsV2lkdGhGb3JQb3Np
dGlvbmVkKGNvbnN0IFJlbmRlckJveE1vZGVsT2JqZWN0KiBjb250YWluaW5nQmxvY2ssIFJlbmRl
clJlZ2lvbiogcmVnaW9uLApAQCAtMjY5OCw3ICsyNjg4LDYgQEAgdm9pZCBSZW5kZXJCb3g6OmNv
bXB1dGVQb3NpdGlvbmVkTG9naWNhbFdpZHRoVXNpbmcoTGVuZ3RoIGxvZ2ljYWxXaWR0aCwgY29u
c3QgUmUKICAgICBib29sIGxvZ2ljYWxXaWR0aElzQXV0byA9IGxvZ2ljYWxXaWR0aC5pc0ludHJp
bnNpY09yQXV0bygpOwogICAgIGJvb2wgbG9naWNhbExlZnRJc0F1dG8gPSBsb2dpY2FsTGVmdC5p
c0F1dG8oKTsKICAgICBib29sIGxvZ2ljYWxSaWdodElzQXV0byA9IGxvZ2ljYWxSaWdodC5pc0F1
dG8oKTsKLSAgICBJbnRTaXplIHZpZXdTaXplID0gdmlld3BvcnRTaXplKCk7CiAKICAgICBpZiAo
IWxvZ2ljYWxMZWZ0SXNBdXRvICYmICFsb2dpY2FsV2lkdGhJc0F1dG8gJiYgIWxvZ2ljYWxSaWdo
dElzQXV0bykgewogICAgICAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKQEAgLTI3MTYsMTAgKzI3MDUs
MTAgQEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbFdpZHRoVXNpbmco
TGVuZ3RoIGxvZ2ljYWxXaWR0aCwgY29uc3QgUmUKICAgICAgICAgLy8gTk9URTogIEl0IGlzIG5v
dCBuZWNlc3NhcnkgdG8gc29sdmUgZm9yICdyaWdodCcgaW4gdGhlIG92ZXIgY29uc3RyYWluZWQK
ICAgICAgICAgLy8gY2FzZSBiZWNhdXNlIHRoZSB2YWx1ZSBpcyBub3QgdXNlZCBmb3IgYW55IGZ1
cnRoZXIgY2FsY3VsYXRpb25zLgogCi0gICAgICAgIGxvZ2ljYWxMZWZ0VmFsdWUgPSBsb2dpY2Fs
TGVmdC5jYWxjVmFsdWUoY29udGFpbmVyTG9naWNhbFdpZHRoLCB2aWV3U2l6ZSk7Ci0gICAgICAg
IGxvZ2ljYWxXaWR0aFZhbHVlID0gY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsV2lkdGgobG9naWNh
bFdpZHRoLmNhbGNWYWx1ZShjb250YWluZXJMb2dpY2FsV2lkdGgsIHZpZXdTaXplKSk7CisgICAg
ICAgIGxvZ2ljYWxMZWZ0VmFsdWUgPSBsb2dpY2FsTGVmdC5jYWxjVmFsdWUoY29udGFpbmVyTG9n
aWNhbFdpZHRoKTsKKyAgICAgICAgbG9naWNhbFdpZHRoVmFsdWUgPSBjb21wdXRlQ29udGVudEJv
eExvZ2ljYWxXaWR0aChsb2dpY2FsV2lkdGguY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxXaWR0
aCkpOwogCi0gICAgICAgIGNvbnN0IExheW91dFVuaXQgYXZhaWxhYmxlU3BhY2UgPSBjb250YWlu
ZXJMb2dpY2FsV2lkdGggLSAobG9naWNhbExlZnRWYWx1ZSArIGxvZ2ljYWxXaWR0aFZhbHVlICsg
bG9naWNhbFJpZ2h0LmNhbGNWYWx1ZShjb250YWluZXJMb2dpY2FsV2lkdGgsIHZpZXdTaXplKSAr
IGJvcmRlcnNQbHVzUGFkZGluZyk7CisgICAgICAgIGNvbnN0IExheW91dFVuaXQgYXZhaWxhYmxl
U3BhY2UgPSBjb250YWluZXJMb2dpY2FsV2lkdGggLSAobG9naWNhbExlZnRWYWx1ZSArIGxvZ2lj
YWxXaWR0aFZhbHVlICsgbG9naWNhbFJpZ2h0LmNhbGNWYWx1ZShjb250YWluZXJMb2dpY2FsV2lk
dGgpICsgYm9yZGVyc1BsdXNQYWRkaW5nKTsKIAogICAgICAgICAvLyBNYXJnaW5zIGFyZSBub3cg
dGhlIG9ubHkgdW5rbm93bgogICAgICAgICBpZiAobWFyZ2luTG9naWNhbExlZnQuaXNBdXRvKCkg
JiYgbWFyZ2luTG9naWNhbFJpZ2h0LmlzQXV0bygpKSB7CkBAIC0yNzQwLDE2ICsyNzI5LDE2IEBA
IHZvaWQgUmVuZGVyQm94Ojpjb21wdXRlUG9zaXRpb25lZExvZ2ljYWxXaWR0aFVzaW5nKExlbmd0
aCBsb2dpY2FsV2lkdGgsIGNvbnN0IFJlCiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBp
ZiAobWFyZ2luTG9naWNhbExlZnQuaXNBdXRvKCkpIHsKICAgICAgICAgICAgIC8vIFNvbHZlIGZv
ciBsZWZ0IG1hcmdpbgotICAgICAgICAgICAgbWFyZ2luTG9naWNhbFJpZ2h0VmFsdWUgPSBtYXJn
aW5Mb2dpY2FsUmlnaHQuY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxXaWR0aCwgdmlld1NpemUp
OworICAgICAgICAgICAgbWFyZ2luTG9naWNhbFJpZ2h0VmFsdWUgPSBtYXJnaW5Mb2dpY2FsUmln
aHQuY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxXaWR0aCk7CiAgICAgICAgICAgICBtYXJnaW5M
b2dpY2FsTGVmdFZhbHVlID0gYXZhaWxhYmxlU3BhY2UgLSBtYXJnaW5Mb2dpY2FsUmlnaHRWYWx1
ZTsKICAgICAgICAgfSBlbHNlIGlmIChtYXJnaW5Mb2dpY2FsUmlnaHQuaXNBdXRvKCkpIHsKICAg
ICAgICAgICAgIC8vIFNvbHZlIGZvciByaWdodCBtYXJnaW4KLSAgICAgICAgICAgIG1hcmdpbkxv
Z2ljYWxMZWZ0VmFsdWUgPSBtYXJnaW5Mb2dpY2FsTGVmdC5jYWxjVmFsdWUoY29udGFpbmVyTG9n
aWNhbFdpZHRoLCB2aWV3U2l6ZSk7CisgICAgICAgICAgICBtYXJnaW5Mb2dpY2FsTGVmdFZhbHVl
ID0gbWFyZ2luTG9naWNhbExlZnQuY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxXaWR0aCk7CiAg
ICAgICAgICAgICBtYXJnaW5Mb2dpY2FsUmlnaHRWYWx1ZSA9IGF2YWlsYWJsZVNwYWNlIC0gbWFy
Z2luTG9naWNhbExlZnRWYWx1ZTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIE92
ZXItY29uc3RyYWluZWQsIHNvbHZlIGZvciBsZWZ0IGlmIGRpcmVjdGlvbiBpcyBSVEwKLSAgICAg
ICAgICAgIG1hcmdpbkxvZ2ljYWxMZWZ0VmFsdWUgPSBtYXJnaW5Mb2dpY2FsTGVmdC5jYWxjVmFs
dWUoY29udGFpbmVyTG9naWNhbFdpZHRoLCB2aWV3U2l6ZSk7Ci0gICAgICAgICAgICBtYXJnaW5M
b2dpY2FsUmlnaHRWYWx1ZSA9IG1hcmdpbkxvZ2ljYWxSaWdodC5jYWxjVmFsdWUoY29udGFpbmVy
TG9naWNhbFdpZHRoLCB2aWV3U2l6ZSk7CisgICAgICAgICAgICBtYXJnaW5Mb2dpY2FsTGVmdFZh
bHVlID0gbWFyZ2luTG9naWNhbExlZnQuY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxXaWR0aCk7
CisgICAgICAgICAgICBtYXJnaW5Mb2dpY2FsUmlnaHRWYWx1ZSA9IG1hcmdpbkxvZ2ljYWxSaWdo
dC5jYWxjVmFsdWUoY29udGFpbmVyTG9naWNhbFdpZHRoKTsKIAogICAgICAgICAgICAgLy8gVXNl
IHRoZSBjb250YWluaW5nIGJsb2NrJ3MgZGlyZWN0aW9uIHJhdGhlciB0aGFuIHRoZSBwYXJlbnQg
YmxvY2sncwogICAgICAgICAgICAgLy8gcGVyIENTUyAyLjEgcmVmZXJlbmNlIHRlc3QgYWJzcG9z
LW5vbi1yZXBsYWNlZC13aWR0aC1tYXJnaW4tMDAwLgpAQCAtMjc5OSw4ICsyNzg4LDggQEAgdm9p
ZCBSZW5kZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbFdpZHRoVXNpbmcoTGVuZ3RoIGxv
Z2ljYWxXaWR0aCwgY29uc3QgUmUKICAgICAgICAgLy8gYmVjYXVzZSB0aGUgdmFsdWUgaXMgbm90
IHVzZWQgZm9yIGFueSBmdXJ0aGVyIGNhbGN1bGF0aW9ucy4KIAogICAgICAgICAvLyBDYWxjdWxh
dGUgbWFyZ2lucywgJ2F1dG8nIG1hcmdpbnMgYXJlIGlnbm9yZWQuCi0gICAgICAgIG1hcmdpbkxv
Z2ljYWxMZWZ0VmFsdWUgPSBtYXJnaW5Mb2dpY2FsTGVmdC5jYWxjTWluVmFsdWUoY29udGFpbmVy
TG9naWNhbFdpZHRoLCB2aWV3U2l6ZSk7Ci0gICAgICAgIG1hcmdpbkxvZ2ljYWxSaWdodFZhbHVl
ID0gbWFyZ2luTG9naWNhbFJpZ2h0LmNhbGNNaW5WYWx1ZShjb250YWluZXJMb2dpY2FsV2lkdGgs
IHZpZXdTaXplKTsKKyAgICAgICAgbWFyZ2luTG9naWNhbExlZnRWYWx1ZSA9IG1hcmdpbkxvZ2lj
YWxMZWZ0LmNhbGNNaW5WYWx1ZShjb250YWluZXJMb2dpY2FsV2lkdGgpOworICAgICAgICBtYXJn
aW5Mb2dpY2FsUmlnaHRWYWx1ZSA9IG1hcmdpbkxvZ2ljYWxSaWdodC5jYWxjTWluVmFsdWUoY29u
dGFpbmVyTG9naWNhbFdpZHRoKTsKIAogICAgICAgICBjb25zdCBMYXlvdXRVbml0IGF2YWlsYWJs
ZVNwYWNlID0gY29udGFpbmVyTG9naWNhbFdpZHRoIC0gKG1hcmdpbkxvZ2ljYWxMZWZ0VmFsdWUg
KyBtYXJnaW5Mb2dpY2FsUmlnaHRWYWx1ZSArIGJvcmRlcnNQbHVzUGFkZGluZyk7CiAKQEAgLTI4
MDgsNyArMjc5Nyw3IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21wdXRlUG9zaXRpb25lZExvZ2ljYWxX
aWR0aFVzaW5nKExlbmd0aCBsb2dpY2FsV2lkdGgsIGNvbnN0IFJlCiAgICAgICAgIC8vIFVzZSBy
dWxlL2Nhc2UgdGhhdCBhcHBsaWVzLgogICAgICAgICBpZiAobG9naWNhbExlZnRJc0F1dG8gJiYg
bG9naWNhbFdpZHRoSXNBdXRvICYmICFsb2dpY2FsUmlnaHRJc0F1dG8pIHsKICAgICAgICAgICAg
IC8vIFJVTEUgMTogKHVzZSBzaHJpbmstdG8tZml0IGZvciB3aWR0aCwgYW5kIHNvbHZlIG9mIGxl
ZnQpCi0gICAgICAgICAgICBMYXlvdXRVbml0IGxvZ2ljYWxSaWdodFZhbHVlID0gbG9naWNhbFJp
Z2h0LmNhbGNWYWx1ZShjb250YWluZXJMb2dpY2FsV2lkdGgsIHZpZXdTaXplKTsKKyAgICAgICAg
ICAgIExheW91dFVuaXQgbG9naWNhbFJpZ2h0VmFsdWUgPSBsb2dpY2FsUmlnaHQuY2FsY1ZhbHVl
KGNvbnRhaW5lckxvZ2ljYWxXaWR0aCk7CiAKICAgICAgICAgICAgIC8vIEZJWE1FOiB3b3VsZCBp
dCBiZSBiZXR0ZXIgdG8gaGF2ZSBzaHJpbmstdG8tZml0IGluIG9uZSBzdGVwPwogICAgICAgICAg
ICAgTGF5b3V0VW5pdCBwcmVmZXJyZWRXaWR0aCA9IG1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCgp
IC0gYm9yZGVyc1BsdXNQYWRkaW5nOwpAQCAtMjgxOCw3ICsyODA3LDcgQEAgdm9pZCBSZW5kZXJC
b3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbFdpZHRoVXNpbmcoTGVuZ3RoIGxvZ2ljYWxXaWR0
aCwgY29uc3QgUmUKICAgICAgICAgICAgIGxvZ2ljYWxMZWZ0VmFsdWUgPSBhdmFpbGFibGVTcGFj
ZSAtIChsb2dpY2FsV2lkdGhWYWx1ZSArIGxvZ2ljYWxSaWdodFZhbHVlKTsKICAgICAgICAgfSBl
bHNlIGlmICghbG9naWNhbExlZnRJc0F1dG8gJiYgbG9naWNhbFdpZHRoSXNBdXRvICYmIGxvZ2lj
YWxSaWdodElzQXV0bykgewogICAgICAgICAgICAgLy8gUlVMRSAzOiAodXNlIHNocmluay10by1m
aXQgZm9yIHdpZHRoLCBhbmQgbm8gbmVlZCBzb2x2ZSBvZiByaWdodCkKLSAgICAgICAgICAgIGxv
Z2ljYWxMZWZ0VmFsdWUgPSBsb2dpY2FsTGVmdC5jYWxjVmFsdWUoY29udGFpbmVyTG9naWNhbFdp
ZHRoLCB2aWV3U2l6ZSk7CisgICAgICAgICAgICBsb2dpY2FsTGVmdFZhbHVlID0gbG9naWNhbExl
ZnQuY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxXaWR0aCk7CiAKICAgICAgICAgICAgIC8vIEZJ
WE1FOiB3b3VsZCBpdCBiZSBiZXR0ZXIgdG8gaGF2ZSBzaHJpbmstdG8tZml0IGluIG9uZSBzdGVw
PwogICAgICAgICAgICAgTGF5b3V0VW5pdCBwcmVmZXJyZWRXaWR0aCA9IG1heFByZWZlcnJlZExv
Z2ljYWxXaWR0aCgpIC0gYm9yZGVyc1BsdXNQYWRkaW5nOwpAQCAtMjgyNywxNiArMjgxNiwxNiBA
QCB2b2lkIFJlbmRlckJveDo6Y29tcHV0ZVBvc2l0aW9uZWRMb2dpY2FsV2lkdGhVc2luZyhMZW5n
dGggbG9naWNhbFdpZHRoLCBjb25zdCBSZQogICAgICAgICAgICAgbG9naWNhbFdpZHRoVmFsdWUg
PSBtaW4obWF4KHByZWZlcnJlZE1pbldpZHRoLCBhdmFpbGFibGVXaWR0aCksIHByZWZlcnJlZFdp
ZHRoKTsKICAgICAgICAgfSBlbHNlIGlmIChsb2dpY2FsTGVmdElzQXV0byAmJiAhbG9naWNhbFdp
ZHRoSXNBdXRvICYmICFsb2dpY2FsUmlnaHRJc0F1dG8pIHsKICAgICAgICAgICAgIC8vIFJVTEUg
NDogKHNvbHZlIGZvciBsZWZ0KQotICAgICAgICAgICAgbG9naWNhbFdpZHRoVmFsdWUgPSBjb21w
dXRlQ29udGVudEJveExvZ2ljYWxXaWR0aChsb2dpY2FsV2lkdGguY2FsY1ZhbHVlKGNvbnRhaW5l
ckxvZ2ljYWxXaWR0aCwgdmlld1NpemUpKTsKLSAgICAgICAgICAgIGxvZ2ljYWxMZWZ0VmFsdWUg
PSBhdmFpbGFibGVTcGFjZSAtIChsb2dpY2FsV2lkdGhWYWx1ZSArIGxvZ2ljYWxSaWdodC5jYWxj
VmFsdWUoY29udGFpbmVyTG9naWNhbFdpZHRoLCB2aWV3U2l6ZSkpOworICAgICAgICAgICAgbG9n
aWNhbFdpZHRoVmFsdWUgPSBjb21wdXRlQ29udGVudEJveExvZ2ljYWxXaWR0aChsb2dpY2FsV2lk
dGguY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxXaWR0aCkpOworICAgICAgICAgICAgbG9naWNh
bExlZnRWYWx1ZSA9IGF2YWlsYWJsZVNwYWNlIC0gKGxvZ2ljYWxXaWR0aFZhbHVlICsgbG9naWNh
bFJpZ2h0LmNhbGNWYWx1ZShjb250YWluZXJMb2dpY2FsV2lkdGgpKTsKICAgICAgICAgfSBlbHNl
IGlmICghbG9naWNhbExlZnRJc0F1dG8gJiYgbG9naWNhbFdpZHRoSXNBdXRvICYmICFsb2dpY2Fs
UmlnaHRJc0F1dG8pIHsKICAgICAgICAgICAgIC8vIFJVTEUgNTogKHNvbHZlIGZvciB3aWR0aCkK
LSAgICAgICAgICAgIGxvZ2ljYWxMZWZ0VmFsdWUgPSBsb2dpY2FsTGVmdC5jYWxjVmFsdWUoY29u
dGFpbmVyTG9naWNhbFdpZHRoLCB2aWV3U2l6ZSk7Ci0gICAgICAgICAgICBsb2dpY2FsV2lkdGhW
YWx1ZSA9IGF2YWlsYWJsZVNwYWNlIC0gKGxvZ2ljYWxMZWZ0VmFsdWUgKyBsb2dpY2FsUmlnaHQu
Y2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxXaWR0aCwgdmlld1NpemUpKTsKKyAgICAgICAgICAg
IGxvZ2ljYWxMZWZ0VmFsdWUgPSBsb2dpY2FsTGVmdC5jYWxjVmFsdWUoY29udGFpbmVyTG9naWNh
bFdpZHRoKTsKKyAgICAgICAgICAgIGxvZ2ljYWxXaWR0aFZhbHVlID0gYXZhaWxhYmxlU3BhY2Ug
LSAobG9naWNhbExlZnRWYWx1ZSArIGxvZ2ljYWxSaWdodC5jYWxjVmFsdWUoY29udGFpbmVyTG9n
aWNhbFdpZHRoKSk7CiAgICAgICAgIH0gZWxzZSBpZiAoIWxvZ2ljYWxMZWZ0SXNBdXRvICYmICFs
b2dpY2FsV2lkdGhJc0F1dG8gJiYgbG9naWNhbFJpZ2h0SXNBdXRvKSB7CiAgICAgICAgICAgICAv
LyBSVUxFIDY6IChubyBuZWVkIHNvbHZlIGZvciByaWdodCkKLSAgICAgICAgICAgIGxvZ2ljYWxM
ZWZ0VmFsdWUgPSBsb2dpY2FsTGVmdC5jYWxjVmFsdWUoY29udGFpbmVyTG9naWNhbFdpZHRoLCB2
aWV3U2l6ZSk7Ci0gICAgICAgICAgICBsb2dpY2FsV2lkdGhWYWx1ZSA9IGNvbXB1dGVDb250ZW50
Qm94TG9naWNhbFdpZHRoKGxvZ2ljYWxXaWR0aC5jYWxjVmFsdWUoY29udGFpbmVyTG9naWNhbFdp
ZHRoLCB2aWV3U2l6ZSkpOworICAgICAgICAgICAgbG9naWNhbExlZnRWYWx1ZSA9IGxvZ2ljYWxM
ZWZ0LmNhbGNWYWx1ZShjb250YWluZXJMb2dpY2FsV2lkdGgpOworICAgICAgICAgICAgbG9naWNh
bFdpZHRoVmFsdWUgPSBjb21wdXRlQ29udGVudEJveExvZ2ljYWxXaWR0aChsb2dpY2FsV2lkdGgu
Y2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxXaWR0aCkpOwogICAgICAgICB9CiAgICAgfQogCkBA
IC0zMDMyLDcgKzMwMjEsNiBAQCB2b2lkIFJlbmRlckJveDo6Y29tcHV0ZVBvc2l0aW9uZWRMb2dp
Y2FsSGVpZ2h0VXNpbmcoTGVuZ3RoIGxvZ2ljYWxIZWlnaHRMZW5ndGgsCiAgICAgYm9vbCBsb2dp
Y2FsSGVpZ2h0SXNBdXRvID0gbG9naWNhbEhlaWdodExlbmd0aC5pc0F1dG8oKTsKICAgICBib29s
IGxvZ2ljYWxUb3BJc0F1dG8gPSBsb2dpY2FsVG9wLmlzQXV0bygpOwogICAgIGJvb2wgbG9naWNh
bEJvdHRvbUlzQXV0byA9IGxvZ2ljYWxCb3R0b20uaXNBdXRvKCk7Ci0gICAgSW50U2l6ZSB2aWV3
U2l6ZSA9IHZpZXdwb3J0U2l6ZSgpOwogCiAgICAgLy8gSGVpZ2h0IGlzIG5ldmVyIHVuc29sdmVk
IGZvciB0YWJsZXMuCiAgICAgaWYgKGlzVGFibGUoKSkgewpAQCAtMzA1MiwxMCArMzA0MCwxMCBA
QCB2b2lkIFJlbmRlckJveDo6Y29tcHV0ZVBvc2l0aW9uZWRMb2dpY2FsSGVpZ2h0VXNpbmcoTGVu
Z3RoIGxvZ2ljYWxIZWlnaHRMZW5ndGgsCiAgICAgICAgIC8vIE5PVEU6ICBJdCBpcyBub3QgbmVj
ZXNzYXJ5IHRvIHNvbHZlIGZvciAnYm90dG9tJyBpbiB0aGUgb3ZlciBjb25zdHJhaW5lZAogICAg
ICAgICAvLyBjYXNlIGJlY2F1c2UgdGhlIHZhbHVlIGlzIG5vdCB1c2VkIGZvciBhbnkgZnVydGhl
ciBjYWxjdWxhdGlvbnMuCiAKLSAgICAgICAgbG9naWNhbEhlaWdodFZhbHVlID0gY29tcHV0ZUNv
bnRlbnRCb3hMb2dpY2FsSGVpZ2h0KGxvZ2ljYWxIZWlnaHRMZW5ndGguY2FsY1ZhbHVlKGNvbnRh
aW5lckxvZ2ljYWxIZWlnaHQsIHZpZXdTaXplKSk7Ci0gICAgICAgIGxvZ2ljYWxUb3BWYWx1ZSA9
IGxvZ2ljYWxUb3AuY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQsIHZpZXdTaXplKTsK
KyAgICAgICAgbG9naWNhbEhlaWdodFZhbHVlID0gY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsSGVp
Z2h0KGxvZ2ljYWxIZWlnaHRMZW5ndGguY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQp
KTsKKyAgICAgICAgbG9naWNhbFRvcFZhbHVlID0gbG9naWNhbFRvcC5jYWxjVmFsdWUoY29udGFp
bmVyTG9naWNhbEhlaWdodCk7CiAKLSAgICAgICAgY29uc3QgTGF5b3V0VW5pdCBhdmFpbGFibGVT
cGFjZSA9IGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQgLSAobG9naWNhbFRvcFZhbHVlICsgbG9naWNh
bEhlaWdodFZhbHVlICsgbG9naWNhbEJvdHRvbS5jYWxjVmFsdWUoY29udGFpbmVyTG9naWNhbEhl
aWdodCwgdmlld1NpemUpICsgYm9yZGVyc1BsdXNQYWRkaW5nKTsKKyAgICAgICAgY29uc3QgTGF5
b3V0VW5pdCBhdmFpbGFibGVTcGFjZSA9IGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQgLSAobG9naWNh
bFRvcFZhbHVlICsgbG9naWNhbEhlaWdodFZhbHVlICsgbG9naWNhbEJvdHRvbS5jYWxjVmFsdWUo
Y29udGFpbmVyTG9naWNhbEhlaWdodCkgKyBib3JkZXJzUGx1c1BhZGRpbmcpOwogCiAgICAgICAg
IC8vIE1hcmdpbnMgYXJlIG5vdyB0aGUgb25seSB1bmtub3duCiAgICAgICAgIGlmIChtYXJnaW5C
ZWZvcmUuaXNBdXRvKCkgJiYgbWFyZ2luQWZ0ZXIuaXNBdXRvKCkpIHsKQEAgLTMwNjUsMTYgKzMw
NTMsMTYgQEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbEhlaWdodFVz
aW5nKExlbmd0aCBsb2dpY2FsSGVpZ2h0TGVuZ3RoLAogICAgICAgICAgICAgbWFyZ2luQWZ0ZXJW
YWx1ZSA9IGF2YWlsYWJsZVNwYWNlIC0gbWFyZ2luQmVmb3JlVmFsdWU7IC8vIGFjY291bnQgZm9y
IG9kZCB2YWx1ZWQgZGlmZmVyZW5jZXMKICAgICAgICAgfSBlbHNlIGlmIChtYXJnaW5CZWZvcmUu
aXNBdXRvKCkpIHsKICAgICAgICAgICAgIC8vIFNvbHZlIGZvciB0b3AgbWFyZ2luCi0gICAgICAg
ICAgICBtYXJnaW5BZnRlclZhbHVlID0gbWFyZ2luQWZ0ZXIuY2FsY1ZhbHVlKGNvbnRhaW5lckxv
Z2ljYWxIZWlnaHQsIHZpZXdTaXplKTsKKyAgICAgICAgICAgIG1hcmdpbkFmdGVyVmFsdWUgPSBt
YXJnaW5BZnRlci5jYWxjVmFsdWUoY29udGFpbmVyTG9naWNhbEhlaWdodCk7CiAgICAgICAgICAg
ICBtYXJnaW5CZWZvcmVWYWx1ZSA9IGF2YWlsYWJsZVNwYWNlIC0gbWFyZ2luQWZ0ZXJWYWx1ZTsK
ICAgICAgICAgfSBlbHNlIGlmIChtYXJnaW5BZnRlci5pc0F1dG8oKSkgewogICAgICAgICAgICAg
Ly8gU29sdmUgZm9yIGJvdHRvbSBtYXJnaW4KLSAgICAgICAgICAgIG1hcmdpbkJlZm9yZVZhbHVl
ID0gbWFyZ2luQmVmb3JlLmNhbGNWYWx1ZShjb250YWluZXJMb2dpY2FsSGVpZ2h0LCB2aWV3U2l6
ZSk7CisgICAgICAgICAgICBtYXJnaW5CZWZvcmVWYWx1ZSA9IG1hcmdpbkJlZm9yZS5jYWxjVmFs
dWUoY29udGFpbmVyTG9naWNhbEhlaWdodCk7CiAgICAgICAgICAgICBtYXJnaW5BZnRlclZhbHVl
ID0gYXZhaWxhYmxlU3BhY2UgLSBtYXJnaW5CZWZvcmVWYWx1ZTsKICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgIC8vIE92ZXItY29uc3RyYWluZWQsIChubyBuZWVkIHNvbHZlIGZvciBib3R0
b20pCi0gICAgICAgICAgICBtYXJnaW5CZWZvcmVWYWx1ZSA9IG1hcmdpbkJlZm9yZS5jYWxjVmFs
dWUoY29udGFpbmVyTG9naWNhbEhlaWdodCwgdmlld1NpemUpOwotICAgICAgICAgICAgbWFyZ2lu
QWZ0ZXJWYWx1ZSA9IG1hcmdpbkFmdGVyLmNhbGNWYWx1ZShjb250YWluZXJMb2dpY2FsSGVpZ2h0
LCB2aWV3U2l6ZSk7CisgICAgICAgICAgICBtYXJnaW5CZWZvcmVWYWx1ZSA9IG1hcmdpbkJlZm9y
ZS5jYWxjVmFsdWUoY29udGFpbmVyTG9naWNhbEhlaWdodCk7CisgICAgICAgICAgICBtYXJnaW5B
ZnRlclZhbHVlID0gbWFyZ2luQWZ0ZXIuY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQp
OwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgLyotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCkBAIC0z
MTAzLDggKzMwOTEsOCBAQCB2b2lkIFJlbmRlckJveDo6Y29tcHV0ZVBvc2l0aW9uZWRMb2dpY2Fs
SGVpZ2h0VXNpbmcoTGVuZ3RoIGxvZ2ljYWxIZWlnaHRMZW5ndGgsCiAgICAgICAgIC8vIGJlY2F1
c2UgdGhlIHZhbHVlIGlzIG5vdCB1c2VkIGZvciBhbnkgZnVydGhlciBjYWxjdWxhdGlvbnMuCiAK
ICAgICAgICAgLy8gQ2FsY3VsYXRlIG1hcmdpbnMsICdhdXRvJyBtYXJnaW5zIGFyZSBpZ25vcmVk
LgotICAgICAgICBtYXJnaW5CZWZvcmVWYWx1ZSA9IG1hcmdpbkJlZm9yZS5jYWxjTWluVmFsdWUo
Y29udGFpbmVyTG9naWNhbEhlaWdodCwgdmlld1NpemUpOwotICAgICAgICBtYXJnaW5BZnRlclZh
bHVlID0gbWFyZ2luQWZ0ZXIuY2FsY01pblZhbHVlKGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQsIHZp
ZXdTaXplKTsKKyAgICAgICAgbWFyZ2luQmVmb3JlVmFsdWUgPSBtYXJnaW5CZWZvcmUuY2FsY01p
blZhbHVlKGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQpOworICAgICAgICBtYXJnaW5BZnRlclZhbHVl
ID0gbWFyZ2luQWZ0ZXIuY2FsY01pblZhbHVlKGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQpOwogCiAg
ICAgICAgIGNvbnN0IExheW91dFVuaXQgYXZhaWxhYmxlU3BhY2UgPSBjb250YWluZXJMb2dpY2Fs
SGVpZ2h0IC0gKG1hcmdpbkJlZm9yZVZhbHVlICsgbWFyZ2luQWZ0ZXJWYWx1ZSArIGJvcmRlcnNQ
bHVzUGFkZGluZyk7CiAKQEAgLTMxMTIsMjMgKzMxMDAsMjMgQEAgdm9pZCBSZW5kZXJCb3g6OmNv
bXB1dGVQb3NpdGlvbmVkTG9naWNhbEhlaWdodFVzaW5nKExlbmd0aCBsb2dpY2FsSGVpZ2h0TGVu
Z3RoLAogICAgICAgICBpZiAobG9naWNhbFRvcElzQXV0byAmJiBsb2dpY2FsSGVpZ2h0SXNBdXRv
ICYmICFsb2dpY2FsQm90dG9tSXNBdXRvKSB7CiAgICAgICAgICAgICAvLyBSVUxFIDE6IChoZWln
aHQgaXMgY29udGVudCBiYXNlZCwgc29sdmUgb2YgdG9wKQogICAgICAgICAgICAgbG9naWNhbEhl
aWdodFZhbHVlID0gY29udGVudExvZ2ljYWxIZWlnaHQ7Ci0gICAgICAgICAgICBsb2dpY2FsVG9w
VmFsdWUgPSBhdmFpbGFibGVTcGFjZSAtIChsb2dpY2FsSGVpZ2h0VmFsdWUgKyBsb2dpY2FsQm90
dG9tLmNhbGNWYWx1ZShjb250YWluZXJMb2dpY2FsSGVpZ2h0LCB2aWV3U2l6ZSkpOworICAgICAg
ICAgICAgbG9naWNhbFRvcFZhbHVlID0gYXZhaWxhYmxlU3BhY2UgLSAobG9naWNhbEhlaWdodFZh
bHVlICsgbG9naWNhbEJvdHRvbS5jYWxjVmFsdWUoY29udGFpbmVyTG9naWNhbEhlaWdodCkpOwog
ICAgICAgICB9IGVsc2UgaWYgKCFsb2dpY2FsVG9wSXNBdXRvICYmIGxvZ2ljYWxIZWlnaHRJc0F1
dG8gJiYgbG9naWNhbEJvdHRvbUlzQXV0bykgewogICAgICAgICAgICAgLy8gUlVMRSAzOiAoaGVp
Z2h0IGlzIGNvbnRlbnQgYmFzZWQsIG5vIG5lZWQgc29sdmUgb2YgYm90dG9tKQotICAgICAgICAg
ICAgbG9naWNhbFRvcFZhbHVlID0gbG9naWNhbFRvcC5jYWxjVmFsdWUoY29udGFpbmVyTG9naWNh
bEhlaWdodCwgdmlld1NpemUpOworICAgICAgICAgICAgbG9naWNhbFRvcFZhbHVlID0gbG9naWNh
bFRvcC5jYWxjVmFsdWUoY29udGFpbmVyTG9naWNhbEhlaWdodCk7CiAgICAgICAgICAgICBsb2dp
Y2FsSGVpZ2h0VmFsdWUgPSBjb250ZW50TG9naWNhbEhlaWdodDsKICAgICAgICAgfSBlbHNlIGlm
IChsb2dpY2FsVG9wSXNBdXRvICYmICFsb2dpY2FsSGVpZ2h0SXNBdXRvICYmICFsb2dpY2FsQm90
dG9tSXNBdXRvKSB7CiAgICAgICAgICAgICAvLyBSVUxFIDQ6IChzb2x2ZSBvZiB0b3ApCi0gICAg
ICAgICAgICBsb2dpY2FsSGVpZ2h0VmFsdWUgPSBjb21wdXRlQ29udGVudEJveExvZ2ljYWxIZWln
aHQobG9naWNhbEhlaWdodExlbmd0aC5jYWxjVmFsdWUoY29udGFpbmVyTG9naWNhbEhlaWdodCwg
dmlld1NpemUpKTsKLSAgICAgICAgICAgIGxvZ2ljYWxUb3BWYWx1ZSA9IGF2YWlsYWJsZVNwYWNl
IC0gKGxvZ2ljYWxIZWlnaHRWYWx1ZSArIGxvZ2ljYWxCb3R0b20uY2FsY1ZhbHVlKGNvbnRhaW5l
ckxvZ2ljYWxIZWlnaHQsIHZpZXdTaXplKSk7CisgICAgICAgICAgICBsb2dpY2FsSGVpZ2h0VmFs
dWUgPSBjb21wdXRlQ29udGVudEJveExvZ2ljYWxIZWlnaHQobG9naWNhbEhlaWdodExlbmd0aC5j
YWxjVmFsdWUoY29udGFpbmVyTG9naWNhbEhlaWdodCkpOworICAgICAgICAgICAgbG9naWNhbFRv
cFZhbHVlID0gYXZhaWxhYmxlU3BhY2UgLSAobG9naWNhbEhlaWdodFZhbHVlICsgbG9naWNhbEJv
dHRvbS5jYWxjVmFsdWUoY29udGFpbmVyTG9naWNhbEhlaWdodCkpOwogICAgICAgICB9IGVsc2Ug
aWYgKCFsb2dpY2FsVG9wSXNBdXRvICYmIGxvZ2ljYWxIZWlnaHRJc0F1dG8gJiYgIWxvZ2ljYWxC
b3R0b21Jc0F1dG8pIHsKICAgICAgICAgICAgIC8vIFJVTEUgNTogKHNvbHZlIG9mIGhlaWdodCkK
LSAgICAgICAgICAgIGxvZ2ljYWxUb3BWYWx1ZSA9IGxvZ2ljYWxUb3AuY2FsY1ZhbHVlKGNvbnRh
aW5lckxvZ2ljYWxIZWlnaHQsIHZpZXdTaXplKTsKLSAgICAgICAgICAgIGxvZ2ljYWxIZWlnaHRW
YWx1ZSA9IG1heDxMYXlvdXRVbml0PigwLCBhdmFpbGFibGVTcGFjZSAtIChsb2dpY2FsVG9wVmFs
dWUgKyBsb2dpY2FsQm90dG9tLmNhbGNWYWx1ZShjb250YWluZXJMb2dpY2FsSGVpZ2h0LCB2aWV3
U2l6ZSkpKTsKKyAgICAgICAgICAgIGxvZ2ljYWxUb3BWYWx1ZSA9IGxvZ2ljYWxUb3AuY2FsY1Zh
bHVlKGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQpOworICAgICAgICAgICAgbG9naWNhbEhlaWdodFZh
bHVlID0gbWF4PExheW91dFVuaXQ+KDAsIGF2YWlsYWJsZVNwYWNlIC0gKGxvZ2ljYWxUb3BWYWx1
ZSArIGxvZ2ljYWxCb3R0b20uY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQpKSk7CiAg
ICAgICAgIH0gZWxzZSBpZiAoIWxvZ2ljYWxUb3BJc0F1dG8gJiYgIWxvZ2ljYWxIZWlnaHRJc0F1
dG8gJiYgbG9naWNhbEJvdHRvbUlzQXV0bykgewogICAgICAgICAgICAgLy8gUlVMRSA2OiAobm8g
bmVlZCBzb2x2ZSBvZiBib3R0b20pCi0gICAgICAgICAgICBsb2dpY2FsSGVpZ2h0VmFsdWUgPSBj
b21wdXRlQ29udGVudEJveExvZ2ljYWxIZWlnaHQobG9naWNhbEhlaWdodExlbmd0aC5jYWxjVmFs
dWUoY29udGFpbmVyTG9naWNhbEhlaWdodCwgdmlld1NpemUpKTsKLSAgICAgICAgICAgIGxvZ2lj
YWxUb3BWYWx1ZSA9IGxvZ2ljYWxUb3AuY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQs
IHZpZXdTaXplKTsKKyAgICAgICAgICAgIGxvZ2ljYWxIZWlnaHRWYWx1ZSA9IGNvbXB1dGVDb250
ZW50Qm94TG9naWNhbEhlaWdodChsb2dpY2FsSGVpZ2h0TGVuZ3RoLmNhbGNWYWx1ZShjb250YWlu
ZXJMb2dpY2FsSGVpZ2h0KSk7CisgICAgICAgICAgICBsb2dpY2FsVG9wVmFsdWUgPSBsb2dpY2Fs
VG9wLmNhbGNWYWx1ZShjb250YWluZXJMb2dpY2FsSGVpZ2h0KTsKICAgICAgICAgfQogICAgIH0K
IApAQCAtMzIwNCwxNCArMzE5MiwxMyBAQCB2b2lkIFJlbmRlckJveDo6Y29tcHV0ZVBvc2l0aW9u
ZWRMb2dpY2FsV2lkdGhSZXBsYWNlZCgpCiAgICAgXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgICAgTGF5
b3V0VW5pdCBsb2dpY2FsTGVmdFZhbHVlID0gMDsKICAgICBMYXlvdXRVbml0IGxvZ2ljYWxSaWdo
dFZhbHVlID0gMDsKLSAgICBJbnRTaXplIHZpZXdTaXplID0gdmlld3BvcnRTaXplKCk7CiAKICAg
ICBpZiAobWFyZ2luTG9naWNhbExlZnQuaXNBdXRvKCkgJiYgbWFyZ2luTG9naWNhbFJpZ2h0Lmlz
QXV0bygpKSB7CiAgICAgICAgIC8vICdsZWZ0JyBhbmQgJ3JpZ2h0JyBjYW5ub3QgYmUgJ2F1dG8n
IGR1ZSB0byBzdGVwIDMKICAgICAgICAgQVNTRVJUKCEobG9naWNhbExlZnQuaXNBdXRvKCkgJiYg
bG9naWNhbFJpZ2h0LmlzQXV0bygpKSk7CiAKLSAgICAgICAgbG9naWNhbExlZnRWYWx1ZSA9IGxv
Z2ljYWxMZWZ0LmNhbGNWYWx1ZShjb250YWluZXJMb2dpY2FsV2lkdGgsIHZpZXdTaXplKTsKLSAg
ICAgICAgbG9naWNhbFJpZ2h0VmFsdWUgPSBsb2dpY2FsUmlnaHQuY2FsY1ZhbHVlKGNvbnRhaW5l
ckxvZ2ljYWxXaWR0aCwgdmlld1NpemUpOworICAgICAgICBsb2dpY2FsTGVmdFZhbHVlID0gbG9n
aWNhbExlZnQuY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxXaWR0aCk7CisgICAgICAgIGxvZ2lj
YWxSaWdodFZhbHVlID0gbG9naWNhbFJpZ2h0LmNhbGNWYWx1ZShjb250YWluZXJMb2dpY2FsV2lk
dGgpOwogCiAgICAgICAgIExheW91dFVuaXQgZGlmZmVyZW5jZSA9IGF2YWlsYWJsZVNwYWNlIC0g
KGxvZ2ljYWxMZWZ0VmFsdWUgKyBsb2dpY2FsUmlnaHRWYWx1ZSk7CiAgICAgICAgIGlmIChkaWZm
ZXJlbmNlID4gMCkgewpAQCAtMzIzNCwzOSArMzIyMSwzOSBAQCB2b2lkIFJlbmRlckJveDo6Y29t
cHV0ZVBvc2l0aW9uZWRMb2dpY2FsV2lkdGhSZXBsYWNlZCgpCiAgICAgICogICAgdGhhdCB2YWx1
ZS4KICAgICBcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICAgICB9IGVsc2UgaWYgKGxvZ2ljYWxMZWZ0Lmlz
QXV0bygpKSB7Ci0gICAgICAgIG1hcmdpbkxvZ2ljYWxMZWZ0QWxpYXMgPSBtYXJnaW5Mb2dpY2Fs
TGVmdC5jYWxjVmFsdWUoY29udGFpbmVyTG9naWNhbFdpZHRoLCB2aWV3U2l6ZSk7Ci0gICAgICAg
IG1hcmdpbkxvZ2ljYWxSaWdodEFsaWFzID0gbWFyZ2luTG9naWNhbFJpZ2h0LmNhbGNWYWx1ZShj
b250YWluZXJMb2dpY2FsV2lkdGgsIHZpZXdTaXplKTsKLSAgICAgICAgbG9naWNhbFJpZ2h0VmFs
dWUgPSBsb2dpY2FsUmlnaHQuY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxXaWR0aCwgdmlld1Np
emUpOworICAgICAgICBtYXJnaW5Mb2dpY2FsTGVmdEFsaWFzID0gbWFyZ2luTG9naWNhbExlZnQu
Y2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxXaWR0aCk7CisgICAgICAgIG1hcmdpbkxvZ2ljYWxS
aWdodEFsaWFzID0gbWFyZ2luTG9naWNhbFJpZ2h0LmNhbGNWYWx1ZShjb250YWluZXJMb2dpY2Fs
V2lkdGgpOworICAgICAgICBsb2dpY2FsUmlnaHRWYWx1ZSA9IGxvZ2ljYWxSaWdodC5jYWxjVmFs
dWUoY29udGFpbmVyTG9naWNhbFdpZHRoKTsKIAogICAgICAgICAvLyBTb2x2ZSBmb3IgJ2xlZnQn
CiAgICAgICAgIGxvZ2ljYWxMZWZ0VmFsdWUgPSBhdmFpbGFibGVTcGFjZSAtIChsb2dpY2FsUmln
aHRWYWx1ZSArIG1hcmdpbkxvZ2ljYWxMZWZ0QWxpYXMgKyBtYXJnaW5Mb2dpY2FsUmlnaHRBbGlh
cyk7CiAgICAgfSBlbHNlIGlmIChsb2dpY2FsUmlnaHQuaXNBdXRvKCkpIHsKLSAgICAgICAgbWFy
Z2luTG9naWNhbExlZnRBbGlhcyA9IG1hcmdpbkxvZ2ljYWxMZWZ0LmNhbGNWYWx1ZShjb250YWlu
ZXJMb2dpY2FsV2lkdGgsIHZpZXdTaXplKTsKLSAgICAgICAgbWFyZ2luTG9naWNhbFJpZ2h0QWxp
YXMgPSBtYXJnaW5Mb2dpY2FsUmlnaHQuY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxXaWR0aCwg
dmlld1NpemUpOwotICAgICAgICBsb2dpY2FsTGVmdFZhbHVlID0gbG9naWNhbExlZnQuY2FsY1Zh
bHVlKGNvbnRhaW5lckxvZ2ljYWxXaWR0aCwgdmlld1NpemUpOworICAgICAgICBtYXJnaW5Mb2dp
Y2FsTGVmdEFsaWFzID0gbWFyZ2luTG9naWNhbExlZnQuY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2lj
YWxXaWR0aCk7CisgICAgICAgIG1hcmdpbkxvZ2ljYWxSaWdodEFsaWFzID0gbWFyZ2luTG9naWNh
bFJpZ2h0LmNhbGNWYWx1ZShjb250YWluZXJMb2dpY2FsV2lkdGgpOworICAgICAgICBsb2dpY2Fs
TGVmdFZhbHVlID0gbG9naWNhbExlZnQuY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxXaWR0aCk7
CiAKICAgICAgICAgLy8gU29sdmUgZm9yICdyaWdodCcKICAgICAgICAgbG9naWNhbFJpZ2h0VmFs
dWUgPSBhdmFpbGFibGVTcGFjZSAtIChsb2dpY2FsTGVmdFZhbHVlICsgbWFyZ2luTG9naWNhbExl
ZnRBbGlhcyArIG1hcmdpbkxvZ2ljYWxSaWdodEFsaWFzKTsKICAgICB9IGVsc2UgaWYgKG1hcmdp
bkxvZ2ljYWxMZWZ0LmlzQXV0bygpKSB7Ci0gICAgICAgIG1hcmdpbkxvZ2ljYWxSaWdodEFsaWFz
ID0gbWFyZ2luTG9naWNhbFJpZ2h0LmNhbGNWYWx1ZShjb250YWluZXJMb2dpY2FsV2lkdGgsIHZp
ZXdTaXplKTsKLSAgICAgICAgbG9naWNhbExlZnRWYWx1ZSA9IGxvZ2ljYWxMZWZ0LmNhbGNWYWx1
ZShjb250YWluZXJMb2dpY2FsV2lkdGgsIHZpZXdTaXplKTsKLSAgICAgICAgbG9naWNhbFJpZ2h0
VmFsdWUgPSBsb2dpY2FsUmlnaHQuY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxXaWR0aCwgdmll
d1NpemUpOworICAgICAgICBtYXJnaW5Mb2dpY2FsUmlnaHRBbGlhcyA9IG1hcmdpbkxvZ2ljYWxS
aWdodC5jYWxjVmFsdWUoY29udGFpbmVyTG9naWNhbFdpZHRoKTsKKyAgICAgICAgbG9naWNhbExl
ZnRWYWx1ZSA9IGxvZ2ljYWxMZWZ0LmNhbGNWYWx1ZShjb250YWluZXJMb2dpY2FsV2lkdGgpOwor
ICAgICAgICBsb2dpY2FsUmlnaHRWYWx1ZSA9IGxvZ2ljYWxSaWdodC5jYWxjVmFsdWUoY29udGFp
bmVyTG9naWNhbFdpZHRoKTsKIAogICAgICAgICAvLyBTb2x2ZSBmb3IgJ21hcmdpbi1sZWZ0Jwog
ICAgICAgICBtYXJnaW5Mb2dpY2FsTGVmdEFsaWFzID0gYXZhaWxhYmxlU3BhY2UgLSAobG9naWNh
bExlZnRWYWx1ZSArIGxvZ2ljYWxSaWdodFZhbHVlICsgbWFyZ2luTG9naWNhbFJpZ2h0QWxpYXMp
OwogICAgIH0gZWxzZSBpZiAobWFyZ2luTG9naWNhbFJpZ2h0LmlzQXV0bygpKSB7Ci0gICAgICAg
IG1hcmdpbkxvZ2ljYWxMZWZ0QWxpYXMgPSBtYXJnaW5Mb2dpY2FsTGVmdC5jYWxjVmFsdWUoY29u
dGFpbmVyTG9naWNhbFdpZHRoLCB2aWV3U2l6ZSk7Ci0gICAgICAgIGxvZ2ljYWxMZWZ0VmFsdWUg
PSBsb2dpY2FsTGVmdC5jYWxjVmFsdWUoY29udGFpbmVyTG9naWNhbFdpZHRoLCB2aWV3U2l6ZSk7
Ci0gICAgICAgIGxvZ2ljYWxSaWdodFZhbHVlID0gbG9naWNhbFJpZ2h0LmNhbGNWYWx1ZShjb250
YWluZXJMb2dpY2FsV2lkdGgsIHZpZXdTaXplKTsKKyAgICAgICAgbWFyZ2luTG9naWNhbExlZnRB
bGlhcyA9IG1hcmdpbkxvZ2ljYWxMZWZ0LmNhbGNWYWx1ZShjb250YWluZXJMb2dpY2FsV2lkdGgp
OworICAgICAgICBsb2dpY2FsTGVmdFZhbHVlID0gbG9naWNhbExlZnQuY2FsY1ZhbHVlKGNvbnRh
aW5lckxvZ2ljYWxXaWR0aCk7CisgICAgICAgIGxvZ2ljYWxSaWdodFZhbHVlID0gbG9naWNhbFJp
Z2h0LmNhbGNWYWx1ZShjb250YWluZXJMb2dpY2FsV2lkdGgpOwogCiAgICAgICAgIC8vIFNvbHZl
IGZvciAnbWFyZ2luLXJpZ2h0JwogICAgICAgICBtYXJnaW5Mb2dpY2FsUmlnaHRBbGlhcyA9IGF2
YWlsYWJsZVNwYWNlIC0gKGxvZ2ljYWxMZWZ0VmFsdWUgKyBsb2dpY2FsUmlnaHRWYWx1ZSArIG1h
cmdpbkxvZ2ljYWxMZWZ0QWxpYXMpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIE5vdGhpbmcg
aXMgJ2F1dG8nLCBqdXN0IGNhbGN1bGF0ZSB0aGUgdmFsdWVzLgotICAgICAgICBtYXJnaW5Mb2dp
Y2FsTGVmdEFsaWFzID0gbWFyZ2luTG9naWNhbExlZnQuY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2lj
YWxXaWR0aCwgdmlld1NpemUpOwotICAgICAgICBtYXJnaW5Mb2dpY2FsUmlnaHRBbGlhcyA9IG1h
cmdpbkxvZ2ljYWxSaWdodC5jYWxjVmFsdWUoY29udGFpbmVyTG9naWNhbFdpZHRoLCB2aWV3U2l6
ZSk7Ci0gICAgICAgIGxvZ2ljYWxSaWdodFZhbHVlID0gbG9naWNhbFJpZ2h0LmNhbGNWYWx1ZShj
b250YWluZXJMb2dpY2FsV2lkdGgsIHZpZXdTaXplKTsKLSAgICAgICAgbG9naWNhbExlZnRWYWx1
ZSA9IGxvZ2ljYWxMZWZ0LmNhbGNWYWx1ZShjb250YWluZXJMb2dpY2FsV2lkdGgsIHZpZXdTaXpl
KTsKKyAgICAgICAgbWFyZ2luTG9naWNhbExlZnRBbGlhcyA9IG1hcmdpbkxvZ2ljYWxMZWZ0LmNh
bGNWYWx1ZShjb250YWluZXJMb2dpY2FsV2lkdGgpOworICAgICAgICBtYXJnaW5Mb2dpY2FsUmln
aHRBbGlhcyA9IG1hcmdpbkxvZ2ljYWxSaWdodC5jYWxjVmFsdWUoY29udGFpbmVyTG9naWNhbFdp
ZHRoKTsKKyAgICAgICAgbG9naWNhbFJpZ2h0VmFsdWUgPSBsb2dpY2FsUmlnaHQuY2FsY1ZhbHVl
KGNvbnRhaW5lckxvZ2ljYWxXaWR0aCk7CisgICAgICAgIGxvZ2ljYWxMZWZ0VmFsdWUgPSBsb2dp
Y2FsTGVmdC5jYWxjVmFsdWUoY29udGFpbmVyTG9naWNhbFdpZHRoKTsKICAgICAgICAgLy8gSWYg
dGhlIGNvbnRhaW5pbmcgYmxvY2sgaXMgcmlnaHQtdG8tbGVmdCwgdGhlbiBwdXNoIHRoZSBsZWZ0
IHBvc2l0aW9uIGFzIGZhciB0byB0aGUgcmlnaHQgYXMgcG9zc2libGUKICAgICAgICAgaWYgKGNv
bnRhaW5lckRpcmVjdGlvbiA9PSBSVEwpIHsKICAgICAgICAgICAgIGludCB0b3RhbExvZ2ljYWxX
aWR0aCA9IGxvZ2ljYWxXaWR0aCgpICsgbG9naWNhbExlZnRWYWx1ZSArIGxvZ2ljYWxSaWdodFZh
bHVlICsgIG1hcmdpbkxvZ2ljYWxMZWZ0QWxpYXMgKyBtYXJnaW5Mb2dpY2FsUmlnaHRBbGlhczsK
QEAgLTMzMjksNyArMzMxNiw2IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21wdXRlUG9zaXRpb25lZExv
Z2ljYWxIZWlnaHRSZXBsYWNlZCgpCiAKICAgICBMZW5ndGggbG9naWNhbFRvcCA9IHN0eWxlKCkt
PmxvZ2ljYWxUb3AoKTsKICAgICBMZW5ndGggbG9naWNhbEJvdHRvbSA9IHN0eWxlKCktPmxvZ2lj
YWxCb3R0b20oKTsKLSAgICBJbnRTaXplIHZpZXdTaXplID0gdmlld3BvcnRTaXplKCk7CiAKICAg
ICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKlwKICAgICAgKiAxLiBUaGUgdXNlZCB2YWx1ZSBvZiAnaGVpZ2h0
JyBpcyBkZXRlcm1pbmVkIGFzIGZvciBpbmxpbmUgcmVwbGFjZWQKQEAgLTMzNzMsOCArMzM1OSw4
IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21wdXRlUG9zaXRpb25lZExvZ2ljYWxIZWlnaHRSZXBsYWNl
ZCgpCiAgICAgICAgIC8vICd0b3AnIGFuZCAnYm90dG9tJyBjYW5ub3QgYmUgJ2F1dG8nIGR1ZSB0
byBzdGVwIDIgYW5kIDMgY29tYmluZWQuCiAgICAgICAgIEFTU0VSVCghKGxvZ2ljYWxUb3AuaXNB
dXRvKCkgfHwgbG9naWNhbEJvdHRvbS5pc0F1dG8oKSkpOwogCi0gICAgICAgIGxvZ2ljYWxUb3BW
YWx1ZSA9IGxvZ2ljYWxUb3AuY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQsIHZpZXdT
aXplKTsKLSAgICAgICAgbG9naWNhbEJvdHRvbVZhbHVlID0gbG9naWNhbEJvdHRvbS5jYWxjVmFs
dWUoY29udGFpbmVyTG9naWNhbEhlaWdodCwgdmlld1NpemUpOworICAgICAgICBsb2dpY2FsVG9w
VmFsdWUgPSBsb2dpY2FsVG9wLmNhbGNWYWx1ZShjb250YWluZXJMb2dpY2FsSGVpZ2h0KTsKKyAg
ICAgICAgbG9naWNhbEJvdHRvbVZhbHVlID0gbG9naWNhbEJvdHRvbS5jYWxjVmFsdWUoY29udGFp
bmVyTG9naWNhbEhlaWdodCk7CiAKICAgICAgICAgTGF5b3V0VW5pdCBkaWZmZXJlbmNlID0gYXZh
aWxhYmxlU3BhY2UgLSAobG9naWNhbFRvcFZhbHVlICsgbG9naWNhbEJvdHRvbVZhbHVlKTsKICAg
ICAgICAgLy8gTk9URTogVGhpcyBtYXkgcmVzdWx0IGluIG5lZ2F0aXZlIHZhbHVlcy4KQEAgLTMz
ODYsMzkgKzMzNzIsMzkgQEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNh
bEhlaWdodFJlcGxhY2VkKCkKICAgICAgKiAgICBmb3IgdGhhdCB2YWx1ZS4KICAgICBcKi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKi8KICAgICB9IGVsc2UgaWYgKGxvZ2ljYWxUb3AuaXNBdXRvKCkpIHsKLSAgICAg
ICAgbWFyZ2luQmVmb3JlQWxpYXMgPSBtYXJnaW5CZWZvcmUuY2FsY1ZhbHVlKGNvbnRhaW5lckxv
Z2ljYWxIZWlnaHQsIHZpZXdTaXplKTsKLSAgICAgICAgbWFyZ2luQWZ0ZXJBbGlhcyA9IG1hcmdp
bkFmdGVyLmNhbGNWYWx1ZShjb250YWluZXJMb2dpY2FsSGVpZ2h0LCB2aWV3U2l6ZSk7Ci0gICAg
ICAgIGxvZ2ljYWxCb3R0b21WYWx1ZSA9IGxvZ2ljYWxCb3R0b20uY2FsY1ZhbHVlKGNvbnRhaW5l
ckxvZ2ljYWxIZWlnaHQsIHZpZXdTaXplKTsKKyAgICAgICAgbWFyZ2luQmVmb3JlQWxpYXMgPSBt
YXJnaW5CZWZvcmUuY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQpOworICAgICAgICBt
YXJnaW5BZnRlckFsaWFzID0gbWFyZ2luQWZ0ZXIuY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxI
ZWlnaHQpOworICAgICAgICBsb2dpY2FsQm90dG9tVmFsdWUgPSBsb2dpY2FsQm90dG9tLmNhbGNW
YWx1ZShjb250YWluZXJMb2dpY2FsSGVpZ2h0KTsKIAogICAgICAgICAvLyBTb2x2ZSBmb3IgJ3Rv
cCcKICAgICAgICAgbG9naWNhbFRvcFZhbHVlID0gYXZhaWxhYmxlU3BhY2UgLSAobG9naWNhbEJv
dHRvbVZhbHVlICsgbWFyZ2luQmVmb3JlQWxpYXMgKyBtYXJnaW5BZnRlckFsaWFzKTsKICAgICB9
IGVsc2UgaWYgKGxvZ2ljYWxCb3R0b20uaXNBdXRvKCkpIHsKLSAgICAgICAgbWFyZ2luQmVmb3Jl
QWxpYXMgPSBtYXJnaW5CZWZvcmUuY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQsIHZp
ZXdTaXplKTsKLSAgICAgICAgbWFyZ2luQWZ0ZXJBbGlhcyA9IG1hcmdpbkFmdGVyLmNhbGNWYWx1
ZShjb250YWluZXJMb2dpY2FsSGVpZ2h0LCB2aWV3U2l6ZSk7Ci0gICAgICAgIGxvZ2ljYWxUb3BW
YWx1ZSA9IGxvZ2ljYWxUb3AuY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQsIHZpZXdT
aXplKTsKKyAgICAgICAgbWFyZ2luQmVmb3JlQWxpYXMgPSBtYXJnaW5CZWZvcmUuY2FsY1ZhbHVl
KGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQpOworICAgICAgICBtYXJnaW5BZnRlckFsaWFzID0gbWFy
Z2luQWZ0ZXIuY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQpOworICAgICAgICBsb2dp
Y2FsVG9wVmFsdWUgPSBsb2dpY2FsVG9wLmNhbGNWYWx1ZShjb250YWluZXJMb2dpY2FsSGVpZ2h0
KTsKIAogICAgICAgICAvLyBTb2x2ZSBmb3IgJ2JvdHRvbScKICAgICAgICAgLy8gTk9URTogSXQg
aXMgbm90IG5lY2Vzc2FyeSB0byBzb2x2ZSBmb3IgJ2JvdHRvbScgYmVjYXVzZSB3ZSBkb24ndCBl
dmVyCiAgICAgICAgIC8vIHVzZSB0aGUgdmFsdWUuCiAgICAgfSBlbHNlIGlmIChtYXJnaW5CZWZv
cmUuaXNBdXRvKCkpIHsKLSAgICAgICAgbWFyZ2luQWZ0ZXJBbGlhcyA9IG1hcmdpbkFmdGVyLmNh
bGNWYWx1ZShjb250YWluZXJMb2dpY2FsSGVpZ2h0LCB2aWV3U2l6ZSk7Ci0gICAgICAgIGxvZ2lj
YWxUb3BWYWx1ZSA9IGxvZ2ljYWxUb3AuY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQs
IHZpZXdTaXplKTsKLSAgICAgICAgbG9naWNhbEJvdHRvbVZhbHVlID0gbG9naWNhbEJvdHRvbS5j
YWxjVmFsdWUoY29udGFpbmVyTG9naWNhbEhlaWdodCwgdmlld1NpemUpOworICAgICAgICBtYXJn
aW5BZnRlckFsaWFzID0gbWFyZ2luQWZ0ZXIuY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxIZWln
aHQpOworICAgICAgICBsb2dpY2FsVG9wVmFsdWUgPSBsb2dpY2FsVG9wLmNhbGNWYWx1ZShjb250
YWluZXJMb2dpY2FsSGVpZ2h0KTsKKyAgICAgICAgbG9naWNhbEJvdHRvbVZhbHVlID0gbG9naWNh
bEJvdHRvbS5jYWxjVmFsdWUoY29udGFpbmVyTG9naWNhbEhlaWdodCk7CiAKICAgICAgICAgLy8g
U29sdmUgZm9yICdtYXJnaW4tdG9wJwogICAgICAgICBtYXJnaW5CZWZvcmVBbGlhcyA9IGF2YWls
YWJsZVNwYWNlIC0gKGxvZ2ljYWxUb3BWYWx1ZSArIGxvZ2ljYWxCb3R0b21WYWx1ZSArIG1hcmdp
bkFmdGVyQWxpYXMpOwogICAgIH0gZWxzZSBpZiAobWFyZ2luQWZ0ZXIuaXNBdXRvKCkpIHsKLSAg
ICAgICAgbWFyZ2luQmVmb3JlQWxpYXMgPSBtYXJnaW5CZWZvcmUuY2FsY1ZhbHVlKGNvbnRhaW5l
ckxvZ2ljYWxIZWlnaHQsIHZpZXdTaXplKTsKLSAgICAgICAgbG9naWNhbFRvcFZhbHVlID0gbG9n
aWNhbFRvcC5jYWxjVmFsdWUoY29udGFpbmVyTG9naWNhbEhlaWdodCwgdmlld1NpemUpOwotICAg
ICAgICBsb2dpY2FsQm90dG9tVmFsdWUgPSBsb2dpY2FsQm90dG9tLmNhbGNWYWx1ZShjb250YWlu
ZXJMb2dpY2FsSGVpZ2h0LCB2aWV3U2l6ZSk7CisgICAgICAgIG1hcmdpbkJlZm9yZUFsaWFzID0g
bWFyZ2luQmVmb3JlLmNhbGNWYWx1ZShjb250YWluZXJMb2dpY2FsSGVpZ2h0KTsKKyAgICAgICAg
bG9naWNhbFRvcFZhbHVlID0gbG9naWNhbFRvcC5jYWxjVmFsdWUoY29udGFpbmVyTG9naWNhbEhl
aWdodCk7CisgICAgICAgIGxvZ2ljYWxCb3R0b21WYWx1ZSA9IGxvZ2ljYWxCb3R0b20uY2FsY1Zh
bHVlKGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQpOwogCiAgICAgICAgIC8vIFNvbHZlIGZvciAnbWFy
Z2luLWJvdHRvbScKICAgICAgICAgbWFyZ2luQWZ0ZXJBbGlhcyA9IGF2YWlsYWJsZVNwYWNlIC0g
KGxvZ2ljYWxUb3BWYWx1ZSArIGxvZ2ljYWxCb3R0b21WYWx1ZSArIG1hcmdpbkJlZm9yZUFsaWFz
KTsKICAgICB9IGVsc2UgewogICAgICAgICAvLyBOb3RoaW5nIGlzICdhdXRvJywganVzdCBjYWxj
dWxhdGUgdGhlIHZhbHVlcy4KLSAgICAgICAgbWFyZ2luQmVmb3JlQWxpYXMgPSBtYXJnaW5CZWZv
cmUuY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQsIHZpZXdTaXplKTsKLSAgICAgICAg
bWFyZ2luQWZ0ZXJBbGlhcyA9IG1hcmdpbkFmdGVyLmNhbGNWYWx1ZShjb250YWluZXJMb2dpY2Fs
SGVpZ2h0LCB2aWV3U2l6ZSk7Ci0gICAgICAgIGxvZ2ljYWxUb3BWYWx1ZSA9IGxvZ2ljYWxUb3Au
Y2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQsIHZpZXdTaXplKTsKKyAgICAgICAgbWFy
Z2luQmVmb3JlQWxpYXMgPSBtYXJnaW5CZWZvcmUuY2FsY1ZhbHVlKGNvbnRhaW5lckxvZ2ljYWxI
ZWlnaHQpOworICAgICAgICBtYXJnaW5BZnRlckFsaWFzID0gbWFyZ2luQWZ0ZXIuY2FsY1ZhbHVl
KGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQpOworICAgICAgICBsb2dpY2FsVG9wVmFsdWUgPSBsb2dp
Y2FsVG9wLmNhbGNWYWx1ZShjb250YWluZXJMb2dpY2FsSGVpZ2h0KTsKICAgICAgICAgLy8gTk9U
RTogSXQgaXMgbm90IG5lY2Vzc2FyeSB0byBzb2x2ZSBmb3IgJ2JvdHRvbScgYmVjYXVzZSB3ZSBk
b24ndCBldmVyCiAgICAgICAgIC8vIHVzZSB0aGUgdmFsdWUuCiAgICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IDVlNDYw
NjI2ZTE4NDU4NDhiMWYxN2Q2MTZlMTUwMDY2YWUxYmQ3ZTguLmUzYWIzMjE4MGRlOTg2MmY1Yjcw
NGMyMGUwMjJiNTgzZjJkYjliNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtNDI0LDEzICs0MjQsMTIgQEAgTGF5b3V0VW5p
dCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cmVsYXRpdmVQb3NpdGlvbk9mZnNldFgoKSBjb25zdAog
ICAgIGlmICghc3R5bGUoKS0+bGVmdCgpLmlzQXV0bygpKSB7CiAgICAgICAgIFJlbmRlckJsb2Nr
KiBjYiA9IGNvbnRhaW5pbmdCbG9jaygpOwogICAgICAgICBpZiAoIXN0eWxlKCktPnJpZ2h0KCku
aXNBdXRvKCkgJiYgIWNiLT5zdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCi0gICAg
ICAgICAgICByZXR1cm4gLXN0eWxlKCktPnJpZ2h0KCkuY2FsY1ZhbHVlKGNiLT5hdmFpbGFibGVX
aWR0aCgpLCB2aWV3cG9ydFNpemUoKSk7Ci0gICAgICAgIHJldHVybiBvZmZzZXQgKyBzdHlsZSgp
LT5sZWZ0KCkuY2FsY1ZhbHVlKGNiLT5hdmFpbGFibGVXaWR0aCgpLCB2aWV3cG9ydFNpemUoKSk7
Ci0KKyAgICAgICAgICAgIHJldHVybiAtc3R5bGUoKS0+cmlnaHQoKS5jYWxjVmFsdWUoY2ItPmF2
YWlsYWJsZVdpZHRoKCkpOworICAgICAgICByZXR1cm4gb2Zmc2V0ICsgc3R5bGUoKS0+bGVmdCgp
LmNhbGNWYWx1ZShjYi0+YXZhaWxhYmxlV2lkdGgoKSk7CiAgICAgfQogICAgIGlmICghc3R5bGUo
KS0+cmlnaHQoKS5pc0F1dG8oKSkgewogICAgICAgICBSZW5kZXJCbG9jayogY2IgPSBjb250YWlu
aW5nQmxvY2soKTsKLSAgICAgICAgcmV0dXJuIG9mZnNldCArIC1zdHlsZSgpLT5yaWdodCgpLmNh
bGNWYWx1ZShjYi0+YXZhaWxhYmxlV2lkdGgoKSwgdmlld3BvcnRTaXplKCkpOworICAgICAgICBy
ZXR1cm4gb2Zmc2V0ICsgLXN0eWxlKCktPnJpZ2h0KCkuY2FsY1ZhbHVlKGNiLT5hdmFpbGFibGVX
aWR0aCgpKTsKICAgICB9CiAgICAgcmV0dXJuIG9mZnNldDsKIH0KQEAgLTQ1MCwxMyArNDQ5LDEz
IEBAIExheW91dFVuaXQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnJlbGF0aXZlUG9zaXRpb25PZmZz
ZXRZKCkgY29uc3QKICAgICAgICAgJiYgKCFjb250YWluaW5nQmxvY2stPnN0eWxlKCktPmhlaWdo
dCgpLmlzQXV0bygpCiAgICAgICAgICAgICB8fCAhc3R5bGUoKS0+dG9wKCkuaXNQZXJjZW50KCkK
ICAgICAgICAgICAgIHx8IGNvbnRhaW5pbmdCbG9jay0+c3RyZXRjaGVzVG9WaWV3cG9ydCgpKSkK
LSAgICAgICAgcmV0dXJuIG9mZnNldCArIHN0eWxlKCktPnRvcCgpLmNhbGNWYWx1ZShjb250YWlu
aW5nQmxvY2stPmF2YWlsYWJsZUhlaWdodCgpLCB2aWV3cG9ydFNpemUoKSk7CisgICAgICAgIHJl
dHVybiBvZmZzZXQgKyBzdHlsZSgpLT50b3AoKS5jYWxjVmFsdWUoY29udGFpbmluZ0Jsb2NrLT5h
dmFpbGFibGVIZWlnaHQoKSk7CiAKICAgICBpZiAoIXN0eWxlKCktPmJvdHRvbSgpLmlzQXV0bygp
CiAgICAgICAgICYmICghY29udGFpbmluZ0Jsb2NrLT5zdHlsZSgpLT5oZWlnaHQoKS5pc0F1dG8o
KQogICAgICAgICAgICAgfHwgIXN0eWxlKCktPmJvdHRvbSgpLmlzUGVyY2VudCgpCiAgICAgICAg
ICAgICB8fCBjb250YWluaW5nQmxvY2stPnN0cmV0Y2hlc1RvVmlld3BvcnQoKSkpCi0gICAgICAg
IHJldHVybiBvZmZzZXQgKyAtc3R5bGUoKS0+Ym90dG9tKCkuY2FsY1ZhbHVlKGNvbnRhaW5pbmdC
bG9jay0+YXZhaWxhYmxlSGVpZ2h0KCksIHZpZXdwb3J0U2l6ZSgpKTsKKyAgICAgICAgcmV0dXJu
IG9mZnNldCArIC1zdHlsZSgpLT5ib3R0b20oKS5jYWxjVmFsdWUoY29udGFpbmluZ0Jsb2NrLT5h
dmFpbGFibGVIZWlnaHQoKSk7CiAKICAgICByZXR1cm4gb2Zmc2V0OwogfQpAQCAtNTQ0LDcgKzU0
Myw3IEBAIExheW91dFVuaXQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhZGRpbmdUb3AoYm9vbCkg
Y29uc3QKICAgICBMZW5ndGggcGFkZGluZyA9IHN0eWxlKCktPnBhZGRpbmdUb3AoKTsKICAgICBp
ZiAocGFkZGluZy5pc1BlcmNlbnQoKSkKICAgICAgICAgdyA9IGNvbnRhaW5pbmdCbG9jaygpLT5h
dmFpbGFibGVMb2dpY2FsV2lkdGgoKTsKLSAgICByZXR1cm4gcGFkZGluZy5jYWxjTWluVmFsdWUo
dywgdmlld3BvcnRTaXplKCkpOworICAgIHJldHVybiBwYWRkaW5nLmNhbGNNaW5WYWx1ZSh3KTsK
IH0KIAogTGF5b3V0VW5pdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFkZGluZ0JvdHRvbShib29s
KSBjb25zdApAQCAtNTUzLDcgKzU1Miw3IEBAIExheW91dFVuaXQgUmVuZGVyQm94TW9kZWxPYmpl
Y3Q6OnBhZGRpbmdCb3R0b20oYm9vbCkgY29uc3QKICAgICBMZW5ndGggcGFkZGluZyA9IHN0eWxl
KCktPnBhZGRpbmdCb3R0b20oKTsKICAgICBpZiAocGFkZGluZy5pc1BlcmNlbnQoKSkKICAgICAg
ICAgdyA9IGNvbnRhaW5pbmdCbG9jaygpLT5hdmFpbGFibGVMb2dpY2FsV2lkdGgoKTsKLSAgICBy
ZXR1cm4gcGFkZGluZy5jYWxjTWluVmFsdWUodywgdmlld3BvcnRTaXplKCkpOworICAgIHJldHVy
biBwYWRkaW5nLmNhbGNNaW5WYWx1ZSh3KTsKIH0KIAogTGF5b3V0VW5pdCBSZW5kZXJCb3hNb2Rl
bE9iamVjdDo6cGFkZGluZ0xlZnQoYm9vbCkgY29uc3QKQEAgLTU2Miw3ICs1NjEsNyBAQCBMYXlv
dXRVbml0IFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWRkaW5nTGVmdChib29sKSBjb25zdAogICAg
IExlbmd0aCBwYWRkaW5nID0gc3R5bGUoKS0+cGFkZGluZ0xlZnQoKTsKICAgICBpZiAocGFkZGlu
Zy5pc1BlcmNlbnQoKSkKICAgICAgICAgdyA9IGNvbnRhaW5pbmdCbG9jaygpLT5hdmFpbGFibGVM
b2dpY2FsV2lkdGgoKTsKLSAgICByZXR1cm4gcGFkZGluZy5jYWxjTWluVmFsdWUodywgdmlld3Bv
cnRTaXplKCkpOworICAgIHJldHVybiBwYWRkaW5nLmNhbGNNaW5WYWx1ZSh3KTsKIH0KIAogTGF5
b3V0VW5pdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFkZGluZ1JpZ2h0KGJvb2wpIGNvbnN0CkBA
IC01NzEsNyArNTcwLDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFkZGlu
Z1JpZ2h0KGJvb2wpIGNvbnN0CiAgICAgTGVuZ3RoIHBhZGRpbmcgPSBzdHlsZSgpLT5wYWRkaW5n
UmlnaHQoKTsKICAgICBpZiAocGFkZGluZy5pc1BlcmNlbnQoKSkKICAgICAgICAgdyA9IGNvbnRh
aW5pbmdCbG9jaygpLT5hdmFpbGFibGVMb2dpY2FsV2lkdGgoKTsKLSAgICByZXR1cm4gcGFkZGlu
Zy5jYWxjTWluVmFsdWUodywgdmlld3BvcnRTaXplKCkpOworICAgIHJldHVybiBwYWRkaW5nLmNh
bGNNaW5WYWx1ZSh3KTsKIH0KIAogTGF5b3V0VW5pdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFk
ZGluZ0JlZm9yZShib29sKSBjb25zdApAQCAtNTgwLDcgKzU3OSw3IEBAIExheW91dFVuaXQgUmVu
ZGVyQm94TW9kZWxPYmplY3Q6OnBhZGRpbmdCZWZvcmUoYm9vbCkgY29uc3QKICAgICBMZW5ndGgg
cGFkZGluZyA9IHN0eWxlKCktPnBhZGRpbmdCZWZvcmUoKTsKICAgICBpZiAocGFkZGluZy5pc1Bl
cmNlbnQoKSkKICAgICAgICAgdyA9IGNvbnRhaW5pbmdCbG9jaygpLT5hdmFpbGFibGVMb2dpY2Fs
V2lkdGgoKTsKLSAgICByZXR1cm4gcGFkZGluZy5jYWxjTWluVmFsdWUodywgdmlld3BvcnRTaXpl
KCkpOworICAgIHJldHVybiBwYWRkaW5nLmNhbGNNaW5WYWx1ZSh3KTsKIH0KIAogTGF5b3V0VW5p
dCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFkZGluZ0FmdGVyKGJvb2wpIGNvbnN0CkBAIC01ODks
NyArNTg4LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFkZGluZ0FmdGVy
KGJvb2wpIGNvbnN0CiAgICAgTGVuZ3RoIHBhZGRpbmcgPSBzdHlsZSgpLT5wYWRkaW5nQWZ0ZXIo
KTsKICAgICBpZiAocGFkZGluZy5pc1BlcmNlbnQoKSkKICAgICAgICAgdyA9IGNvbnRhaW5pbmdC
bG9jaygpLT5hdmFpbGFibGVMb2dpY2FsV2lkdGgoKTsKLSAgICByZXR1cm4gcGFkZGluZy5jYWxj
TWluVmFsdWUodywgdmlld3BvcnRTaXplKCkpOworICAgIHJldHVybiBwYWRkaW5nLmNhbGNNaW5W
YWx1ZSh3KTsKIH0KIAogTGF5b3V0VW5pdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFkZGluZ1N0
YXJ0KGJvb2wpIGNvbnN0CkBAIC01OTgsNyArNTk3LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3hN
b2RlbE9iamVjdDo6cGFkZGluZ1N0YXJ0KGJvb2wpIGNvbnN0CiAgICAgTGVuZ3RoIHBhZGRpbmcg
PSBzdHlsZSgpLT5wYWRkaW5nU3RhcnQoKTsKICAgICBpZiAocGFkZGluZy5pc1BlcmNlbnQoKSkK
ICAgICAgICAgdyA9IGNvbnRhaW5pbmdCbG9jaygpLT5hdmFpbGFibGVMb2dpY2FsV2lkdGgoKTsK
LSAgICByZXR1cm4gcGFkZGluZy5jYWxjTWluVmFsdWUodywgdmlld3BvcnRTaXplKCkpOworICAg
IHJldHVybiBwYWRkaW5nLmNhbGNNaW5WYWx1ZSh3KTsKIH0KIAogTGF5b3V0VW5pdCBSZW5kZXJC
b3hNb2RlbE9iamVjdDo6cGFkZGluZ0VuZChib29sKSBjb25zdApAQCAtNjA3LDE2ICs2MDYsMTUg
QEAgTGF5b3V0VW5pdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFkZGluZ0VuZChib29sKSBjb25z
dAogICAgIExlbmd0aCBwYWRkaW5nID0gc3R5bGUoKS0+cGFkZGluZ0VuZCgpOwogICAgIGlmIChw
YWRkaW5nLmlzUGVyY2VudCgpKQogICAgICAgICB3ID0gY29udGFpbmluZ0Jsb2NrKCktPmF2YWls
YWJsZUxvZ2ljYWxXaWR0aCgpOwotICAgIHJldHVybiBwYWRkaW5nLmNhbGNNaW5WYWx1ZSh3LCB2
aWV3cG9ydFNpemUoKSk7CisgICAgcmV0dXJuIHBhZGRpbmcuY2FsY01pblZhbHVlKHcpOwogfQog
CiBSb3VuZGVkUmVjdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Z2V0QmFja2dyb3VuZFJvdW5kZWRS
ZWN0KGNvbnN0IExheW91dFJlY3QmIGJvcmRlclJlY3QsIElubGluZUZsb3dCb3gqIGJveCwgTGF5
b3V0VW5pdCBpbmxpbmVCb3hXaWR0aCwgTGF5b3V0VW5pdCBpbmxpbmVCb3hIZWlnaHQsCiAgICAg
Ym9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdl
KQogewotICAgIEludFNpemUgdmlld1NpemUgPSB2aWV3cG9ydFNpemUoKTsKLSAgICBSb3VuZGVk
UmVjdCBib3JkZXIgPSBzdHlsZSgpLT5nZXRSb3VuZGVkQm9yZGVyRm9yKGJvcmRlclJlY3QsIHZp
ZXdTaXplLCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7
CisgICAgUm91bmRlZFJlY3QgYm9yZGVyID0gc3R5bGUoKS0+Z2V0Um91bmRlZEJvcmRlckZvcihi
b3JkZXJSZWN0LCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRn
ZSk7CiAgICAgaWYgKGJveCAmJiAoYm94LT5uZXh0TGluZUJveCgpIHx8IGJveC0+cHJldkxpbmVC
b3goKSkpIHsKLSAgICAgICAgUm91bmRlZFJlY3Qgc2VnbWVudEJvcmRlciA9IHN0eWxlKCktPmdl
dFJvdW5kZWRCb3JkZXJGb3IoTGF5b3V0UmVjdCgwLCAwLCBpbmxpbmVCb3hXaWR0aCwgaW5saW5l
Qm94SGVpZ2h0KSwgdmlld1NpemUsIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dp
Y2FsUmlnaHRFZGdlKTsKKyAgICAgICAgUm91bmRlZFJlY3Qgc2VnbWVudEJvcmRlciA9IHN0eWxl
KCktPmdldFJvdW5kZWRCb3JkZXJGb3IoTGF5b3V0UmVjdCgwLCAwLCBpbmxpbmVCb3hXaWR0aCwg
aW5saW5lQm94SGVpZ2h0KSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxS
aWdodEVkZ2UpOwogICAgICAgICBib3JkZXIuc2V0UmFkaWkoc2VnbWVudEJvcmRlci5yYWRpaSgp
KTsKICAgICB9CiAKQEAgLTk4OCwxMyArOTg2LDEzIEBAIEludFNpemUgUmVuZGVyQm94TW9kZWxP
YmplY3Q6OmNhbGN1bGF0ZUZpbGxUaWxlU2l6ZShjb25zdCBGaWxsTGF5ZXIqIGZpbGxMYXllciwK
IAogICAgICAgICAgICAgaWYgKGxheWVyV2lkdGguaXNGaXhlZCgpKQogICAgICAgICAgICAgICAg
IHcgPSBsYXllcldpZHRoLnZhbHVlKCk7Ci0gICAgICAgICAgICBlbHNlIGlmIChsYXllcldpZHRo
LmlzUGVyY2VudCgpIHx8IGxheWVySGVpZ2h0LmlzVmlld3BvcnRSZWxhdGl2ZSgpKQotICAgICAg
ICAgICAgICAgIHcgPSBsYXllcldpZHRoLmNhbGNWYWx1ZShwb3NpdGlvbmluZ0FyZWFTaXplLndp
ZHRoKCksIHZpZXdwb3J0U2l6ZSgpKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGxheWVyV2lkdGgu
aXNQZXJjZW50KCkpCisgICAgICAgICAgICAgICAgdyA9IGxheWVyV2lkdGguY2FsY1ZhbHVlKHBv
c2l0aW9uaW5nQXJlYVNpemUud2lkdGgoKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlm
IChsYXllckhlaWdodC5pc0ZpeGVkKCkpCiAgICAgICAgICAgICAgICAgaCA9IGxheWVySGVpZ2h0
LnZhbHVlKCk7Ci0gICAgICAgICAgICBlbHNlIGlmIChsYXllckhlaWdodC5pc1BlcmNlbnQoKSB8
fCBsYXllckhlaWdodC5pc1ZpZXdwb3J0UmVsYXRpdmUoKSkKLSAgICAgICAgICAgICAgICBoID0g
bGF5ZXJIZWlnaHQuY2FsY1ZhbHVlKHBvc2l0aW9uaW5nQXJlYVNpemUuaGVpZ2h0KCksIHZpZXdw
b3J0U2l6ZSgpKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGxheWVySGVpZ2h0LmlzUGVyY2VudCgp
KQorICAgICAgICAgICAgICAgIGggPSBsYXllckhlaWdodC5jYWxjVmFsdWUocG9zaXRpb25pbmdB
cmVhU2l6ZS5oZWlnaHQoKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8vIElmIG9uZSBv
ZiB0aGUgdmFsdWVzIGlzIGF1dG8gd2UgaGF2ZSB0byB1c2UgdGhlIGFwcHJvcHJpYXRlCiAgICAg
ICAgICAgICAvLyBzY2FsZSB0byBtYWludGFpbiBvdXIgYXNwZWN0IHJhdGlvLgpAQCAtMTEyNywx
MyArMTEyNSwxMyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpjYWxjdWxhdGVCYWNrZ3Jv
dW5kSW1hZ2VHZW9tZXRyeShjb25zdCBGaWxsTGF5ZXIqIGZpbAogICAgIEVGaWxsUmVwZWF0IGJh
Y2tncm91bmRSZXBlYXRYID0gZmlsbExheWVyLT5yZXBlYXRYKCk7CiAgICAgRUZpbGxSZXBlYXQg
YmFja2dyb3VuZFJlcGVhdFkgPSBmaWxsTGF5ZXItPnJlcGVhdFkoKTsKIAotICAgIExheW91dFVu
aXQgeFBvc2l0aW9uID0gZmlsbExheWVyLT54UG9zaXRpb24oKS5jYWxjTWluVmFsdWUocG9zaXRp
b25pbmdBcmVhU2l6ZS53aWR0aCgpIC0gZ2VvbWV0cnkudGlsZVNpemUoKS53aWR0aCgpLCB2aWV3
cG9ydFNpemUoKSwgdHJ1ZSk7CisgICAgTGF5b3V0VW5pdCB4UG9zaXRpb24gPSBmaWxsTGF5ZXIt
PnhQb3NpdGlvbigpLmNhbGNNaW5WYWx1ZShwb3NpdGlvbmluZ0FyZWFTaXplLndpZHRoKCkgLSBn
ZW9tZXRyeS50aWxlU2l6ZSgpLndpZHRoKCksIHRydWUpOwogICAgIGlmIChiYWNrZ3JvdW5kUmVw
ZWF0WCA9PSBSZXBlYXRGaWxsKQogICAgICAgICBnZW9tZXRyeS5zZXRQaGFzZVgoZ2VvbWV0cnku
dGlsZVNpemUoKS53aWR0aCgpID8gbGF5b3V0TW9kKGdlb21ldHJ5LnRpbGVTaXplKCkud2lkdGgo
KSAtICh4UG9zaXRpb24gKyBsZWZ0KSwgZ2VvbWV0cnkudGlsZVNpemUoKS53aWR0aCgpKSA6IExh
eW91dFVuaXQoMCkpOwogICAgIGVsc2UKICAgICAgICAgZ2VvbWV0cnkuc2V0Tm9SZXBlYXRYKHhQ
b3NpdGlvbiArIGxlZnQpOwogCi0gICAgTGF5b3V0VW5pdCB5UG9zaXRpb24gPSBmaWxsTGF5ZXIt
PnlQb3NpdGlvbigpLmNhbGNNaW5WYWx1ZShwb3NpdGlvbmluZ0FyZWFTaXplLmhlaWdodCgpIC0g
Z2VvbWV0cnkudGlsZVNpemUoKS5oZWlnaHQoKSwgdmlld3BvcnRTaXplKCksIHRydWUpOworICAg
IExheW91dFVuaXQgeVBvc2l0aW9uID0gZmlsbExheWVyLT55UG9zaXRpb24oKS5jYWxjTWluVmFs
dWUocG9zaXRpb25pbmdBcmVhU2l6ZS5oZWlnaHQoKSAtIGdlb21ldHJ5LnRpbGVTaXplKCkuaGVp
Z2h0KCksIHRydWUpOwogICAgIGlmIChiYWNrZ3JvdW5kUmVwZWF0WSA9PSBSZXBlYXRGaWxsKQog
ICAgICAgICBnZW9tZXRyeS5zZXRQaGFzZVkoZ2VvbWV0cnkudGlsZVNpemUoKS5oZWlnaHQoKSA/
IGxheW91dE1vZChnZW9tZXRyeS50aWxlU2l6ZSgpLmhlaWdodCgpIC0gKHlQb3NpdGlvbiArIHRv
cCksIGdlb21ldHJ5LnRpbGVTaXplKCkuaGVpZ2h0KCkpIDogTGF5b3V0VW5pdCgwKSk7CiAgICAg
ZWxzZSAKQEAgLTExNDYsMTMgKzExNDQsMTMgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6
Y2FsY3VsYXRlQmFja2dyb3VuZEltYWdlR2VvbWV0cnkoY29uc3QgRmlsbExheWVyKiBmaWwKICAg
ICBnZW9tZXRyeS5zZXREZXN0T3JpZ2luKGdlb21ldHJ5LmRlc3RSZWN0KCkubG9jYXRpb24oKSk7
CiB9CiAKLXN0YXRpYyBMYXlvdXRVbml0IGNvbXB1dGVCb3JkZXJJbWFnZVNpZGUoTGVuZ3RoIGJv
cmRlclNsaWNlLCBMYXlvdXRVbml0IGJvcmRlclNpZGUsIExheW91dFVuaXQgaW1hZ2VTaWRlLCBM
YXlvdXRVbml0IGJveEV4dGVudCwgY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplKQorc3RhdGlj
IExheW91dFVuaXQgY29tcHV0ZUJvcmRlckltYWdlU2lkZShMZW5ndGggYm9yZGVyU2xpY2UsIExh
eW91dFVuaXQgYm9yZGVyU2lkZSwgTGF5b3V0VW5pdCBpbWFnZVNpZGUsIExheW91dFVuaXQgYm94
RXh0ZW50KQogewogICAgIGlmIChib3JkZXJTbGljZS5pc1JlbGF0aXZlKCkpCiAgICAgICAgIHJl
dHVybiBib3JkZXJTbGljZS52YWx1ZSgpICogYm9yZGVyU2lkZTsKICAgICBpZiAoYm9yZGVyU2xp
Y2UuaXNBdXRvKCkpCiAgICAgICAgIHJldHVybiBpbWFnZVNpZGU7Ci0gICAgcmV0dXJuIGJvcmRl
clNsaWNlLmNhbGNWYWx1ZShib3hFeHRlbnQsIHZpZXdwb3J0U2l6ZSk7CisgICAgcmV0dXJuIGJv
cmRlclNsaWNlLmNhbGNWYWx1ZShib3hFeHRlbnQpOwogfQogCiBib29sIFJlbmRlckJveE1vZGVs
T2JqZWN0OjpwYWludE5pbmVQaWVjZUltYWdlKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250
ZXh0LCBjb25zdCBMYXlvdXRSZWN0JiByZWN0LCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUsCkBA
IC0xMTg5LDIwICsxMTg3LDE5IEBAIGJvb2wgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Tmlu
ZVBpZWNlSW1hZ2UoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsCiAKICAgICBpbnQg
aW1hZ2VXaWR0aCA9IGltYWdlU2l6ZS53aWR0aCgpIC8gc3R5bGUtPmVmZmVjdGl2ZVpvb20oKTsK
ICAgICBpbnQgaW1hZ2VIZWlnaHQgPSBpbWFnZVNpemUuaGVpZ2h0KCkgLyBzdHlsZS0+ZWZmZWN0
aXZlWm9vbSgpOwotICAgIEludFNpemUgdmlld1NpemUgPSB2aWV3cG9ydFNpemUoKTsKIAotICAg
IGludCB0b3BTbGljZSA9IG1pbjxpbnQ+KGltYWdlSGVpZ2h0LCBuaW5lUGllY2VJbWFnZS5pbWFn
ZVNsaWNlcygpLnRvcCgpLmNhbGNWYWx1ZShpbWFnZUhlaWdodCwgdmlld1NpemUpKTsKLSAgICBp
bnQgcmlnaHRTbGljZSA9IG1pbjxpbnQ+KGltYWdlV2lkdGgsIG5pbmVQaWVjZUltYWdlLmltYWdl
U2xpY2VzKCkucmlnaHQoKS5jYWxjVmFsdWUoaW1hZ2VXaWR0aCwgdmlld1NpemUpKTsKLSAgICBp
bnQgYm90dG9tU2xpY2UgPSBtaW48aW50PihpbWFnZUhlaWdodCwgbmluZVBpZWNlSW1hZ2UuaW1h
Z2VTbGljZXMoKS5ib3R0b20oKS5jYWxjVmFsdWUoaW1hZ2VIZWlnaHQsIHZpZXdTaXplKSk7Ci0g
ICAgaW50IGxlZnRTbGljZSA9IG1pbjxpbnQ+KGltYWdlV2lkdGgsIG5pbmVQaWVjZUltYWdlLmlt
YWdlU2xpY2VzKCkubGVmdCgpLmNhbGNWYWx1ZShpbWFnZVdpZHRoLCB2aWV3U2l6ZSkpOworICAg
IGludCB0b3BTbGljZSA9IG1pbjxpbnQ+KGltYWdlSGVpZ2h0LCBuaW5lUGllY2VJbWFnZS5pbWFn
ZVNsaWNlcygpLnRvcCgpLmNhbGNWYWx1ZShpbWFnZUhlaWdodCkpOworICAgIGludCByaWdodFNs
aWNlID0gbWluPGludD4oaW1hZ2VXaWR0aCwgbmluZVBpZWNlSW1hZ2UuaW1hZ2VTbGljZXMoKS5y
aWdodCgpLmNhbGNWYWx1ZShpbWFnZVdpZHRoKSk7CisgICAgaW50IGJvdHRvbVNsaWNlID0gbWlu
PGludD4oaW1hZ2VIZWlnaHQsIG5pbmVQaWVjZUltYWdlLmltYWdlU2xpY2VzKCkuYm90dG9tKCku
Y2FsY1ZhbHVlKGltYWdlSGVpZ2h0KSk7CisgICAgaW50IGxlZnRTbGljZSA9IG1pbjxpbnQ+KGlt
YWdlV2lkdGgsIG5pbmVQaWVjZUltYWdlLmltYWdlU2xpY2VzKCkubGVmdCgpLmNhbGNWYWx1ZShp
bWFnZVdpZHRoKSk7CiAKICAgICBFTmluZVBpZWNlSW1hZ2VSdWxlIGhSdWxlID0gbmluZVBpZWNl
SW1hZ2UuaG9yaXpvbnRhbFJ1bGUoKTsKICAgICBFTmluZVBpZWNlSW1hZ2VSdWxlIHZSdWxlID0g
bmluZVBpZWNlSW1hZ2UudmVydGljYWxSdWxlKCk7Ci0KLSAgICBMYXlvdXRVbml0IHRvcFdpZHRo
ID0gY29tcHV0ZUJvcmRlckltYWdlU2lkZShuaW5lUGllY2VJbWFnZS5ib3JkZXJTbGljZXMoKS50
b3AoKSwgc3R5bGUtPmJvcmRlclRvcFdpZHRoKCksIHRvcFNsaWNlLCBib3JkZXJJbWFnZVJlY3Qu
aGVpZ2h0KCksIHZpZXdTaXplKTsKLSAgICBMYXlvdXRVbml0IHJpZ2h0V2lkdGggPSBjb21wdXRl
Qm9yZGVySW1hZ2VTaWRlKG5pbmVQaWVjZUltYWdlLmJvcmRlclNsaWNlcygpLnJpZ2h0KCksIHN0
eWxlLT5ib3JkZXJSaWdodFdpZHRoKCksIHJpZ2h0U2xpY2UsIGJvcmRlckltYWdlUmVjdC53aWR0
aCgpLCB2aWV3U2l6ZSk7Ci0gICAgTGF5b3V0VW5pdCBib3R0b21XaWR0aCA9IGNvbXB1dGVCb3Jk
ZXJJbWFnZVNpZGUobmluZVBpZWNlSW1hZ2UuYm9yZGVyU2xpY2VzKCkuYm90dG9tKCksIHN0eWxl
LT5ib3JkZXJCb3R0b21XaWR0aCgpLCBib3R0b21TbGljZSwgYm9yZGVySW1hZ2VSZWN0LmhlaWdo
dCgpLCB2aWV3U2l6ZSk7Ci0gICAgTGF5b3V0VW5pdCBsZWZ0V2lkdGggPSBjb21wdXRlQm9yZGVy
SW1hZ2VTaWRlKG5pbmVQaWVjZUltYWdlLmJvcmRlclNsaWNlcygpLmxlZnQoKSwgc3R5bGUtPmJv
cmRlckxlZnRXaWR0aCgpLCBsZWZ0U2xpY2UsIGJvcmRlckltYWdlUmVjdC53aWR0aCgpLCB2aWV3
U2l6ZSk7CisgICAKKyAgICBMYXlvdXRVbml0IHRvcFdpZHRoID0gY29tcHV0ZUJvcmRlckltYWdl
U2lkZShuaW5lUGllY2VJbWFnZS5ib3JkZXJTbGljZXMoKS50b3AoKSwgc3R5bGUtPmJvcmRlclRv
cFdpZHRoKCksIHRvcFNsaWNlLCBib3JkZXJJbWFnZVJlY3QuaGVpZ2h0KCkpOworICAgIExheW91
dFVuaXQgcmlnaHRXaWR0aCA9IGNvbXB1dGVCb3JkZXJJbWFnZVNpZGUobmluZVBpZWNlSW1hZ2Uu
Ym9yZGVyU2xpY2VzKCkucmlnaHQoKSwgc3R5bGUtPmJvcmRlclJpZ2h0V2lkdGgoKSwgcmlnaHRT
bGljZSwgYm9yZGVySW1hZ2VSZWN0LndpZHRoKCkpOworICAgIExheW91dFVuaXQgYm90dG9tV2lk
dGggPSBjb21wdXRlQm9yZGVySW1hZ2VTaWRlKG5pbmVQaWVjZUltYWdlLmJvcmRlclNsaWNlcygp
LmJvdHRvbSgpLCBzdHlsZS0+Ym9yZGVyQm90dG9tV2lkdGgoKSwgYm90dG9tU2xpY2UsIGJvcmRl
ckltYWdlUmVjdC5oZWlnaHQoKSk7CisgICAgTGF5b3V0VW5pdCBsZWZ0V2lkdGggPSBjb21wdXRl
Qm9yZGVySW1hZ2VTaWRlKG5pbmVQaWVjZUltYWdlLmJvcmRlclNsaWNlcygpLmxlZnQoKSwgc3R5
bGUtPmJvcmRlckxlZnRXaWR0aCgpLCBsZWZ0U2xpY2UsIGJvcmRlckltYWdlUmVjdC53aWR0aCgp
KTsKICAgICAKICAgICAvLyBSZWR1Y2UgdGhlIHdpZHRocyBpZiB0aGV5J3JlIHRvbyBsYXJnZS4K
ICAgICAvLyBUaGUgc3BlYyBzYXlzOiBHaXZlbiBMd2lkdGggYXMgdGhlIHdpZHRoIG9mIHRoZSBi
b3JkZXIgaW1hZ2UgYXJlYSwgTGhlaWdodCBhcyBpdHMgaGVpZ2h0LCBhbmQgV3NpZGUgYXMgdGhl
IGJvcmRlciBpbWFnZSB3aWR0aApAQCAtMTc0Nyw3ICsxNzQ0LDcgQEAgdm9pZCBSZW5kZXJCb3hN
b2RlbE9iamVjdDo6cGFpbnRCb3JkZXIoY29uc3QgUGFpbnRJbmZvJiBpbmZvLCBjb25zdCBMYXlv
dXRSZWN0JgogICAgIEJvcmRlckVkZ2UgZWRnZXNbNF07CiAgICAgZ2V0Qm9yZGVyRWRnZUluZm8o
ZWRnZXMsIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKTsK
IAotICAgIFJvdW5kZWRSZWN0IG91dGVyQm9yZGVyID0gc3R5bGUtPmdldFJvdW5kZWRCb3JkZXJG
b3IocmVjdCwgdmlld3BvcnRTaXplKCksIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGluY2x1ZGVM
b2dpY2FsUmlnaHRFZGdlKTsKKyAgICBSb3VuZGVkUmVjdCBvdXRlckJvcmRlciA9IHN0eWxlLT5n
ZXRSb3VuZGVkQm9yZGVyRm9yKHJlY3QsIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGluY2x1ZGVM
b2dpY2FsUmlnaHRFZGdlKTsKICAgICBSb3VuZGVkUmVjdCBpbm5lckJvcmRlciA9IHN0eWxlLT5n
ZXRSb3VuZGVkSW5uZXJCb3JkZXJGb3IocmVjdCwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5j
bHVkZUxvZ2ljYWxSaWdodEVkZ2UpOwogCiAgICAgYm9vbCBoYXZlQWxwaGFDb2xvciA9IGZhbHNl
OwpAQCAtMjAzMiw3ICsyMDI5LDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRC
b3JkZXIoY29uc3QgUGFpbnRJbmZvJiBpbmZvLCBjb25zdCBJbnRSZWN0JiByZWMKICAgICAKICAg
ICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmdyYXBoaWNzQ29udGV4dCwg
ZmFsc2UpOwogICAgIGlmIChzdHlsZS0+aGFzQm9yZGVyUmFkaXVzKCkpIHsKLSAgICAgICAgYm9y
ZGVyLmluY2x1ZGVMb2dpY2FsRWRnZXMoc3R5bGUtPmdldFJvdW5kZWRCb3JkZXJGb3IoYm9yZGVy
LnJlY3QoKSwgdmlld3BvcnRTaXplKCkpLnJhZGlpKCksCisgICAgICAgIGJvcmRlci5pbmNsdWRl
TG9naWNhbEVkZ2VzKHN0eWxlLT5nZXRSb3VuZGVkQm9yZGVyRm9yKGJvcmRlci5yZWN0KCkpLnJh
ZGlpKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvcml6b250YWwsIGlu
Y2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKTsKICAgICAgICAg
aWYgKGJvcmRlci5pc1JvdW5kZWQoKSkgewogICAgICAgICAgICAgc3RhdGVTYXZlci5zYXZlKCk7
CkBAIC0yNjg2LDcgKzI2ODMsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJv
eFNoYWRvdyhjb25zdCBQYWludEluZm8mIGluZm8sIGNvbnN0IExheW91dFJlYwogICAgICAgICBy
ZXR1cm47CiAKICAgICBSb3VuZGVkUmVjdCBib3JkZXIgPSAoc2hhZG93U3R5bGUgPT0gSW5zZXQp
ID8gcy0+Z2V0Um91bmRlZElubmVyQm9yZGVyRm9yKHBhaW50UmVjdCwgaW5jbHVkZUxvZ2ljYWxM
ZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHMtPmdldFJvdW5kZWRCb3JkZXJGb3IocGFp
bnRSZWN0LCB2aWV3cG9ydFNpemUoKSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxv
Z2ljYWxSaWdodEVkZ2UpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOiBzLT5nZXRSb3VuZGVkQm9yZGVyRm9yKHBhaW50UmVjdCwgaW5jbHVkZUxv
Z2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpOwogCiAgICAgYm9vbCBoYXNC
b3JkZXJSYWRpdXMgPSBzLT5oYXNCb3JkZXJSYWRpdXMoKTsKICAgICBib29sIGlzSG9yaXpvbnRh
bCA9IHMtPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAppbmRleCA3MWUxMGUzMDYzZTBiYzc2ODIwN2Y3
NWUxZjQzYjljZGJkMjIyNTcwLi42ZDBiNzYxMTM0NTI0ZmM4NmFjODdhMjQ0Y2M5MjEyZjAxOGM3
ZTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVC
b3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5j
cHAKQEAgLTQ5Niw3ICs0OTYsNyBAQCBMYXlvdXRVbml0IFJlbmRlckZsZXhpYmxlQm94OjpwcmVm
ZXJyZWRNYWluQXhpc0NvbnRlbnRFeHRlbnRGb3JDaGlsZChSZW5kZXJCb3gqCiAgICAgICAgIExh
eW91dFVuaXQgbWFpbkF4aXNFeHRlbnQgPSBoYXNPcnRob2dvbmFsRmxvdyhjaGlsZCkgPyBjaGls
ZC0+bG9naWNhbEhlaWdodCgpIDogY2hpbGQtPm1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCgpOwog
ICAgICAgICByZXR1cm4gbWFpbkF4aXNFeHRlbnQgLSBtYWluQXhpc0JvcmRlckFuZFBhZGRpbmdF
eHRlbnRGb3JDaGlsZChjaGlsZCkgLSBtYWluQXhpc1Njcm9sbGJhckV4dGVudEZvckNoaWxkKGNo
aWxkKTsKICAgICB9Ci0gICAgcmV0dXJuIG1haW5BeGlzTGVuZ3RoLmNhbGNNaW5WYWx1ZShtYWlu
QXhpc0NvbnRlbnRFeHRlbnQoKSwgdmlld3BvcnRTaXplKCkpOworICAgIHJldHVybiBtYWluQXhp
c0xlbmd0aC5jYWxjTWluVmFsdWUobWFpbkF4aXNDb250ZW50RXh0ZW50KCkpOwogfQogCiB2b2lk
IFJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRGbGV4SXRlbXMoYm9vbCByZWxheW91dENoaWxkcmVu
KQpAQCAtNTUzLDcgKzU1Myw2IEBAIExheW91dFVuaXQgUmVuZGVyRmxleGlibGVCb3g6Om1hcmdp
bkJveEFzY2VudChSZW5kZXJCb3gqIGNoaWxkKQogdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6Y29t
cHV0ZU1haW5BeGlzUHJlZmVycmVkU2l6ZXMoYm9vbCByZWxheW91dENoaWxkcmVuLCBGbGV4T3Jk
ZXJIYXNoU2V0JiBmbGV4T3JkZXJWYWx1ZXMpCiB7CiAgICAgTGF5b3V0VW5pdCBmbGV4Ym94QXZh
aWxhYmxlQ29udGVudEV4dGVudCA9IG1haW5BeGlzQ29udGVudEV4dGVudCgpOwotICAgIEludFNp
emUgdmlld1NpemUgPSB2aWV3cG9ydFNpemUoKTsKICAgICBmb3IgKFJlbmRlckJveCogY2hpbGQg
PSBmaXJzdENoaWxkQm94KCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZ0JveCgp
KSB7CiAgICAgICAgIGZsZXhPcmRlclZhbHVlcy5hZGQoY2hpbGQtPnN0eWxlKCktPmZsZXhPcmRl
cigpKTsKIApAQCAtNTcxLDExICs1NzAsMTEgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6Y29t
cHV0ZU1haW5BeGlzUHJlZmVycmVkU2l6ZXMoYm9vbCByZWxheW91dENoaWxkcmVuLCBGbGUKICAg
ICAgICAgLy8gb2YgMCBhbmQgYmVjYXVzZSBpZiB3ZSdyZSBub3QgYXV0byBzaXppbmcsIHdlIGRv
bid0IGRvIGEgbGF5b3V0IHRoYXQKICAgICAgICAgLy8gY29tcHV0ZXMgdGhlIHN0YXJ0L2VuZCBt
YXJnaW5zLgogICAgICAgICBpZiAoaXNIb3Jpem9udGFsRmxvdygpKSB7Ci0gICAgICAgICAgICBj
aGlsZC0+c2V0TWFyZ2luTGVmdChjaGlsZC0+c3R5bGUoKS0+bWFyZ2luTGVmdCgpLmNhbGNNaW5W
YWx1ZShmbGV4Ym94QXZhaWxhYmxlQ29udGVudEV4dGVudCwgdmlld1NpemUpKTsKLSAgICAgICAg
ICAgIGNoaWxkLT5zZXRNYXJnaW5SaWdodChjaGlsZC0+c3R5bGUoKS0+bWFyZ2luUmlnaHQoKS5j
YWxjTWluVmFsdWUoZmxleGJveEF2YWlsYWJsZUNvbnRlbnRFeHRlbnQsIHZpZXdTaXplKSk7Cisg
ICAgICAgICAgICBjaGlsZC0+c2V0TWFyZ2luTGVmdChjaGlsZC0+c3R5bGUoKS0+bWFyZ2luTGVm
dCgpLmNhbGNNaW5WYWx1ZShmbGV4Ym94QXZhaWxhYmxlQ29udGVudEV4dGVudCkpOworICAgICAg
ICAgICAgY2hpbGQtPnNldE1hcmdpblJpZ2h0KGNoaWxkLT5zdHlsZSgpLT5tYXJnaW5SaWdodCgp
LmNhbGNNaW5WYWx1ZShmbGV4Ym94QXZhaWxhYmxlQ29udGVudEV4dGVudCkpOwogICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgY2hpbGQtPnNldE1hcmdpblRvcChjaGlsZC0+c3R5bGUoKS0+
bWFyZ2luVG9wKCkuY2FsY01pblZhbHVlKGZsZXhib3hBdmFpbGFibGVDb250ZW50RXh0ZW50LCB2
aWV3U2l6ZSkpOwotICAgICAgICAgICAgY2hpbGQtPnNldE1hcmdpbkJvdHRvbShjaGlsZC0+c3R5
bGUoKS0+bWFyZ2luQm90dG9tKCkuY2FsY01pblZhbHVlKGZsZXhib3hBdmFpbGFibGVDb250ZW50
RXh0ZW50LCB2aWV3U2l6ZSkpOworICAgICAgICAgICAgY2hpbGQtPnNldE1hcmdpblRvcChjaGls
ZC0+c3R5bGUoKS0+bWFyZ2luVG9wKCkuY2FsY01pblZhbHVlKGZsZXhib3hBdmFpbGFibGVDb250
ZW50RXh0ZW50KSk7CisgICAgICAgICAgICBjaGlsZC0+c2V0TWFyZ2luQm90dG9tKGNoaWxkLT5z
dHlsZSgpLT5tYXJnaW5Cb3R0b20oKS5jYWxjTWluVmFsdWUoZmxleGJveEF2YWlsYWJsZUNvbnRl
bnRFeHRlbnQpKTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTYwOCw3ICs2MDcsNyBAQCB2b2lk
IFJlbmRlckZsZXhpYmxlQm94Ojpjb21wdXRlRmxleE9yZGVyKEZsZXhPcmRlckl0ZXJhdG9yJiBp
dGVyYXRvciwgT3JkZXJlZEZsZQogYm9vbCBSZW5kZXJGbGV4aWJsZUJveDo6cnVuRnJlZVNwYWNl
QWxsb2NhdGlvbkFsZ29yaXRobShjb25zdCBPcmRlcmVkRmxleEl0ZW1MaXN0JiBjaGlsZHJlbiwg
TGF5b3V0VW5pdCYgYXZhaWxhYmxlRnJlZVNwYWNlLCBmbG9hdCYgdG90YWxQb3NpdGl2ZUZsZXhp
YmlsaXR5LCBmbG9hdCYgdG90YWxOZWdhdGl2ZUZsZXhpYmlsaXR5LCBJbmZsZXhpYmxlRmxleEl0
ZW1TaXplJiBpbmZsZXhpYmxlSXRlbXMsIFdURjo6VmVjdG9yPExheW91dFVuaXQ+JiBjaGlsZFNp
emVzKQogewogICAgIGNoaWxkU2l6ZXMuY2xlYXIoKTsKLSAgICBJbnRTaXplIHZpZXdTaXplID0g
dmlld3BvcnRTaXplKCk7CisKICAgICBMYXlvdXRVbml0IGZsZXhib3hBdmFpbGFibGVDb250ZW50
RXh0ZW50ID0gbWFpbkF4aXNDb250ZW50RXh0ZW50KCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBjaGlsZHJlbi5zaXplKCk7ICsraSkgewogICAgICAgICBSZW5kZXJCb3gqIGNoaWxkID0g
Y2hpbGRyZW5baV07CkBAIC02MjYsOCArNjI1LDggQEAgYm9vbCBSZW5kZXJGbGV4aWJsZUJveDo6
cnVuRnJlZVNwYWNlQWxsb2NhdGlvbkFsZ29yaXRobShjb25zdCBPcmRlcmVkRmxleEl0ZW1MaXMK
ICAgICAgICAgICAgICAgICBjaGlsZFByZWZlcnJlZFNpemUgKz0gbHJvdW5kZihhdmFpbGFibGVG
cmVlU3BhY2UgKiBwb3NpdGl2ZUZsZXhGb3JDaGlsZChjaGlsZCkgLyB0b3RhbFBvc2l0aXZlRmxl
eGliaWxpdHkpOwogCiAgICAgICAgICAgICAgICAgTGVuZ3RoIGNoaWxkTG9naWNhbE1heFdpZHRo
ID0gaXNIb3Jpem9udGFsRmxvdygpID8gY2hpbGQtPnN0eWxlKCktPm1heFdpZHRoKCkgOiBjaGls
ZC0+c3R5bGUoKS0+bWF4SGVpZ2h0KCk7Ci0gICAgICAgICAgICAgICAgaWYgKCFjaGlsZExvZ2lj
YWxNYXhXaWR0aC5pc1VuZGVmaW5lZCgpICYmIGNoaWxkTG9naWNhbE1heFdpZHRoLmlzU3BlY2lm
aWVkKCkgJiYgY2hpbGRQcmVmZXJyZWRTaXplID4gY2hpbGRMb2dpY2FsTWF4V2lkdGguY2FsY1Zh
bHVlKGZsZXhib3hBdmFpbGFibGVDb250ZW50RXh0ZW50LCB2aWV3U2l6ZSkpIHsKLSAgICAgICAg
ICAgICAgICAgICAgY2hpbGRQcmVmZXJyZWRTaXplID0gY2hpbGRMb2dpY2FsTWF4V2lkdGguY2Fs
Y1ZhbHVlKGZsZXhib3hBdmFpbGFibGVDb250ZW50RXh0ZW50LCB2aWV3U2l6ZSk7CisgICAgICAg
ICAgICAgICAgaWYgKCFjaGlsZExvZ2ljYWxNYXhXaWR0aC5pc1VuZGVmaW5lZCgpICYmIGNoaWxk
TG9naWNhbE1heFdpZHRoLmlzU3BlY2lmaWVkKCkgJiYgY2hpbGRQcmVmZXJyZWRTaXplID4gY2hp
bGRMb2dpY2FsTWF4V2lkdGguY2FsY1ZhbHVlKGZsZXhib3hBdmFpbGFibGVDb250ZW50RXh0ZW50
KSkgeworICAgICAgICAgICAgICAgICAgICBjaGlsZFByZWZlcnJlZFNpemUgPSBjaGlsZExvZ2lj
YWxNYXhXaWR0aC5jYWxjVmFsdWUoZmxleGJveEF2YWlsYWJsZUNvbnRlbnRFeHRlbnQpOwogICAg
ICAgICAgICAgICAgICAgICBhdmFpbGFibGVGcmVlU3BhY2UgLT0gY2hpbGRQcmVmZXJyZWRTaXpl
IC0gcHJlZmVycmVkTWFpbkF4aXNDb250ZW50RXh0ZW50Rm9yQ2hpbGQoY2hpbGQpOwogICAgICAg
ICAgICAgICAgICAgICB0b3RhbFBvc2l0aXZlRmxleGliaWxpdHkgLT0gcG9zaXRpdmVGbGV4Rm9y
Q2hpbGQoY2hpbGQpOwogCkBAIC02MzgsOCArNjM3LDggQEAgYm9vbCBSZW5kZXJGbGV4aWJsZUJv
eDo6cnVuRnJlZVNwYWNlQWxsb2NhdGlvbkFsZ29yaXRobShjb25zdCBPcmRlcmVkRmxleEl0ZW1M
aXMKICAgICAgICAgICAgICAgICBjaGlsZFByZWZlcnJlZFNpemUgKz0gbHJvdW5kZihhdmFpbGFi
bGVGcmVlU3BhY2UgKiBuZWdhdGl2ZUZsZXhGb3JDaGlsZChjaGlsZCkgLyB0b3RhbE5lZ2F0aXZl
RmxleGliaWxpdHkpOwogCiAgICAgICAgICAgICAgICAgTGVuZ3RoIGNoaWxkTG9naWNhbE1pbldp
ZHRoID0gaXNIb3Jpem9udGFsRmxvdygpID8gY2hpbGQtPnN0eWxlKCktPm1pbldpZHRoKCkgOiBj
aGlsZC0+c3R5bGUoKS0+bWluSGVpZ2h0KCk7Ci0gICAgICAgICAgICAgICAgaWYgKCFjaGlsZExv
Z2ljYWxNaW5XaWR0aC5pc1VuZGVmaW5lZCgpICYmIGNoaWxkTG9naWNhbE1pbldpZHRoLmlzU3Bl
Y2lmaWVkKCkgJiYgY2hpbGRQcmVmZXJyZWRTaXplIDwgY2hpbGRMb2dpY2FsTWluV2lkdGguY2Fs
Y1ZhbHVlKGZsZXhib3hBdmFpbGFibGVDb250ZW50RXh0ZW50LCB2aWV3U2l6ZSkpIHsKLSAgICAg
ICAgICAgICAgICAgICAgY2hpbGRQcmVmZXJyZWRTaXplID0gY2hpbGRMb2dpY2FsTWluV2lkdGgu
Y2FsY1ZhbHVlKGZsZXhib3hBdmFpbGFibGVDb250ZW50RXh0ZW50LCB2aWV3U2l6ZSk7CisgICAg
ICAgICAgICAgICAgaWYgKCFjaGlsZExvZ2ljYWxNaW5XaWR0aC5pc1VuZGVmaW5lZCgpICYmIGNo
aWxkTG9naWNhbE1pbldpZHRoLmlzU3BlY2lmaWVkKCkgJiYgY2hpbGRQcmVmZXJyZWRTaXplIDwg
Y2hpbGRMb2dpY2FsTWluV2lkdGguY2FsY1ZhbHVlKGZsZXhib3hBdmFpbGFibGVDb250ZW50RXh0
ZW50KSkgeworICAgICAgICAgICAgICAgICAgICBjaGlsZFByZWZlcnJlZFNpemUgPSBjaGlsZExv
Z2ljYWxNaW5XaWR0aC5jYWxjVmFsdWUoZmxleGJveEF2YWlsYWJsZUNvbnRlbnRFeHRlbnQpOwog
ICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGVGcmVlU3BhY2UgKz0gcHJlZmVycmVkTWFpbkF4
aXNDb250ZW50RXh0ZW50Rm9yQ2hpbGQoY2hpbGQpIC0gY2hpbGRQcmVmZXJyZWRTaXplOwogICAg
ICAgICAgICAgICAgICAgICB0b3RhbE5lZ2F0aXZlRmxleGliaWxpdHkgLT0gbmVnYXRpdmVGbGV4
Rm9yQ2hpbGQoY2hpbGQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySW5saW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUu
Y3BwCmluZGV4IGM3MjZiMWRmODI2NWIyMzk5NTExMWM2MTMxNGU5NmY5ODE0NjA1NTkuLmU3OWI2
ZDNjOGNjZWY3MGUyY2Y0NmExNDUzZGRlMTNjNDY1ZjNiYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCkBAIC03MDIsOCArNzAyLDYgQEAgc3RhdGljIExheW91
dFVuaXQgY29tcHV0ZU1hcmdpbihjb25zdCBSZW5kZXJJbmxpbmUqIHJlbmRlcmVyLCBjb25zdCBM
ZW5ndGgmIG1hcmcKICAgICAgICAgcmV0dXJuIG1hcmdpbi52YWx1ZSgpOwogICAgIGlmIChtYXJn
aW4uaXNQZXJjZW50KCkpCiAgICAgICAgIHJldHVybiBtYXJnaW4uY2FsY01pblZhbHVlKG1heDxM
YXlvdXRVbml0PigwLCByZW5kZXJlci0+Y29udGFpbmluZ0Jsb2NrKCktPmF2YWlsYWJsZUxvZ2lj
YWxXaWR0aCgpKSk7Ci0gICAgaWYgKG1hcmdpbi5pc1ZpZXdwb3J0UmVsYXRpdmUoKSkKLSAgICAg
ICAgcmV0dXJuIG1hcmdpbi5jYWxjVmFsdWUoMCwgcmVuZGVyZXItPnZpZXdwb3J0U2l6ZSgpKTsK
ICAgICByZXR1cm4gMDsKIH0KIApAQCAtMTMwOSwxMCArMTMwNywxMCBAQCBMYXlvdXRVbml0IFJl
bmRlcklubGluZTo6bGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUg
LypkaXJlY3RpbwogICAgIGlmIChmaXJzdExpbmUgJiYgZG9jdW1lbnQoKS0+dXNlc0ZpcnN0TGlu
ZVJ1bGVzKCkpIHsKICAgICAgICAgUmVuZGVyU3R5bGUqIHMgPSBzdHlsZShmaXJzdExpbmUpOwog
ICAgICAgICBpZiAocyAhPSBzdHlsZSgpKQotICAgICAgICAgICAgcmV0dXJuIHMtPmNvbXB1dGVk
TGluZUhlaWdodCh2aWV3cG9ydFNpemUoKSk7CisgICAgICAgICAgICByZXR1cm4gcy0+Y29tcHV0
ZWRMaW5lSGVpZ2h0KCk7CiAgICAgfQogCi0gICAgcmV0dXJuIHN0eWxlKCktPmNvbXB1dGVkTGlu
ZUhlaWdodCh2aWV3cG9ydFNpemUoKSk7CisgICAgcmV0dXJuIHN0eWxlKCktPmNvbXB1dGVkTGlu
ZUhlaWdodCgpOwogfQogCiBMYXlvdXRVbml0IFJlbmRlcklubGluZTo6YmFzZWxpbmVQb3NpdGlv
bihGb250QmFzZWxpbmUgYmFzZWxpbmVUeXBlLCBib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlv
bk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIGxpbmVQb3NpdGlvbk1vZGUpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAppbmRleCAxNWM0
NDEyODI5ZTJkMWU5ZjAwYmQyMTM4YzIxZmIxYmEyNjM3NzQ5Li4zZjdhYzMwODE2ZmY2ZGE3NjQz
ZjdjMjcyYmU5MGM1N2Y5MGVlMmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTWVudUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJNZW51TGlzdC5jcHAKQEAgLTE2MSw3ICsxNjEsNyBAQCB2b2lkIFJlbmRlck1lbnVMaXN0Ojp1
cGRhdGVPcHRpb25zV2lkdGgoKQogICAgICAgICAgICAgLy8gQWRkIGluIHRoZSBvcHRpb24ncyB0
ZXh0IGluZGVudC4gIFdlIGNhbid0IGNhbGN1bGF0ZSBwZXJjZW50YWdlIHZhbHVlcyBmb3Igbm93
LgogICAgICAgICAgICAgZmxvYXQgb3B0aW9uV2lkdGggPSAwOwogICAgICAgICAgICAgaWYgKFJl
bmRlclN0eWxlKiBvcHRpb25TdHlsZSA9IGVsZW1lbnQtPnJlbmRlclN0eWxlKCkpCi0gICAgICAg
ICAgICAgICAgb3B0aW9uV2lkdGggKz0gb3B0aW9uU3R5bGUtPnRleHRJbmRlbnQoKS5jYWxjTWlu
VmFsdWUoMCwgdmlld3BvcnRTaXplKCkpOworICAgICAgICAgICAgICAgIG9wdGlvbldpZHRoICs9
IG9wdGlvblN0eWxlLT50ZXh0SW5kZW50KCkuY2FsY01pblZhbHVlKDApOwogICAgICAgICAgICAg
aWYgKCF0ZXh0LmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICBvcHRpb25XaWR0aCArPSBzdHls
ZSgpLT5mb250KCkud2lkdGgodGV4dCk7CiAgICAgICAgICAgICBtYXhPcHRpb25XaWR0aCA9IG1h
eChtYXhPcHRpb25XaWR0aCwgb3B0aW9uV2lkdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmNwcAppbmRleCBhMDAwZjFhN2IxOWFiYWIxZDA4MjI1OTAxOGEyNDUzZmJl
NGVlODE5Li5lMWUzMzNmNDI1OTZlY2Y1NjlhMThjNDdhOWUyY2ZlM2Y0MzE4OWIzIDEwMDc1NQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtMTQzMCw4ICsxNDMwLDYg
QEAgYm9vbCBSZW5kZXJPYmplY3Q6OnJlcGFpbnRBZnRlckxheW91dElmTmVlZGVkKFJlbmRlckJv
eE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGEKICAgICBSZW5kZXJTdHlsZSogb3V0bGluZVN0eWxl
ID0gb3V0bGluZVN0eWxlRm9yUmVwYWludCgpOwogICAgIExheW91dFVuaXQgb3cgPSBvdXRsaW5l
U3R5bGUtPm91dGxpbmVTaXplKCk7CiAgICAgTGF5b3V0VW5pdCB3aWR0aCA9IGFicyhuZXdPdXRs
aW5lQm94LndpZHRoKCkgLSBvbGRPdXRsaW5lQm94LndpZHRoKCkpOwotICAgIEludFNpemUgdmll
d1NpemUgPSB2aWV3cG9ydFNpemUoKTsKLQogICAgIGlmICh3aWR0aCkgewogICAgICAgICBMYXlv
dXRVbml0IHNoYWRvd0xlZnQ7CiAgICAgICAgIExheW91dFVuaXQgc2hhZG93UmlnaHQ7CkBAIC0x
NDM5LDcgKzE0MzcsNyBAQCBib29sIFJlbmRlck9iamVjdDo6cmVwYWludEFmdGVyTGF5b3V0SWZO
ZWVkZWQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YQogCiAgICAgICAgIExheW91
dFVuaXQgYm9yZGVyUmlnaHQgPSBpc0JveCgpID8gdG9SZW5kZXJCb3godGhpcyktPmJvcmRlclJp
Z2h0KCkgOiB6ZXJvTGF5b3V0VW5pdDsKICAgICAgICAgTGF5b3V0VW5pdCBib3hXaWR0aCA9IGlz
Qm94KCkgPyB0b1JlbmRlckJveCh0aGlzKS0+d2lkdGgoKSA6IHplcm9MYXlvdXRVbml0OwotICAg
ICAgICBMYXlvdXRVbml0IGJvcmRlcldpZHRoID0gbWF4PExheW91dFVuaXQ+KC1vdXRsaW5lU3R5
bGUtPm91dGxpbmVPZmZzZXQoKSwgbWF4KGJvcmRlclJpZ2h0LCBtYXg8TGF5b3V0VW5pdD4oc3R5
bGUoKS0+Ym9yZGVyVG9wUmlnaHRSYWRpdXMoKS53aWR0aCgpLmNhbGNWYWx1ZShib3hXaWR0aCwg
dmlld1NpemUpLCBzdHlsZSgpLT5ib3JkZXJCb3R0b21SaWdodFJhZGl1cygpLndpZHRoKCkuY2Fs
Y1ZhbHVlKGJveFdpZHRoLCB2aWV3U2l6ZSkpKSkgKyBtYXgob3csIHNoYWRvd1JpZ2h0KTsKKyAg
ICAgICAgTGF5b3V0VW5pdCBib3JkZXJXaWR0aCA9IG1heDxMYXlvdXRVbml0Pigtb3V0bGluZVN0
eWxlLT5vdXRsaW5lT2Zmc2V0KCksIG1heChib3JkZXJSaWdodCwgbWF4PExheW91dFVuaXQ+KHN0
eWxlKCktPmJvcmRlclRvcFJpZ2h0UmFkaXVzKCkud2lkdGgoKS5jYWxjVmFsdWUoYm94V2lkdGgp
LCBzdHlsZSgpLT5ib3JkZXJCb3R0b21SaWdodFJhZGl1cygpLndpZHRoKCkuY2FsY1ZhbHVlKGJv
eFdpZHRoKSkpKSArIG1heChvdywgc2hhZG93UmlnaHQpOwogICAgICAgICBMYXlvdXRSZWN0IHJp
Z2h0UmVjdChuZXdPdXRsaW5lQm94LngoKSArIG1pbihuZXdPdXRsaW5lQm94LndpZHRoKCksIG9s
ZE91dGxpbmVCb3gud2lkdGgoKSkgLSBib3JkZXJXaWR0aCwKICAgICAgICAgICAgIG5ld091dGxp
bmVCb3gueSgpLAogICAgICAgICAgICAgd2lkdGggKyBib3JkZXJXaWR0aCwKQEAgLTE0NTgsNyAr
MTQ1Niw3IEBAIGJvb2wgUmVuZGVyT2JqZWN0OjpyZXBhaW50QWZ0ZXJMYXlvdXRJZk5lZWRlZChS
ZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhCiAKICAgICAgICAgTGF5b3V0VW5pdCBi
b3JkZXJCb3R0b20gPSBpc0JveCgpID8gdG9SZW5kZXJCb3godGhpcyktPmJvcmRlckJvdHRvbSgp
IDogemVyb0xheW91dFVuaXQ7CiAgICAgICAgIExheW91dFVuaXQgYm94SGVpZ2h0ID0gaXNCb3go
KSA/IHRvUmVuZGVyQm94KHRoaXMpLT5oZWlnaHQoKSA6IHplcm9MYXlvdXRVbml0OwotICAgICAg
ICBMYXlvdXRVbml0IGJvcmRlckhlaWdodCA9IG1heDxMYXlvdXRVbml0Pigtb3V0bGluZVN0eWxl
LT5vdXRsaW5lT2Zmc2V0KCksIG1heChib3JkZXJCb3R0b20sIG1heDxMYXlvdXRVbml0PihzdHls
ZSgpLT5ib3JkZXJCb3R0b21MZWZ0UmFkaXVzKCkuaGVpZ2h0KCkuY2FsY1ZhbHVlKGJveEhlaWdo
dCwgdmlld1NpemUpLCBzdHlsZSgpLT5ib3JkZXJCb3R0b21SaWdodFJhZGl1cygpLmhlaWdodCgp
LmNhbGNWYWx1ZShib3hIZWlnaHQsIHZpZXdTaXplKSkpKSArIG1heChvdywgc2hhZG93Qm90dG9t
KTsKKyAgICAgICAgTGF5b3V0VW5pdCBib3JkZXJIZWlnaHQgPSBtYXg8TGF5b3V0VW5pdD4oLW91
dGxpbmVTdHlsZS0+b3V0bGluZU9mZnNldCgpLCBtYXgoYm9yZGVyQm90dG9tLCBtYXg8TGF5b3V0
VW5pdD4oc3R5bGUoKS0+Ym9yZGVyQm90dG9tTGVmdFJhZGl1cygpLmhlaWdodCgpLmNhbGNWYWx1
ZShib3hIZWlnaHQpLCBzdHlsZSgpLT5ib3JkZXJCb3R0b21SaWdodFJhZGl1cygpLmhlaWdodCgp
LmNhbGNWYWx1ZShib3hIZWlnaHQpKSkpICsgbWF4KG93LCBzaGFkb3dCb3R0b20pOwogICAgICAg
ICBMYXlvdXRSZWN0IGJvdHRvbVJlY3QobmV3T3V0bGluZUJveC54KCksCiAgICAgICAgICAgICBt
aW4obmV3T3V0bGluZUJveC5tYXhZKCksIG9sZE91dGxpbmVCb3gubWF4WSgpKSAtIGJvcmRlckhl
aWdodCwKICAgICAgICAgICAgIG1heChuZXdPdXRsaW5lQm94LndpZHRoKCksIG9sZE91dGxpbmVC
b3gud2lkdGgoKSksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXgg
Y2IyNjY1ZWM3MWUxMzU0NzBiNmE3YWZjN2ZkZjQyODRkMzAxMmUzZi4uMWFhZjM0M2FhNTMxOWRj
NjdlZmE2NDNlMTJlZmUxZmU4MzhkMjQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuaApAQCAtODQ3LDggKzg0Nyw2IEBAIHB1YmxpYzoKICAgICAvLyBSZXR1cm4gdGhl
IHJlbmRlcmVyIHdob3NlIGJhY2tncm91bmQgc3R5bGUgaXMgdXNlZCB0byBwYWludCB0aGUgcm9v
dCBiYWNrZ3JvdW5kLiBTaG91bGQgb25seSBiZSBjYWxsZWQgb24gdGhlIHJlbmRlcmVyIGZvciB3
aGljaCBpc1Jvb3QoKSBpcyB0cnVlLgogICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXJGb3JSb290
QmFja2dyb3VuZCgpOwogCi0gICAgSW50U2l6ZSB2aWV3cG9ydFNpemUoKSBjb25zdCB7IHJldHVy
biBkb2N1bWVudCgpLT52aWV3cG9ydFNpemUoKTsgfQotCiBwcm90ZWN0ZWQ6CiAgICAgaW5saW5l
IGJvb2wgbGF5ZXJDcmVhdGlvbkFsbG93ZWRGb3JTdWJ0cmVlKCkgY29uc3Q7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmluZGV4IGZlYTBiMjg2YzY3NThh
YzI2NjhjNWQwODgyMmJhZjA0ZGU0MmE0ODIuLjcxOGJlMmU3ODA1MDQ2NmYwNzBkZTI4NjlmZjNj
YjQ1Nzk0ZTZmOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
ZXBsYWNlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2Vk
LmNwcApAQCAtMTQ2LDcgKzE0Niw3IEBAIHZvaWQgUmVuZGVyUmVwbGFjZWQ6OnBhaW50KFBhaW50
SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiAgICAgICAg
IGVsc2UgewogICAgICAgICAgICAgLy8gUHVzaCBhIGNsaXAgaWYgd2UgaGF2ZSBhIGJvcmRlciBy
YWRpdXMsIHNpbmNlIHdlIHdhbnQgdG8gcm91bmQgdGhlIGZvcmVncm91bmQgY29udGVudCB0aGF0
IGdldHMgcGFpbnRlZC4KICAgICAgICAgICAgIHBhaW50SW5mby5jb250ZXh0LT5zYXZlKCk7Ci0g
ICAgICAgICAgICBwYWludEluZm8uY29udGV4dC0+YWRkUm91bmRlZFJlY3RDbGlwKHN0eWxlKCkt
PmdldFJvdW5kZWRCb3JkZXJGb3IocGFpbnRSZWN0LCB2aWV3cG9ydFNpemUoKSkpOworICAgICAg
ICAgICAgcGFpbnRJbmZvLmNvbnRleHQtPmFkZFJvdW5kZWRSZWN0Q2xpcChzdHlsZSgpLT5nZXRS
b3VuZGVkQm9yZGVyRm9yKHBhaW50UmVjdCkpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyUGFydC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyUGFydC5jcHAKaW5kZXggNmMy
ZGIzYWEwZTQ1ZDE0NDQ3Y2FmM2YzMTY5MDM3M2FiOWRlNDQzNS4uY2JhZTY4YzAyYTAyYjJiODhk
ZjkzYjdhMTAxY2JkZjk5MTJjYWRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclNjcm9sbGJhclBhcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTY3JvbGxiYXJQYXJ0LmNwcApAQCAtNzksNDMgKzc5LDQxIEBAIHZvaWQgUmVuZGVy
U2Nyb2xsYmFyUGFydDo6bGF5b3V0VmVydGljYWxQYXJ0KCkKICAgICB9IAogfQogCi1zdGF0aWMg
aW50IGNhbGNTY3JvbGxiYXJUaGlja25lc3NVc2luZyhjb25zdCBMZW5ndGgmIGxlbmd0aCwgaW50
IGNvbnRhaW5pbmdMZW5ndGgsIGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSkKK3N0YXRpYyBp
bnQgY2FsY1Njcm9sbGJhclRoaWNrbmVzc1VzaW5nKGNvbnN0IExlbmd0aCYgbCwgaW50IGNvbnRh
aW5pbmdMZW5ndGgpCiB7Ci0gICAgaWYgKGxlbmd0aC5pc0ludHJpbnNpY09yQXV0bygpKQorICAg
IGlmIChsLmlzSW50cmluc2ljT3JBdXRvKCkpCiAgICAgICAgIHJldHVybiBTY3JvbGxiYXJUaGVt
ZTo6dGhlbWUoKS0+c2Nyb2xsYmFyVGhpY2tuZXNzKCk7Ci0gICAgcmV0dXJuIGxlbmd0aC5jYWxj
TWluVmFsdWUoY29udGFpbmluZ0xlbmd0aCwgdmlld3BvcnRTaXplKTsKKyAgICByZXR1cm4gbC5j
YWxjTWluVmFsdWUoY29udGFpbmluZ0xlbmd0aCk7CiB9CiAKIHZvaWQgUmVuZGVyU2Nyb2xsYmFy
UGFydDo6Y29tcHV0ZVNjcm9sbGJhcldpZHRoKCkKIHsKICAgICBpZiAoIW1fc2Nyb2xsYmFyLT5v
d25pbmdSZW5kZXJlcigpKQogICAgICAgICByZXR1cm47Ci0gICAgSW50U2l6ZSB2aWV3U2l6ZSA9
IHZpZXdwb3J0U2l6ZSgpOwogICAgIGludCB2aXNpYmxlU2l6ZSA9IG1fc2Nyb2xsYmFyLT5vd25p
bmdSZW5kZXJlcigpLT53aWR0aCgpIC0gbV9zY3JvbGxiYXItPm93bmluZ1JlbmRlcmVyKCktPmJv
cmRlckxlZnQoKSAtIG1fc2Nyb2xsYmFyLT5vd25pbmdSZW5kZXJlcigpLT5ib3JkZXJSaWdodCgp
OwotICAgIGludCB3ID0gY2FsY1Njcm9sbGJhclRoaWNrbmVzc1VzaW5nKHN0eWxlKCktPndpZHRo
KCksIHZpc2libGVTaXplLCB2aWV3U2l6ZSk7Ci0gICAgaW50IG1pbldpZHRoID0gY2FsY1Njcm9s
bGJhclRoaWNrbmVzc1VzaW5nKHN0eWxlKCktPm1pbldpZHRoKCksIHZpc2libGVTaXplLCB2aWV3
U2l6ZSk7Ci0gICAgaW50IG1heFdpZHRoID0gc3R5bGUoKS0+bWF4V2lkdGgoKS5pc1VuZGVmaW5l
ZCgpID8gdyA6IGNhbGNTY3JvbGxiYXJUaGlja25lc3NVc2luZyhzdHlsZSgpLT5tYXhXaWR0aCgp
LCB2aXNpYmxlU2l6ZSwgdmlld1NpemUpOworICAgIGludCB3ID0gY2FsY1Njcm9sbGJhclRoaWNr
bmVzc1VzaW5nKHN0eWxlKCktPndpZHRoKCksIHZpc2libGVTaXplKTsKKyAgICBpbnQgbWluV2lk
dGggPSBjYWxjU2Nyb2xsYmFyVGhpY2tuZXNzVXNpbmcoc3R5bGUoKS0+bWluV2lkdGgoKSwgdmlz
aWJsZVNpemUpOworICAgIGludCBtYXhXaWR0aCA9IHN0eWxlKCktPm1heFdpZHRoKCkuaXNVbmRl
ZmluZWQoKSA/IHcgOiBjYWxjU2Nyb2xsYmFyVGhpY2tuZXNzVXNpbmcoc3R5bGUoKS0+bWF4V2lk
dGgoKSwgdmlzaWJsZVNpemUpOwogICAgIHNldFdpZHRoKG1heChtaW5XaWR0aCwgbWluKG1heFdp
ZHRoLCB3KSkpOwogICAgIAogICAgIC8vIEJ1dHRvbnMgYW5kIHRyYWNrIHBpZWNlcyBjYW4gYWxs
IGhhdmUgbWFyZ2lucyBhbG9uZyB0aGUgYXhpcyBvZiB0aGUgc2Nyb2xsYmFyLiAKLSAgICBtX21h
cmdpbkxlZnQgPSBzdHlsZSgpLT5tYXJnaW5MZWZ0KCkuY2FsY01pblZhbHVlKHZpc2libGVTaXpl
LCB2aWV3U2l6ZSk7Ci0gICAgbV9tYXJnaW5SaWdodCA9IHN0eWxlKCktPm1hcmdpblJpZ2h0KCku
Y2FsY01pblZhbHVlKHZpc2libGVTaXplLCB2aWV3U2l6ZSk7CisgICAgbV9tYXJnaW5MZWZ0ID0g
c3R5bGUoKS0+bWFyZ2luTGVmdCgpLmNhbGNNaW5WYWx1ZSh2aXNpYmxlU2l6ZSk7CisgICAgbV9t
YXJnaW5SaWdodCA9IHN0eWxlKCktPm1hcmdpblJpZ2h0KCkuY2FsY01pblZhbHVlKHZpc2libGVT
aXplKTsKIH0KIAogdm9pZCBSZW5kZXJTY3JvbGxiYXJQYXJ0Ojpjb21wdXRlU2Nyb2xsYmFySGVp
Z2h0KCkKIHsKICAgICBpZiAoIW1fc2Nyb2xsYmFyLT5vd25pbmdSZW5kZXJlcigpKQogICAgICAg
ICByZXR1cm47Ci0gICAgSW50U2l6ZSB2aWV3U2l6ZSA9IHZpZXdwb3J0U2l6ZSgpOwogICAgIGlu
dCB2aXNpYmxlU2l6ZSA9IG1fc2Nyb2xsYmFyLT5vd25pbmdSZW5kZXJlcigpLT5oZWlnaHQoKSAt
ICBtX3Njcm9sbGJhci0+b3duaW5nUmVuZGVyZXIoKS0+Ym9yZGVyVG9wKCkgLSBtX3Njcm9sbGJh
ci0+b3duaW5nUmVuZGVyZXIoKS0+Ym9yZGVyQm90dG9tKCk7Ci0gICAgaW50IGggPSBjYWxjU2Ny
b2xsYmFyVGhpY2tuZXNzVXNpbmcoc3R5bGUoKS0+aGVpZ2h0KCksIHZpc2libGVTaXplLCB2aWV3
U2l6ZSk7Ci0gICAgaW50IG1pbkhlaWdodCA9IGNhbGNTY3JvbGxiYXJUaGlja25lc3NVc2luZyhz
dHlsZSgpLT5taW5IZWlnaHQoKSwgdmlzaWJsZVNpemUsIHZpZXdTaXplKTsKLSAgICBpbnQgbWF4
SGVpZ2h0ID0gc3R5bGUoKS0+bWF4SGVpZ2h0KCkuaXNVbmRlZmluZWQoKSA/IGggOiBjYWxjU2Ny
b2xsYmFyVGhpY2tuZXNzVXNpbmcoc3R5bGUoKS0+bWF4SGVpZ2h0KCksIHZpc2libGVTaXplLCB2
aWV3U2l6ZSk7CisgICAgaW50IGggPSBjYWxjU2Nyb2xsYmFyVGhpY2tuZXNzVXNpbmcoc3R5bGUo
KS0+aGVpZ2h0KCksIHZpc2libGVTaXplKTsKKyAgICBpbnQgbWluSGVpZ2h0ID0gY2FsY1Njcm9s
bGJhclRoaWNrbmVzc1VzaW5nKHN0eWxlKCktPm1pbkhlaWdodCgpLCB2aXNpYmxlU2l6ZSk7Cisg
ICAgaW50IG1heEhlaWdodCA9IHN0eWxlKCktPm1heEhlaWdodCgpLmlzVW5kZWZpbmVkKCkgPyBo
IDogY2FsY1Njcm9sbGJhclRoaWNrbmVzc1VzaW5nKHN0eWxlKCktPm1heEhlaWdodCgpLCB2aXNp
YmxlU2l6ZSk7CiAgICAgc2V0SGVpZ2h0KG1heChtaW5IZWlnaHQsIG1pbihtYXhIZWlnaHQsIGgp
KSk7CiAKICAgICAvLyBCdXR0b25zIGFuZCB0cmFjayBwaWVjZXMgY2FuIGFsbCBoYXZlIG1hcmdp
bnMgYWxvbmcgdGhlIGF4aXMgb2YgdGhlIHNjcm9sbGJhci4gCi0gICAgbV9tYXJnaW5Ub3AgPSBz
dHlsZSgpLT5tYXJnaW5Ub3AoKS5jYWxjTWluVmFsdWUodmlzaWJsZVNpemUsIHZpZXdTaXplKTsK
LSAgICBtX21hcmdpbkJvdHRvbSA9IHN0eWxlKCktPm1hcmdpbkJvdHRvbSgpLmNhbGNNaW5WYWx1
ZSh2aXNpYmxlU2l6ZSwgdmlld1NpemUpOworICAgIG1fbWFyZ2luVG9wID0gc3R5bGUoKS0+bWFy
Z2luVG9wKCkuY2FsY01pblZhbHVlKHZpc2libGVTaXplKTsKKyAgICBtX21hcmdpbkJvdHRvbSA9
IHN0eWxlKCktPm1hcmdpbkJvdHRvbSgpLmNhbGNNaW5WYWx1ZSh2aXNpYmxlU2l6ZSk7CiB9CiAK
IHZvaWQgUmVuZGVyU2Nyb2xsYmFyUGFydDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKaW5kZXggOTBiNTYxMDBk
OTIxODA2ZWIwMzdkMzExNjFjYTI2ZjAyMjVlYWVkYy4uMmM4Y2FlMWRkMzZlNWQwYTQ4YzUwNjU4
OGQ3M2JkMDZkMzZhMzQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUu
Y3BwCkBAIC0yMjIsNyArMjIyLDYgQEAgdm9pZCBSZW5kZXJUYWJsZTo6Y29tcHV0ZUxvZ2ljYWxX
aWR0aCgpCiAgICAgICAgIGNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbFdpZHRoKCk7CiAKICAgICBS
ZW5kZXJCbG9jayogY2IgPSBjb250YWluaW5nQmxvY2soKTsKLSAgICBJbnRTaXplIHZpZXdTaXpl
ID0gdmlld3BvcnRTaXplKCk7CiAKICAgICBMYXlvdXRVbml0IGF2YWlsYWJsZUxvZ2ljYWxXaWR0
aCA9IGNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxXaWR0aEZvckNvbnRlbnQoKTsKICAgICBib29sIGhh
c1BlcnBlbmRpY3VsYXJDb250YWluaW5nQmxvY2sgPSBjYi0+c3R5bGUoKS0+aXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKSAhPSBzdHlsZSgpLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpOwpAQCAt
MjMzLDEwICsyMzIsMTAgQEAgdm9pZCBSZW5kZXJUYWJsZTo6Y29tcHV0ZUxvZ2ljYWxXaWR0aCgp
CiAgICAgICAgIHNldExvZ2ljYWxXaWR0aChjb252ZXJ0U3R5bGVMb2dpY2FsV2lkdGhUb0NvbXB1
dGVkV2lkdGgoc3R5bGVMb2dpY2FsV2lkdGgsIGNvbnRhaW5lcldpZHRoSW5JbmxpbmVEaXJlY3Rp
b24pKTsKICAgICBlbHNlIHsKICAgICAgICAgLy8gU3VidHJhY3Qgb3V0IGFueSBmaXhlZCBtYXJn
aW5zIGZyb20gb3VyIGF2YWlsYWJsZSB3aWR0aCBmb3IgYXV0byB3aWR0aCB0YWJsZXMuCi0gICAg
ICAgIExheW91dFVuaXQgbWFyZ2luU3RhcnQgPSBzdHlsZSgpLT5tYXJnaW5TdGFydCgpLmNhbGNN
aW5WYWx1ZShhdmFpbGFibGVMb2dpY2FsV2lkdGgsIHZpZXdTaXplKTsKLSAgICAgICAgTGF5b3V0
VW5pdCBtYXJnaW5FbmQgPSBzdHlsZSgpLT5tYXJnaW5FbmQoKS5jYWxjTWluVmFsdWUoYXZhaWxh
YmxlTG9naWNhbFdpZHRoLCB2aWV3U2l6ZSk7CisgICAgICAgIExheW91dFVuaXQgbWFyZ2luU3Rh
cnQgPSBzdHlsZSgpLT5tYXJnaW5TdGFydCgpLmNhbGNNaW5WYWx1ZShhdmFpbGFibGVMb2dpY2Fs
V2lkdGgpOworICAgICAgICBMYXlvdXRVbml0IG1hcmdpbkVuZCA9IHN0eWxlKCktPm1hcmdpbkVu
ZCgpLmNhbGNNaW5WYWx1ZShhdmFpbGFibGVMb2dpY2FsV2lkdGgpOwogICAgICAgICBMYXlvdXRV
bml0IG1hcmdpblRvdGFsID0gbWFyZ2luU3RhcnQgKyBtYXJnaW5FbmQ7Ci0KKyAgICAgICAgCiAg
ICAgICAgIC8vIFN1YnRyYWN0IG91dCBvdXIgbWFyZ2lucyB0byBnZXQgdGhlIGF2YWlsYWJsZSBj
b250ZW50IHdpZHRoLgogICAgICAgICBMYXlvdXRVbml0IGF2YWlsYWJsZUNvbnRlbnRMb2dpY2Fs
V2lkdGggPSBtYXg8TGF5b3V0VW5pdD4oMCwgY29udGFpbmVyV2lkdGhJbklubGluZURpcmVjdGlv
biAtIG1hcmdpblRvdGFsKTsKICAgICAgICAgaWYgKHNocmlua1RvQXZvaWRGbG9hdHMoKSAmJiBj
Yi0+Y29udGFpbnNGbG9hdHMoKSAmJiAhaGFzUGVycGVuZGljdWxhckNvbnRhaW5pbmdCbG9jaykg
ewpAQCAtMjYyLDggKzI2MSw4IEBAIHZvaWQgUmVuZGVyVGFibGU6OmNvbXB1dGVMb2dpY2FsV2lk
dGgoKQogICAgIGlmICghaGFzUGVycGVuZGljdWxhckNvbnRhaW5pbmdCbG9jaykKICAgICAgICAg
Y29tcHV0ZUlubGluZURpcmVjdGlvbk1hcmdpbnMoY2IsIGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwg
bG9naWNhbFdpZHRoKCkpOwogICAgIGVsc2UgewotICAgICAgICBzZXRNYXJnaW5TdGFydChzdHls
ZSgpLT5tYXJnaW5TdGFydCgpLmNhbGNNaW5WYWx1ZShhdmFpbGFibGVMb2dpY2FsV2lkdGgsIHZp
ZXdTaXplKSk7Ci0gICAgICAgIHNldE1hcmdpbkVuZChzdHlsZSgpLT5tYXJnaW5FbmQoKS5jYWxj
TWluVmFsdWUoYXZhaWxhYmxlTG9naWNhbFdpZHRoLCB2aWV3U2l6ZSkpOworICAgICAgICBzZXRN
YXJnaW5TdGFydChzdHlsZSgpLT5tYXJnaW5TdGFydCgpLmNhbGNNaW5WYWx1ZShhdmFpbGFibGVM
b2dpY2FsV2lkdGgpKTsKKyAgICAgICAgc2V0TWFyZ2luRW5kKHN0eWxlKCktPm1hcmdpbkVuZCgp
LmNhbGNNaW5WYWx1ZShhdmFpbGFibGVMb2dpY2FsV2lkdGgpKTsKICAgICB9CiB9CiAKQEAgLTI3
Nyw3ICsyNzYsNyBAQCBMYXlvdXRVbml0IFJlbmRlclRhYmxlOjpjb252ZXJ0U3R5bGVMb2dpY2Fs
V2lkdGhUb0NvbXB1dGVkV2lkdGgoY29uc3QgTGVuZ3RoJiBzdAogICAgICAgICByZWNhbGNCb3Jk
ZXJzSW5Sb3dEaXJlY3Rpb24oKTsKICAgICAgICAgYm9yZGVycyA9IGJvcmRlclN0YXJ0KCkgKyBi
b3JkZXJFbmQoKSArIChjb2xsYXBzZUJvcmRlcnMoKSA/IDAgOiBwYWRkaW5nU3RhcnQoKSArIHBh
ZGRpbmdFbmQoKSk7CiAgICAgfQotICAgIHJldHVybiBzdHlsZUxvZ2ljYWxXaWR0aC5jYWxjTWlu
VmFsdWUoYXZhaWxhYmxlV2lkdGgsIHZpZXdwb3J0U2l6ZSgpKSArIGJvcmRlcnM7CisgICAgcmV0
dXJuIHN0eWxlTG9naWNhbFdpZHRoLmNhbGNNaW5WYWx1ZShhdmFpbGFibGVXaWR0aCkgKyBib3Jk
ZXJzOwogfQogCiB2b2lkIFJlbmRlclRhYmxlOjpsYXlvdXRDYXB0aW9uKFJlbmRlclRhYmxlQ2Fw
dGlvbiogY2FwdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZUNlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2Vs
bC5jcHAKaW5kZXggNzIyZTJkMWI3NGM0N2Y3MzA5ZmMxY2NjMzgxZDEwMWE2YWVmNjI3MS4uOTE2
Y2QxOWNmYTYyOTRhOWE5NTFhOTM3MzE5YjMyNzhhOGVmM2MxYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgTGF5b3V0
VW5pdCBSZW5kZXJUYWJsZUNlbGw6OmxvZ2ljYWxIZWlnaHRGb3JSb3dTaXppbmcoKSBjb25zdAog
ewogICAgIExheW91dFVuaXQgYWRqdXN0ZWRMb2dpY2FsSGVpZ2h0ID0gbG9naWNhbEhlaWdodCgp
IC0gKGludHJpbnNpY1BhZGRpbmdCZWZvcmUoKSArIGludHJpbnNpY1BhZGRpbmdBZnRlcigpKTsK
IAotICAgIExheW91dFVuaXQgc3R5bGVMb2dpY2FsSGVpZ2h0ID0gc3R5bGUoKS0+bG9naWNhbEhl
aWdodCgpLmNhbGNWYWx1ZSgwLCB2aWV3cG9ydFNpemUoKSk7CisgICAgTGF5b3V0VW5pdCBzdHls
ZUxvZ2ljYWxIZWlnaHQgPSBzdHlsZSgpLT5sb2dpY2FsSGVpZ2h0KCkuY2FsY1ZhbHVlKDApOwog
ICAgIGlmIChkb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSB8fCBzdHlsZSgpLT5ib3hTaXppbmco
KSA9PSBCT1JERVJfQk9YKSB7CiAgICAgICAgIC8vIEV4cGxpY2l0IGhlaWdodHMgdXNlIHRoZSBi
b3JkZXIgYm94IGluIHF1aXJrcyBtb2RlLgogICAgICAgICAvLyBEb24ndCBhZGp1c3QgaGVpZ2h0
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcApp
bmRleCAyNGFmMjFlZmMzNjc3M2NiMTdiZjZjZDQ3M2Q0NjY3NGQ1YjY4ZWYwLi5mZGY1ZWFkZGI3
Y2VlNDYyNmQ4NTMyYmY3YTI1YThlNjUxZGRmYzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcApAQCAtMzMyLDE0ICszMzIsMTMgQEAgaW50
IFJlbmRlclRhYmxlU2VjdGlvbjo6Y2FsY1Jvd0xvZ2ljYWxIZWlnaHQoKQogCiAgICAgbV9yb3dQ
b3MucmVzaXplKG1fZ3JpZC5zaXplKCkgKyAxKTsKICAgICBtX3Jvd1Bvc1swXSA9IHNwYWNpbmc7
Ci0gICAgSW50U2l6ZSB2aWV3U2l6ZSA9IHZpZXdwb3J0U2l6ZSgpOwogCiAgICAgZm9yICh1bnNp
Z25lZCByID0gMDsgciA8IG1fZ3JpZC5zaXplKCk7IHIrKykgewogICAgICAgICBtX2dyaWRbcl0u
YmFzZWxpbmUgPSAwOwogICAgICAgICBMYXlvdXRVbml0IGJhc2VsaW5lRGVzY2VudCA9IDA7CiAK
ICAgICAgICAgLy8gT3VyIGJhc2Ugc2l6ZSBpcyB0aGUgYmlnZ2VzdCBsb2dpY2FsIGhlaWdodCBm
cm9tIG91ciBjZWxscycgc3R5bGVzIChleGNsdWRpbmcgcm93IHNwYW5uaW5nIGNlbGxzKS4KLSAg
ICAgICAgbV9yb3dQb3NbciArIDFdID0gbWF4KG1fcm93UG9zW3JdICsgbV9ncmlkW3JdLmxvZ2lj
YWxIZWlnaHQuY2FsY01pblZhbHVlKDAsIHZpZXdTaXplKSwgMCk7CisgICAgICAgIG1fcm93UG9z
W3IgKyAxXSA9IG1heChtX3Jvd1Bvc1tyXSArIG1fZ3JpZFtyXS5sb2dpY2FsSGVpZ2h0LmNhbGNN
aW5WYWx1ZSgwKSwgMCk7CiAKICAgICAgICAgUm93JiByb3cgPSBtX2dyaWRbcl0ucm93OwogICAg
ICAgICB1bnNpZ25lZCB0b3RhbENvbHMgPSByb3cuc2l6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0LmgKaW5kZXggMmQzMGJlNWEwY2EyYTNmMDFjZjk4ZjI4OWY3N2Q2MWU1NjQ4
NDU4YS4uMzkxODMzNmExOWQ4NDZhOTZiYjIzN2YyMmZiYTE5NWE4NDQ5NDg2MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCkBAIC05Nyw4ICs5Nyw4IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIExheW91dFJlY3Qgc2VsZWN0aW9uUmVjdEZvclJlcGFpbnQoUmVuZGVyQm94TW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQgPSB0
cnVlKTsKICAgICB2aXJ0dWFsIExheW91dFJlY3QgbG9jYWxDYXJldFJlY3QoSW5saW5lQm94Kiwg
aW50IGNhcmV0T2Zmc2V0LCBMYXlvdXRVbml0KiBleHRyYVdpZHRoVG9FbmRPZkxpbmUgPSAwKTsK
IAotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5MZWZ0KCkgY29uc3QgeyByZXR1cm4gc3R5
bGUoKS0+bWFyZ2luTGVmdCgpLmNhbGNNaW5WYWx1ZSgwLCB2aWV3cG9ydFNpemUoKSk7IH0KLSAg
ICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luUmlnaHQoKSBjb25zdCB7IHJldHVybiBzdHlsZSgp
LT5tYXJnaW5SaWdodCgpLmNhbGNNaW5WYWx1ZSgwLCB2aWV3cG9ydFNpemUoKSk7IH0KKyAgICB2
aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luTGVmdCgpIGNvbnN0IHsgcmV0dXJuIHN0eWxlKCktPm1h
cmdpbkxlZnQoKS5jYWxjTWluVmFsdWUoMCk7IH0KKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFy
Z2luUmlnaHQoKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLT5tYXJnaW5SaWdodCgpLmNhbGNNaW5W
YWx1ZSgwKTsgfQogCiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RG
b3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IGZjZGU5
YzdiM2ZkZjNiZmNiZTMwMWEwZDIxZWFjNjkxOGZmYjdkMWIuLjBhZTAxOTZiYzBlOTI1ZThjOGM0
Y2IyNjZiNDc4ZGMxNzdhNzU0MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVNYWMubW0KQEAgLTEwNzIsNyArMTA3Miw3IEBAIHZvaWQgUmVuZGVyVGhlbWVNYWM6OnBh
aW50TWVudUxpc3RCdXR0b25HcmFkaWVudHMoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludElu
CiAKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKnBhaW50SW5mby5j
b250ZXh0KTsKIAotICAgIFJvdW5kZWRSZWN0IGJvcmRlciA9IG8tPnN0eWxlKCktPmdldFJvdW5k
ZWRCb3JkZXJGb3Iociwgby0+dmlld3BvcnRTaXplKCkpOworICAgIFJvdW5kZWRSZWN0IGJvcmRl
ciA9IG8tPnN0eWxlKCktPmdldFJvdW5kZWRCb3JkZXJGb3Iocik7CiAgICAgaW50IHJhZGl1cyA9
IGJvcmRlci5yYWRpaSgpLnRvcExlZnQoKS53aWR0aCgpOwogCiAgICAgQ0dDb2xvclNwYWNlUmVm
IGNzcGFjZSA9IGRldmljZVJHQkNvbG9yU3BhY2VSZWYoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcldpZGdldC5jcHAKaW5kZXggNmI3ZGE3OThmNmI5Yzg1OGVlMGM0MjAwYWEwNjI1
ZmQxZmYyMTEwNS4uYWQ1YTAzZmQyOTkyZmIyYzg0MmQ4NzlmNjMxNjJlYWExMWEwODAyMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKQEAgLTI3MCw3ICsyNzAs
NyBAQCB2b2lkIFJlbmRlcldpZGdldDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0
IExheW91dFBvaW50JiBwYWludE9mZnNldCkKIAogICAgICAgICAvLyBQdXNoIGEgY2xpcCBpZiB3
ZSBoYXZlIGEgYm9yZGVyIHJhZGl1cywgc2luY2Ugd2Ugd2FudCB0byByb3VuZCB0aGUgZm9yZWdy
b3VuZCBjb250ZW50IHRoYXQgZ2V0cyBwYWludGVkLgogICAgICAgICBwYWludEluZm8uY29udGV4
dC0+c2F2ZSgpOwotICAgICAgICBwYWludEluZm8uY29udGV4dC0+YWRkUm91bmRlZFJlY3RDbGlw
KHN0eWxlKCktPmdldFJvdW5kZWRCb3JkZXJGb3IoYm9yZGVyUmVjdCwgdmlld3BvcnRTaXplKCkp
KTsKKyAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQtPmFkZFJvdW5kZWRSZWN0Q2xpcChzdHlsZSgp
LT5nZXRSb3VuZGVkQm9yZGVyRm9yKGJvcmRlclJlY3QpKTsKICAgICB9CiAKICAgICBpZiAobV93
aWRnZXQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5l
Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcAppbmRl
eCA4ZmZmZmUzYzlmZmExMTU3MGY0MmVmMzVlMDEwNmQwZGVjOTZjNmJhLi5jNTY1NjAwNjUwNGVk
NDExMmRkZGIyMGE4NWQzMTU0ZGI4YzMxNTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUm9vdElubGluZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1Jvb3RJbmxpbmVCb3guY3BwCkBAIC04NDQsNyArODQ0LDcgQEAgTGF5b3V0VW5pdCBSb290SW5s
aW5lQm94Ojp2ZXJ0aWNhbFBvc2l0aW9uRm9yQm94KElubGluZUJveCogYm94LCBWZXJ0aWNhbFBv
c2l0aW8KICAgICAgICAgfSBlbHNlIGlmICh2ZXJ0aWNhbEFsaWduID09IEJBU0VMSU5FX01JRERM
RSkKICAgICAgICAgICAgIHZlcnRpY2FsUG9zaXRpb24gKz0gLXJlbmRlcmVyLT5saW5lSGVpZ2h0
KGZpcnN0TGluZSwgbGluZURpcmVjdGlvbikgLyAyICsgcmVuZGVyZXItPmJhc2VsaW5lUG9zaXRp
b24oYmFzZWxpbmVUeXBlKCksIGZpcnN0TGluZSwgbGluZURpcmVjdGlvbik7CiAgICAgICAgIGVs
c2UgaWYgKHZlcnRpY2FsQWxpZ24gPT0gTEVOR1RIKQotICAgICAgICAgICAgdmVydGljYWxQb3Np
dGlvbiAtPSByZW5kZXJlci0+c3R5bGUoKS0+dmVydGljYWxBbGlnbkxlbmd0aCgpLmNhbGNWYWx1
ZShyZW5kZXJlci0+bGluZUhlaWdodChmaXJzdExpbmUsIGxpbmVEaXJlY3Rpb24pLCByZW5kZXJl
ci0+dmlld3BvcnRTaXplKCkpOworICAgICAgICAgICAgdmVydGljYWxQb3NpdGlvbiAtPSByZW5k
ZXJlci0+c3R5bGUoKS0+dmVydGljYWxBbGlnbkxlbmd0aCgpLmNhbGNWYWx1ZShyZW5kZXJlci0+
bGluZUhlaWdodChmaXJzdExpbmUsIGxpbmVEaXJlY3Rpb24pKTsKICAgICB9CiAKICAgICAvLyBT
dG9yZSB0aGUgY2FjaGVkIHZhbHVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggOGNhNWIyMjk3Nzc0NTQyMGMzOTdjMDJiYTQwMzg4MDU0
NmQ3OWVhOS4uMTQ1OTUxZDNhZDNmYjhlOGY4NDRjMjJmNDI5OGZkZGYzZWIxNmYwZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC04NDIs
MTcgKzg0MiwxNyBAQCB2b2lkIFJlbmRlclN0eWxlOjpzZXRCb3hTaGFkb3coUGFzc093blB0cjxT
aGFkb3dEYXRhPiBzaGFkb3dEYXRhLCBib29sIGFkZCkKICAgICByYXJlRGF0YS0+bV9ib3hTaGFk
b3cgPSBzaGFkb3dEYXRhOwogfQogCi1zdGF0aWMgUm91bmRlZFJlY3Q6OlJhZGlpIGNhbGNSYWRp
aUZvcihjb25zdCBCb3JkZXJEYXRhJiBib3JkZXIsIExheW91dFNpemUgc2l6ZSwgY29uc3QgSW50
U2l6ZSYgdmlld3BvcnRTaXplKQorc3RhdGljIFJvdW5kZWRSZWN0OjpSYWRpaSBjYWxjUmFkaWlG
b3IoY29uc3QgQm9yZGVyRGF0YSYgYm9yZGVyLCBMYXlvdXRTaXplIHNpemUpCiB7CiAgICAgcmV0
dXJuIFJvdW5kZWRSZWN0OjpSYWRpaSgKLSAgICAgICAgTGF5b3V0U2l6ZShib3JkZXIudG9wTGVm
dCgpLndpZHRoKCkuY2FsY1ZhbHVlKHNpemUud2lkdGgoKSwgdmlld3BvcnRTaXplKSwgCi0gICAg
ICAgICAgICAgICAgICAgYm9yZGVyLnRvcExlZnQoKS5oZWlnaHQoKS5jYWxjVmFsdWUoc2l6ZS5o
ZWlnaHQoKSwgdmlld3BvcnRTaXplKSksCi0gICAgICAgIExheW91dFNpemUoYm9yZGVyLnRvcFJp
Z2h0KCkud2lkdGgoKS5jYWxjVmFsdWUoc2l6ZS53aWR0aCgpLCB2aWV3cG9ydFNpemUpLAotICAg
ICAgICAgICAgICAgICAgIGJvcmRlci50b3BSaWdodCgpLmhlaWdodCgpLmNhbGNWYWx1ZShzaXpl
LmhlaWdodCgpLCB2aWV3cG9ydFNpemUpKSwKLSAgICAgICAgTGF5b3V0U2l6ZShib3JkZXIuYm90
dG9tTGVmdCgpLndpZHRoKCkuY2FsY1ZhbHVlKHNpemUud2lkdGgoKSwgdmlld3BvcnRTaXplKSwg
Ci0gICAgICAgICAgICAgICAgICAgYm9yZGVyLmJvdHRvbUxlZnQoKS5oZWlnaHQoKS5jYWxjVmFs
dWUoc2l6ZS5oZWlnaHQoKSwgdmlld3BvcnRTaXplKSksCi0gICAgICAgIExheW91dFNpemUoYm9y
ZGVyLmJvdHRvbVJpZ2h0KCkud2lkdGgoKS5jYWxjVmFsdWUoc2l6ZS53aWR0aCgpLCB2aWV3cG9y
dFNpemUpLCAKLSAgICAgICAgICAgICAgICAgICBib3JkZXIuYm90dG9tUmlnaHQoKS5oZWlnaHQo
KS5jYWxjVmFsdWUoc2l6ZS5oZWlnaHQoKSwgdmlld3BvcnRTaXplKSkpOworICAgICAgICBMYXlv
dXRTaXplKGJvcmRlci50b3BMZWZ0KCkud2lkdGgoKS5jYWxjVmFsdWUoc2l6ZS53aWR0aCgpKSwg
CisgICAgICAgICAgICAgICAgICAgYm9yZGVyLnRvcExlZnQoKS5oZWlnaHQoKS5jYWxjVmFsdWUo
c2l6ZS5oZWlnaHQoKSkpLAorICAgICAgICBMYXlvdXRTaXplKGJvcmRlci50b3BSaWdodCgpLndp
ZHRoKCkuY2FsY1ZhbHVlKHNpemUud2lkdGgoKSksCisgICAgICAgICAgICAgICAgICAgYm9yZGVy
LnRvcFJpZ2h0KCkuaGVpZ2h0KCkuY2FsY1ZhbHVlKHNpemUuaGVpZ2h0KCkpKSwKKyAgICAgICAg
TGF5b3V0U2l6ZShib3JkZXIuYm90dG9tTGVmdCgpLndpZHRoKCkuY2FsY1ZhbHVlKHNpemUud2lk
dGgoKSksIAorICAgICAgICAgICAgICAgICAgIGJvcmRlci5ib3R0b21MZWZ0KCkuaGVpZ2h0KCku
Y2FsY1ZhbHVlKHNpemUuaGVpZ2h0KCkpKSwKKyAgICAgICAgTGF5b3V0U2l6ZShib3JkZXIuYm90
dG9tUmlnaHQoKS53aWR0aCgpLmNhbGNWYWx1ZShzaXplLndpZHRoKCkpLCAKKyAgICAgICAgICAg
ICAgICAgICBib3JkZXIuYm90dG9tUmlnaHQoKS5oZWlnaHQoKS5jYWxjVmFsdWUoc2l6ZS5oZWln
aHQoKSkpKTsKIH0KIAogc3RhdGljIGZsb2F0IGNhbGNDb25zdHJhaW50U2NhbGVGb3IoY29uc3Qg
SW50UmVjdCYgcmVjdCwgY29uc3QgUm91bmRlZFJlY3Q6OlJhZGlpJiByYWRpaSkKQEAgLTg4Nywx
MSArODg3LDExIEBAIHN0YXRpYyBmbG9hdCBjYWxjQ29uc3RyYWludFNjYWxlRm9yKGNvbnN0IElu
dFJlY3QmIHJlY3QsIGNvbnN0IFJvdW5kZWRSZWN0OjpSYWRpCiAgICAgcmV0dXJuIGZhY3RvcjsK
IH0KIAotUm91bmRlZFJlY3QgUmVuZGVyU3R5bGU6OmdldFJvdW5kZWRCb3JkZXJGb3IoY29uc3Qg
TGF5b3V0UmVjdCYgYm9yZGVyUmVjdCwgSW50U2l6ZSB2aWV3cG9ydFNpemUsIGJvb2wgaW5jbHVk
ZUxvZ2ljYWxMZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSkgY29uc3QKK1Jv
dW5kZWRSZWN0IFJlbmRlclN0eWxlOjpnZXRSb3VuZGVkQm9yZGVyRm9yKGNvbnN0IExheW91dFJl
Y3QmIGJvcmRlclJlY3QsIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgYm9vbCBpbmNsdWRl
TG9naWNhbFJpZ2h0RWRnZSkgY29uc3QKIHsKICAgICBSb3VuZGVkUmVjdCByb3VuZGVkUmVjdChw
aXhlbFNuYXBwZWRJbnRSZWN0KGJvcmRlclJlY3QpKTsKICAgICBpZiAoaGFzQm9yZGVyUmFkaXVz
KCkpIHsKLSAgICAgICAgUm91bmRlZFJlY3Q6OlJhZGlpIHJhZGlpID0gY2FsY1JhZGlpRm9yKHN1
cnJvdW5kLT5ib3JkZXIsIGJvcmRlclJlY3Quc2l6ZSgpLCB2aWV3cG9ydFNpemUpOworICAgICAg
ICBSb3VuZGVkUmVjdDo6UmFkaWkgcmFkaWkgPSBjYWxjUmFkaWlGb3Ioc3Vycm91bmQtPmJvcmRl
ciwgYm9yZGVyUmVjdC5zaXplKCkpOwogICAgICAgICByYWRpaS5zY2FsZShjYWxjQ29uc3RyYWlu
dFNjYWxlRm9yKGJvcmRlclJlY3QsIHJhZGlpKSk7CiAgICAgICAgIHJvdW5kZWRSZWN0LmluY2x1
ZGVMb2dpY2FsRWRnZXMocmFkaWksIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCksIGluY2x1ZGVM
b2dpY2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGYwMjU1NjRhM2M4
M2Q5NTBlMDg3NWY1MmEwZDI2MTM4ZGE4ODM0YjguLjU1MTUxZDNlY2U5N2Y3ZjlkZjFkNDRjN2M5
MDkzMTM5NmI4NjVmYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oCkBAIC02MTcsNyArNjE3LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNMZWZ0VG9S
aWdodERpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIGRpcmVjdGlvbigpID09IExUUjsgfQogCiAg
ICAgTGVuZ3RoIGxpbmVIZWlnaHQoKSBjb25zdCB7IHJldHVybiBpbmhlcml0ZWQtPmxpbmVfaGVp
Z2h0OyB9Ci0gICAgaW50IGNvbXB1dGVkTGluZUhlaWdodChJbnRTaXplIHZpZXdwb3J0U2l6ZSA9
IEludFNpemUoKSkgY29uc3QKKyAgICBpbnQgY29tcHV0ZWRMaW5lSGVpZ2h0KCkgY29uc3QKICAg
ICB7CiAgICAgICAgIGNvbnN0IExlbmd0aCYgbGggPSBpbmhlcml0ZWQtPmxpbmVfaGVpZ2h0Owog
CkBAIC02MjgsOSArNjI4LDYgQEAgcHVibGljOgogICAgICAgICBpZiAobGguaXNQZXJjZW50KCkp
CiAgICAgICAgICAgICByZXR1cm4gbGguY2FsY01pblZhbHVlKGZvbnRTaXplKCkpOwogCi0gICAg
ICAgIGlmIChsaC5pc1ZpZXdwb3J0UmVsYXRpdmUoKSkKLSAgICAgICAgICAgIHJldHVybiBsaC5j
YWxjVmFsdWUoMCwgdmlld3BvcnRTaXplKTsKLQogICAgICAgICByZXR1cm4gbGgudmFsdWUoKTsK
ICAgICB9CiAKQEAgLTEwNjEsNyArMTA1OCw3IEBAIHB1YmxpYzoKICAgICAgICAgc2V0Qm9yZGVy
UmFkaXVzKExlbmd0aFNpemUoTGVuZ3RoKHMud2lkdGgoKSwgRml4ZWQpLCBMZW5ndGgocy5oZWln
aHQoKSwgRml4ZWQpKSk7CiAgICAgfQogICAgIAotICAgIFJvdW5kZWRSZWN0IGdldFJvdW5kZWRC
b3JkZXJGb3IoY29uc3QgTGF5b3V0UmVjdCYgYm9yZGVyUmVjdCwgSW50U2l6ZSB2aWV3cG9ydFNp
emUgPSBJbnRTaXplKCksIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSA9IHRydWUsIGJvb2wg
aW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UgPSB0cnVlKSBjb25zdDsKKyAgICBSb3VuZGVkUmVjdCBn
ZXRSb3VuZGVkQm9yZGVyRm9yKGNvbnN0IExheW91dFJlY3QmIGJvcmRlclJlY3QsIGJvb2wgaW5j
bHVkZUxvZ2ljYWxMZWZ0RWRnZSA9IHRydWUsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2Ug
PSB0cnVlKSBjb25zdDsKICAgICBSb3VuZGVkUmVjdCBnZXRSb3VuZGVkSW5uZXJCb3JkZXJGb3Io
Y29uc3QgTGF5b3V0UmVjdCYgYm9yZGVyUmVjdCwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdl
ID0gdHJ1ZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSA9IHRydWUpIGNvbnN0OwogCiAg
ICAgUm91bmRlZFJlY3QgZ2V0Um91bmRlZElubmVyQm9yZGVyRm9yKGNvbnN0IExheW91dFJlY3Qm
IGJvcmRlclJlY3QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdS
b290LmNwcAppbmRleCA5ZWY5ZWFkOWJiYmMzMmI3MDY0ZjBiODQ5MDBkOWM4YjJjMzFkZGM0Li42
NjQ0ZTYxZmM2Y2ZlNzlhNTE5NDUwMWFiNzlkZDZlNmQ1MmYxMzUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKQEAgLTE1MSw5ICsxNTEsOSBA
QCBib29sIFJlbmRlclNWR1Jvb3Q6OmlzRW1iZWRkZWRUaHJvdWdoRnJhbWVDb250YWluaW5nU1ZH
RG9jdW1lbnQoKSBjb25zdAogICAgIHJldHVybiBmcmFtZS0+ZG9jdW1lbnQoKS0+aXNTVkdEb2N1
bWVudCgpOwogfQogCi1zdGF0aWMgaW5saW5lIExheW91dFVuaXQgcmVzb2x2ZUxlbmd0aEF0dHJp
YnV0ZUZvclNWRyhjb25zdCBMZW5ndGgmIGxlbmd0aCwgZmxvYXQgc2NhbGUsIGZsb2F0IG1heFNp
emUsIGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSkKK3N0YXRpYyBpbmxpbmUgTGF5b3V0VW5p
dCByZXNvbHZlTGVuZ3RoQXR0cmlidXRlRm9yU1ZHKGNvbnN0IExlbmd0aCYgbGVuZ3RoLCBmbG9h
dCBzY2FsZSwgZmxvYXQgbWF4U2l6ZSkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TGF5b3V0
VW5pdD4obGVuZ3RoLmNhbGNWYWx1ZShtYXhTaXplLCB2aWV3cG9ydFNpemUpICogKGxlbmd0aC5p
c0ZpeGVkKCkgPyBzY2FsZSA6IDEpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TGF5b3V0VW5p
dD4obGVuZ3RoLmNhbGNWYWx1ZShtYXhTaXplKSAqIChsZW5ndGguaXNGaXhlZCgpID8gc2NhbGUg
OiAxKSk7CiB9CiAKIExheW91dFVuaXQgUmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZVJlcGxhY2VkTG9n
aWNhbFdpZHRoKGJvb2wgaW5jbHVkZU1heFdpZHRoKSBjb25zdApAQCAtMTY5LDcgKzE2OSw3IEBA
IExheW91dFVuaXQgUmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKGJv
b2wgaW5jbHVkZU1heFdpZHRoKSBjb25zCiAgICAgICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6
Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKGluY2x1ZGVNYXhXaWR0aCk7CiAKICAgICBpZiAo
c3ZnLT53aWR0aEF0dHJpYnV0ZUVzdGFibGlzaGVzVmlld3BvcnQoKSkKLSAgICAgICAgcmV0dXJu
IHJlc29sdmVMZW5ndGhBdHRyaWJ1dGVGb3JTVkcoc3ZnLT5pbnRyaW5zaWNXaWR0aChTVkdTVkdF
bGVtZW50OjpJZ25vcmVDU1NQcm9wZXJ0aWVzKSwgc3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpLCBj
b250YWluaW5nQmxvY2soKS0+YXZhaWxhYmxlTG9naWNhbFdpZHRoKCksIHZpZXdwb3J0U2l6ZSgp
KTsKKyAgICAgICAgcmV0dXJuIHJlc29sdmVMZW5ndGhBdHRyaWJ1dGVGb3JTVkcoc3ZnLT5pbnRy
aW5zaWNXaWR0aChTVkdTVkdFbGVtZW50OjpJZ25vcmVDU1NQcm9wZXJ0aWVzKSwgc3R5bGUoKS0+
ZWZmZWN0aXZlWm9vbSgpLCBjb250YWluaW5nQmxvY2soKS0+YXZhaWxhYmxlTG9naWNhbFdpZHRo
KCkpOwogCiAgICAgLy8gT25seSBTVkdzIGVtYmVkZGVkIGluIDxvYmplY3Q+IHJlYWNoIHRoaXMg
cG9pbnQuCiAgICAgQVNTRVJUKGlzRW1iZWRkZWRUaHJvdWdoRnJhbWVDb250YWluaW5nU1ZHRG9j
dW1lbnQoKSk7CkBAIC0yMDAsNyArMjAwLDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJTVkdSb290Ojpj
b21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KCkgY29uc3QKICAgICAgICAgfSBlbHNlCiAgICAg
ICAgICAgICBSZW5kZXJCbG9jazo6cmVtb3ZlUGVyY2VudEhlaWdodERlc2NlbmRhbnQoY29uc3Rf
Y2FzdDxSZW5kZXJTVkdSb290Kj4odGhpcykpOwogCi0gICAgICAgIHJldHVybiByZXNvbHZlTGVu
Z3RoQXR0cmlidXRlRm9yU1ZHKGhlaWdodCwgc3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpLCBjb250
YWluaW5nQmxvY2soKS0+YXZhaWxhYmxlTG9naWNhbEhlaWdodCgpLCB2aWV3cG9ydFNpemUoKSk7
CisgICAgICAgIHJldHVybiByZXNvbHZlTGVuZ3RoQXR0cmlidXRlRm9yU1ZHKGhlaWdodCwgc3R5
bGUoKS0+ZWZmZWN0aXZlWm9vbSgpLCBjb250YWluaW5nQmxvY2soKS0+YXZhaWxhYmxlTG9naWNh
bEhlaWdodCgpKTsKICAgICB9CiAKICAgICAvLyBPbmx5IFNWR3MgZW1iZWRkZWQgaW4gPG9iamVj
dD4gcmVhY2ggdGhpcyBwb2ludC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlYzQzNjNjNzkxY2M4MzdhNjhmODQ4MTlkNjVi
ZTRiMmI0ZDhkODdiLi40NGZkNzZlNDA1OTU4YTRiNzMzYTRjZjMwZTJjNDY2YWUzN2MyNmM2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTItMDMtMDUgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJl
dmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIx
MDk2NTYuCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEwOTY1Ngor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAzMTYKKwor
ICAgICAgICBUaGlzIHNlZW1zIHRvIGhhdmUgcmVncmVzc2VkIFBhcnNlci9odG1sNS1mdWxsLXJl
bmRlciBieSBhYm91dAorICAgICAgICAxMCUgKFJlcXVlc3RlZCBieSBhbnR0aWsgb24gI3dlYmtp
dCkuCisKKyAgICAgICAgKiBjc3MzL3ZpZXdwb3J0LXJlbGF0aXZlLWxlbmd0aHMvY3NzMy12aWV3
cG9ydC1yZWxhdGl2ZS1sZW5ndGhzLWdldFN0eWxlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBjc3MzL3ZpZXdwb3J0LXJlbGF0aXZlLWxlbmd0aHMvY3NzMy12aWV3cG9ydC1yZWxh
dGl2ZS1sZW5ndGhzLWdldFN0eWxlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogY3NzMy92aWV3
cG9ydC1yZWxhdGl2ZS1sZW5ndGhzL2NzczMtdmlld3BvcnQtcmVsYXRpdmUtbGVuZ3Rocy12aC1h
YnNvbHV0ZS1leHBlY3RlZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNzczMvdmlld3BvcnQt
cmVsYXRpdmUtbGVuZ3Rocy9jc3MzLXZpZXdwb3J0LXJlbGF0aXZlLWxlbmd0aHMtdmgtYWJzb2x1
dGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjc3MzL3ZpZXdwb3J0LXJlbGF0aXZlLWxlbmd0
aHMvY3NzMy12aWV3cG9ydC1yZWxhdGl2ZS1sZW5ndGhzLXZoLWV4cGVjdGVkLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogY3NzMy92aWV3cG9ydC1yZWxhdGl2ZS1sZW5ndGhzL2NzczMtdmlld3Bv
cnQtcmVsYXRpdmUtbGVuZ3Rocy12aC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNzczMvdmll
d3BvcnQtcmVsYXRpdmUtbGVuZ3Rocy9jc3MzLXZpZXdwb3J0LXJlbGF0aXZlLWxlbmd0aHMtdm1p
bi1hYnNvbHV0ZS1leHBlY3RlZC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNzczMvdmlld3Bv
cnQtcmVsYXRpdmUtbGVuZ3Rocy9jc3MzLXZpZXdwb3J0LXJlbGF0aXZlLWxlbmd0aHMtdm1pbi1h
YnNvbHV0ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNzczMvdmlld3BvcnQtcmVsYXRpdmUt
bGVuZ3Rocy9jc3MzLXZpZXdwb3J0LXJlbGF0aXZlLWxlbmd0aHMtdm1pbi1leHBlY3RlZC5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGNzczMvdmlld3BvcnQtcmVsYXRpdmUtbGVuZ3Rocy9jc3Mz
LXZpZXdwb3J0LXJlbGF0aXZlLWxlbmd0aHMtdm1pbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGNzczMvdmlld3BvcnQtcmVsYXRpdmUtbGVuZ3Rocy9jc3MzLXZpZXdwb3J0LXJlbGF0aXZlLWxl
bmd0aHMtdnctYWJzb2x1dGUtZXhwZWN0ZWQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjc3Mz
L3ZpZXdwb3J0LXJlbGF0aXZlLWxlbmd0aHMvY3NzMy12aWV3cG9ydC1yZWxhdGl2ZS1sZW5ndGhz
LXZ3LWFic29sdXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogY3NzMy92aWV3cG9ydC1yZWxh
dGl2ZS1sZW5ndGhzL2NzczMtdmlld3BvcnQtcmVsYXRpdmUtbGVuZ3Rocy12dy1leHBlY3RlZC5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNzczMvdmlld3BvcnQtcmVsYXRpdmUtbGVuZ3Rocy9j
c3MzLXZpZXdwb3J0LXJlbGF0aXZlLWxlbmd0aHMtdncuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBy
b3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL3F0L2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0v
d2luL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQ6CisKIDIw
MTItMDMtMDUgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVXNl
IGEgcHJvcGVyIGNsb3NpbmcgdGFnIGZvciBzaGFkb3cgZWxlbWVudCBsYXlvdXQgdGVzdApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy92aWV3cG9ydC1yZWxhdGl2ZS1sZW5ndGhzL2NzczMt
dmlld3BvcnQtcmVsYXRpdmUtbGVuZ3Rocy1nZXRTdHlsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9jc3MzL3ZpZXdwb3J0LXJlbGF0aXZlLWxlbmd0aHMvY3NzMy12aWV3cG9ydC1yZWxhdGl2
ZS1sZW5ndGhzLWdldFN0eWxlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZjNmYzIzOTNhOGE3OTI1OTZjZGIyMGVhMzYzMGI1ZDNmYWZlYjNmMi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jc3MzL3Zp
ZXdwb3J0LXJlbGF0aXZlLWxlbmd0aHMvY3NzMy12aWV3cG9ydC1yZWxhdGl2ZS1sZW5ndGhzLWdl
dFN0eWxlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDg2ICswLDAgQEAKLVRlc3Qg
Zm9yIEJ1ZzogMjcxNjAgLSBJbXBsZW1lbnQgdncvdmgvdm0gKHZpZXdwb3J0IHNpemVzKSBmcm9t
IENTUyAzIFZhbHVlcyBhbmQgVW5pdHMKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0K
LVRlc3QgZm9yIHZ3Ci1QQVNTIHN0eWxlLmdldFByb3BlcnR5VmFsdWUoImhlaWdodCIpIGlzICcy
NDBweCcKLVBBU1Mgc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgid2lkdGgiKSBpcyAnMjQwcHgnCi1Q
QVNTIHN0eWxlLmdldFByb3BlcnR5VmFsdWUoImZvbnQtc2l6ZSIpIGlzICcyNHB4JwotUEFTUyBz
dHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJsaW5lLWhlaWdodCIpIGlzICczMnB4JwotUEFTUyBzdHls
ZS5nZXRQcm9wZXJ0eVZhbHVlKCJtYXJnaW4tbGVmdCIpIGlzICcxNnB4JwotUEFTUyBzdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKCJtYXJnaW4tcmlnaHQiKSBpcyAnMTZweCcKLVBBU1Mgc3R5bGUuZ2V0
UHJvcGVydHlWYWx1ZSgibWFyZ2luLXRvcCIpIGlzICcxNnB4JwotUEFTUyBzdHlsZS5nZXRQcm9w
ZXJ0eVZhbHVlKCJtYXJnaW4tYm90dG9tIikgaXMgJzE2cHgnCi1QQVNTIHN0eWxlLmdldFByb3Bl
cnR5VmFsdWUoImJvcmRlci10b3AtbGVmdC1yYWRpdXMiKSBpcyAnOHB4JwotUEFTUyBzdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKCJib3JkZXItdG9wLXJpZ2h0LXJhZGl1cyIpIGlzICc4cHgnCi1QQVNT
IHN0eWxlLmdldFByb3BlcnR5VmFsdWUoImJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMiKSBpcyAn
OHB4JwotUEFTUyBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJib3JkZXItYm90dG9tLXJpZ2h0LXJh
ZGl1cyIpIGlzICc4cHgnCi1QQVNTIHN0eWxlLmdldFByb3BlcnR5VmFsdWUoIm1pbi1oZWlnaHQi
KSBpcyAnMTB2dycKLVBBU1Mgc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgibWluLXdpZHRoIikgaXMg
JzEwdncnCi1QQVNTIHN0eWxlLmdldFByb3BlcnR5VmFsdWUoIm1heC1oZWlnaHQiKSBpcyAnNjB2
dycKLVBBU1Mgc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgibWF4LXdpZHRoIikgaXMgJzYwdncnCi1Q
QVNTIHN0eWxlLmdldFByb3BlcnR5VmFsdWUoInRvcCIpIGlzICc4MHB4JwotUEFTUyBzdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKCJib3R0b20iKSBpcyAnODBweCcKLVBBU1Mgc3R5bGUuZ2V0UHJvcGVy
dHlWYWx1ZSgibGVmdCIpIGlzICc4MHB4JwotUEFTUyBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJy
aWdodCIpIGlzICc4MHB4JwotUEFTUyBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJwYWRkaW5nLWxl
ZnQiKSBpcyAnMTZweCcKLVBBU1Mgc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgicGFkZGluZy1yaWdo
dCIpIGlzICcxNnB4JwotUEFTUyBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJwYWRkaW5nLXRvcCIp
IGlzICcxNnB4JwotUEFTUyBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJwYWRkaW5nLWJvdHRvbSIp
IGlzICcxNnB4JwotCi1UZXN0IGZvciB2aAotUEFTUyBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJo
ZWlnaHQiKSBpcyAnMTgwcHgnCi1QQVNTIHN0eWxlLmdldFByb3BlcnR5VmFsdWUoIndpZHRoIikg
aXMgJzE4MHB4JwotUEFTUyBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJmb250LXNpemUiKSBpcyAn
MThweCcKLVBBU1Mgc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgibGluZS1oZWlnaHQiKSBpcyAnMjRw
eCcKLVBBU1Mgc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgibWFyZ2luLWxlZnQiKSBpcyAnMTJweCcK
LVBBU1Mgc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgibWFyZ2luLXJpZ2h0IikgaXMgJzEycHgnCi1Q
QVNTIHN0eWxlLmdldFByb3BlcnR5VmFsdWUoIm1hcmdpbi10b3AiKSBpcyAnMTJweCcKLVBBU1Mg
c3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgibWFyZ2luLWJvdHRvbSIpIGlzICcxMnB4JwotUEFTUyBz
dHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJib3JkZXItdG9wLWxlZnQtcmFkaXVzIikgaXMgJzZweCcK
LVBBU1Mgc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgiYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMiKSBp
cyAnNnB4JwotUEFTUyBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJib3JkZXItYm90dG9tLWxlZnQt
cmFkaXVzIikgaXMgJzZweCcKLVBBU1Mgc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgiYm9yZGVyLWJv
dHRvbS1yaWdodC1yYWRpdXMiKSBpcyAnNnB4JwotUEFTUyBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVl
KCJtaW4taGVpZ2h0IikgaXMgJzEwdmgnCi1QQVNTIHN0eWxlLmdldFByb3BlcnR5VmFsdWUoIm1p
bi13aWR0aCIpIGlzICcxMHZoJwotUEFTUyBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJtYXgtaGVp
Z2h0IikgaXMgJzYwdmgnCi1QQVNTIHN0eWxlLmdldFByb3BlcnR5VmFsdWUoIm1heC13aWR0aCIp
IGlzICc2MHZoJwotUEFTUyBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJ0b3AiKSBpcyAnNjBweCcK
LVBBU1Mgc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgiYm90dG9tIikgaXMgJzYwcHgnCi1QQVNTIHN0
eWxlLmdldFByb3BlcnR5VmFsdWUoImxlZnQiKSBpcyAnNjBweCcKLVBBU1Mgc3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZSgicmlnaHQiKSBpcyAnNjBweCcKLVBBU1Mgc3R5bGUuZ2V0UHJvcGVydHlWYWx1
ZSgicGFkZGluZy1sZWZ0IikgaXMgJzEycHgnCi1QQVNTIHN0eWxlLmdldFByb3BlcnR5VmFsdWUo
InBhZGRpbmctcmlnaHQiKSBpcyAnMTJweCcKLVBBU1Mgc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgi
cGFkZGluZy10b3AiKSBpcyAnMTJweCcKLVBBU1Mgc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgicGFk
ZGluZy1ib3R0b20iKSBpcyAnMTJweCcKLQotVGVzdCBmb3Igdm1pbgotUEFTUyBzdHlsZS5nZXRQ
cm9wZXJ0eVZhbHVlKCJoZWlnaHQiKSBpcyAnMTgwcHgnCi1QQVNTIHN0eWxlLmdldFByb3BlcnR5
VmFsdWUoIndpZHRoIikgaXMgJzE4MHB4JwotUEFTUyBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJm
b250LXNpemUiKSBpcyAnMThweCcKLVBBU1Mgc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgibGluZS1o
ZWlnaHQiKSBpcyAnMjRweCcKLVBBU1Mgc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgibWFyZ2luLWxl
ZnQiKSBpcyAnMTJweCcKLVBBU1Mgc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgibWFyZ2luLXJpZ2h0
IikgaXMgJzEycHgnCi1QQVNTIHN0eWxlLmdldFByb3BlcnR5VmFsdWUoIm1hcmdpbi10b3AiKSBp
cyAnMTJweCcKLVBBU1Mgc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgibWFyZ2luLWJvdHRvbSIpIGlz
ICcxMnB4JwotUEFTUyBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJib3JkZXItdG9wLWxlZnQtcmFk
aXVzIikgaXMgJzZweCcKLVBBU1Mgc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgiYm9yZGVyLXRvcC1y
aWdodC1yYWRpdXMiKSBpcyAnNnB4JwotUEFTUyBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJib3Jk
ZXItYm90dG9tLWxlZnQtcmFkaXVzIikgaXMgJzZweCcKLVBBU1Mgc3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZSgiYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMiKSBpcyAnNnB4JwotUEFTUyBzdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKCJtaW4taGVpZ2h0IikgaXMgJzEwdm1pbicKLVBBU1Mgc3R5bGUuZ2V0
UHJvcGVydHlWYWx1ZSgibWluLXdpZHRoIikgaXMgJzEwdm1pbicKLVBBU1Mgc3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZSgibWF4LWhlaWdodCIpIGlzICc2MHZtaW4nCi1QQVNTIHN0eWxlLmdldFByb3Bl
cnR5VmFsdWUoIm1heC13aWR0aCIpIGlzICc2MHZtaW4nCi1QQVNTIHN0eWxlLmdldFByb3BlcnR5
VmFsdWUoInRvcCIpIGlzICc2MHB4JwotUEFTUyBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJib3R0
b20iKSBpcyAnNjBweCcKLVBBU1Mgc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgibGVmdCIpIGlzICc2
MHB4JwotUEFTUyBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJyaWdodCIpIGlzICc2MHB4JwotUEFT
UyBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJwYWRkaW5nLWxlZnQiKSBpcyAnMTJweCcKLVBBU1Mg
c3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgicGFkZGluZy1yaWdodCIpIGlzICcxMnB4JwotUEFTUyBz
dHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJwYWRkaW5nLXRvcCIpIGlzICcxMnB4JwotUEFTUyBzdHls
ZS5nZXRQcm9wZXJ0eVZhbHVlKCJwYWRkaW5nLWJvdHRvbSIpIGlzICcxMnB4JwotUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NzczMvdmlld3BvcnQtcmVsYXRpdmUtbGVuZ3Rocy9jc3MzLXZpZXdwb3J0LXJl
bGF0aXZlLWxlbmd0aHMtZ2V0U3R5bGUuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvdmlld3BvcnQt
cmVsYXRpdmUtbGVuZ3Rocy9jc3MzLXZpZXdwb3J0LXJlbGF0aXZlLWxlbmd0aHMtZ2V0U3R5bGUu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGY1YTJiODg5ZDAxNzAzMjA0NTc1
MTE5ZGVjYWU1Njg2ZWUzZDNlNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jc3MzL3ZpZXdwb3J0LXJlbGF0aXZlLWxlbmd0aHMvY3Nz
My12aWV3cG9ydC1yZWxhdGl2ZS1sZW5ndGhzLWdldFN0eWxlLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwyMDkgKzAsMCBAQAotPCFET0NUWVBFPgotPGh0bWw+Ci08c3R5bGU+Ci0gI2VsZW1lbnQt
Y29udGFpbmVyLXZ3IHsKLSAgIGJhY2tncm91bmQ6Z3JlZW47Ci0gICBoZWlnaHQ6MzB2dzsKLSAg
IHdpZHRoOjMwdnc7Ci0gICBmb250LXNpemU6M3Z3OwotICAgbGluZS1oZWlnaHQ6NHZ3OwotICAg
bWFyZ2luLWxlZnQ6MnZ3OwotICAgbWFyZ2luLXJpZ2h0OjJ2dzsKLSAgIG1hcmdpbi10b3A6MnZ3
OwotICAgbWFyZ2luLWJvdHRvbToydnc7Ci0gICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOjF2dzsK
LSAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjF2dzsKLSAgIGJvcmRlci1ib3R0b20tbGVmdC1y
YWRpdXM6MXZ3OwotICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MXZ3OwotICAgbWluLWhl
aWdodDoxMHZ3OwotICAgbWluLXdpZHRoOjEwdnc7Ci0gICBtYXgtaGVpZ2h0OjYwdnc7Ci0gICBt
YXgtd2lkdGg6NjB2dzsKLSB9Ci0KLSAjZWxlbWVudC1jb250YWluZXItYWJzb2x1dGUtdncgewot
ICAgYmFja2dyb3VuZDpncmVlbjsKLSAgIHBvc2l0aW9uOmFic29sdXRlOwotICAgdG9wOjEwdnc7
Ci0gICBib3R0b206MTB2dzsKLSAgIGxlZnQ6MTB2dzsKLSAgIHJpZ2h0OjEwdnc7Ci0gICBwYWRk
aW5nLWxlZnQ6MnZ3OwotICAgcGFkZGluZy1yaWdodDoydnc7Ci0gICBwYWRkaW5nLXRvcDoydnc7
Ci0gICBwYWRkaW5nLWJvdHRvbToydnc7Ci0gfQotCi0gI2VsZW1lbnQtY29udGFpbmVyLXZoIHsK
LSAgIGJhY2tncm91bmQ6Z3JlZW47Ci0gICBoZWlnaHQ6MzB2aDsKLSAgIHdpZHRoOjMwdmg7Ci0g
ICBmb250LXNpemU6M3ZoOwotICAgbGluZS1oZWlnaHQ6NHZoOwotICAgbWFyZ2luLWxlZnQ6MnZo
OwotICAgbWFyZ2luLXJpZ2h0OjJ2aDsKLSAgIG1hcmdpbi10b3A6MnZoOwotICAgbWFyZ2luLWJv
dHRvbToydmg7Ci0gICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOjF2aDsKLSAgIGJvcmRlci10b3At
cmlnaHQtcmFkaXVzOjF2aDsKLSAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MXZoOwotICAg
Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MXZoOwotICAgbWluLWhlaWdodDoxMHZoOwotICAg
bWluLXdpZHRoOjEwdmg7Ci0gICBtYXgtaGVpZ2h0OjYwdmg7Ci0gICBtYXgtd2lkdGg6NjB2aDsK
LSB9Ci0KLSAjZWxlbWVudC1jb250YWluZXItYWJzb2x1dGUtdmggewotICAgYmFja2dyb3VuZDpn
cmVlbjsKLSAgIHBvc2l0aW9uOmFic29sdXRlOwotICAgdG9wOjEwdmg7Ci0gICBib3R0b206MTB2
aDsKLSAgIGxlZnQ6MTB2aDsKLSAgIHJpZ2h0OjEwdmg7Ci0gICBwYWRkaW5nLWxlZnQ6MnZoOwot
ICAgcGFkZGluZy1yaWdodDoydmg7Ci0gICBwYWRkaW5nLXRvcDoydmg7Ci0gICBwYWRkaW5nLWJv
dHRvbToydmg7Ci0gfQotCi0gI2VsZW1lbnQtY29udGFpbmVyLXZtaW4gewotICAgYmFja2dyb3Vu
ZDpncmVlbjsKLSAgIGhlaWdodDozMHZtaW47Ci0gICB3aWR0aDozMHZtaW47Ci0gICBmb250LXNp
emU6M3ZtaW47Ci0gICBsaW5lLWhlaWdodDo0dm1pbjsKLSAgIG1hcmdpbi1sZWZ0OjJ2bWluOwot
ICAgbWFyZ2luLXJpZ2h0OjJ2bWluOwotICAgbWFyZ2luLXRvcDoydm1pbjsKLSAgIG1hcmdpbi1i
b3R0b206MnZtaW47Ci0gICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOjF2bWluOwotICAgYm9yZGVy
LXRvcC1yaWdodC1yYWRpdXM6MXZtaW47Ci0gICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjF2
bWluOwotICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MXZtaW47Ci0gICBtaW4taGVpZ2h0
OjEwdm1pbjsKLSAgIG1pbi13aWR0aDoxMHZtaW47Ci0gICBtYXgtaGVpZ2h0OjYwdm1pbjsKLSAg
IG1heC13aWR0aDo2MHZtaW47Ci0gfQotCi0gI2VsZW1lbnQtY29udGFpbmVyLWFic29sdXRlLXZt
aW4gewotICAgYmFja2dyb3VuZDpncmVlbjsKLSAgIHBvc2l0aW9uOmFic29sdXRlOwotICAgdG9w
OjEwdm1pbjsKLSAgIGJvdHRvbToxMHZtaW47Ci0gICBsZWZ0OjEwdm1pbjsKLSAgIHJpZ2h0OjEw
dm1pbjsKLSAgIHBhZGRpbmctbGVmdDoydm1pbjsKLSAgIHBhZGRpbmctcmlnaHQ6MnZtaW47Ci0g
ICBwYWRkaW5nLXRvcDoydm1pbjsKLSAgIHBhZGRpbmctYm90dG9tOjJ2bWluOwotIH0KLSAKLTwv
c3R5bGU+Ci08ZGl2IGlkPSJlbGVtZW50LWNvbnRhaW5lci12dyI+PC9kaXY+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotCi1kZXNjcmlwdGlvbigiVGVzdCBmb3IgQnVnOiAyNzE2
MCAtIEltcGxlbWVudCB2dy92aC92bSAodmlld3BvcnQgc2l6ZXMpIGZyb20gQ1NTIDMgVmFsdWVz
IGFuZCBVbml0cyIpOwotCi0vLyBUaGVzZSBoYXZlIHRvIGJlIGdsb2JhbCBmb3IgdGhlIHRlc3Qg
aGVscGVycyB0byBzZWUgdGhlbS4KLXZhciBlbGVtZW50LCBzdHlsZTsKLQotZnVuY3Rpb24gZ2V0
VGhlU3R5bGUoKSB7Ci0gICAgZGVidWcoIlRlc3QgZm9yIHZ3IikKLSAgICBlbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVsZW1lbnQtY29udGFpbmVyLXZ3Iik7Ci0gICAgc3R5bGUg
PSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LG51bGwpOwotICAgIHZhciB2aWV3cG9y
dFdpZHRoID0gd2luZG93LmlubmVyV2lkdGg7Ci0gICAgc2hvdWxkQmUoJ3N0eWxlLmdldFByb3Bl
cnR5VmFsdWUoImhlaWdodCIpJywgIiciICsgTWF0aC5mbG9vcigzMCAqIHZpZXdwb3J0V2lkdGgg
LyAxMDApICsgInB4JyIpOwotICAgIHNob3VsZEJlKCdzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJ3
aWR0aCIpJywgIiciICsgTWF0aC5mbG9vcigzMCAqIHZpZXdwb3J0V2lkdGggLyAxMDApICsgInB4
JyIpOwotICAgIHNob3VsZEJlKCdzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJmb250LXNpemUiKScs
ICInIiArIE1hdGguZmxvb3IoMyAqIHZpZXdwb3J0V2lkdGggLyAxMDApICsgInB4JyIpOwotICAg
IHNob3VsZEJlKCdzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJsaW5lLWhlaWdodCIpJywgIiciICsg
TWF0aC5mbG9vcig0ICogdmlld3BvcnRXaWR0aCAvIDEwMCkgKyAicHgnIik7Ci0gICAgc2hvdWxk
QmUoJ3N0eWxlLmdldFByb3BlcnR5VmFsdWUoIm1hcmdpbi1sZWZ0IiknLCAiJyIgKyBNYXRoLmZs
b29yKDIgKiB2aWV3cG9ydFdpZHRoIC8gMTAwKSArICJweCciKTsKLSAgICBzaG91bGRCZSgnc3R5
bGUuZ2V0UHJvcGVydHlWYWx1ZSgibWFyZ2luLXJpZ2h0IiknLCAiJyIgKyBNYXRoLmZsb29yKDIg
KiB2aWV3cG9ydFdpZHRoIC8gMTAwKSArICJweCciKTsKLSAgICBzaG91bGRCZSgnc3R5bGUuZ2V0
UHJvcGVydHlWYWx1ZSgibWFyZ2luLXRvcCIpJywgIiciICsgTWF0aC5mbG9vcigyICogdmlld3Bv
cnRXaWR0aCAvIDEwMCkgKyAicHgnIik7Ci0gICAgc2hvdWxkQmUoJ3N0eWxlLmdldFByb3BlcnR5
VmFsdWUoIm1hcmdpbi1ib3R0b20iKScsICInIiArIE1hdGguZmxvb3IoMiAqIHZpZXdwb3J0V2lk
dGggLyAxMDApICsgInB4JyIpOwotICAgIHNob3VsZEJlKCdzdHlsZS5nZXRQcm9wZXJ0eVZhbHVl
KCJib3JkZXItdG9wLWxlZnQtcmFkaXVzIiknLCAiJyIgKyBNYXRoLmZsb29yKDEgKiB2aWV3cG9y
dFdpZHRoIC8gMTAwKSArICJweCciKTsKLSAgICBzaG91bGRCZSgnc3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZSgiYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMiKScsICInIiArIE1hdGguZmxvb3IoMSAqIHZp
ZXdwb3J0V2lkdGggLyAxMDApICsgInB4JyIpOwotICAgIHNob3VsZEJlKCdzdHlsZS5nZXRQcm9w
ZXJ0eVZhbHVlKCJib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzIiknLCAiJyIgKyBNYXRoLmZsb29y
KDEgKiB2aWV3cG9ydFdpZHRoIC8gMTAwKSArICJweCciKTsKLSAgICBzaG91bGRCZSgnc3R5bGUu
Z2V0UHJvcGVydHlWYWx1ZSgiYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMiKScsICInIiArIE1h
dGguZmxvb3IoMSAqIHZpZXdwb3J0V2lkdGggLyAxMDApICsgInB4JyIpOwotICAgIHNob3VsZEJl
KCdzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJtaW4taGVpZ2h0IiknLCAiJzEwdncnIik7Ci0gICAg
c2hvdWxkQmUoJ3N0eWxlLmdldFByb3BlcnR5VmFsdWUoIm1pbi13aWR0aCIpJywgIicxMHZ3JyIp
OwotICAgIHNob3VsZEJlKCdzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJtYXgtaGVpZ2h0IiknLCAi
JzYwdncnIik7Ci0gICAgc2hvdWxkQmUoJ3N0eWxlLmdldFByb3BlcnR5VmFsdWUoIm1heC13aWR0
aCIpJywgIic2MHZ3JyIpOwotICAgIGVsZW1lbnQuaWQgPSAiZWxlbWVudC1jb250YWluZXItYWJz
b2x1dGUtdnciOwotICAgIHNob3VsZEJlKCdzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJ0b3AiKScs
ICInIiArIE1hdGguZmxvb3IoMTAgKiB2aWV3cG9ydFdpZHRoIC8gMTAwKSArICJweCciKTsKLSAg
ICBzaG91bGRCZSgnc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgiYm90dG9tIiknLCAiJyIgKyBNYXRo
LmZsb29yKDEwICogdmlld3BvcnRXaWR0aCAvIDEwMCkgKyAicHgnIik7Ci0gICAgc2hvdWxkQmUo
J3N0eWxlLmdldFByb3BlcnR5VmFsdWUoImxlZnQiKScsICInIiArIE1hdGguZmxvb3IoMTAgKiB2
aWV3cG9ydFdpZHRoIC8gMTAwKSArICJweCciKTsKLSAgICBzaG91bGRCZSgnc3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZSgicmlnaHQiKScsICInIiArIE1hdGguZmxvb3IoMTAgKiB2aWV3cG9ydFdpZHRo
IC8gMTAwKSArICJweCciKTsKLSAgICBzaG91bGRCZSgnc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgi
cGFkZGluZy1sZWZ0IiknLCAiJyIgKyBNYXRoLmZsb29yKDIgKiB2aWV3cG9ydFdpZHRoIC8gMTAw
KSArICJweCciKTsKLSAgICBzaG91bGRCZSgnc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgicGFkZGlu
Zy1yaWdodCIpJywgIiciICsgTWF0aC5mbG9vcigyICogdmlld3BvcnRXaWR0aCAvIDEwMCkgKyAi
cHgnIik7Ci0gICAgc2hvdWxkQmUoJ3N0eWxlLmdldFByb3BlcnR5VmFsdWUoInBhZGRpbmctdG9w
IiknLCAiJyIgKyBNYXRoLmZsb29yKDIgKiB2aWV3cG9ydFdpZHRoIC8gMTAwKSArICJweCciKTsK
LSAgICBzaG91bGRCZSgnc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgicGFkZGluZy1ib3R0b20iKScs
ICInIiArIE1hdGguZmxvb3IoMiAqIHZpZXdwb3J0V2lkdGggLyAxMDApICsgInB4JyIpOwotCi0g
ICAgZGVidWcoIlxuVGVzdCBmb3IgdmgiKQotICAgIGVsZW1lbnQuaWQgPSAiZWxlbWVudC1jb250
YWluZXItdmgiOwotICAgIHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCxu
dWxsKTsKLSAgICB2YXIgdmlld3BvcnRIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7Ci0gICAg
c2hvdWxkQmUoJ3N0eWxlLmdldFByb3BlcnR5VmFsdWUoImhlaWdodCIpJywgIiciICsgTWF0aC5m
bG9vcigzMCAqIHZpZXdwb3J0SGVpZ2h0IC8gMTAwKSArICJweCciKTsKLSAgICBzaG91bGRCZSgn
c3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgid2lkdGgiKScsICInIiArIE1hdGguZmxvb3IoMzAgKiB2
aWV3cG9ydEhlaWdodCAvIDEwMCkgKyAicHgnIik7Ci0gICAgc2hvdWxkQmUoJ3N0eWxlLmdldFBy
b3BlcnR5VmFsdWUoImZvbnQtc2l6ZSIpJywgIiciICsgTWF0aC5mbG9vcigzICogdmlld3BvcnRI
ZWlnaHQgLyAxMDApICsgInB4JyIpOwotICAgIHNob3VsZEJlKCdzdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKCJsaW5lLWhlaWdodCIpJywgIiciICsgTWF0aC5mbG9vcig0ICogdmlld3BvcnRIZWlnaHQg
LyAxMDApICsgInB4JyIpOwotICAgIHNob3VsZEJlKCdzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJt
YXJnaW4tbGVmdCIpJywgIiciICsgTWF0aC5mbG9vcigyICogdmlld3BvcnRIZWlnaHQgLyAxMDAp
ICsgInB4JyIpOwotICAgIHNob3VsZEJlKCdzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJtYXJnaW4t
cmlnaHQiKScsICInIiArIE1hdGguZmxvb3IoMiAqIHZpZXdwb3J0SGVpZ2h0IC8gMTAwKSArICJw
eCciKTsKLSAgICBzaG91bGRCZSgnc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgibWFyZ2luLXRvcCIp
JywgIiciICsgTWF0aC5mbG9vcigyICogdmlld3BvcnRIZWlnaHQgLyAxMDApICsgInB4JyIpOwot
ICAgIHNob3VsZEJlKCdzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJtYXJnaW4tYm90dG9tIiknLCAi
JyIgKyBNYXRoLmZsb29yKDIgKiB2aWV3cG9ydEhlaWdodCAvIDEwMCkgKyAicHgnIik7Ci0gICAg
c2hvdWxkQmUoJ3N0eWxlLmdldFByb3BlcnR5VmFsdWUoImJvcmRlci10b3AtbGVmdC1yYWRpdXMi
KScsICInIiArIE1hdGguZmxvb3IoMSAqIHZpZXdwb3J0SGVpZ2h0IC8gMTAwKSArICJweCciKTsK
LSAgICBzaG91bGRCZSgnc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgiYm9yZGVyLXRvcC1yaWdodC1y
YWRpdXMiKScsICInIiArIE1hdGguZmxvb3IoMSAqIHZpZXdwb3J0SGVpZ2h0IC8gMTAwKSArICJw
eCciKTsKLSAgICBzaG91bGRCZSgnc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgiYm9yZGVyLWJvdHRv
bS1sZWZ0LXJhZGl1cyIpJywgIiciICsgTWF0aC5mbG9vcigxICogdmlld3BvcnRIZWlnaHQgLyAx
MDApICsgInB4JyIpOwotICAgIHNob3VsZEJlKCdzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJib3Jk
ZXItYm90dG9tLXJpZ2h0LXJhZGl1cyIpJywgIiciICsgTWF0aC5mbG9vcigxICogdmlld3BvcnRI
ZWlnaHQgLyAxMDApICsgInB4JyIpOwotICAgIHNob3VsZEJlKCdzdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKCJtaW4taGVpZ2h0IiknLCAiJzEwdmgnIik7Ci0gICAgc2hvdWxkQmUoJ3N0eWxlLmdldFBy
b3BlcnR5VmFsdWUoIm1pbi13aWR0aCIpJywgIicxMHZoJyIpOwotICAgIHNob3VsZEJlKCdzdHls
ZS5nZXRQcm9wZXJ0eVZhbHVlKCJtYXgtaGVpZ2h0IiknLCAiJzYwdmgnIik7Ci0gICAgc2hvdWxk
QmUoJ3N0eWxlLmdldFByb3BlcnR5VmFsdWUoIm1heC13aWR0aCIpJywgIic2MHZoJyIpOwotICAg
IGVsZW1lbnQuaWQgPSAiZWxlbWVudC1jb250YWluZXItYWJzb2x1dGUtdmgiOwotICAgIHNob3Vs
ZEJlKCdzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJ0b3AiKScsICInIiArIE1hdGguZmxvb3IoMTAg
KiB2aWV3cG9ydEhlaWdodCAvIDEwMCkgKyAicHgnIik7Ci0gICAgc2hvdWxkQmUoJ3N0eWxlLmdl
dFByb3BlcnR5VmFsdWUoImJvdHRvbSIpJywgIiciICsgTWF0aC5mbG9vcigxMCAqIHZpZXdwb3J0
SGVpZ2h0IC8gMTAwKSArICJweCciKTsKLSAgICBzaG91bGRCZSgnc3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZSgibGVmdCIpJywgIiciICsgTWF0aC5mbG9vcigxMCAqIHZpZXdwb3J0SGVpZ2h0IC8gMTAw
KSArICJweCciKTsKLSAgICBzaG91bGRCZSgnc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgicmlnaHQi
KScsICInIiArIE1hdGguZmxvb3IoMTAgKiB2aWV3cG9ydEhlaWdodCAvIDEwMCkgKyAicHgnIik7
Ci0gICAgc2hvdWxkQmUoJ3N0eWxlLmdldFByb3BlcnR5VmFsdWUoInBhZGRpbmctbGVmdCIpJywg
IiciICsgTWF0aC5mbG9vcigyICogdmlld3BvcnRIZWlnaHQgLyAxMDApICsgInB4JyIpOwotICAg
IHNob3VsZEJlKCdzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJwYWRkaW5nLXJpZ2h0IiknLCAiJyIg
KyBNYXRoLmZsb29yKDIgKiB2aWV3cG9ydEhlaWdodCAvIDEwMCkgKyAicHgnIik7Ci0gICAgc2hv
dWxkQmUoJ3N0eWxlLmdldFByb3BlcnR5VmFsdWUoInBhZGRpbmctdG9wIiknLCAiJyIgKyBNYXRo
LmZsb29yKDIgKiB2aWV3cG9ydEhlaWdodCAvIDEwMCkgKyAicHgnIik7Ci0gICAgc2hvdWxkQmUo
J3N0eWxlLmdldFByb3BlcnR5VmFsdWUoInBhZGRpbmctYm90dG9tIiknLCAiJyIgKyBNYXRoLmZs
b29yKDIgKiB2aWV3cG9ydEhlaWdodCAvIDEwMCkgKyAicHgnIik7Ci0KLSAgICBkZWJ1ZygiXG5U
ZXN0IGZvciB2bWluIikKLSAgICBlbGVtZW50LmlkID0gImVsZW1lbnQtY29udGFpbmVyLXZtaW4i
OwotICAgIHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCxudWxsKTsKLSAg
ICB2YXIgdmlld3BvcnRNaW5MZW5ndGggPSBNYXRoLm1pbih3aW5kb3cuaW5uZXJXaWR0aCwgd2lu
ZG93LmlubmVySGVpZ2h0KTsKLSAgICBzaG91bGRCZSgnc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgi
aGVpZ2h0IiknLCAiJyIgKyBNYXRoLmZsb29yKDMwICogdmlld3BvcnRNaW5MZW5ndGggLyAxMDAp
ICsgInB4JyIpOwotICAgIHNob3VsZEJlKCdzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJ3aWR0aCIp
JywgIiciICsgTWF0aC5mbG9vcigzMCAqIHZpZXdwb3J0TWluTGVuZ3RoIC8gMTAwKSArICJweCci
KTsKLSAgICBzaG91bGRCZSgnc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgiZm9udC1zaXplIiknLCAi
JyIgKyBNYXRoLmZsb29yKDMgKiB2aWV3cG9ydE1pbkxlbmd0aCAvIDEwMCkgKyAicHgnIik7Ci0g
ICAgc2hvdWxkQmUoJ3N0eWxlLmdldFByb3BlcnR5VmFsdWUoImxpbmUtaGVpZ2h0IiknLCAiJyIg
KyBNYXRoLmZsb29yKDQgKiB2aWV3cG9ydE1pbkxlbmd0aCAvIDEwMCkgKyAicHgnIik7Ci0gICAg
c2hvdWxkQmUoJ3N0eWxlLmdldFByb3BlcnR5VmFsdWUoIm1hcmdpbi1sZWZ0IiknLCAiJyIgKyBN
YXRoLmZsb29yKDIgKiB2aWV3cG9ydE1pbkxlbmd0aCAvIDEwMCkgKyAicHgnIik7Ci0gICAgc2hv
dWxkQmUoJ3N0eWxlLmdldFByb3BlcnR5VmFsdWUoIm1hcmdpbi1yaWdodCIpJywgIiciICsgTWF0
aC5mbG9vcigyICogdmlld3BvcnRNaW5MZW5ndGggLyAxMDApICsgInB4JyIpOwotICAgIHNob3Vs
ZEJlKCdzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJtYXJnaW4tdG9wIiknLCAiJyIgKyBNYXRoLmZs
b29yKDIgKiB2aWV3cG9ydE1pbkxlbmd0aCAvIDEwMCkgKyAicHgnIik7Ci0gICAgc2hvdWxkQmUo
J3N0eWxlLmdldFByb3BlcnR5VmFsdWUoIm1hcmdpbi1ib3R0b20iKScsICInIiArIE1hdGguZmxv
b3IoMiAqIHZpZXdwb3J0TWluTGVuZ3RoIC8gMTAwKSArICJweCciKTsKLSAgICBzaG91bGRCZSgn
c3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgiYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cyIpJywgIiciICsg
TWF0aC5mbG9vcigxICogdmlld3BvcnRNaW5MZW5ndGggLyAxMDApICsgInB4JyIpOwotICAgIHNo
b3VsZEJlKCdzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJib3JkZXItdG9wLXJpZ2h0LXJhZGl1cyIp
JywgIiciICsgTWF0aC5mbG9vcigxICogdmlld3BvcnRNaW5MZW5ndGggLyAxMDApICsgInB4JyIp
OwotICAgIHNob3VsZEJlKCdzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJib3JkZXItYm90dG9tLWxl
ZnQtcmFkaXVzIiknLCAiJyIgKyBNYXRoLmZsb29yKDEgKiB2aWV3cG9ydE1pbkxlbmd0aCAvIDEw
MCkgKyAicHgnIik7Ci0gICAgc2hvdWxkQmUoJ3N0eWxlLmdldFByb3BlcnR5VmFsdWUoImJvcmRl
ci1ib3R0b20tcmlnaHQtcmFkaXVzIiknLCAiJyIgKyBNYXRoLmZsb29yKDEgKiB2aWV3cG9ydE1p
bkxlbmd0aCAvIDEwMCkgKyAicHgnIik7Ci0gICAgc2hvdWxkQmUoJ3N0eWxlLmdldFByb3BlcnR5
VmFsdWUoIm1pbi1oZWlnaHQiKScsICInMTB2bWluJyIpOwotICAgIHNob3VsZEJlKCdzdHlsZS5n
ZXRQcm9wZXJ0eVZhbHVlKCJtaW4td2lkdGgiKScsICInMTB2bWluJyIpOwotICAgIHNob3VsZEJl
KCdzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJtYXgtaGVpZ2h0IiknLCAiJzYwdm1pbiciKTsKLSAg
ICBzaG91bGRCZSgnc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgibWF4LXdpZHRoIiknLCAiJzYwdm1p
biciKTsKLSAgICBlbGVtZW50LmlkID0gImVsZW1lbnQtY29udGFpbmVyLWFic29sdXRlLXZtaW4i
OwotICAgIHNob3VsZEJlKCdzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCJ0b3AiKScsICInIiArIE1h
dGguZmxvb3IoMTAgKiB2aWV3cG9ydE1pbkxlbmd0aCAvIDEwMCkgKyAicHgnIik7Ci0gICAgc2hv
dWxkQmUoJ3N0eWxlLmdldFByb3BlcnR5VmFsdWUoImJvdHRvbSIpJywgIiciICsgTWF0aC5mbG9v
cigxMCAqIHZpZXdwb3J0TWluTGVuZ3RoIC8gMTAwKSArICJweCciKTsKLSAgICBzaG91bGRCZSgn
c3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgibGVmdCIpJywgIiciICsgTWF0aC5mbG9vcigxMCAqIHZp
ZXdwb3J0TWluTGVuZ3RoIC8gMTAwKSArICJweCciKTsKLSAgICBzaG91bGRCZSgnc3R5bGUuZ2V0
UHJvcGVydHlWYWx1ZSgicmlnaHQiKScsICInIiArIE1hdGguZmxvb3IoMTAgKiB2aWV3cG9ydE1p
bkxlbmd0aCAvIDEwMCkgKyAicHgnIik7Ci0gICAgc2hvdWxkQmUoJ3N0eWxlLmdldFByb3BlcnR5
VmFsdWUoInBhZGRpbmctbGVmdCIpJywgIiciICsgTWF0aC5mbG9vcigyICogdmlld3BvcnRNaW5M
ZW5ndGggLyAxMDApICsgInB4JyIpOwotICAgIHNob3VsZEJlKCdzdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKCJwYWRkaW5nLXJpZ2h0IiknLCAiJyIgKyBNYXRoLmZsb29yKDIgKiB2aWV3cG9ydE1pbkxl
bmd0aCAvIDEwMCkgKyAicHgnIik7Ci0gICAgc2hvdWxkQmUoJ3N0eWxlLmdldFByb3BlcnR5VmFs
dWUoInBhZGRpbmctdG9wIiknLCAiJyIgKyBNYXRoLmZsb29yKDIgKiB2aWV3cG9ydE1pbkxlbmd0
aCAvIDEwMCkgKyAicHgnIik7Ci0gICAgc2hvdWxkQmUoJ3N0eWxlLmdldFByb3BlcnR5VmFsdWUo
InBhZGRpbmctYm90dG9tIiknLCAiJyIgKyBNYXRoLmZsb29yKDIgKiB2aWV3cG9ydE1pbkxlbmd0
aCAvIDEwMCkgKyAicHgnIik7Ci19Ci1nZXRUaGVTdHlsZSgpOwotPC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvdmlld3BvcnQtcmVsYXRpdmUt
bGVuZ3Rocy9jc3MzLXZpZXdwb3J0LXJlbGF0aXZlLWxlbmd0aHMtdmgtYWJzb2x1dGUtZXhwZWN0
ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvdmlld3BvcnQtcmVsYXRpdmUtbGVuZ3Rocy9jc3Mz
LXZpZXdwb3J0LXJlbGF0aXZlLWxlbmd0aHMtdmgtYWJzb2x1dGUtZXhwZWN0ZWQuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTFlMTE4NTBkMDMyM2MzMzk5MjQzMjU0YjlkMWE2
ZGRjMmY0YWY1Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9jc3MzL3ZpZXdwb3J0LXJlbGF0aXZlLWxlbmd0aHMvY3NzMy12aWV3cG9y
dC1yZWxhdGl2ZS1sZW5ndGhzLXZoLWFic29sdXRlLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwyMSArMCwwIEBACi08IURPQ1RZUEU+Ci08aHRtbD4KLTxzdHlsZT4KLSAjZWxlbWVu
dC1jb250YWluZXItYWJzb2x1dGUtdmggewotICAgYmFja2dyb3VuZDpncmVlbjsKLSAgIHBvc2l0
aW9uOmFic29sdXRlOwotIH0KLTwvc3R5bGU+Ci08ZGl2IGlkPSJlbGVtZW50LWNvbnRhaW5lci1h
YnNvbHV0ZS12aCI+PC9kaXY+Ci08c2NyaXB0PgotZnVuY3Rpb24gY2FsY3VsYXRlVGhlU3R5bGUo
KSB7Ci0gICAgdmFyIHZpZXdwb3J0SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0OwotICAgIHZh
ciBlbGVtZW50U3R5bGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWxlbWVudC1jb250YWlu
ZXItYWJzb2x1dGUtdmgiKS5zdHlsZTsKLSAgICBlbGVtZW50U3R5bGUudG9wID0gTWF0aC5mbG9v
cigxMCAqIHZpZXdwb3J0SGVpZ2h0IC8gMTAwKSArICJweCI7Ci0gICAgZWxlbWVudFN0eWxlLmJv
dHRvbSA9IE1hdGguZmxvb3IoMTAgKiB2aWV3cG9ydEhlaWdodCAvIDEwMCkgKyAicHgiOwotICAg
IGVsZW1lbnRTdHlsZS5sZWZ0ID0gTWF0aC5mbG9vcigxMCAqIHZpZXdwb3J0SGVpZ2h0IC8gMTAw
KSArICJweCI7Ci0gICAgZWxlbWVudFN0eWxlLnJpZ2h0ID0gTWF0aC5mbG9vcigxMCAqIHZpZXdw
b3J0SGVpZ2h0IC8gMTAwKSArICJweCI7Ci19Ci1jYWxjdWxhdGVUaGVTdHlsZSgpOwotPC9zY3Jp
cHQ+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL3ZpZXdwb3J0LXJlbGF0
aXZlLWxlbmd0aHMvY3NzMy12aWV3cG9ydC1yZWxhdGl2ZS1sZW5ndGhzLXZoLWFic29sdXRlLmh0
bWwgYi9MYXlvdXRUZXN0cy9jc3MzL3ZpZXdwb3J0LXJlbGF0aXZlLWxlbmd0aHMvY3NzMy12aWV3
cG9ydC1yZWxhdGl2ZS1sZW5ndGhzLXZoLWFic29sdXRlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDBhMDY1MTRjZWQ1YjFlMzhlNTVjMGNjMmJjZDE1ZjU1MDBmNmU0ODcuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
Y3NzMy92aWV3cG9ydC1yZWxhdGl2ZS1sZW5ndGhzL2NzczMtdmlld3BvcnQtcmVsYXRpdmUtbGVu
Z3Rocy12aC1hYnNvbHV0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotPCFE
T0NUWVBFPgotPGh0bWw+Ci08c3R5bGU+Ci0gI2VsZW1lbnQtY29udGFpbmVyLWFic29sdXRlLXZo
IHsKLSAgIGJhY2tncm91bmQ6Z3JlZW47Ci0gICBwb3NpdGlvbjphYnNvbHV0ZTsKLSAgIHRvcDox
MHZoOwotICAgYm90dG9tOjEwdmg7Ci0gICBsZWZ0OjEwdmg7Ci0gICByaWdodDoxMHZoOwotIH0K
LTwvc3R5bGU+Ci08ZGl2IGlkPSJlbGVtZW50LWNvbnRhaW5lci1hYnNvbHV0ZS12aCI+PC9kaXY+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL3ZpZXdwb3J0LXJlbGF0aXZl
LWxlbmd0aHMvY3NzMy12aWV3cG9ydC1yZWxhdGl2ZS1sZW5ndGhzLXZoLWV4cGVjdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9jc3MzL3ZpZXdwb3J0LXJlbGF0aXZlLWxlbmd0aHMvY3NzMy12aWV3cG9y
dC1yZWxhdGl2ZS1sZW5ndGhzLXZoLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDU1OGRlODNkOWM5ZTBlZDllMzY1NzExMzU4YzkxOWY1OTVkNThkOGEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3Nz
My92aWV3cG9ydC1yZWxhdGl2ZS1sZW5ndGhzL2NzczMtdmlld3BvcnQtcmVsYXRpdmUtbGVuZ3Ro
cy12aC1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPCFET0NU
WVBFPgotPGh0bWw+Ci08c3R5bGU+Ci0gI2VsZW1lbnQtY29udGFpbmVyLXZoIHsKLSAgIGJhY2tn
cm91bmQ6Z3JlZW47Ci0gfQotPC9zdHlsZT4KLTxkaXYgaWQ9ImVsZW1lbnQtY29udGFpbmVyLXZo
Ij48L2Rpdj4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBjYWxjdWxhdGVUaGVTdHlsZSgpIHsKLSAgICB2
YXIgdmlld3BvcnRIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7Ci0gICAgdmFyIGVsZW1lbnRT
dHlsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbGVtZW50LWNvbnRhaW5lci12aCIpLnN0
eWxlOwotICAgIGVsZW1lbnRTdHlsZS5oZWlnaHQgPSBNYXRoLmZsb29yKDMwICogdmlld3BvcnRI
ZWlnaHQgLyAxMDApICsgInB4IjsKLSAgICBlbGVtZW50U3R5bGUud2lkdGggPSBNYXRoLmZsb29y
KDMwICogdmlld3BvcnRIZWlnaHQgLyAxMDApICsgInB4IjsKLSAgICBlbGVtZW50U3R5bGUuZm9u
dFNpemUgPSBNYXRoLmZsb29yKDMgKiB2aWV3cG9ydEhlaWdodCAvIDEwMCkgKyAicHgiOwotICAg
IGVsZW1lbnRTdHlsZS5saW5lSGVpZ2h0ID0gTWF0aC5mbG9vcig0ICogdmlld3BvcnRIZWlnaHQg
LyAxMDApICsgInB4IjsKLSAgICBlbGVtZW50U3R5bGUubWFyZ2luTGVmdCA9IE1hdGguZmxvb3Io
MiAqIHZpZXdwb3J0SGVpZ2h0IC8gMTAwKSArICJweCI7Ci0gICAgZWxlbWVudFN0eWxlLm1hcmdp
blJpZ2h0ID0gTWF0aC5mbG9vcigyICogdmlld3BvcnRIZWlnaHQgLyAxMDApICsgInB4IjsKLSAg
ICBlbGVtZW50U3R5bGUubWFyZ2luVG9wID0gTWF0aC5mbG9vcigyICogdmlld3BvcnRIZWlnaHQg
LyAxMDApICsgInB4IjsKLSAgICBlbGVtZW50U3R5bGUubWFyZ2luQm90dG9tID0gTWF0aC5mbG9v
cigyICogdmlld3BvcnRIZWlnaHQgLyAxMDApICsgInB4IjsKLSAgICBlbGVtZW50U3R5bGUuYm9y
ZGVyVG9wTGVmdFJhZGl1cyA9IE1hdGguZmxvb3IoMSAqIHZpZXdwb3J0SGVpZ2h0IC8gMTAwKSAr
ICJweCI7Ci0gICAgZWxlbWVudFN0eWxlLmJvcmRlclRvcFJpZ2h0UmFkaXVzID0gTWF0aC5mbG9v
cigxICogdmlld3BvcnRIZWlnaHQgLyAxMDApICsgInB4IjsKLSAgICBlbGVtZW50U3R5bGUuYm9y
ZGVyQm90dG9tTGVmdFJhZGl1cyA9IE1hdGguZmxvb3IoMSAqIHZpZXdwb3J0SGVpZ2h0IC8gMTAw
KSArICJweCI7Ci0gICAgZWxlbWVudFN0eWxlLmJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzID0gTWF0
aC5mbG9vcigxICogdmlld3BvcnRIZWlnaHQgLyAxMDApICsgInB4IjsKLSAgICBlbGVtZW50U3R5
bGUucGFkZGluZ0xlZnQgPSBNYXRoLmZsb29yKDIgKiB2aWV3cG9ydEhlaWdodCAvIDEwMCkgKyAi
cHgiOwotICAgIGVsZW1lbnRTdHlsZS5wYWRkaW5nUmlnaHQgPSBNYXRoLmZsb29yKDIgKiB2aWV3
cG9ydEhlaWdodCAvIDEwMCkgKyAicHgiOwotICAgIGVsZW1lbnRTdHlsZS5wYWRkaW5nVG9wID0g
TWF0aC5mbG9vcigyICogdmlld3BvcnRIZWlnaHQgLyAxMDApICsgInB4IjsKLSAgICBlbGVtZW50
U3R5bGUucGFkZGluZ0JvdHRvbSA9IE1hdGguZmxvb3IoMiAqIHZpZXdwb3J0SGVpZ2h0IC8gMTAw
KSArICJweCI7Ci0gICAgZWxlbWVudFN0eWxlLm1pbkhlaWdodCA9IE1hdGguZmxvb3IoMTAgKiB2
aWV3cG9ydEhlaWdodCAvIDEwMCkgKyAicHgiOwotICAgIGVsZW1lbnRTdHlsZS5taW5XaWR0aCA9
IE1hdGguZmxvb3IoMTAgKiB2aWV3cG9ydEhlaWdodCAvIDEwMCkgKyAicHgiOwotICAgIGVsZW1l
bnRTdHlsZS5tYXhIZWlnaHQgPSBNYXRoLmZsb29yKDYwICogdmlld3BvcnRIZWlnaHQgLyAxMDAp
ICsgInB4IjsKLSAgICBlbGVtZW50U3R5bGUubWF4V2lkdGggPSBNYXRoLmZsb29yKDYwICogdmll
d3BvcnRIZWlnaHQgLyAxMDApICsgInB4IjsKLX0KLWNhbGN1bGF0ZVRoZVN0eWxlKCk7Ci08L3Nj
cmlwdD4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvdmlld3BvcnQtcmVs
YXRpdmUtbGVuZ3Rocy9jc3MzLXZpZXdwb3J0LXJlbGF0aXZlLWxlbmd0aHMtdmguaHRtbCBiL0xh
eW91dFRlc3RzL2NzczMvdmlld3BvcnQtcmVsYXRpdmUtbGVuZ3Rocy9jc3MzLXZpZXdwb3J0LXJl
bGF0aXZlLWxlbmd0aHMtdmguaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmRh
ZjA3NmNhYTNkOGVmMWQ1M2MxODhiODNiYWEyM2E5NWYxYzU4OC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jc3MzL3ZpZXdwb3J0LXJl
bGF0aXZlLWxlbmd0aHMvY3NzMy12aWV3cG9ydC1yZWxhdGl2ZS1sZW5ndGhzLXZoLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi08IURPQ1RZUEU+Ci08aHRtbD4KLTxzdHlsZT4K
LSAjZWxlbWVudC1jb250YWluZXItdmggewotICAgYmFja2dyb3VuZDpncmVlbjsKLSAgIGhlaWdo
dDozMHZoOwotICAgd2lkdGg6MzB2aDsKLSAgIGZvbnQtc2l6ZTozdmg7Ci0gICBsaW5lLWhlaWdo
dDo0dmg7Ci0gICBtYXJnaW4tbGVmdDoydmg7Ci0gICBtYXJnaW4tcmlnaHQ6MnZoOwotICAgbWFy
Z2luLXRvcDoydmg7Ci0gICBtYXJnaW4tYm90dG9tOjJ2aDsKLSAgIGJvcmRlci10b3AtbGVmdC1y
YWRpdXM6MXZoOwotICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MXZoOwotICAgYm9yZGVyLWJv
dHRvbS1sZWZ0LXJhZGl1czoxdmg7Ci0gICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czoxdmg7
Ci0gICBwYWRkaW5nLWxlZnQ6MnZoOwotICAgcGFkZGluZy1yaWdodDoydmg7Ci0gICBwYWRkaW5n
LXRvcDoydmg7Ci0gICBwYWRkaW5nLWJvdHRvbToydmg7Ci0gICBtaW4taGVpZ2h0OjEwdmg7Ci0g
ICBtaW4td2lkdGg6MTB2aDsKLSAgIG1heC1oZWlnaHQ6NjB2aDsKLSAgIG1heC13aWR0aDo2MHZo
OwotIH0KLTwvc3R5bGU+Ci08ZGl2IGlkPSJlbGVtZW50LWNvbnRhaW5lci12aCI+PC9kaXY+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL3ZpZXdwb3J0LXJlbGF0aXZlLWxl
bmd0aHMvY3NzMy12aWV3cG9ydC1yZWxhdGl2ZS1sZW5ndGhzLXZtaW4tYWJzb2x1dGUtZXhwZWN0
ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvdmlld3BvcnQtcmVsYXRpdmUtbGVuZ3Rocy9jc3Mz
LXZpZXdwb3J0LXJlbGF0aXZlLWxlbmd0aHMtdm1pbi1hYnNvbHV0ZS1leHBlY3RlZC5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZTcxMGViMDc1NmIyZDc3MGU3NzgyNWQ5NTZl
MzQ3MmM4OTNhYmUyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2NzczMvdmlld3BvcnQtcmVsYXRpdmUtbGVuZ3Rocy9jc3MzLXZpZXdw
b3J0LXJlbGF0aXZlLWxlbmd0aHMtdm1pbi1hYnNvbHV0ZS1leHBlY3RlZC5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMjEgKzAsMCBAQAotPCFET0NUWVBFPgotPGh0bWw+Ci08c3R5bGU+Ci0gI2Vs
ZW1lbnQtY29udGFpbmVyLWFic29sdXRlLXZtaW4gewotICAgYmFja2dyb3VuZDpncmVlbjsKLSAg
IHBvc2l0aW9uOmFic29sdXRlOwotIH0KLTwvc3R5bGU+Ci08ZGl2IGlkPSJlbGVtZW50LWNvbnRh
aW5lci1hYnNvbHV0ZS12bWluIj48L2Rpdj4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBjYWxjdWxhdGVU
aGVTdHlsZSgpIHsKLSAgICB2YXIgdmlld3BvcnRNaW5MZW5ndGggPSBNYXRoLm1pbih3aW5kb3cu
aW5uZXJXaWR0aCwgd2luZG93LmlubmVySGVpZ2h0KTsKLSAgICB2YXIgZWxlbWVudFN0eWxlID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVsZW1lbnQtY29udGFpbmVyLWFic29sdXRlLXZtaW4i
KS5zdHlsZTsKLSAgICBlbGVtZW50U3R5bGUudG9wID0gTWF0aC5mbG9vcigxMCAqIHZpZXdwb3J0
TWluTGVuZ3RoIC8gMTAwKSArICJweCI7Ci0gICAgZWxlbWVudFN0eWxlLmJvdHRvbSA9IE1hdGgu
Zmxvb3IoMTAgKiB2aWV3cG9ydE1pbkxlbmd0aCAvIDEwMCkgKyAicHgiOwotICAgIGVsZW1lbnRT
dHlsZS5sZWZ0ID0gTWF0aC5mbG9vcigxMCAqIHZpZXdwb3J0TWluTGVuZ3RoIC8gMTAwKSArICJw
eCI7Ci0gICAgZWxlbWVudFN0eWxlLnJpZ2h0ID0gTWF0aC5mbG9vcigxMCAqIHZpZXdwb3J0TWlu
TGVuZ3RoIC8gMTAwKSArICJweCI7Ci19Ci1jYWxjdWxhdGVUaGVTdHlsZSgpOwotPC9zY3JpcHQ+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL3ZpZXdwb3J0LXJlbGF0aXZl
LWxlbmd0aHMvY3NzMy12aWV3cG9ydC1yZWxhdGl2ZS1sZW5ndGhzLXZtaW4tYWJzb2x1dGUuaHRt
bCBiL0xheW91dFRlc3RzL2NzczMvdmlld3BvcnQtcmVsYXRpdmUtbGVuZ3Rocy9jc3MzLXZpZXdw
b3J0LXJlbGF0aXZlLWxlbmd0aHMtdm1pbi1hYnNvbHV0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA4ZjA5Y2E5NDA3ODg3OWJjMzM1OTBlOGE4YzU5YzQ0NjYxMGVkODExLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2NzczMvdmlld3BvcnQtcmVsYXRpdmUtbGVuZ3Rocy9jc3MzLXZpZXdwb3J0LXJlbGF0aXZlLWxl
bmd0aHMtdm1pbi1hYnNvbHV0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAot
PCFET0NUWVBFPgotPGh0bWw+Ci08c3R5bGU+Ci0gI2VsZW1lbnQtY29udGFpbmVyLWFic29sdXRl
LXZtaW4gewotICAgYmFja2dyb3VuZDpncmVlbjsKLSAgIHBvc2l0aW9uOmFic29sdXRlOwotICAg
dG9wOjEwdm1pbjsKLSAgIGJvdHRvbToxMHZtaW47Ci0gICBsZWZ0OjEwdm1pbjsKLSAgIHJpZ2h0
OjEwdm1pbjsKLSB9Ci08L3N0eWxlPgotPGRpdiBpZD0iZWxlbWVudC1jb250YWluZXItYWJzb2x1
dGUtdm1pbiI+PC9kaXY+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL3Zp
ZXdwb3J0LXJlbGF0aXZlLWxlbmd0aHMvY3NzMy12aWV3cG9ydC1yZWxhdGl2ZS1sZW5ndGhzLXZt
aW4tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvdmlld3BvcnQtcmVsYXRpdmUtbGVu
Z3Rocy9jc3MzLXZpZXdwb3J0LXJlbGF0aXZlLWxlbmd0aHMtdm1pbi1leHBlY3RlZC5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NDEzZTVlN2E5ZWFhOTcyYWQ4Zjg3M2Y5YjUx
ZDcyZDQ0YzRlZDExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2NzczMvdmlld3BvcnQtcmVsYXRpdmUtbGVuZ3Rocy9jc3MzLXZpZXdw
b3J0LXJlbGF0aXZlLWxlbmd0aHMtdm1pbi1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMzYgKzAsMCBAQAotPCFET0NUWVBFPgotPGh0bWw+Ci08c3R5bGU+Ci0gI2VsZW1lbnQtY29u
dGFpbmVyLXZtaW4gewotICAgYmFja2dyb3VuZDpncmVlbjsKLSB9Ci08L3N0eWxlPgotPGRpdiBp
ZD0iZWxlbWVudC1jb250YWluZXItdm1pbiI+PC9kaXY+Ci08c2NyaXB0PgotZnVuY3Rpb24gY2Fs
Y3VsYXRlVGhlU3R5bGUoKSB7Ci0gICAgdmFyIHZpZXdwb3J0TWluTGVuZ3RoID0gTWF0aC5taW4o
d2luZG93LmlubmVyV2lkdGgsIHdpbmRvdy5pbm5lckhlaWdodCk7Ci0gICAgdmFyIGVsZW1lbnRT
dHlsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbGVtZW50LWNvbnRhaW5lci12bWluIiku
c3R5bGU7Ci0gICAgZWxlbWVudFN0eWxlLmhlaWdodCA9IE1hdGguZmxvb3IoMzAgKiB2aWV3cG9y
dE1pbkxlbmd0aCAvIDEwMCkgKyAicHgiOwotICAgIGVsZW1lbnRTdHlsZS53aWR0aCA9IE1hdGgu
Zmxvb3IoMzAgKiB2aWV3cG9ydE1pbkxlbmd0aCAvIDEwMCkgKyAicHgiOwotICAgIGVsZW1lbnRT
dHlsZS5mb250U2l6ZSA9IE1hdGguZmxvb3IoMyAqIHZpZXdwb3J0TWluTGVuZ3RoIC8gMTAwKSAr
ICJweCI7Ci0gICAgZWxlbWVudFN0eWxlLmxpbmVIZWlnaHQgPSBNYXRoLmZsb29yKDQgKiB2aWV3
cG9ydE1pbkxlbmd0aCAvIDEwMCkgKyAicHgiOwotICAgIGVsZW1lbnRTdHlsZS5tYXJnaW5MZWZ0
ID0gTWF0aC5mbG9vcigyICogdmlld3BvcnRNaW5MZW5ndGggLyAxMDApICsgInB4IjsKLSAgICBl
bGVtZW50U3R5bGUubWFyZ2luUmlnaHQgPSBNYXRoLmZsb29yKDIgKiB2aWV3cG9ydE1pbkxlbmd0
aCAvIDEwMCkgKyAicHgiOwotICAgIGVsZW1lbnRTdHlsZS5tYXJnaW5Ub3AgPSBNYXRoLmZsb29y
KDIgKiB2aWV3cG9ydE1pbkxlbmd0aCAvIDEwMCkgKyAicHgiOwotICAgIGVsZW1lbnRTdHlsZS5t
YXJnaW5Cb3R0b20gPSBNYXRoLmZsb29yKDIgKiB2aWV3cG9ydE1pbkxlbmd0aCAvIDEwMCkgKyAi
cHgiOwotICAgIGVsZW1lbnRTdHlsZS5ib3JkZXJUb3BMZWZ0UmFkaXVzID0gTWF0aC5mbG9vcigx
ICogdmlld3BvcnRNaW5MZW5ndGggLyAxMDApICsgInB4IjsKLSAgICBlbGVtZW50U3R5bGUuYm9y
ZGVyVG9wUmlnaHRSYWRpdXMgPSBNYXRoLmZsb29yKDEgKiB2aWV3cG9ydE1pbkxlbmd0aCAvIDEw
MCkgKyAicHgiOwotICAgIGVsZW1lbnRTdHlsZS5ib3JkZXJCb3R0b21MZWZ0UmFkaXVzID0gTWF0
aC5mbG9vcigxICogdmlld3BvcnRNaW5MZW5ndGggLyAxMDApICsgInB4IjsKLSAgICBlbGVtZW50
U3R5bGUuYm9yZGVyQm90dG9tUmlnaHRSYWRpdXMgPSBNYXRoLmZsb29yKDEgKiB2aWV3cG9ydE1p
bkxlbmd0aCAvIDEwMCkgKyAicHgiOwotICAgIGVsZW1lbnRTdHlsZS5wYWRkaW5nTGVmdCA9IE1h
dGguZmxvb3IoMiAqIHZpZXdwb3J0TWluTGVuZ3RoIC8gMTAwKSArICJweCI7Ci0gICAgZWxlbWVu
dFN0eWxlLnBhZGRpbmdSaWdodCA9IE1hdGguZmxvb3IoMiAqIHZpZXdwb3J0TWluTGVuZ3RoIC8g
MTAwKSArICJweCI7Ci0gICAgZWxlbWVudFN0eWxlLnBhZGRpbmdUb3AgPSBNYXRoLmZsb29yKDIg
KiB2aWV3cG9ydE1pbkxlbmd0aCAvIDEwMCkgKyAicHgiOwotICAgIGVsZW1lbnRTdHlsZS5wYWRk
aW5nQm90dG9tID0gTWF0aC5mbG9vcigyICogdmlld3BvcnRNaW5MZW5ndGggLyAxMDApICsgInB4
IjsKLSAgICBlbGVtZW50U3R5bGUubWluSGVpZ2h0ID0gTWF0aC5mbG9vcigxMCAqIHZpZXdwb3J0
TWluTGVuZ3RoIC8gMTAwKSArICJweCI7Ci0gICAgZWxlbWVudFN0eWxlLm1pbldpZHRoID0gTWF0
aC5mbG9vcigxMCAqIHZpZXdwb3J0TWluTGVuZ3RoIC8gMTAwKSArICJweCI7Ci0gICAgZWxlbWVu
dFN0eWxlLm1heEhlaWdodCA9IE1hdGguZmxvb3IoNjAgKiB2aWV3cG9ydE1pbkxlbmd0aCAvIDEw
MCkgKyAicHgiOwotICAgIGVsZW1lbnRTdHlsZS5tYXhXaWR0aCA9IE1hdGguZmxvb3IoNjAgKiB2
aWV3cG9ydE1pbkxlbmd0aCAvIDEwMCkgKyAicHgiOwotfQotY2FsY3VsYXRlVGhlU3R5bGUoKTsK
LTwvc2NyaXB0PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy92aWV3cG9y
dC1yZWxhdGl2ZS1sZW5ndGhzL2NzczMtdmlld3BvcnQtcmVsYXRpdmUtbGVuZ3Rocy12bWluLmh0
bWwgYi9MYXlvdXRUZXN0cy9jc3MzL3ZpZXdwb3J0LXJlbGF0aXZlLWxlbmd0aHMvY3NzMy12aWV3
cG9ydC1yZWxhdGl2ZS1sZW5ndGhzLXZtaW4uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNmY4ZjUzYzA0MDA1YjhhMjhiM2MyNzFjZDJkNjkxZjAzYjlkNDgxYy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jc3MzL3Zp
ZXdwb3J0LXJlbGF0aXZlLWxlbmd0aHMvY3NzMy12aWV3cG9ydC1yZWxhdGl2ZS1sZW5ndGhzLXZt
aW4uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLTwhRE9DVFlQRT4KLTxodG1s
PgotPHN0eWxlPgotICNlbGVtZW50LWNvbnRhaW5lci12bWluIHsKLSAgIGJhY2tncm91bmQ6Z3Jl
ZW47Ci0gICBoZWlnaHQ6MzB2bWluOwotICAgd2lkdGg6MzB2bWluOwotICAgZm9udC1zaXplOjN2
bWluOwotICAgbGluZS1oZWlnaHQ6NHZtaW47Ci0gICBtYXJnaW4tbGVmdDoydm1pbjsKLSAgIG1h
cmdpbi1yaWdodDoydm1pbjsKLSAgIG1hcmdpbi10b3A6MnZtaW47Ci0gICBtYXJnaW4tYm90dG9t
OjJ2bWluOwotICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czoxdm1pbjsKLSAgIGJvcmRlci10b3At
cmlnaHQtcmFkaXVzOjF2bWluOwotICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czoxdm1pbjsK
LSAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjF2bWluOwotICAgcGFkZGluZy1sZWZ0OjJ2
bWluOwotICAgcGFkZGluZy1yaWdodDoydm1pbjsKLSAgIHBhZGRpbmctdG9wOjJ2bWluOwotICAg
cGFkZGluZy1ib3R0b206MnZtaW47Ci0gICBtaW4taGVpZ2h0OjEwdm1pbjsKLSAgIG1pbi13aWR0
aDoxMHZtaW47Ci0gICBtYXgtaGVpZ2h0OjYwdm1pbjsKLSAgIG1heC13aWR0aDo2MHZtaW47Ci0g
fQotPC9zdHlsZT4KLTxkaXYgaWQ9ImVsZW1lbnQtY29udGFpbmVyLXZtaW4iPjwvZGl2PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy92aWV3cG9ydC1yZWxhdGl2ZS1sZW5n
dGhzL2NzczMtdmlld3BvcnQtcmVsYXRpdmUtbGVuZ3Rocy12dy1hYnNvbHV0ZS1leHBlY3RlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvY3NzMy92aWV3cG9ydC1yZWxhdGl2ZS1sZW5ndGhzL2NzczMtdmll
d3BvcnQtcmVsYXRpdmUtbGVuZ3Rocy12dy1hYnNvbHV0ZS1leHBlY3RlZC5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYmZhMDJjZGU4Yzg0N2JmNmEyMjk3MTBmNjc5MWY0N2Rm
NmM4NWQyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2NzczMvdmlld3BvcnQtcmVsYXRpdmUtbGVuZ3Rocy9jc3MzLXZpZXdwb3J0LXJl
bGF0aXZlLWxlbmd0aHMtdnctYWJzb2x1dGUtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDIxICswLDAgQEAKLTwhRE9DVFlQRT4KLTxodG1sPgotPHN0eWxlPgotICNlbGVtZW50LWNv
bnRhaW5lci1hYnNvbHV0ZS12dyB7Ci0gICBiYWNrZ3JvdW5kOmdyZWVuOwotICAgcG9zaXRpb246
YWJzb2x1dGU7Ci0gfQotPC9zdHlsZT4KLTxkaXYgaWQ9ImVsZW1lbnQtY29udGFpbmVyLWFic29s
dXRlLXZ3Ij48L2Rpdj4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBjYWxjdWxhdGVUaGVTdHlsZSgpIHsK
LSAgICB2YXIgdmlld3BvcnRXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoOwotICAgIHZhciBlbGVt
ZW50U3R5bGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWxlbWVudC1jb250YWluZXItYWJz
b2x1dGUtdnciKS5zdHlsZTsKLSAgICBlbGVtZW50U3R5bGUudG9wID0gTWF0aC5mbG9vcigxMCAq
IHZpZXdwb3J0V2lkdGggLyAxMDApICsgInB4IjsKLSAgICBlbGVtZW50U3R5bGUuYm90dG9tID0g
TWF0aC5mbG9vcigxMCAqIHZpZXdwb3J0V2lkdGggLyAxMDApICsgInB4IjsKLSAgICBlbGVtZW50
U3R5bGUubGVmdCA9IE1hdGguZmxvb3IoMTAgKiB2aWV3cG9ydFdpZHRoIC8gMTAwKSArICJweCI7
Ci0gICAgZWxlbWVudFN0eWxlLnJpZ2h0ID0gTWF0aC5mbG9vcigxMCAqIHZpZXdwb3J0V2lkdGgg
LyAxMDApICsgInB4IjsKLX0KLWNhbGN1bGF0ZVRoZVN0eWxlKCk7Ci08L3NjcmlwdD4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvdmlld3BvcnQtcmVsYXRpdmUtbGVuZ3Ro
cy9jc3MzLXZpZXdwb3J0LXJlbGF0aXZlLWxlbmd0aHMtdnctYWJzb2x1dGUuaHRtbCBiL0xheW91
dFRlc3RzL2NzczMvdmlld3BvcnQtcmVsYXRpdmUtbGVuZ3Rocy9jc3MzLXZpZXdwb3J0LXJlbGF0
aXZlLWxlbmd0aHMtdnctYWJzb2x1dGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYjAyZDMzNzZkNjUwYzM3YWNmMjU5MzMyOTQ1M2RkZWVjMWQyNWM5Mi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jc3MzL3ZpZXdw
b3J0LXJlbGF0aXZlLWxlbmd0aHMvY3NzMy12aWV3cG9ydC1yZWxhdGl2ZS1sZW5ndGhzLXZ3LWFi
c29sdXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi08IURPQ1RZUEU+Ci08
aHRtbD4KLTxzdHlsZT4KLSAjZWxlbWVudC1jb250YWluZXItYWJzb2x1dGUtdncgewotICAgYmFj
a2dyb3VuZDpncmVlbjsKLSAgIHBvc2l0aW9uOmFic29sdXRlOwotICAgdG9wOjEwdnc7Ci0gICBi
b3R0b206MTB2dzsKLSAgIGxlZnQ6MTB2dzsKLSAgIHJpZ2h0OjEwdnc7Ci0gfQotPC9zdHlsZT4K
LTxkaXYgaWQ9ImVsZW1lbnQtY29udGFpbmVyLWFic29sdXRlLXZ3Ij48L2Rpdj4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvdmlld3BvcnQtcmVsYXRpdmUtbGVuZ3Rocy9j
c3MzLXZpZXdwb3J0LXJlbGF0aXZlLWxlbmd0aHMtdnctZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2NzczMvdmlld3BvcnQtcmVsYXRpdmUtbGVuZ3Rocy9jc3MzLXZpZXdwb3J0LXJlbGF0aXZl
LWxlbmd0aHMtdnctZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDE0MGFiNTIwMzU4M2RlZmQxNDZkZThiMDllMjNiNGEyMTQwNmE0Ni4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jc3MzL3ZpZXdwb3J0
LXJlbGF0aXZlLWxlbmd0aHMvY3NzMy12aWV3cG9ydC1yZWxhdGl2ZS1sZW5ndGhzLXZ3LWV4cGVj
dGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08IURPQ1RZUEU+Ci08aHRt
bD4KLTxzdHlsZT4KLSAjZWxlbWVudC1jb250YWluZXItdncgewotICAgYmFja2dyb3VuZDpncmVl
bjsKLSB9Ci08L3N0eWxlPgotPGRpdiBpZD0iZWxlbWVudC1jb250YWluZXItdnciPjwvZGl2Pgot
PHNjcmlwdD4KLWZ1bmN0aW9uIGNhbGN1bGF0ZVRoZVN0eWxlKCkgewotICAgIHZhciB2aWV3cG9y
dFdpZHRoID0gd2luZG93LmlubmVyV2lkdGg7Ci0gICAgdmFyIGVsZW1lbnRTdHlsZSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJlbGVtZW50LWNvbnRhaW5lci12dyIpLnN0eWxlOwotICAgIGVs
ZW1lbnRTdHlsZS5oZWlnaHQgPSBNYXRoLmZsb29yKDMwICogdmlld3BvcnRXaWR0aCAvIDEwMCkg
KyAicHgiOwotICAgIGVsZW1lbnRTdHlsZS53aWR0aCA9IE1hdGguZmxvb3IoMzAgKiB2aWV3cG9y
dFdpZHRoIC8gMTAwKSArICJweCI7Ci0gICAgZWxlbWVudFN0eWxlLmZvbnRTaXplID0gTWF0aC5m
bG9vcigzICogdmlld3BvcnRXaWR0aCAvIDEwMCkgKyAicHgiOwotICAgIGVsZW1lbnRTdHlsZS5s
aW5lSGVpZ2h0ID0gTWF0aC5mbG9vcig0ICogdmlld3BvcnRXaWR0aCAvIDEwMCkgKyAicHgiOwot
ICAgIGVsZW1lbnRTdHlsZS5tYXJnaW5MZWZ0ID0gTWF0aC5mbG9vcigyICogdmlld3BvcnRXaWR0
aCAvIDEwMCkgKyAicHgiOwotICAgIGVsZW1lbnRTdHlsZS5tYXJnaW5SaWdodCA9IE1hdGguZmxv
b3IoMiAqIHZpZXdwb3J0V2lkdGggLyAxMDApICsgInB4IjsKLSAgICBlbGVtZW50U3R5bGUubWFy
Z2luVG9wID0gTWF0aC5mbG9vcigyICogdmlld3BvcnRXaWR0aCAvIDEwMCkgKyAicHgiOwotICAg
IGVsZW1lbnRTdHlsZS5tYXJnaW5Cb3R0b20gPSBNYXRoLmZsb29yKDIgKiB2aWV3cG9ydFdpZHRo
IC8gMTAwKSArICJweCI7Ci0gICAgZWxlbWVudFN0eWxlLmJvcmRlclRvcExlZnRSYWRpdXMgPSBN
YXRoLmZsb29yKDEgKiB2aWV3cG9ydFdpZHRoIC8gMTAwKSArICJweCI7Ci0gICAgZWxlbWVudFN0
eWxlLmJvcmRlclRvcFJpZ2h0UmFkaXVzID0gTWF0aC5mbG9vcigxICogdmlld3BvcnRXaWR0aCAv
IDEwMCkgKyAicHgiOwotICAgIGVsZW1lbnRTdHlsZS5ib3JkZXJCb3R0b21MZWZ0UmFkaXVzID0g
TWF0aC5mbG9vcigxICogdmlld3BvcnRXaWR0aCAvIDEwMCkgKyAicHgiOwotICAgIGVsZW1lbnRT
dHlsZS5ib3JkZXJCb3R0b21SaWdodFJhZGl1cyA9IE1hdGguZmxvb3IoMSAqIHZpZXdwb3J0V2lk
dGggLyAxMDApICsgInB4IjsKLSAgICBlbGVtZW50U3R5bGUucGFkZGluZ0xlZnQgPSBNYXRoLmZs
b29yKDIgKiB2aWV3cG9ydFdpZHRoIC8gMTAwKSArICJweCI7Ci0gICAgZWxlbWVudFN0eWxlLnBh
ZGRpbmdSaWdodCA9IE1hdGguZmxvb3IoMiAqIHZpZXdwb3J0V2lkdGggLyAxMDApICsgInB4IjsK
LSAgICBlbGVtZW50U3R5bGUucGFkZGluZ1RvcCA9IE1hdGguZmxvb3IoMiAqIHZpZXdwb3J0V2lk
dGggLyAxMDApICsgInB4IjsKLSAgICBlbGVtZW50U3R5bGUucGFkZGluZ0JvdHRvbSA9IE1hdGgu
Zmxvb3IoMiAqIHZpZXdwb3J0V2lkdGggLyAxMDApICsgInB4IjsKLSAgICBlbGVtZW50U3R5bGUu
bWluSGVpZ2h0ID0gTWF0aC5mbG9vcigxMCAqIHZpZXdwb3J0V2lkdGggLyAxMDApICsgInB4IjsK
LSAgICBlbGVtZW50U3R5bGUubWluV2lkdGggPSBNYXRoLmZsb29yKDEwICogdmlld3BvcnRXaWR0
aCAvIDEwMCkgKyAicHgiOwotICAgIGVsZW1lbnRTdHlsZS5tYXhIZWlnaHQgPSBNYXRoLmZsb29y
KDYwICogdmlld3BvcnRXaWR0aCAvIDEwMCkgKyAicHgiOwotICAgIGVsZW1lbnRTdHlsZS5tYXhX
aWR0aCA9IE1hdGguZmxvb3IoNjAgKiB2aWV3cG9ydFdpZHRoIC8gMTAwKSArICJweCI7Ci19Ci1j
YWxjdWxhdGVUaGVTdHlsZSgpOwotPC9zY3JpcHQ+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9jc3MzL3ZpZXdwb3J0LXJlbGF0aXZlLWxlbmd0aHMvY3NzMy12aWV3cG9ydC1yZWxh
dGl2ZS1sZW5ndGhzLXZ3Lmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL3ZpZXdwb3J0LXJlbGF0aXZl
LWxlbmd0aHMvY3NzMy12aWV3cG9ydC1yZWxhdGl2ZS1sZW5ndGhzLXZ3Lmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyOTMwNjI5ODNhYWI5ZGZjYzdjNDNjYjJmNzQxODUwZmE4
YWZiYWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvY3NzMy92aWV3cG9ydC1yZWxhdGl2ZS1sZW5ndGhzL2NzczMtdmlld3BvcnQtcmVs
YXRpdmUtbGVuZ3Rocy12dy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotPCFE
T0NUWVBFPgotPGh0bWw+Ci08c3R5bGU+Ci0gI2VsZW1lbnQtY29udGFpbmVyLXZ3IHsKLSAgIGJh
Y2tncm91bmQ6Z3JlZW47Ci0gICBoZWlnaHQ6MzB2dzsKLSAgIHdpZHRoOjMwdnc7Ci0gICBmb250
LXNpemU6M3Z3OwotICAgbGluZS1oZWlnaHQ6NHZ3OwotICAgbWFyZ2luLWxlZnQ6MnZ3OwotICAg
bWFyZ2luLXJpZ2h0OjJ2dzsKLSAgIG1hcmdpbi10b3A6MnZ3OwotICAgbWFyZ2luLWJvdHRvbToy
dnc7Ci0gICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOjF2dzsKLSAgIGJvcmRlci10b3AtcmlnaHQt
cmFkaXVzOjF2dzsKLSAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MXZ3OwotICAgYm9yZGVy
LWJvdHRvbS1yaWdodC1yYWRpdXM6MXZ3OwotICAgcGFkZGluZy1sZWZ0OjJ2dzsKLSAgIHBhZGRp
bmctcmlnaHQ6MnZ3OwotICAgcGFkZGluZy10b3A6MnZ3OwotICAgcGFkZGluZy1ib3R0b206MnZ3
OwotICAgbWluLWhlaWdodDoxMHZ3OwotICAgbWluLXdpZHRoOjEwdnc7Ci0gICBtYXgtaGVpZ2h0
OjYwdnc7Ci0gICBtYXgtd2lkdGg6NjB2dzsKLSB9Ci08L3N0eWxlPgotPGRpdiBpZD0iZWxlbWVu
dC1jb250YWluZXItdnciPjwvZGl2PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKaW5kZXgg
MTNhN2IwZGFlYWM5YTAzOWI2Zjg4OTliYWE4MDliYjgxN2YwYTA0MS4uMzRlMDRhNDU2ZmEwOGE3
NzFiMzgxNTRhNGNhMmJmMDE2ZDRjZjhmMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC0yODks
OSArMjg5LDYgQEAgd2luZG93LkNTU1ByaW1pdGl2ZVZhbHVlLkNTU19TIFtudW1iZXJdCiB3aW5k
b3cuQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1NUUklORyBbbnVtYmVyXQogd2luZG93LkNTU1ByaW1p
dGl2ZVZhbHVlLkNTU19VTktOT1dOIFtudW1iZXJdCiB3aW5kb3cuQ1NTUHJpbWl0aXZlVmFsdWUu
Q1NTX1VSSSBbbnVtYmVyXQotd2luZG93LkNTU1ByaW1pdGl2ZVZhbHVlLkNTU19WSCBbbnVtYmVy
XQotd2luZG93LkNTU1ByaW1pdGl2ZVZhbHVlLkNTU19WTUlOIFtudW1iZXJdCi13aW5kb3cuQ1NT
UHJpbWl0aXZlVmFsdWUuQ1NTX1ZXIFtudW1iZXJdCiB3aW5kb3cuQ1NTUHJpbWl0aXZlVmFsdWUu
cHJvdG90eXBlIFtvYmplY3QgQ1NTUHJpbWl0aXZlVmFsdWVQcm90b3R5cGVdCiB3aW5kb3cuQ1NT
UHJpbWl0aXZlVmFsdWUucHJvdG90eXBlLkNTU19BVFRSIFtudW1iZXJdCiB3aW5kb3cuQ1NTUHJp
bWl0aXZlVmFsdWUucHJvdG90eXBlLkNTU19DTSBbbnVtYmVyXQpAQCAtMzIzLDkgKzMyMCw2IEBA
IHdpbmRvdy5DU1NQcmltaXRpdmVWYWx1ZS5wcm90b3R5cGUuQ1NTX1NUUklORyBbbnVtYmVyXQog
d2luZG93LkNTU1ByaW1pdGl2ZVZhbHVlLnByb3RvdHlwZS5DU1NfVU5LTk9XTiBbbnVtYmVyXQog
d2luZG93LkNTU1ByaW1pdGl2ZVZhbHVlLnByb3RvdHlwZS5DU1NfVVJJIFtudW1iZXJdCiB3aW5k
b3cuQ1NTUHJpbWl0aXZlVmFsdWUucHJvdG90eXBlLkNTU19WQUxVRV9MSVNUIFtudW1iZXJdCi13
aW5kb3cuQ1NTUHJpbWl0aXZlVmFsdWUucHJvdG90eXBlLkNTU19WSCBbbnVtYmVyXQotd2luZG93
LkNTU1ByaW1pdGl2ZVZhbHVlLnByb3RvdHlwZS5DU1NfVk1JTiBbbnVtYmVyXQotd2luZG93LkNT
U1ByaW1pdGl2ZVZhbHVlLnByb3RvdHlwZS5DU1NfVlcgW251bWJlcl0KIHdpbmRvdy5DU1NQcmlt
aXRpdmVWYWx1ZS5wcm90b3R5cGUuZ2V0Q291bnRlclZhbHVlIFtmdW5jdGlvbl0KIHdpbmRvdy5D
U1NQcmltaXRpdmVWYWx1ZS5wcm90b3R5cGUuZ2V0RmxvYXRWYWx1ZSBbZnVuY3Rpb25dCiB3aW5k
b3cuQ1NTUHJpbWl0aXZlVmFsdWUucHJvdG90eXBlLmdldFJHQkNvbG9yVmFsdWUgW2Z1bmN0aW9u
XQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvZG9tL1dpbmRvdy93
aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAppbmRleCA2ZGMy
OWEyNTljY2U1NWEyYzRiMzA0NDA4YTNjZThkY2M4MDViMTFlLi41MmQ2ZTIwMjljNDZmZjA0ZGM2
ODQ5YjU1M2E2NWNlYWY5YTllNDAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVz
LWV4cGVjdGVkLnR4dApAQCAtMjkxLDkgKzI5MSw2IEBAIHdpbmRvdy5DU1NQcmltaXRpdmVWYWx1
ZS5DU1NfUyBbbnVtYmVyXQogd2luZG93LkNTU1ByaW1pdGl2ZVZhbHVlLkNTU19TVFJJTkcgW251
bWJlcl0KIHdpbmRvdy5DU1NQcmltaXRpdmVWYWx1ZS5DU1NfVU5LTk9XTiBbbnVtYmVyXQogd2lu
ZG93LkNTU1ByaW1pdGl2ZVZhbHVlLkNTU19VUkkgW251bWJlcl0KLXdpbmRvdy5DU1NQcmltaXRp
dmVWYWx1ZS5DU1NfVkggW251bWJlcl0KLXdpbmRvdy5DU1NQcmltaXRpdmVWYWx1ZS5DU1NfVk1J
TiBbbnVtYmVyXQotd2luZG93LkNTU1ByaW1pdGl2ZVZhbHVlLkNTU19WVyBbbnVtYmVyXQogd2lu
ZG93LkNTU1ByaW1pdGl2ZVZhbHVlLnByb3RvdHlwZSBbb2JqZWN0IENTU1ByaW1pdGl2ZVZhbHVl
UHJvdG90eXBlXQogd2luZG93LkNTU1ByaW1pdGl2ZVZhbHVlLnByb3RvdHlwZS5DU1NfQVRUUiBb
bnVtYmVyXQogd2luZG93LkNTU1ByaW1pdGl2ZVZhbHVlLnByb3RvdHlwZS5DU1NfQ00gW251bWJl
cl0KQEAgLTMyNSw5ICszMjIsNiBAQCB3aW5kb3cuQ1NTUHJpbWl0aXZlVmFsdWUucHJvdG90eXBl
LkNTU19TVFJJTkcgW251bWJlcl0KIHdpbmRvdy5DU1NQcmltaXRpdmVWYWx1ZS5wcm90b3R5cGUu
Q1NTX1VOS05PV04gW251bWJlcl0KIHdpbmRvdy5DU1NQcmltaXRpdmVWYWx1ZS5wcm90b3R5cGUu
Q1NTX1VSSSBbbnVtYmVyXQogd2luZG93LkNTU1ByaW1pdGl2ZVZhbHVlLnByb3RvdHlwZS5DU1Nf
VkFMVUVfTElTVCBbbnVtYmVyXQotd2luZG93LkNTU1ByaW1pdGl2ZVZhbHVlLnByb3RvdHlwZS5D
U1NfVkggW251bWJlcl0KLXdpbmRvdy5DU1NQcmltaXRpdmVWYWx1ZS5wcm90b3R5cGUuQ1NTX1ZN
SU4gW251bWJlcl0KLXdpbmRvdy5DU1NQcmltaXRpdmVWYWx1ZS5wcm90b3R5cGUuQ1NTX1ZXIFtu
dW1iZXJdCiB3aW5kb3cuQ1NTUHJpbWl0aXZlVmFsdWUucHJvdG90eXBlLmdldENvdW50ZXJWYWx1
ZSBbZnVuY3Rpb25dCiB3aW5kb3cuQ1NTUHJpbWl0aXZlVmFsdWUucHJvdG90eXBlLmdldEZsb2F0
VmFsdWUgW2Z1bmN0aW9uXQogd2luZG93LkNTU1ByaW1pdGl2ZVZhbHVlLnByb3RvdHlwZS5nZXRS
R0JDb2xvclZhbHVlIFtmdW5jdGlvbl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1l
eHBlY3RlZC50eHQKaW5kZXggM2Q2OGQ4ZTRhYTBlNWFjMjIxOGMzOTQzZTFiZDAyMWU5MGY2YTc5
My4uZDFmZTgyN2NlODg2OWY2ODBkZTM0NzY2ZDU4NmFhYmU3YTY2ZjhjYSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGll
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKQEAgLTMxNCw5ICszMTQsNiBAQCB3
aW5kb3cuQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1MgW251bWJlcl0KIHdpbmRvdy5DU1NQcmltaXRp
dmVWYWx1ZS5DU1NfU1RSSU5HIFtudW1iZXJdCiB3aW5kb3cuQ1NTUHJpbWl0aXZlVmFsdWUuQ1NT
X1VOS05PV04gW251bWJlcl0KIHdpbmRvdy5DU1NQcmltaXRpdmVWYWx1ZS5DU1NfVVJJIFtudW1i
ZXJdCi13aW5kb3cuQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1ZIIFtudW1iZXJdCi13aW5kb3cuQ1NT
UHJpbWl0aXZlVmFsdWUuQ1NTX1ZNSU4gW251bWJlcl0KLXdpbmRvdy5DU1NQcmltaXRpdmVWYWx1
ZS5DU1NfVlcgW251bWJlcl0KIHdpbmRvdy5DU1NQcmltaXRpdmVWYWx1ZS5wcm90b3R5cGUgW29i
amVjdCBDU1NQcmltaXRpdmVWYWx1ZVByb3RvdHlwZV0KIHdpbmRvdy5DU1NQcmltaXRpdmVWYWx1
ZS5wcm90b3R5cGUuQ1NTX0FUVFIgW251bWJlcl0KIHdpbmRvdy5DU1NQcmltaXRpdmVWYWx1ZS5w
cm90b3R5cGUuQ1NTX0NNIFtudW1iZXJdCkBAIC0zNDgsOSArMzQ1LDYgQEAgd2luZG93LkNTU1By
aW1pdGl2ZVZhbHVlLnByb3RvdHlwZS5DU1NfU1RSSU5HIFtudW1iZXJdCiB3aW5kb3cuQ1NTUHJp
bWl0aXZlVmFsdWUucHJvdG90eXBlLkNTU19VTktOT1dOIFtudW1iZXJdCiB3aW5kb3cuQ1NTUHJp
bWl0aXZlVmFsdWUucHJvdG90eXBlLkNTU19VUkkgW251bWJlcl0KIHdpbmRvdy5DU1NQcmltaXRp
dmVWYWx1ZS5wcm90b3R5cGUuQ1NTX1ZBTFVFX0xJU1QgW251bWJlcl0KLXdpbmRvdy5DU1NQcmlt
aXRpdmVWYWx1ZS5wcm90b3R5cGUuQ1NTX1ZIIFtudW1iZXJdCi13aW5kb3cuQ1NTUHJpbWl0aXZl
VmFsdWUucHJvdG90eXBlLkNTU19WTUlOIFtudW1iZXJdCi13aW5kb3cuQ1NTUHJpbWl0aXZlVmFs
dWUucHJvdG90eXBlLkNTU19WVyBbbnVtYmVyXQogd2luZG93LkNTU1ByaW1pdGl2ZVZhbHVlLnBy
b3RvdHlwZS5nZXRDb3VudGVyVmFsdWUgW2Z1bmN0aW9uXQogd2luZG93LkNTU1ByaW1pdGl2ZVZh
bHVlLnByb3RvdHlwZS5nZXRGbG9hdFZhbHVlIFtmdW5jdGlvbl0KIHdpbmRvdy5DU1NQcmltaXRp
dmVWYWx1ZS5wcm90b3R5cGUuZ2V0UkdCQ29sb3JWYWx1ZSBbZnVuY3Rpb25dCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRp
ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAppbmRleCBmNjlmZjMzMzg2NWNmMThhMjk2
OGY0MTYwOGJhMzUyM2M4MjJhYzM3Li5mMWQ3NTcwMjllNTU1YjFkOTU5ZDJjZDBkNTI3OGMxMDcz
MzMwM2NmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3F0L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKQEAg
LTI4OCw5ICsyODgsNiBAQCB3aW5kb3cuQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1MgW251bWJlcl0K
IHdpbmRvdy5DU1NQcmltaXRpdmVWYWx1ZS5DU1NfU1RSSU5HIFtudW1iZXJdCiB3aW5kb3cuQ1NT
UHJpbWl0aXZlVmFsdWUuQ1NTX1VOS05PV04gW251bWJlcl0KIHdpbmRvdy5DU1NQcmltaXRpdmVW
YWx1ZS5DU1NfVVJJIFtudW1iZXJdCi13aW5kb3cuQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1ZIIFtu
dW1iZXJdCi13aW5kb3cuQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1ZNSU4gW251bWJlcl0KLXdpbmRv
dy5DU1NQcmltaXRpdmVWYWx1ZS5DU1NfVlcgW251bWJlcl0KIHdpbmRvdy5DU1NQcmltaXRpdmVW
YWx1ZS5wcm90b3R5cGUgW29iamVjdCBDU1NQcmltaXRpdmVWYWx1ZVByb3RvdHlwZV0KIHdpbmRv
dy5DU1NQcmltaXRpdmVWYWx1ZS5wcm90b3R5cGUuQ1NTX0FUVFIgW251bWJlcl0KIHdpbmRvdy5D
U1NQcmltaXRpdmVWYWx1ZS5wcm90b3R5cGUuQ1NTX0NNIFtudW1iZXJdCkBAIC0zMjIsOSArMzE5
LDYgQEAgd2luZG93LkNTU1ByaW1pdGl2ZVZhbHVlLnByb3RvdHlwZS5DU1NfU1RSSU5HIFtudW1i
ZXJdCiB3aW5kb3cuQ1NTUHJpbWl0aXZlVmFsdWUucHJvdG90eXBlLkNTU19VTktOT1dOIFtudW1i
ZXJdCiB3aW5kb3cuQ1NTUHJpbWl0aXZlVmFsdWUucHJvdG90eXBlLkNTU19VUkkgW251bWJlcl0K
IHdpbmRvdy5DU1NQcmltaXRpdmVWYWx1ZS5wcm90b3R5cGUuQ1NTX1ZBTFVFX0xJU1QgW251bWJl
cl0KLXdpbmRvdy5DU1NQcmltaXRpdmVWYWx1ZS5wcm90b3R5cGUuQ1NTX1ZIIFtudW1iZXJdCi13
aW5kb3cuQ1NTUHJpbWl0aXZlVmFsdWUucHJvdG90eXBlLkNTU19WTUlOIFtudW1iZXJdCi13aW5k
b3cuQ1NTUHJpbWl0aXZlVmFsdWUucHJvdG90eXBlLkNTU19WVyBbbnVtYmVyXQogd2luZG93LkNT
U1ByaW1pdGl2ZVZhbHVlLnByb3RvdHlwZS5nZXRDb3VudGVyVmFsdWUgW2Z1bmN0aW9uXQogd2lu
ZG93LkNTU1ByaW1pdGl2ZVZhbHVlLnByb3RvdHlwZS5nZXRGbG9hdFZhbHVlIFtmdW5jdGlvbl0K
IHdpbmRvdy5DU1NQcmltaXRpdmVWYWx1ZS5wcm90b3R5cGUuZ2V0UkdCQ29sb3JWYWx1ZSBbZnVu
Y3Rpb25dCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CmluZGV4
IGM3OWIyNzA1OWY5MjI0NWQxYmE1NDYwYzc2NDkyYmM5Zjk0OGFmZGQuLmUxYjQwNzUzZDZhNzZk
YmI4ZTJmMjQ1ZjJmOWU3NGE0MjBkNjg2OTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3Bl
cnRpZXMtZXhwZWN0ZWQudHh0CkBAIC0yODksOSArMjg5LDYgQEAgd2luZG93LkNTU1ByaW1pdGl2
ZVZhbHVlLkNTU19TIFtudW1iZXJdCiB3aW5kb3cuQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1NUUklO
RyBbbnVtYmVyXQogd2luZG93LkNTU1ByaW1pdGl2ZVZhbHVlLkNTU19VTktOT1dOIFtudW1iZXJd
CiB3aW5kb3cuQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1VSSSBbbnVtYmVyXQotd2luZG93LkNTU1By
aW1pdGl2ZVZhbHVlLkNTU19WSCBbbnVtYmVyXQotd2luZG93LkNTU1ByaW1pdGl2ZVZhbHVlLkNT
U19WTUlOIFtudW1iZXJdCi13aW5kb3cuQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1ZXIFtudW1iZXJd
CiB3aW5kb3cuQ1NTUHJpbWl0aXZlVmFsdWUucHJvdG90eXBlIFtvYmplY3QgQ1NTUHJpbWl0aXZl
VmFsdWVQcm90b3R5cGVdCiB3aW5kb3cuQ1NTUHJpbWl0aXZlVmFsdWUucHJvdG90eXBlLkNTU19B
VFRSIFtudW1iZXJdCiB3aW5kb3cuQ1NTUHJpbWl0aXZlVmFsdWUucHJvdG90eXBlLkNTU19DTSBb
bnVtYmVyXQpAQCAtMzIzLDkgKzMyMCw2IEBAIHdpbmRvdy5DU1NQcmltaXRpdmVWYWx1ZS5wcm90
b3R5cGUuQ1NTX1NUUklORyBbbnVtYmVyXQogd2luZG93LkNTU1ByaW1pdGl2ZVZhbHVlLnByb3Rv
dHlwZS5DU1NfVU5LTk9XTiBbbnVtYmVyXQogd2luZG93LkNTU1ByaW1pdGl2ZVZhbHVlLnByb3Rv
dHlwZS5DU1NfVVJJIFtudW1iZXJdCiB3aW5kb3cuQ1NTUHJpbWl0aXZlVmFsdWUucHJvdG90eXBl
LkNTU19WQUxVRV9MSVNUIFtudW1iZXJdCi13aW5kb3cuQ1NTUHJpbWl0aXZlVmFsdWUucHJvdG90
eXBlLkNTU19WSCBbbnVtYmVyXQotd2luZG93LkNTU1ByaW1pdGl2ZVZhbHVlLnByb3RvdHlwZS5D
U1NfVk1JTiBbbnVtYmVyXQotd2luZG93LkNTU1ByaW1pdGl2ZVZhbHVlLnByb3RvdHlwZS5DU1Nf
VlcgW251bWJlcl0KIHdpbmRvdy5DU1NQcmltaXRpdmVWYWx1ZS5wcm90b3R5cGUuZ2V0Q291bnRl
clZhbHVlIFtmdW5jdGlvbl0KIHdpbmRvdy5DU1NQcmltaXRpdmVWYWx1ZS5wcm90b3R5cGUuZ2V0
RmxvYXRWYWx1ZSBbZnVuY3Rpb25dCiB3aW5kb3cuQ1NTUHJpbWl0aXZlVmFsdWUucHJvdG90eXBl
LmdldFJHQkNvbG9yVmFsdWUgW2Z1bmN0aW9uXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>