220 8730 <CANh-dXmQ7eqpzJqeXQsoYxZ3L221OfxegPySmZ3V0o0rhMsT9w@mail.gmail.com> article
Path: news.gmane.org!not-for-mail
From: Jeffrey Yasskin <jyasskin@google.com>
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: string_view::is_null()
Date: Sun, 19 Jan 2014 23:36:00 -0800
Lines: 1278
Approved: news@gmane.org
Message-ID: <CANh-dXmQ7eqpzJqeXQsoYxZ3L221OfxegPySmZ3V0o0rhMsT9w@mail.gmail.com>
References: <CAGNvRgDH=X2h4K_u3zOu7gUNuQbAcNHGNh=HfCRO9qG1mmiG1w@mail.gmail.com>
 <CANh-dXnytwWwS7E_BGA-xK8E-zw788TJKzM=HJdC-9JbF7+gTQ@mail.gmail.com>
 <104254A6-C69A-4571-8455-89D7E466D493@gmail.com> <CANh-dXngzdnwZZnLRxd=AXQcqLaQky9Cpdw6pkbH8tFqRyZavw@mail.gmail.com>
 <6a95bf9c-55c9-4ae2-966f-d1b1f4df6a37@isocpp.org> <52D9E336.1060801@knejp.de>
 <1B534FD7-B385-4A7E-A718-3C73F0AB61DC@gmail.com> <11f13f8f-1270-427c-8942-94027a181ff4@isocpp.org>
 <20140119174431.GA16875@faust.lysator.liu.se> <CAPOJ94Nt8tinr8hGeR-=rWZS0a529kY38NU-yo6BYM6kVo7czg@mail.gmail.com>
 <20140119192238.GA19497@faust.lysator.liu.se> <60842af6-5ec4-4364-b2d5-a0be9d578bd6@isocpp.org>
 <6c82c4ae-c144-443a-81b2-ea1a6b645601@isocpp.org> <CAGg_6+NYK0pndHN1sUk9=Lzz2gda_c5Yb1R_MXHXEPudwM5TmA@mail.gmail.com>
 <CANh-dXk8xb3aWcSr7qG75hjSNAu5hQR0EopiELSTdDLF-OjXuw@mail.gmail.com> <CAGg_6+OHw8jAO_m0Sj1GxkiB__mxPXfMDVh7tEiZsparxqi1HA@mail.gmail.com>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: plane.gmane.org
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary=001a113a54d6b4530004f061f22b
X-Trace: ger.gmane.org 1390203375 2036 80.91.229.3 (20 Jan 2014 07:36:15 GMT)
X-Complaints-To: usenet@ger.gmane.org
NNTP-Posting-Date: Mon, 20 Jan 2014 07:36:15 +0000 (UTC)
To: std-proposals@isocpp.org
Original-X-From: std-proposals+bncBDDM34EO6QDRB5ND6OLAKGQE5KYDFCI@isocpp.org Mon Jan 20 08:36:24 2014
Return-path: <std-proposals+bncBDDM34EO6QDRB5ND6OLAKGQE5KYDFCI@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-oa0-f72.google.com ([209.85.219.72])
	by plane.gmane.org with esmtp (Exim 4.69)
	(envelope-from <std-proposals+bncBDDM34EO6QDRB5ND6OLAKGQE5KYDFCI@isocpp.org>)
	id 1W59PD-0007yP-3x
	for gclcip-std-proposals@m.gmane.org; Mon, 20 Jan 2014 08:36:23 +0100
Original-Received: by mail-oa0-f72.google.com with SMTP id i4sf2422933oah.3
        for <gclcip-std-proposals@m.gmane.org>; Sun, 19 Jan 2014 23:36:22 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20120113;
        h=mime-version:in-reply-to:references:from:date:message-id:subject:to
         :x-original-sender:x-original-authentication-results:reply-to
         :precedence:mailing-list:list-id:list-post:list-help:list-archive
         :list-subscribe:list-unsubscribe:content-type;
        bh=ucfkEOvZ57CTHkteDd6WDfn2f2pe9wSsmj9a7DAOar4=;
        b=Ag6YiPGuit2XoByhEtucfovPewRa3UZ+VzD2heP8fNoABiQtALALgFmuRMvjQhT8Dr
         HVxMinlhLJbkXJ5egZQUKMCRagvktsF8MpMeDrCNaVoVnR75ElASSeqswd7i1cMQzE6I
         GM9nwnQtO8r6Y41y+LlhKaUz8YCYC2sVSNxSt9yrJgWh2jwcm48gMGCYTiV0+be3fW6h
         5pSrqTNVEdOjmKRm0IP58NVABuHW7mwo+ECeDWjNB3Lm2aXoUtMr3dnqXKvDPChqltfr
         l16Kacp2G1X7aVURxXps+8s0XqcI9RklvolV3N/A/E8Fz4dDYumNYvmJpUcw1Pp/VuFe
         FYXA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20130820;
        h=x-gm-message-state:mime-version:in-reply-to:references:from:date
         :message-id:subject:to:x-original-sender
         :x-original-authentication-results:reply-to:precedence:mailing-list
         :list-id:list-post:list-help:list-archive:list-subscribe
         :list-unsubscribe:content-type;
        bh=ucfkEOvZ57CTHkteDd6WDfn2f2pe9wSsmj9a7DAOar4=;
        b=KMSxIDljW8Ut6CypjYAsKSKsdNPaADOgc30/q/QjSEq7XZbOrYkgF7YZTi05fV7rlq
         az/c+ZmXoOz0+hAy2eMOgk+MYCdUgC4cJWGaulAQ8wNcvY8EtyrhTbiNu6gQqglDGcGc
         MGlpQRYpinsYIGCNtygballbbtMYtR6IzzfBz3k0atC07+9gT1JDWSnVV8j9SHWIt0M4
         SeEzl2wD14CGxskmdzQnzG4Tb/1MuzF8OyVQ9M4VMW4LOPAmcFNXjyDzUe7ZwQvUP5Tg
         INyZTJolklME+BOZTsLpYqsv/eQjpzK4xXsfn/RoQI41TEZU4CJOJknesA4nSYbnviAJ
         A0/w==
X-Gm-Message-State: ALoCoQm/SqTaImms++U40vzhUIRNWE8hfaVxNyOh9y8eqopySmKDaoQXUgE/1p/h38/l8p+CdiBM
X-Received: by 10.182.104.70 with SMTP id gc6mr5944093obb.35.1390203382149;
        Sun, 19 Jan 2014 23:36:22 -0800 (PST)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.49.118.233 with SMTP id kp9ls1575608qeb.4.gmail; Sun, 19 Jan
 2014 23:36:21 -0800 (PST)
X-Received: by 10.224.14.129 with SMTP id g1mr25928275qaa.42.1390203381536;
        Sun, 19 Jan 2014 23:36:21 -0800 (PST)
Original-Received: from mail-qa0-x236.google.com (mail-qa0-x236.google.com [2607:f8b0:400d:c00::236])
        by mx.google.com with ESMTPS id o6si114709qeq.24.2014.01.19.23.36.21
        for <std-proposals@isocpp.org>
        (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
        Sun, 19 Jan 2014 23:36:21 -0800 (PST)
Received-SPF: pass (google.com: domain of jyasskin@google.com designates 2607:f8b0:400d:c00::236 as permitted sender) client-ip=2607:f8b0:400d:c00::236;
Original-Received: by mail-qa0-f54.google.com with SMTP id i13so5323872qae.27
        for <std-proposals@isocpp.org>; Sun, 19 Jan 2014 23:36:21 -0800 (PST)
X-Received: by 10.140.87.54 with SMTP id q51mr23775577qgd.101.1390203381214;
 Sun, 19 Jan 2014 23:36:21 -0800 (PST)
Original-Received: by 10.229.226.196 with HTTP; Sun, 19 Jan 2014 23:36:00 -0800 (PST)
In-Reply-To: <CAGg_6+OHw8jAO_m0Sj1GxkiB__mxPXfMDVh7tEiZsparxqi1HA@mail.gmail.com>
X-Original-Sender: jyasskin@google.com
X-Original-Authentication-Results: mx.google.com;       spf=pass (google.com:
 domain of jyasskin@google.com designates 2607:f8b0:400d:c00::236 as permitted
 sender) smtp.mail=jyasskin@google.com;       dkim=pass header.i=@google.com;
       dmarc=pass (p=REJECT dis=NONE) header.from=google.com
Precedence: list
Mailing-list: list std-proposals@isocpp.org; contact std-proposals+owners@isocpp.org
List-ID: <std-proposals.isocpp.org>
X-Google-Group-Id: 399137483710
List-Post: <http://groups.google.com/a/isocpp.org/group/std-proposals/post>, <mailto:std-proposals@isocpp.org>
List-Help: <http://support.google.com/a/isocpp.org/bin/topic.py?topic=25838>, <mailto:std-proposals+help@isocpp.org>
List-Archive: <http://groups.google.com/a/isocpp.org/group/std-proposals/>
List-Subscribe: <http://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>,
 <mailto:std-proposals+subscribe@isocpp.org>
List-Unsubscribe: <http://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>,
 <mailto:googlegroups-manage+399137483710+unsubscribe@googlegroups.com>
Xref: news.gmane.org gmane.comp.lang.c++.isocpp.proposals:8730
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/8730>

--001a113a54d6b4530004f061f22b
Content-Type: text/plain; charset=ISO-8859-1

On Sun, Jan 19, 2014 at 10:25 PM, Nevin Liber <nevin@eviloverlord.com> wrote:
> On 20 January 2014 00:12, Jeffrey Yasskin <jyasskin@google.com> wrote:
>>
>> > My personal preference for all this is that string_view(nullptr, 0) be
>> > allowed, and it is a Quality of Implementation issue whether or not
>> > sv.data() can ever return a nullptr; i.e., it would be allowed to return
>> > any
>> > legal pointer it wants for an empty string_view.
>>
>> That's interesting. It's easier to both specify and implement to just
>> say that string_view(x, y).data()==x and string_view(x, y).size()==y,
>> assuming [x, x+y) is a valid range. Why would you special-case data()
>> to return arbitrary things when y==0?
>
>
> A debugging implementation may want to ensure that developers aren't
> dependent on "knowing" that a nullptr was passed in.

Thanks. I think I don't personally want that, but I've added your
reason to the "if we want data()==nullptr" section in the attached
draft. I plan to send this to Clark tomorrow (Monday) morning.

-- 

--- 
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
Visit this group at http://groups.google.com/a/isocpp.org/group/std-proposals/.

--001a113a54d6b4530004f061f22b
Content-Type: text/html; charset=UTF-8; name="string_view.html"
Content-Disposition: attachment; filename="string_view.html"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_hqnf6cjp0

PCFET0NUWVBFIGh0bWw+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
Ij4KICA8aGVhZD4KICAgIDxtZXRhIGNvbnRlbnQ9InRleHQvaHRtbDtjaGFyc2V0PVVURi04IiBo
dHRwLWVxdWl2PSJDb250ZW50LVR5cGUiLz4KICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ii8+CiAg
ICA8dGl0bGU+c3RyaW5nX3ZpZXc6IGEgbm9uLW93bmluZyByZWZlcmVuY2UgdG8gYSBzdHJpbmcs
IHJldmlzaW9uIDY8L3RpdGxlPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgpib2R5IHtjb2xvcjog
IzAwMDAwMDsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjt9CgpkZWwge3RleHQtZGVjb3JhdGlv
bjogbGluZS10aHJvdWdoOyBjb2xvcjogIzhCMDA0MDt9CmlucyB7dGV4dC1kZWNvcmF0aW9uOiB1
bmRlcmxpbmU7IGNvbG9yOiAjMDA1MTAwO30KCnByZSBjb2RlIHtkaXNwbGF5OiBpbmxpbmUtYmxv
Y2s7IHdoaXRlLXNwYWNlOiBpbmhlcml0fQpjb2RlIHt3aGl0ZS1zcGFjZTogbm93cmFwfQpjb2Rl
IHdiciB7d2hpdGUtc3BhY2U6IG5vcm1hbH0KCi8qCi53b3JkaW5nIHsgbWF4LXdpZHRoOiA5MGV4
OyB9Ci53b3JkaW5nIC5zZWN0bnVtIHsgbWFyZ2luLXJpZ2h0OiAxZW07IH0KLndvcmRpbmcgLnNl
Y3RuYW1lIHsgZGlzcGxheTogYmxvY2s7IGZsb2F0OiByaWdodDsgIH0KCnNlY3Rpb24ubnVtYmVy
ZWQgeyBjb3VudGVyLXJlc2V0OiBwYXItbnVtOyB9Ci53b3JkaW5nIHA6YmVmb3JlLCAud29yZGlu
ZyBkdDpiZWZvcmUgewogICAgY29udGVudDogY291bnRlcihwYXItbnVtKSAiICI7IGNvdW50ZXIt
aW5jcmVtZW50OiBwYXItbnVtOwogICAgZm9udC1zaXplOiA4MCU7IHBvc2l0aW9uOiBhYnNvbHV0
ZTsgbGVmdDogMmVtfQoqLwoud29yZGluZyB0ZCB7IGJvcmRlci10b3A6IHRoaW4gc29saWQgYmxh
Y2s7IGJvcmRlci1ib3R0b206IHRoaW4gc29saWQgYmxhY2s7IH0KCnNlY3Rpb24uZnVuY3Rpb24g
eyBjbGVhcjogYm90aDsgfQouYXR0cmlidXRlcywgLmF0dHJpYnV0ZSB7bWFyZ2luLWxlZnQ6IDJl
bX0KCi5kb2NpbmZvIHtmbG9hdDogcmlnaHR9Ci5kb2NpbmZvIHAge21hcmdpbjogMDsgdGV4dC1h
bGlnbjpyaWdodDsgZm9udC1zdHlsZTogaXRhbGljfQoKc2VjdGlvbiB7cGFkZGluZy1sZWZ0OiAx
NnB4fQpzZWN0aW9uIGgyLCBzZWN0aW9uIGgzLCBzZWN0aW9uIGg0LCBzZWN0aW9uIGg1LCBzZWN0
aW9uIGg2IHttYXJnaW4tbGVmdDogLTE2cHh9CgpoMiwgaDMsIGg0LCBoNSwgaDYgeyBtYXJnaW4t
Ym90dG9tOiAuNzVlbSB9Cmg1LCBoNiB7IGZvbnQtc2l6ZTogMWVtOyB9Ci53b3JkaW5nIGg0IHsg
Zm9udC1zaXplOiAxLjE3ZW0gfQpwIHttYXJnaW4tdG9wOiAuNWVtOyBtYXJnaW4tYm90dG9tOiAu
NWVtfQpwOmZpcnN0LWNoaWxkLCB1bCwgb2wge21hcmdpbi10b3A6IDB9Ci50b2RvIGR0Om5vdCg6
Zmlyc3QtY2hpbGQpIHttYXJnaW4tdG9wOiAuNWVtfQpwLCBsaSwgZGQsIHRhYmxlIHttYXgtd2lk
dGg6IDgwZXh9Cgp0YWJsZSB7IG1hcmdpbjogMWVtOyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNl
OyAgYm9yZGVyOiB0aGluIHNvbGlkIGJsYWNrfQouc3RyYXdwb2xsIHRkIHt0ZXh0LWFsaWduOiBj
ZW50ZXJ9Ci53b3JkaW5nIHRhYmxlIHsgYm9yZGVyOiBkb3VibGU7IH0KY2FwdGlvbiB7IHdoaXRl
LXNwYWNlOiBwcmU7IH0KLndvcmRpbmcgdGQgeyB0ZXh0LWFsaWduOiBsZWZ0OyB9CgoKLmV4YW1w
bGUge2Rpc3BsYXk6IGlubGluZS1ibG9jazsgY2xlYXI6IGJvdGg7IG1hcmdpbi1sZWZ0OiAxZXg7
CiAgICAgICAgICBib3JkZXI6IHRoaW4gc29saWQgIzBlMDsgYmFja2dyb3VuZC1jb2xvcjogI2Y4
ZjhmODsgcGFkZGluZzogMWV4fQoKLmVkbm90ZSB7ZGlzcGxheTogaW5saW5lLWJsb2NrOyBjbGVh
cjogYm90aDsgbWFyZ2luLWxlZnQ6IDFleDsKICAgICAgICAgYm9yZGVyOiB0aGluIHNvbGlkICMw
ZTA7IGJhY2tncm91bmQtY29sb3I6ICNmOGY4Zjg7IHBhZGRpbmc6IDFleH0KCmRpdi5lZG5vdGUg
PiAqOmZpcnN0LWNoaWxkOjpiZWZvcmUge2NvbnRlbnQ6ICJOb3RlOiAiOyBkaXNwbGF5OiBpbmxp
bmU7IGZvbnQtd2VpZ2h0OiBib2xkfQpkaXYuZWRub3RlIHtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
IG1hcmdpbi1sZWZ0OiAxZXg7IGJvcmRlcjogdGhpbiBzb2xpZCAjZmI2OwogICAgICAgICAgICBw
YWRkaW5nOiAxZXg7IGJhY2tncm91bmQtY29sb3I6ICNmZmY0ZGR9Cgo6dGFyZ2V0IHtiYWNrZ3Jv
dW5kLWNvbG9yOiAjZmVkfQo8L3N0eWxlPgoKPC9oZWFkPgo8Ym9keT4KICA8aGVhZGVyPgogICAg
PGRpdiBjbGFzcz0iZG9jaW5mbyI+CiAgICAgIDxwPklTTy9JRUMgSlRDMSBTQzIyIFdHMjEgRDM4
NDk8L3A+CiAgICAgIDxwPkRhdGU6IDx0aW1lIHB1YmRhdGU9IiI+MjAxNC0wMS0xOTwvdGltZT48
L3A+CiAgICAgIDxhZGRyZXNzPgogICAgICAgIDxwPkplZmZyZXkgWWFzc2tpbiAmbHQ7PGEgaHJl
Zj0ibWFpbHRvOmp5YXNza2luQGdvb2dsZS5jb20iPmp5YXNza2luQGdvb2dsZS5jb208L2E+Jmd0
OzwvcD4KICAgICAgPC9hZGRyZXNzPgogICAgPC9kaXY+CiAgICA8aDE+PGNvZGU+c3RyaW5nX3Zp
ZXc8L2NvZGU+OiBhIG5vbi1vd25pbmcgcmVmZXJlbmNlIHRvIGEgc3RyaW5nLCByZXZpc2lvbiA2
PC9oMT4KICA8L2hlYWRlcj4KICA8cD48c21hbGw+PGEgaHJlZj0iI21haW5jb250ZW50Ij5Ta2lw
IHRhYmxlIG9mIGNvbnRlbnRzPC9hPjwvc21hbGw+PC9wPgogIDxuYXYgaWQ9InRvYyI+PC9uYXY+
CiAgPGEgaWQ9Im1haW5jb250ZW50Ij48L2E+CiAgPHNlY3Rpb24+CiAgICA8aDIgaWQ9Im92ZXJ2
aWV3Ij5PdmVydmlldzwvaDI+CiAgICA8cD5SZWZlcmVuY2VzIHRvIHN0cmluZ3MgYXJlIHZlcnkg
Y29tbW9uIGluIEMrKyBwcm9ncmFtcywgYnV0CiAgICBvZnRlbiB0aGUgY2FsbGVlIGRvZXNuJ3Qg
Y2FyZSBhYm91dCB0aGUgZXhhY3QgdHlwZSBvZiB0aGUgb2JqZWN0CiAgICB0aGF0IG93bnMgdGhl
IGRhdGEuIDMgdGhpbmdzIGdlbmVyYWxseSBoYXBwZW4gaW4gdGhpcyBjYXNlOjwvcD4KICAgIDxv
bD4KICAgICAgPGxpPlRoZSBjYWxsZWUgdGFrZXMgPGNvZGU+Y29uc3Qgc3RkOjpzdHJpbmcmPC9j
b2RlPiBhbmQgaW5zaXN0cwogICAgICB0aGF0IGNhbGxlcnMgY29weSB0aGUgZGF0YSBpZiBpdCB3
YXMgb3JpZ2luYWxseSBvd25lZCBieSBhbm90aGVyCiAgICAgIHR5cGUuPC9saT4KCiAgICAgIDxs
aT5UaGUgY2FsbGVlIHRha2VzIHR3byBwYXJhbWV0ZXJzJiM4MjEyO2EgPGNvZGU+Y2hhcio8L2Nv
ZGU+IGFuZAogICAgICBhIGxlbmd0aCAob3IganVzdCA8Y29kZT5jaGFyKjwvY29kZT4gYW5kIGFz
c3VtZXMKICAgICAgMC10ZXJtaW5hdGlvbikmIzgyMTI7YW5kIHJlZHVjZXMgdGhlIHJlYWRhYmls
aXR5IGFuZCBzYWZldHkgb2YKICAgICAgY2FsbHMgYW5kIGxvc2VzIGFueSBoZWxwZXIgZnVuY3Rp
b25zIHRoZSBvcmlnaW5hbCB0eXBlCiAgICAgIHByb3ZpZGVkLjwvbGk+CgogICAgICA8bGk+VGhl
IGNhbGxlZSBpcyByZXdyaXR0ZW4gYXMgYSB0ZW1wbGF0ZSBhbmQgaXRzIGltcGxlbWVudGF0aW9u
CiAgICAgIGlzIG1vdmVkIHRvIGEgaGVhZGVyIGZpbGUuIFRoaXMgY2FuIGluY3JlYXNlIGZsZXhp
YmlsaXR5IGlmIHRoZQogICAgICBhdXRob3IgdGFrZXMgdGhlIHRpbWUgdG8gY29kZSB0byBhIHdl
YWtlciBpdGVyYXRvciBjb25jZXB0LCBidXQgaXQKICAgICAgY2FuIGFsc28gaW5jcmVhc2UgY29t
cGlsZSB0aW1lIGFuZCBjb2RlIHNpemUsIGFuZCBjYW4gZXZlbgogICAgICBpbnRyb2R1Y2UgYnVn
cyBpZiB0aGUgYXV0aG9yIG1pc3NlcyBhbiBhc3N1bXB0aW9uIHRoYXQgdGhlCiAgICAgIGFyZ3Vt
ZW50J3MgY29udGVudHMgYXJlIGNvbnRpZ3VvdXMuPC9saT4KICAgIDwvb2w+CgogICAgPHA+R29v
Z2xlLCBMTFZNLCBhbmQgQmxvb21iZXJnIGhhdmUgaW5kZXBlbmRlbnRseSBpbXBsZW1lbnRlZCBh
CiAgICBzdHJpbmctcmVmZXJlbmNlIHR5cGUgdG8gZW5jYXBzdWxhdGUgdGhpcyBraW5kIG9mIGFy
Z3VtZW50LiA8YQogICAgaHJlZj0iI2Jhc2ljLnN0cmluZy52aWV3Ij48Y29kZT5zdHJpbmdfdmll
dzwvY29kZT48L2E+IGlzIGltcGxpY2l0bHkKICAgIGNvbnN0cnVjdGlibGUgZnJvbSA8Y29kZT5j
b25zdCBjaGFyKjwvY29kZT4gYW5kIDxjb2RlPnN0ZDo6c3RyaW5nPC9jb2RlPi4gSXQKICAgIHBy
b3ZpZGVzIHRoZSA8Y29kZT5jb25zdDwvY29kZT4gbWVtYmVyIG9wZXJhdGlvbnMgZnJvbQogICAg
PGNvZGU+c3RkOjpzdHJpbmc8L2NvZGU+IHRvIGVhc2UgY29udmVyc2lvbi4gVGhpcyBwYXBlciBm
b2xsb3dzIDxhCiAgICBocmVmPSJodHRwOi8vc3JjLmNocm9taXVtLm9yZy92aWV3dmMvY2hyb21l
L3RydW5rL3NyYy9iYXNlL3N0cmluZ3Mvc3RyaW5nX3BpZWNlLmg/dmlldz1tYXJrdXAiPkNocm9t
aXVtPC9hPgogICAgYW5kIDxhCiAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYmxvb21iZXJn
L2JzbC9ibG9iL21hc3Rlci9ncm91cHMvYnNsL2JzbHN0bC9ic2xzdGxfc3RyaW5ncmVmLmgiPkJs
b29tYmVyZzwvYT4KICAgIGluIGV4dGVuZGluZyA8Y29kZT5zdHJpbmdfdmlldzwvY29kZT4gdG8g
PGNvZGU+PGEKICAgIGhyZWY9IiNiYXNpYy5zdHJpbmcudmlldyI+YmFzaWNfc3RyaW5nX3ZpZXc8
L2E+Jmx0O2NoYXJUJmd0OzwvY29kZT4sIGFuZAogICAgZnVydGhlciBleHRlbmRzIGl0IHRvIGlu
Y2x1ZGUgYSA8Y29kZT50cmFpdHM8L2NvZGU+IHBhcmFtZXRlciB0byBtYXRjaAogICAgPGNvZGU+
YmFzaWNfc3RyaW5nPC9jb2RlPi4gV2UgcHJvdmlkZSB0eXBlZGVmcyB0byBwYXJhbGxlbCB0aGUg
NAogICAgPGNvZGU+YmFzaWNfc3RyaW5nPC9jb2RlPiB0eXBlZGVmcy48L3A+CgogICAgPHA+Qm90
aCBHb29nbGUncyBhbmQgTExWTSdzIDxjb2RlPnN0cmluZ192aWV3PC9jb2RlPiB0eXBlcyAoYnV0
IG5vdAogICAgQmxvb21iZXJnJ3MpIGV4dGVuZCB0aGUgaW50ZXJmYWNlIGZyb20gPGNvZGU+c3Rk
OjpzdHJpbmc8L2NvZGU+IHRvIHByb3ZpZGUKICAgIHNvbWUgaGVscGZ1bCB1dGlsaXR5IGZ1bmN0
aW9uczo8L3A+CiAgICA8dWw+CiAgICAgIDxsaT5zdGFydHNfd2l0aDwvbGk+CiAgICAgIDxsaT5l
bmRzX3dpdGg8L2xpPgogICAgICA8bGk+PGEgaHJlZj0iI3N0cmluZy52aWV3Lm1vZGlmaWVycyI+
cmVtb3ZlX3ByZWZpeDwvYT48L2xpPgogICAgICA8bGk+PGEgaHJlZj0iI3N0cmluZy52aWV3Lm1v
ZGlmaWVycyI+cmVtb3ZlX3N1ZmZpeDwvYT48L2xpPgogICAgICA8bGk+c3BsaXQ8L2xpPgogICAg
ICA8bGk+dHJpbTwvbGk+CiAgICAgIDxsaT5jb25zdW1lX3ByZWZpeDwvbGk+CiAgICAgIDxsaT5j
b3VudDwvbGk+CiAgICA8L3VsPgoKICAgIDxwPlZlcnNpb25zIG9mIDxjb2RlPnN0ZDo6c3RyaW5n
PC9jb2RlPiBvcGVyYXRpb25zIHRoYXQgdGFrZQogICAgPGNvZGU+c3RyaW5nX3ZpZXc8L2NvZGU+
IGluc3RlYWQgYWxzbyBnaXZlIHRoZSBzdGFuZGFyZCBhIHdheSB0byBwcm92aWRlCiAgICBpbi1w
bGFjZSBvcGVyYXRpb25zIG9uIG5vbi1udWxsLXRlcm1pbmF0ZWQgYnl0ZS9jaGFyYWN0ZXIgc2Vx
dWVuY2VzOjwvcD4KICAgIDx1bD4KICAgICAgPGxpPjxhIGhyZWY9IiNiYXNpYy5zdHJpbmcuaGFz
aCI+aGFzaDwvYT4sIGFzIHJlcXVlc3RlZCBieSBjKytzdGQtbGliLTMxOTM1PC9saT4KICAgICAg
PGxpPkluIGEgZnV0dXJlIGFkZGl0aW9uLCBudW1lcmljIGNvbnZlcnNpb25zPC9saT4KICAgIDwv
dWw+CiAgPC9zZWN0aW9uPgoKICA8c2VjdGlvbj4KICAgIDxoMiBpZD0iaW52ZW50aW9ucyI+SW52
ZW50aW9ucyBpbiB0aGlzIHBhcGVyPC9oMj4KCiAgICA8cD5Hb29nbGUncyA8Y29kZT5TdHJpbmdQ
aWVjZTwvY29kZT4gcHJvdmlkZXMgPGNvZGU+YXNfc3RyaW5nPC9jb2RlPiBhbmQKICAgIDxjb2Rl
PlRvU3RyaW5nPC9jb2RlPiBtZXRob2RzIHRvIGNvbnZlcnQgdG8gPGNvZGU+c3RkOjpzdHJpbmc8
L2NvZGU+LiBMTFZNJ3MKICAgIDxjb2RlPlN0cmluZ1JlZjwvY29kZT4gcHJvdmlkZXMgYm90aCBh
IDxjb2RlPnN0cigpPC9jb2RlPiBleHBsaWNpdAogICAgY29udmVyc2lvbiBhbmQgYW4gaW1wbGlj
aXQgPGNvZGU+b3BlcmF0b3Igc3RkOjpzdHJpbmcoKTwvY29kZT4uIFNpbmNlIHRoaXMKICAgIHBh
cGVyIGJ1aWxkcyBvbiB0b3Agb2YgQysrMTEsIHdlIHByb3ZpZGUgYW4gPGEKICAgIGhyZWY9IiNz
dHJpbmcuY29ucyI+PGVtPjxjb2RlPmV4cGxpY2l0PC9jb2RlPjwvZW0+IGNvbnZlcnNpb24KICAg
IGNvbnN0cnVjdG9yPC9hPiBhcyB3ZWxsIGFzIGEgbGVzcyB2ZXJib3NlIDxhCiAgICBocmVmPSIj
c3RyaW5nLnZpZXcubm9ubWVtIj48Y29kZT50b19zdHJpbmc8L2NvZGU+IGZ1bmN0aW9uPC9hPi48
L3A+CgogICAgPHA+Tm9uZSBvZiB0aGUgZXhpc3RpbmcgY2xhc3NlcyBoYXZlIDxjb2RlPmNvbnN0
ZXhwcjwvY29kZT4gbWV0aG9kcy48L3A+CiAgPC9zZWN0aW9uPgoKICA8c2VjdGlvbj4KICAgIDxo
MiBpZD0iYmlrZXNoZWQiPkJpa2VzaGVkITwvaDI+CgogICAgPHA+V2UgZm91bmQgcm91Z2ggPGEK
ICAgIGhyZWY9Imh0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vYS9pc29jcHAub3JnL2QvdG9waWMv
c3RkLXByb3Bvc2Fscy81c1c4eXA1aThtby9kaXNjdXNzaW9uIj5jb25zZW5zdXMKICAgIGFyb3Vu
ZCByZW5hbWluZyB0aGlzIGNsYXNzIHRvIDxjb2RlPnN0cmluZ192aWV3PC9jb2RlPjwvYT4uIE90
aGVyIG9wdGlvbnMKICAgIGluY2x1ZGVkOjwvcD4KCiAgICA8dWw+CiAgICAgIDxsaT5iYXNpY19z
dHJpbmdfcmFuZ2UgKG1lYW5pbmcgYSB0ZW1wbGF0ZWQgaXRlcmF0b3IgcmFuZ2UpPC9saT4KICAg
ICAgPGxpPmNoYXJfcmFuZ2U8L2xpPgogICAgICA8bGk+Y29uc3Rfc3RyaW5nX2ZhY2FkZTwvbGk+
CiAgICAgIDxsaT5leHRfc3RyaW5nPC9saT4KICAgICAgPGxpPmV4dGVybmFsX3N0cmluZzwvbGk+
CiAgICAgIDxsaT5zdHJfcmVmPC9saT4KICAgICAgPGxpPnN0cmluZ19jcmVmIChhbmQgc3RyaW5n
X3JlZiBmb3Igbm9uLWNvbnN0KTwvbGk+CiAgICAgIDxsaT5zdHJpbmdfcGllY2U8L2xpPgogICAg
ICA8bGk+c3RyaW5nX3JhbmdlPC9saT4KICAgICAgPGxpPnN0cmluZ19yZWY8L2xpPgogICAgICA8
bGk+PHN0cm9uZz5zdHJpbmdfdmlldzwvc3Ryb25nPjwvbGk+CiAgICAgIDxsaT5zdWJfc3RyaW5n
PC9saT4KICAgIDwvdWw+CiAgPC9zZWN0aW9uPgoKICA8c2VjdGlvbj4KICAgIDxoMiBpZD0ibW9k
aWZpY2F0aW9ucyI+TW9kaWZpY2F0aW9ucyB2cyBzdGQ6OnN0cmluZzwvaDI+CgogICAgPHA+VGhl
IGludGVyZmFjZSBvZiA8Y29kZT5zdHJpbmdfdmlldzwvY29kZT4gaXMgc2ltaWxhciB0bywgYnV0
IG5vdCBleGFjdGx5CiAgICB0aGUgc2FtZSBhcyB0aGUgaW50ZXJmYWNlIG9mIDxjb2RlPnN0ZDo6
c3RyaW5nPC9jb2RlPi4gIEluIGdlbmVyYWwsIHdlIHdhbnQKICAgIHRvIG1pbmltaXplIGRpZmZl
cmVuY2VzIGJldHdlZW4gPGNvZGU+c3RkOjpzdHJpbmc8L2NvZGU+IGFuZAogICAgPGNvZGU+c3Ry
aW5nX3ZpZXc8L2NvZGU+IHNvIHRoYXQgdXNlcnMgY2FuIGdvIGJhY2sgYW5kIGZvcnRoIGJldHdl
ZW4gdGhlIHR3bwogICAgb2Z0ZW4uICBUaGlzIHNlY3Rpb24ganVzdGlmaWVzIHRoZSBkaWZmZXJl
bmNlcyB3aG9zZSB1dGlsaXR5IHdlIHRoaW5rCiAgICBvdmVyY29tZXMgdGhhdCBnZW5lcmFsIHJ1
bGUuPC9wPgoKICAgIDxoMyBpZD0iYWRkaXRpb25zIj5BZGRpdGlvbjwvaDM+CiAgICA8dWw+CiAg
ICAgIDxsaT48Y29kZT48YQogICAgICBocmVmPSIjc3RyaW5nLnZpZXcubW9kaWZpZXJzIj5yZW1v
dmVfcHJlZml4KCk8L2E+PC9jb2RlPiBhbmQKICAgICAgPGNvZGU+PGEKICAgICAgaHJlZj0iI3N0
cmluZy52aWV3Lm1vZGlmaWVycyI+cmVtb3ZlX3N1ZmZpeCgpPC9hPjwvY29kZT4gbWFrZQogICAg
ICBpdCBlYXN5IHRvIHBhcnNlIHN0cmluZ3MgdXNpbmcgPGNvZGU+c3RyaW5nX3ZpZXc8L2NvZGU+
LiAgVGhleSBjb3VsZCBib3RoCiAgICAgIGJlIGltcGxlbWVudGVkIGFzIG5vbi1tZW1iZXIgZnVu
Y3Rpb25zIChlLmcuIDxjb2RlPnN0ci5yZW1vdmVfcHJlZml4KG4pCiAgICAgIDx3YnIvPj09PTx3
YnIvPiBzdHIgPSBzdHIuc3Vic3RyKG4pPC9jb2RlPiksIGJ1dCBpdCBzZWVtcyB1c2VmdWwgdG8K
ICAgICAgcHJvdmlkZSB0aGUgc2ltcGxlc3QgbXV0YXRvcnMgYXMgbWVtYmVyIGZ1bmN0aW9ucy4g
IE5vdGUgdGhhdCBvdGhlcgogICAgICB0cmF2ZXJzYWwgcHJpbWl0aXZlcyBuZWVkIHRvIGJlIG5v
bi1tZW1iZXJzIHNvIHRoYXQgdGhleSdyZQogICAgICBleHRlbnNpYmxlLCB3aGljaCBtYXkgYXJn
dWUgZm9yIHB1bGxpbmcgdGhlc2Ugb3V0IHRvby48L2xpPgogICAgPC91bD4KICA8L3NlY3Rpb24+
CgogIDxzZWN0aW9uPgogICAgPGgyIGlkPSJ3aHktbm90Ij5XaHkgbm90IGNoYW5nZSAmbHQ7bXkt
cGV0LWZlYXR1cmU+PzwvaDI+CiAgICA8cD5JIGhhdmVuJ3QgdGFrZW4gZXZlcnkgc3VnZ2VzdGlv
biB0byBjaGFuZ2UgPGNvZGU+c3RyaW5nX3ZpZXc8L2NvZGU+LiAgVGhpcwogICAgc2VjdGlvbiBl
eHBsYWlucyB0aGUgcmF0aW9uYWxlcy48L3A+CgogICAgPHNlY3Rpb24+CiAgICAgIDxoMyBpZD0i
cmVtb3ZlLWZpbmQiPlJlbW92ZSB0aGUgZmluZCooKSBtZXRob2RzPC9oMz4KCiAgICAgIDxwPk1h
bnkgcGVvcGxlIGhhdmUgYXNrZWQgd2h5IHdlIGFyZW4ndCByZW1vdmluZyBhbGwgb2YgdGhlCiAg
ICAgIDxjb2RlPmZpbmQ8dmFyPio8L3Zhcj48L2NvZGU+IG1ldGhvZHMsIHNpbmNlIHRoZXkncmUg
d2lkZWx5IGNvbnNpZGVyZWQgYQogICAgICB3YXJ0IG9uIDxjb2RlPnN0ZDo6c3RyaW5nPC9jb2Rl
Pi4gIEZpcnN0LCB3ZSdkIGxpa2UgdG8gbWFrZSBpdCBhcyBlYXN5IGFzCiAgICAgIHBvc3NpYmxl
IHRvIGNvbnZlcnQgY29kZSB0byB1c2UgPGNvZGU+c3RyaW5nX3ZpZXc8L2NvZGU+LCBzbyBpdCdz
IHVzZWZ1bCB0bwogICAgICBrZWVwIHRoZSBpbnRlcmZhY2UgYXMgc2ltaWxhciBhcyByZWFzb25h
YmxlIHRvIDxjb2RlPnN0ZDo6c3RyaW5nPC9jb2RlPi4KICAgICAgU2Vjb25kLCByZXBsYWNpbmcg
dGhlc2UgdGhlc2UgbWV0aG9kcyB3aXRoIHVzZXMgb2YgdGhlIHN0YW5kYXJkIGFsZ29yaXRobXMK
ICAgICAgbGlicmFyeSByZXF1aXJlcyBzd2l0Y2hpbmcgZnJvbSBpbmRpY2VzIHRvIGl0ZXJhdG9y
cywgd3JpdGluZwogICAgICBzb21ld2hhdC1jb21wbGljYXRlZCBjb252ZXJzaW9uIGNvZGUsIGFu
ZC9vciBwYXNzaW5nIGN1c3RvbSBsYW1iZGFzIHRvCiAgICAgIDxjb2RlPmZpbmRfaWY8L2NvZGU+
LiAgTGV0J3MgbG9vayBhdCB0aGUgcmVwbGFjZW1lbnQgY29kZSBmb3IgZWFjaCBvZiB0aGUKICAg
ICAgcmVtYWluaW5nIG1ldGhvZHM6PC9wPgoKICAgICAgPGRsPgogICAgICAgIDxkdD48Y29kZT5o
YXlzdGFjay5maW5kKG5lZWRsZSk8L2NvZGU+PC9kdD4KICAgICAgICA8ZGQ+UmVwbGFjZWQgYnk6
CiAgICAgICAgPHByZSBjbGFzcz0iZXhhbXBsZSI+PGNvZGU+YXV0byBpdGVyID0gc3RkOjpzZWFy
Y2goaGF5c3RhY2suYmVnaW4oKSwgaGF5c3RhY2suZW5kKCksCiAgICAgICAgICAgICAgICAgICAg
ICAgIG5lZWRsZS5iZWdpbigpLCBuZWVkbGUuZW5kKCkpOwpyZXR1cm4gaXRlciA9PSBoYXlzdGFj
ay5lbmQoKSA/IHN0ZDo6c3RyaW5nOjpucG9zIDogaXRlciAtIGhheXN0YWNrLmJlZ2luKCk7PC9j
b2RlPjwvcHJlPjwvZGQ+CgogICAgICAgIDxkdD48Y29kZT5oYXlzdGFjay5yZmluZChuZWVkbGUp
PC9jb2RlPjwvZHQ+CiAgICAgICAgPGRkPlJlcGxhY2VkIGJ5OgogICAgICAgIDxwcmUgY2xhc3M9
ImV4YW1wbGUiPjxjb2RlPmF1dG8gaXRlciA9IHN0ZDo6ZmluZF9lbmQoaGF5c3RhY2suYmVnaW4o
KSwgaGF5c3RhY2suZW5kKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZGxlLmJlZ2lu
KCksIG5lZWRsZS5lbmQoKSk7CnJldHVybiBpdGVyID09IGhheXN0YWNrLmVuZCgpID8gc3RkOjpz
dHJpbmc6Om5wb3MgOiBpdGVyIC0gaGF5c3RhY2suYmVnaW4oKTs8L2NvZGU+PC9wcmU+PC9kZD4K
CiAgICAgICAgPGR0Pjxjb2RlPmhheXN0YWNrLmZpbmRfZmlyc3Rfb2YobmVlZGxlcyk8L2NvZGU+
PC9kdD4KICAgICAgICA8ZGQ+UmVwbGFjZWQgYnk6CiAgICAgICAgPHByZSBjbGFzcz0iZXhhbXBs
ZSI+PGNvZGU+YXV0byBpdGVyID0gc3RkOjpmaW5kX2ZpcnN0X29mKGhheXN0YWNrLmJlZ2luKCks
IGhheXN0YWNrLmVuZCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZGxlcy5i
ZWdpbigpLCBuZWVkbGVzLmVuZCgpKTsKcmV0dXJuIGl0ZXIgPT0gaGF5c3RhY2suZW5kKCkgPyBz
dGQ6OnN0cmluZzo6bnBvcyA6IGl0ZXIgLSBoYXlzdGFjay5iZWdpbigpOzwvY29kZT48L3ByZT48
L2RkPgoKICAgICAgICA8ZHQ+PGNvZGU+aGF5c3RhY2suZmluZF9sYXN0X29mKG5lZWRsZXMpPC9j
b2RlPjwvZHQ+CiAgICAgICAgPGRkPlJlcGxhY2VkIGJ5OgogICAgICAgIDxwcmUgY2xhc3M9ImV4
YW1wbGUiPjxjb2RlPmF1dG8gaXRlciA9IHN0ZDo6ZmluZF9maXJzdF9vZihoYXlzdGFjay48c3Ry
b25nPnI8L3N0cm9uZz5iZWdpbigpLCBoYXlzdGFjay48c3Ryb25nPnI8L3N0cm9uZz5lbmQoKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRsZXMuYmVnaW4oKSwgbmVlZGxlcy5l
bmQoKSk7CnJldHVybiBpdGVyID09IGhheXN0YWNrLjxzdHJvbmc+cjwvc3Ryb25nPmVuZCgpID8g
c3RkOjpzdHJpbmc6Om5wb3MgOiBpdGVyPHN0cm9uZz4uYmFzZSgpIC0gMTwvc3Ryb25nPiAtIGhh
eXN0YWNrLmJlZ2luKCk7PC9jb2RlPjwvcHJlPjwvZGQ+CgogICAgICAgIDxkdD48Y29kZT5oYXlz
dGFjay5maW5kX2ZpcnN0X25vdF9vZihzdHJhdyk8L2NvZGU+PC9kdD4KICAgICAgICA8ZGQ+UmVw
bGFjZWQgYnk6CiAgICAgICAgPHByZSBjbGFzcz0iZXhhbXBsZSI+PGNvZGU+YXV0byBpdGVyID0g
c3RkOjpmaW5kX2lmKGhheXN0YWNrLmJlZ2luKCksIGhheXN0YWNrLmVuZCgpLCBbJmFtcDtdKGNo
YXIgYykgewogIHJldHVybiBzdGQ6OmZpbmQoc3RyYXcuYmVnaW4oKSwgc3RyYXcuZW5kKCksIGMp
ID09IHN0cmF3LmVuZCgpOwp9KTsKcmV0dXJuIGl0ZXIgPT0gaGF5c3RhY2suZW5kKCkgPyBzdGQ6
OnN0cmluZzo6bnBvcyA6IGl0ZXIgLSBoYXlzdGFjay5iZWdpbigpOzwvY29kZT48L3ByZT48L2Rk
PgoKICAgICAgICA8ZHQ+PGNvZGU+aGF5c3RhY2suZmluZF9sYXN0X25vdF9vZihzdHJhdyk8L2Nv
ZGU+PC9kdD4KICAgICAgICA8ZGQ+UmVwbGFjZWQgYnk6CiAgICAgICAgPHByZSBjbGFzcz0iZXhh
bXBsZSI+PGNvZGU+YXV0byBpdGVyID0gc3RkOjpmaW5kX2lmKGhheXN0YWNrLjxzdHJvbmc+cjwv
c3Ryb25nPmJlZ2luKCksIGhheXN0YWNrLjxzdHJvbmc+cjwvc3Ryb25nPmVuZCgpLCBbJmFtcDtd
KGNoYXIgYykgewogIHJldHVybiBzdGQ6OmZpbmQoc3RyYXcuYmVnaW4oKSwgc3RyYXcuZW5kKCks
IGMpID09IHN0cmF3LmVuZCgpOwp9KTsKcmV0dXJuIGl0ZXIgPT0gaGF5c3RhY2suPHN0cm9uZz5y
PC9zdHJvbmc+ZW5kKCkgPyBzdGQ6OnN0cmluZzo6bnBvcyA6IGl0ZXI8c3Ryb25nPi5iYXNlKCkg
LSAxPC9zdHJvbmc+IC0gaGF5c3RhY2suYmVnaW4oKTs8L2NvZGU+PC9wcmU+PC9kZD4KICAgICAg
PC9kbD4KCiAgICAgIDxwPjxjb2RlPmZpbmQ8L2NvZGU+LCA8Y29kZT5yZmluZDwvY29kZT4sIGFu
ZCA8Y29kZT5maW5kX2ZpcnN0X29mPC9jb2RlPgogICAgICBhcmUgc3RyYWlnaHRmb3J3YXJkLCBh
bHRob3VnaCB0aGUgY29udmVyc2lvbiBmcm9tIGluZGljZXMgdG8gaXRlcmF0b3JzCiAgICAgIHdv
dWxkIHByZXZlbnQgbWFueSB1c2VycyBmcm9tIHN3aXRjaGluZyBldmVuIHRvIHRoZW0uCiAgICAg
IDxjb2RlPmZpbmRfbGFzdF9vZjwvY29kZT4sIDxjb2RlPmZpbmRfZmlyc3Rfbm90X29mPC9jb2Rl
PiwgYW5kCiAgICAgIDxjb2RlPmZpbmRfbGFzdF9ub3Rfb2Y8L2NvZGU+IGdldCBwcm9ncmVzc2l2
ZWx5IHdvcnNlIHRvIGhhbmRsZSBldmVuIGluIGFuCiAgICAgIGl0ZXJhdG9yLWJhc2VkIGZ1bmN0
aW9uLjwvcD4KCiAgICAgIDxwPkRpc2N1c3Npb24gaW4gQnJpc3RvbCBjb25jbHVkZWQgdGhhdCA8
Y29kZT5zdHJpbmdfdmlldzwvY29kZT4gc2hvdWxkCiAgICAgIGluY2x1ZGUgYWxsIG9mIHRoZSBj
b25zdCBzaWduYXR1cmVzIGZyb20gPGNvZGU+c3RyaW5nPC9jb2RlPi48L3A+CgogICAgICA8dGFi
bGUgY2xhc3M9InN0cmF3cG9sbCI+CiAgICAgICAgPGNhcHRpb24+QnJpc3RvbCBzdHJhdyBwb2xs
IG9uICJTaG91bGQgd2Uga2VlcCB0aGUgcG9zL24gYXJndW1lbnRzIHRvIGZpbmQsIGV0Yz8iPC9j
YXB0aW9uPgogICAgICAgIDx0cj48dGQ+U0Y8L3RkPjx0ZD5XRjwvdGQ+PHRkPk48L3RkPjx0ZD5X
QTwvdGQ+PHRkPlNBPC90ZD48L3RyPgogICAgICAgIDx0cj48dGQ+NTwvdGQ+PHRkPjQ8L3RkPjx0
ZD4xPC90ZD48dGQ+MjwvdGQ+PHRkPjA8L3RkPjwvdHI+CiAgICAgIDwvdGFibGU+CiAgICAgIDx0
YWJsZSBjbGFzcz0ic3RyYXdwb2xsIj4KICAgICAgICA8Y2FwdGlvbj5CcmlzdG9sIHN0cmF3IHBv
bGwgb24gIlNob3VsZCB3ZSBrZWVwIHRoZSBjb3B5KCkgbWV0aG9kPyI8L2NhcHRpb24+CiAgICAg
ICAgPHRyPjx0ZD5TRjwvdGQ+PHRkPldGPC90ZD48dGQ+TjwvdGQ+PHRkPldBPC90ZD48dGQ+U0E8
L3RkPjwvdHI+CiAgICAgICAgPHRyPjx0ZD40PC90ZD48dGQ+MjwvdGQ+PHRkPjI8L3RkPjx0ZD4z
PC90ZD48dGQ+MjwvdGQ+PC90cj4KICAgICAgPC90YWJsZT4KICAgIDwvc2VjdGlvbj4KCiAgICA8
c2VjdGlvbj4KICAgICAgPGgzIGlkPSJtdXRhYmxlIj5NYWtlIDxjb2RlPmJhc2ljX3N0cmluZ192
aWV3Jmx0O2NoYXI+PC9jb2RlPiBtdXRhYmxlPC9oMz4KCiAgICAgIDxwPuKApiBhbmQgdXNlIDxj
b2RlPmJhc2ljX3N0cmluZ192aWV3Jmx0O2NvbnN0IGNoYXI+PC9jb2RlPiBmb3IgdGhlIGNvbnN0
YW50CiAgICAgIGNhc2UuICBUaGUgY29uc3RhbnQgY2FzZSBpcyBlbm91Z2ggbW9yZSBjb21tb24g
dGhhbiB0aGUgbXV0YWJsZSBjYXNlIHRoYXQKICAgICAgaXQgbmVlZHMgdG8gYmUgdGhlIGRlZmF1
bHQuICBNYWtpbmcgdGhlIG11dGFibGUgY2FzZSB0aGUgZGVmYXVsdCB3b3VsZAogICAgICBwcmV2
ZW50IHBhc3Npbmcgc3RyaW5nIGxpdGVyYWxzIGludG8gPGNvZGU+c3RyaW5nX3ZpZXc8L2NvZGU+
IHBhcmFtZXRlcnMsCiAgICAgIHdoaWNoIHdvdWxkIGRlZmVhdCBhIHNpZ25pZmljYW50IHVzZSBj
YXNlIGZvciA8Y29kZT5zdHJpbmdfdmlldzwvY29kZT4uICBJbgogICAgICBhIHNvbWV3aGF0IGFu
YWxvZ291cyBzaXRhdGlvbiwgTExWTSBkZWZpbmVkIGFuIDxhCiAgICAgIGhyZWY9Imh0dHA6Ly9s
bHZtLm9yZy92aWV3dmMvbGx2bS1wcm9qZWN0L2xsdm0vdHJ1bmsvaW5jbHVkZS9sbHZtL0FEVC9B
cnJheVJlZi5oP3ZpZXc9bG9nIj48Y29kZT5BcnJheVJlZjwvY29kZT4KICAgICAgY2xhc3M8L2E+
IGluIEZlYiAyMDExLCBhbmQgZGlkbid0IGZpbmQgYSBuZWVkIGZvciB0aGUgbWF0Y2hpbmcKICAg
ICAgPGNvZGU+TXV0YWJsZUFycmF5UmVmPC9jb2RlPiB1bnRpbCBKYW4gMjAxMi4gIFRoZXkgc3Rp
bGwgaGF2ZW4ndCBuZWVkZWQgYQogICAgICBtdXRhYmxlIHZlcnNpb24gb2YgPGEKICAgICAgaHJl
Zj0iaHR0cDovL2xsdm0ub3JnL3ZpZXd2Yy9sbHZtLXByb2plY3QvbGx2bS90cnVuay9pbmNsdWRl
L2xsdm0vQURUL1N0cmluZ1JlZi5oP3ZpZXc9bWFya3VwIj48Y29kZT5TdHJpbmdSZWY8L2NvZGU+
PC9hPi4KICAgICAgT25lIHBvc3NpYmxlIHJlYXNvbiBmb3IgdGhpcyBpcyB0aGF0IG1vc3QgdXNl
cyB0aGF0IG5lZWQgdG8gbW9kaWZ5IGEKICAgICAgc3RyaW5nIGFsc28gbmVlZCB0byBiZSBhYmxl
IHRvIGNoYW5nZSBpdHMgbGVuZ3RoLCBhbmQgdGhhdCdzIGltcG9zc2libGUKICAgICAgdGhyb3Vn
aCBldmVuIGEgbXV0YWJsZSB2ZXJzaW9uIG9mIDxjb2RlPnN0cmluZ192aWV3PC9jb2RlPi48L3A+
CgogICAgICA8cD5XZSA8ZW0+Y291bGQ8L2VtPiB1c2UgPGNvZGU+dHlwZWRlZiBiYXNpY19zdHJp
bmdfdmlldyZsdDtjb25zdCBjaGFyPgogICAgICBzdHJpbmdfdmlldzwvY29kZT4gdG8gbWFrZSB0
aGUgaW1tdXRhYmxlIGNhc2UgdGhlIGRlZmF1bHQgd2hpbGUgc3RpbGwKICAgICAgc3VwcG9ydGlu
ZyB0aGUgbXV0YWJsZSBjYXNlIHVzaW5nIHRoZSBzYW1lIHRlbXBsYXRlLiAgSSBoYXZlbid0IGdv
bmUgdGhpcwogICAgICB3YXkgYmVjYXVzZSBpdCB3b3VsZCBjb21wbGljYXRlIHRoZSB0ZW1wbGF0
ZSdzIGRlZmluaXRpb24gd2l0aG91dAogICAgICBzaWduaWZpY2FudGx5IGhlbHBpbmcgdXNlcnMu
PC9wPgogICAgPC9zZWN0aW9uPgoKICAgIDxzZWN0aW9uPgogICAgICA8aDMgaWQ9Im9wZXJhdG9y
LWJvb2wiPkFkZCBhbiA8Y29kZT5leHBsaWNpdCBvcGVyYXRvciBib29sPC9jb2RlPjwvaDM+Cgog
ICAgICA8cD5UaGlzIHdvdWxkIGJlIGFuIGFiYnJldmlhdGlvbiBmb3IgPGNvZGU+IWVtcHR5KCk8
L2NvZGU+LCB1c2FibGUgZm9yCiAgICAgIGluaXRpYWxpemF0aW9uIGluIDxjb2RlPmlmPC9jb2Rl
PiBzdGF0ZW1lbnRzLiAgPGEKICAgICAgaHJlZj0iaHR0cDovL3d3dy5vcGVuLXN0ZC5vcmcvanRj
MS9zYzIyL3dnMjEvZG9jcy9wYXBlcnMvMjAxMy9uMzUwOS5odG0iPk4zNTA5PC9hPgogICAgICBj
YW1lIHRvIFNHOSBpbiBCcmlzdG9sIGFuZCB3YXMgbm90IGFjY2VwdGVkLjwvcD4KCiAgICAgIDx0
YWJsZSBjbGFzcz0ic3RyYXdwb2xsIj4KICAgICAgICA8Y2FwdGlvbj5CcmlzdG9sIHN0cmF3IHBv
bGwgb24gIkRvIHdlIHdhbnQgdG8gcHVyc3VlIFtOMzUwOV0/IjwvY2FwdGlvbj4KICAgICAgICA8
dHI+PHRkPlNGPC90ZD48dGQ+V0Y8L3RkPjx0ZD5XQTwvdGQ+PHRkPlNBPC90ZD48L3RyPgogICAg
ICAgIDx0cj48dGQ+MDwvdGQ+PHRkPjE8L3RkPjx0ZD4zPC90ZD48dGQ+NTwvdGQ+PC90cj4KICAg
ICAgPC90YWJsZT4KCiAgICA8L3NlY3Rpb24+CgogICAgPHNlY3Rpb24+CiAgICAgIDxoMyBpZD0i
YXZvaWQtc3RybGVuIj5Bdm9pZCA8Y29kZT5zdHJsZW4oInN0cmluZyBsaXRlcmFsIik8L2NvZGU+
PC9oMz4KCiAgICAgIDxwPldpdGggYSBjb25zdHJ1Y3RvciBvZiB0aGUgZm9ybTo8L3A+CiAgICAg
IDxwcmUgY2xhc3M9ImV4YW1wbGUiPjxjb2RlPnRlbXBsYXRlJmx0O3NpemVfdCBOPgpiYXNpY19z
dHJpbmdfdmlldyhjb25zdCBjaGFyVCAoJmFtcDtzdHIpW05dKTs8L2NvZGU+PC9wcmU+CiAgICAg
IDxwPndlIGNvdWxkIGF2b2lkIGEgPGNvZGU+c3RybGVuKCk8L2NvZGU+IGNhbGwgd2hlbiBhCiAg
ICAgIDxjb2RlPmJhc2ljX3N0cmluZ192aWV3PC9jb2RlPiBpcyBjb25zdHJ1Y3RlZCBmcm9tIGEg
c3RyaW5nIGxpdGVyYWwuCiAgICAgIFVuZm9ydHVuYXRlbHksIHRoaXMgY29uc3RydWN0b3IgZG9l
cyBjb21wbGV0ZWx5IHRoZSB3cm9uZyB0aGluZyB3aGVuCiAgICAgIGNhbGxlZCBsaWtlOjwvcD4K
ICAgICAgPHByZSBjbGFzcz0iZXhhbXBsZSI+PGNvZGU+Y2hhciBzcGFjZVtQQVRIX01BWF07CnNu
cHJpbnRmKHNwYWNlLCBzaXplb2Yoc3BhY2UpLCAic29tZSBzdHJpbmciKTsKc3RyaW5nX3ZpZXcg
c3RyKHNwYWNlKTs8L2NvZGU+PC9wcmU+CiAgICAgIDxwPkl0IHdvdWxkIGJlIHBvc3NpYmxlIHRv
IGF2b2lkIHRoYXQgcHJvYmxlbSBieSBkZWZpbmluZyBhCiAgICAgIDxjb2RlPmJhc2ljX3N0cmlu
Z192aWV3KGNoYXIqIHN0cik8L2NvZGU+IHRoYXQgdXNlcyA8Y29kZT5zdHJsZW4oKTwvY29kZT4K
ICAgICAgYWdhaW4sIGJ1dCB0aGlzIGFkZHMgY29tcGxleGl0eS4gIFNvbWUgcGVvcGxlIGhhdmUg
c3VnZ2VzdGVkIGEKICAgICAgPGNvZGU+c3RyaW5nX3ZpZXc6OmZyb21fbGl0ZXJhbDwvY29kZT4g
bWV0aG9kLCBidXQgSSBjb25zaWRlciB0aGF0IHRvbwogICAgICB2ZXJib3NlLjwvcD4KICAgICAg
PHA+RXZlbiB0aGUgb3JpZ2luYWwgd29ycnkgaXMgb2Jzb2xldGUgZ2l2ZW4gbW9kZXJuIG9wdGlt
aXplcnM6IGJvdGggZ2NjCiAgICAgIGFuZCBjbGFuZyBvcHRpbWl6ZSA8Y29kZT5zdHJsZW4oIkxp
dGVyYWwiKTwvY29kZT4gaW50byBhIGNvbnN0YW50LCBtYWtpbmcKICAgICAgdGhlIHNpbXBsZSwg
c2FmZSBjb2RlIGFzIGVmZmljaWVudCBhcyB0aGUgdGVtcGxhdGUuICBPdGhlciBpbXBsZW1lbnRh
dGlvbnMKICAgICAgc2hvdWxkIHByb3ZpZGUgdGhlIHNhbWUgb3B0aW1pemF0aW9uIGFzIGEgUW9J
IGlzc3VlLjwvcD4KICAgIDwvc2VjdGlvbj4KCiAgICA8c2VjdGlvbj4KICAgICAgPGgzIGlkPSJ0
cmVhdC1hcy1wb2ludGVyIj5EZWZpbmUgY29tcGFyaXNvbiBvbiA8Y29kZT5iZWdpbjwvY29kZT4v
PGNvZGU+ZW5kPC9jb2RlPiBpbnN0ZWFkIG9mIHRoZSBlbGVtZW50czwvaDM+CgogICAgICA8cD5P
cGVyYXRpb25zIG9uIDxjb2RlPnN0cmluZ192aWV3PC9jb2RlPiBhcHBseSB0byB0aGUgY2hhcmFj
dGVycyBpbiB0aGUKICAgICAgc3RyaW5nLCBhbmQgbm90IHRoZSBwb2ludGVycyB0aGF0IHJlZmVy
IHRvIHRoZSBjaGFyYWN0ZXJzLiAgVGhpcwogICAgICBpbnRyb2R1Y2VzIHRoZSBwb3NzaWJpbGl0
eSB0aGF0IHRoZSB1bmRlcmx5aW5nIGNoYXJhY3RlcnMgbWlnaHQgY2hhbmdlCiAgICAgIHdoaWxl
IGEgPGNvZGU+c3RyaW5nX3ZpZXc8L2NvZGU+IHJlZmVycmluZyB0byB0aGVtIGlzIGluIGFuIGFz
c29jaWF0aXZlCiAgICAgIGNvbnRhaW5lciwgd2hpY2ggd291bGQgYnJlYWsgdGhlIGNvbnRhaW5l
ciwgYnV0IHdlIGJlbGlldmUgdGhpcyByaXNrIGlzCiAgICAgIHdvcnRod2hpbGUgYmVjYXVzZSBp
dCBtYXRjaGVzIGV4aXN0aW5nIHByYWN0aWNlIGFuZCBtYXRjaGVzIHVzZXIKICAgICAgaW50ZW50
aW9ucyBtb3JlIG9mdGVuLjwvcD4KICAgIDwvc2VjdGlvbj4KCiAgICA8c2VjdGlvbj4KICAgICAg
PGgzIGlkPSJjb250aWd1b3VzLXJhbmdlIj5XYWl0IGZvciA8Y29kZT5jb250aWd1b3VzX3Jhbmdl
Jmx0O2NoYXJUPjwvY29kZT48L2gzPgoKICAgICAgPHA+PGNvZGU+Y29udGlndW91c19yYW5nZSZs
dDtUPjwvY29kZT4gYWxvbmcgd2l0aCBhbgogICAgICA8Y29kZT5pc19jb250aWd1b3VzJmx0O0l0
ZXJhdG9yT3JSYW5nZT48L2NvZGU+IHRyYWl0IHdvdWxkIGJlIHVzZWZ1bCBmb3IKICAgICAgbWFu
eSBwdXJwb3Nlcy4gIEhvd2V2ZXIsIGEgcmVmZXJlbmNlIGNsYXNzIHRoYXQncyBzcGVjaWZpY2Fs
bHkgZm9yIHN0cmluZ3MKICAgICAgcHJvdmlkZXMgYSBjb3VwbGUgZXh0cmEgYmVuZWZpdHM6PC9w
PgogICAgICA8dWw+CiAgICAgICAgPGxpPjxjb2RlPnN0cmluZ192aWV3PC9jb2RlPiBjYW4gaGF2
ZSBhbiBpbXBsaWNpdCBjb252ZXJzaW9uIGZyb20KICAgICAgICA8Y29kZT5jb25zdCBjaGFyKjwv
Y29kZT4sIHdoaWxlIGl0IHdvdWxkIGJlIGEgc3VycHJpc2luZyBzcGVjaWFsIGNhc2UgdG8KICAg
ICAgICBwcm92aWRlIHRoYXQgb24gPGNvZGU+Y29udGlndW91c19yYW5nZSZsdDtjb25zdCBjaGFy
Kj48L2NvZGU+LjwvbGk+CiAgICAgICAgPGxpPldlIGNhbiBwcm92aWRlIGEgc3Vic2V0IG9mIDxj
b2RlPmJhc2ljX3N0cmluZzwvY29kZT4ncyBpbnRlcmZhY2UgdG8KICAgICAgICBlYXNlIHRyYW5z
aXRpb25zIHRvIGFuZCBmcm9tIG93bmVyc2hpcCwgd2hpbGUgc3VjaCBtZXRob2RzIHdvdWxkIGJl
IHZlcnkKICAgICAgICBzdHJhbmdlIG9uIDxjb2RlPmNvbnRpZ3VvdXNfcmFuZ2U8L2NvZGU+Ljwv
bGk+CiAgICAgICAgPGxpPjxjb2RlPmJhc2ljX3N0cmluZ192aWV3PC9jb2RlPiB0YWtlcyBhIDxj
b2RlPmNoYXJfdHJhaXRzPC9jb2RlPgogICAgICAgIGFyZ3VtZW50IGFsbG93aW5nIGN1c3RvbWl6
YXRpb24gb2YgY29tcGFyaXNvbi4KICAgICAgICA8Y29kZT5jb250aWd1b3VzX3JhbmdlPC9jb2Rl
PiBsaWtlbHkgd291bGRuJ3QuPC9saT4KICAgICAgICA8bGk+V2UgY29tcGFyZSBhbmQgaGFzaCA8
Y29kZT5zdHJpbmdfdmlldzwvY29kZT5zIHVzaW5nIHRoZSBlbGVtZW50cyB0aGV5CiAgICAgICAg
cmVmZXIgdG8uICBUaGVyZSdzIGEgc3Ryb25nZXIgYXJndW1lbnQgdG8gY29tcGFyZSBhCiAgICAg
ICAgPGNvZGU+Y29udGlndW91c19yYW5nZTwvY29kZT4gdXNpbmcgdGhlIHBvaW50ZXJzIGluc2lk
ZSBpdCwgbWVhbmluZyB0d28KICAgICAgICA8Y29kZT5jb250aWd1b3VzX3JhbmdlJmx0O2NoYXI+
PC9jb2RlPnMgb2YgdGhlIHNhbWUgY2hhcmFjdGVycyBtaWdodAogICAgICAgIGNvbXBhcmUgdW5l
cXVhbC48L2xpPgogICAgICAgIDxsaT5UaGUgbm90aW9uIG9mIGEgInN0cmluZyIgaXMgZGlmZmVy
ZW50IGZyb20gdGhlIG5vdGlvbiBvZiBhIHJhbmdlIG9mCiAgICAgICAgY2hhcmFjdGVycywgd2hp
Y2ggaXMgb25lIHJlYXNvbiB3ZSBoYXZlIDxjb2RlPnN0ZDo6c3RyaW5nPC9jb2RlPiBpbgogICAg
ICAgIGFkZGl0aW9uIHRvIDxjb2RlPnN0ZDo6dmVjdG9yJmx0O2NoYXI+PC9jb2RlPi4gIFVzZXJz
IGJlbmVmaXQgZnJvbQogICAgICAgIHNheWluZyB3aGljaCB0aGV5IG1lYW4gaW4gaW50ZXJmYWNl
cy48L2xpPgogICAgICA8L3VsPgogICAgPC9zZWN0aW9uPgoKICAgIDxzZWN0aW9uPgogICAgICA8
aDMgaWQ9Im51bGwtdGVybWluYXRpb24iPk1ha2UgPGNvZGU+c3RyaW5nX3ZpZXc8L2NvZGU+IG51
bGwtdGVybWluYXRlZDwvaDM+CgogICAgICA8cD5Eb2luZyB0aGlzIG5haXZlbHkgbWFrZXMgPGNv
ZGU+c3Vic3RyPC9jb2RlPiBpbXBvc3NpYmxlIHRvIGltcGxlbWVudAogICAgICB3aXRob3V0IGEg
Y29weS4gIFdlIGNvdWxkIGltYWdpbmUgaW52ZW50aW5nIGEgbW9yZSBjb21wbGV4IGludGVyZmFj
ZSB0aGF0CiAgICAgIHJlY29yZHMgd2hldGhlciB0aGUgaW5wdXQgc3RyaW5nIHdhcyBudWxsLXRl
cm1pbmF0ZWQsIGdpdmluZyB0aGUgdXNlciB0aGUKICAgICAgb3B0aW9uIHRvIHVzZSB0aGF0IHN0
cmluZyB3aGVuIHRyeWluZyB0byBwYXNzIGEgPGNvZGU+c3RyaW5nX3ZpZXc8L2NvZGU+IHRvCiAg
ICAgIGEgbGVnYWN5IG9yIEMgZnVuY3Rpb24gZXhwZWN0aW5nIGEgbnVsbC10ZXJtaW5hdGVkIDxj
b2RlPmNvbnN0CiAgICAgIGNoYXIqPC9jb2RlPi4gIFRoaXMgcHJvcG9zYWwgZG9lc24ndCBpbmNs
dWRlIHN1Y2ggYW4gaW50ZXJmYWNlIGJlY2F1c2UgaXQKICAgICAgd291bGQgbWFrZSA8Y29kZT5z
dHJpbmdfdmlldzwvY29kZT4gYmlnZ2VyIG9yIG1vcmUgZXhwZW5zaXZlLCBhbmQgYmVjYXVzZQog
ICAgICB0aGVyZSdzIG5vIGV4aXN0aW5nIHByYWN0aWNlIHRvIGd1aWRlIHVzIHRvd2FyZCB0aGUg
cmlnaHQgaW50ZXJmYWNlLjwvcD4KCiAgICAgIDxwPkFub3RoZXIgb3B0aW9uIHdvdWxkIGJlIHRv
IGRlZmluZSBhIHNlcGFyYXRlIDxjb2RlPnpzdHJpbmdfdmlldzwvY29kZT4KICAgICAgY2xhc3Mg
dG8gcmVwcmVzZW50IG51bGwtdGVybWluYXRlZCBzdHJpbmdzIGFuZCBsZXQgaXQgZGVjYXkgdG8K
ICAgICAgPGNvZGU+c3RyaW5nX3ZpZXc8L2NvZGU+IHdoZW4gbmVjZXNzYXJ5LiAgVGhhdCdzIHBs
YXVzaWJsZSBidXQgbm90IHBhcnQgb2YKICAgICAgdGhpcyBwcm9wb3NhbC48L3A+CiAgICA8L3Nl
Y3Rpb24+CgogICAgPHNlY3Rpb24+CiAgICAgIDxoMyBpZD0icG9wLWZyb250Ij5zL3JlbW92ZV9w
cmVmaXgvcG9wX2Zyb250LywgZXRjLjwvaDM+CgogICAgICA8cD5JbiA8YQogICAgICBocmVmPSJo
dHRwOi8vd2lraS5lZGcuY29tL3R3aWtpL2Jpbi92aWV3L1dnMjFrb25hMjAxMi9MaWJyYXJ5V29y
a2luZ0dyb3VwI1Rvd2FyZF9SYW5nZV9vYmplY3RzIj5Lb25hCiAgICAgIDIwMTI8L2E+LCBJIHBy
b3Bvc2VkIGEgPGNvZGU+cmFuZ2UmbHQ7PjwvY29kZT4gY2xhc3Mgd2l0aAogICAgICA8Y29kZT5w
b3BfZnJvbnQ8L2NvZGU+LCBldGMuIG1lbWJlcnMgdGhhdCBhZGp1c3RlZCB0aGUgYm91bmRzIG9m
IHRoZQogICAgICByYW5nZS4gIERpc2N1c3Npb24gdGhlcmUgaW5kaWNhdGVkIHRoYXQgY29tbWl0
dGVlIG1lbWJlcnMgd2VyZQogICAgICB1bmNvbWZvcnRhYmxlIHVzaW5nIHRoZSBzYW1lIG5hbWVz
IGZvciBsaWdodHdlaWdodCByYW5nZSBvcGVyYXRpb25zIGFzCiAgICAgIGNvbnRhaW5lciBvcGVy
YXRpb25zLiAgRXhpc3RpbmcgcHJhY3RpY2UgZG9lc24ndCBhZ3JlZSBvbiBhIG5hbWUgZm9yIHRo
aXMKICAgICAgb3BlcmF0aW9uLCBzbyBJJ3ZlIGtlcHQgdGhlIG5hbWUgdXNlZCBieSBHb29nbGUn
cwogICAgICA8Y29kZT5TdHJpbmdQaWVjZTwvY29kZT4uPC9wPgogICAgPC9zZWN0aW9uPgoKICAg
IDxzZWN0aW9uPgogICAgICA8aDMgaWQ9ImRhdGEtc2l6ZS1jb25zdHJ1Y3RvciI+QWxsb3cgaW1w
bGljaXQgY29udmVyc2lvbiBmcm9tIG1vcmUgdHlwZXMuPC9oMz4KCiAgICAgIDxwPjxhCiAgICAg
IGhyZWY9Imh0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vYS9pc29jcHAub3JnL2QvbXNnL3N0ZC1w
cm9wb3NhbHMvOHQ1RUZKZkxuMEkvbXM3R1hfV3Q0QzhKIj5CZW1hbgogICAgICBEYXdlcyBzdWdn
ZXN0ZWQ8L2E+IGRlZmluaW5nIDxjb2RlPnN0ZDo6c3RyaW5nX3ZpZXdfe2JlZ2luLGVuZH08L2Nv
ZGU+IGFuZAogICAgICBhbGxvd2luZyB1c2VycyB0byBhZGQgb3ZlcmxvYWRzIHdpdGhpbiA8Y29k
ZT5zdGQ8L2NvZGU+LiAgVXNpbmcgQURMIGlzIGEKICAgICAgc2xpZ2h0IHZhcmlhbnQuICBXZSBj
b3VsZCBhbHNvIGFsbG93IGNvbnZlcnNpb24gZnJvbSBhbnkgdHlwZSB3aXRoCiAgICAgIDxjb2Rl
Pi5kYXRhKCk8L2NvZGU+IGFuZCA8Y29kZT4uc2l6ZSgpPC9jb2RlPiBtZW1iZXJzIHJldHVybmlu
ZyB0aGUgcmlnaHQKICAgICAgdHlwZXMuPC9wPgoKICAgICAgPHA+VWx0aW1hdGVseSwgSSB0aGlu
ayB3ZSB3YW50IHRvIGFsbG93IHRoaXMgY29udmVyc2lvbiBiYXNlZCBvbiBkZXRlY3RpbmcKICAg
ICAgY29udGlndW91cyByYW5nZXMuICBBbnkgY29uc3RydWN0b3Igd2UgYWRkIHRvIHdvcmsgYXJv
dW5kIHRoYXQgaXMgZ29pbmcgdG8KICAgICAgbG9vayBsaWtlIGEgd2FydCBpbiBhIGNvdXBsZSB5
ZWFycy4gIEkgdGhpbmsgd2UnbGwgYmUgYmV0dGVyIG9mZiBtYWtpbmcKICAgICAgdXNlcnMgZXhw
bGljaXRseSBjb252ZXJ0IHdoZW4gdGhleSBjYW4ndCBhZGQgYW4gYXBwcm9wcmlhdGUgY29udmVy
c2lvbgogICAgICBvcGVyYXRvciwgYW5kIHRoZW4gd2UgY2FuIGFkZCB0aGUgb3B0aW1hbCBjb25z
dHJ1Y3RvciB3aGVuIGNvbnRpZ3VvdXMKICAgICAgaXRlcmF0b3JzIG1ha2UgaXQgaW50byB0aGUg
bGlicmFyeS48L3A+CgogICAgICA8dGFibGUgY2xhc3M9InN0cmF3cG9sbCI+CiAgICAgICAgPGNh
cHRpb24+QnJpc3RvbCBzdHJhdyBwb2xsIG9uICJTaG91bGQgd2UgcHJvdmlkZSB0aGlzIGFkYXB0
YXRpb24gbWV0aG9kPyI8L2NhcHRpb24+CiAgICAgICAgPHRyPjx0ZD5TRjwvdGQ+PHRkPldGPC90
ZD48dGQ+TjwvdGQ+PHRkPldBPC90ZD48dGQ+U0E8L3RkPjwvdHI+CiAgICAgICAgPHRyPjx0ZD4w
PC90ZD48dGQ+MDwvdGQ+PHRkPjE8L3RkPjx0ZD41PC90ZD48dGQ+NjwvdGQ+PC90cj4KICAgICAg
PC90YWJsZT4KICAgIDwvc2VjdGlvbj4KCiAgICA8c2VjdGlvbj4KICAgICAgPGgzIGlkPSJudWxs
LWRhdGEiPjxjb2RlPnN0cmluZ192aWV3KCkuZGF0YSgpID09IG51bGxwdHI8L2NvZGU+PzwvaDM+
CgogICAgICA8cD5UaGUgb2J2aW91cyB3YXkgdG8gaW5pdGlhbGl6ZSBhIGRlZmF1bHQgY29uc3Ry
dWN0ZWQKICAgICAgPGNvZGU+c3RyaW5nX3ZpZXc8L2NvZGU+IGlzIHdpdGggPGNvZGU+LmRhdGEo
KSA9PSBudWxscHRyPC9jb2RlPiBhbmQKICAgICAgPGNvZGU+LnNpemUoKSA9PSAwPC9jb2RlPi4g
SG93ZXZlciwgdGhhdCB2aW9sYXRlcyBhbiBpbnZhcmlhbnQgb2YgPGEKICAgICAgaHJlZj0iI3N0
cmluZy52aWV3LmRhdGEiPjxjb2RlPmRhdGEoKTwvY29kZT48L2E+LCB0aGF0IGl0IG5ldmVyIHJl
dHVybnMKICAgICAgPGNvZGU+bnVsbHB0cjwvY29kZT4uICBJbnN0ZWFkLCBpbXBsZW1lbnRhdGlv
bnMgbXVzdCBpbml0aWFsaXplCiAgICAgIDxjb2RlPmRhdGEoKTwvY29kZT4gd2l0aCBhbiBhcmJp
dHJhcnkgcG9pbnRlciB2YWx1ZSBzdWNoIHRoYXQKICAgICAgWzxjb2RlPmRhdGEoKTwvY29kZT4s
PGNvZGU+ZGF0YSgpPC9jb2RlPikgaXMgYSB2YWxpZCByYW5nZS4gKE9uIG1hbnkKICAgICAgcGxh
dGZvcm1zLCBhbiBhcmJpdHJhcnkgdmFsdWUgbWlnaHQgc3VmZmljZSwgYnV0IG9uIHNvbWUgcGxh
dGZvcm1zLCB0aGlzCiAgICAgIG1pZ2h0IG5lZWQgdG8gYmUgYSBkZXJlZmVyZW5jZWFibGUgb3Ig
b25lLXBhc3QtdGhlLWVuZCBhZGRyZXNzIGxpa2UKICAgICAgPGNvZGU+dGhpczwvY29kZT4gb3Ig
PGNvZGU+IiI8L2NvZGU+Lik8L3A+CgogICAgICA8cD5XZSBjb3VsZCBpbWFnaW5lIGF2b2lkaW5n
IHRoaXMgY29tcGxpY2F0aW9uIGJ5IGFsbG93aW5nCiAgICAgIDxjb2RlPmRhdGEoKTwvY29kZT4g
dG8gcmV0dXJuIDxjb2RlPm51bGxwdHI8L2NvZGU+LCB3aGljaCB3b3VsZCBhbHNvIGFsbG93CiAg
ICAgIHVzIHRvIHJlbGF4IHRoZSBwcmVjb25kaXRpb24gb24gPGNvZGU+c3RyaW5nX3ZpZXcoY29u
c3QgY2hhciosCiAgICAgIHNpemVfdCk8L2NvZGU+LiAgSG93ZXZlciwgaW4gR29vZ2xlJ3MgaW1w
bGVtZW50YXRpb24sIHdlIGZvdW5kIHRoYXQKICAgICAgcHJvZ3JhbW1lcnMgdGVuZGVkIHRvIHVz
ZSA8Y29kZT5kYXRhKCk9PW51bGxwdHI8L2NvZGU+IHRvIHNpZ25hbAogICAgICBjb25kaXRpb25z
IHRoYXQgZGlmZmVyZWQgZnJvbSBzaW1wbHkgPGNvZGU+ZW1wdHkoKTwvY29kZT4uIFRoaXMgd2Fz
IGEKICAgICAgc291cmNlIG9mIGNvbmZ1c2lvbiBpbiBpbnRlcmZhY2VzLCBhbmQgaXQgZ2l2ZXMg
PGNvZGU+c3RyaW5nX3ZpZXc8L2NvZGU+CiAgICAgIG9uZSBtb3JlIHBvc3NpYmxlIHZhbHVlIHRo
YW4gPGNvZGU+Y29uc3Qgc3RkOjpzdHJpbmcmPC9jb2RlPiwgc28gdGhpcwogICAgICBwcm9wb3Nh
bCBmb3JiaWRzIHRoZSBwb3NzaWJpbGl0eS48L3A+CgogICAgICA8cD5FdmVuIHdpdGhvdXQgcmVs
YXhpbmcgdGhlIHByZWNvbmRpdGlvbiBvbiA8Y29kZT5zdHJpbmdfdmlldyhjb25zdAogICAgICBj
aGFyKiwgc2l6ZV90KTwvY29kZT4sIGFsbG93aW5nIGltcGxlbWVudGF0aW9ucyB0byByZXR1cm4g
YSBudWxsCiAgICAgIDxjb2RlPmRhdGEoKTwvY29kZT4gZnJvbSA8Y29kZT5zdHJpbmdfdmlldygp
PC9jb2RlPiB3aXRob3V0IHJlcXVpcmluZyBpdCwKICAgICAgd291bGQgY2F1c2UgcG9ydGFiaWxp
dHkgcHJvYmxlbXM6IHNvbWUgdXNlcnMgd291bGQgdGVzdCBmb3IKICAgICAgPGNvZGU+ZGF0YSgp
PT1udWxscHRyPC9jb2RlPiB0byBpZGVudGlmeSBhIGRlZmF1bHQtY29uc3RydWN0ZWQKICAgICAg
PGNvZGU+c3RyaW5nX3ZpZXc8L2NvZGU+IG9uIHRoYXQgaW1wbGVtZW50YXRpb24sIGFuZCB3b3Vs
ZCB0aGVuIGJlIHVuYWJsZQogICAgICB0byB1c2UgYW5vdGhlciBpbXBsZW1lbnRhdGlvbi48L3A+
CgogICAgICA8cD5Ib3dldmVyLCA8Y29kZT5zdGQ6OnZlY3Rvcjo6ZGF0YSgpPC9jb2RlPiBtYXkg
cmV0dXJuCiAgICAgIDxjb2RlPm51bGxwdHI8L2NvZGU+LCBhbmQgd2UgZG9uJ3QgaGF2ZQogICAg
ICA8Y29kZT5jb250aWd1b3VzX2l0ZXJhdG9yX3RhZzwvY29kZT4gYXZhaWxhYmxlIHlldCB0byBh
bGxvdyB1c2VycyB0byBwYXNzCiAgICAgIGEgPGNvZGU+dmVjdG9yPC9jb2RlPidzIDxjb2RlPmJl
Z2luKCk8L2NvZGU+IGFuZCA8Y29kZT5lbmQoKTwvY29kZT4gdG8KICAgICAgPGNvZGU+c3RyaW5n
X3ZpZXcoKTwvY29kZT4sIHNvIHRoaXMgcmVxdWlyZW1lbnQgbWF5IHJlcXVpcmUgZXh0cmEKICAg
ICAgY29uZGl0aW9ucyBpbiB1c2VyIGNvZGUuIFRoaXMgYW5kIHN0cm9uZyBpbnRlcmVzdCBvbiB0
aGUgc3RkLXByb3Bvc2FscwogICAgICBtYWlsaW5nIGxpc3QgZW5jb3VyYWdlZCBtZSB0byBhZGQg
YW4gPGEKICAgICAgaHJlZj0iI2FsdGVybmF0ZS1udWxscHRyLXdvcmRpbmciPmFsdGVybmF0ZSB3
b3JkaW5nPC9hPiBzZWN0aW9uIGJlbG93LjwvcD4KICAgIDwvc2VjdGlvbj4KICA8L3NlY3Rpb24+
CgogIDxzZWN0aW9uPgogICAgPGgyIGlkPSJmdXR1cmUiPlBsYW5zIGZvciBmdXR1cmUgY2hhbmdl
czwvaDI+CgogICAgPHVsPgogICAgICA8bGk+VGhlcmUgYXJlIG1hbnkgZnVuY3Rpb25zIG91dHNp
ZGUgb2YgdGhlIHN0cmluZ3MgY2hhcHRlciB0aGF0IHNob3VsZAogICAgICBpbmNvcnBvcmF0ZSA8
Y29kZT5zdHJpbmdfdmlldzwvY29kZT4uICBJJ2xsIHByb3Bvc2UgdGhvc2UgY2hhbmdlcyBpbiBh
CiAgICAgIHN1YnNlcXVlbnQgcGFwZXIgYmFzZWQgb24gdGhlIDxhCiAgICAgIGhyZWY9Imh0dHA6
Ly93d3cub3Blbi1zdGQub3JnL2p0YzEvc2MyMi93ZzIxL2RvY3MvcGFwZXJzLzIwMTMvbjM2ODUu
aHRtbCN3b3JkaW5nLXJlc3QiPnBhcnQKICAgICAgb2YgTjM2ODU8L2E+IHRoYXQgaXNuJ3QgaW4g
dGhpcyBwYXBlci48L2xpPgogICAgICA8bGk+V2Ugd2FudCBhIGxpdGVyYWwgb3BlcmF0b3IgdG8g
cHJvZHVjZSA8Y29kZT5zdHJpbmdfdmlldzwvY29kZT4sIG1heWJlIDxjb2RlPiIic3Y8L2NvZGU+
LjwvbGk+CiAgICA8L3VsPgogIDwvc2VjdGlvbj4KCiAgPHNlY3Rpb24+CiAgICA8aDIgaWQ9InJl
dmlzaW9uLWhpc3RvcnkiPlBhcGVyIHJldmlzaW9uIGhpc3Rvcnk8L2gyPgogICAgPHA+VGhpcyBw
YXBlciB1cGRhdGVzIE4zNzYyIGJ5OjwvcD4KICAgIDx1bD4KICAgICAgPGxpPkV4cGxhaW5pbmcg
d2h5IDxjb2RlPnN0cmluZ192aWV3KCkuZGF0YSgpICE9IG51bGxwdHI8L2NvZGU+IGFuZCBhZGRp
bmcKICAgICAgYW4gYWx0ZXJuYXRlIHdvcmRpbmcgc2VjdGlvbiBpbiBjYXNlIHdlIGRlY2lkZSB0
aGF0IHNob3VsZCBiZQogICAgICBwb3NzaWJsZSw8L2xpPgogICAgICA8bGk+Rml4aW5nIHVwIHJl
ZmVyZW5jZXMgYW5kIG5hbWVzcGFjZXMgdG8gbWF0Y2ggdGhlIEZ1bmRhbWVudGFscyBUUyw8L2xp
PgogICAgICA8bGk+RGVjbGFyaW5nIGV2ZXJ5IGZ1bmN0aW9uIGFzIDxjb2RlPmNvbnN0ZXhwcjwv
Y29kZT4gdGhhdAogICAgICBjb3VsZCBiZSBhIGNvbnN0YW50IGV4cHJlc3Npb24gaWYgdGhlIDxj
b2RlPnRyYWl0czwvY29kZT4gY2xhc3MKICAgICAgaXMgc3VpdGFibGUsIGFuZDwvbGk+CiAgICAg
IDxsaT5BZGRpbmcgZXhwb3NpdGlvbi1vbmx5IDxjb2RlPmRhdGFfPC9jb2RlPiBhbmQgPGNvZGU+
c2l6ZV88L2NvZGU+IG1lbWJlcnMsIGFuZCByZS1leHBsYWluaW5nIHNldmVyYWwgbWVtYmVycyBp
biB0ZXJtcyBvZiB0aGVtLjwvbGk+CiAgICA8L3VsPgoKICAgIDxwPjxhIGhyZWY9Imh0dHA6Ly93
d3cub3Blbi1zdGQub3JnL2p0YzEvc2MyMi93ZzIxL2RvY3MvcGFwZXJzLzIwMTMvbjM3NjIuaHRt
bCI+TjM3NjI8L2E+IHVwZGF0ZWQgTjM2ODUgYnkgcmVtb3Zpbmcgb3RoZXIgc3RhbmRhcmQgbGli
cmFyeSB1cGRhdGVzIHNvCiAgICB0aGF0IHRoZSBjb3JlIDxjb2RlPnN0cmluZ192aWV3PC9jb2Rl
PiBjbGFzcyBjYW4gYmUgYWNjZXB0ZWQgaW5kZXBlbmRlbnRseS4KICAgIEkndmUgYWxzbzo8L3A+
CiAgICA8dWw+CiAgICAgIDxsaT5GaXhlZCBzb21lIGJ1Z3MgaW4gdGhlIDxjb2RlPnBvczwvY29k
ZT4gYW5kIDxjb2RlPm48L2NvZGU+IHBhcmFtZXRlcnMsPC9saT4KICAgICAgPGxpPkFkZGVkIDxj
b2RlPmNvcHkoKTwvY29kZT4gYmFjayw8L2xpPgogICAgICA8bGk+UmVtb3ZlZCB0aGUgYXNzdW1w
dGlvbiB0aGF0IDxhCiAgICAgIGhyZWY9Imh0dHA6Ly93d3cub3Blbi1zdGQub3JnL2p0YzEvc2My
Mi93ZzIxL2RvY3MvcGFwZXJzLzIwMTMvbjM2ODcuaHRtbCMyMjMyIj5MV0cKICAgICAgaXNzdWUg
MjIzMjwvYT4gd2lsbCBiZSBmaXhlZCw8L2xpPgogICAgICA8bGk+QWRkZWQgYSBtZW1iZXIgPGNv
ZGU+c3dhcCgpPC9jb2RlPiBzaW5jZSBpdCdzIGNvbnN0YW50IHRpbWUsPC9saT4KICAgICAgPGxp
PkVuc3VyZWQgdGhhdCA8Y29kZT5zdGQ6OnN3YXA8L2NvZGU+IGFuZCB0aGUgcmFuZ2UgYWNjZXNz
IGZ1bmN0aW9ucyBhcmUKICAgICAgYXZhaWxhYmxlIHdoZW4gPGNvZGU+Jmx0O3N0cmluZ192aWV3
PjwvY29kZT4gaXMgaW5jbHVkZWQsIGFuZDwvbGk+CiAgICAgIDxsaT5GaXhlZCB1cCBzb21lIDxj
b2RlPm5vZXhjZXB0PC9jb2RlPnMuPC9saT4KICAgIDwvdWw+CgogICAgPHA+PGEgaHJlZj0iaHR0
cDovL3d3dy5vcGVuLXN0ZC5vcmcvanRjMS9zYzIyL3dnMjEvZG9jcy9wYXBlcnMvMjAxMy9uMzY4
NS5odG1sIj5OMzY4NTwvYT4gdXBkYXRlZCBOMzYwOSB3aXRoIHRoZSByZXN1bHRzIG9mIHRoZSA8
YQogICAgaHJlZj0iaHR0cDovL3dpa2kuZWRnLmNvbS90d2lraS9iaW4vdmlldy9XZzIxYnJpc3Rv
bC9MaWJyYXJ5RXZvbHV0aW9uV29ya2luZ0dyb3VwI04zNjA5Ij5MRVdHCiAgICBkaXNjdXNzaW9u
IGluIEJyaXN0b2w8L2E+LiAgU2lnbmlmaWNhbnQgY2hhbmdlcyBpbmNsdWRlOjwvcD4KICAgIDx1
bD4KICAgICAgPGxpPlJlZGlyZWN0ZWQgZm9yIGEgVFMgaW5zdGVhZCBvZiBDKysxNDwvbGk+CiAg
ICAgIDxsaT5Nb3ZlZCBpbnRvIGEgPGNvZGU+Jmx0O3N0cmluZ192aWV3PjwvY29kZT4gaGVhZGVy
LjwvbGk+CiAgICAgIDxsaT5BZGRlZCB0aGUgPGNvZGU+cG9zPC9jb2RlPiBhbmQgPGNvZGU+bjwv
Y29kZT4gcGFyYW1ldGVycyBiYWNrIHRvIDxjb2RlPnN0cmluZ192aWV3PC9jb2RlPiBtZXRob2Rz
LjwvbGk+CiAgICAgIDxsaT5SZW1vdmVkIDxjb2RlPnN0YXJ0c193aXRoPC9jb2RlPiBhbmQgPGNv
ZGU+ZW5kc193aXRoPC9jb2RlPi48L2xpPgogICAgPC91bD4KCiAgICA8cD48YSBocmVmPSJodHRw
Oi8vd3d3Lm9wZW4tc3RkLm9yZy9qdGMxL3NjMjIvd2cyMS9kb2NzL3BhcGVycy8yMDEzL24zNjA5
Lmh0bWwiPk4zNjA5PC9hPiB3YXMgYSBtaW5vciB1cGRhdGUgdG8gTjM1MTIgdGhhdCByZW5hbWVk
IHRoZSBwcm9wb3NlZCBjbGFzcyB0bwogICAgPGNvZGU+YmFzaWNfc3RyaW5nX3ZpZXc8L2NvZGU+
IGFuZCBmaXhlZCBzb21lIHdvcmRpbmcgbWlzdGFrZXMuPC9wPgoKICAgIDxwPjxhIGhyZWY9Imh0
dHA6Ly93d3cub3Blbi1zdGQub3JnL2p0YzEvc2MyMi93ZzIxL2RvY3MvcGFwZXJzLzIwMTMvbjM1
MTIuaHRtbCI+TjM1MTI8L2E+CiAgICB1cGRhdGVkIE4zNDQyIHdpdGggd29yZGluZyBmb3IgdGhl
IDxhCiAgICBocmVmPSJodHRwOi8vd3d3Lm9wZW4tc3RkLm9yZy9qdGMxL3NjMjIvd2cyMS9kb2Nz
L3BhcGVycy8yMDEyL24zNDg1LnBkZiI+ZHJhZnQKICAgIEMrKzE0IHN0YW5kYXJkPC9hPi4gIE5v
dGUgdGhhdCB3ZSBzdGlsbCBhcmVuJ3Qgc3VyZSB3aGV0aGVyIHdlJ3JlIGFpbWluZyBmb3IKICAg
IGEgVFMgb3IgQysrMTQuPC9wPgoKICAgIDxwPjxhIGhyZWY9Imh0dHA6Ly93d3cub3Blbi1zdGQu
b3JnL2p0YzEvc2MyMi93ZzIxL2RvY3MvcGFwZXJzLzIwMTIvbjM0NDIuaHRtbCI+TjM0NDI8L2E+
CiAgICB3YXMgYWltZWQgYXQgYSBUUyBhbmQgdXBkYXRlZAogICAgPGEgaHJlZj0iaHR0cDovL3d3
dy5vcGVuLXN0ZC5vcmcvanRjMS9zYzIyL3dnMjEvZG9jcy9wYXBlcnMvMjAxMi9uMzMzNC5odG1s
Ij5OMzMzNDwvYT4KICAgIGJ5IHJlbW92aW5nIDxjb2RlPmFycmF5X3JlZjwvY29kZT4uPC9wPgoK
ICAgIDxwPlRoZSA8YQogICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9jeHgtc3Rk
LWRyYWZ0L2Jsb2Ivc3RyaW5nLXJlZi1wYXBlci9zdHJpbmdfdmlldy5odG1sIj5tb3N0CiAgICBy
ZWNlbnQgdmVyc2lvbiBvZiB0aGlzIHBhcGVyPC9hPiBpcyBtYWludGFpbmVkIG9uIEdpdEh1Yi48
L3A+CiAgPC9zZWN0aW9uPgoKCiAgPGhyLz4KCiAgPHNlY3Rpb24gY2xhc3M9IndvcmRpbmciPgog
ICAgPGgyIGlkPSJ3b3JkaW5nIj5Xb3JkaW5nIGZvciB0aGUgRnVuZGFtZW50YWxzIFRTPC9oMj4K
CiAgICA8IS0tPHA+V29yZGluZyBjaGFuZ2VzIGFyZSBiZWluZyBtYWludGFpbmVkIGF0IDxhCiAg
ICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2N4eC1zdGQtZHJhZnQvY29tcGFyZS9z
dHJpbmctcmVmIj5odHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2N4eC1zdGQtZHJhZnQvY29tcGFy
ZS9zdHJpbmctcmVmPC9hPgogICAgYW5kIGEgc25hcHNob3Qgb2YgdGhlIGNoYW5nZXMgaXMgY29w
aWVkIGJlbG93LiAgQSB2ZXJ5IGVhcmx5IGltcGxlbWVudGF0aW9uCiAgICBpcyBhdCA8YQogICAg
aHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9saWJjeHgvY29tcGFyZS9zdHJpbmctcmVm
Ij5odHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2xpYmN4eC9jb21wYXJlL3N0cmluZy1yZWY8L2E+
LgogICAgUGF0Y2hlcyBhbmQgcHVsbCByZXF1ZXN0cyBhcmUgd2VsY29tZSBhZ2FpbnN0IGJvdGgu
PC9wPi0tPgoKICAgIDxoMyBpZD0ic3RyaW5ncyI+Q2xhdXNlIHgsIHN0cmluZ192aWV3PC9oMz4K
CiAgICA8cD5UaGUgY2xhc3MgdGVtcGxhdGUgPGNvZGU+YmFzaWNfc3RyaW5nX3ZpZXc8L2NvZGU+
IGRlc2NyaWJlcyBvYmplY3RzIHRoYXQKICAgIGNhbiByZWZlciB0byBhIGNvbnN0YW50IGNvbnRp
Z3VvdXMgc2VxdWVuY2Ugb2YgY2hhci1saWtlIChDKysxMVtzdHJpbmdzLmdlbmVyYWxdKSBvYmpl
Y3RzCiAgICB3aXRoIHRoZSBmaXJzdCBlbGVtZW50IG9mCiAgICB0aGUgc2VxdWVuY2UgYXQgcG9z
aXRpb24gemVyby4gSW4gdGhlIHJlc3Qgb2YgdGhpcyBDbGF1c2UsIHRoZSB0eXBlIG9mIHRoZQog
ICAgY2hhci1saWtlIG9iamVjdHMgaGVsZCBpbiBhIDxjb2RlPmJhc2ljX3N0cmluZ192aWV3PC9j
b2RlPgogICAgb2JqZWN0IGlzIGRlc2lnbmF0ZWQgYnkgPGNvZGU+Y2hhclQ8L2NvZGU+LjwvcD4K
CiAgICA8cD5bTm90ZTogVGhlIGxpYnJhcnkgcHJvdmlkZXMgaW1wbGljaXQgY29udmVyc2lvbnMg
ZnJvbSA8Y29kZT5jb25zdAogICAgY2hhclQqPC9jb2RlPiBhbmQgPGNvZGU+c3RkOjpiYXNpY19z
dHJpbmcmbHQ7Y2hhclQsIC4uLj48L2NvZGU+IHRvCiAgICA8Y29kZT5zdGQ6OmJhc2ljX3N0cmlu
Z192aWV3Jmx0O2NoYXJULCAuLi4+PC9jb2RlPiBzbyB0aGF0IHVzZXIgY29kZSBjYW4KICAgIGFj
Y2VwdCBqdXN0IDxjb2RlPnN0ZDo6YmFzaWNfc3RyaW5nX3ZpZXcmbHQ7Y2hhclQ+PC9jb2RlPiBh
cyBhIG5vbi10ZW1wbGF0ZWQKICAgIHBhcmFtZXRlciB3aGVyZXZlciBhIHNlcXVlbmNlIG9mIGNo
YXJhY3RlcnMgaXMgZXhwZWN0ZWQuIFVzZXItZGVmaW5lZCB0eXBlcwogICAgc2hvdWxkIGRlZmlu
ZSB0aGVpciBvd24gaW1wbGljaXQgY29udmVyc2lvbnMgdG8KICAgIDxjb2RlPnN0ZDo6YmFzaWNf
c3RyaW5nX3ZpZXc8L2NvZGU+IGluCiAgICBvcmRlciB0byBpbnRlcm9wZXJhdGUgd2l0aCB0aGVz
ZSBmdW5jdGlvbnMuIOKAlCBlbmQgbm90ZSBdPC9wPgoKICAgIDxwPlRoZSBjb21wbGV4aXR5IG9m
IG1lbWJlciBmdW5jdGlvbnMgaXMgTygxKSB1bmxlc3Mgb3RoZXJ3aXNlCiAgICBzcGVjaWZpZWQu
PC9wPgoKICAgIDxoND5BZGQgYSAiSGVhZGVyICZsdDtzdHJpbmdfdmlldz4gc3lub3BzaXMiPC9o
ND4KCiAgICA8cHJlPjxjb2RlPm5hbWVzcGFjZSBzdGQgewpuYW1lc3BhY2UgZXhwZXJpbWVudGFs
IHsKaW5saW5lIG5hbWVzcGFjZSBmdW5kYW1lbnRhbHNfdjEgewogIC8vIFtiYXNpYy5zdHJpbmcu
dmlld10sIGJhc2ljX3N0cmluZ192aWV3OgogIHRlbXBsYXRlJmx0O2NsYXNzIGNoYXJULCBjbGFz
cyB0cmFpdHMgPSBjaGFyX3RyYWl0cyZsdDtjaGFyVD4+CiAgICAgIGNsYXNzIGJhc2ljX3N0cmlu
Z192aWV3OwoKICAvLyBbc3RyaW5nLnZpZXcuY29tcGFyaXNvbl0sIG5vbi1tZW1iZXIgYmFzaWNf
c3RyaW5nX3ZpZXcgY29tcGFyaXNvbiBmdW5jdGlvbnMKICB0ZW1wbGF0ZSZsdDtjbGFzcyBjaGFy
VCwgY2xhc3MgdHJhaXRzPgogIGNvbnN0ZXhwciBib29sIG9wZXJhdG9yPT0oYmFzaWNfc3RyaW5n
X3ZpZXcmbHQ7Y2hhclQsIHRyYWl0cz4geCwgYmFzaWNfc3RyaW5nX3ZpZXcmbHQ7Y2hhclQsIHRy
YWl0cz4geSkgbm9leGNlcHQ7CiAgdGVtcGxhdGUmbHQ7Y2xhc3MgY2hhclQsIGNsYXNzIHRyYWl0
cz4KICBjb25zdGV4cHIgYm9vbCBvcGVyYXRvciE9KGJhc2ljX3N0cmluZ192aWV3Jmx0O2NoYXJU
LCB0cmFpdHM+IHgsIGJhc2ljX3N0cmluZ192aWV3Jmx0O2NoYXJULCB0cmFpdHM+IHkpIG5vZXhj
ZXB0OwogIHRlbXBsYXRlJmx0O2NsYXNzIGNoYXJULCBjbGFzcyB0cmFpdHM+CiAgY29uc3RleHBy
IGJvb2wgb3BlcmF0b3ImbHQ7IChiYXNpY19zdHJpbmdfdmlldyZsdDtjaGFyVCwgdHJhaXRzPiB4
LCBiYXNpY19zdHJpbmdfdmlldyZsdDtjaGFyVCwgdHJhaXRzPiB5KSBub2V4Y2VwdDsKICB0ZW1w
bGF0ZSZsdDtjbGFzcyBjaGFyVCwgY2xhc3MgdHJhaXRzPgogIGNvbnN0ZXhwciBib29sIG9wZXJh
dG9yPiAoYmFzaWNfc3RyaW5nX3ZpZXcmbHQ7Y2hhclQsIHRyYWl0cz4geCwgYmFzaWNfc3RyaW5n
X3ZpZXcmbHQ7Y2hhclQsIHRyYWl0cz4geSkgbm9leGNlcHQ7CiAgdGVtcGxhdGUmbHQ7Y2xhc3Mg
Y2hhclQsIGNsYXNzIHRyYWl0cz4KICBjb25zdGV4cHIgYm9vbCBvcGVyYXRvciZsdDs9KGJhc2lj
X3N0cmluZ192aWV3Jmx0O2NoYXJULCB0cmFpdHM+IHgsIGJhc2ljX3N0cmluZ192aWV3Jmx0O2No
YXJULCB0cmFpdHM+IHkpIG5vZXhjZXB0OwogIHRlbXBsYXRlJmx0O2NsYXNzIGNoYXJULCBjbGFz
cyB0cmFpdHM+CiAgY29uc3RleHByIGJvb2wgb3BlcmF0b3I+PShiYXNpY19zdHJpbmdfdmlldyZs
dDtjaGFyVCwgdHJhaXRzPiB4LCBiYXNpY19zdHJpbmdfdmlldyZsdDtjaGFyVCwgdHJhaXRzPiB5
KSBub2V4Y2VwdDsKICAvLyBbc3RyaW5nLnZpZXcuY29tcGFyaXNvbl0sIHN1ZmZpY2llbnQgYWRk
aXRpb25hbCBvdmVybG9hZHMgb2YgY29tcGFyaXNvbiBmdW5jdGlvbnMKCiAgLy8gW3N0cmluZy52
aWV3Lm5vbm1lbV0sIG90aGVyIG5vbi1tZW1iZXIgYmFzaWNfc3RyaW5nX3ZpZXcgZnVuY3Rpb25z
CiAgdGVtcGxhdGUmbHQ7Y2xhc3MgY2hhclQsIGNsYXNzIHRyYWl0cyA9IGNoYXJfdHJhaXRzJmx0
O2NoYXJUPiwKICAgICAgICAgICBjbGFzcyBBbGxvY2F0b3IgPSBhbGxvY2F0b3ImbHQ7Y2hhclQ+
ID4KICAgIGJhc2ljX3N0cmluZyZsdDtjaGFyVCwgdHJhaXRzLCBBbGxvY2F0b3I+IHRvX3N0cmlu
ZygKICAgICAgYmFzaWNfc3RyaW5nX3ZpZXcmbHQ7Y2hhclQsIHRyYWl0cz4sCiAgICAgIGNvbnN0
IEFsbG9jYXRvciYgYSA9IEFsbG9jYXRvcigpKTsKCiAgdGVtcGxhdGUmbHQ7Y2xhc3MgY2hhclQs
IGNsYXNzIHRyYWl0cz4KICAgIGJhc2ljX29zdHJlYW0mbHQ7Y2hhclQsIHRyYWl0cz4mCiAgICAg
IG9wZXJhdG9yJmx0OyZsdDsoYmFzaWNfb3N0cmVhbSZsdDtjaGFyVCwgdHJhaXRzPiYgb3MsCiAg
ICAgICAgICAgICAgICAgYmFzaWNfc3RyaW5nX3ZpZXcmbHQ7Y2hhclQsdHJhaXRzPiBzdHIpOwoK
ICAvLyBiYXNpY19zdHJpbmdfdmlldyB0eXBlZGVmIG5hbWVzCiAgdHlwZWRlZiBiYXNpY19zdHJp
bmdfdmlldyZsdDtjaGFyPiBzdHJpbmdfdmlldzsKICB0eXBlZGVmIGJhc2ljX3N0cmluZ192aWV3
Jmx0O2NoYXIxNl90PiB1MTZzdHJpbmdfdmlldzsKICB0eXBlZGVmIGJhc2ljX3N0cmluZ192aWV3
Jmx0O2NoYXIzMl90PiB1MzJzdHJpbmdfdmlldzsKICB0eXBlZGVmIGJhc2ljX3N0cmluZ192aWV3
Jmx0O3djaGFyX3Q+IHdzdHJpbmdfdmlldzsKCn0gIC8vIG5hbWVzcGFjZSBmdW5kYW1lbnRhbHNf
djEKfSAgLy8gbmFtZXNwYWNlIGV4cGVyaW1lbnRhbAoKICAvLyBbc3RyaW5nLnZpZXcuaGFzaF0s
IGhhc2ggc3VwcG9ydDoKICB0ZW1wbGF0ZSAmbHQ7Y2xhc3MgVD4gc3RydWN0IGhhc2g7CiAgdGVt
cGxhdGUgJmx0Oz4gc3RydWN0IGhhc2gmbHQ7ZXhwZXJpbWVudGFsOjpzdHJpbmdfdmlldz47CiAg
dGVtcGxhdGUgJmx0Oz4gc3RydWN0IGhhc2gmbHQ7ZXhwZXJpbWVudGFsOjp1MTZzdHJpbmdfdmll
dz47CiAgdGVtcGxhdGUgJmx0Oz4gc3RydWN0IGhhc2gmbHQ7ZXhwZXJpbWVudGFsOjp1MzJzdHJp
bmdfdmlldz47CiAgdGVtcGxhdGUgJmx0Oz4gc3RydWN0IGhhc2gmbHQ7ZXhwZXJpbWVudGFsOjp3
c3RyaW5nX3ZpZXc+Owp9ICAvLyBuYW1lc3BhY2Ugc3RkPC9jb2RlPjwvcHJlPgoKICAgIDxwPlRo
ZSBmdW5jdGlvbiB0ZW1wbGF0ZXMgZGVmaW5lZCBpbiBDKysxMVt1dGlsaXR5LnN3YXBdIGFuZCBD
KysxMVtpdGVyYXRvci5yYW5nZV0gYXJlCiAgICBhdmFpbGFibGUgd2hlbiA8Y29kZT4mbHQ7c3Ry
aW5nX3ZpZXc+PC9jb2RlPiBpcyBpbmNsdWRlZC48L3A+CgogICAgPGRpdiBjbGFzcz0iZWRub3Rl
Ij48cD5Ob3JtYWxseSBJIHdvdWxkIHVwZGF0ZSB0aGUgbGlzdCBpbiBDKysxMVtpdGVyYXRvci5y
YW5nZV0sIGJ1dCB3ZSdyZSBub3QgeWV0IHN1cmUgaG93IHRvIGRvIHRoYXQgaW4gYSBUUywgc28g
SSBwaWNrZWQgdGhlIG1vcmUgc2VsZi1jb250YWluZWQgb3B0aW9uLjwvcD48L2Rpdj4KCiAgICAg
PHByZT48Y29kZT5uYW1lc3BhY2Ugc3RkIHsKbmFtZXNwYWNlIGV4cGVyaW1lbnRhbCB7Cm5hbWVz
cGFjZSBmdW5kYW1lbnRhbHNfdjEgewogIHRlbXBsYXRlJmx0O2NsYXNzIGNoYXJULCBjbGFzcyB0
cmFpdHMgPSBjaGFyX3RyYWl0cyZsdDtjaGFyVD4+CiAgY2xhc3MgYmFzaWNfc3RyaW5nX3ZpZXcg
ewogICAgcHVibGljOgogICAgLy8gdHlwZXMKICAgIHR5cGVkZWYgdHJhaXRzIHRyYWl0c190eXBl
OwogICAgdHlwZWRlZiBjaGFyVCB2YWx1ZV90eXBlOwogICAgdHlwZWRlZiBjb25zdCBjaGFyVCog
cG9pbnRlcjsKICAgIHR5cGVkZWYgY29uc3QgY2hhclQqIGNvbnN0X3BvaW50ZXI7CiAgICB0eXBl
ZGVmIGNvbnN0IGNoYXJUJiByZWZlcmVuY2U7CiAgICB0eXBlZGVmIGNvbnN0IGNoYXJUJiBjb25z
dF9yZWZlcmVuY2U7CiAgICB0eXBlZGVmIDx2YXI+aW1wbGVtZW50YXRpb24tZGVmaW5lZDwvdmFy
PiBjb25zdF9pdGVyYXRvcjsgLy8gU2VlIFtzdHJpbmcudmlldy5pdGVyYXRvcnNdCiAgICB0eXBl
ZGVmIGNvbnN0X2l0ZXJhdG9yIGl0ZXJhdG9yOyAgLy8gW0Zvb3Rub3RlOiBCZWNhdXNlIGJhc2lj
X3N0cmluZ192aWV3IHJlZmVycyB0byBhIGNvbnN0YW50IHNlcXVlbmNlLCBpdGVyYXRvciBhbmQg
Y29uc3RfaXRlcmF0b3IgYXJlIHRoZSBzYW1lIHR5cGUuIC0tZW5kIGZvb3Rub3RlXQogICAgdHlw
ZWRlZiByZXZlcnNlX2l0ZXJhdG9yJmx0O2NvbnN0X2l0ZXJhdG9yPiBjb25zdF9yZXZlcnNlX2l0
ZXJhdG9yOwogICAgdHlwZWRlZiBjb25zdF9yZXZlcnNlX2l0ZXJhdG9yIHJldmVyc2VfaXRlcmF0
b3I7CiAgICB0eXBlZGVmIHNpemVfdCBzaXplX3R5cGU7CiAgICB0eXBlZGVmIHB0cmRpZmZfdCBk
aWZmZXJlbmNlX3R5cGU7CiAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdHlwZSBucG9zID0gc2l6
ZV90eXBlKC0xKTsKCiAgICAvLyBbc3RyaW5nLnZpZXcuY29uc10sIGNvbnN0cnVjdC9jb3B5CiAg
ICBjb25zdGV4cHIgYmFzaWNfc3RyaW5nX3ZpZXcoKSBub2V4Y2VwdDsKICAgIGNvbnN0ZXhwciBi
YXNpY19zdHJpbmdfdmlldyhjb25zdCBiYXNpY19zdHJpbmdfdmlldyYpIG5vZXhjZXB0ID0gZGVm
YXVsdDsKICAgIGJhc2ljX3N0cmluZ192aWV3JiBvcGVyYXRvcj0oY29uc3QgYmFzaWNfc3RyaW5n
X3ZpZXcmKSBub2V4Y2VwdCA9IGRlZmF1bHQ7CiAgICB0ZW1wbGF0ZSZsdDtjbGFzcyBBbGxvY2F0
b3I+CiAgICBiYXNpY19zdHJpbmdfdmlldyhjb25zdCBiYXNpY19zdHJpbmcmbHQ7Y2hhclQsIHRy
YWl0cywgQWxsb2NhdG9yPiYgc3RyKSBub2V4Y2VwdDsKICAgIGNvbnN0ZXhwciBiYXNpY19zdHJp
bmdfdmlldyhjb25zdCBjaGFyVCogc3RyKTs8L2NvZGU+PC9wcmU+CiAgICA8ZGl2IGNsYXNzPSJl
ZG5vdGUiPjxwPlRoZSBhYm92ZSBjb25zdHJ1Y3RvciBpcyBjb25zdGV4cHIgdG8gdGFrZSBhZHZh
bnRhZ2Ugb2YgdXNlci13cml0dGVuIHRyYWl0cyBjbGFzc2VzIHRoYXQgbWlnaHQgcHJvdmlkZSBh
IGNvbnN0ZXhwciA8Y29kZT5sZW5ndGgoKTwvY29kZT4gZnVuY3Rpb24uICBJdCBjYW4ndCBiZSBw
YXJ0IG9mIGEgY29uc3RhbnQgZXhwcmVzc2lvbiB3aXRoIDxjb2RlPnN0ZDo6Y2hhcl90cmFpdHMm
bHQ7Y2hhcj48L2NvZGU+IHdpdGhvdXQgY2hhbmdlcyB0byB0aGF0IGNsYXNzLjwvcD48L2Rpdj4K
PHByZT48Y29kZT4gICAgY29uc3RleHByIGJhc2ljX3N0cmluZ192aWV3KGNvbnN0IGNoYXJUKiBz
dHIsIHNpemVfdHlwZSBsZW4pOzwvY29kZT48L3ByZT4KICAgIDxkaXYgY2xhc3M9ImVkbm90ZSI+
PHA+Tm8gaW5pdGlhbGl6ZXJfbGlzdCBjb25zdHJ1Y3RvciBiZWNhdXNlIEMrKzExW2RjbC5pbml0
Lmxpc3RdcDYgc2F5cyBpdCB3b3VsZCBsaWtlbHkgc3RvcmUgYSBkYW5nbGluZyByZWZlcmVuY2Ug
aW50byB0aGUgPGNvZGU+YmFzaWNfc3RyaW5nX3ZpZXc8L2NvZGU+LjwvcD48L2Rpdj4KCjxwcmU+
PGNvZGU+ICAgIC8vIFtzdHJpbmcudmlldy5pdGVyYXRvcnNdLCBpdGVyYXRvcnMKICAgIGNvbnN0
ZXhwciBjb25zdF9pdGVyYXRvciBiZWdpbigpIGNvbnN0IG5vZXhjZXB0OwogICAgY29uc3RleHBy
IGNvbnN0X2l0ZXJhdG9yIGVuZCgpIGNvbnN0IG5vZXhjZXB0OwogICAgY29uc3RleHByIGNvbnN0
X2l0ZXJhdG9yIGNiZWdpbigpIGNvbnN0IG5vZXhjZXB0OwogICAgY29uc3RleHByIGNvbnN0X2l0
ZXJhdG9yIGNlbmQoKSBjb25zdCBub2V4Y2VwdDs8L2NvZGU+PC9wcmU+CiAgICA8ZGl2IGNsYXNz
PSJlZG5vdGUiPjxwPnJldmVyc2VfaXRlcmF0b3IgbWV0aG9kcyBhcmVu4oCZdCBjb25zdGV4cHIg
YmVjYXVzZSByZXZlcnNlX2l0ZXJhdG9yIGlzbuKAmXQgYSBsaXRlcmFsIHR5cGUuIFNlZSA8YSBo
cmVmPSJodHRwOi8vd3d3Lm9wZW4tc3RkLm9yZy9qdGMxL3NjMjIvd2cyMS9kb2NzL3BhcGVycy8y
MDEyL24zNDczLmh0bWwjMjIwOCI+TFdHIElzc3VlIDIyMDg8L2E+LjwvcD48L2Rpdj4KPHByZT48
Y29kZT4gICAgY29uc3RfcmV2ZXJzZV9pdGVyYXRvciByYmVnaW4oKSBjb25zdCBub2V4Y2VwdDsK
ICAgIGNvbnN0X3JldmVyc2VfaXRlcmF0b3IgcmVuZCgpIGNvbnN0IG5vZXhjZXB0OwogICAgY29u
c3RfcmV2ZXJzZV9pdGVyYXRvciBjcmJlZ2luKCkgY29uc3Qgbm9leGNlcHQ7CiAgICBjb25zdF9y
ZXZlcnNlX2l0ZXJhdG9yIGNyZW5kKCkgY29uc3Qgbm9leGNlcHQ7CgogICAgLy8gW3N0cmluZy52
aWV3LmNhcGFjaXR5XSwgY2FwYWNpdHkKICAgIGNvbnN0ZXhwciBzaXplX3R5cGUgc2l6ZSgpIGNv
bnN0IG5vZXhjZXB0OwogICAgY29uc3RleHByIHNpemVfdHlwZSBsZW5ndGgoKSBjb25zdCBub2V4
Y2VwdDsKICAgIGNvbnN0ZXhwciBzaXplX3R5cGUgbWF4X3NpemUoKSBjb25zdCBub2V4Y2VwdDsK
ICAgIGNvbnN0ZXhwciBib29sIGVtcHR5KCkgY29uc3Qgbm9leGNlcHQ7CgogICAgLy8gW3N0cmlu
Zy52aWV3LmFjY2Vzc10sIGVsZW1lbnQgYWNjZXNzCiAgICBjb25zdGV4cHIgY29uc3QgY2hhclQm
IG9wZXJhdG9yW10oc2l6ZV90eXBlIHBvcykgY29uc3Q7CiAgICBjb25zdGV4cHIgY29uc3QgY2hh
clQmIGF0KHNpemVfdHlwZSBwb3MpIGNvbnN0OwogICAgY29uc3RleHByIGNvbnN0IGNoYXJUJiBm
cm9udCgpIGNvbnN0OwogICAgY29uc3RleHByIGNvbnN0IGNoYXJUJiBiYWNrKCkgY29uc3Q7CiAg
ICBjb25zdGV4cHIgY29uc3QgY2hhclQqIGRhdGEoKSBjb25zdCBub2V4Y2VwdDsKCiAgICAvLyBb
c3RyaW5nLnZpZXcubW9kaWZpZXJzXSwgbW9kaWZpZXJzOgogICAgdm9pZCBjbGVhcigpIG5vZXhj
ZXB0OwogICAgdm9pZCByZW1vdmVfcHJlZml4KHNpemVfdHlwZSBuKTsKICAgIHZvaWQgcmVtb3Zl
X3N1ZmZpeChzaXplX3R5cGUgbik7CiAgICB2b2lkIHN3YXAoYmFzaWNfc3RyaW5nX3ZpZXcmIHMp
IG5vZXhjZXB0OwoKICAgIC8vIFtzdHJpbmcudmlldy5vcHNdLCBzdHJpbmcgb3BlcmF0aW9uczoK
ICAgIHRlbXBsYXRlJmx0O2NsYXNzIEFsbG9jYXRvcj4KICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJh
c2ljX3N0cmluZyZsdDtjaGFyVCwgdHJhaXRzLCBBbGxvY2F0b3I+KCkgY29uc3Q7CgogICAgc2l6
ZV90eXBlIGNvcHkoY2hhclQqIHMsIHNpemVfdHlwZSBuLCBzaXplX3R5cGUgcG9zID0gMCkgY29u
c3Q7CgogICAgY29uc3RleHByIGJhc2ljX3N0cmluZ192aWV3IHN1YnN0cihzaXplX3R5cGUgcG9z
PTAsIHNpemVfdHlwZSBuPW5wb3MpIGNvbnN0OwogICAgY29uc3RleHByIGludCBjb21wYXJlKGJh
c2ljX3N0cmluZ192aWV3IHMpIGNvbnN0IG5vZXhjZXB0OwogICAgY29uc3RleHByIGludCBjb21w
YXJlKHNpemVfdHlwZSBwb3MxLCBzaXplX3R5cGUgbjEsIGJhc2ljX3N0cmluZ192aWV3IHMpIGNv
bnN0OwogICAgY29uc3RleHByIGludCBjb21wYXJlKHNpemVfdHlwZSBwb3MxLCBzaXplX3R5cGUg
bjEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzaWNfc3RyaW5nX3ZpZXcgcywgc2l6ZV90
eXBlIHBvczIsIHNpemVfdHlwZSBuMikgY29uc3Q7CiAgICBjb25zdGV4cHIgaW50IGNvbXBhcmUo
Y29uc3QgY2hhclQqIHMpIGNvbnN0OwogICAgY29uc3RleHByIGludCBjb21wYXJlKHNpemVfdHlw
ZSBwb3MxLCBzaXplX3R5cGUgbjEsIGNvbnN0IGNoYXJUKiBzKSBjb25zdDsKICAgIGNvbnN0ZXhw
ciBpbnQgY29tcGFyZShzaXplX3R5cGUgcG9zMSwgc2l6ZV90eXBlIG4xLAogICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGNoYXJUKiBzLCBzaXplX3R5cGUgbjIpIGNvbnN0OwogICAgY29u
c3RleHByIHNpemVfdHlwZSBmaW5kKGJhc2ljX3N0cmluZ192aWV3IHMsIHNpemVfdHlwZSBwb3M9
MCkgY29uc3Qgbm9leGNlcHQ7CiAgICBjb25zdGV4cHIgc2l6ZV90eXBlIGZpbmQoY2hhclQgYywg
c2l6ZV90eXBlIHBvcz0wKSBjb25zdCBub2V4Y2VwdDsKICAgIGNvbnN0ZXhwciBzaXplX3R5cGUg
ZmluZChjb25zdCBjaGFyVCogcywgc2l6ZV90eXBlIHBvcywgc2l6ZV90eXBlIG4pIGNvbnN0Owog
ICAgY29uc3RleHByIHNpemVfdHlwZSBmaW5kKGNvbnN0IGNoYXJUKiBzLCBzaXplX3R5cGUgcG9z
PTApIGNvbnN0OwogICAgY29uc3RleHByIHNpemVfdHlwZSByZmluZChiYXNpY19zdHJpbmdfdmll
dyBzLCBzaXplX3R5cGUgcG9zPW5wb3MpIGNvbnN0IG5vZXhjZXB0OwogICAgY29uc3RleHByIHNp
emVfdHlwZSByZmluZChjaGFyVCBjLCBzaXplX3R5cGUgcG9zPW5wb3MpIGNvbnN0IG5vZXhjZXB0
OwogICAgY29uc3RleHByIHNpemVfdHlwZSByZmluZChjb25zdCBjaGFyVCogcywgc2l6ZV90eXBl
IHBvcywgc2l6ZV90eXBlIG4pIGNvbnN0OwogICAgY29uc3RleHByIHNpemVfdHlwZSByZmluZChj
b25zdCBjaGFyVCogcywgc2l6ZV90eXBlIHBvcz1ucG9zKSBjb25zdDsKICAgIGNvbnN0ZXhwciBz
aXplX3R5cGUgZmluZF9maXJzdF9vZihiYXNpY19zdHJpbmdfdmlldyBzLCBzaXplX3R5cGUgcG9z
PTApIGNvbnN0IG5vZXhjZXB0OwogICAgY29uc3RleHByIHNpemVfdHlwZSBmaW5kX2ZpcnN0X29m
KGNoYXJUIGMsIHNpemVfdHlwZSBwb3M9MCkgY29uc3Qgbm9leGNlcHQ7CiAgICBjb25zdGV4cHIg
c2l6ZV90eXBlIGZpbmRfZmlyc3Rfb2YoY29uc3QgY2hhclQqIHMsIHNpemVfdHlwZSBwb3MsIHNp
emVfdHlwZSBuKSBjb25zdDsKICAgIGNvbnN0ZXhwciBzaXplX3R5cGUgZmluZF9maXJzdF9vZihj
b25zdCBjaGFyVCogcywgc2l6ZV90eXBlIHBvcz0wKSBjb25zdDsKICAgIGNvbnN0ZXhwciBzaXpl
X3R5cGUgZmluZF9sYXN0X29mKGJhc2ljX3N0cmluZ192aWV3IHMsIHNpemVfdHlwZSBwb3M9bnBv
cykgY29uc3Qgbm9leGNlcHQ7CiAgICBjb25zdGV4cHIgc2l6ZV90eXBlIGZpbmRfbGFzdF9vZihj
aGFyVCBjLCBzaXplX3R5cGUgcG9zPW5wb3MpIGNvbnN0IG5vZXhjZXB0OwogICAgY29uc3RleHBy
IHNpemVfdHlwZSBmaW5kX2xhc3Rfb2YoY29uc3QgY2hhclQqIHMsIHNpemVfdHlwZSBwb3MsIHNp
emVfdHlwZSBuKSBjb25zdDsKICAgIGNvbnN0ZXhwciBzaXplX3R5cGUgZmluZF9sYXN0X29mKGNv
bnN0IGNoYXJUKiBzLCBzaXplX3R5cGUgcG9zPW5wb3MpIGNvbnN0OwogICAgY29uc3RleHByIHNp
emVfdHlwZSBmaW5kX2ZpcnN0X25vdF9vZihiYXNpY19zdHJpbmdfdmlldyBzLCBzaXplX3R5cGUg
cG9zPTApIGNvbnN0IG5vZXhjZXB0OwogICAgY29uc3RleHByIHNpemVfdHlwZSBmaW5kX2ZpcnN0
X25vdF9vZihjaGFyVCBjLCBzaXplX3R5cGUgcG9zPTApIGNvbnN0IG5vZXhjZXB0OwogICAgY29u
c3RleHByIHNpemVfdHlwZSBmaW5kX2ZpcnN0X25vdF9vZihjb25zdCBjaGFyVCogcywgc2l6ZV90
eXBlIHBvcywgc2l6ZV90eXBlIG4pIGNvbnN0OwogICAgY29uc3RleHByIHNpemVfdHlwZSBmaW5k
X2ZpcnN0X25vdF9vZihjb25zdCBjaGFyVCogcywgc2l6ZV90eXBlIHBvcz0wKSBjb25zdDsKICAg
IGNvbnN0ZXhwciBzaXplX3R5cGUgZmluZF9sYXN0X25vdF9vZihiYXNpY19zdHJpbmdfdmlldyBz
LCBzaXplX3R5cGUgcG9zPW5wb3MpIGNvbnN0IG5vZXhjZXB0OwogICAgY29uc3RleHByIHNpemVf
dHlwZSBmaW5kX2xhc3Rfbm90X29mKGNoYXJUIGMsIHNpemVfdHlwZSBwb3M9bnBvcykgY29uc3Qg
bm9leGNlcHQ7CiAgICBjb25zdGV4cHIgc2l6ZV90eXBlIGZpbmRfbGFzdF9ub3Rfb2YoY29uc3Qg
Y2hhclQqIHMsIHNpemVfdHlwZSBwb3MsIHNpemVfdHlwZSBuKSBjb25zdDsKICAgIGNvbnN0ZXhw
ciBzaXplX3R5cGUgZmluZF9sYXN0X25vdF9vZihjb25zdCBjaGFyVCogcywgc2l6ZV90eXBlIHBv
cz1ucG9zKSBjb25zdDsKCiAgIHByaXZhdGU6CiAgICBjb25zdCBjaGFyVCogZGF0YV87ICAvLyA8
ZW0+ZXhwb3NpdGlvbiBvbmx5PC9lbT4KICAgIHNpemVfdHlwZSAgICBzaXplXzsgIC8vIDxlbT5l
eHBvc2l0aW9uIG9ubHk8L2VtPgogIH07Cn0gIC8vIG5hbWVzcGFjZSBmdW5kYW1lbnRhbHNfdjEK
fSAgLy8gbmFtZXNwYWNlIGV4cGVyaW1lbnRhbAp9ICAvLyBuYW1lc3BhY2Ugc3RkPC9jb2RlPjwv
cHJlPgoKICAgIDxwPkluIGV2ZXJ5IHNwZWNpYWxpemF0aW9uIDxjb2RlPmJhc2ljX3N0cmluZ192
aWV3Jmx0O2NoYXJULCB0cmFpdHM+PC9jb2RlPiwKICAgIHRoZSB0eXBlIDxjb2RlPnRyYWl0czwv
Y29kZT4gc2hhbGwgc2F0aXNmeSB0aGUgY2hhcmFjdGVyIHRyYWl0cwogICAgcmVxdWlyZW1lbnRz
IChDKysxMVtjaGFyLnRyYWl0c10pLCBhbmQgdGhlIHR5cGUgPGNvZGU+dHJhaXRzOjpjaGFyX3R5
cGU8L2NvZGU+CiAgICBzaGFsbCBuYW1lIHRoZSBzYW1lIHR5cGUgYXMgPGNvZGU+Y2hhclQ8L2Nv
ZGU+LjwvcD4KCiAgICA8aDQ+QWRkIGEgc3ViY2xhdXNlICJ4LjEgYmFzaWNfc3RyaW5nX3ZpZXcg
Y29uc3RydWN0b3JzIGFuZCBhc3NpZ25tZW50IG9wZXJhdG9ycyAgW3N0cmluZy52aWV3LmNvbnNd
IjwvaDQ+CgogICAgPHByZT48Y29kZT5jb25zdGV4cHIgYmFzaWNfc3RyaW5nX3ZpZXcoKSBub2V4
Y2VwdDs8L2NvZGU+PC9wcmU+CiAgICA8ZGl2IGNsYXNzPSJhdHRyaWJ1dGVzIj4KICAgICAgPHA+
PGk+RWZmZWN0czwvaT46IENvbnN0cnVjdHMgYW4gZW1wdHkgPGNvZGU+YmFzaWNfc3RyaW5nX3Zp
ZXc8L2NvZGU+LjwvcD4KICAgICAgPHA+PGk+UG9zdGNvbmRpdGlvbjwvaT46IDxjb2RlPnNpemVf
ID09IDA8L2NvZGU+LCBhbmQgPGNvZGU+ZGF0YV88L2NvZGU+IGhhcyBhbiB1bnNwZWNpZmllZCwg
bm9uLW51bGwgdmFsdWUgc3VjaCB0aGF0IFs8Y29kZT5kYXRhXzwvY29kZT4sPGNvZGU+ZGF0YV88
L2NvZGU+KSBpcyBhIHZhbGlkIHJhbmdlLjwvcD4KICAgIDwvZGl2PgoKICAgIDxwcmU+PGNvZGU+
dGVtcGxhdGUmbHQ7Y2xhc3MgQWxsb2NhdG9yPgpiYXNpY19zdHJpbmdfdmlldyhjb25zdCBiYXNp
Y19zdHJpbmcmbHQ7Y2hhclQsIHRyYWl0cywgQWxsb2NhdG9yPiYgc3RyKSBub2V4Y2VwdDs8L2Nv
ZGU+PC9wcmU+CiAgICA8ZGl2IGNsYXNzPSJhdHRyaWJ1dGVzIj4KICAgICAgPHA+PGk+RWZmZWN0
czwvaT46IENvbnN0cnVjdHMgYSA8Y29kZT5iYXNpY19zdHJpbmdfdmlldzwvY29kZT4sIHdpdGgg
dGhlIHBvc3Rjb25kaXRpb25zIGluIFRhYmxlIFt0YWI6c3RyaW5nLnZpZXcuY3RyLjFdPC9wPgog
ICAgICA8cD48aT5SZW1hcmtzPC9pPjogVGhlIHByb2dyYW0gc2hhbGwgbm90IGFsdGVyIGFueSBv
ZiB0aGUgdmFsdWVzIHN0b3JlZCBpbiB0aGUgY2hhcmFjdGVyIGFycmF5LiBbRm9vdG5vdGU6IFRo
aXMgaXMgdGhlIHNhbWUgcmVxdWlyZW1lbnQgYXMgb24gPGNvZGU+c3RyLmRhdGEoKTwvY29kZT4g
LS0gZW5kIGZvb3Rub3RlXTwvcD4KICAgICAgPHRhYmxlPjxjYXB0aW9uPlRhYmxlIFt0YWI6c3Ry
aW5nLnZpZXcuY3RyLjFdIOKAlCBiYXNpY19zdHJpbmdfdmlldyhjb25zdCBiYXNpY19zdHJpbmcm
KSBlZmZlY3RzPC9jYXB0aW9uPgogICAgICA8dHI+PHRoPkVsZW1lbnQ8L3RoPjx0aD5WYWx1ZTwv
dGg+PC90cj4KICAgICAgPHRyPjx0ZD48Y29kZT5kYXRhXzwvY29kZT48L3RkPjx0ZD48Y29kZT5z
dHIuZGF0YSgpPC9jb2RlPjwvdGQ+PC90cj4KICAgICAgPHRyPjx0ZD48Y29kZT5zaXplXzwvY29k
ZT48L3RkPjx0ZD48Y29kZT5zdHIuc2l6ZSgpPC9jb2RlPjwvdGQ+PC90cj4KICAgICAgPC90YWJs
ZT4KICAgIDwvZGl2PgoKICAgIDxwcmU+PGNvZGU+YmFzaWNfc3RyaW5nX3ZpZXcoY29uc3QgY2hh
clQqIHN0cik7PC9jb2RlPjwvcHJlPgogICAgPGRpdiBjbGFzcz0iYXR0cmlidXRlcyI+CiAgICAg
IDxwPjxpPlJlcXVpcmVzPC9pPjogWzxjb2RlPnN0cjwvY29kZT4sPGNvZGU+c3RyICsgdHJhaXRz
OjpsZW5ndGgoc3RyKTwvY29kZT4pIGlzIGEgdmFsaWQgcmFuZ2UuPC9wPgogICAgICA8cD48aT5F
ZmZlY3RzPC9pPjogQ29uc3RydWN0cyBhIDxjb2RlPmJhc2ljX3N0cmluZ192aWV3PC9jb2RlPiBy
ZWZlcnJpbmcgdG8gdGhlIHNhbWUgc3RyaW5nIGFzIDxjb2RlPnN0cjwvY29kZT4sIHdpdGggdGhl
IHBvc3Rjb25kaXRpb25zCiAgICAgIGluIFRhYmxlIFt0YWI6c3RyaW5nLnZpZXcuY3RyLjJdPC9w
PgoKICAgICAgPHRhYmxlPjxjYXB0aW9uPlRhYmxlIFt0YWI6c3RyaW5nLnZpZXcuY3RyLjJdIOKA
lCBiYXNpY19zdHJpbmdfdmlldyhjb25zdCBjaGFyVCopIGVmZmVjdHM8L2NhcHRpb24+CiAgICAg
IDx0cj48dGg+RWxlbWVudDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgogICAgICA8dHI+PHRkPjxj
b2RlPmRhdGFfPC9jb2RlPjwvdGQ+PHRkPjxjb2RlPnN0cjwvY29kZT48L3RkPjwvdHI+CiAgICAg
IDx0cj48dGQ+PGNvZGU+c2l6ZV88L2NvZGU+PC90ZD48dGQ+PGNvZGU+dHJhaXRzOjpsZW5ndGgo
c3RyKTwvY29kZT48L3RkPjwvdHI+CiAgICAgIDwvdGFibGU+CgogICAgICA8cD48aT5Db21wbGV4
aXR5PC9pPjogTyg8Y29kZT50cmFpdHM6Omxlbmd0aChzdHIpPC9jb2RlPik8L3A+CiAgICA8L2Rp
dj4KCiAgICA8cHJlPjxjb2RlPmNvbnN0ZXhwciBiYXNpY19zdHJpbmdfdmlldyhjb25zdCBjaGFy
VCogc3RyLCBzaXplX3R5cGUgbGVuKTs8L2NvZGU+PC9wcmU+CiAgICA8ZGl2IGNsYXNzPSJhdHRy
aWJ1dGVzIj4KICAgICAgPHA+PGk+UmVxdWlyZXM8L2k+OiA8Y29kZT5zdHI8L2NvZGU+IGlzIG5v
dCBhIG51bGwgcG9pbnRlciBhbmQgWzxjb2RlPnN0cjwvY29kZT4sPGNvZGU+c3RyICsgbGVuPC9j
b2RlPikgaXMgYSB2YWxpZCByYW5nZS48L3A+CiAgICAgIDxwPjxpPkVmZmVjdHM8L2k+OiBDb25z
dHJ1Y3RzIGEgPGNvZGU+YmFzaWNfc3RyaW5nX3ZpZXc8L2NvZGU+LCB3aXRoIHRoZSBwb3N0Y29u
ZGl0aW9ucyBpbiBUYWJsZSBbdGFiOnN0cmluZy52aWV3LmN0ci4zXTwvcD4KICAgICAgPHRhYmxl
PjxjYXB0aW9uPlRhYmxlIFt0YWI6c3RyaW5nLnZpZXcuY3RyLjNdIOKAlCBiYXNpY19zdHJpbmdf
dmlldyhjb25zdCBjaGFyVCosIHNpemVfdHlwZSkgZWZmZWN0czwvY2FwdGlvbj4KICAgICAgPHRy
Pjx0aD5FbGVtZW50PC90aD48dGg+VmFsdWU8L3RoPjwvdHI+CiAgICAgIDx0cj48dGQ+PGNvZGU+
ZGF0YV88L2NvZGU+PC90ZD48dGQ+PGNvZGU+c3RyPC9jb2RlPjwvdGQ+PC90cj4KICAgICAgPHRy
Pjx0ZD48Y29kZT5zaXplXzwvY29kZT48L3RkPjx0ZD48Y29kZT5sZW48L2NvZGU+PC90ZD48L3Ry
PgogICAgICA8L3RhYmxlPgogICAgPC9kaXY+CgoKICAgIDxoND5BZGQgYSBzdWJjbGF1c2UgIngu
MiBiYXNpY19zdHJpbmdfdmlldyBpdGVyYXRvciBzdXBwb3J0IFtzdHJpbmcudmlldy5pdGVyYXRv
cnNdIjwvaDQ+CgogICAgPHByZT48Y29kZT50eXBlZGVmIGltcGxlbWVudGF0aW9uLWRlZmluZWQg
Y29uc3RfaXRlcmF0b3I7PC9jb2RlPjwvcHJlPgogICAgPGRpdiBjbGFzcz0iYXR0cmlidXRlcyI+
CiAgICAgIDxwPkEgY29uc3RhbnQgcmFuZG9tLWFjY2VzcyBpdGVyYXRvciB0eXBlIHN1Y2ggdGhh
dCwgZm9yIGEgPGNvZGU+Y29uc3RfaXRlcmF0b3IgaXQ8L2NvZGU+LAogICAgICBpZiA8Y29kZT4m
YW1wOyooaXQrTik8L2NvZGU+IGlzIHZhbGlkLCB0aGVuIGl0IGlzIGVxdWFsIHRvIDxjb2RlPigm
YW1wOyppdCkrTjwvY29kZT4uPC9wPgogICAgICA8cD5Gb3IgYSA8Y29kZT5iYXNpY19zdHJpbmdf
dmlldyBzdHI8L2NvZGU+LCBhbnkgb3BlcmF0aW9uIHRoYXQgaW52YWxpZGF0ZXMgYSBwb2ludGVy
IGluCiAgICAgIHRoZSByYW5nZSBbPGNvZGU+c3RyLmRhdGEoKTwvY29kZT4sIDxjb2RlPnN0ci5k
YXRhKCkrc3RyLnNpemUoKTwvY29kZT4pIGludmFsaWRhdGVzIHBvaW50ZXJzLAogICAgICBpdGVy
YXRvcnMsIGFuZCByZWZlcmVuY2VzIHJldHVybmVkIGZyb20gPGNvZGU+c3RyPC9jb2RlPidzIG1l
dGhvZHMuPC9wPgogICAgICA8cD5BbGwgcmVxdWlyZW1lbnRzIG9uIGNvbnRhaW5lciBpdGVyYXRv
cnMgKEMrKzExW2NvbnRhaW5lci5yZXF1aXJlbWVudHNdKQogICAgICBhcHBseSB0byA8Y29kZT5i
YXNpY19zdHJpbmdfdmlldzo6Y29uc3RfaXRlcmF0b3I8L2NvZGU+IGFzIHdlbGwuPC9wPgogICAg
PC9kaXY+CgoKICAgIDxwcmU+PGNvZGU+Y29uc3RleHByIGNvbnN0X2l0ZXJhdG9yIGJlZ2luKCkg
Y29uc3Qgbm9leGNlcHQ7CmNvbnN0ZXhwciBjb25zdF9pdGVyYXRvciBjYmVnaW4oKSBjb25zdCBu
b2V4Y2VwdDs8L2NvZGU+PC9wcmU+CiAgICA8cCBjbGFzcz0iYXR0cmlidXRlIj48aT5SZXR1cm5z
PC9pPjogQW4gaXRlcmF0b3Igc3VjaCB0aGF0IDxjb2RlPiYqYmVnaW4oKSA9PSBkYXRhXzwvY29k
ZT4gaWYgPGNvZGU+KmRhdGFfPC9jb2RlPiBpcyBhIHZhbGlkIGV4cHJlc3Npb24gYW5kIDxjb2Rl
PiFlbXB0eSgpPC9jb2RlPiwgb3IgZWxzZSBhbiB1bnNwZWNpZmllZCB2YWx1ZSBzdWNoIHRoYXQg
Wzxjb2RlPmJlZ2luKCk8L2NvZGU+LDxjb2RlPmVuZCgpPC9jb2RlPikgaXMgYSB2YWxpZCByYW5n
ZS48L3A+CgogICAgPHByZT48Y29kZT5jb25zdGV4cHIgY29uc3RfaXRlcmF0b3IgZW5kKCkgY29u
c3Qgbm9leGNlcHQ7CmNvbnN0ZXhwciBjb25zdF9pdGVyYXRvciBjZW5kKCkgY29uc3Qgbm9leGNl
cHQ7PC9jb2RlPjwvcHJlPgogICAgPHAgY2xhc3M9ImF0dHJpYnV0ZSI+PGk+UmV0dXJuczwvaT46
IDxjb2RlPmJlZ2luKCkgKyBzaXplKCk8L2NvZGU+PC9wPgoKICAgIDxwcmU+PGNvZGU+Y29uc3Rf
cmV2ZXJzZV9pdGVyYXRvciByYmVnaW4oKSBjb25zdCBub2V4Y2VwdDsKY29uc3RfcmV2ZXJzZV9p
dGVyYXRvciBjcmJlZ2luKCkgY29uc3Qgbm9leGNlcHQ7PC9jb2RlPjwvcHJlPgogICAgPHAgY2xh
c3M9ImF0dHJpYnV0ZSI+PGk+UmV0dXJuczwvaT46IEFuIGl0ZXJhdG9yIHdoaWNoIGlzIHNlbWFu
dGljYWxseSBlcXVpdmFsZW50IHRvIDxjb2RlPnJldmVyc2VfaXRlcmF0b3IoZW5kKCkpPC9jb2Rl
Pi48L3A+CgogICAgPHByZT48Y29kZT5jb25zdF9yZXZlcnNlX2l0ZXJhdG9yIHJlbmQoKSBjb25z
dCBub2V4Y2VwdDsKY29uc3RfcmV2ZXJzZV9pdGVyYXRvciBjcmVuZCgpIGNvbnN0IG5vZXhjZXB0
OzwvY29kZT48L3ByZT4KICAgIDxwIGNsYXNzPSJhdHRyaWJ1dGUiPjxpPlJldHVybnM8L2k+OiBB
biBpdGVyYXRvciB3aGljaCBpcyBzZW1hbnRpY2FsbHkgZXF1aXZhbGVudCB0byA8Y29kZT5yZXZl
cnNlX2l0ZXJhdG9yKGJlZ2luKCkpPC9jb2RlPi48L3A+CgogICAgPGg0PkFkZCBhIHN1YmNsYXVz
ZSAieC4zIGJhc2ljX3N0cmluZ192aWV3IGNhcGFjaXR5IFtzdHJpbmcudmlldy5jYXBhY2l0eV0i
PC9oND4KCiAgICA8cHJlPjxjb2RlPmNvbnN0ZXhwciBzaXplX3R5cGUgc2l6ZSgpIGNvbnN0IG5v
ZXhjZXB0OzwvY29kZT48L3ByZT4KICAgIDxkaXYgY2xhc3M9ImF0dHJpYnV0ZXMiPgogICAgICA8
cD48aT5SZXR1cm5zPC9pPjogPGNvZGU+c2l6ZV88L2NvZGU+PC9wPgogICAgPC9kaXY+CgogICAg
PHByZT48Y29kZT5jb25zdGV4cHIgc2l6ZV90eXBlIGxlbmd0aCgpIGNvbnN0IG5vZXhjZXB0Ozwv
Y29kZT48L3ByZT4KICAgIDxwIGNsYXNzPSJhdHRyaWJ1dGUiPjxpPlJldHVybnM8L2k+OiA8Y29k
ZT5zaXplXzwvY29kZT4uPC9wPgoKICAgIDxwcmU+PGNvZGU+Y29uc3RleHByIHNpemVfdHlwZSBt
YXhfc2l6ZSgpIGNvbnN0IG5vZXhjZXB0OzwvY29kZT48L3ByZT4KICAgIDxwIGNsYXNzPSJhdHRy
aWJ1dGUiPjxpPlJldHVybnM8L2k+OiBUaGUgbGFyZ2VzdCBwb3NzaWJsZSBudW1iZXIgb2YgY2hh
ci1saWtlIG9iamVjdHMgdGhhdCBjYW4gYmUgcmVmZXJyZWQgdG8gYnkgYSA8Y29kZT5iYXNpY19z
dHJpbmdfdmlldzwvY29kZT4uPC9wPgoKICAgIDxwcmU+PGNvZGU+Y29uc3RleHByIGJvb2wgZW1w
dHkoKSBjb25zdCBub2V4Y2VwdDs8L2NvZGU+PC9wcmU+CiAgICA8cCBjbGFzcz0iYXR0cmlidXRl
Ij48aT5SZXR1cm5zPC9pPjogPGNvZGU+c2l6ZV8gPT0gMDwvY29kZT4uPC9wPgoKCiAgICA8aDQg
aWQ9InN0cmluZy52aWV3LmFjY2VzcyI+QWRkIGEgc3ViY2xhdXNlICJ4LjQgYmFzaWNfc3RyaW5n
X3ZpZXcgZWxlbWVudCBhY2Nlc3MgW3N0cmluZy52aWV3LmFjY2Vzc10iPC9oND4KCiAgICA8cHJl
Pjxjb2RlPmNvbnN0ZXhwciBjb25zdF9yZWZlcmVuY2Ugb3BlcmF0b3JbXShzaXplX3R5cGUgcG9z
KSBjb25zdDs8L2NvZGU+PC9wcmU+CiAgICA8ZGl2IGNsYXNzPSJhdHRyaWJ1dGVzIj4KICAgICAg
PHA+PGk+UmVxdWlyZXM8L2k+OiA8Y29kZT5wb3MgJmx0OyBzaXplKCk8L2NvZGU+LjwvcD4KICAg
ICAgPHA+PGk+UmV0dXJuczwvaT46IDxjb2RlPmRhdGFfW3Bvc108L2NvZGU+PC9wPgogICAgICA8
cD48aT5UaHJvd3M8L2k+OiBOb3RoaW5nLjwvcD4KICAgICAgPHA+WyBOb3RlOiBVbmxpa2UgPGNv
ZGU+YmFzaWNfc3RyaW5nOjpvcGVyYXRvcltdPC9jb2RlPiwKICAgICAgPGNvZGU+YmFzaWNfc3Ry
aW5nX3ZpZXc6Om9wZXJhdG9yW10oc2l6ZSgpKTwvY29kZT4gaGFzIHVuZGVmaW5lZCBiZWhhdmlv
ciBpbnN0ZWFkIG9mCiAgICAgIHJldHVybmluZyA8Y29kZT5jaGFyVCgpPC9jb2RlPi4g4oCUIGVu
ZCBub3RlIF08L3A+CiAgICA8L2Rpdj4KCiAgICA8cHJlPjxjb2RlPmNvbnN0ZXhwciBjb25zdF9y
ZWZlcmVuY2UgYXQoc2l6ZV90eXBlIHBvcykgY29uc3Q7PC9jb2RlPjwvcHJlPgogICAgPGRpdiBj
bGFzcz0iYXR0cmlidXRlcyI+CiAgICAgIDxwPjxpPlRocm93czwvaT46IDxjb2RlPm91dF9vZl9y
YW5nZTwvY29kZT4gaWYgPGNvZGU+cG9zID49IHNpemUoKTwvY29kZT4uPC9wPgogICAgICA8cD48
aT5SZXR1cm5zPC9pPjogPGNvZGU+b3BlcmF0b3JbXShwb3MpPC9jb2RlPi48L3A+CiAgICA8L2Rp
dj4KCiAgICA8cHJlPjxjb2RlPmNvbnN0ZXhwciBjb25zdCBjaGFyVCYgZnJvbnQoKSBjb25zdDs8
L2NvZGU+PC9wcmU+CiAgICA8ZGl2IGNsYXNzPSJhdHRyaWJ1dGVzIj4KICAgICAgPHA+PGk+UmVx
dWlyZXM8L2k+OiA8Y29kZT4hZW1wdHkoKTwvY29kZT48L3A+CiAgICAgIDxwPjxpPkVmZmVjdHM8
L2k+OiBFcXVpdmFsZW50IHRvIDxjb2RlPnJldHVybiBvcGVyYXRvcltdKDApPC9jb2RlPi48L3A+
CiAgICA8L2Rpdj4KCiAgICA8cHJlPjxjb2RlPmNvbnN0ZXhwciBjb25zdCBjaGFyVCYgYmFjaygp
IGNvbnN0OzwvY29kZT48L3ByZT4KICAgIDxkaXYgY2xhc3M9ImF0dHJpYnV0ZXMiPgogICAgICA8
cD48aT5SZXF1aXJlczwvaT46IDxjb2RlPiFlbXB0eSgpPC9jb2RlPjwvcD4KICAgICAgPHA+PGk+
RWZmZWN0czwvaT46IEVxdWl2YWxlbnQgdG8gPGNvZGU+cmV0dXJuIG9wZXJhdG9yW10oc2l6ZSgp
IC0gMSk8L2NvZGU+LjwvcD4KICAgIDwvZGl2PgoKICAgIDxwcmUgaWQ9InN0cmluZy52aWV3LmRh
dGEiPjxjb2RlPmNvbnN0ZXhwciBjb25zdCBjaGFyVCogZGF0YSgpIGNvbnN0IG5vZXhjZXB0Ozwv
Y29kZT48L3ByZT4KICAgIDxkaXYgY2xhc3M9ImF0dHJpYnV0ZXMiPgogICAgICA8cD48aT5SZXR1
cm5zPC9pPjogPGNvZGU+ZGF0YV88L2NvZGU+PC9wPgogICAgICA8cD5bIE5vdGU6IFVubGlrZSA8
Y29kZT5zdGQ6OnN0cmluZzo6ZGF0YSgpPC9jb2RlPiBhbmQgc3RyaW5nIGxpdGVyYWxzLCA8Y29k
ZT5kYXRhKCk8L2NvZGU+IG1heQogICAgICByZXR1cm4gYSBwb2ludGVyIHRvIGEgYnVmZmVyIHRo
YXQgaXMgbm90IG51bGwtdGVybWluYXRlZC4gVGhlcmVmb3JlIGl0IGlzCiAgICAgIHR5cGljYWxs
eSBhIG1pc3Rha2UgdG8gcGFzcyA8Y29kZT5kYXRhKCk8L2NvZGU+IHRvIGEgcm91dGluZSB0aGF0
IHRha2VzIGp1c3QgYQogICAgICA8Y29kZT5jb25zdCBjaGFyVCo8L2NvZGU+IGFuZCBleHBlY3Rz
IGEgbnVsbC10ZXJtaW5hdGVkIHN0cmluZy4g4oCUIGVuZCBub3RlIF08L3A+CiAgICA8L2Rpdj4K
CiAgICA8aDQgaWQ9InN0cmluZy52aWV3Lm1vZGlmaWVycyI+QWRkIGEgc3ViY2xhdXNlICJ4LjUg
YmFzaWNfc3RyaW5nX3ZpZXcgbW9kaWZpZXJzIFtzdHJpbmcudmlldy5tb2RpZmllcnNdIjwvaDQ+
CgogICAgPHByZT48Y29kZT52b2lkIGNsZWFyKCkgbm9leGNlcHQ7PC9jb2RlPjwvcHJlPgogICAg
PHAgY2xhc3M9ImF0dHJpYnV0ZSI+PGk+RWZmZWN0czwvaT46IEVxdWl2YWxlbnQgdG8gPGNvZGU+
KnRoaXMgPSBiYXNpY19zdHJpbmdfdmlldygpPC9jb2RlPjwvcD4KCiAgICA8cHJlPjxjb2RlPnZv
aWQgcmVtb3ZlX3ByZWZpeChzaXplX3R5cGUgbik7PC9jb2RlPjwvcHJlPgogICAgPGRpdiBjbGFz
cz0iYXR0cmlidXRlcyI+CiAgICAgIDxwPjxpPlJlcXVpcmVzPC9pPjogPGNvZGU+biAmbHQ7PSBz
aXplKCk8L2NvZGU+PC9wPgogICAgICA8cD48aT5FZmZlY3RzPC9pPjogRXF1aXZhbGVudCB0byA8
Y29kZT5kYXRhXyArPSBuOyBzaXplXyAtPSBuOzwvY29kZT48L3A+CiAgICA8L2Rpdj4KCiAgICA8
cHJlPjxjb2RlPnZvaWQgcmVtb3ZlX3N1ZmZpeChzaXplX3R5cGUgbik7PC9jb2RlPjwvcHJlPgog
ICAgPGRpdiBjbGFzcz0iYXR0cmlidXRlcyI+CiAgICAgIDxwPjxpPlJlcXVpcmVzPC9pPjogPGNv
ZGU+biAmbHQ7PSBzaXplKCk8L2NvZGU+PC9wPgogICAgICA8cD48aT5FZmZlY3RzPC9pPjogRXF1
aXZhbGVudCB0byA8Y29kZT5zaXplXyAtPSBuOzwvY29kZT48L3A+CiAgICA8L2Rpdj4KCiAgICA8
cHJlPjxjb2RlPnZvaWQgc3dhcChiYXNpY19zdHJpbmdfdmlldyYgcykgbm9leGNlcHQ8L2NvZGU+
PC9wcmU+CiAgICA8ZGl2IGNsYXNzPSJhdHRyaWJ1dGVzIj4KICAgICAgPHA+PGk+RWZmZWN0czwv
aT46IEV4Y2hhbmdlcyB0aGUgdmFsdWVzIG9mIDxjb2RlPip0aGlzPC9jb2RlPiBhbmQgPGNvZGU+
czwvY29kZT4uPC9wPgogICAgPC9kaXY+CgoKICAgIDxoNCBpZD0ic3RyaW5nLnZpZXcub3BzIj5B
ZGQgYSBzdWJjbGF1c2UgInguNiBiYXNpY19zdHJpbmdfdmlldyBzdHJpbmcgb3BlcmF0aW9ucyBb
c3RyaW5nLnZpZXcub3BzXSI8L2g0PgoKICAgIDxwcmU+PGNvZGU+dGVtcGxhdGUmbHQ7Y2xhc3Mg
QWxsb2NhdG9yPgpleHBsaWNpdCAgLy8gRm9vdG5vdGU6IFRoaXMgY29udmVyc2lvbiBpcyBleHBs
aWNpdCB0byBhdm9pZCBhY2NpZGVudGFsIE8oTikgb3BlcmF0aW9ucyBvbiB0eXBlIG1pc21hdGNo
ZXMuIC0tZW5kIGZvb3Rub3RlCm9wZXJhdG9yIGJhc2ljX3N0cmluZyZsdDtjaGFyVCwgdHJhaXRz
LCBBbGxvY2F0b3I+KCkgY29uc3Q7PC9jb2RlPjwvcHJlPgogICAgPGRpdiBjbGFzcz0iYXR0cmli
dXRlcyI+CiAgICAgIDxwPjxpPkVmZmVjdHM8L2k+OiBFcXVpdmFsZW50IHRvIDxjb2RlPnJldHVy
biBiYXNpY19zdHJpbmcmbHQ7Y2hhclQsIHRyYWl0cywgQWxsb2NhdG9yPihzdHIuYmVnaW4oKSwg
c3RyLmVuZCgpKS48L2NvZGU+PC9wPgogICAgICA8cD5bIE5vdGU6IFVzZXJzIHdobyB3YW50IHRv
IGNvbnRyb2wgdGhlIGFsbG9jYXRvciBpbnN0YW5jZSBzaG91bGQgY2FsbCA8Y29kZT5iYXNpY19z
dHJpbmcoc3RyLmJlZ2luKCksIHN0ci5lbmQoKSwgYWxsb2NhdG9yKTwvY29kZT4gZGlyZWN0bHku
IC0tIGVuZCBub3RlIF08L3A+CiAgICA8L2Rpdj4KCiAgICA8cHJlPjxjb2RlPnNpemVfdHlwZSBj
b3B5KGNoYXJUKiBzLCBzaXplX3R5cGUgbiwgc2l6ZV90eXBlIHBvcyA9IDApIGNvbnN0OzwvY29k
ZT48L3ByZT4KICAgIDxkaXYgY2xhc3M9ImF0dHJpYnV0ZXMiPgogICAgICA8cD48aT5UaHJvd3M8
L2k+OiA8Y29kZT5vdXRfb2ZfcmFuZ2U8L2NvZGU+IGlmIDxjb2RlPnBvcyA+IHNpemUoKTwvY29k
ZT4uPC9wPgogICAgICA8cD48aT5SZW1hcmtzPC9pPjogTGV0IDxjb2RlPjx2YXI+cmxlbjwvdmFy
PjwvY29kZT4gYmUgdGhlIHNtYWxsZXIgb2YgPGNvZGU+bjwvY29kZT4gYW5kIDxjb2RlPnNpemUo
KSAtIHBvczwvY29kZT4uPC9wPgogICAgICA8cD48aT5SZXF1aXJlczwvaT46IFs8Y29kZT5zPC9j
b2RlPiwgPGNvZGU+cys8dmFyPnJsZW48L3Zhcj48L2NvZGU+KSBpcyBhIHZhbGlkIHJhbmdlLjwv
cD4KICAgICAgPHA+PGk+RWZmZWN0czwvaT46IEVxdWl2YWxlbnQgdG8gPGNvZGU+c3RkOjpjb3B5
X24oYmVnaW4oKSArIHBvcywgPHZhcj5ybGVuPC92YXI+LCBzKS48L2NvZGU+PC9wPgogICAgICA8
cD48aT5SZXR1cm5zPC9pPjogPGNvZGU+PHZhcj5ybGVuPC92YXI+PC9jb2RlPi48L3A+CiAgICA8
L2Rpdj4KCiAgICA8cHJlPjxjb2RlPmNvbnN0ZXhwciBiYXNpY19zdHJpbmdfdmlldyBzdWJzdHIo
c2l6ZV90eXBlIHBvcyA9IDAsIHNpemVfdHlwZSBuID0gbnBvcykgY29uc3Q7PC9jb2RlPjwvcHJl
PgogICAgPGRpdiBjbGFzcz0iYXR0cmlidXRlcyI+CiAgICAgIDxwPjxpPlRocm93czwvaT46IDxj
b2RlPm91dF9vZl9yYW5nZTwvY29kZT4gaWYgPGNvZGU+cG9zID4gc2l6ZSgpPC9jb2RlPi48L3A+
CiAgICAgIDxwPjxpPkVmZmVjdHM8L2k+OiBEZXRlcm1pbmVzIHRoZSBlZmZlY3RpdmUgbGVuZ3Ro
IDxjb2RlPjx2YXI+cmxlbjwvdmFyPjwvY29kZT4gb2YgdGhlIHN0cmluZyB0byByZWZlcmVuY2Ug
YXMgdGhlIHNtYWxsZXIgb2YgPGNvZGU+bjwvY29kZT4gYW5kIDxjb2RlPnNpemUoKSAtIHBvczwv
Y29kZT4uPC9wPgogICAgICA8cD48aT5SZXR1cm5zPC9pPjogPGNvZGU+YmFzaWNfc3RyaW5nX3Zp
ZXcoZGF0YSgpK3BvcywgPHZhcj5ybGVuPC92YXI+KTwvY29kZT4uPC9wPgogICAgPC9kaXY+Cgog
ICAgPHByZT48Y29kZT5jb25zdGV4cHIgaW50IGNvbXBhcmUoYmFzaWNfc3RyaW5nX3ZpZXcgc3Ry
KSBjb25zdCBub2V4Y2VwdDs8L2NvZGU+PC9wcmU+CiAgICA8ZGl2IGNsYXNzPSJhdHRyaWJ1dGVz
Ij4KICAgICAgPHA+PGk+RWZmZWN0czwvaT46IERldGVybWluZXMgdGhlIGVmZmVjdGl2ZSBsZW5n
dGgKICAgICAgPGNvZGU+PHZhcj5ybGVuPC92YXI+PC9jb2RlPiBvZiB0aGUgc3RyaW5ncyB0byBj
b21wYXJlIGFzIHRoZQogICAgICBzbWFsbGVzdCBvZiA8Y29kZT5zaXplKCk8L2NvZGU+IGFuZCA8
Y29kZT5zdHIuc2l6ZSgpPC9jb2RlPi4gVGhlCiAgICAgIGZ1bmN0aW9uIHRoZW4gY29tcGFyZXMg
dGhlIHR3byBzdHJpbmdzIGJ5IGNhbGxpbmcKICAgICAgPGNvZGU+dHJhaXRzOjpjb21wYXJlKGRh
dGEoKSwgc3RyLmRhdGEoKSwgPHZhcj5ybGVuPC92YXI+KTwvY29kZT4uPC9wPgogICAgICA8cD48
aT5Db21wbGV4aXR5PC9pPjogTyg8Y29kZT48dmFyPnJsZW48L3Zhcj48L2NvZGU+KTwvcD4KICAg
ICAgPHA+PGk+UmV0dXJuczwvaT46IFRoZSBub256ZXJvIHJlc3VsdCBpZiB0aGUgcmVzdWx0IG9m
IHRoZSBjb21wYXJpc29uIGlzIG5vbnplcm8uIE90aGVyd2lzZSwgcmV0dXJucyBhIHZhbHVlIGFz
CiAgICAgIGluZGljYXRlZCBpbiBUYWJsZSBbdGFiOnN0cmluZy52aWV3LmNvbXBhcmVdLjwvcD4K
ICAgICAgPHRhYmxlPjxjYXB0aW9uPlRhYmxlIFt0YWI6c3RyaW5nLnZpZXcuY29tcGFyZV0g4oCU
IGNvbXBhcmUoKSByZXN1bHRzPC9jYXB0aW9uPgogICAgICA8dHI+PHRoPkNvbmRpdGlvbjwvdGg+
PHRoPlJldHVybiBWYWx1ZTwvdGg+PC90cj4KICAgICAgPHRyPjx0ZD48Y29kZT5zaXplKCkgJmx0
OyBzdHIuc2l6ZSgpPC9jb2RlPjwvdGQ+PHRkPjxjb2RlPiZsdDsgMDwvY29kZT48L3RkPjwvdHI+
CiAgICAgIDx0cj48dGQ+PGNvZGU+c2l6ZSgpID09IHN0ci5zaXplKCk8L2NvZGU+PC90ZD48dGQ+
PGNvZGU+MDwvY29kZT48L3RkPjwvdHI+CiAgICAgIDx0cj48dGQ+PGNvZGU+c2l6ZSgpID4gIHN0
ci5zaXplKCk8L2NvZGU+PC90ZD48dGQ+PGNvZGU+PiAwPC9jb2RlPjwvdGQ+PC90cj4KICAgICAg
PC90YWJsZT4KICAgIDwvZGl2PgoKICAgIDxwcmU+PGNvZGU+Y29uc3RleHByIGludCBjb21wYXJl
KHNpemVfdHlwZSBwb3MxLCBzaXplX3R5cGUgbjEsIGJhc2ljX3N0cmluZ192aWV3IHN0cikgY29u
c3Q7PC9jb2RlPjwvcHJlPgogICAgPHAgY2xhc3M9ImF0dHJpYnV0ZSI+PGk+RWZmZWN0czwvaT46
IEVxdWl2YWxlbnQgdG8gPGNvZGU+cmV0dXJuIHN1YnN0cihwb3MxLCBuMSkuY29tcGFyZShzdHIp
PC9jb2RlPi48L3A+CgogICAgPHByZT48Y29kZT5jb25zdGV4cHIgaW50IGNvbXBhcmUoc2l6ZV90
eXBlIHBvczEsIHNpemVfdHlwZSBuMSwgYmFzaWNfc3RyaW5nX3ZpZXcgc3RyLAogICAgICAgICAg
ICAgICAgICAgICAgc2l6ZV90eXBlIHBvczIsIHNpemVfdHlwZSBuMikgY29uc3Q7PC9jb2RlPjwv
cHJlPgogICAgPHAgY2xhc3M9ImF0dHJpYnV0ZSI+PGk+RWZmZWN0czwvaT46IEVxdWl2YWxlbnQg
dG8gPGNvZGU+cmV0dXJuIHN1YnN0cihwb3MxLCBuMSkuY29tcGFyZShzdHIuc3Vic3RyKHBvczIs
IG4yKSk8L2NvZGU+LjwvcD4KICAgIDxwcmU+PGNvZGU+Y29uc3RleHByIGludCBjb21wYXJlKGNv
bnN0IGNoYXJUKiBzKSBjb25zdDs8L2NvZGU+PC9wcmU+CiAgICA8cCBjbGFzcz0iYXR0cmlidXRl
Ij48aT5FZmZlY3RzPC9pPjogRXF1aXZhbGVudCB0byA8Y29kZT5yZXR1cm4gY29tcGFyZShiYXNp
Y19zdHJpbmdfdmlldyhzKSk8L2NvZGU+LjwvcD4KICAgIDxwcmU+PGNvZGU+Y29uc3RleHByIGlu
dCBjb21wYXJlKHNpemVfdHlwZSBwb3MxLCBzaXplX3R5cGUgbjEsIGNvbnN0IGNoYXJUKiBzKSBj
b25zdDs8L2NvZGU+PC9wcmU+CiAgICA8cCBjbGFzcz0iYXR0cmlidXRlIj48aT5FZmZlY3RzPC9p
PjogRXF1aXZhbGVudCB0byA8Y29kZT5yZXR1cm4gc3Vic3RyKHBvczEsIG4xKS5jb21wYXJlKGJh
c2ljX3N0cmluZ192aWV3KHMpKTwvY29kZT4uPC9wPgogICAgPHByZT48Y29kZT5jb25zdGV4cHIg
aW50IGNvbXBhcmUoc2l6ZV90eXBlIHBvczEsIHNpemVfdHlwZSBuMSwKICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGNoYXJUKiBzLCBzaXplX3R5cGUgbjIpIGNvbnN0OzwvY29kZT48L3ByZT4K
ICAgIDxwIGNsYXNzPSJhdHRyaWJ1dGUiPjxpPkVmZmVjdHM8L2k+OiBFcXVpdmFsZW50IHRvIDxj
b2RlPnJldHVybiBzdWJzdHIocG9zMSwgbjEpLmNvbXBhcmUoYmFzaWNfc3RyaW5nX3ZpZXcocywg
bjIpKTwvY29kZT4uPC9wPgoKICAgIDxoNT5BZGQgYSBzdWItc3ViY2xhdXNlICJ4LjYuMSBTZWFy
Y2hpbmcgYmFzaWNfc3RyaW5nX3ZpZXcgW3N0cmluZy52aWV3LmZpbmRdIjwvaDU+CgogICAgPHA+
TWVtYmVyIGZ1bmN0aW9ucyBpbiB0aGlzIHNlY3Rpb24gaGF2ZSBjb21wbGV4aXR5IE8oPGNvZGU+
c2l6ZSgpICogYXJndW1lbnQuc2l6ZSgpPC9jb2RlPikKICAgIGF0IHdvcnN0LCBhbHRob3VnaCBp
bXBsZW1lbnRhdGlvbnMgYXJlIGVuY291cmFnZWQgdG8gZG8gYmV0dGVyLjwvcD4KCiAgICA8cD5F
YWNoIG1lbWJlciBmdW5jdGlvbiBvZiB0aGUgZm9ybTwvcD4KICAgIDxwcmU+PGNvZGU+Y29uc3Rl
eHByIDx2YXI+cmV0dXJuLXR5cGUgZngxPC92YXI+KGNvbnN0IGNoYXJUKiBzLCBzaXplX3R5cGUg
cG9zKTs8L2NvZGU+PC9wcmU+CiAgICA8cD5pcyBlcXVpdmFsZW50IHRvIDxjb2RlPnJldHVybiA8
dmFyPmZ4MTwvdmFyPihiYXNpY19zdHJpbmdfdmlldyhzKSwgcG9zKTwvY29kZT4uPC9wPgoKICAg
IDxwPkVhY2ggbWVtYmVyIGZ1bmN0aW9uIG9mIHRoZSBmb3JtPC9wPgogICAgPHByZT48Y29kZT5j
b25zdGV4cHIgPHZhcj5yZXR1cm4tdHlwZSBmeDE8L3Zhcj4oY29uc3QgY2hhclQqIHMsIHNpemVf
dHlwZSBwb3MsIHNpemVfdHlwZSBuKTsgLy8gZmluZCgpIHZhcmlhbnRzPC9jb2RlPjwvcHJlPgog
ICAgPHA+aXMgZXF1aXZhbGVudCB0byA8Y29kZT5yZXR1cm4gPHZhcj5meDE8L3Zhcj4oYmFzaWNf
c3RyaW5nX3ZpZXcocywgbiksIHBvcyk8L2NvZGU+LjwvcD4KCiAgICA8cD5FYWNoIG1lbWJlciBm
dW5jdGlvbiBvZiB0aGUgZm9ybTwvcD4KICAgIDxwcmU+PGNvZGU+Y29uc3RleHByIDx2YXI+cmV0
dXJuLXR5cGUgZngyPC92YXI+KGNoYXJUIGMsIHNpemVfdHlwZSBwb3MpOyAvLyBmaW5kKCkgdmFy
aWFudHM8L2NvZGU+PC9wcmU+CiAgICA8cD5pcyBlcXVpdmFsZW50IHRvIDxjb2RlPnJldHVybiA8
dmFyPmZ4MjwvdmFyPihiYXNpY19zdHJpbmdfdmlldygmYywgMSksIHBvcyk8L2NvZGU+LjwvcD4K
CiAgICA8cHJlPjxjb2RlPmNvbnN0ZXhwciBzaXplX3R5cGUgZmluZChiYXNpY19zdHJpbmdfdmll
dyBzdHIsIHNpemVfdHlwZSBwb3M9MCkgY29uc3Qgbm9leGNlcHQ7PC9jb2RlPjwvcHJlPgogICAg
PGRpdiBjbGFzcz0iYXR0cmlidXRlcyI+CiAgICAgIDxwPjxpPkVmZmVjdHM8L2k+OiBEZXRlcm1p
bmVzIHRoZSBsb3dlc3QgcG9zaXRpb24gPGNvZGU+PHZhcj54cG9zPC92YXI+PC9jb2RlPiwgaWYg
cG9zc2libGUsIHN1Y2ggdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgb2J0YWluOjwvcD4K
ICAgICAgPHVsPjxsaT48Y29kZT5wb3MgJmx0Oz0gPHZhcj54cG9zPC92YXI+PC9jb2RlPjwvbGk+
CiAgICAgIDxsaT48Y29kZT48dmFyPnhwb3M8L3Zhcj4gKyBzdHIuc2l6ZSgpICZsdDs9IHNpemUo
KTwvY29kZT48L2xpPgogICAgICA8bGk+PGNvZGU+dHJhaXRzOjplcShhdCg8dmFyPnhwb3M8L3Zh
cj4rSSksIHN0ci5hdChJKSk8L2NvZGU+IGZvciBhbGwgZWxlbWVudHMgPGNvZGU+STwvY29kZT4g
b2YgdGhlIHN0cmluZyByZWZlcmVuY2VkIGJ5IDxjb2RlPnN0cjwvY29kZT4uPC9saT4KICAgICAg
PC91bD4KICAgICAgPHA+PGk+UmV0dXJuczwvaT46IDxjb2RlPjx2YXI+eHBvczwvdmFyPjwvY29k
ZT4gaWYgdGhlIGZ1bmN0aW9uIGNhbiBkZXRlcm1pbmUgc3VjaCBhIHZhbHVlIGZvciA8Y29kZT48
dmFyPnhwb3M8L3Zhcj48L2NvZGU+LiBPdGhlcndpc2UsIHJldHVybnMgPGNvZGU+bnBvczwvY29k
ZT4uPC9wPgogICAgICA8cD48aT5SZW1hcmtzPC9pPjogVXNlcyA8Y29kZT50cmFpdHM6OmVxKCk8
L2NvZGU+LjwvcD4KICAgIDwvZGl2PgoKICAgIDxwcmU+PGNvZGU+Y29uc3RleHByIHNpemVfdHlw
ZSByZmluZChiYXNpY19zdHJpbmdfdmlldyBzdHIsIHNpemVfdHlwZSBwb3M9bnBvcykgY29uc3Qg
bm9leGNlcHQ7PC9jb2RlPjwvcHJlPgogICAgPGRpdiBjbGFzcz0iYXR0cmlidXRlcyI+CiAgICAg
IDxwPjxpPkVmZmVjdHM8L2k+OiBEZXRlcm1pbmVzIHRoZSBoaWdoZXN0IHBvc2l0aW9uIDxjb2Rl
Pnhwb3M8L2NvZGU+LCBpZiBwb3NzaWJsZSwgc3VjaCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBvYnRhaW46PC9wPgogICAgICA8dWw+PGxpPjxjb2RlPnhwb3MgJmx0Oz0gcG9zPC9jb2Rl
PjwvbGk+CiAgICAgIDxsaT48Y29kZT54cG9zICsgc3RyLnNpemUoKSAmbHQ7PSBzaXplKCk8L2Nv
ZGU+PC9saT4KICAgICAgPGxpPjxjb2RlPnRyYWl0czo6ZXEoYXQoeHBvcytJKSwgc3RyLmF0KEkp
KTwvY29kZT4gZm9yIGFsbCBlbGVtZW50cyA8Y29kZT5JPC9jb2RlPiBvZiB0aGUgc3RyaW5nIHJl
ZmVyZW5jZWQgYnkgPGNvZGU+c3RyPC9jb2RlPi48L2xpPjwvdWw+CiAgICAgIDxwPjxpPlJldHVy
bnM8L2k+OiA8Y29kZT54cG9zPC9jb2RlPiBpZiB0aGUgZnVuY3Rpb24gY2FuIGRldGVybWluZSBz
dWNoIGEgdmFsdWUgZm9yIDxjb2RlPnhwb3M8L2NvZGU+LiBPdGhlcndpc2UsIHJldHVybnMgPGNv
ZGU+bnBvczwvY29kZT4uPC9wPgogICAgICA8cD48aT5SZW1hcmtzPC9pPjogVXNlcyA8Y29kZT50
cmFpdHM6OmVxKCk8L2NvZGU+LjwvcD4KICAgIDwvZGl2PgoKICAgIDxwcmU+PGNvZGU+Y29uc3Rl
eHByIHNpemVfdHlwZSBmaW5kX2ZpcnN0X29mKGJhc2ljX3N0cmluZ192aWV3IHN0ciwgc2l6ZV90
eXBlIHBvcz0wKSBjb25zdCBub2V4Y2VwdDs8L2NvZGU+PC9wcmU+CiAgICA8ZGl2IGNsYXNzPSJh
dHRyaWJ1dGVzIj4KICAgICAgPHA+PGk+RWZmZWN0czwvaT46IERldGVybWluZXMgdGhlIGxvd2Vz
dCBwb3NpdGlvbiA8Y29kZT54cG9zPC9jb2RlPiwgaWYgcG9zc2libGUsIHN1Y2ggdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgb2J0YWluOjwvcD4KICAgICAgPHVsPjxsaT48Y29kZT5wb3Mg
Jmx0Oz0geHBvczwvY29kZT48L2xpPgogICAgICA8bGk+PGNvZGU+eHBvcyAmbHQ7IHNpemUoKTwv
Y29kZT48L2xpPgogICAgICA8bGk+PGNvZGU+dHJhaXRzOjplcShhdCh4cG9zKSwgc3RyLmF0KEkp
KTwvY29kZT4gZm9yIHNvbWUgZWxlbWVudCA8Y29kZT5JPC9jb2RlPiBvZiB0aGUgc3RyaW5nIHJl
ZmVyZW5jZWQgYnkgPGNvZGU+c3RyPC9jb2RlPi48L2xpPjwvdWw+CiAgICAgIDxwPjxpPlJldHVy
bnM8L2k+OiA8Y29kZT54cG9zPC9jb2RlPiBpZiB0aGUgZnVuY3Rpb24gY2FuIGRldGVybWluZSBz
dWNoIGEgdmFsdWUgZm9yIDxjb2RlPnhwb3M8L2NvZGU+LiBPdGhlcndpc2UsIHJldHVybnMgPGNv
ZGU+bnBvczwvY29kZT4uPC9wPgogICAgICA8cD48aT5SZW1hcmtzPC9pPjogVXNlcyA8Y29kZT50
cmFpdHM6OmVxKCk8L2NvZGU+LjwvcD4KICAgIDwvZGl2PgoKICAgIDxwcmU+PGNvZGU+Y29uc3Rl
eHByIHNpemVfdHlwZSBmaW5kX2xhc3Rfb2YoYmFzaWNfc3RyaW5nX3ZpZXcgc3RyLCBzaXplX3R5
cGUgcG9zPW5wb3MpIGNvbnN0IG5vZXhjZXB0OzwvY29kZT48L3ByZT4KICAgIDxkaXYgY2xhc3M9
ImF0dHJpYnV0ZXMiPgogICAgICA8cD48aT5FZmZlY3RzPC9pPjogRGV0ZXJtaW5lcyB0aGUgaGln
aGVzdCBwb3NpdGlvbiA8Y29kZT54cG9zPC9jb2RlPiwgaWYgcG9zc2libGUsIHN1Y2ggdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgb2J0YWluOjwvcD4KICAgICAgPHVsPjxsaT48Y29kZT54
cG9zICZsdDs9IHBvczwvY29kZT48L2xpPgogICAgICA8bGk+PGNvZGU+eHBvcyAmbHQ7IHNpemUo
KTwvY29kZT48L2xpPgogICAgICA8bGk+PGNvZGU+dHJhaXRzOjplcShhdCh4cG9zKSwgc3RyLmF0
KEkpKTwvY29kZT4gZm9yIHNvbWUgZWxlbWVudCA8Y29kZT5JPC9jb2RlPiBvZiB0aGUgc3RyaW5n
IHJlZmVyZW5jZWQgYnkgPGNvZGU+c3RyPC9jb2RlPi48L2xpPjwvdWw+CiAgICAgIDxwPjxpPlJl
dHVybnM8L2k+OiA8Y29kZT54cG9zPC9jb2RlPiBpZiB0aGUgZnVuY3Rpb24gY2FuIGRldGVybWlu
ZSBzdWNoIGEgdmFsdWUgZm9yIDxjb2RlPnhwb3M8L2NvZGU+LiBPdGhlcndpc2UsIHJldHVybnMg
PGNvZGU+bnBvczwvY29kZT4uPC9wPgogICAgICA8cD48aT5SZW1hcmtzPC9pPjogVXNlcyA8Y29k
ZT50cmFpdHM6OmVxKCk8L2NvZGU+LjwvcD4KICAgIDwvZGl2PgoKICAgIDxwcmU+PGNvZGU+Y29u
c3RleHByIHNpemVfdHlwZSBmaW5kX2ZpcnN0X25vdF9vZihiYXNpY19zdHJpbmdfdmlldyBzdHIs
IHNpemVfdHlwZSBwb3M9MCkgY29uc3Qgbm9leGNlcHQ7PC9jb2RlPjwvcHJlPgogICAgPGRpdiBj
bGFzcz0iYXR0cmlidXRlcyI+CiAgICAgIDxwPjxpPkVmZmVjdHM8L2k+OiBEZXRlcm1pbmVzIHRo
ZSBsb3dlc3QgcG9zaXRpb24gPGNvZGU+eHBvczwvY29kZT4sIGlmIHBvc3NpYmxlLCBzdWNoIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIG9idGFpbjo8L3A+CiAgICAgIDx1bD48bGk+PGNv
ZGU+cG9zICZsdDs9IHhwb3M8L2NvZGU+PC9saT4KICAgICAgPGxpPjxjb2RlPnhwb3MgJmx0OyBz
aXplKCk8L2NvZGU+PC9saT4KICAgICAgPGxpPjxjb2RlPnRyYWl0czo6ZXEoYXQoeHBvcyksIHN0
ci5hdChJKSk8L2NvZGU+IGZvciBubyBlbGVtZW50IDxjb2RlPkk8L2NvZGU+IG9mIHRoZSBzdHJp
bmcgcmVmZXJlbmNlZCBieSA8Y29kZT5zdHI8L2NvZGU+LjwvbGk+PC91bD4KICAgICAgPHA+PGk+
UmV0dXJuczwvaT46IDxjb2RlPnhwb3M8L2NvZGU+IGlmIHRoZSBmdW5jdGlvbiBjYW4gZGV0ZXJt
aW5lIHN1Y2ggYSB2YWx1ZSBmb3IgPGNvZGU+eHBvczwvY29kZT4uIE90aGVyd2lzZSwgcmV0dXJu
cyA8Y29kZT5ucG9zPC9jb2RlPi48L3A+CiAgICAgIDxwPjxpPlJlbWFya3M8L2k+OiBVc2VzIDxj
b2RlPnRyYWl0czo6ZXEoKTwvY29kZT4uPC9wPgogICAgPC9kaXY+CgogICAgPHByZT48Y29kZT5j
b25zdGV4cHIgc2l6ZV90eXBlIGZpbmRfbGFzdF9ub3Rfb2YoYmFzaWNfc3RyaW5nX3ZpZXcgc3Ry
LCBzaXplX3R5cGUgcG9zPW5wb3MpIGNvbnN0IG5vZXhjZXB0OzwvY29kZT48L3ByZT4KICAgIDxk
aXYgY2xhc3M9ImF0dHJpYnV0ZXMiPgogICAgICA8cD48aT5FZmZlY3RzPC9pPjogRGV0ZXJtaW5l
cyB0aGUgaGlnaGVzdCBwb3NpdGlvbiA8Y29kZT54cG9zPC9jb2RlPiwgaWYgcG9zc2libGUsIHN1
Y2ggdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgb2J0YWluOjwvcD4KICAgICAgPHVsPjxs
aT48Y29kZT54cG9zICZsdDs9IHBvczwvY29kZT48L2xpPgogICAgICA8bGk+PGNvZGU+eHBvcyAm
bHQ7IHNpemUoKTwvY29kZT48L2xpPgogICAgICA8bGk+PGNvZGU+dHJhaXRzOjplcShhdCh4cG9z
KSwgc3RyLmF0KEkpKTwvY29kZT4gZm9yIG5vIGVsZW1lbnQgPGNvZGU+STwvY29kZT4gb2YgdGhl
IHN0cmluZyByZWZlcmVuY2VkIGJ5IDxjb2RlPnN0cjwvY29kZT4uPC9saT48L3VsPgogICAgICA8
cD48aT5SZXR1cm5zPC9pPjogPGNvZGU+eHBvczwvY29kZT4gaWYgdGhlIGZ1bmN0aW9uIGNhbiBk
ZXRlcm1pbmUgc3VjaCBhIHZhbHVlIGZvciA8Y29kZT54cG9zPC9jb2RlPi4gT3RoZXJ3aXNlLCBy
ZXR1cm5zIDxjb2RlPm5wb3M8L2NvZGU+LjwvcD4KICAgICAgPHA+PGk+UmVtYXJrczwvaT46IFVz
ZXMgPGNvZGU+dHJhaXRzOjplcSgpPC9jb2RlPi48L3A+CiAgICA8L2Rpdj4KCgogICAgPGg0PkFk
ZCBhIHN1YmNsYXVzZSAieC43IGJhc2ljX3N0cmluZ192aWV3IG5vbi1tZW1iZXIgY29tcGFyaXNv
biBmdW5jdGlvbnMgW3N0cmluZy52aWV3LmNvbXBhcmlzb25dIjwvaDQ+CgogICAgPHA+SW1wbGVt
ZW50YXRpb25zIHNoYWxsIHByb3ZpZGUgc3VmZmljaWVudCBhZGRpdGlvbmFsIG92ZXJsb2FkcyBz
byB0aGF0IGFuCiAgICBvYmplY3QgPGNvZGU+PHZhcj50PC92YXI+PC9jb2RlPiB3aXRoIGFuIGlt
cGxpY2l0IGNvbnZlcnNpb24gdG8KICAgIDxjb2RlPmJhc2ljX3N0cmluZ192aWV3Jmx0O2NoYXJU
LCB0cmFpdHM+PC9jb2RlPiBjYW4gYmUgY29tcGFyZWQgYWNjb3JkaW5nIHRvCiAgICBUYWJsZSBb
dGFiOnN0cmluZy52aWV3LmNvbXBhcmlzb24ub3ZlcmxvYWRzXSwgd2hlcmUKICAgIDxjb2RlPjx2
YXI+c3A8L3Zhcj48L2NvZGU+IGlzIGFuIGluc3RhbmNlIG9mCiAgICA8Y29kZT5iYXNpY19zdHJp
bmdfdmlldyZsdDtjaGFyVCwgdHJhaXRzPjwvY29kZT4uPC9wPgoKICAgIDx0YWJsZT48Y2FwdGlv
bj5UYWJsZSBbdGFiOnN0cmluZy52aWV3LmNvbXBhcmlzb24ub3ZlcmxvYWRzXSDigJQ8d2JyLz4g
QWRkaXRpb25hbCBiYXNpY19zdHJpbmdfdmlldyBjb21wYXJpc29uIG92ZXJsb2FkczwvY2FwdGlv
bj4KICAgIDx0cj48dGg+RXhwcmVzc2lvbjwvdGg+PHRoPkVxdWl2YWxlbnQgdG88L3RoPjwvdHI+
CiAgICA8dHI+PHRkPjxjb2RlPnQgPT0gc3A8L2NvZGU+PC90ZD48dGQ+PGNvZGU+YmFzaWNfc3Ry
aW5nX3ZpZXcmbHQ7Y2hhclQsIHRyYWl0cz4odCkgPT0gc3A8L2NvZGU+PC90ZD48L3RyPgogICAg
PHRyPjx0ZD48Y29kZT5zcCA9PSB0PC9jb2RlPjwvdGQ+PHRkPjxjb2RlPnNwID09IGJhc2ljX3N0
cmluZ192aWV3Jmx0O2NoYXJULCB0cmFpdHM+KHQpPC9jb2RlPjwvdGQ+PC90cj4KICAgIDx0cj48
dGQ+PGNvZGU+dCAhPSBzcDwvY29kZT48L3RkPjx0ZD48Y29kZT5iYXNpY19zdHJpbmdfdmlldyZs
dDtjaGFyVCwgdHJhaXRzPih0KSAhPSBzcDwvY29kZT48L3RkPjwvdHI+CiAgICA8dHI+PHRkPjxj
b2RlPnNwICE9IHQ8L2NvZGU+PC90ZD48dGQ+PGNvZGU+c3AgIT0gYmFzaWNfc3RyaW5nX3ZpZXcm
bHQ7Y2hhclQsIHRyYWl0cz4odCk8L2NvZGU+PC90ZD48L3RyPgogICAgPHRyPjx0ZD48Y29kZT50
ICZsdDsgc3A8L2NvZGU+PC90ZD48dGQ+PGNvZGU+YmFzaWNfc3RyaW5nX3ZpZXcmbHQ7Y2hhclQs
IHRyYWl0cz4odCkgJmx0OyBzcDwvY29kZT48L3RkPjwvdHI+CiAgICA8dHI+PHRkPjxjb2RlPnNw
ICZsdDsgdDwvY29kZT48L3RkPjx0ZD48Y29kZT5zcCAmbHQ7IGJhc2ljX3N0cmluZ192aWV3Jmx0
O2NoYXJULCB0cmFpdHM+KHQpPC9jb2RlPjwvdGQ+PC90cj4KICAgIDx0cj48dGQ+PGNvZGU+dCA+
IHNwPC9jb2RlPjwvdGQ+PHRkPjxjb2RlPmJhc2ljX3N0cmluZ192aWV3Jmx0O2NoYXJULCB0cmFp
dHM+KHQpID4gc3A8L2NvZGU+PC90ZD48L3RyPgogICAgPHRyPjx0ZD48Y29kZT5zcCA+IHQ8L2Nv
ZGU+PC90ZD48dGQ+PGNvZGU+c3AgPiBiYXNpY19zdHJpbmdfdmlldyZsdDtjaGFyVCwgdHJhaXRz
Pih0KTwvY29kZT48L3RkPjwvdHI+CiAgICA8dHI+PHRkPjxjb2RlPnQgJmx0Oz0gc3A8L2NvZGU+
PC90ZD48dGQ+PGNvZGU+YmFzaWNfc3RyaW5nX3ZpZXcmbHQ7Y2hhclQsIHRyYWl0cz4odCkgJmx0
Oz0gc3A8L2NvZGU+PC90ZD48L3RyPgogICAgPHRyPjx0ZD48Y29kZT5zcCAmbHQ7PSB0PC9jb2Rl
PjwvdGQ+PHRkPjxjb2RlPnNwICZsdDs9IGJhc2ljX3N0cmluZ192aWV3Jmx0O2NoYXJULCB0cmFp
dHM+KHQpPC9jb2RlPjwvdGQ+PC90cj4KICAgIDx0cj48dGQ+PGNvZGU+dCA+PSBzcDwvY29kZT48
L3RkPjx0ZD48Y29kZT5iYXNpY19zdHJpbmdfdmlldyZsdDtjaGFyVCwgdHJhaXRzPih0KSA+PSBz
cDwvY29kZT48L3RkPjwvdHI+CiAgICA8dHI+PHRkPjxjb2RlPnNwID49IHQ8L2NvZGU+PC90ZD48
dGQ+PGNvZGU+c3AgPj0gYmFzaWNfc3RyaW5nX3ZpZXcmbHQ7Y2hhclQsIHRyYWl0cz4odCk8L2Nv
ZGU+PC90ZD48L3RyPgogICAgPC90YWJsZT4KCiAgICA8cD5bIEV4YW1wbGU6IEEgc2FtcGxlIGNv
bmZvcm1pbmcgaW1wbGVtZW50YXRpb24gZm9yIG9wZXJhdG9yPT0gd291bGQgYmU6PC9wPgo8cHJl
Pjxjb2RlPiAgdGVtcGxhdGUmbHQ7Y2xhc3MgVD4gc3RydWN0IF9faWRlbnRpdHkgeyB0eXBlZGVm
IFQgdHlwZTsgfTsKICB0ZW1wbGF0ZSZsdDtjbGFzcyBjaGFyVCwgY2xhc3MgdHJhaXRzPgogIGNv
bnN0ZXhwciBib29sIG9wZXJhdG9yPT0oCiAgICAgIGJhc2ljX3N0cmluZ192aWV3Jmx0O2NoYXJU
LCB0cmFpdHM+IGxocywKICAgICAgYmFzaWNfc3RyaW5nX3ZpZXcmbHQ7Y2hhclQsIHRyYWl0cz4g
cmhzKSBub2V4Y2VwdCB7CiAgICByZXR1cm4gbGhzLmNvbXBhcmUocmhzKSA9PSAwOwogIH0KICB0
ZW1wbGF0ZSZsdDtjbGFzcyBjaGFyVCwgY2xhc3MgdHJhaXRzPgogIGNvbnN0ZXhwciBib29sIG9w
ZXJhdG9yPT0oCiAgICAgIGJhc2ljX3N0cmluZ192aWV3Jmx0O2NoYXJULCB0cmFpdHM+IGxocywK
ICAgICAgdHlwZW5hbWUgX19pZGVudGl0eSZsdDtiYXNpY19zdHJpbmdfdmlldyZsdDtjaGFyVCwg
dHJhaXRzPj46OnR5cGUgcmhzKSBub2V4Y2VwdCB7CiAgICByZXR1cm4gbGhzLmNvbXBhcmUocmhz
KSA9PSAwOwogIH0KICB0ZW1wbGF0ZSZsdDtjbGFzcyBjaGFyVCwgY2xhc3MgdHJhaXRzPgogIGNv
bnN0ZXhwciBib29sIG9wZXJhdG9yPT0oCiAgICAgIHR5cGVuYW1lIF9faWRlbnRpdHkmbHQ7YmFz
aWNfc3RyaW5nX3ZpZXcmbHQ7Y2hhclQsIHRyYWl0cz4+Ojp0eXBlIGxocywKICAgICAgYmFzaWNf
c3RyaW5nX3ZpZXcmbHQ7Y2hhclQsIHRyYWl0cz4gcmhzKSBub2V4Y2VwdCB7CiAgICByZXR1cm4g
bGhzLmNvbXBhcmUocmhzKSA9PSAwOwp9PC9jb2RlPjwvcHJlPgogICAgPHA+4oCUIGVuZCBleGFt
cGxlIF08L3A+Cgo8cHJlPjxjb2RlPnRlbXBsYXRlJmx0O2NsYXNzIGNoYXJULCBjbGFzcyB0cmFp
dHM+CiAgY29uc3RleHByIGJvb2wgb3BlcmF0b3I9PShiYXNpY19zdHJpbmdfdmlldyZsdDtjaGFy
VCx0cmFpdHM+IGxocywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2ljX3N0cmluZ192
aWV3Jmx0O2NoYXJULHRyYWl0cz4gcmhzKSBub2V4Y2VwdDs8L2NvZGU+PC9wcmU+CiAgICA8cCBj
bGFzcz0iYXR0cmlidXRlIj48aT5SZXR1cm5zPC9pPjogPGNvZGU+bGhzLmNvbXBhcmUocmhzKSA9
PSAwPC9jb2RlPi48L3A+Cgo8cHJlPjxjb2RlPnRlbXBsYXRlJmx0O2NsYXNzIGNoYXJULCBjbGFz
cyB0cmFpdHM+CiAgY29uc3RleHByIGJvb2wgb3BlcmF0b3IhPShiYXNpY19zdHJpbmdfdmlldyZs
dDtjaGFyVCx0cmFpdHM+IGxocywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2ljX3N0
cmluZ192aWV3Jmx0O2NoYXJULHRyYWl0cz4gcmhzKSBub2V4Y2VwdDs8L2NvZGU+PC9wcmU+CiAg
ICA8cCBjbGFzcz0iYXR0cmlidXRlIj48aT5SZXR1cm5zPC9pPjogPGNvZGU+IShsaHMgPT0gcmhz
KTwvY29kZT4uPC9wPgoKPHByZT48Y29kZT50ZW1wbGF0ZSZsdDtjbGFzcyBjaGFyVCwgY2xhc3Mg
dHJhaXRzPgogIGNvbnN0ZXhwciBib29sIG9wZXJhdG9yJmx0OyAoYmFzaWNfc3RyaW5nX3ZpZXcm
bHQ7Y2hhclQsdHJhaXRzPiBsaHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNpY19z
dHJpbmdfdmlldyZsdDtjaGFyVCx0cmFpdHM+IHJocykgbm9leGNlcHQ7PC9jb2RlPjwvcHJlPgog
ICAgPHAgY2xhc3M9ImF0dHJpYnV0ZSI+PGk+UmV0dXJuczwvaT46IDxjb2RlPmxocy5jb21wYXJl
KHJocykgJmx0OyAwPC9jb2RlPi48L3A+Cgo8cHJlPjxjb2RlPnRlbXBsYXRlJmx0O2NsYXNzIGNo
YXJULCBjbGFzcyB0cmFpdHM+CiAgY29uc3RleHByIGJvb2wgb3BlcmF0b3I+IChiYXNpY19zdHJp
bmdfdmlldyZsdDtjaGFyVCx0cmFpdHM+IGxocywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJhc2ljX3N0cmluZ192aWV3Jmx0O2NoYXJULHRyYWl0cz4gcmhzKSBub2V4Y2VwdDs8L2NvZGU+
PC9wcmU+CiAgICA8cCBjbGFzcz0iYXR0cmlidXRlIj48aT5SZXR1cm5zPC9pPjogPGNvZGU+bGhz
LmNvbXBhcmUocmhzKSA+IDA8L2NvZGU+LjwvcD4KCjxwcmU+PGNvZGU+dGVtcGxhdGUmbHQ7Y2xh
c3MgY2hhclQsIGNsYXNzIHRyYWl0cz4KICBjb25zdGV4cHIgYm9vbCBvcGVyYXRvciZsdDs9KGJh
c2ljX3N0cmluZ192aWV3Jmx0O2NoYXJULHRyYWl0cz4gbGhzLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYmFzaWNfc3RyaW5nX3ZpZXcmbHQ7Y2hhclQsdHJhaXRzPiByaHMpIG5vZXhjZXB0
OzwvY29kZT48L3ByZT4KICAgIDxwIGNsYXNzPSJhdHRyaWJ1dGUiPjxpPlJldHVybnM8L2k+OiA8
Y29kZT5saHMuY29tcGFyZShyaHMpICZsdDs9IDA8L2NvZGU+LjwvcD4KCjxwcmU+PGNvZGU+dGVt
cGxhdGUmbHQ7Y2xhc3MgY2hhclQsIGNsYXNzIHRyYWl0cz4KICBjb25zdGV4cHIgYm9vbCBvcGVy
YXRvcj49KGJhc2ljX3N0cmluZ192aWV3Jmx0O2NoYXJULHRyYWl0cz4gbGhzLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYmFzaWNfc3RyaW5nX3ZpZXcmbHQ7Y2hhclQsdHJhaXRzPiByaHMp
IG5vZXhjZXB0OzwvY29kZT48L3ByZT4KICAgIDxwIGNsYXNzPSJhdHRyaWJ1dGUiPjxpPlJldHVy
bnM8L2k+OiA8Y29kZT5saHMuY29tcGFyZShyaHMpID49IDA8L2NvZGU+LjwvcD4KCiAgICA8aDQg
aWQ9InN0cmluZy52aWV3Lm5vbm1lbSI+QWRkIGEgc3ViY2xhdXNlICJ4LjggT3RoZXIgYmFzaWNf
c3RyaW5nX3ZpZXcgbm9uLW1lbWJlciBmdW5jdGlvbnMgW3N0cmluZy52aWV3Lm5vbm1lbV0iPC9o
ND4KCiAgICA8cHJlPjxjb2RlPnRlbXBsYXRlJmx0O2NsYXNzIGNoYXJULCBjbGFzcyB0cmFpdHMg
PSBjaGFyX3RyYWl0cyZsdDtjaGFyVD4sCiAgICAgICAgIGNsYXNzIEFsbG9jYXRvciA9IGFsbG9j
YXRvciZsdDtjaGFyVD4gPgogIGJhc2ljX3N0cmluZyZsdDtjaGFyVCwgdHJhaXRzLCBBbGxvY2F0
b3I+IHRvX3N0cmluZygKICAgIGJhc2ljX3N0cmluZ192aWV3Jmx0O2NoYXJULCB0cmFpdHM+IHN0
ciwKICAgIGNvbnN0IEFsbG9jYXRvciYgYSA9IEFsbG9jYXRvcigpKTs8L2NvZGU+PC9wcmU+CiAg
ICA8ZGl2IGNsYXNzPSJhdHRyaWJ1dGVzIj4KICAgICAgPHA+PGk+Q29tcGxleGl0eTwvaT46IE8o
PGNvZGU+c3RyLnNpemUoKTwvY29kZT4pPC9wPgogICAgICA8cD48aT5SZXR1cm5zPC9pPjogPGNv
ZGU+YmFzaWNfc3RyaW5nJmx0O2NoYXJULCB0cmFpdHMsIEFsbG9jYXRvcj4oc3RyLmJlZ2luKCks
IHN0ci5lbmQoKSwgYSk8L2NvZGU+LjwvcD4KICAgIDwvZGl2PgoKICAgIDxoND5BZGQgYSBzdWJj
bGF1c2UgInguOSBJbnNlcnRlcnMgYW5kIGV4dHJhY3RvcnMgW3N0cmluZy52aWV3LmlvXTwvaDQ+
CgogICAgPHByZT48Y29kZT50ZW1wbGF0ZSZsdDtjbGFzcyBjaGFyVCwgY2xhc3MgdHJhaXRzPgog
IGJhc2ljX29zdHJlYW0mbHQ7Y2hhclQsIHRyYWl0cz4mCiAgICBvcGVyYXRvciZsdDsmbHQ7KGJh
c2ljX29zdHJlYW0mbHQ7Y2hhclQsIHRyYWl0cz4mIG9zLAogICAgICAgICAgICAgICBiYXNpY19z
dHJpbmdfdmlldyZsdDtjaGFyVCx0cmFpdHM+IHN0cik7PC9jb2RlPjwvcHJlPgogICAgPGRpdiBj
bGFzcz0iYXR0cmlidXRlcyI+CiAgICAgIDxwPjxpPkVmZmVjdHM8L2k+OiBCZWhhdmVzIGFzIGEg
Zm9ybWF0dGVkIG91dHB1dCBmdW5jdGlvbgogICAgICAoQysrMTFbb3N0cmVhbS5mb3JtYXR0ZWQu
cmVxbXRzXSkgb2YgPGNvZGU+b3M8L2NvZGU+LiBGb3JtcyBhIGNoYXJhY3RlcgogICAgICBzZXF1
ZW5jZSA8Y29kZT5zZXE8L2NvZGU+LCBpbml0aWFsbHkgY29uc2lzdGluZyBvZiB0aGUgZWxlbWVu
dHMgZGVmaW5lZCBieQogICAgICB0aGUgcmFuZ2UgPGNvZGU+W3N0ci5iZWdpbigpLCBzdHIuZW5k
KCkpPC9jb2RlPi4gRGV0ZXJtaW5lcyBwYWRkaW5nIGZvcgogICAgICA8Y29kZT5zZXE8L2NvZGU+
IGFzIGRlc2NyaWJlZCBpbiBDKysxMVtvc3RyZWFtLmZvcm1hdHRlZC5yZXFtdHNdLiBUaGVuIGlu
c2VydHMKICAgICAgPGNvZGU+c2VxPC9jb2RlPiBhcyBpZiBieSBjYWxsaW5nIDxjb2RlPm9zLnJk
YnVmKCktPnNwdXRuKHNlcSwgbik8L2NvZGU+LAogICAgICB3aGVyZSA8Y29kZT5uPC9jb2RlPiBp
cyB0aGUgbGFyZ2VyIG9mIDxjb2RlPm9zLndpZHRoKCk8L2NvZGU+IGFuZAogICAgICA8Y29kZT5z
dHIuc2l6ZSgpPC9jb2RlPjsgdGhlbiBjYWxscyA8Y29kZT5vcy53aWR0aCgwKTwvY29kZT4uPC9w
PgogICAgICA8cD48aT5SZXR1cm5zPC9pPjogb3M8L3A+CiAgICA8L2Rpdj4KCgogICAgPGg0IGlk
PSJiYXNpYy5zdHJpbmcuaGFzaCI+QWRkIGEgc3ViY2xhdXNlICJ4LjEwIEhhc2ggc3VwcG9ydCBb
c3RyaW5nLnZpZXcuaGFzaF0iPC9oND4KCiAgICA8cHJlPjxjb2RlPnRlbXBsYXRlICZsdDs+IHN0
cnVjdCBoYXNoJmx0O2V4cGVyaW1lbnRhbDo6c3RyaW5nX3ZpZXc+Owp0ZW1wbGF0ZSAmbHQ7PiBz
dHJ1Y3QgaGFzaCZsdDtleHBlcmltZW50YWw6OnUxNnN0cmluZ192aWV3PjsKdGVtcGxhdGUgJmx0
Oz4gc3RydWN0IGhhc2gmbHQ7ZXhwZXJpbWVudGFsOjp1MzJzdHJpbmdfdmlldz47CnRlbXBsYXRl
ICZsdDs+IHN0cnVjdCBoYXNoJmx0O2V4cGVyaW1lbnRhbDo6d3N0cmluZ192aWV3Pjs8L2NvZGU+
PC9wcmU+CiAgICA8cCBjbGFzcz0iYXR0cmlidXRlIj48aT5SZXF1aXJlczwvaT46IHRoZSB0ZW1w
bGF0ZSBzcGVjaWFsaXphdGlvbnMgc2hhbGwKICAgIG1lZXQgdGhlIHJlcXVpcmVtZW50cyBvZiBj
bGFzcyB0ZW1wbGF0ZSBoYXNoIChDKysxMVt1bm9yZC5oYXNoXSkuPC9wPgoKICA8L3NlY3Rpb24+
CgogIDxzZWN0aW9uIGNsYXNzPSJ3b3JkaW5nIj4KICAgIDxoMiBpZD0iYWx0ZXJuYXRlLW51bGxw
dHItd29yZGluZyI+QWx0ZXJuYXRlIHdvcmRpbmcgaWYgPGNvZGU+ZGF0YSgpPC9jb2RlPiBtYXkg
YmUgPGNvZGU+bnVsbHB0cjwvY29kZT48L2gyPgogICAgPHA+VGhpcyBzZWN0aW9uIGxpc3RzIGNo
YW5nZXMgdG8gdGhlIDxhIGhyZWY9IiN3b3JkaW5nIj5wcm9wb3NlZCB3b3JkaW5nPC9hPgogICAg
aWYgdGhlIExXRyBwcmVmZXJzIHRvIGFsbG93ICJudWxsIiA8Y29kZT5zdHJpbmdfdmlldzwvY29k
ZT5zLjwvcD4KCiAgICA8aDM+SW4gc3ViY2xhdXNlICJ4LjEgYmFzaWNfc3RyaW5nX3ZpZXcgY29u
c3RydWN0b3JzIGFuZCBhc3NpZ25tZW50IG9wZXJhdG9ycyAgW3N0cmluZy52aWV3LmNvbnNdIjwv
aDM+CgogICAgPHByZT48Y29kZT5jb25zdGV4cHIgYmFzaWNfc3RyaW5nX3ZpZXcoKSBub2V4Y2Vw
dDs8L2NvZGU+PC9wcmU+CiAgICA8ZGl2IGNsYXNzPSJhdHRyaWJ1dGVzIj4KICAgICAgPHA+PGk+
RWZmZWN0czwvaT46IENvbnN0cnVjdHMgYW4gZW1wdHkgPGNvZGU+YmFzaWNfc3RyaW5nX3ZpZXc8
L2NvZGU+LjwvcD4KICAgICAgPHA+PGk+UG9zdGNvbmRpdGlvbjwvaT46IDxjb2RlPnNpemVfID09
IDA8L2NvZGU+LCBhbmQgPGlucz48Y29kZT5kYXRhXyA9PSBudWxscHRyPC9jb2RlPi48L2lucz48
ZGVsPjxjb2RlPmRhdGFfPC9jb2RlPiBoYXMgYW4gdW5zcGVjaWZpZWQsIG5vbi1udWxsIHZhbHVl
IHN1Y2ggdGhhdCBbPGNvZGU+ZGF0YV88L2NvZGU+LDxjb2RlPmRhdGFfPC9jb2RlPikgaXMgYSB2
YWxpZCByYW5nZS48L2RlbD48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImVkbm90ZSI+PHA+QWx0ZXJu
YXRlbHksIHdlIGNvdWxkIGxlYXZlIDxjb2RlPmRhdGFfPC9jb2RlPgogICAgICB1bnNwZWNpZmll
ZC1idXQtdmFsaWQsIGJ1dCBJIHdvcnJ5IGFib3V0IHBvcnRhYmlsaXR5IGluIHRoYXQKICAgICAg
Y2FzZS48L3A+PC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8cHJlPjxjb2RlPmNvbnN0ZXhwciBiYXNp
Y19zdHJpbmdfdmlldyhjb25zdCBjaGFyVCogc3RyLCBzaXplX3R5cGUgbGVuKTs8L2NvZGU+PC9w
cmU+CiAgICA8ZGl2IGNsYXNzPSJhdHRyaWJ1dGVzIj4KICAgICAgPHA+PGk+UmVxdWlyZXM8L2k+
OiA8ZGVsPjxjb2RlPnN0cjwvY29kZT4gaXMgbm90IGEgbnVsbCBwb2ludGVyIGFuZCA8L2RlbD5b
PGNvZGU+c3RyPC9jb2RlPiw8Y29kZT5zdHIgKyBsZW48L2NvZGU+KSBpcyBhIHZhbGlkIHJhbmdl
LjwvcD4KICAgICAgPHA+PGk+RWZmZWN0czwvaT46IENvbnN0cnVjdHMgYSA8Y29kZT5iYXNpY19z
dHJpbmdfdmlldzwvY29kZT4sIHdpdGggdGhlIHBvc3Rjb25kaXRpb25zIGluIFRhYmxlIFt0YWI6
c3RyaW5nLnZpZXcuY3RyLjNdPC9wPgogICAgICA8dGFibGU+PGNhcHRpb24+VGFibGUgW3RhYjpz
dHJpbmcudmlldy5jdHIuM10g4oCUIGJhc2ljX3N0cmluZ192aWV3KGNvbnN0IGNoYXJUKiwgc2l6
ZV90eXBlKSBlZmZlY3RzPC9jYXB0aW9uPgogICAgICA8dHI+PHRoPkVsZW1lbnQ8L3RoPjx0aD5W
YWx1ZTwvdGg+PC90cj4KICAgICAgPHRyPjx0ZD48Y29kZT5kYXRhXzwvY29kZT48L3RkPjx0ZD48
Y29kZT5zdHI8L2NvZGU+PC90ZD48L3RyPgogICAgICA8dHI+PHRkPjxjb2RlPnNpemVfPC9jb2Rl
PjwvdGQ+PHRkPjxjb2RlPmxlbjwvY29kZT48L3RkPjwvdHI+CiAgICAgIDwvdGFibGU+CiAgICA8
L2Rpdj4KCiAgICA8aDM+SW4gc3ViY2xhdXNlICJ4LjQgYmFzaWNfc3RyaW5nX3ZpZXcgZWxlbWVu
dCBhY2Nlc3MgW3N0cmluZy52aWV3LmFjY2Vzc10iPC9oMz4KCiAgICA8cHJlPjxjb2RlPmNvbnN0
ZXhwciBjb25zdCBjaGFyVCogZGF0YSgpIGNvbnN0IG5vZXhjZXB0OzwvY29kZT48L3ByZT4KICAg
IDxkaXYgY2xhc3M9ImF0dHJpYnV0ZXMiPgogICAgICA8cD48aT5SZXR1cm5zPC9pPjogPGNvZGU+
ZGF0YV88L2NvZGU+PC9wPgogICAgICA8cD5bIE5vdGU6IFVubGlrZSA8Y29kZT5zdGQ6OnN0cmlu
Zzo6ZGF0YSgpPC9jb2RlPiBhbmQgc3RyaW5nIGxpdGVyYWxzLCA8Y29kZT5kYXRhKCk8L2NvZGU+
IG1heQogICAgICByZXR1cm4gYSBwb2ludGVyIHRvIGEgYnVmZmVyIHRoYXQgaXMgbm90IG51bGwt
dGVybWluYXRlZC4gVGhlcmVmb3JlIGl0IGlzCiAgICAgIHR5cGljYWxseSBhIG1pc3Rha2UgdG8g
cGFzcyA8Y29kZT5kYXRhKCk8L2NvZGU+IHRvIGEgcm91dGluZSB0aGF0IHRha2VzIGp1c3QgYQog
ICAgICA8Y29kZT5jb25zdCBjaGFyVCo8L2NvZGU+IGFuZCBleHBlY3RzIGEgbnVsbC10ZXJtaW5h
dGVkIHN0cmluZy4g4oCUIGVuZCBub3RlIF08L3A+CiAgICAgIDxkaXYgY2xhc3M9ImVkbm90ZSI+
PHA+V2UgY291bGQgc3BlY2lmeSB0aGF0IGlmIDxjb2RlPnNpemVfPT0wPC9jb2RlPiB0aGVuCiAg
ICAgIDxjb2RlPmRhdGEoKTwvY29kZT4gc2ltcGx5IHJldHVybnMgYSB2YWxpZCBwb2ludGVyIHZh
bHVlLCBhbmQgbm90CiAgICAgIG5lY2Vzc2FyaWx5IDxjb2RlPmRhdGFfPC9jb2RlPi4gIFRoaXMg
d291bGQgbGV0IGRlYnVnZ2luZyBpbXBsZW1lbnRhdGlvbnMKICAgICAgcHJldmVudCBkZXZlbG9w
ZXJzIGZyb20gZGVwZW5kaW5nIG9uIGEgcGFzc2VkLXRocm91Z2ggbnVsbCB2YWx1ZSwgYnV0CiAg
ICAgIHdvdWxkIHByZXZlbnQgPGEKICAgICAgaHJlZj0iaHR0cDovL3d3dy5vcGVuLXN0ZC5vcmcv
anRjMS9zYzIyL3dnMjEvZG9jcy9wYXBlcnMvMjAxMy9uMzU5My5odG1sI2RlbGltaXRlcnMiPnRo
ZQogICAgICA8Y29kZT5zdGQ6OnNwbGl0KCk8L2NvZGU+IHByb3Bvc2FsJ3MgRGVsaW1pdGVyczwv
YT4gZnJvbSB1c2luZwogICAgICA8Y29kZT5zdHJpbmdfdmlldzwvY29kZT4gdG8gcmVwcmVzZW50
IGEgMC1sZW5ndGggcG9zaXRpb24gd2l0aGluIGEgc3RyaW5nCiAgICAgIGF0IHdoaWNoIHRvIHNw
bGl0LjwvcD48L2Rpdj4KICAgIDwvZGl2PgogIDwvc2VjdGlvbj4KCiAgPHNlY3Rpb24+CiAgICA8
aDIgaWQ9ImFja25vd2xlZGdlbWVudHMiPkFja25vd2xlZGdlbWVudHM8L2gyPgoKICAgIDxwPkkn
ZCBsaWtlIHRvIHRoYW5rIE1hcnNoYWxsIENsb3csIE9sYWYgdmFuIGRlciBTcGVrLCB0aGUgQm9v
c3QgYW5kCiAgICBzdGQtcHJvcG9zYWxzIG1haWxpbmcgbGlzdHMsIENoYW5kbGVyIENhcnJ1dGgs
IEJlbWFuIERhd2VzLCBBbGlzZGFpcgogICAgTWVyZWRpdGgsIGFuZCBlc3BlY2lhbGx5IERhbmll
bCBLcsO8Z2xlciBmb3IgaGVscCwgYWR2aWNlLCBhbmQgd29yZGluZyBpbgogICAgdGhpcyBwYXBl
ci48L3A+CiAgPC9zZWN0aW9uPgoKICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCEt
LQovKioKICogVGhpcyBjb2RlIGlzIGNvbXBpbGVkIGZyb20gaDVvLCB3aXRoIHRoZSBwYXRjaGVz
IGluIGlzc3VlcyAxOCwgMTksIGFuZCAyCiAqIChodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2g1
by9pc3N1ZXMvbGlzdCkuCiAqCiAqIFRoaXMgY29kZSBjb250YWlucyBhbiBpbXBsZW1lbnRhdGlv
biBvZiBIVE1MNSBvdXRsaW5pbmcgYWxnb3JpdGhtLCBhcyBkZXNjcmliZWQgYnkgV0hBVFdHIGF0
IFsxXQogKgogKiBUaGUgY29weXJpZ2h0IG5vdGljZSBhdCBbMl0gc2F5czoKICogICAgICAgICAg
ICAgIChjKSBDb3B5cmlnaHQgMjAwNC0yMDExIEFwcGxlIENvbXB1dGVyLCBJbmMuLCBNb3ppbGxh
IEZvdW5kYXRpb24sIGFuZCBPcGVyYSBTb2Z0d2FyZSBBU0EuCiAqICAgICAgICAgICAgICBZb3Ug
YXJlIGdyYW50ZWQgYSBsaWNlbnNlIHRvIHVzZSwgcmVwcm9kdWNlIGFuZCBjcmVhdGUgZGVyaXZh
dGl2ZSB3b3JrcyBvZiB0aGlzIGRvY3VtZW50LgogKgogKiBbMV0gaHR0cDovL3d3dy53aGF0d2cu
b3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2Uvc2VjdGlvbnMuaHRtbCNv
dXRsaW5lcwogKiBbMl0gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJl
bnQtd29yay9tdWx0aXBhZ2UvaW5kZXguaHRtbAogKi8KKGZ1bmN0aW9uKCl7dmFyIGo9ZnVuY3Rp
b24oYil7dGhpcy5zZWN0aW9ucz1bXTt0aGlzLnN0YXJ0aW5nTm9kZT1ifTtqLnByb3RvdHlwZT17
aGVhZGluZzohMSxhcHBlbmQ6ZnVuY3Rpb24oYil7Yi5jb250YWluZXI9dGhpczt0aGlzLnNlY3Rp
b25zLnB1c2goYil9LGFzSFRNTDpmdW5jdGlvbihiKXsib2JqZWN0IiE9dHlwZW9mIGImJihiPXtj
cmVhdGVMaW5rczpifSk7dmFyIGE7YT10aGlzLmhlYWRpbmc7ZyhhKT8oIkhHUk9VUCI9PWEudGFn
TmFtZS50b1VwcGVyQ2FzZSgpJiYoYT1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoIistayhhKSlb
MF0pLGE9YS50ZXh0Q29udGVudHx8YS5pbm5lclRleHR8fCI8aT5ObyB0ZXh0IGNvbnRlbnQgaW5z
aWRlICIrYS5ub2RlTmFtZSsiPC9pPiIpOmE9IiIrYTtpZihiLmNyZWF0ZUxpbmtzKXt2YXIgZTth
OntlPXRoaXMuc3RhcnRpbmdOb2RlO2Zvcih2YXIgZCxjPWU7Oyl7aWYoZD1jLmdldEF0dHJpYnV0
ZSgiaWQiKSl7ZT1kO2JyZWFrIGF9Zm9yKGM9CmMuZmlyc3RDaGlsZDtjJiYzPT1jLm5vZGVUeXBl
JiYhL1xTLy50ZXN0KGMuZGF0YSk7KWM9Yy5uZXh0U2libGluZztpZighZyhjKSlicmVha31kbyBk
PSJoNW8tIisgKytxO3doaWxlKHIuZ2V0RWxlbWVudEJ5SWQoZCkpO2Uuc2V0QXR0cmlidXRlKCJp
ZCIsZCk7ZT1kfWE9JzxhIGhyZWY9IiMnK2UrJyI+JythKyI8L2E+In1yZXR1cm4gYStuKHRoaXMu
c2VjdGlvbnMsYil9fTt2YXIgbj1mdW5jdGlvbihiLGEpe2lmKGEuc2tpcFRvcEhlYWRlcilyZXR1
cm4gYS5za2lwVG9wSGVhZGVyPSExLG4oYlswXS5zZWN0aW9ucyxhKTtmb3IodmFyIGM9IiIsZD0w
O2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgZj1iW2RdO2Euc2tpcFVudGl0bGVkJiYic3RyaW5nIj09dHlw
ZW9mIGYuaGVhZGluZ3x8KGMrPSI8bGk+IitmLmFzSFRNTChhKSsiPC9saT4iKX1yZXR1cm4iIj09
Yz9jOiI8b2w+IitjKyI8L29sPiJ9LHM9ZnVuY3Rpb24oYil7Yj1iLmhlYWRpbmc7cmV0dXJuIGco
Yik/ayhiKToxfSxjLGQsZiwKcSxyLHQ9ZnVuY3Rpb24oYil7aWYoIWcoZltmLmxlbmd0aC0xXSkp
aWYobChiKXx8bShiKSludWxsIT1jJiZmLnB1c2goYyksYz1iLGQ9bmV3IGooYiksYy5vdXRsaW5l
PXtzZWN0aW9uczpbZF0sc3RhcnRpbmdOb2RlOmIsYXNIVE1MOmZ1bmN0aW9uKGEpe3JldHVybiBu
KHRoaXMuc2VjdGlvbnMsYSl9fTtlbHNlIGlmKG51bGwhPWMmJmcoYikpe2lmKGQuaGVhZGluZylp
ZihrKGIpPj1zKGMub3V0bGluZS5zZWN0aW9uc1tjLm91dGxpbmUuc2VjdGlvbnMubGVuZ3RoLTFd
KSl7dmFyIGE9bmV3IGooYik7Yy5vdXRsaW5lLnNlY3Rpb25zLnB1c2goYSk7ZD1hO2QuaGVhZGlu
Zz1ifWVsc2V7dmFyIGE9ITEsZT1kO2RvIGsoYik8cyhlKSYmKGE9bmV3IGooYiksZS5hcHBlbmQo
YSksZD1hLGQuaGVhZGluZz1iLGE9ITApLGU9ZS5jb250YWluZXI7d2hpbGUoIWEpfWVsc2UgZC5o
ZWFkaW5nPWI7Zi5wdXNoKGIpfX0scD1mdW5jdGlvbihiKXtyZXR1cm4gZnVuY3Rpb24oYSl7cmV0
dXJuIGEmJgphLnRhZ05hbWUmJlJlZ0V4cChiLCJpIikudGVzdChhLnRhZ05hbWUudG9VcHBlckNh
c2UoKSl9fSxtPXAoIl5CTE9DS1FVT1RFfEJPRFl8REVUQUlMU3xGSUVMRFNFVHxGSUdVUkV8VEQk
IiksbD1wKCJeQVJUSUNMRXxBU0lERXxOQVZ8U0VDVElPTiQiKSxnPXAoIl5IWzEtNl18SEdST1VQ
JCIpLGs9ZnVuY3Rpb24oYil7dmFyIGE9Yi50YWdOYW1lLnRvVXBwZXJDYXNlKCk7aWYoIkhHUk9V
UCI9PWEpZm9yKGE9MTs2Pj1hO2ErKyl7aWYoMDxiLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJIIith
KS5sZW5ndGgpcmV0dXJuLWF9ZWxzZSByZXR1cm4tcGFyc2VJbnQoYS5zdWJzdHIoMSkpfTtIVE1M
NU91dGxpbmU9ZnVuY3Rpb24oYil7cT0wO3I9Yi5vd25lckRvY3VtZW50fHx3aW5kb3cuZG9jdW1l
bnQ7ZD1jPW51bGw7Zj1bXTt2YXIgYT1iO2E6Zm9yKDthOyl7dChhKTtpZihhLmZpcnN0Q2hpbGQp
e2E9YS5maXJzdENoaWxkO2NvbnRpbnVlIGF9Zm9yKDthOyl7dmFyIGU9YSxoPWZbZi5sZW5ndGgt
CjFdO2lmKGcoaCkpaD09ZSYmZi5wb3AoKTtlbHNle2lmKChsKGUpfHxtKGUpKSYmIWQuaGVhZGlu
ZylkLmhlYWRpbmc9IjxpPlVudGl0bGVkICIrZS50YWdOYW1lLnRvVXBwZXJDYXNlKCkrIjwvaT4i
O2lmKGwoZSkmJjA8Zi5sZW5ndGgpe2M9Zi5wb3AoKTtkPWMub3V0bGluZS5zZWN0aW9uc1tjLm91
dGxpbmUuc2VjdGlvbnMubGVuZ3RoLTFdO2ZvcihoPTA7aDxlLm91dGxpbmUuc2VjdGlvbnMubGVu
Z3RoO2grKylkLmFwcGVuZChlLm91dGxpbmUuc2VjdGlvbnNbaF0pfWVsc2UgaWYobShlKSYmMDxm
Lmxlbmd0aCl7Yz1mLnBvcCgpO2ZvcihkPWMub3V0bGluZS5zZWN0aW9uc1tjLm91dGxpbmUuc2Vj
dGlvbnMubGVuZ3RoLTFdOzA8ZC5zZWN0aW9ucy5sZW5ndGg7KWQ9ZC5zZWN0aW9uc1tkLnNlY3Rp
b25zLmxlbmd0aC0xXX1lbHNlIGlmKGwoZSl8fG0oZSkpZD1jLm91dGxpbmUuc2VjdGlvbnNbMF19
aWYoYS5uZXh0U2libGluZyl7YT1hLm5leHRTaWJsaW5nO2NvbnRpbnVlIGF9YT0KYT09Yj9udWxs
OmEucGFyZW50Tm9kZX19cmV0dXJuIG51bGwhPWM/Yy5vdXRsaW5lOm51bGx9fSkoKTsKCgogICAg
dmFyIG91dGxpbmUgPSBIVE1MNU91dGxpbmUoZG9jdW1lbnQuYm9keSk7CiAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndG9jJykuaW5uZXJIVE1MID0KICAgICAgICBvdXRsaW5lLmFzSFRNTCh7
Y3JlYXRlTGlua3M6IHRydWUsIHNraXBUb3BIZWFkZXI6IHRydWUsIHNraXBVbnRpdGxlZDogdHJ1
ZX0pOwogIC8vLS0+PC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPgo=
--001a113a54d6b4530004f061f22b--

.
