[Engine-devel] about vm in vmpool
by wlbleaboy@126
ÕâÊÇÒ»·â MIME žñÊœµÄ¶à²¿·ÖÓÊŒþ¡£
------=_NextPart_000_004D_01CE7BE4.2369CFA0
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: 7bit
Hi, all:
I have using ovirt-sdk 3 monthes, I can use ovirt-sdk get vm's
infomations like
vm's name, vm's id, vm'ticket etc.
but recently, I have a question about vm in vmpool, how could I get
vm's information
that the vm in vmpool. Especially, when a vm is at stop statuss.
For example, when use UserPortal in the web-browser, no matter the
vm is in the vmpool,
it can be showed in the web-browser, but, I can't get vm' s information
which in the vmpool via
the ovirt-sdk.
Leaboy
thanks
------=_NextPart_000_004D_01CE7BE4.2369CFA0
Content-Type: text/html;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns=3D"http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii">
<meta name=3DGenerator content=3D"Microsoft Word 12 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
{font-family:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
{mso-style-priority:99;
mso-style-link:"\6279\6CE8\6846\6587\672C Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:9.0pt;
font-family:"Calibri","sans-serif";}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri","sans-serif";
color:windowtext;}
span.Char
{mso-style-name:"\6279\6CE8\6846\6587\672C Char";
mso-style-priority:99;
mso-style-link:\6279\6CE8\6846\6587\672C;}
.MsoChpDefault
{mso-style-type:export-only;}
/* Page Definitions */
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
{page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3DZH-CN link=3Dblue vlink=3Dpurple =
style=3D'text-justify-trim:punctuation'>
<div class=3DSection1>
<p class=3DMsoNormal><span lang=3DEN-US>Hi, all:<o:p></o:p></span></p>
<p class=3DMsoNormal><span =
lang=3DEN-US> I
have using ovirt-sdk 3 monthes, I can use ovirt-sdk get vm’s =
infomations
like<o:p></o:p></span></p>
<p class=3DMsoNormal><span lang=3DEN-US>vm’s name, vm’s id, =
vm’ticket
etc.<o:p></o:p></span></p>
<p class=3DMsoNormal><span lang=3DEN-US><o:p> </o:p></span></p>
<p class=3DMsoNormal><span =
lang=3DEN-US> but
recently, I have a question about vm in vmpool, how could I get =
vm’s
information<o:p></o:p></span></p>
<p class=3DMsoNormal><span lang=3DEN-US>that the vm in vmpool. =
Especially, when a
vm is at stop statuss.<o:p></o:p></span></p>
<p class=3DMsoNormal><span lang=3DEN-US><o:p> </o:p></span></p>
<p class=3DMsoNormal><span =
lang=3DEN-US> For
example, when use UserPortal in the web-browser, no matter the vm is in =
the vmpool,<o:p></o:p></span></p>
<p class=3DMsoNormal><span lang=3DEN-US>it can be showed in the =
web-browser, but, I
can’t get vm’ s information which in the vmpool =
via<o:p></o:p></span></p>
<p class=3DMsoNormal><span lang=3DEN-US>the =
ovirt-sdk.<o:p></o:p></span></p>
<p class=3DMsoNormal><span lang=3DEN-US><o:p> </o:p></span></p>
<p class=3DMsoNormal><span =
lang=3DEN-US> =
&=
nbsp; &n=
bsp; &nb=
sp; &nbs=
p;  =
; =
&=
nbsp; &n=
bsp; &nb=
sp; =
Leaboy<o:p></o:p></span></p>
<p class=3DMsoNormal><span =
lang=3DEN-US> =
&=
nbsp; &n=
bsp; &nb=
sp; &nbs=
p;  =
; =
&=
nbsp; &n=
bsp; &nb=
sp; &nbs=
p; =
thanks<o:p></o:p></span></p>
<p class=3DMsoNormal><span lang=3DEN-US><o:p> </o:p></span></p>
<p class=3DMsoNormal><span lang=3DEN-US><o:p> </o:p></span></p>
</div>
</body>
</html>
------=_NextPart_000_004D_01CE7BE4.2369CFA0--
11 years, 5 months
[Engine-devel] Add Host(Bootstrap) fails with tar:timestamp in future error
by Kanagaraj
Hi All,
I am facing the following issue when adding a f18 node to 3.3-master
engine(nightly).
I have an engine with proper time set, but my f18 node has an old
time(01-01-2013) set. Then i tried adding the node to engine, but it
failed with following error in the engine.log. But no error is seen in
host-deploy log file.
2013-07-11 12:31:28,193 INFO
[org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector]
(VdsDeploy) Correlation ID: 62f72352, Call Stack: null, Custom Event ID:
-1, Message: Installing Host server1. Stage: Pre-termination.
2013-07-11 12:31:28,229 INFO
[org.ovirt.engine.core.bll.InstallerMessages] (VdsDeploy) Installation
10.70.43.127: Retrieving installation logs to:
'/var/log/ovirt-engine/host-deploy/ovirt-20130711123128-10.70.43.127-62f72352.log'
2013-07-11 12:31:28,237 INFO
[org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector]
(VdsDeploy) Correlation ID: 62f72352, Call Stack: null, Custom Event ID:
-1, Message: Installing Host server1. Retrieving installation logs to:
'/var/log/ovirt-engine/host-deploy/ovirt-20130711123128-10.70.43.127-62f72352.log'.
2013-07-11 12:31:28,553 INFO
[org.ovirt.engine.core.bll.InstallerMessages] (VdsDeploy) Installation
10.70.43.127: Stage: Termination
2013-07-11 12:31:28,562 INFO
[org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector]
(VdsDeploy) Correlation ID: 62f72352, Call Stack: null, Custom Event ID:
-1, Message: Installing Host server1. Stage: Termination.
2013-07-11 12:31:28,634 ERROR
[org.ovirt.engine.core.utils.ssh.SSHDialog] (pool-6-thread-42) SSH
stderr during command root(a)10.70.43.127:'umask 0077; MYTMP="$(mktemp -t
ovirt-XXXXXXXXXX)"; trap "chmod -R u+rwX \"${MYTMP}\" > /dev/null 2>&1;
rm -fr \"${MYTMP}\" > /dev/null 2>&1" 0; rm -fr "${MYTMP}" && mkdir
"${MYTMP}" && tar -C "${MYTMP}" -x && "${MYTMP}"/setup
DIALOG/dialect=str:machine DIALOG/customization=bool:True': stderr: tar:
./otopi: time stamp 2013-07-04 14:21:43 is 15945691.410852852 s in the
future
tar: ./ovirt-host-deploy: time stamp 2013-07-10 04:55:38 is
16430126.410376831 s in the future
tar: ./pythonlib/otopi/miniyum.pyc: time stamp 2013-07-04 14:21:45 is
15945693.410119301 s in the future
tar: ./pythonlib/otopi/__main__.pyc: time stamp 2013-07-04 14:21:45 is
15945693.410010001 s in the future
tar: ./pythonlib/otopi/dialog.pyo: time stamp 2013-07-04 14:21:45 is
15945693.409909584 s in the future
tar: ./pythonlib/otopi/packager.pyc: time stamp 2013-07-04 14:21:45 is
15945693.409809844 s in the future
tar: ./pythonlib/otopi/packager.py: time stamp 2013-07-04 14:21:44 is
15945692.409518324 s in the future
tar: ./pythonlib/otopi/common.pyo: time stamp 2013-07-04 14:21:45 is
15945693.40935584 s in the future
tar: ./pythonlib/otopi/transaction.pyc: time stamp 2013-07-04 14:21:45
is 15945693.409253666 s in the future
tar: ./pythonlib/otopi/miniyum.pyo: time stamp 2013-07-04 14:21:45 is
15945693.409127283 s in the future
tar: ./pythonlib/otopi/plugin.py: time stamp 2013-07-04 14:21:44 is
15945692.409022969 s in the future
2013-07-11 12:31:28,641 ERROR
[org.ovirt.engine.core.utils.ssh.SSHDialog] (pool-6-thread-42) SSH error
running command root(a)10.70.43.127:'umask 0077; MYTMP="$(mktemp -t
ovirt-XXXXXXXXXX)"; trap "chmod -R u+rwX \"${MYTMP}\" > /dev/null 2>&1;
rm -fr \"${MYTMP}\" > /dev/null 2>&1" 0; rm -fr "${MYTMP}" && mkdir
"${MYTMP}" && tar -C "${MYTMP}" -x && "${MYTMP}"/setup
DIALOG/dialect=str:machine DIALOG/customization=bool:True':
java.io.IOException: Error messages during execution
at
org.ovirt.engine.core.utils.ssh.SSHDialog.executeCommand(SSHDialog.java:318)
[utils.jar:]
After the failure, i tried doing a re-install, that went through fine
without any issue and the host came up after the installation. Looks
like the first time bootstrapping reset the time.
Also i can see the node's time is changed to current time.
Thanks,
Kanagaraj
11 years, 5 months
[Engine-devel] build a single maven project with make
by Roy Golan
This is a multi-part message in MIME format.
--------------020804090700040200030704
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
For those of us of dream of clean install a single project like maven
please note that
mvn has a flag which enables you to build a specific artifact even if
your not at that directory
mvn -pl groupID:artifactId
so say you modified a single class in vdsbroker do this:
/make clean install-dev PREFIX=$HOME/ovirt-engine
DEV_EXTRA_BUILD_FLAGS="-pl org.ovirt.engine.core:vdsbroker"
EXTRA_BUILD_FLAGS="-pl org.ovirt.engine.core:vdsbroker"/
note: the usage of DEV_EXTRA_BUILD_FLAGS and EXTRA_BUILD_FLAGS is not a
mistake. the "clean" target uses EXTRA_BUILD_FLAGS - please review
http://gerrit.ovirt.org/16395 to rectify that.
now make the ear:
/make clean install-dev PREFIX=$HOME/ovirt-engine
DEV_EXTRA_BUILD_FLAGS="-pl org.ovirt.engine:engine-server-ear"
EXTRA_BUILD_FLAGS="-pl org.ovirt.engine:engine-server-ear"/
now your updated artifact is in place.
Thanks,
Roy
--------------020804090700040200030704
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
For those of us of dream of clean install a single project like
maven please note that<br>
mvn has a flag which enables you to build a specific artifact even
if your not at that directory<br>
<br>
mvn -pl groupID:artifactId<br>
<br>
so say you modified a single class in vdsbroker do this:<br>
<br>
<i>make clean install-dev PREFIX=$HOME/ovirt-engine
DEV_EXTRA_BUILD_FLAGS="-pl org.ovirt.engine.core:vdsbroker"
EXTRA_BUILD_FLAGS="-pl org.ovirt.engine.core:vdsbroker"</i><br>
<br>
note: the usage of DEV_EXTRA_BUILD_FLAGS and EXTRA_BUILD_FLAGS is
not a mistake. the "clean" target uses EXTRA_BUILD_FLAGS - please
review <br>
<a class="moz-txt-link-freetext" href="http://gerrit.ovirt.org/16395">http://gerrit.ovirt.org/16395</a> to rectify that.<br>
<br>
now make the ear:<br>
<br>
<i>make clean install-dev PREFIX=$HOME/ovirt-engine
DEV_EXTRA_BUILD_FLAGS="-pl org.ovirt.engine:engine-server-ear"
EXTRA_BUILD_FLAGS="-pl org.ovirt.engine:engine-server-ear"</i><br>
<br>
<br>
now your updated artifact is in place.<br>
<br>
Thanks,<br>
Roy<br>
</body>
</html>
--------------020804090700040200030704--
11 years, 5 months
[Engine-devel] Recommended mechanism to restart Jenkins
by Keith Robertson
------=_Part_1179832_1056342074.1373373334743
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
What is the recommended mechanism to restart the oVirt Jenkins CI server job when it fails due to an issue unrelated to a pushed patch? Should I...
a) Add some newline/space to the commit message and re-push the patch (clunky but it shd work).
b) Remove/add the 'oVirt Jenkins CI Server' reviewer from the Reviewer's list and re-add? (have no idea if this actually works)
c) Something else here...
Keith
Keith Robertson
1-919-754-4004
------=_Part_1179832_1056342074.1373373334743
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit
<html><body><div style="font-family: times new roman, new york, times, serif; font-size: 12pt; color: #000000"><div>What is the recommended mechanism to restart the oVirt Jenkins CI server job when it fails due to an issue unrelated to a pushed patch? Should I...</div><div><br></div><div>a) Add some newline/space to the commit message and re-push the patch (clunky but it shd work).</div><div>b) Remove/add the 'oVirt Jenkins CI Server' reviewer from the Reviewer's list and re-add? (have no idea if this actually works)</div><div>c) Something else here...</div><div><br></div><div>Keith</div><div><br></div><div><span name="x"></span><img src="http://www.redhat.com/g/chrome/logo_rh_home.png"><br>Keith Robertson<br>1-919-754-4004<br><span name="x"></span><br></div></div></body></html>
------=_Part_1179832_1056342074.1373373334743--
11 years, 5 months
[Engine-devel] Upgrading oVirt UI technology stack
by Vojtech Szocs
------=_Part_625289_1109484330.1373290734871
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
The following is a new meeting request:
Subject: Upgrading oVirt UI technology stack
Organizer: "Vojtech Szocs" <vszocs(a)redhat.com>
Time: Tuesday, July 9, 2013, 3:00:00 PM - 4:00:00 PM GMT +01:00 Belgrade, Bratislava, Budapest, Ljubljana, Prague
Required: engine-devel(a)ovirt.org
Optional: awels(a)redhat.com; gshereme(a)redhat.com; ecohen(a)redhat.com; derez(a)redhat.com; gchaplik(a)redhat.com; tjelinek(a)redhat.com; lvernia(a)redhat.com; kmayilsa(a)redhat.com; tnisan(a)redhat.com; alkaplan(a)redhat.com
*~*~*~*~*~*~*~*~*~*
Hello everyone,
this meeting is a follow-up to our effort to upgrade existing UI technology stack shared by oVirt web applications:
http://www.ovirt.org/Features/GWT_Platform_Upgrade
In this meeting, I'll be going through important changes in GWT(P) that impact UI architecture. Everyone is welcome to join and share his (her) ideas, suggestions, etc.
Conference call details:
Intercall dial-in numbers: https://www.intercallonline.com/listNumbersByCode.action?confCode=7128867405
Intercall conference code: 712 886 7405 #
Elluminate session link:
https://sas.elluminate.com/m.jnlp?sid=819&password=M.132A81E7D3610CF042FB...
Regards,
Vojtech
------=_Part_625289_1109484330.1373290734871
Content-Type: text/calendar; charset=utf-8; method=REQUEST; name=meeting.ics
Content-Transfer-Encoding: 7bit
BEGIN:VCALENDAR
PRODID:Zimbra-Calendar-Provider
VERSION:2.0
METHOD:REQUEST
BEGIN:VTIMEZONE
TZID:Europe/Belgrade
BEGIN:STANDARD
DTSTART:16010101T030000
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=10;BYDAY=-1SU
TZNAME:CET
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010101T020000
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BYDAY=-1SU
TZNAME:CEST
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
UID:5f38f86c-056c-4c27-9384-943f6ba21a77
SUMMARY:Upgrading oVirt UI technology stack
ATTENDEE;CN=engine-devel;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRU
E:mailto:engine-devel@ovirt.org
ATTENDEE;CN=Alexander Wels;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=T
RUE:mailto:awels@redhat.com
ATTENDEE;CN=Greg Sheremeta;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=T
RUE:mailto:gshereme@redhat.com
ATTENDEE;CN=Einav Cohen;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE
:mailto:ecohen@redhat.com
ATTENDEE;CN=Daniel Erez;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE
:mailto:derez@redhat.com
ATTENDEE;CN=Gilad Chaplik;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TR
UE:mailto:gchaplik@redhat.com
ATTENDEE;CN=Thomas Jelinek;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=T
RUE:mailto:tjelinek@redhat.com
ATTENDEE;CN=Lior Vernia;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE
:mailto:lvernia@redhat.com
ATTENDEE;CN=Kanagaraj Mayilsamy;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;R
SVP=TRUE:mailto:kmayilsa@redhat.com
ATTENDEE;CN=Tal Nisan;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE:m
ailto:tnisan@redhat.com
ATTENDEE;CN=Alona Kaplan;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRU
E:mailto:alkaplan@redhat.com
ORGANIZER;CN=Vojtech Szocs:mailto:vszocs@redhat.com
DTSTART;TZID="Europe/Belgrade":20130709T150000
DTEND;TZID="Europe/Belgrade":20130709T160000
STATUS:CONFIRMED
CLASS:PUBLIC
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
TRANSP:OPAQUE
LAST-MODIFIED:20130708T133854Z
DTSTAMP:20130708T133854Z
SEQUENCE:0
DESCRIPTION:The following is a new meeting request:\n\nSubject: Upgrading oV
irt UI technology stack \nOrganizer: "Vojtech Szocs" <vszocs(a)redhat.com> \n\
nTime: Tuesday\, July 9\, 2013\, 3:00:00 PM - 4:00:00 PM GMT +01:00 Belgrade
\, Bratislava\, Budapest\, Ljubljana\, Prague\n \nRequired: engine-devel@ovi
rt.org \nOptional: awels(a)redhat.com\; gshereme(a)redhat.com\; ecohen(a)redhat.co
m\; derez(a)redhat.com\; gchaplik(a)redhat.com\; tjelinek(a)redhat.com\; lvernia@r
edhat.com\; kmayilsa(a)redhat.com\; tnisan(a)redhat.com\; alkaplan(a)redhat.com \n
\n*~*~*~*~*~*~*~*~*~*\n\nHello everyone\,\n\nthis meeting is a follow-up to
our effort to upgrade existing UI technology stack shared by oVirt web appli
cations:\n\nhttp://www.ovirt.org/Features/GWT_Platform_Upgrade\n\nIn this me
eting\, I'll be going through important changes in GWT(P) that impact UI arc
hitecture. Everyone is welcome to join and share his (her) ideas\, suggestio
ns\, etc.\n\nConference call details:\nIntercall dial-in numbers: https://ww
w.intercallonline.com/listNumbersByCode.action?confCode=7128867405\nIntercal
l conference code: 712 886 7405 #\n\nElluminate session link:\nhttps://sas.e
lluminate.com/m.jnlp?sid=819&password=M.132A81E7D3610CF042FB58CA335C55\n\nRe
gards\,\nVojtech\n
BEGIN:VALARM
ACTION:DISPLAY
TRIGGER;RELATED=START:-PT5M
DESCRIPTION:Reminder
END:VALARM
END:VEVENT
END:VCALENDAR
------=_Part_625289_1109484330.1373290734871--
11 years, 5 months
[Engine-devel] BadPaddingException
by Martin Perina
------=_Part_500131_1462225325.1373284688721
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Hi,
I've noticed that BadPaddingException has started to appear recently in engine-log:
1) The first occurrence is during engine startup:
2013-07-08 13:42:32,334 ERROR [org.ovirt.engine.core.dal.dbbroker.generic.DBConfigUtils] (MSC service thread 1-4) Failed to decrypt value for property AttestationTruststorePass will be used encrypted value: javax.crypto.BadPaddingException: Data must start with zero
2) The second occurrence is after successfull login to webadmin app
2013-07-08 13:43:13,352 ERROR [org.ovirt.engine.core.dal.dbbroker.generic.DBConfigUtils] (http--0.0.0.0-8080-1) Failed to decrypt value for property LocalAdminPassword will be used encrypted value: javax.crypto.BadPaddingException: Data must start with zero
Strange thing is, that I can log in as admin@internal without any problems with the password I've entered
during engine-setup-2 process.
Engine instance has been created using new development environment with no errors, engine.log attached.
Martin
------=_Part_500131_1462225325.1373284688721
Content-Type: text/x-log; name=engine.log
Content-Disposition: attachment; filename=engine.log
Content-Transfer-Encoding: base64
MjAxMy0wNy0wOCAxMzo0MjozMSw3NzQgSU5GTyAgW29yZy5vdmlydC5lbmdpbmUuY29yZS51dGls
cy5Mb2NhbENvbmZpZ10gKE1TQyBzZXJ2aWNlIHRocmVhZCAxLTQpIExvYWRlZCBmaWxlICIvaG9t
ZS9tcGVyaW5hL292aXJ0LWVuZ2luZS9zaGFyZS9vdmlydC1lbmdpbmUvY29uZi9lbmdpbmUuY29u
Zi5kZWZhdWx0cyIuCjIwMTMtMDctMDggMTM6NDI6MzEsNzc1IElORk8gIFtvcmcub3ZpcnQuZW5n
aW5lLmNvcmUudXRpbHMuTG9jYWxDb25maWddIChNU0Mgc2VydmljZSB0aHJlYWQgMS00KSBMb2Fk
ZWQgZmlsZSAiL2hvbWUvbXBlcmluYS9vdmlydC1lbmdpbmUvZXRjL292aXJ0LWVuZ2luZS9lbmdp
bmUuY29uZiIuCjIwMTMtMDctMDggMTM6NDI6MzEsNzc2IElORk8gIFtvcmcub3ZpcnQuZW5naW5l
LmNvcmUudXRpbHMuTG9jYWxDb25maWddIChNU0Mgc2VydmljZSB0aHJlYWQgMS00KSBMb2FkZWQg
ZmlsZSAiL2hvbWUvbXBlcmluYS9vdmlydC1lbmdpbmUvZXRjL292aXJ0LWVuZ2luZS9lbmdpbmUu
Y29uZi5kLzEwLXNldHVwLWRhdGFiYXNlLmNvbmYiLgoyMDEzLTA3LTA4IDEzOjQyOjMxLDc3NyBJ
TkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnV0aWxzLkxvY2FsQ29uZmlnXSAoTVNDIHNlcnZp
Y2UgdGhyZWFkIDEtNCkgTG9hZGVkIGZpbGUgIi9ob21lL21wZXJpbmEvb3ZpcnQtZW5naW5lL2V0
Yy9vdmlydC1lbmdpbmUvZW5naW5lLmNvbmYuZC8xMC1zZXR1cC1qYXZhLmNvbmYiLgoyMDEzLTA3
LTA4IDEzOjQyOjMxLDc3OCBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnV0aWxzLkxvY2Fs
Q29uZmlnXSAoTVNDIHNlcnZpY2UgdGhyZWFkIDEtNCkgTG9hZGVkIGZpbGUgIi9ob21lL21wZXJp
bmEvb3ZpcnQtZW5naW5lL2V0Yy9vdmlydC1lbmdpbmUvZW5naW5lLmNvbmYuZC8xMC1zZXR1cC1q
Ym9zcy5jb25mIi4KMjAxMy0wNy0wOCAxMzo0MjozMSw3NzkgSU5GTyAgW29yZy5vdmlydC5lbmdp
bmUuY29yZS51dGlscy5Mb2NhbENvbmZpZ10gKE1TQyBzZXJ2aWNlIHRocmVhZCAxLTQpIExvYWRl
ZCBmaWxlICIvaG9tZS9tcGVyaW5hL292aXJ0LWVuZ2luZS9ldGMvb3ZpcnQtZW5naW5lL2VuZ2lu
ZS5jb25mLmQvMTAtc2V0dXAtcGtpLmNvbmYiLgoyMDEzLTA3LTA4IDEzOjQyOjMxLDc4MCBJTkZP
ICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnV0aWxzLkxvY2FsQ29uZmlnXSAoTVNDIHNlcnZpY2Ug
dGhyZWFkIDEtNCkgTG9hZGVkIGZpbGUgIi9ob21lL21wZXJpbmEvb3ZpcnQtZW5naW5lL2V0Yy9v
dmlydC1lbmdpbmUvZW5naW5lLmNvbmYuZC8xMC1zZXR1cC1wcm90b2NvbHMuY29uZiIuCjIwMTMt
MDctMDggMTM6NDI6MzEsNzgxIElORk8gIFtvcmcub3ZpcnQuZW5naW5lLmNvcmUudXRpbHMuTG9j
YWxDb25maWddIChNU0Mgc2VydmljZSB0aHJlYWQgMS00KSBMb2FkZWQgZmlsZSAiL2hvbWUvbXBl
cmluYS9vdmlydC1lbmdpbmUvZXRjL292aXJ0LWVuZ2luZS9lbmdpbmUuY29uZi5kLzUwLWNvbnNv
bGUtbG9nLmNvbmYiLgoyMDEzLTA3LTA4IDEzOjQyOjMxLDc4MiBJTkZPICBbb3JnLm92aXJ0LmVu
Z2luZS5jb3JlLnV0aWxzLkxvY2FsQ29uZmlnXSAoTVNDIHNlcnZpY2UgdGhyZWFkIDEtNCkgVmFs
dWUgb2YgcHJvcGVydHkgIkVOR0lORV9BSlBfRU5BQkxFRCIgaXMgImZhbHNlIi4KMjAxMy0wNy0w
OCAxMzo0MjozMSw3ODMgSU5GTyAgW29yZy5vdmlydC5lbmdpbmUuY29yZS51dGlscy5Mb2NhbENv
bmZpZ10gKE1TQyBzZXJ2aWNlIHRocmVhZCAxLTQpIFZhbHVlIG9mIHByb3BlcnR5ICJFTkdJTkVf
QUpQX1BPUlQiIGlzICI4NzAyIi4KMjAxMy0wNy0wOCAxMzo0MjozMSw3ODMgSU5GTyAgW29yZy5v
dmlydC5lbmdpbmUuY29yZS51dGlscy5Mb2NhbENvbmZpZ10gKE1TQyBzZXJ2aWNlIHRocmVhZCAx
LTQpIFZhbHVlIG9mIHByb3BlcnR5ICJFTkdJTkVfQVBQUyIgaXMgImVuZ2luZS5lYXIiLgoyMDEz
LTA3LTA4IDEzOjQyOjMxLDc4MyBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnV0aWxzLkxv
Y2FsQ29uZmlnXSAoTVNDIHNlcnZpY2UgdGhyZWFkIDEtNCkgVmFsdWUgb2YgcHJvcGVydHkgIkVO
R0lORV9DQUNIRSIgaXMgIi9ob21lL21wZXJpbmEvb3ZpcnQtZW5naW5lL3Zhci9jYWNoZS9vdmly
dC1lbmdpbmUiLgoyMDEzLTA3LTA4IDEzOjQyOjMxLDc4NCBJTkZPICBbb3JnLm92aXJ0LmVuZ2lu
ZS5jb3JlLnV0aWxzLkxvY2FsQ29uZmlnXSAoTVNDIHNlcnZpY2UgdGhyZWFkIDEtNCkgVmFsdWUg
b2YgcHJvcGVydHkgIkVOR0lORV9EQl9DSEVDS19JTlRFUlZBTCIgaXMgIjEwMDAiLgoyMDEzLTA3
LTA4IDEzOjQyOjMxLDc4NCBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnV0aWxzLkxvY2Fs
Q29uZmlnXSAoTVNDIHNlcnZpY2UgdGhyZWFkIDEtNCkgVmFsdWUgb2YgcHJvcGVydHkgIkVOR0lO
RV9EQl9DT05ORUNUSU9OX1RJTUVPVVQiIGlzICIzMDAwMDAiLgoyMDEzLTA3LTA4IDEzOjQyOjMx
LDc4NSBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnV0aWxzLkxvY2FsQ29uZmlnXSAoTVND
IHNlcnZpY2UgdGhyZWFkIDEtNCkgVmFsdWUgb2YgcHJvcGVydHkgIkVOR0lORV9EQl9EQVRBQkFT
RSIgaXMgImVuZ2luZSIuCjIwMTMtMDctMDggMTM6NDI6MzEsNzg1IElORk8gIFtvcmcub3ZpcnQu
ZW5naW5lLmNvcmUudXRpbHMuTG9jYWxDb25maWddIChNU0Mgc2VydmljZSB0aHJlYWQgMS00KSBW
YWx1ZSBvZiBwcm9wZXJ0eSAiRU5HSU5FX0RCX0RSSVZFUiIgaXMgIm9yZy5wb3N0Z3Jlc3FsLkRy
aXZlciIuCjIwMTMtMDctMDggMTM6NDI6MzEsNzg2IElORk8gIFtvcmcub3ZpcnQuZW5naW5lLmNv
cmUudXRpbHMuTG9jYWxDb25maWddIChNU0Mgc2VydmljZSB0aHJlYWQgMS00KSBWYWx1ZSBvZiBw
cm9wZXJ0eSAiRU5HSU5FX0RCX0hPU1QiIGlzICJsb2NhbGhvc3QiLgoyMDEzLTA3LTA4IDEzOjQy
OjMxLDc4NiBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnV0aWxzLkxvY2FsQ29uZmlnXSAo
TVNDIHNlcnZpY2UgdGhyZWFkIDEtNCkgVmFsdWUgb2YgcHJvcGVydHkgIkVOR0lORV9EQl9NQVhf
Q09OTkVDVElPTlMiIGlzICIxMDAiLgoyMDEzLTA3LTA4IDEzOjQyOjMxLDc4NiBJTkZPICBbb3Jn
Lm92aXJ0LmVuZ2luZS5jb3JlLnV0aWxzLkxvY2FsQ29uZmlnXSAoTVNDIHNlcnZpY2UgdGhyZWFk
IDEtNCkgVmFsdWUgb2YgcHJvcGVydHkgIkVOR0lORV9EQl9NSU5fQ09OTkVDVElPTlMiIGlzICIx
Ii4KMjAxMy0wNy0wOCAxMzo0MjozMSw3ODcgSU5GTyAgW29yZy5vdmlydC5lbmdpbmUuY29yZS51
dGlscy5Mb2NhbENvbmZpZ10gKE1TQyBzZXJ2aWNlIHRocmVhZCAxLTQpIFZhbHVlIG9mIHByb3Bl
cnR5ICJFTkdJTkVfREJfUEFTU1dPUkQiIGlzICIqKioiLgoyMDEzLTA3LTA4IDEzOjQyOjMxLDc4
NyBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnV0aWxzLkxvY2FsQ29uZmlnXSAoTVNDIHNl
cnZpY2UgdGhyZWFkIDEtNCkgVmFsdWUgb2YgcHJvcGVydHkgIkVOR0lORV9EQl9QT1JUIiBpcyAi
NTQzMiIuCjIwMTMtMDctMDggMTM6NDI6MzEsNzg4IElORk8gIFtvcmcub3ZpcnQuZW5naW5lLmNv
cmUudXRpbHMuTG9jYWxDb25maWddIChNU0Mgc2VydmljZSB0aHJlYWQgMS00KSBWYWx1ZSBvZiBw
cm9wZXJ0eSAiRU5HSU5FX0RCX1NFQ1VSRUQiIGlzICJGYWxzZSIuCjIwMTMtMDctMDggMTM6NDI6
MzEsNzg4IElORk8gIFtvcmcub3ZpcnQuZW5naW5lLmNvcmUudXRpbHMuTG9jYWxDb25maWddIChN
U0Mgc2VydmljZSB0aHJlYWQgMS00KSBWYWx1ZSBvZiBwcm9wZXJ0eSAiRU5HSU5FX0RCX1NFQ1VS
RURfVkFMSURBVElPTiIgaXMgIkZhbHNlIi4KMjAxMy0wNy0wOCAxMzo0MjozMSw3ODggSU5GTyAg
W29yZy5vdmlydC5lbmdpbmUuY29yZS51dGlscy5Mb2NhbENvbmZpZ10gKE1TQyBzZXJ2aWNlIHRo
cmVhZCAxLTQpIFZhbHVlIG9mIHByb3BlcnR5ICJFTkdJTkVfREJfU1NMIiBpcyAiZmFsc2UiLgoy
MDEzLTA3LTA4IDEzOjQyOjMxLDc4OSBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnV0aWxz
LkxvY2FsQ29uZmlnXSAoTVNDIHNlcnZpY2UgdGhyZWFkIDEtNCkgVmFsdWUgb2YgcHJvcGVydHkg
IkVOR0lORV9EQl9VUkwiIGlzICJqZGJjOnBvc3RncmVzcWw6Ly9sb2NhbGhvc3Q6NTQzMi9lbmdp
bmU/JnNzbGZhY3Rvcnk9b3JnLnBvc3RncmVzcWwuc3NsLk5vblZhbGlkYXRpbmdGYWN0b3J5Ii4K
MjAxMy0wNy0wOCAxMzo0MjozMSw3OTAgSU5GTyAgW29yZy5vdmlydC5lbmdpbmUuY29yZS51dGls
cy5Mb2NhbENvbmZpZ10gKE1TQyBzZXJ2aWNlIHRocmVhZCAxLTQpIFZhbHVlIG9mIHByb3BlcnR5
ICJFTkdJTkVfREJfVVNFUiIgaXMgImVuZ2luZSIuCjIwMTMtMDctMDggMTM6NDI6MzEsNzkwIElO
Rk8gIFtvcmcub3ZpcnQuZW5naW5lLmNvcmUudXRpbHMuTG9jYWxDb25maWddIChNU0Mgc2Vydmlj
ZSB0aHJlYWQgMS00KSBWYWx1ZSBvZiBwcm9wZXJ0eSAiRU5HSU5FX0RFQlVHX0FERFJFU1MiIGlz
ICIxMjcuMC4wLjE6ODc4NyIuCjIwMTMtMDctMDggMTM6NDI6MzEsNzkxIElORk8gIFtvcmcub3Zp
cnQuZW5naW5lLmNvcmUudXRpbHMuTG9jYWxDb25maWddIChNU0Mgc2VydmljZSB0aHJlYWQgMS00
KSBWYWx1ZSBvZiBwcm9wZXJ0eSAiRU5HSU5FX0RPQyIgaXMgIi9kb2Mvb3ZpcnQtZW5naW5lIi4K
MjAxMy0wNy0wOCAxMzo0MjozMSw3OTEgSU5GTyAgW29yZy5vdmlydC5lbmdpbmUuY29yZS51dGls
cy5Mb2NhbENvbmZpZ10gKE1TQyBzZXJ2aWNlIHRocmVhZCAxLTQpIFZhbHVlIG9mIHByb3BlcnR5
ICJFTkdJTkVfRVRDIiBpcyAiL2hvbWUvbXBlcmluYS9vdmlydC1lbmdpbmUvZXRjL292aXJ0LWVu
Z2luZSIuCjIwMTMtMDctMDggMTM6NDI6MzEsNzkxIElORk8gIFtvcmcub3ZpcnQuZW5naW5lLmNv
cmUudXRpbHMuTG9jYWxDb25maWddIChNU0Mgc2VydmljZSB0aHJlYWQgMS00KSBWYWx1ZSBvZiBw
cm9wZXJ0eSAiRU5HSU5FX0ZRRE4iIGlzICJtcGVyaW5hLmJycS5yZWRoYXQuY29tIi4KMjAxMy0w
Ny0wOCAxMzo0MjozMSw3OTIgSU5GTyAgW29yZy5vdmlydC5lbmdpbmUuY29yZS51dGlscy5Mb2Nh
bENvbmZpZ10gKE1TQyBzZXJ2aWNlIHRocmVhZCAxLTQpIFZhbHVlIG9mIHByb3BlcnR5ICJFTkdJ
TkVfR1JPVVAiIGlzICJvdmlydCIuCjIwMTMtMDctMDggMTM6NDI6MzEsNzkyIElORk8gIFtvcmcu
b3ZpcnQuZW5naW5lLmNvcmUudXRpbHMuTG9jYWxDb25maWddIChNU0Mgc2VydmljZSB0aHJlYWQg
MS00KSBWYWx1ZSBvZiBwcm9wZXJ0eSAiRU5HSU5FX0hFQVBfTUFYIiBpcyAiMWciLgoyMDEzLTA3
LTA4IDEzOjQyOjMxLDc5MiBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnV0aWxzLkxvY2Fs
Q29uZmlnXSAoTVNDIHNlcnZpY2UgdGhyZWFkIDEtNCkgVmFsdWUgb2YgcHJvcGVydHkgIkVOR0lO
RV9IRUFQX01JTiIgaXMgIjFnIi4KMjAxMy0wNy0wOCAxMzo0MjozMSw3OTIgSU5GTyAgW29yZy5v
dmlydC5lbmdpbmUuY29yZS51dGlscy5Mb2NhbENvbmZpZ10gKE1TQyBzZXJ2aWNlIHRocmVhZCAx
LTQpIFZhbHVlIG9mIHByb3BlcnR5ICJFTkdJTkVfSFRUUFNfRU5BQkxFRCIgaXMgInRydWUiLgoy
MDEzLTA3LTA4IDEzOjQyOjMxLDc5MyBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnV0aWxz
LkxvY2FsQ29uZmlnXSAoTVNDIHNlcnZpY2UgdGhyZWFkIDEtNCkgVmFsdWUgb2YgcHJvcGVydHkg
IkVOR0lORV9IVFRQU19QT1JUIiBpcyAiODQ0MyIuCjIwMTMtMDctMDggMTM6NDI6MzEsNzkzIElO
Rk8gIFtvcmcub3ZpcnQuZW5naW5lLmNvcmUudXRpbHMuTG9jYWxDb25maWddIChNU0Mgc2Vydmlj
ZSB0aHJlYWQgMS00KSBWYWx1ZSBvZiBwcm9wZXJ0eSAiRU5HSU5FX0hUVFBTX1BST1RPQ09MUyIg
aXMgIlNTTHYzLFRMU3YxLFRMU3YxLjEsVExTdjEuMiIuCjIwMTMtMDctMDggMTM6NDI6MzEsNzk0
IElORk8gIFtvcmcub3ZpcnQuZW5naW5lLmNvcmUudXRpbHMuTG9jYWxDb25maWddIChNU0Mgc2Vy
dmljZSB0aHJlYWQgMS00KSBWYWx1ZSBvZiBwcm9wZXJ0eSAiRU5HSU5FX0hUVFBfRU5BQkxFRCIg
aXMgInRydWUiLgoyMDEzLTA3LTA4IDEzOjQyOjMxLDc5NCBJTkZPICBbb3JnLm92aXJ0LmVuZ2lu
ZS5jb3JlLnV0aWxzLkxvY2FsQ29uZmlnXSAoTVNDIHNlcnZpY2UgdGhyZWFkIDEtNCkgVmFsdWUg
b2YgcHJvcGVydHkgIkVOR0lORV9IVFRQX1BPUlQiIGlzICI4MDgwIi4KMjAxMy0wNy0wOCAxMzo0
MjozMSw3OTUgSU5GTyAgW29yZy5vdmlydC5lbmdpbmUuY29yZS51dGlscy5Mb2NhbENvbmZpZ10g
KE1TQyBzZXJ2aWNlIHRocmVhZCAxLTQpIFZhbHVlIG9mIHByb3BlcnR5ICJFTkdJTkVfTE9HIiBp
cyAiL2hvbWUvbXBlcmluYS9vdmlydC1lbmdpbmUvdmFyL2xvZy9vdmlydC1lbmdpbmUiLgoyMDEz
LTA3LTA4IDEzOjQyOjMxLDc5NSBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnV0aWxzLkxv
Y2FsQ29uZmlnXSAoTVNDIHNlcnZpY2UgdGhyZWFkIDEtNCkgVmFsdWUgb2YgcHJvcGVydHkgIkVO
R0lORV9MT0dfVE9fQ09OU09MRSIgaXMgInRydWUiLgoyMDEzLTA3LTA4IDEzOjQyOjMxLDc5NSBJ
TkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnV0aWxzLkxvY2FsQ29uZmlnXSAoTVNDIHNlcnZp
Y2UgdGhyZWFkIDEtNCkgVmFsdWUgb2YgcHJvcGVydHkgIkVOR0lORV9OT1ZOQ19ESVIiIGlzICIv
dXNyL3NoYXJlL25vdm5jIi4KMjAxMy0wNy0wOCAxMzo0MjozMSw3OTYgSU5GTyAgW29yZy5vdmly
dC5lbmdpbmUuY29yZS51dGlscy5Mb2NhbENvbmZpZ10gKE1TQyBzZXJ2aWNlIHRocmVhZCAxLTQp
IFZhbHVlIG9mIHByb3BlcnR5ICJFTkdJTkVfUEVSTV9NQVgiIGlzICIyNTZtIi4KMjAxMy0wNy0w
OCAxMzo0MjozMSw3OTYgSU5GTyAgW29yZy5vdmlydC5lbmdpbmUuY29yZS51dGlscy5Mb2NhbENv
bmZpZ10gKE1TQyBzZXJ2aWNlIHRocmVhZCAxLTQpIFZhbHVlIG9mIHByb3BlcnR5ICJFTkdJTkVf
UEVSTV9NSU4iIGlzICIyNTZtIi4KMjAxMy0wNy0wOCAxMzo0MjozMSw3OTcgSU5GTyAgW29yZy5v
dmlydC5lbmdpbmUuY29yZS51dGlscy5Mb2NhbENvbmZpZ10gKE1TQyBzZXJ2aWNlIHRocmVhZCAx
LTQpIFZhbHVlIG9mIHByb3BlcnR5ICJFTkdJTkVfUEtJIiBpcyAiL2hvbWUvbXBlcmluYS9vdmly
dC1lbmdpbmUvZXRjL3BraS9vdmlydC1lbmdpbmUiLgoyMDEzLTA3LTA4IDEzOjQyOjMxLDc5OCBJ
TkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnV0aWxzLkxvY2FsQ29uZmlnXSAoTVNDIHNlcnZp
Y2UgdGhyZWFkIDEtNCkgVmFsdWUgb2YgcHJvcGVydHkgIkVOR0lORV9QS0lfQ0EiIGlzICIvaG9t
ZS9tcGVyaW5hL292aXJ0LWVuZ2luZS9ldGMvcGtpL292aXJ0LWVuZ2luZS9jYS5wZW0iLgoyMDEz
LTA3LTA4IDEzOjQyOjMxLDc5OCBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnV0aWxzLkxv
Y2FsQ29uZmlnXSAoTVNDIHNlcnZpY2UgdGhyZWFkIDEtNCkgVmFsdWUgb2YgcHJvcGVydHkgIkVO
R0lORV9QS0lfRU5HSU5FX0NFUlQiIGlzICIvaG9tZS9tcGVyaW5hL292aXJ0LWVuZ2luZS9ldGMv
cGtpL292aXJ0LWVuZ2luZS9jZXJ0cy9lbmdpbmUuY2VyIi4KMjAxMy0wNy0wOCAxMzo0MjozMSw3
OTkgSU5GTyAgW29yZy5vdmlydC5lbmdpbmUuY29yZS51dGlscy5Mb2NhbENvbmZpZ10gKE1TQyBz
ZXJ2aWNlIHRocmVhZCAxLTQpIFZhbHVlIG9mIHByb3BlcnR5ICJFTkdJTkVfUEtJX0VOR0lORV9T
VE9SRSIgaXMgIi9ob21lL21wZXJpbmEvb3ZpcnQtZW5naW5lL2V0Yy9wa2kvb3ZpcnQtZW5naW5l
L2tleXMvZW5naW5lLnAxMiIuCjIwMTMtMDctMDggMTM6NDI6MzEsNzk5IElORk8gIFtvcmcub3Zp
cnQuZW5naW5lLmNvcmUudXRpbHMuTG9jYWxDb25maWddIChNU0Mgc2VydmljZSB0aHJlYWQgMS00
KSBWYWx1ZSBvZiBwcm9wZXJ0eSAiRU5HSU5FX1BLSV9FTkdJTkVfU1RPUkVfQUxJQVMiIGlzICIx
Ii4KMjAxMy0wNy0wOCAxMzo0MjozMSw3OTkgSU5GTyAgW29yZy5vdmlydC5lbmdpbmUuY29yZS51
dGlscy5Mb2NhbENvbmZpZ10gKE1TQyBzZXJ2aWNlIHRocmVhZCAxLTQpIFZhbHVlIG9mIHByb3Bl
cnR5ICJFTkdJTkVfUEtJX0VOR0lORV9TVE9SRV9QQVNTV09SRCIgaXMgIioqKiIuCjIwMTMtMDct
MDggMTM6NDI6MzEsODAwIElORk8gIFtvcmcub3ZpcnQuZW5naW5lLmNvcmUudXRpbHMuTG9jYWxD
b25maWddIChNU0Mgc2VydmljZSB0aHJlYWQgMS00KSBWYWx1ZSBvZiBwcm9wZXJ0eSAiRU5HSU5F
X1BLSV9UUlVTVF9TVE9SRSIgaXMgIi9ob21lL21wZXJpbmEvb3ZpcnQtZW5naW5lL2V0Yy9wa2kv
b3ZpcnQtZW5naW5lLy50cnVzdHN0b3JlIi4KMjAxMy0wNy0wOCAxMzo0MjozMSw4MDAgSU5GTyAg
W29yZy5vdmlydC5lbmdpbmUuY29yZS51dGlscy5Mb2NhbENvbmZpZ10gKE1TQyBzZXJ2aWNlIHRo
cmVhZCAxLTQpIFZhbHVlIG9mIHByb3BlcnR5ICJFTkdJTkVfUEtJX1RSVVNUX1NUT1JFX1BBU1NX
T1JEIiBpcyAiKioqIi4KMjAxMy0wNy0wOCAxMzo0MjozMSw4MDEgSU5GTyAgW29yZy5vdmlydC5l
bmdpbmUuY29yZS51dGlscy5Mb2NhbENvbmZpZ10gKE1TQyBzZXJ2aWNlIHRocmVhZCAxLTQpIFZh
bHVlIG9mIHByb3BlcnR5ICJFTkdJTkVfUFJPUEVSVElFUyIgaXMgImpzc2UuZW5hYmxlU05JRXh0
ZW5zaW9uPWZhbHNlIi4KMjAxMy0wNy0wOCAxMzo0MjozMSw4MDEgSU5GTyAgW29yZy5vdmlydC5l
bmdpbmUuY29yZS51dGlscy5Mb2NhbENvbmZpZ10gKE1TQyBzZXJ2aWNlIHRocmVhZCAxLTQpIFZh
bHVlIG9mIHByb3BlcnR5ICJFTkdJTkVfUFJPWFlfRU5BQkxFRCIgaXMgImZhbHNlIi4KMjAxMy0w
Ny0wOCAxMzo0MjozMSw4MDIgSU5GTyAgW29yZy5vdmlydC5lbmdpbmUuY29yZS51dGlscy5Mb2Nh
bENvbmZpZ10gKE1TQyBzZXJ2aWNlIHRocmVhZCAxLTQpIFZhbHVlIG9mIHByb3BlcnR5ICJFTkdJ
TkVfUFJPWFlfSFRUUFNfUE9SVCIgaXMgIjQ0MyIuCjIwMTMtMDctMDggMTM6NDI6MzEsODAyIElO
Rk8gIFtvcmcub3ZpcnQuZW5naW5lLmNvcmUudXRpbHMuTG9jYWxDb25maWddIChNU0Mgc2Vydmlj
ZSB0aHJlYWQgMS00KSBWYWx1ZSBvZiBwcm9wZXJ0eSAiRU5HSU5FX1BST1hZX0hUVFBfUE9SVCIg
aXMgIjgwIi4KMjAxMy0wNy0wOCAxMzo0MjozMSw4MDMgSU5GTyAgW29yZy5vdmlydC5lbmdpbmUu
Y29yZS51dGlscy5Mb2NhbENvbmZpZ10gKE1TQyBzZXJ2aWNlIHRocmVhZCAxLTQpIFZhbHVlIG9m
IHByb3BlcnR5ICJFTkdJTkVfU1RPUF9JTlRFUlZBTCIgaXMgIjEiLgoyMDEzLTA3LTA4IDEzOjQy
OjMxLDgwMyBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnV0aWxzLkxvY2FsQ29uZmlnXSAo
TVNDIHNlcnZpY2UgdGhyZWFkIDEtNCkgVmFsdWUgb2YgcHJvcGVydHkgIkVOR0lORV9TVE9QX1RJ
TUUiIGlzICIxMCIuCjIwMTMtMDctMDggMTM6NDI6MzEsODA0IElORk8gIFtvcmcub3ZpcnQuZW5n
aW5lLmNvcmUudXRpbHMuTG9jYWxDb25maWddIChNU0Mgc2VydmljZSB0aHJlYWQgMS00KSBWYWx1
ZSBvZiBwcm9wZXJ0eSAiRU5HSU5FX1RNUCIgaXMgIi9ob21lL21wZXJpbmEvb3ZpcnQtZW5naW5l
L3Zhci90bXAvb3ZpcnQtZW5naW5lIi4KMjAxMy0wNy0wOCAxMzo0MjozMSw4MDcgSU5GTyAgW29y
Zy5vdmlydC5lbmdpbmUuY29yZS51dGlscy5Mb2NhbENvbmZpZ10gKE1TQyBzZXJ2aWNlIHRocmVh
ZCAxLTQpIFZhbHVlIG9mIHByb3BlcnR5ICJFTkdJTkVfVVNFUiIgaXMgIm92aXJ0Ii4KMjAxMy0w
Ny0wOCAxMzo0MjozMSw4MDggSU5GTyAgW29yZy5vdmlydC5lbmdpbmUuY29yZS51dGlscy5Mb2Nh
bENvbmZpZ10gKE1TQyBzZXJ2aWNlIHRocmVhZCAxLTQpIFZhbHVlIG9mIHByb3BlcnR5ICJFTkdJ
TkVfVVNSIiBpcyAiL2hvbWUvbXBlcmluYS9vdmlydC1lbmdpbmUvc2hhcmUvb3ZpcnQtZW5naW5l
Ii4KMjAxMy0wNy0wOCAxMzo0MjozMSw4MDkgSU5GTyAgW29yZy5vdmlydC5lbmdpbmUuY29yZS51
dGlscy5Mb2NhbENvbmZpZ10gKE1TQyBzZXJ2aWNlIHRocmVhZCAxLTQpIFZhbHVlIG9mIHByb3Bl
cnR5ICJFTkdJTkVfVkFSIiBpcyAiL2hvbWUvbXBlcmluYS9vdmlydC1lbmdpbmUvdmFyL2xpYi9v
dmlydC1lbmdpbmUiLgoyMDEzLTA3LTA4IDEzOjQyOjMxLDgwOSBJTkZPICBbb3JnLm92aXJ0LmVu
Z2luZS5jb3JlLnV0aWxzLkxvY2FsQ29uZmlnXSAoTVNDIHNlcnZpY2UgdGhyZWFkIDEtNCkgVmFs
dWUgb2YgcHJvcGVydHkgIkVOR0lORV9WRVJCT1NFX0dDIiBpcyAiZmFsc2UiLgoyMDEzLTA3LTA4
IDEzOjQyOjMxLDgxMSBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnV0aWxzLkxvY2FsQ29u
ZmlnXSAoTVNDIHNlcnZpY2UgdGhyZWFkIDEtNCkgVmFsdWUgb2YgcHJvcGVydHkgIkpBVkFfSE9N
RSIgaXMgIi91c3IvbGliL2p2bS9qcmUtMS43LjAtb3Blbmpkay54ODZfNjQiLgoyMDEzLTA3LTA4
IDEzOjQyOjMxLDgxMSBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnV0aWxzLkxvY2FsQ29u
ZmlnXSAoTVNDIHNlcnZpY2UgdGhyZWFkIDEtNCkgVmFsdWUgb2YgcHJvcGVydHkgIkpCT1NTX0hP
TUUiIGlzICIvdXNyL3NoYXJlL2pib3NzLWFzIi4KMjAxMy0wNy0wOCAxMzo0MjozMSw4MTMgSU5G
TyAgW29yZy5vdmlydC5lbmdpbmUuY29yZS51dGlscy5Mb2NhbENvbmZpZ10gKE1TQyBzZXJ2aWNl
IHRocmVhZCAxLTQpIFZhbHVlIG9mIHByb3BlcnR5ICJTRU5TSVRJVkVfS0VZUyIgaXMgIixFTkdJ
TkVfREJfUEFTU1dPUkQsRU5HSU5FX1BLSV9UUlVTVF9TVE9SRV9QQVNTV09SRCxFTkdJTkVfUEtJ
X0VOR0lORV9TVE9SRV9QQVNTV09SRCIuCjIwMTMtMDctMDggMTM6NDI6MzEsODE0IElORk8gIFtv
cmcub3ZpcnQuZW5naW5lLmNvcmUudXRpbHMuTG9jYWxDb25maWddIChNU0Mgc2VydmljZSB0aHJl
YWQgMS00KSBWYWx1ZSBvZiBwcm9wZXJ0eSAiU1BJQ0VfRElSIiBpcyAiL3Vzci9zaGFyZS9zcGlj
ZSIuCjIwMTMtMDctMDggMTM6NDI6MzIsMDQ4IElORk8gIFtvcmcub3ZpcnQuZW5naW5lLmNvcmUu
YmxsLkJhY2tlbmRdIChNU0Mgc2VydmljZSB0aHJlYWQgMS00KSBTdGFydCBpbml0aWFsaXppbmcg
QmFja2VuZAoyMDEzLTA3LTA4IDEzOjQyOjMyLDMzNCBFUlJPUiBbb3JnLm92aXJ0LmVuZ2luZS5j
b3JlLmRhbC5kYmJyb2tlci5nZW5lcmljLkRCQ29uZmlnVXRpbHNdIChNU0Mgc2VydmljZSB0aHJl
YWQgMS00KSBGYWlsZWQgdG8gZGVjcnlwdCB2YWx1ZSBmb3IgcHJvcGVydHkgQXR0ZXN0YXRpb25U
cnVzdHN0b3JlUGFzcyB3aWxsIGJlIHVzZWQgZW5jcnlwdGVkIHZhbHVlOiBqYXZheC5jcnlwdG8u
QmFkUGFkZGluZ0V4Y2VwdGlvbjogRGF0YSBtdXN0IHN0YXJ0IHdpdGggemVybwoJYXQgc3VuLnNl
Y3VyaXR5LnJzYS5SU0FQYWRkaW5nLnVucGFkVjE1KFJTQVBhZGRpbmcuamF2YTozMjUpIFtydC5q
YXI6MS43LjBfMjVdCglhdCBzdW4uc2VjdXJpdHkucnNhLlJTQVBhZGRpbmcudW5wYWQoUlNBUGFk
ZGluZy5qYXZhOjI3MikgW3J0LmphcjoxLjcuMF8yNV0KCWF0IGNvbS5zdW4uY3J5cHRvLnByb3Zp
ZGVyLlJTQUNpcGhlci5kb0ZpbmFsKFJTQUNpcGhlci5qYXZhOjM1NikKCWF0IGNvbS5zdW4uY3J5
cHRvLnByb3ZpZGVyLlJTQUNpcGhlci5lbmdpbmVEb0ZpbmFsKFJTQUNpcGhlci5qYXZhOjM4MikK
CWF0IGphdmF4LmNyeXB0by5DaXBoZXIuZG9GaW5hbChDaXBoZXIuamF2YToxOTIyKSBbamNlLmph
cjoxLjcuMF8yNV0KCWF0IG9yZy5vdmlydC5lbmdpbmUuY29yZS51dGlscy5jcnlwdC5FbmdpbmVF
bmNyeXB0aW9uVXRpbHMuZGVjcnlwdChFbmdpbmVFbmNyeXB0aW9uVXRpbHMuamF2YToxNjkpIFt1
dGlscy5qYXI6XQoJYXQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmRhbC5kYmJyb2tlci5nZW5lcmlj
LkRCQ29uZmlnVXRpbHMuR2V0VmFsdWUoREJDb25maWdVdGlscy5qYXZhOjEwOSkgW2RhbC5qYXI6
XQoJYXQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmRhbC5kYmJyb2tlci5nZW5lcmljLkRCQ29uZmln
VXRpbHMudXBkYXRlT3B0aW9uKERCQ29uZmlnVXRpbHMuamF2YToyNzcpIFtkYWwuamFyOl0KCWF0
IG9yZy5vdmlydC5lbmdpbmUuY29yZS5kYWwuZGJicm9rZXIuZ2VuZXJpYy5EQkNvbmZpZ1V0aWxz
LnJlZnJlc2hWZGNPcHRpb25DYWNoZShEQkNvbmZpZ1V0aWxzLmphdmE6MzYpIFtkYWwuamFyOl0K
CWF0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5kYWwuZGJicm9rZXIuZ2VuZXJpYy5EQkNvbmZpZ1V0
aWxzLjxpbml0PihEQkNvbmZpZ1V0aWxzLmphdmE6MTY4KSBbZGFsLmphcjpdCglhdCBvcmcub3Zp
cnQuZW5naW5lLmNvcmUuZGFsLmRiYnJva2VyLmdlbmVyaWMuREJDb25maWdVdGlscy48aW5pdD4o
REJDb25maWdVdGlscy5qYXZhOjE1NCkgW2RhbC5qYXI6XQoJYXQgb3JnLm92aXJ0LmVuZ2luZS5j
b3JlLmJsbC5CYWNrZW5kLkluaXRpYWxpemUoQmFja2VuZC5qYXZhOjE4MikgW2JsbC5qYXI6XQoJ
YXQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmJsbC5CYWNrZW5kLmNyZWF0ZShCYWNrZW5kLmphdmE6
MTI5KSBbYmxsLmphcjpdCglhdCBzdW4ucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwu
aW52b2tlMChOYXRpdmUgTWV0aG9kKSBbcnQuamFyOjEuNy4wXzI1XQoJYXQgc3VuLnJlZmxlY3Qu
TmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShOYXRpdmVNZXRob2RBY2Nlc3NvckltcGwu
amF2YTo1NykgW3J0LmphcjoxLjcuMF8yNV0KCWF0IHN1bi5yZWZsZWN0LkRlbGVnYXRpbmdNZXRo
b2RBY2Nlc3NvckltcGwuaW52b2tlKERlbGVnYXRpbmdNZXRob2RBY2Nlc3NvckltcGwuamF2YTo0
MykgW3J0LmphcjoxLjcuMF8yNV0KCWF0IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZC5pbnZva2Uo
TWV0aG9kLmphdmE6NjA2KSBbcnQuamFyOjEuNy4wXzI1XQoJYXQgb3JnLmpib3NzLmFzLmVlLmNv
bXBvbmVudC5NYW5hZ2VkUmVmZXJlbmNlTGlmZWN5Y2xlTWV0aG9kSW50ZXJjZXB0b3JGYWN0b3J5
JE1hbmFnZWRSZWZlcmVuY2VMaWZlY3ljbGVNZXRob2RJbnRlcmNlcHRvci5wcm9jZXNzSW52b2Nh
dGlvbihNYW5hZ2VkUmVmZXJlbmNlTGlmZWN5Y2xlTWV0aG9kSW50ZXJjZXB0b3JGYWN0b3J5Lmph
dmE6MTMwKSBbamJvc3MtYXMtZWUtNy4xLjEuRmluYWwuamFyOjcuMS4xLkZpbmFsXQoJYXQgb3Jn
Lmpib3NzLmludm9jYXRpb24uSW50ZXJjZXB0b3JDb250ZXh0LnByb2NlZWQoSW50ZXJjZXB0b3JD
b250ZXh0LmphdmE6Mjg4KSBbamJvc3MtaW52b2NhdGlvbi5qYXI6MS4xLjEuRmluYWxdCglhdCBv
cmcuamJvc3MuaW52b2NhdGlvbi5XZWF2ZWRJbnRlcmNlcHRvci5wcm9jZXNzSW52b2NhdGlvbihX
ZWF2ZWRJbnRlcmNlcHRvci5qYXZhOjUzKSBbamJvc3MtaW52b2NhdGlvbi5qYXI6MS4xLjEuRmlu
YWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5JbnRlcmNlcHRvckNvbnRleHQucHJvY2VlZChJ
bnRlcmNlcHRvckNvbnRleHQuamF2YToyODgpIFtqYm9zcy1pbnZvY2F0aW9uLmphcjoxLjEuMS5G
aW5hbF0KCWF0IG9yZy5qYm9zcy5hcy5lZS5jb21wb25lbnQuTWFuYWdlZFJlZmVyZW5jZUludGVy
Y2VwdG9yRmFjdG9yeSRNYW5hZ2VkUmVmZXJlbmNlSW50ZXJjZXB0b3IucHJvY2Vzc0ludm9jYXRp
b24oTWFuYWdlZFJlZmVyZW5jZUludGVyY2VwdG9yRmFjdG9yeS5qYXZhOjk1KSBbamJvc3MtYXMt
ZWUtNy4xLjEuRmluYWwuamFyOjcuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmludm9jYXRpb24u
SW50ZXJjZXB0b3JDb250ZXh0LnByb2NlZWQoSW50ZXJjZXB0b3JDb250ZXh0LmphdmE6Mjg4KSBb
amJvc3MtaW52b2NhdGlvbi5qYXI6MS4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuYXMuZWUuY29t
cG9uZW50Lk1hbmFnZWRSZWZlcmVuY2VJbnRlcmNlcHRvckZhY3RvcnkkTWFuYWdlZFJlZmVyZW5j
ZUludGVyY2VwdG9yLnByb2Nlc3NJbnZvY2F0aW9uKE1hbmFnZWRSZWZlcmVuY2VJbnRlcmNlcHRv
ckZhY3RvcnkuamF2YTo5NSkgW2pib3NzLWFzLWVlLTcuMS4xLkZpbmFsLmphcjo3LjEuMS5GaW5h
bF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLkludGVyY2VwdG9yQ29udGV4dC5wcm9jZWVkKElu
dGVyY2VwdG9yQ29udGV4dC5qYXZhOjI4OCkgW2pib3NzLWludm9jYXRpb24uamFyOjEuMS4xLkZp
bmFsXQoJYXQgb3JnLmpib3NzLmludm9jYXRpb24uV2VhdmVkSW50ZXJjZXB0b3IucHJvY2Vzc0lu
dm9jYXRpb24oV2VhdmVkSW50ZXJjZXB0b3IuamF2YTo1MykgW2pib3NzLWludm9jYXRpb24uamFy
OjEuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmludm9jYXRpb24uSW50ZXJjZXB0b3JDb250ZXh0
LnByb2NlZWQoSW50ZXJjZXB0b3JDb250ZXh0LmphdmE6Mjg4KSBbamJvc3MtaW52b2NhdGlvbi5q
YXI6MS4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuYXMuZWUuY29tcG9uZW50Lk5hbWVzcGFjZUNv
bnRleHRJbnRlcmNlcHRvci5wcm9jZXNzSW52b2NhdGlvbihOYW1lc3BhY2VDb250ZXh0SW50ZXJj
ZXB0b3IuamF2YTo1MCkgW2pib3NzLWFzLWVlLTcuMS4xLkZpbmFsLmphcjo3LjEuMS5GaW5hbF0K
CWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLkludGVyY2VwdG9yQ29udGV4dC5wcm9jZWVkKEludGVy
Y2VwdG9yQ29udGV4dC5qYXZhOjI4OCkgW2pib3NzLWludm9jYXRpb24uamFyOjEuMS4xLkZpbmFs
XQoJYXQgb3JnLmpib3NzLmFzLmVqYjMudHguQ01UVHhJbnRlcmNlcHRvci5pbnZva2VJbk91clR4
KENNVFR4SW50ZXJjZXB0b3IuamF2YToyMjgpIFtqYm9zcy1hcy1lamIzLTcuMS4xLkZpbmFsLmph
cjo3LjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5hcy5lamIzLnR4LkNNVFR4SW50ZXJjZXB0b3Iu
cmVxdWlyZXNOZXcoQ01UVHhJbnRlcmNlcHRvci5qYXZhOjMzMykgW2pib3NzLWFzLWVqYjMtNy4x
LjEuRmluYWwuamFyOjcuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmFzLmVqYjMudHguU2luZ2xl
dG9uTGlmZWN5Y2xlQ01UVHhJbnRlcmNlcHRvci5wcm9jZXNzSW52b2NhdGlvbihTaW5nbGV0b25M
aWZlY3ljbGVDTVRUeEludGVyY2VwdG9yLmphdmE6NTYpIFtqYm9zcy1hcy1lamIzLTcuMS4xLkZp
bmFsLmphcjo3LjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLkludGVyY2VwdG9y
Q29udGV4dC5wcm9jZWVkKEludGVyY2VwdG9yQ29udGV4dC5qYXZhOjI4OCkgW2pib3NzLWludm9j
YXRpb24uamFyOjEuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmFzLmVqYjMuY29tcG9uZW50Lmlu
dGVyY2VwdG9ycy5DdXJyZW50SW52b2NhdGlvbkNvbnRleHRJbnRlcmNlcHRvci5wcm9jZXNzSW52
b2NhdGlvbihDdXJyZW50SW52b2NhdGlvbkNvbnRleHRJbnRlcmNlcHRvci5qYXZhOjQxKSBbamJv
c3MtYXMtZWpiMy03LjEuMS5GaW5hbC5qYXI6Ny4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuaW52
b2NhdGlvbi5JbnRlcmNlcHRvckNvbnRleHQucHJvY2VlZChJbnRlcmNlcHRvckNvbnRleHQuamF2
YToyODgpIFtqYm9zcy1pbnZvY2F0aW9uLmphcjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5h
cy5lZS5jb21wb25lbnQuVENDTEludGVyY2VwdG9yLnByb2Nlc3NJbnZvY2F0aW9uKFRDQ0xJbnRl
cmNlcHRvci5qYXZhOjQ1KSBbamJvc3MtYXMtZWUtNy4xLjEuRmluYWwuamFyOjcuMS4xLkZpbmFs
XQoJYXQgb3JnLmpib3NzLmludm9jYXRpb24uSW50ZXJjZXB0b3JDb250ZXh0LnByb2NlZWQoSW50
ZXJjZXB0b3JDb250ZXh0LmphdmE6Mjg4KSBbamJvc3MtaW52b2NhdGlvbi5qYXI6MS4xLjEuRmlu
YWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5DaGFpbmVkSW50ZXJjZXB0b3IucHJvY2Vzc0lu
dm9jYXRpb24oQ2hhaW5lZEludGVyY2VwdG9yLmphdmE6NjEpIFtqYm9zcy1pbnZvY2F0aW9uLmph
cjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5hcy5lZS5jb21wb25lbnQuQmFzaWNDb21wb25l
bnQuY29uc3RydWN0Q29tcG9uZW50SW5zdGFuY2UoQmFzaWNDb21wb25lbnQuamF2YToxNjEpIFtq
Ym9zcy1hcy1lZS03LjEuMS5GaW5hbC5qYXI6Ny4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuYXMu
ZWUuY29tcG9uZW50LkJhc2ljQ29tcG9uZW50LmNyZWF0ZUluc3RhbmNlKEJhc2ljQ29tcG9uZW50
LmphdmE6ODUpIFtqYm9zcy1hcy1lZS03LjEuMS5GaW5hbC5qYXI6Ny4xLjEuRmluYWxdCglhdCBv
cmcuamJvc3MuYXMuZWpiMy5jb21wb25lbnQuc2luZ2xldG9uLlNpbmdsZXRvbkNvbXBvbmVudC5n
ZXRDb21wb25lbnRJbnN0YW5jZShTaW5nbGV0b25Db21wb25lbnQuamF2YToxMTYpIFtqYm9zcy1h
cy1lamIzLTcuMS4xLkZpbmFsLmphcjo3LjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5hcy5lamIz
LmNvbXBvbmVudC5zaW5nbGV0b24uU2luZ2xldG9uQ29tcG9uZW50LnN0YXJ0KFNpbmdsZXRvbkNv
bXBvbmVudC5qYXZhOjEzMCkgW2pib3NzLWFzLWVqYjMtNy4xLjEuRmluYWwuamFyOjcuMS4xLkZp
bmFsXQoJYXQgb3JnLmpib3NzLmFzLmVlLmNvbXBvbmVudC5Db21wb25lbnRTdGFydFNlcnZpY2Uu
c3RhcnQoQ29tcG9uZW50U3RhcnRTZXJ2aWNlLmphdmE6NDQpIFtqYm9zcy1hcy1lZS03LjEuMS5G
aW5hbC5qYXI6Ny4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MubXNjLnNlcnZpY2UuU2VydmljZUNv
bnRyb2xsZXJJbXBsJFN0YXJ0VGFzay5zdGFydFNlcnZpY2UoU2VydmljZUNvbnRyb2xsZXJJbXBs
LmphdmE6MTgxMSkKCWF0IG9yZy5qYm9zcy5tc2Muc2VydmljZS5TZXJ2aWNlQ29udHJvbGxlcklt
cGwkU3RhcnRUYXNrLnJ1bihTZXJ2aWNlQ29udHJvbGxlckltcGwuamF2YToxNzQ2KQoJYXQgamF2
YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29s
RXhlY3V0b3IuamF2YToxMTQ1KSBbcnQuamFyOjEuNy4wXzI1XQoJYXQgamF2YS51dGlsLmNvbmN1
cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmph
dmE6NjE1KSBbcnQuamFyOjEuNy4wXzI1XQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFk
LmphdmE6NzI0KSBbcnQuamFyOjEuNy4wXzI1XQoKMjAxMy0wNy0wOCAxMzo0MjozMiwzNDggRVJS
T1IgW29yZy5vdmlydC5lbmdpbmUuY29yZS5kYWwuZGJicm9rZXIuZ2VuZXJpYy5EQkNvbmZpZ1V0
aWxzXSAoTVNDIHNlcnZpY2UgdGhyZWFkIDEtNCkgQ291bGQgbm90IHBhcnNlIG9wdGlvbiBBdXRv
UmVjb3ZlcnlBbGxvd2VkVHlwZXMgdmFsdWUuCjIwMTMtMDctMDggMTM6NDI6MzIsMzk4IElORk8g
IFtvcmcub3ZpcnQuZW5naW5lLmNvcmUuYmxsLkJhY2tlbmRdIChNU0Mgc2VydmljZSB0aHJlYWQg
MS00KSBSdW5uaW5nIG92aXJ0LWVuZ2luZSAzLjMuMF9tYXN0ZXIKMjAxMy0wNy0wOCAxMzo0Mjoz
Miw0MDAgSU5GTyAgW29yZy5vdmlydC5lbmdpbmUuY29yZS5ibGwuQ3B1RmxhZ3NNYW5hZ2VySGFu
ZGxlcl0gKE1TQyBzZXJ2aWNlIHRocmVhZCAxLTQpIFN0YXJ0IGluaXRpYWxpemluZyBkaWN0aW9u
YXJpZXMKMjAxMy0wNy0wOCAxMzo0MjozMiw0MDMgSU5GTyAgW29yZy5vdmlydC5lbmdpbmUuY29y
ZS5ibGwuQ3B1RmxhZ3NNYW5hZ2VySGFuZGxlcl0gKE1TQyBzZXJ2aWNlIHRocmVhZCAxLTQpIEZp
bmlzaGVkIGluaXRpYWxpemluZyBkaWN0aW9uYXJpZXMKMjAxMy0wNy0wOCAxMzo0MjozMiw0MDUg
SU5GTyAgW29yZy5vdmlydC5lbmdpbmUuY29yZS5ibGwuQXVkaXRMb2dDbGVhbnVwTWFuYWdlcl0g
KE1TQyBzZXJ2aWNlIHRocmVhZCAxLTQpIFN0YXJ0IGluaXRpYWxpemluZyBBdWRpdExvZ0NsZWFu
dXBNYW5hZ2VyCjIwMTMtMDctMDggMTM6NDI6MzIsNDA1IElORk8gIFtvcmcub3ZpcnQuZW5naW5l
LmNvcmUuYmxsLkF1ZGl0TG9nQ2xlYW51cE1hbmFnZXJdIChNU0Mgc2VydmljZSB0aHJlYWQgMS00
KSBTZXR0aW5nIGF1ZGl0IGNsZWFudXAgbWFuYWdlciB0byBydW4gYXQ6IDM1IDM1IDMgKiAqID8K
MjAxMy0wNy0wOCAxMzo0MjozMiw0MjggSU5GTyAgW29yZy5vdmlydC5lbmdpbmUuY29yZS5ibGwu
QXVkaXRMb2dDbGVhbnVwTWFuYWdlcl0gKE1TQyBzZXJ2aWNlIHRocmVhZCAxLTQpIEZpbmlzaGVk
IGluaXRpYWxpemluZyBBdWRpdExvZ0NsZWFudXBNYW5hZ2VyCjIwMTMtMDctMDggMTM6NDI6MzIs
NDM3IElORk8gIFtvcmcub3ZpcnQuZW5naW5lLmNvcmUuYmxsLlRhZ3NEaXJlY3Rvcl0gKE1TQyBz
ZXJ2aWNlIHRocmVhZCAxLTQpIFN0YXJ0IGluaXRpYWxpemluZyBUYWdzRGlyZWN0b3IKMjAxMy0w
Ny0wOCAxMzo0MjozMiw0NDYgSU5GTyAgW29yZy5vdmlydC5lbmdpbmUuY29yZS5ibGwuVGFnc0Rp
cmVjdG9yXSAoTVNDIHNlcnZpY2UgdGhyZWFkIDEtNCkgVGFnIHJvb3QgYWRkZWQgdG8gdHJlZQoy
MDEzLTA3LTA4IDEzOjQyOjMyLDQ2NiBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmJsbC5U
YWdzRGlyZWN0b3JdIChNU0Mgc2VydmljZSB0aHJlYWQgMS00KSBGaW5pc2hlZCBpbml0aWFsaXpp
bmcgVGFnc0RpcmVjdG9yCjIwMTMtMDctMDggMTM6NDI6MzIsNDcxIElORk8gIFtvcmcub3ZpcnQu
ZW5naW5lLmNvcmUuYmxsLklzb0RvbWFpbkxpc3RTeW5jcm9uaXplcl0gKE1TQyBzZXJ2aWNlIHRo
cmVhZCAxLTQpIFN0YXJ0IGluaXRpYWxpemluZyBJc29Eb21haW5MaXN0U3luY3Jvbml6ZXIKMjAx
My0wNy0wOCAxMzo0MjozMiw0NzUgSU5GTyAgW29yZy5vdmlydC5lbmdpbmUuY29yZS5ibGwuSXNv
RG9tYWluTGlzdFN5bmNyb25pemVyXSAoTVNDIHNlcnZpY2UgdGhyZWFkIDEtNCkgRmluaXNoZWQg
aW5pdGlhbGl6aW5nIElzb0RvbWFpbkxpc3RTeW5jcm9uaXplcgoyMDEzLTA3LTA4IDEzOjQyOjMy
LDU0NCBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmJsbC5CYWNrZW5kXSAoTVNDIHNlcnZp
Y2UgdGhyZWFkIDEtNCkgQ29tcGxldGVkIGluaXRpYWxpemluZyBoYW5kbGVycwoyMDEzLTA3LTA4
IDEzOjQyOjMyLDU0NSBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnV0aWxzLkVycm9yVHJh
bnNsYXRvckltcGxdIChNU0Mgc2VydmljZSB0aHJlYWQgMS00KSBTdGFydCBpbml0aWFsaXppbmcg
RXJyb3JUcmFuc2xhdG9ySW1wbAoyMDEzLTA3LTA4IDEzOjQyOjMyLDU0NiBFUlJPUiBbb3JnLm92
aXJ0LmVuZ2luZS5jb3JlLnV0aWxzLkVycm9yVHJhbnNsYXRvckltcGxdIChNU0Mgc2VydmljZSB0
aHJlYWQgMS00KSBGaWxlOiBidW5kbGVzL0FwcEVycm9ycyBjb3VsZCBub3QgYmUgbG9hZGVkOiBq
YXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOiBDYW4ndCBmaW5kIGJ1bmRsZSBmb3Ig
YmFzZSBuYW1lIGJ1bmRsZXMvQXBwRXJyb3JzLCBsb2NhbGUgZW5fVVMKMjAxMy0wNy0wOCAxMzo0
MjozMiw1NDcgRVJST1IgW29yZy5vdmlydC5lbmdpbmUuY29yZS51dGlscy5FcnJvclRyYW5zbGF0
b3JJbXBsXSAoTVNDIHNlcnZpY2UgdGhyZWFkIDEtNCkgRmlsZTogYnVuZGxlcy9WZHNtRXJyb3Jz
IGNvdWxkIG5vdCBiZSBsb2FkZWQ6IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb246
IENhbid0IGZpbmQgYnVuZGxlIGZvciBiYXNlIG5hbWUgYnVuZGxlcy9WZHNtRXJyb3JzLCBsb2Nh
bGUgZW5fVVMKMjAxMy0wNy0wOCAxMzo0MjozMiw1NDggSU5GTyAgW29yZy5vdmlydC5lbmdpbmUu
Y29yZS51dGlscy5FcnJvclRyYW5zbGF0b3JJbXBsXSAoTVNDIHNlcnZpY2UgdGhyZWFkIDEtNCkg
RmluaXNoZWQgaW5pdGlhbGl6aW5nIEVycm9yVHJhbnNsYXRvckltcGwKMjAxMy0wNy0wOCAxMzo0
MjozMiw1NDggSU5GTyAgW29yZy5vdmlydC5lbmdpbmUuY29yZS51dGlscy5FcnJvclRyYW5zbGF0
b3JJbXBsXSAoTVNDIHNlcnZpY2UgdGhyZWFkIDEtNCkgU3RhcnQgaW5pdGlhbGl6aW5nIEVycm9y
VHJhbnNsYXRvckltcGwKMjAxMy0wNy0wOCAxMzo0MjozMiw1NDkgRVJST1IgW29yZy5vdmlydC5l
bmdpbmUuY29yZS51dGlscy5FcnJvclRyYW5zbGF0b3JJbXBsXSAoTVNDIHNlcnZpY2UgdGhyZWFk
IDEtNCkgRmlsZTogYnVuZGxlcy9WZHNtRXJyb3JzIGNvdWxkIG5vdCBiZSBsb2FkZWQ6IGphdmEu
dXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb246IENhbid0IGZpbmQgYnVuZGxlIGZvciBiYXNl
IG5hbWUgYnVuZGxlcy9WZHNtRXJyb3JzLCBsb2NhbGUgZW5fVVMKMjAxMy0wNy0wOCAxMzo0Mjoz
Miw1NDkgSU5GTyAgW29yZy5vdmlydC5lbmdpbmUuY29yZS51dGlscy5FcnJvclRyYW5zbGF0b3JJ
bXBsXSAoTVNDIHNlcnZpY2UgdGhyZWFkIDEtNCkgRmluaXNoZWQgaW5pdGlhbGl6aW5nIEVycm9y
VHJhbnNsYXRvckltcGwKMjAxMy0wNy0wOCAxMzo0MjozMiw1NTAgSU5GTyAgW29yZy5vdmlydC5l
bmdpbmUuY29yZS5ibGwuQmFja2VuZF0gKE1TQyBzZXJ2aWNlIHRocmVhZCAxLTQpIE1hcmsgaW5j
b21wbGV0ZSBqb2JzIGFzIFVOS05PV04KMjAxMy0wNy0wOCAxMzo0MjozMiw1NzUgSU5GTyAgW29y
Zy5vdmlydC5lbmdpbmUuY29yZS5ibGwuam9iLkpvYlJlcG9zaXRvcnlDbGVhbnVwTWFuYWdlcl0g
KE1TQyBzZXJ2aWNlIHRocmVhZCAxLTQpIFN0YXJ0IGluaXRpYWxpemluZyBKb2JSZXBvc2l0b3J5
Q2xlYW51cE1hbmFnZXIKMjAxMy0wNy0wOCAxMzo0MjozMiw1NzYgSU5GTyAgW29yZy5vdmlydC5l
bmdpbmUuY29yZS5ibGwuam9iLkpvYlJlcG9zaXRvcnlDbGVhbnVwTWFuYWdlcl0gKE1TQyBzZXJ2
aWNlIHRocmVhZCAxLTQpIEZpbmlzaGVkIGluaXRpYWxpemluZyBKb2JSZXBvc2l0b3J5Q2xlYW51
cE1hbmFnZXIKMjAxMy0wNy0wOCAxMzo0MjozMiw1NzggSU5GTyAgW29yZy5vdmlydC5lbmdpbmUu
Y29yZS5ibGwuQXV0b1JlY292ZXJ5TWFuYWdlcl0gKE1TQyBzZXJ2aWNlIHRocmVhZCAxLTQpIFN0
YXJ0IGluaXRpYWxpemluZyBBdXRvUmVjb3ZlcnlNYW5hZ2VyCjIwMTMtMDctMDggMTM6NDI6MzIs
NTgxIElORk8gIFtvcmcub3ZpcnQuZW5naW5lLmNvcmUuYmxsLkF1dG9SZWNvdmVyeU1hbmFnZXJd
IChNU0Mgc2VydmljZSB0aHJlYWQgMS00KSBGaW5pc2hlZCBpbml0aWFsaXppbmcgQXV0b1JlY292
ZXJ5TWFuYWdlcgoyMDEzLTA3LTA4IDEzOjQyOjMyLDU5NyBJTkZPICBbb3JnLm92aXJ0LmVuZ2lu
ZS5jb3JlLmRhbC5qb2IuRXhlY3V0aW9uTWVzc2FnZURpcmVjdG9yXSAoTVNDIHNlcnZpY2UgdGhy
ZWFkIDEtNCkgU3RhcnQgaW5pdGlhbGl6aW5nIEV4ZWN1dGlvbk1lc3NhZ2VEaXJlY3RvcgoyMDEz
LTA3LTA4IDEzOjQyOjMyLDYwMSBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmRhbC5qb2Iu
RXhlY3V0aW9uTWVzc2FnZURpcmVjdG9yXSAoTVNDIHNlcnZpY2UgdGhyZWFkIDEtNCkgRmluaXNo
ZWQgaW5pdGlhbGl6aW5nIEV4ZWN1dGlvbk1lc3NhZ2VEaXJlY3RvcgoyMDEzLTA3LTA4IDEzOjQy
OjMyLDYxNCBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnV0aWxzLm9zaW5mby5Pc0luZm9Q
cmVmZXJlbmNlc0xvYWRlcl0gKE1TQyBzZXJ2aWNlIHRocmVhZCAxLTQpIExvYWRlZCBmaWxlIC9o
b21lL21wZXJpbmEvb3ZpcnQtZW5naW5lL2V0Yy9vdmlydC1lbmdpbmUvb3NpbmZvLmNvbmYuZC8w
MC1kZWZhdWx0cy5wcm9wZXJ0aWVzCjIwMTMtMDctMDggMTM6NDI6MzIsNjU0IElORk8gIFtvcmcu
b3ZpcnQuZW5naW5lLmNvcmUuYmxsLmFkYnJva2VyLlVzZXJzRG9tYWluc0NhY2hlTWFuYWdlclNl
cnZpY2VdIChNU0Mgc2VydmljZSB0aHJlYWQgMS02KSBTdGFydCBpbml0aWFsaXppbmcgVXNlcnNE
b21haW5zQ2FjaGVNYW5hZ2VyU2VydmljZQoyMDEzLTA3LTA4IDEzOjQyOjMyLDY1NyBJTkZPICBb
b3JnLm92aXJ0LmVuZ2luZS5jb3JlLnZkc2Jyb2tlci5SZXNvdXJjZU1hbmFnZXJdIChNU0Mgc2Vy
dmljZSB0aHJlYWQgMS04KSBTdGFydCBpbml0aWFsaXppbmcgUmVzb3VyY2VNYW5hZ2VyCjIwMTMt
MDctMDggMTM6NDI6MzIsNjY3IElORk8gIFtvcmcub3ZpcnQuZW5naW5lLmNvcmUuYmxsLkRiVXNl
ckNhY2hlTWFuYWdlcl0gKE1TQyBzZXJ2aWNlIHRocmVhZCAxLTYpIFN0YXJ0IGluaXRpYWxpemlu
ZyBEYlVzZXJDYWNoZU1hbmFnZXIKMjAxMy0wNy0wOCAxMzo0MjozMiw2NjkgSU5GTyAgW29yZy5v
dmlydC5lbmdpbmUuY29yZS5ibGwuRGJVc2VyQ2FjaGVNYW5hZ2VyXSAoTVNDIHNlcnZpY2UgdGhy
ZWFkIDEtNikgRmluaXNoZWQgaW5pdGlhbGl6aW5nIERiVXNlckNhY2hlTWFuYWdlcgoyMDEzLTA3
LTA4IDEzOjQyOjMyLDY3MSBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmJsbC5hZGJyb2tl
ci5Vc2Vyc0RvbWFpbnNDYWNoZU1hbmFnZXJTZXJ2aWNlXSAoTVNDIHNlcnZpY2UgdGhyZWFkIDEt
NikgRmluaXNoZWQgaW5pdGlhbGl6aW5nIFVzZXJzRG9tYWluc0NhY2hlTWFuYWdlclNlcnZpY2UK
MjAxMy0wNy0wOCAxMzo0MjozMiw2OTQgSU5GTyAgW29yZy5vdmlydC5lbmdpbmUuY29yZS5ibGwu
RGJVc2VyQ2FjaGVNYW5hZ2VyXSAoRGVmYXVsdFF1YXJ0elNjaGVkdWxlcl9Xb3JrZXItMSkgU3Rh
cnQgcmVmcmVzaGluZyBhbGwgdXNlcnMgZGF0YQoyMDEzLTA3LTA4IDEzOjQyOjMyLDc2NiBJTkZP
ICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnZkc2Jyb2tlci5SZXNvdXJjZU1hbmFnZXJdIChNU0Mg
c2VydmljZSB0aHJlYWQgMS04KSBGaW5pc2hlZCBpbml0aWFsaXppbmcgUmVzb3VyY2VNYW5hZ2Vy
CjIwMTMtMDctMDggMTM6NDI6MzIsNzc0IElORk8gIFtvcmcub3ZpcnQuZW5naW5lLmNvcmUuYmxs
LkFzeW5jVGFza01hbmFnZXJdIChNU0Mgc2VydmljZSB0aHJlYWQgMS04KSBJbml0aWFsaXphdGlv
biBvZiBBc3luY1Rhc2tNYW5hZ2VyIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkuCjIwMTMtMDctMDgg
MTM6NDI6MzIsNzgwIElORk8gIFtvcmcub3ZpcnQuZW5naW5lLmNvcmUuYmxsLk92ZkRhdGFVcGRh
dGVyXSAoTVNDIHNlcnZpY2UgdGhyZWFkIDEtOCkgSW5pdGlhbGl6YXRpb24gb2YgT3ZmRGF0YVVw
ZGF0ZXIgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4KMjAxMy0wNy0wOCAxMzo0MjozMiw3ODIgSU5G
TyAgW29yZy5vdmlydC5lbmdpbmUuY29yZS5ibGwuc2NoZWR1bGluZy5WZHNMb2FkQmFsYW5jZXJd
IChNU0Mgc2VydmljZSB0aHJlYWQgMS04KSBTdGFydCBzY2hlZHVsaW5nIHRvIGVuYWJsZSB2ZHMg
bG9hZCBiYWxhbmNlcgoyMDEzLTA3LTA4IDEzOjQyOjMyLDc4MyBJTkZPICBbb3JnLm92aXJ0LmVu
Z2luZS5jb3JlLmJsbC5zY2hlZHVsaW5nLlZkc0xvYWRCYWxhbmNlcl0gKE1TQyBzZXJ2aWNlIHRo
cmVhZCAxLTgpIEZpbmlzaGVkIHNjaGVkdWxpbmcgdG8gZW5hYmxlIHZkcyBsb2FkIGJhbGFuY2Vy
CjIwMTMtMDctMDggMTM6NDI6MzIsNzg3IElORk8gIFtvcmcub3ZpcnQuZW5naW5lLmNvcmUuYmxs
Lm5ldHdvcmsuTWFjUG9vbE1hbmFnZXJdIChwb29sLTYtdGhyZWFkLTEpIFN0YXJ0IGluaXRpYWxp
emluZyBNYWNQb29sTWFuYWdlcgoyMDEzLTA3LTA4IDEzOjQyOjMyLDc5OSBJTkZPICBbb3JnLm92
aXJ0LmVuZ2luZS5jb3JlLmJsbC5Jbml0QmFja2VuZFNlcnZpY2VzT25TdGFydHVwQmVhbl0gKE1T
QyBzZXJ2aWNlIHRocmVhZCAxLTgpIEluaXQgVk0gY3VzdG9tIHByb3BlcnRpZXMgdXRpbGl0aWVz
CjIwMTMtMDctMDggMTM6NDI6MzIsODIwIElORk8gIFtvcmcub3ZpcnQuZW5naW5lLmNvcmUuYmxs
Lm5ldHdvcmsuTWFjUG9vbE1hbmFnZXJdIChwb29sLTYtdGhyZWFkLTEpIEZpbmlzaGVkIGluaXRp
YWxpemluZyBNYWNQb29sTWFuYWdlcgoyMDEzLTA3LTA4IDEzOjQyOjMyLDgyMyBJTkZPICBbb3Jn
Lm92aXJ0LmVuZ2luZS5jb3JlLmJsbC5Jbml0QmFja2VuZFNlcnZpY2VzT25TdGFydHVwQmVhbl0g
KE1TQyBzZXJ2aWNlIHRocmVhZCAxLTgpIEluaXQgZGV2aWNlIGN1c3RvbSBwcm9wZXJ0aWVzIHV0
aWxpdGllcwoyMDEzLTA3LTA4IDEzOjQzOjA0LDMxNCBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5j
b3JlLlNwbGFzaFNlcnZsZXRdIChodHRwLS0wLjAuMC4wLTgwODAtMSkgRGV0ZWN0ZWQgTG9jYWxl
OiBlbi1VUwoyMDEzLTA3LTA4IDEzOjQzOjEzLDA3MiBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5j
b3JlLmJsbC5Mb2dpbkFkbWluVXNlckNvbW1hbmRdIChodHRwLS0wLjAuMC4wLTgwODAtMSkgUnVu
bmluZyBjb21tYW5kOiBMb2dpbkFkbWluVXNlckNvbW1hbmQgaW50ZXJuYWw6IGZhbHNlLgoyMDEz
LTA3LTA4IDEzOjQzOjEzLDEzMyBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmRhbC5kYmJy
b2tlci5hdWRpdGxvZ2hhbmRsaW5nLkF1ZGl0TG9nRGlyZWN0b3JdIChodHRwLS0wLjAuMC4wLTgw
ODAtMSkgQXVkaXRMb2dUeXBlOiBVTkFTU0lHTkVEIG5vdCBleGlzdCBpbiBzdHJpbmcgdGFibGUK
MjAxMy0wNy0wOCAxMzo0MzoxMywxMzQgSU5GTyAgW29yZy5vdmlydC5lbmdpbmUuY29yZS5kYWwu
ZGJicm9rZXIuYXVkaXRsb2doYW5kbGluZy5BdWRpdExvZ0RpcmVjdG9yXSAoaHR0cC0tMC4wLjAu
MC04MDgwLTEpIEF1ZGl0TG9nVHlwZTogVVNFUl9GQUlMRURfUkVNT1ZFX1ZNIG5vdCBleGlzdCBp
biBzdHJpbmcgdGFibGUKMjAxMy0wNy0wOCAxMzo0MzoxMywxMzQgSU5GTyAgW29yZy5vdmlydC5l
bmdpbmUuY29yZS5kYWwuZGJicm9rZXIuYXVkaXRsb2doYW5kbGluZy5BdWRpdExvZ0RpcmVjdG9y
XSAoaHR0cC0tMC4wLjAuMC04MDgwLTEpIEF1ZGl0TG9nVHlwZTogVVNFUl9SVU5fVU5MT0NLX0VO
VElUWV9TQ1JJUFQgbm90IGV4aXN0IGluIHN0cmluZyB0YWJsZQoyMDEzLTA3LTA4IDEzOjQzOjEz
LDEzNSBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmRhbC5kYmJyb2tlci5hdWRpdGxvZ2hh
bmRsaW5nLkF1ZGl0TG9nRGlyZWN0b3JdIChodHRwLS0wLjAuMC4wLTgwODAtMSkgQXVkaXRMb2dU
eXBlOiBWRFNfTkVUV09SS19NVFVfRElGRkVSX0ZST01fTE9HSUNBTF9ORVRXT1JLIG5vdCBleGlz
dCBpbiBzdHJpbmcgdGFibGUKMjAxMy0wNy0wOCAxMzo0MzoxMywxMzYgSU5GTyAgW29yZy5vdmly
dC5lbmdpbmUuY29yZS5kYWwuZGJicm9rZXIuYXVkaXRsb2doYW5kbGluZy5BdWRpdExvZ0RpcmVj
dG9yXSAoaHR0cC0tMC4wLjAuMC04MDgwLTEpIEF1ZGl0TG9nVHlwZTogU1RPUkFHRV9BQ1RJVkFU
RV9BU1lOQyBub3QgZXhpc3QgaW4gc3RyaW5nIHRhYmxlCjIwMTMtMDctMDggMTM6NDM6MTMsMTM2
IElORk8gIFtvcmcub3ZpcnQuZW5naW5lLmNvcmUuZGFsLmRiYnJva2VyLmF1ZGl0bG9naGFuZGxp
bmcuQXVkaXRMb2dEaXJlY3Rvcl0gKGh0dHAtLTAuMC4wLjAtODA4MC0xKSBBdWRpdExvZ1R5cGU6
IERXSF9TVE9QUEVEIG5vdCBleGlzdCBpbiBzdHJpbmcgdGFibGUKMjAxMy0wNy0wOCAxMzo0Mzox
MywxMzYgSU5GTyAgW29yZy5vdmlydC5lbmdpbmUuY29yZS5kYWwuZGJicm9rZXIuYXVkaXRsb2do
YW5kbGluZy5BdWRpdExvZ0RpcmVjdG9yXSAoaHR0cC0tMC4wLjAuMC04MDgwLTEpIEF1ZGl0TG9n
VHlwZTogRFdIX1NUQVJURUQgbm90IGV4aXN0IGluIHN0cmluZyB0YWJsZQoyMDEzLTA3LTA4IDEz
OjQzOjEzLDEzNyBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmRhbC5kYmJyb2tlci5hdWRp
dGxvZ2hhbmRsaW5nLkF1ZGl0TG9nRGlyZWN0b3JdIChodHRwLS0wLjAuMC4wLTgwODAtMSkgQXVk
aXRMb2dUeXBlOiBEV0hfRVJST1Igbm90IGV4aXN0IGluIHN0cmluZyB0YWJsZQoyMDEzLTA3LTA4
IDEzOjQzOjEzLDEzNyBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmRhbC5kYmJyb2tlci5h
dWRpdGxvZ2hhbmRsaW5nLkF1ZGl0TG9nRGlyZWN0b3JdIChodHRwLS0wLjAuMC4wLTgwODAtMSkg
QXVkaXRMb2dUeXBlOiBFWFRFUk5BTF9FVkVOVF9OT1JNQUwgbm90IGV4aXN0IGluIHN0cmluZyB0
YWJsZQoyMDEzLTA3LTA4IDEzOjQzOjEzLDEzNyBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3Jl
LmRhbC5kYmJyb2tlci5hdWRpdGxvZ2hhbmRsaW5nLkF1ZGl0TG9nRGlyZWN0b3JdIChodHRwLS0w
LjAuMC4wLTgwODAtMSkgQXVkaXRMb2dUeXBlOiBFWFRFUk5BTF9FVkVOVF9XQVJOSU5HIG5vdCBl
eGlzdCBpbiBzdHJpbmcgdGFibGUKMjAxMy0wNy0wOCAxMzo0MzoxMywxMzcgSU5GTyAgW29yZy5v
dmlydC5lbmdpbmUuY29yZS5kYWwuZGJicm9rZXIuYXVkaXRsb2doYW5kbGluZy5BdWRpdExvZ0Rp
cmVjdG9yXSAoaHR0cC0tMC4wLjAuMC04MDgwLTEpIEF1ZGl0TG9nVHlwZTogRVhURVJOQUxfRVZF
TlRfRVJST1Igbm90IGV4aXN0IGluIHN0cmluZyB0YWJsZQoyMDEzLTA3LTA4IDEzOjQzOjEzLDEz
OCBJTkZPICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmRhbC5kYmJyb2tlci5hdWRpdGxvZ2hhbmRs
aW5nLkF1ZGl0TG9nRGlyZWN0b3JdIChodHRwLS0wLjAuMC4wLTgwODAtMSkgQXVkaXRMb2dUeXBl
OiBFWFRFUk5BTF9BTEVSVCBub3QgZXhpc3QgaW4gc3RyaW5nIHRhYmxlCjIwMTMtMDctMDggMTM6
NDM6MTMsMTQyIFdBUk4gIFtvcmcub3ZpcnQuZW5naW5lLmNvcmUuZGFsLmRiYnJva2VyLmF1ZGl0
bG9naGFuZGxpbmcuQXVkaXRMb2dEaXJlY3Rvcl0gKGh0dHAtLTAuMC4wLjAtODA4MC0xKSBBdWRp
dExvZ1R5cGU6IFVTRVJfRkFJTEVEX1JFTU9WRV9WTSBub3QgaGF2ZSBzZXZlcml0eS4gQXNzdW1l
ZCBOb3JtYWwKMjAxMy0wNy0wOCAxMzo0MzoxMywxNDIgV0FSTiAgW29yZy5vdmlydC5lbmdpbmUu
Y29yZS5kYWwuZGJicm9rZXIuYXVkaXRsb2doYW5kbGluZy5BdWRpdExvZ0RpcmVjdG9yXSAoaHR0
cC0tMC4wLjAuMC04MDgwLTEpIEF1ZGl0TG9nVHlwZTogVVNFUl9BVFRBQ0hfRElTS19UT19WTSBu
b3QgaGF2ZSBzZXZlcml0eS4gQXNzdW1lZCBOb3JtYWwKMjAxMy0wNy0wOCAxMzo0MzoxMywxNDIg
V0FSTiAgW29yZy5vdmlydC5lbmdpbmUuY29yZS5kYWwuZGJicm9rZXIuYXVkaXRsb2doYW5kbGlu
Zy5BdWRpdExvZ0RpcmVjdG9yXSAoaHR0cC0tMC4wLjAuMC04MDgwLTEpIEF1ZGl0TG9nVHlwZTog
VVNFUl9ERVRBQ0hfRElTS19GUk9NX1ZNIG5vdCBoYXZlIHNldmVyaXR5LiBBc3N1bWVkIE5vcm1h
bAoyMDEzLTA3LTA4IDEzOjQzOjEzLDE0MyBXQVJOICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmRh
bC5kYmJyb2tlci5hdWRpdGxvZ2hhbmRsaW5nLkF1ZGl0TG9nRGlyZWN0b3JdIChodHRwLS0wLjAu
MC4wLTgwODAtMSkgQXVkaXRMb2dUeXBlOiBVU0VSX0ZBSUxFRF9ERVRBQ0hfRElTS19GUk9NX1ZN
IG5vdCBoYXZlIHNldmVyaXR5LiBBc3N1bWVkIE5vcm1hbAoyMDEzLTA3LTA4IDEzOjQzOjEzLDE0
MyBXQVJOICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmRhbC5kYmJyb2tlci5hdWRpdGxvZ2hhbmRs
aW5nLkF1ZGl0TG9nRGlyZWN0b3JdIChodHRwLS0wLjAuMC4wLTgwODAtMSkgQXVkaXRMb2dUeXBl
OiBVU0VSX1JVTl9VTkxPQ0tfRU5USVRZX1NDUklQVCBub3QgaGF2ZSBzZXZlcml0eS4gQXNzdW1l
ZCBOb3JtYWwKMjAxMy0wNy0wOCAxMzo0MzoxMywxNDQgV0FSTiAgW29yZy5vdmlydC5lbmdpbmUu
Y29yZS5kYWwuZGJicm9rZXIuYXVkaXRsb2doYW5kbGluZy5BdWRpdExvZ0RpcmVjdG9yXSAoaHR0
cC0tMC4wLjAuMC04MDgwLTEpIEF1ZGl0TG9nVHlwZTogR0xVU1RFUl9WT0xVTUVfT1BUSU9OX0NI
QU5HRURfRlJPTV9DTEkgbm90IGhhdmUgc2V2ZXJpdHkuIEFzc3VtZWQgTm9ybWFsCjIwMTMtMDct
MDggMTM6NDM6MTMsMTQ0IFdBUk4gIFtvcmcub3ZpcnQuZW5naW5lLmNvcmUuZGFsLmRiYnJva2Vy
LmF1ZGl0bG9naGFuZGxpbmcuQXVkaXRMb2dEaXJlY3Rvcl0gKGh0dHAtLTAuMC4wLjAtODA4MC0x
KSBBdWRpdExvZ1R5cGU6IEdMVVNURVJfU0VSVklDRVNfTElTVF9OT1RfRkVUQ0hFRCBub3QgaGF2
ZSBzZXZlcml0eS4gQXNzdW1lZCBOb3JtYWwKMjAxMy0wNy0wOCAxMzo0MzoxMywxNDQgV0FSTiAg
W29yZy5vdmlydC5lbmdpbmUuY29yZS5kYWwuZGJicm9rZXIuYXVkaXRsb2doYW5kbGluZy5BdWRp
dExvZ0RpcmVjdG9yXSAoaHR0cC0tMC4wLjAuMC04MDgwLTEpIEF1ZGl0TG9nVHlwZTogR0xVU1RF
Ul9WT0xVTUVfQlJJQ0tfQURERUQgbm90IGhhdmUgc2V2ZXJpdHkuIEFzc3VtZWQgTm9ybWFsCjIw
MTMtMDctMDggMTM6NDM6MTMsMTQ1IFdBUk4gIFtvcmcub3ZpcnQuZW5naW5lLmNvcmUuZGFsLmRi
YnJva2VyLmF1ZGl0bG9naGFuZGxpbmcuQXVkaXRMb2dEaXJlY3Rvcl0gKGh0dHAtLTAuMC4wLjAt
ODA4MC0xKSBBdWRpdExvZ1R5cGU6IFZNX01JR1JBVElPTl9TVEFSVF9TWVNURU1fSU5JVElBVEVE
IG5vdCBoYXZlIHNldmVyaXR5LiBBc3N1bWVkIE5vcm1hbAoyMDEzLTA3LTA4IDEzOjQzOjEzLDE0
NiBXQVJOICBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmRhbC5kYmJyb2tlci5hdWRpdGxvZ2hhbmRs
aW5nLkF1ZGl0TG9nRGlyZWN0b3JdIChodHRwLS0wLjAuMC4wLTgwODAtMSkgQXVkaXRMb2dUeXBl
OiBWRFNfTkVUV09SS19NVFVfRElGRkVSX0ZST01fTE9HSUNBTF9ORVRXT1JLIG5vdCBoYXZlIHNl
dmVyaXR5LiBBc3N1bWVkIE5vcm1hbAoyMDEzLTA3LTA4IDEzOjQzOjEzLDE0NiBXQVJOICBbb3Jn
Lm92aXJ0LmVuZ2luZS5jb3JlLmRhbC5kYmJyb2tlci5hdWRpdGxvZ2hhbmRsaW5nLkF1ZGl0TG9n
RGlyZWN0b3JdIChodHRwLS0wLjAuMC4wLTgwODAtMSkgQXVkaXRMb2dUeXBlOiBORVRXT1JLX1VQ
REFURV9WTV9JTlRFUkZBQ0VfTElOS19VUCBub3QgaGF2ZSBzZXZlcml0eS4gQXNzdW1lZCBOb3Jt
YWwKMjAxMy0wNy0wOCAxMzo0MzoxMywxNDcgV0FSTiAgW29yZy5vdmlydC5lbmdpbmUuY29yZS5k
YWwuZGJicm9rZXIuYXVkaXRsb2doYW5kbGluZy5BdWRpdExvZ0RpcmVjdG9yXSAoaHR0cC0tMC4w
LjAuMC04MDgwLTEpIEF1ZGl0TG9nVHlwZTogTkVUV09SS19VUERBVEVfVk1fSU5URVJGQUNFX0xJ
TktfRE9XTiBub3QgaGF2ZSBzZXZlcml0eS4gQXNzdW1lZCBOb3JtYWwKMjAxMy0wNy0wOCAxMzo0
MzoxMywzNTIgRVJST1IgW29yZy5vdmlydC5lbmdpbmUuY29yZS5kYWwuZGJicm9rZXIuZ2VuZXJp
Yy5EQkNvbmZpZ1V0aWxzXSAoaHR0cC0tMC4wLjAuMC04MDgwLTEpIEZhaWxlZCB0byBkZWNyeXB0
IHZhbHVlIGZvciBwcm9wZXJ0eSBMb2NhbEFkbWluUGFzc3dvcmQgd2lsbCBiZSB1c2VkIGVuY3J5
cHRlZCB2YWx1ZTogamF2YXguY3J5cHRvLkJhZFBhZGRpbmdFeGNlcHRpb246IERhdGEgbXVzdCBz
dGFydCB3aXRoIHplcm8KCWF0IHN1bi5zZWN1cml0eS5yc2EuUlNBUGFkZGluZy51bnBhZFYxNShS
U0FQYWRkaW5nLmphdmE6MzI1KSBbcnQuamFyOjEuNy4wXzI1XQoJYXQgc3VuLnNlY3VyaXR5LnJz
YS5SU0FQYWRkaW5nLnVucGFkKFJTQVBhZGRpbmcuamF2YToyNzIpIFtydC5qYXI6MS43LjBfMjVd
CglhdCBjb20uc3VuLmNyeXB0by5wcm92aWRlci5SU0FDaXBoZXIuZG9GaW5hbChSU0FDaXBoZXIu
amF2YTozNTYpCglhdCBjb20uc3VuLmNyeXB0by5wcm92aWRlci5SU0FDaXBoZXIuZW5naW5lRG9G
aW5hbChSU0FDaXBoZXIuamF2YTozODIpCglhdCBqYXZheC5jcnlwdG8uQ2lwaGVyLmRvRmluYWwo
Q2lwaGVyLmphdmE6MTkyMikgW2pjZS5qYXI6MS43LjBfMjVdCglhdCBvcmcub3ZpcnQuZW5naW5l
LmNvcmUudXRpbHMuY3J5cHQuRW5naW5lRW5jcnlwdGlvblV0aWxzLmRlY3J5cHQoRW5naW5lRW5j
cnlwdGlvblV0aWxzLmphdmE6MTY5KSBbdXRpbHMuamFyOl0KCWF0IG9yZy5vdmlydC5lbmdpbmUu
Y29yZS5kYWwuZGJicm9rZXIuZ2VuZXJpYy5EQkNvbmZpZ1V0aWxzLkdldFZhbHVlKERCQ29uZmln
VXRpbHMuamF2YToxMDkpIFtkYWwuamFyOl0KCWF0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5kYWwu
ZGJicm9rZXIuZ2VuZXJpYy5EQkNvbmZpZ1V0aWxzLkdldFZhbHVlKERCQ29uZmlnVXRpbHMuamF2
YToyMzEpIFtkYWwuamFyOl0KCWF0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5jb21tb24uY29uZmln
LkNvbmZpZy5HZXRWYWx1ZShDb25maWcuamF2YToyMikgW2NvbW1vbi5qYXI6XQoJYXQgb3JnLm92
aXJ0LmVuZ2luZS5jb3JlLmJsbC5HZXRDb25maWd1cmF0aW9uVmFsdWVzUXVlcnkuZXhlY3V0ZVF1
ZXJ5Q29tbWFuZChHZXRDb25maWd1cmF0aW9uVmFsdWVzUXVlcnkuamF2YTo0OCkgW2JsbC5qYXI6
XQoJYXQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmJsbC5RdWVyaWVzQ29tbWFuZEJhc2UuZXhlY3V0
ZUNvbW1hbmQoUXVlcmllc0NvbW1hbmRCYXNlLmphdmE6NjUpIFtibGwuamFyOl0KCWF0IG9yZy5v
dmlydC5lbmdpbmUuY29yZS5kYWwuVmRjQ29tbWFuZEJhc2UuZXhlY3V0ZShWZGNDb21tYW5kQmFz
ZS5qYXZhOjI4KSBbZGFsLmphcjpdCglhdCBvcmcub3ZpcnQuZW5naW5lLmNvcmUuYmxsLkJhY2tl
bmQucnVuUXVlcnlJbXBsKEJhY2tlbmQuamF2YTo0NjApIFtibGwuamFyOl0KCWF0IG9yZy5vdmly
dC5lbmdpbmUuY29yZS5ibGwuQmFja2VuZC5SdW5RdWVyeShCYWNrZW5kLmphdmE6NDM3KSBbYmxs
LmphcjpdCglhdCBzdW4ucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlMChO
YXRpdmUgTWV0aG9kKSBbcnQuamFyOjEuNy4wXzI1XQoJYXQgc3VuLnJlZmxlY3QuTmF0aXZlTWV0
aG9kQWNjZXNzb3JJbXBsLmludm9rZShOYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuamF2YTo1Nykg
W3J0LmphcjoxLjcuMF8yNV0KCWF0IHN1bi5yZWZsZWN0LkRlbGVnYXRpbmdNZXRob2RBY2Nlc3Nv
ckltcGwuaW52b2tlKERlbGVnYXRpbmdNZXRob2RBY2Nlc3NvckltcGwuamF2YTo0MykgW3J0Lmph
cjoxLjcuMF8yNV0KCWF0IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZC5pbnZva2UoTWV0aG9kLmph
dmE6NjA2KSBbcnQuamFyOjEuNy4wXzI1XQoJYXQgb3JnLmpib3NzLmFzLmVlLmNvbXBvbmVudC5N
YW5hZ2VkUmVmZXJlbmNlTWV0aG9kSW50ZXJjZXB0b3JGYWN0b3J5JE1hbmFnZWRSZWZlcmVuY2VN
ZXRob2RJbnRlcmNlcHRvci5wcm9jZXNzSW52b2NhdGlvbihNYW5hZ2VkUmVmZXJlbmNlTWV0aG9k
SW50ZXJjZXB0b3JGYWN0b3J5LmphdmE6NzIpIFtqYm9zcy1hcy1lZS03LjEuMS5GaW5hbC5qYXI6
Ny4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5JbnRlcmNlcHRvckNvbnRleHQu
cHJvY2VlZChJbnRlcmNlcHRvckNvbnRleHQuamF2YToyODgpIFtqYm9zcy1pbnZvY2F0aW9uLmph
cjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLkludGVyY2VwdG9yQ29udGV4
dCRJbnZvY2F0aW9uLnByb2NlZWQoSW50ZXJjZXB0b3JDb250ZXh0LmphdmE6Mzc0KSBbamJvc3Mt
aW52b2NhdGlvbi5qYXI6MS4xLjEuRmluYWxdCglhdCBvcmcub3ZpcnQuZW5naW5lLmNvcmUuYmxs
LmludGVyY2VwdG9ycy5UaHJlYWRMb2NhbFNlc3Npb25DbGVhbmVySW50ZXJjZXB0b3IuaW5qZWN0
V2ViQ29udGV4dFRvVGhyZWFkTG9jYWwoVGhyZWFkTG9jYWxTZXNzaW9uQ2xlYW5lckludGVyY2Vw
dG9yLmphdmE6MTMpIFtibGwuamFyOl0KCWF0IHN1bi5yZWZsZWN0Lk5hdGl2ZU1ldGhvZEFjY2Vz
c29ySW1wbC5pbnZva2UwKE5hdGl2ZSBNZXRob2QpIFtydC5qYXI6MS43LjBfMjVdCglhdCBzdW4u
cmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlKE5hdGl2ZU1ldGhvZEFjY2Vz
c29ySW1wbC5qYXZhOjU3KSBbcnQuamFyOjEuNy4wXzI1XQoJYXQgc3VuLnJlZmxlY3QuRGVsZWdh
dGluZ01ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UoRGVsZWdhdGluZ01ldGhvZEFjY2Vzc29ySW1w
bC5qYXZhOjQzKSBbcnQuamFyOjEuNy4wXzI1XQoJYXQgamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9k
Lmludm9rZShNZXRob2QuamF2YTo2MDYpIFtydC5qYXI6MS43LjBfMjVdCglhdCBvcmcuamJvc3Mu
YXMuZWUuY29tcG9uZW50Lk1hbmFnZWRSZWZlcmVuY2VMaWZlY3ljbGVNZXRob2RJbnRlcmNlcHRv
ckZhY3RvcnkkTWFuYWdlZFJlZmVyZW5jZUxpZmVjeWNsZU1ldGhvZEludGVyY2VwdG9yLnByb2Nl
c3NJbnZvY2F0aW9uKE1hbmFnZWRSZWZlcmVuY2VMaWZlY3ljbGVNZXRob2RJbnRlcmNlcHRvckZh
Y3RvcnkuamF2YToxMjMpIFtqYm9zcy1hcy1lZS03LjEuMS5GaW5hbC5qYXI6Ny4xLjEuRmluYWxd
CglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5JbnRlcmNlcHRvckNvbnRleHQucHJvY2VlZChJbnRl
cmNlcHRvckNvbnRleHQuamF2YToyODgpIFtqYm9zcy1pbnZvY2F0aW9uLmphcjoxLjEuMS5GaW5h
bF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLldlYXZlZEludGVyY2VwdG9yLnByb2Nlc3NJbnZv
Y2F0aW9uKFdlYXZlZEludGVyY2VwdG9yLmphdmE6NTMpIFtqYm9zcy1pbnZvY2F0aW9uLmphcjox
LjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5hcy5lZS5jb21wb25lbnQuaW50ZXJjZXB0b3JzLlVz
ZXJJbnRlcmNlcHRvckZhY3RvcnkkMS5wcm9jZXNzSW52b2NhdGlvbihVc2VySW50ZXJjZXB0b3JG
YWN0b3J5LmphdmE6MzYpIFtqYm9zcy1hcy1lZS03LjEuMS5GaW5hbC5qYXI6Ny4xLjEuRmluYWxd
CglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5JbnRlcmNlcHRvckNvbnRleHQucHJvY2VlZChJbnRl
cmNlcHRvckNvbnRleHQuamF2YToyODgpIFtqYm9zcy1pbnZvY2F0aW9uLmphcjoxLjEuMS5GaW5h
bF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLkluaXRpYWxJbnRlcmNlcHRvci5wcm9jZXNzSW52
b2NhdGlvbihJbml0aWFsSW50ZXJjZXB0b3IuamF2YToyMSkgW2pib3NzLWludm9jYXRpb24uamFy
OjEuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmludm9jYXRpb24uSW50ZXJjZXB0b3JDb250ZXh0
LnByb2NlZWQoSW50ZXJjZXB0b3JDb250ZXh0LmphdmE6Mjg4KSBbamJvc3MtaW52b2NhdGlvbi5q
YXI6MS4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5DaGFpbmVkSW50ZXJjZXB0
b3IucHJvY2Vzc0ludm9jYXRpb24oQ2hhaW5lZEludGVyY2VwdG9yLmphdmE6NjEpIFtqYm9zcy1p
bnZvY2F0aW9uLmphcjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5hcy5lZS5jb21wb25lbnQu
aW50ZXJjZXB0b3JzLkNvbXBvbmVudERpc3BhdGNoZXJJbnRlcmNlcHRvci5wcm9jZXNzSW52b2Nh
dGlvbihDb21wb25lbnREaXNwYXRjaGVySW50ZXJjZXB0b3IuamF2YTo1MykgW2pib3NzLWFzLWVl
LTcuMS4xLkZpbmFsLmphcjo3LjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLklu
dGVyY2VwdG9yQ29udGV4dC5wcm9jZWVkKEludGVyY2VwdG9yQ29udGV4dC5qYXZhOjI4OCkgW2pi
b3NzLWludm9jYXRpb24uamFyOjEuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmFzLmVqYjMuY29t
cG9uZW50LnNpbmdsZXRvbi5TaW5nbGV0b25Db21wb25lbnRJbnN0YW5jZUFzc29jaWF0aW9uSW50
ZXJjZXB0b3IucHJvY2Vzc0ludm9jYXRpb24oU2luZ2xldG9uQ29tcG9uZW50SW5zdGFuY2VBc3Nv
Y2lhdGlvbkludGVyY2VwdG9yLmphdmE6NTMpIFtqYm9zcy1hcy1lamIzLTcuMS4xLkZpbmFsLmph
cjo3LjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLkludGVyY2VwdG9yQ29udGV4
dC5wcm9jZWVkKEludGVyY2VwdG9yQ29udGV4dC5qYXZhOjI4OCkgW2pib3NzLWludm9jYXRpb24u
amFyOjEuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmFzLmVqYjMudHguQ01UVHhJbnRlcmNlcHRv
ci5pbnZva2VJbk5vVHgoQ01UVHhJbnRlcmNlcHRvci5qYXZhOjIxMSkgW2pib3NzLWFzLWVqYjMt
Ny4xLjEuRmluYWwuamFyOjcuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmFzLmVqYjMudHguQ01U
VHhJbnRlcmNlcHRvci5zdXBwb3J0cyhDTVRUeEludGVyY2VwdG9yLmphdmE6MzYzKSBbamJvc3Mt
YXMtZWpiMy03LjEuMS5GaW5hbC5qYXI6Ny4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuYXMuZWpi
My50eC5DTVRUeEludGVyY2VwdG9yLnByb2Nlc3NJbnZvY2F0aW9uKENNVFR4SW50ZXJjZXB0b3Iu
amF2YToxOTQpIFtqYm9zcy1hcy1lamIzLTcuMS4xLkZpbmFsLmphcjo3LjEuMS5GaW5hbF0KCWF0
IG9yZy5qYm9zcy5pbnZvY2F0aW9uLkludGVyY2VwdG9yQ29udGV4dC5wcm9jZWVkKEludGVyY2Vw
dG9yQ29udGV4dC5qYXZhOjI4OCkgW2pib3NzLWludm9jYXRpb24uamFyOjEuMS4xLkZpbmFsXQoJ
YXQgb3JnLmpib3NzLmFzLmVqYjMuY29tcG9uZW50LmludGVyY2VwdG9ycy5DdXJyZW50SW52b2Nh
dGlvbkNvbnRleHRJbnRlcmNlcHRvci5wcm9jZXNzSW52b2NhdGlvbihDdXJyZW50SW52b2NhdGlv
bkNvbnRleHRJbnRlcmNlcHRvci5qYXZhOjQxKSBbamJvc3MtYXMtZWpiMy03LjEuMS5GaW5hbC5q
YXI6Ny4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5JbnRlcmNlcHRvckNvbnRl
eHQucHJvY2VlZChJbnRlcmNlcHRvckNvbnRleHQuamF2YToyODgpIFtqYm9zcy1pbnZvY2F0aW9u
LmphcjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5hcy5lamIzLmNvbXBvbmVudC5pbnRlcmNl
cHRvcnMuTG9nZ2luZ0ludGVyY2VwdG9yLnByb2Nlc3NJbnZvY2F0aW9uKExvZ2dpbmdJbnRlcmNl
cHRvci5qYXZhOjU5KSBbamJvc3MtYXMtZWpiMy03LjEuMS5GaW5hbC5qYXI6Ny4xLjEuRmluYWxd
CglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5JbnRlcmNlcHRvckNvbnRleHQucHJvY2VlZChJbnRl
cmNlcHRvckNvbnRleHQuamF2YToyODgpIFtqYm9zcy1pbnZvY2F0aW9uLmphcjoxLjEuMS5GaW5h
bF0KCWF0IG9yZy5qYm9zcy5hcy5lZS5jb21wb25lbnQuTmFtZXNwYWNlQ29udGV4dEludGVyY2Vw
dG9yLnByb2Nlc3NJbnZvY2F0aW9uKE5hbWVzcGFjZUNvbnRleHRJbnRlcmNlcHRvci5qYXZhOjUw
KSBbamJvc3MtYXMtZWUtNy4xLjEuRmluYWwuamFyOjcuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3Nz
Lmludm9jYXRpb24uSW50ZXJjZXB0b3JDb250ZXh0LnByb2NlZWQoSW50ZXJjZXB0b3JDb250ZXh0
LmphdmE6Mjg4KSBbamJvc3MtaW52b2NhdGlvbi5qYXI6MS4xLjEuRmluYWxdCglhdCBvcmcuamJv
c3MuYXMuZWUuY29tcG9uZW50LlRDQ0xJbnRlcmNlcHRvci5wcm9jZXNzSW52b2NhdGlvbihUQ0NM
SW50ZXJjZXB0b3IuamF2YTo0NSkgW2pib3NzLWFzLWVlLTcuMS4xLkZpbmFsLmphcjo3LjEuMS5G
aW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLkludGVyY2VwdG9yQ29udGV4dC5wcm9jZWVk
KEludGVyY2VwdG9yQ29udGV4dC5qYXZhOjI4OCkgW2pib3NzLWludm9jYXRpb24uamFyOjEuMS4x
LkZpbmFsXQoJYXQgb3JnLmpib3NzLmludm9jYXRpb24uQ2hhaW5lZEludGVyY2VwdG9yLnByb2Nl
c3NJbnZvY2F0aW9uKENoYWluZWRJbnRlcmNlcHRvci5qYXZhOjYxKSBbamJvc3MtaW52b2NhdGlv
bi5qYXI6MS4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuYXMuZWUuY29tcG9uZW50LlZpZXdTZXJ2
aWNlJFZpZXcuaW52b2tlKFZpZXdTZXJ2aWNlLmphdmE6MTY1KSBbamJvc3MtYXMtZWUtNy4xLjEu
RmluYWwuamFyOjcuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmFzLmVlLmNvbXBvbmVudC5WaWV3
RGVzY3JpcHRpb24kMS5wcm9jZXNzSW52b2NhdGlvbihWaWV3RGVzY3JpcHRpb24uamF2YToxNzMp
IFtqYm9zcy1hcy1lZS03LjEuMS5GaW5hbC5qYXI6Ny4xLjEuRmluYWxdCglhdCBvcmcuamJvc3Mu
aW52b2NhdGlvbi5JbnRlcmNlcHRvckNvbnRleHQucHJvY2VlZChJbnRlcmNlcHRvckNvbnRleHQu
amF2YToyODgpIFtqYm9zcy1pbnZvY2F0aW9uLmphcjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9z
cy5pbnZvY2F0aW9uLkNoYWluZWRJbnRlcmNlcHRvci5wcm9jZXNzSW52b2NhdGlvbihDaGFpbmVk
SW50ZXJjZXB0b3IuamF2YTo2MSkgW2pib3NzLWludm9jYXRpb24uamFyOjEuMS4xLkZpbmFsXQoJ
YXQgb3JnLmpib3NzLmFzLmVlLmNvbXBvbmVudC5Qcm94eUludm9jYXRpb25IYW5kbGVyLmludm9r
ZShQcm94eUludm9jYXRpb25IYW5kbGVyLmphdmE6NzIpIFtqYm9zcy1hcy1lZS03LjEuMS5GaW5h
bC5qYXI6Ny4xLjEuRmluYWxdCglhdCBvcmcub3ZpcnQuZW5naW5lLmNvcmUuY29tbW9uLmludGVy
ZmFjZXMuQmFja2VuZExvY2FsJCQkdmlldzEwLlJ1blF1ZXJ5KFVua25vd24gU291cmNlKSBbY29t
bW9uLmphcjpdCglhdCBvcmcub3ZpcnQuZW5naW5lLnVpLmZyb250ZW5kLnNlcnZlci5nd3QuR2Vu
ZXJpY0FwaUdXVFNlcnZpY2VJbXBsLlJ1blF1ZXJ5KEdlbmVyaWNBcGlHV1RTZXJ2aWNlSW1wbC5q
YXZhOjU5KQoJYXQgc3VuLnJlZmxlY3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZTAo
TmF0aXZlIE1ldGhvZCkgW3J0LmphcjoxLjcuMF8yNV0KCWF0IHN1bi5yZWZsZWN0Lk5hdGl2ZU1l
dGhvZEFjY2Vzc29ySW1wbC5pbnZva2UoTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmphdmE6NTcp
IFtydC5qYXI6MS43LjBfMjVdCglhdCBzdW4ucmVmbGVjdC5EZWxlZ2F0aW5nTWV0aG9kQWNjZXNz
b3JJbXBsLmludm9rZShEZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmphdmE6NDMpIFtydC5q
YXI6MS43LjBfMjVdCglhdCBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2QuaW52b2tlKE1ldGhvZC5q
YXZhOjYwNikgW3J0LmphcjoxLjcuMF8yNV0KCWF0IGNvbS5nb29nbGUuZ3d0LnJwYy5zZXJ2ZXIu
UlBDLmludm9rZUFuZFN0cmVhbVJlc3BvbnNlKFJQQy5qYXZhOjE5NikKCWF0IGNvbS5nb29nbGUu
Z3d0LnJwYy5zZXJ2ZXIuUnBjU2VydmxldC5wcm9jZXNzQ2FsbChScGNTZXJ2bGV0LmphdmE6MTYx
KQoJYXQgY29tLmdvb2dsZS5nd3QucnBjLnNlcnZlci5ScGNTZXJ2bGV0LnByb2Nlc3NQb3N0KFJw
Y1NlcnZsZXQuamF2YToyMjIpCglhdCBjb20uZ29vZ2xlLmd3dC51c2VyLnNlcnZlci5ycGMuQWJz
dHJhY3RSZW1vdGVTZXJ2aWNlU2VydmxldC5kb1Bvc3QoQWJzdHJhY3RSZW1vdGVTZXJ2aWNlU2Vy
dmxldC5qYXZhOjYyKQoJYXQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0LnNlcnZpY2Uo
SHR0cFNlcnZsZXQuamF2YTo3NTQpIFtqYm9zcy1zZXJ2bGV0LTMuMC1hcGkuamFyOjEuMC4xLkZp
bmFsXQoJYXQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0LnNlcnZpY2UoSHR0cFNlcnZs
ZXQuamF2YTo4NDcpIFtqYm9zcy1zZXJ2bGV0LTMuMC1hcGkuamFyOjEuMC4xLkZpbmFsXQoJYXQg
b3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLkFwcGxpY2F0aW9uRmlsdGVyQ2hhaW4uaW50ZXJuYWxE
b0ZpbHRlcihBcHBsaWNhdGlvbkZpbHRlckNoYWluLmphdmE6MzI5KQoJYXQgb3JnLmFwYWNoZS5j
YXRhbGluYS5jb3JlLkFwcGxpY2F0aW9uRmlsdGVyQ2hhaW4uZG9GaWx0ZXIoQXBwbGljYXRpb25G
aWx0ZXJDaGFpbi5qYXZhOjI0OCkKCWF0IG9yZy5vdmlydC5lbmdpbmUudWkuZnJvbnRlbmQuc2Vy
dmVyLmd3dC5Hd3RDYWNoaW5nRmlsdGVyLmRvRmlsdGVyKEd3dENhY2hpbmdGaWx0ZXIuamF2YTox
MzIpCglhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUuQXBwbGljYXRpb25GaWx0ZXJDaGFpbi5p
bnRlcm5hbERvRmlsdGVyKEFwcGxpY2F0aW9uRmlsdGVyQ2hhaW4uamF2YToyODApCglhdCBvcmcu
YXBhY2hlLmNhdGFsaW5hLmNvcmUuQXBwbGljYXRpb25GaWx0ZXJDaGFpbi5kb0ZpbHRlcihBcHBs
aWNhdGlvbkZpbHRlckNoYWluLmphdmE6MjQ4KQoJYXQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnV0
aWxzLnNlcnZsZXQuTG9jYWxlRmlsdGVyLmRvRmlsdGVyKExvY2FsZUZpbHRlci5qYXZhOjU5KSBb
dXRpbHMuamFyOl0KCWF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuY29yZS5BcHBsaWNhdGlvbkZpbHRl
ckNoYWluLmludGVybmFsRG9GaWx0ZXIoQXBwbGljYXRpb25GaWx0ZXJDaGFpbi5qYXZhOjI4MCkK
CWF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuY29yZS5BcHBsaWNhdGlvbkZpbHRlckNoYWluLmRvRmls
dGVyKEFwcGxpY2F0aW9uRmlsdGVyQ2hhaW4uamF2YToyNDgpCglhdCBvcmcuYXBhY2hlLmNhdGFs
aW5hLmNvcmUuU3RhbmRhcmRXcmFwcGVyVmFsdmUuaW52b2tlKFN0YW5kYXJkV3JhcHBlclZhbHZl
LmphdmE6Mjc1KQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLlN0YW5kYXJkQ29udGV4dFZh
bHZlLmludm9rZShTdGFuZGFyZENvbnRleHRWYWx2ZS5qYXZhOjE2MSkKCWF0IG9yZy5hcGFjaGUu
Y2F0YWxpbmEuYXV0aGVudGljYXRvci5BdXRoZW50aWNhdG9yQmFzZS5pbnZva2UoQXV0aGVudGlj
YXRvckJhc2UuamF2YTo0ODkpCglhdCBvcmcuamJvc3MuYXMud2ViLnNlY3VyaXR5LlNlY3VyaXR5
Q29udGV4dEFzc29jaWF0aW9uVmFsdmUuaW52b2tlKFNlY3VyaXR5Q29udGV4dEFzc29jaWF0aW9u
VmFsdmUuamF2YToxNTMpCglhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUuU3RhbmRhcmRIb3N0
VmFsdmUuaW52b2tlKFN0YW5kYXJkSG9zdFZhbHZlLmphdmE6MTU1KQoJYXQgb3JnLmFwYWNoZS5j
YXRhbGluYS52YWx2ZXMuRXJyb3JSZXBvcnRWYWx2ZS5pbnZva2UoRXJyb3JSZXBvcnRWYWx2ZS5q
YXZhOjEwMikKCWF0IG9yZy5qYm9zcy53ZWIucmV3cml0ZS5SZXdyaXRlVmFsdmUuaW52b2tlKFJl
d3JpdGVWYWx2ZS5qYXZhOjQ2NikKCWF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuY29yZS5TdGFuZGFy
ZEVuZ2luZVZhbHZlLmludm9rZShTdGFuZGFyZEVuZ2luZVZhbHZlLmphdmE6MTA5KQoJYXQgb3Jn
LmFwYWNoZS5jYXRhbGluYS5jb25uZWN0b3IuQ295b3RlQWRhcHRlci5zZXJ2aWNlKENveW90ZUFk
YXB0ZXIuamF2YTozNjgpCglhdCBvcmcuYXBhY2hlLmNveW90ZS5odHRwMTEuSHR0cDExUHJvY2Vz
c29yLnByb2Nlc3MoSHR0cDExUHJvY2Vzc29yLmphdmE6ODc3KQoJYXQgb3JnLmFwYWNoZS5jb3lv
dGUuaHR0cDExLkh0dHAxMVByb3RvY29sJEh0dHAxMUNvbm5lY3Rpb25IYW5kbGVyLnByb2Nlc3Mo
SHR0cDExUHJvdG9jb2wuamF2YTo2NzEpCglhdCBvcmcuYXBhY2hlLnRvbWNhdC51dGlsLm5ldC5K
SW9FbmRwb2ludCRXb3JrZXIucnVuKEpJb0VuZHBvaW50LmphdmE6OTMwKQoJYXQgamF2YS5sYW5n
LlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzI0KSBbcnQuamFyOjEuNy4wXzI1XQoKMjAxMy0wNy0w
OCAxMzo0MzoxMyw0MzkgRVJST1IgW29yZy5vdmlydC5lbmdpbmUuY29yZS5kYWwuZGJicm9rZXIu
Z2VuZXJpYy5EQkNvbmZpZ1V0aWxzXSAoaHR0cC0tMC4wLjAuMC04MDgwLTEpIEZhaWxlZCB0byBk
ZWNyeXB0IHZhbHVlIGZvciBwcm9wZXJ0eSBMb2NhbEFkbWluUGFzc3dvcmQgd2lsbCBiZSB1c2Vk
IGVuY3J5cHRlZCB2YWx1ZTogamF2YXguY3J5cHRvLkJhZFBhZGRpbmdFeGNlcHRpb246IERhdGEg
bXVzdCBzdGFydCB3aXRoIHplcm8KCWF0IHN1bi5zZWN1cml0eS5yc2EuUlNBUGFkZGluZy51bnBh
ZFYxNShSU0FQYWRkaW5nLmphdmE6MzI1KSBbcnQuamFyOjEuNy4wXzI1XQoJYXQgc3VuLnNlY3Vy
aXR5LnJzYS5SU0FQYWRkaW5nLnVucGFkKFJTQVBhZGRpbmcuamF2YToyNzIpIFtydC5qYXI6MS43
LjBfMjVdCglhdCBjb20uc3VuLmNyeXB0by5wcm92aWRlci5SU0FDaXBoZXIuZG9GaW5hbChSU0FD
aXBoZXIuamF2YTozNTYpCglhdCBjb20uc3VuLmNyeXB0by5wcm92aWRlci5SU0FDaXBoZXIuZW5n
aW5lRG9GaW5hbChSU0FDaXBoZXIuamF2YTozODIpCglhdCBqYXZheC5jcnlwdG8uQ2lwaGVyLmRv
RmluYWwoQ2lwaGVyLmphdmE6MTkyMikgW2pjZS5qYXI6MS43LjBfMjVdCglhdCBvcmcub3ZpcnQu
ZW5naW5lLmNvcmUudXRpbHMuY3J5cHQuRW5naW5lRW5jcnlwdGlvblV0aWxzLmRlY3J5cHQoRW5n
aW5lRW5jcnlwdGlvblV0aWxzLmphdmE6MTY5KSBbdXRpbHMuamFyOl0KCWF0IG9yZy5vdmlydC5l
bmdpbmUuY29yZS5kYWwuZGJicm9rZXIuZ2VuZXJpYy5EQkNvbmZpZ1V0aWxzLkdldFZhbHVlKERC
Q29uZmlnVXRpbHMuamF2YToxMDkpIFtkYWwuamFyOl0KCWF0IG9yZy5vdmlydC5lbmdpbmUuY29y
ZS5kYWwuZGJicm9rZXIuZ2VuZXJpYy5EQkNvbmZpZ1V0aWxzLkdldFZhbHVlKERCQ29uZmlnVXRp
bHMuamF2YToyMzEpIFtkYWwuamFyOl0KCWF0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5jb21tb24u
Y29uZmlnLkNvbmZpZy5HZXRWYWx1ZShDb25maWcuamF2YToyMikgW2NvbW1vbi5qYXI6XQoJYXQg
b3JnLm92aXJ0LmVuZ2luZS5jb3JlLmJsbC5HZXRDb25maWd1cmF0aW9uVmFsdWVzUXVlcnkuZXhl
Y3V0ZVF1ZXJ5Q29tbWFuZChHZXRDb25maWd1cmF0aW9uVmFsdWVzUXVlcnkuamF2YTo0OCkgW2Js
bC5qYXI6XQoJYXQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmJsbC5RdWVyaWVzQ29tbWFuZEJhc2Uu
ZXhlY3V0ZUNvbW1hbmQoUXVlcmllc0NvbW1hbmRCYXNlLmphdmE6NjUpIFtibGwuamFyOl0KCWF0
IG9yZy5vdmlydC5lbmdpbmUuY29yZS5kYWwuVmRjQ29tbWFuZEJhc2UuZXhlY3V0ZShWZGNDb21t
YW5kQmFzZS5qYXZhOjI4KSBbZGFsLmphcjpdCglhdCBvcmcub3ZpcnQuZW5naW5lLmNvcmUuYmxs
LkJhY2tlbmQucnVuUXVlcnlJbXBsKEJhY2tlbmQuamF2YTo0NjApIFtibGwuamFyOl0KCWF0IG9y
Zy5vdmlydC5lbmdpbmUuY29yZS5ibGwuQmFja2VuZC5SdW5RdWVyeShCYWNrZW5kLmphdmE6NDM3
KSBbYmxsLmphcjpdCglhdCBzdW4ucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuaW52
b2tlMChOYXRpdmUgTWV0aG9kKSBbcnQuamFyOjEuNy4wXzI1XQoJYXQgc3VuLnJlZmxlY3QuTmF0
aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShOYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuamF2
YTo1NykgW3J0LmphcjoxLjcuMF8yNV0KCWF0IHN1bi5yZWZsZWN0LkRlbGVnYXRpbmdNZXRob2RB
Y2Nlc3NvckltcGwuaW52b2tlKERlbGVnYXRpbmdNZXRob2RBY2Nlc3NvckltcGwuamF2YTo0Mykg
W3J0LmphcjoxLjcuMF8yNV0KCWF0IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZC5pbnZva2UoTWV0
aG9kLmphdmE6NjA2KSBbcnQuamFyOjEuNy4wXzI1XQoJYXQgb3JnLmpib3NzLmFzLmVlLmNvbXBv
bmVudC5NYW5hZ2VkUmVmZXJlbmNlTWV0aG9kSW50ZXJjZXB0b3JGYWN0b3J5JE1hbmFnZWRSZWZl
cmVuY2VNZXRob2RJbnRlcmNlcHRvci5wcm9jZXNzSW52b2NhdGlvbihNYW5hZ2VkUmVmZXJlbmNl
TWV0aG9kSW50ZXJjZXB0b3JGYWN0b3J5LmphdmE6NzIpIFtqYm9zcy1hcy1lZS03LjEuMS5GaW5h
bC5qYXI6Ny4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5JbnRlcmNlcHRvckNv
bnRleHQucHJvY2VlZChJbnRlcmNlcHRvckNvbnRleHQuamF2YToyODgpIFtqYm9zcy1pbnZvY2F0
aW9uLmphcjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLkludGVyY2VwdG9y
Q29udGV4dCRJbnZvY2F0aW9uLnByb2NlZWQoSW50ZXJjZXB0b3JDb250ZXh0LmphdmE6Mzc0KSBb
amJvc3MtaW52b2NhdGlvbi5qYXI6MS4xLjEuRmluYWxdCglhdCBvcmcub3ZpcnQuZW5naW5lLmNv
cmUuYmxsLmludGVyY2VwdG9ycy5UaHJlYWRMb2NhbFNlc3Npb25DbGVhbmVySW50ZXJjZXB0b3Iu
aW5qZWN0V2ViQ29udGV4dFRvVGhyZWFkTG9jYWwoVGhyZWFkTG9jYWxTZXNzaW9uQ2xlYW5lcklu
dGVyY2VwdG9yLmphdmE6MTMpIFtibGwuamFyOl0KCWF0IHN1bi5yZWZsZWN0Lk5hdGl2ZU1ldGhv
ZEFjY2Vzc29ySW1wbC5pbnZva2UwKE5hdGl2ZSBNZXRob2QpIFtydC5qYXI6MS43LjBfMjVdCglh
dCBzdW4ucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlKE5hdGl2ZU1ldGhv
ZEFjY2Vzc29ySW1wbC5qYXZhOjU3KSBbcnQuamFyOjEuNy4wXzI1XQoJYXQgc3VuLnJlZmxlY3Qu
RGVsZWdhdGluZ01ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UoRGVsZWdhdGluZ01ldGhvZEFjY2Vz
c29ySW1wbC5qYXZhOjQzKSBbcnQuamFyOjEuNy4wXzI1XQoJYXQgamF2YS5sYW5nLnJlZmxlY3Qu
TWV0aG9kLmludm9rZShNZXRob2QuamF2YTo2MDYpIFtydC5qYXI6MS43LjBfMjVdCglhdCBvcmcu
amJvc3MuYXMuZWUuY29tcG9uZW50Lk1hbmFnZWRSZWZlcmVuY2VMaWZlY3ljbGVNZXRob2RJbnRl
cmNlcHRvckZhY3RvcnkkTWFuYWdlZFJlZmVyZW5jZUxpZmVjeWNsZU1ldGhvZEludGVyY2VwdG9y
LnByb2Nlc3NJbnZvY2F0aW9uKE1hbmFnZWRSZWZlcmVuY2VMaWZlY3ljbGVNZXRob2RJbnRlcmNl
cHRvckZhY3RvcnkuamF2YToxMjMpIFtqYm9zcy1hcy1lZS03LjEuMS5GaW5hbC5qYXI6Ny4xLjEu
RmluYWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5JbnRlcmNlcHRvckNvbnRleHQucHJvY2Vl
ZChJbnRlcmNlcHRvckNvbnRleHQuamF2YToyODgpIFtqYm9zcy1pbnZvY2F0aW9uLmphcjoxLjEu
MS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLldlYXZlZEludGVyY2VwdG9yLnByb2Nl
c3NJbnZvY2F0aW9uKFdlYXZlZEludGVyY2VwdG9yLmphdmE6NTMpIFtqYm9zcy1pbnZvY2F0aW9u
LmphcjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5hcy5lZS5jb21wb25lbnQuaW50ZXJjZXB0
b3JzLlVzZXJJbnRlcmNlcHRvckZhY3RvcnkkMS5wcm9jZXNzSW52b2NhdGlvbihVc2VySW50ZXJj
ZXB0b3JGYWN0b3J5LmphdmE6MzYpIFtqYm9zcy1hcy1lZS03LjEuMS5GaW5hbC5qYXI6Ny4xLjEu
RmluYWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5JbnRlcmNlcHRvckNvbnRleHQucHJvY2Vl
ZChJbnRlcmNlcHRvckNvbnRleHQuamF2YToyODgpIFtqYm9zcy1pbnZvY2F0aW9uLmphcjoxLjEu
MS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLkluaXRpYWxJbnRlcmNlcHRvci5wcm9j
ZXNzSW52b2NhdGlvbihJbml0aWFsSW50ZXJjZXB0b3IuamF2YToyMSkgW2pib3NzLWludm9jYXRp
b24uamFyOjEuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmludm9jYXRpb24uSW50ZXJjZXB0b3JD
b250ZXh0LnByb2NlZWQoSW50ZXJjZXB0b3JDb250ZXh0LmphdmE6Mjg4KSBbamJvc3MtaW52b2Nh
dGlvbi5qYXI6MS4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5DaGFpbmVkSW50
ZXJjZXB0b3IucHJvY2Vzc0ludm9jYXRpb24oQ2hhaW5lZEludGVyY2VwdG9yLmphdmE6NjEpIFtq
Ym9zcy1pbnZvY2F0aW9uLmphcjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5hcy5lZS5jb21w
b25lbnQuaW50ZXJjZXB0b3JzLkNvbXBvbmVudERpc3BhdGNoZXJJbnRlcmNlcHRvci5wcm9jZXNz
SW52b2NhdGlvbihDb21wb25lbnREaXNwYXRjaGVySW50ZXJjZXB0b3IuamF2YTo1MykgW2pib3Nz
LWFzLWVlLTcuMS4xLkZpbmFsLmphcjo3LjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0
aW9uLkludGVyY2VwdG9yQ29udGV4dC5wcm9jZWVkKEludGVyY2VwdG9yQ29udGV4dC5qYXZhOjI4
OCkgW2pib3NzLWludm9jYXRpb24uamFyOjEuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmFzLmVq
YjMuY29tcG9uZW50LnNpbmdsZXRvbi5TaW5nbGV0b25Db21wb25lbnRJbnN0YW5jZUFzc29jaWF0
aW9uSW50ZXJjZXB0b3IucHJvY2Vzc0ludm9jYXRpb24oU2luZ2xldG9uQ29tcG9uZW50SW5zdGFu
Y2VBc3NvY2lhdGlvbkludGVyY2VwdG9yLmphdmE6NTMpIFtqYm9zcy1hcy1lamIzLTcuMS4xLkZp
bmFsLmphcjo3LjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLkludGVyY2VwdG9y
Q29udGV4dC5wcm9jZWVkKEludGVyY2VwdG9yQ29udGV4dC5qYXZhOjI4OCkgW2pib3NzLWludm9j
YXRpb24uamFyOjEuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmFzLmVqYjMudHguQ01UVHhJbnRl
cmNlcHRvci5pbnZva2VJbk5vVHgoQ01UVHhJbnRlcmNlcHRvci5qYXZhOjIxMSkgW2pib3NzLWFz
LWVqYjMtNy4xLjEuRmluYWwuamFyOjcuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmFzLmVqYjMu
dHguQ01UVHhJbnRlcmNlcHRvci5zdXBwb3J0cyhDTVRUeEludGVyY2VwdG9yLmphdmE6MzYzKSBb
amJvc3MtYXMtZWpiMy03LjEuMS5GaW5hbC5qYXI6Ny4xLjEuRmluYWxdCglhdCBvcmcuamJvc3Mu
YXMuZWpiMy50eC5DTVRUeEludGVyY2VwdG9yLnByb2Nlc3NJbnZvY2F0aW9uKENNVFR4SW50ZXJj
ZXB0b3IuamF2YToxOTQpIFtqYm9zcy1hcy1lamIzLTcuMS4xLkZpbmFsLmphcjo3LjEuMS5GaW5h
bF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLkludGVyY2VwdG9yQ29udGV4dC5wcm9jZWVkKElu
dGVyY2VwdG9yQ29udGV4dC5qYXZhOjI4OCkgW2pib3NzLWludm9jYXRpb24uamFyOjEuMS4xLkZp
bmFsXQoJYXQgb3JnLmpib3NzLmFzLmVqYjMuY29tcG9uZW50LmludGVyY2VwdG9ycy5DdXJyZW50
SW52b2NhdGlvbkNvbnRleHRJbnRlcmNlcHRvci5wcm9jZXNzSW52b2NhdGlvbihDdXJyZW50SW52
b2NhdGlvbkNvbnRleHRJbnRlcmNlcHRvci5qYXZhOjQxKSBbamJvc3MtYXMtZWpiMy03LjEuMS5G
aW5hbC5qYXI6Ny4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5JbnRlcmNlcHRv
ckNvbnRleHQucHJvY2VlZChJbnRlcmNlcHRvckNvbnRleHQuamF2YToyODgpIFtqYm9zcy1pbnZv
Y2F0aW9uLmphcjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5hcy5lamIzLmNvbXBvbmVudC5p
bnRlcmNlcHRvcnMuTG9nZ2luZ0ludGVyY2VwdG9yLnByb2Nlc3NJbnZvY2F0aW9uKExvZ2dpbmdJ
bnRlcmNlcHRvci5qYXZhOjU5KSBbamJvc3MtYXMtZWpiMy03LjEuMS5GaW5hbC5qYXI6Ny4xLjEu
RmluYWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5JbnRlcmNlcHRvckNvbnRleHQucHJvY2Vl
ZChJbnRlcmNlcHRvckNvbnRleHQuamF2YToyODgpIFtqYm9zcy1pbnZvY2F0aW9uLmphcjoxLjEu
MS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5hcy5lZS5jb21wb25lbnQuTmFtZXNwYWNlQ29udGV4dElu
dGVyY2VwdG9yLnByb2Nlc3NJbnZvY2F0aW9uKE5hbWVzcGFjZUNvbnRleHRJbnRlcmNlcHRvci5q
YXZhOjUwKSBbamJvc3MtYXMtZWUtNy4xLjEuRmluYWwuamFyOjcuMS4xLkZpbmFsXQoJYXQgb3Jn
Lmpib3NzLmludm9jYXRpb24uSW50ZXJjZXB0b3JDb250ZXh0LnByb2NlZWQoSW50ZXJjZXB0b3JD
b250ZXh0LmphdmE6Mjg4KSBbamJvc3MtaW52b2NhdGlvbi5qYXI6MS4xLjEuRmluYWxdCglhdCBv
cmcuamJvc3MuYXMuZWUuY29tcG9uZW50LlRDQ0xJbnRlcmNlcHRvci5wcm9jZXNzSW52b2NhdGlv
bihUQ0NMSW50ZXJjZXB0b3IuamF2YTo0NSkgW2pib3NzLWFzLWVlLTcuMS4xLkZpbmFsLmphcjo3
LjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLkludGVyY2VwdG9yQ29udGV4dC5w
cm9jZWVkKEludGVyY2VwdG9yQ29udGV4dC5qYXZhOjI4OCkgW2pib3NzLWludm9jYXRpb24uamFy
OjEuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmludm9jYXRpb24uQ2hhaW5lZEludGVyY2VwdG9y
LnByb2Nlc3NJbnZvY2F0aW9uKENoYWluZWRJbnRlcmNlcHRvci5qYXZhOjYxKSBbamJvc3MtaW52
b2NhdGlvbi5qYXI6MS4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuYXMuZWUuY29tcG9uZW50LlZp
ZXdTZXJ2aWNlJFZpZXcuaW52b2tlKFZpZXdTZXJ2aWNlLmphdmE6MTY1KSBbamJvc3MtYXMtZWUt
Ny4xLjEuRmluYWwuamFyOjcuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmFzLmVlLmNvbXBvbmVu
dC5WaWV3RGVzY3JpcHRpb24kMS5wcm9jZXNzSW52b2NhdGlvbihWaWV3RGVzY3JpcHRpb24uamF2
YToxNzMpIFtqYm9zcy1hcy1lZS03LjEuMS5GaW5hbC5qYXI6Ny4xLjEuRmluYWxdCglhdCBvcmcu
amJvc3MuaW52b2NhdGlvbi5JbnRlcmNlcHRvckNvbnRleHQucHJvY2VlZChJbnRlcmNlcHRvckNv
bnRleHQuamF2YToyODgpIFtqYm9zcy1pbnZvY2F0aW9uLmphcjoxLjEuMS5GaW5hbF0KCWF0IG9y
Zy5qYm9zcy5pbnZvY2F0aW9uLkNoYWluZWRJbnRlcmNlcHRvci5wcm9jZXNzSW52b2NhdGlvbihD
aGFpbmVkSW50ZXJjZXB0b3IuamF2YTo2MSkgW2pib3NzLWludm9jYXRpb24uamFyOjEuMS4xLkZp
bmFsXQoJYXQgb3JnLmpib3NzLmFzLmVlLmNvbXBvbmVudC5Qcm94eUludm9jYXRpb25IYW5kbGVy
Lmludm9rZShQcm94eUludm9jYXRpb25IYW5kbGVyLmphdmE6NzIpIFtqYm9zcy1hcy1lZS03LjEu
MS5GaW5hbC5qYXI6Ny4xLjEuRmluYWxdCglhdCBvcmcub3ZpcnQuZW5naW5lLmNvcmUuY29tbW9u
LmludGVyZmFjZXMuQmFja2VuZExvY2FsJCQkdmlldzEwLlJ1blF1ZXJ5KFVua25vd24gU291cmNl
KSBbY29tbW9uLmphcjpdCglhdCBvcmcub3ZpcnQuZW5naW5lLnVpLmZyb250ZW5kLnNlcnZlci5n
d3QuR2VuZXJpY0FwaUdXVFNlcnZpY2VJbXBsLlJ1blF1ZXJ5KEdlbmVyaWNBcGlHV1RTZXJ2aWNl
SW1wbC5qYXZhOjU5KQoJYXQgc3VuLnJlZmxlY3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmlu
dm9rZTAoTmF0aXZlIE1ldGhvZCkgW3J0LmphcjoxLjcuMF8yNV0KCWF0IHN1bi5yZWZsZWN0Lk5h
dGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UoTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmph
dmE6NTcpIFtydC5qYXI6MS43LjBfMjVdCglhdCBzdW4ucmVmbGVjdC5EZWxlZ2F0aW5nTWV0aG9k
QWNjZXNzb3JJbXBsLmludm9rZShEZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmphdmE6NDMp
IFtydC5qYXI6MS43LjBfMjVdCglhdCBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2QuaW52b2tlKE1l
dGhvZC5qYXZhOjYwNikgW3J0LmphcjoxLjcuMF8yNV0KCWF0IGNvbS5nb29nbGUuZ3d0LnJwYy5z
ZXJ2ZXIuUlBDLmludm9rZUFuZFN0cmVhbVJlc3BvbnNlKFJQQy5qYXZhOjE5NikKCWF0IGNvbS5n
b29nbGUuZ3d0LnJwYy5zZXJ2ZXIuUnBjU2VydmxldC5wcm9jZXNzQ2FsbChScGNTZXJ2bGV0Lmph
dmE6MTYxKQoJYXQgY29tLmdvb2dsZS5nd3QucnBjLnNlcnZlci5ScGNTZXJ2bGV0LnByb2Nlc3NQ
b3N0KFJwY1NlcnZsZXQuamF2YToyMjIpCglhdCBjb20uZ29vZ2xlLmd3dC51c2VyLnNlcnZlci5y
cGMuQWJzdHJhY3RSZW1vdGVTZXJ2aWNlU2VydmxldC5kb1Bvc3QoQWJzdHJhY3RSZW1vdGVTZXJ2
aWNlU2VydmxldC5qYXZhOjYyKQoJYXQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0LnNl
cnZpY2UoSHR0cFNlcnZsZXQuamF2YTo3NTQpIFtqYm9zcy1zZXJ2bGV0LTMuMC1hcGkuamFyOjEu
MC4xLkZpbmFsXQoJYXQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0LnNlcnZpY2UoSHR0
cFNlcnZsZXQuamF2YTo4NDcpIFtqYm9zcy1zZXJ2bGV0LTMuMC1hcGkuamFyOjEuMC4xLkZpbmFs
XQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLkFwcGxpY2F0aW9uRmlsdGVyQ2hhaW4uaW50
ZXJuYWxEb0ZpbHRlcihBcHBsaWNhdGlvbkZpbHRlckNoYWluLmphdmE6MzI5KQoJYXQgb3JnLmFw
YWNoZS5jYXRhbGluYS5jb3JlLkFwcGxpY2F0aW9uRmlsdGVyQ2hhaW4uZG9GaWx0ZXIoQXBwbGlj
YXRpb25GaWx0ZXJDaGFpbi5qYXZhOjI0OCkKCWF0IG9yZy5vdmlydC5lbmdpbmUudWkuZnJvbnRl
bmQuc2VydmVyLmd3dC5Hd3RDYWNoaW5nRmlsdGVyLmRvRmlsdGVyKEd3dENhY2hpbmdGaWx0ZXIu
amF2YToxMzIpCglhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUuQXBwbGljYXRpb25GaWx0ZXJD
aGFpbi5pbnRlcm5hbERvRmlsdGVyKEFwcGxpY2F0aW9uRmlsdGVyQ2hhaW4uamF2YToyODApCglh
dCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUuQXBwbGljYXRpb25GaWx0ZXJDaGFpbi5kb0ZpbHRl
cihBcHBsaWNhdGlvbkZpbHRlckNoYWluLmphdmE6MjQ4KQoJYXQgb3JnLm92aXJ0LmVuZ2luZS5j
b3JlLnV0aWxzLnNlcnZsZXQuTG9jYWxlRmlsdGVyLmRvRmlsdGVyKExvY2FsZUZpbHRlci5qYXZh
OjU5KSBbdXRpbHMuamFyOl0KCWF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuY29yZS5BcHBsaWNhdGlv
bkZpbHRlckNoYWluLmludGVybmFsRG9GaWx0ZXIoQXBwbGljYXRpb25GaWx0ZXJDaGFpbi5qYXZh
OjI4MCkKCWF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuY29yZS5BcHBsaWNhdGlvbkZpbHRlckNoYWlu
LmRvRmlsdGVyKEFwcGxpY2F0aW9uRmlsdGVyQ2hhaW4uamF2YToyNDgpCglhdCBvcmcuYXBhY2hl
LmNhdGFsaW5hLmNvcmUuU3RhbmRhcmRXcmFwcGVyVmFsdmUuaW52b2tlKFN0YW5kYXJkV3JhcHBl
clZhbHZlLmphdmE6Mjc1KQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLlN0YW5kYXJkQ29u
dGV4dFZhbHZlLmludm9rZShTdGFuZGFyZENvbnRleHRWYWx2ZS5qYXZhOjE2MSkKCWF0IG9yZy5h
cGFjaGUuY2F0YWxpbmEuYXV0aGVudGljYXRvci5BdXRoZW50aWNhdG9yQmFzZS5pbnZva2UoQXV0
aGVudGljYXRvckJhc2UuamF2YTo0ODkpCglhdCBvcmcuamJvc3MuYXMud2ViLnNlY3VyaXR5LlNl
Y3VyaXR5Q29udGV4dEFzc29jaWF0aW9uVmFsdmUuaW52b2tlKFNlY3VyaXR5Q29udGV4dEFzc29j
aWF0aW9uVmFsdmUuamF2YToxNTMpCglhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUuU3RhbmRh
cmRIb3N0VmFsdmUuaW52b2tlKFN0YW5kYXJkSG9zdFZhbHZlLmphdmE6MTU1KQoJYXQgb3JnLmFw
YWNoZS5jYXRhbGluYS52YWx2ZXMuRXJyb3JSZXBvcnRWYWx2ZS5pbnZva2UoRXJyb3JSZXBvcnRW
YWx2ZS5qYXZhOjEwMikKCWF0IG9yZy5qYm9zcy53ZWIucmV3cml0ZS5SZXdyaXRlVmFsdmUuaW52
b2tlKFJld3JpdGVWYWx2ZS5qYXZhOjQ2NikKCWF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuY29yZS5T
dGFuZGFyZEVuZ2luZVZhbHZlLmludm9rZShTdGFuZGFyZEVuZ2luZVZhbHZlLmphdmE6MTA5KQoJ
YXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb25uZWN0b3IuQ295b3RlQWRhcHRlci5zZXJ2aWNlKENv
eW90ZUFkYXB0ZXIuamF2YTozNjgpCglhdCBvcmcuYXBhY2hlLmNveW90ZS5odHRwMTEuSHR0cDEx
UHJvY2Vzc29yLnByb2Nlc3MoSHR0cDExUHJvY2Vzc29yLmphdmE6ODc3KQoJYXQgb3JnLmFwYWNo
ZS5jb3lvdGUuaHR0cDExLkh0dHAxMVByb3RvY29sJEh0dHAxMUNvbm5lY3Rpb25IYW5kbGVyLnBy
b2Nlc3MoSHR0cDExUHJvdG9jb2wuamF2YTo2NzEpCglhdCBvcmcuYXBhY2hlLnRvbWNhdC51dGls
Lm5ldC5KSW9FbmRwb2ludCRXb3JrZXIucnVuKEpJb0VuZHBvaW50LmphdmE6OTMwKQoJYXQgamF2
YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzI0KSBbcnQuamFyOjEuNy4wXzI1XQoKMjAx
My0wNy0wOCAxMzo0MzoxMyw0OTUgRVJST1IgW29yZy5vdmlydC5lbmdpbmUuY29yZS5kYWwuZGJi
cm9rZXIuZ2VuZXJpYy5EQkNvbmZpZ1V0aWxzXSAoaHR0cC0tMC4wLjAuMC04MDgwLTEpIEZhaWxl
ZCB0byBkZWNyeXB0IHZhbHVlIGZvciBwcm9wZXJ0eSBMb2NhbEFkbWluUGFzc3dvcmQgd2lsbCBi
ZSB1c2VkIGVuY3J5cHRlZCB2YWx1ZTogamF2YXguY3J5cHRvLkJhZFBhZGRpbmdFeGNlcHRpb246
IERhdGEgbXVzdCBzdGFydCB3aXRoIHplcm8KCWF0IHN1bi5zZWN1cml0eS5yc2EuUlNBUGFkZGlu
Zy51bnBhZFYxNShSU0FQYWRkaW5nLmphdmE6MzI1KSBbcnQuamFyOjEuNy4wXzI1XQoJYXQgc3Vu
LnNlY3VyaXR5LnJzYS5SU0FQYWRkaW5nLnVucGFkKFJTQVBhZGRpbmcuamF2YToyNzIpIFtydC5q
YXI6MS43LjBfMjVdCglhdCBjb20uc3VuLmNyeXB0by5wcm92aWRlci5SU0FDaXBoZXIuZG9GaW5h
bChSU0FDaXBoZXIuamF2YTozNTYpCglhdCBjb20uc3VuLmNyeXB0by5wcm92aWRlci5SU0FDaXBo
ZXIuZW5naW5lRG9GaW5hbChSU0FDaXBoZXIuamF2YTozODIpCglhdCBqYXZheC5jcnlwdG8uQ2lw
aGVyLmRvRmluYWwoQ2lwaGVyLmphdmE6MTkyMikgW2pjZS5qYXI6MS43LjBfMjVdCglhdCBvcmcu
b3ZpcnQuZW5naW5lLmNvcmUudXRpbHMuY3J5cHQuRW5naW5lRW5jcnlwdGlvblV0aWxzLmRlY3J5
cHQoRW5naW5lRW5jcnlwdGlvblV0aWxzLmphdmE6MTY5KSBbdXRpbHMuamFyOl0KCWF0IG9yZy5v
dmlydC5lbmdpbmUuY29yZS5kYWwuZGJicm9rZXIuZ2VuZXJpYy5EQkNvbmZpZ1V0aWxzLkdldFZh
bHVlKERCQ29uZmlnVXRpbHMuamF2YToxMDkpIFtkYWwuamFyOl0KCWF0IG9yZy5vdmlydC5lbmdp
bmUuY29yZS5kYWwuZGJicm9rZXIuZ2VuZXJpYy5EQkNvbmZpZ1V0aWxzLkdldFZhbHVlKERCQ29u
ZmlnVXRpbHMuamF2YToyMzEpIFtkYWwuamFyOl0KCWF0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5j
b21tb24uY29uZmlnLkNvbmZpZy5HZXRWYWx1ZShDb25maWcuamF2YToyMikgW2NvbW1vbi5qYXI6
XQoJYXQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmJsbC5HZXRDb25maWd1cmF0aW9uVmFsdWVzUXVl
cnkuZXhlY3V0ZVF1ZXJ5Q29tbWFuZChHZXRDb25maWd1cmF0aW9uVmFsdWVzUXVlcnkuamF2YTo0
OCkgW2JsbC5qYXI6XQoJYXQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmJsbC5RdWVyaWVzQ29tbWFu
ZEJhc2UuZXhlY3V0ZUNvbW1hbmQoUXVlcmllc0NvbW1hbmRCYXNlLmphdmE6NjUpIFtibGwuamFy
Ol0KCWF0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5kYWwuVmRjQ29tbWFuZEJhc2UuZXhlY3V0ZShW
ZGNDb21tYW5kQmFzZS5qYXZhOjI4KSBbZGFsLmphcjpdCglhdCBvcmcub3ZpcnQuZW5naW5lLmNv
cmUuYmxsLkJhY2tlbmQucnVuUXVlcnlJbXBsKEJhY2tlbmQuamF2YTo0NjApIFtibGwuamFyOl0K
CWF0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5ibGwuQmFja2VuZC5SdW5RdWVyeShCYWNrZW5kLmph
dmE6NDM3KSBbYmxsLmphcjpdCglhdCBzdW4ucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3Nvcklt
cGwuaW52b2tlMChOYXRpdmUgTWV0aG9kKSBbcnQuamFyOjEuNy4wXzI1XQoJYXQgc3VuLnJlZmxl
Y3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShOYXRpdmVNZXRob2RBY2Nlc3Nvcklt
cGwuamF2YTo1NykgW3J0LmphcjoxLjcuMF8yNV0KCWF0IHN1bi5yZWZsZWN0LkRlbGVnYXRpbmdN
ZXRob2RBY2Nlc3NvckltcGwuaW52b2tlKERlbGVnYXRpbmdNZXRob2RBY2Nlc3NvckltcGwuamF2
YTo0MykgW3J0LmphcjoxLjcuMF8yNV0KCWF0IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZC5pbnZv
a2UoTWV0aG9kLmphdmE6NjA2KSBbcnQuamFyOjEuNy4wXzI1XQoJYXQgb3JnLmpib3NzLmFzLmVl
LmNvbXBvbmVudC5NYW5hZ2VkUmVmZXJlbmNlTWV0aG9kSW50ZXJjZXB0b3JGYWN0b3J5JE1hbmFn
ZWRSZWZlcmVuY2VNZXRob2RJbnRlcmNlcHRvci5wcm9jZXNzSW52b2NhdGlvbihNYW5hZ2VkUmVm
ZXJlbmNlTWV0aG9kSW50ZXJjZXB0b3JGYWN0b3J5LmphdmE6NzIpIFtqYm9zcy1hcy1lZS03LjEu
MS5GaW5hbC5qYXI6Ny4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5JbnRlcmNl
cHRvckNvbnRleHQucHJvY2VlZChJbnRlcmNlcHRvckNvbnRleHQuamF2YToyODgpIFtqYm9zcy1p
bnZvY2F0aW9uLmphcjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLkludGVy
Y2VwdG9yQ29udGV4dCRJbnZvY2F0aW9uLnByb2NlZWQoSW50ZXJjZXB0b3JDb250ZXh0LmphdmE6
Mzc0KSBbamJvc3MtaW52b2NhdGlvbi5qYXI6MS4xLjEuRmluYWxdCglhdCBvcmcub3ZpcnQuZW5n
aW5lLmNvcmUuYmxsLmludGVyY2VwdG9ycy5UaHJlYWRMb2NhbFNlc3Npb25DbGVhbmVySW50ZXJj
ZXB0b3IuaW5qZWN0V2ViQ29udGV4dFRvVGhyZWFkTG9jYWwoVGhyZWFkTG9jYWxTZXNzaW9uQ2xl
YW5lckludGVyY2VwdG9yLmphdmE6MTMpIFtibGwuamFyOl0KCWF0IHN1bi5yZWZsZWN0Lk5hdGl2
ZU1ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UwKE5hdGl2ZSBNZXRob2QpIFtydC5qYXI6MS43LjBf
MjVdCglhdCBzdW4ucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlKE5hdGl2
ZU1ldGhvZEFjY2Vzc29ySW1wbC5qYXZhOjU3KSBbcnQuamFyOjEuNy4wXzI1XQoJYXQgc3VuLnJl
ZmxlY3QuRGVsZWdhdGluZ01ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UoRGVsZWdhdGluZ01ldGhv
ZEFjY2Vzc29ySW1wbC5qYXZhOjQzKSBbcnQuamFyOjEuNy4wXzI1XQoJYXQgamF2YS5sYW5nLnJl
ZmxlY3QuTWV0aG9kLmludm9rZShNZXRob2QuamF2YTo2MDYpIFtydC5qYXI6MS43LjBfMjVdCglh
dCBvcmcuamJvc3MuYXMuZWUuY29tcG9uZW50Lk1hbmFnZWRSZWZlcmVuY2VMaWZlY3ljbGVNZXRo
b2RJbnRlcmNlcHRvckZhY3RvcnkkTWFuYWdlZFJlZmVyZW5jZUxpZmVjeWNsZU1ldGhvZEludGVy
Y2VwdG9yLnByb2Nlc3NJbnZvY2F0aW9uKE1hbmFnZWRSZWZlcmVuY2VMaWZlY3ljbGVNZXRob2RJ
bnRlcmNlcHRvckZhY3RvcnkuamF2YToxMjMpIFtqYm9zcy1hcy1lZS03LjEuMS5GaW5hbC5qYXI6
Ny4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5JbnRlcmNlcHRvckNvbnRleHQu
cHJvY2VlZChJbnRlcmNlcHRvckNvbnRleHQuamF2YToyODgpIFtqYm9zcy1pbnZvY2F0aW9uLmph
cjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLldlYXZlZEludGVyY2VwdG9y
LnByb2Nlc3NJbnZvY2F0aW9uKFdlYXZlZEludGVyY2VwdG9yLmphdmE6NTMpIFtqYm9zcy1pbnZv
Y2F0aW9uLmphcjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5hcy5lZS5jb21wb25lbnQuaW50
ZXJjZXB0b3JzLlVzZXJJbnRlcmNlcHRvckZhY3RvcnkkMS5wcm9jZXNzSW52b2NhdGlvbihVc2Vy
SW50ZXJjZXB0b3JGYWN0b3J5LmphdmE6MzYpIFtqYm9zcy1hcy1lZS03LjEuMS5GaW5hbC5qYXI6
Ny4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5JbnRlcmNlcHRvckNvbnRleHQu
cHJvY2VlZChJbnRlcmNlcHRvckNvbnRleHQuamF2YToyODgpIFtqYm9zcy1pbnZvY2F0aW9uLmph
cjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLkluaXRpYWxJbnRlcmNlcHRv
ci5wcm9jZXNzSW52b2NhdGlvbihJbml0aWFsSW50ZXJjZXB0b3IuamF2YToyMSkgW2pib3NzLWlu
dm9jYXRpb24uamFyOjEuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmludm9jYXRpb24uSW50ZXJj
ZXB0b3JDb250ZXh0LnByb2NlZWQoSW50ZXJjZXB0b3JDb250ZXh0LmphdmE6Mjg4KSBbamJvc3Mt
aW52b2NhdGlvbi5qYXI6MS4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5DaGFp
bmVkSW50ZXJjZXB0b3IucHJvY2Vzc0ludm9jYXRpb24oQ2hhaW5lZEludGVyY2VwdG9yLmphdmE6
NjEpIFtqYm9zcy1pbnZvY2F0aW9uLmphcjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5hcy5l
ZS5jb21wb25lbnQuaW50ZXJjZXB0b3JzLkNvbXBvbmVudERpc3BhdGNoZXJJbnRlcmNlcHRvci5w
cm9jZXNzSW52b2NhdGlvbihDb21wb25lbnREaXNwYXRjaGVySW50ZXJjZXB0b3IuamF2YTo1Mykg
W2pib3NzLWFzLWVlLTcuMS4xLkZpbmFsLmphcjo3LjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5p
bnZvY2F0aW9uLkludGVyY2VwdG9yQ29udGV4dC5wcm9jZWVkKEludGVyY2VwdG9yQ29udGV4dC5q
YXZhOjI4OCkgW2pib3NzLWludm9jYXRpb24uamFyOjEuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3Nz
LmFzLmVqYjMuY29tcG9uZW50LnNpbmdsZXRvbi5TaW5nbGV0b25Db21wb25lbnRJbnN0YW5jZUFz
c29jaWF0aW9uSW50ZXJjZXB0b3IucHJvY2Vzc0ludm9jYXRpb24oU2luZ2xldG9uQ29tcG9uZW50
SW5zdGFuY2VBc3NvY2lhdGlvbkludGVyY2VwdG9yLmphdmE6NTMpIFtqYm9zcy1hcy1lamIzLTcu
MS4xLkZpbmFsLmphcjo3LjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLkludGVy
Y2VwdG9yQ29udGV4dC5wcm9jZWVkKEludGVyY2VwdG9yQ29udGV4dC5qYXZhOjI4OCkgW2pib3Nz
LWludm9jYXRpb24uamFyOjEuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmFzLmVqYjMudHguQ01U
VHhJbnRlcmNlcHRvci5pbnZva2VJbk5vVHgoQ01UVHhJbnRlcmNlcHRvci5qYXZhOjIxMSkgW2pi
b3NzLWFzLWVqYjMtNy4xLjEuRmluYWwuamFyOjcuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmFz
LmVqYjMudHguQ01UVHhJbnRlcmNlcHRvci5zdXBwb3J0cyhDTVRUeEludGVyY2VwdG9yLmphdmE6
MzYzKSBbamJvc3MtYXMtZWpiMy03LjEuMS5GaW5hbC5qYXI6Ny4xLjEuRmluYWxdCglhdCBvcmcu
amJvc3MuYXMuZWpiMy50eC5DTVRUeEludGVyY2VwdG9yLnByb2Nlc3NJbnZvY2F0aW9uKENNVFR4
SW50ZXJjZXB0b3IuamF2YToxOTQpIFtqYm9zcy1hcy1lamIzLTcuMS4xLkZpbmFsLmphcjo3LjEu
MS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLkludGVyY2VwdG9yQ29udGV4dC5wcm9j
ZWVkKEludGVyY2VwdG9yQ29udGV4dC5qYXZhOjI4OCkgW2pib3NzLWludm9jYXRpb24uamFyOjEu
MS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmFzLmVqYjMuY29tcG9uZW50LmludGVyY2VwdG9ycy5D
dXJyZW50SW52b2NhdGlvbkNvbnRleHRJbnRlcmNlcHRvci5wcm9jZXNzSW52b2NhdGlvbihDdXJy
ZW50SW52b2NhdGlvbkNvbnRleHRJbnRlcmNlcHRvci5qYXZhOjQxKSBbamJvc3MtYXMtZWpiMy03
LjEuMS5GaW5hbC5qYXI6Ny4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5JbnRl
cmNlcHRvckNvbnRleHQucHJvY2VlZChJbnRlcmNlcHRvckNvbnRleHQuamF2YToyODgpIFtqYm9z
cy1pbnZvY2F0aW9uLmphcjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5hcy5lamIzLmNvbXBv
bmVudC5pbnRlcmNlcHRvcnMuTG9nZ2luZ0ludGVyY2VwdG9yLnByb2Nlc3NJbnZvY2F0aW9uKExv
Z2dpbmdJbnRlcmNlcHRvci5qYXZhOjU5KSBbamJvc3MtYXMtZWpiMy03LjEuMS5GaW5hbC5qYXI6
Ny4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5JbnRlcmNlcHRvckNvbnRleHQu
cHJvY2VlZChJbnRlcmNlcHRvckNvbnRleHQuamF2YToyODgpIFtqYm9zcy1pbnZvY2F0aW9uLmph
cjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5hcy5lZS5jb21wb25lbnQuTmFtZXNwYWNlQ29u
dGV4dEludGVyY2VwdG9yLnByb2Nlc3NJbnZvY2F0aW9uKE5hbWVzcGFjZUNvbnRleHRJbnRlcmNl
cHRvci5qYXZhOjUwKSBbamJvc3MtYXMtZWUtNy4xLjEuRmluYWwuamFyOjcuMS4xLkZpbmFsXQoJ
YXQgb3JnLmpib3NzLmludm9jYXRpb24uSW50ZXJjZXB0b3JDb250ZXh0LnByb2NlZWQoSW50ZXJj
ZXB0b3JDb250ZXh0LmphdmE6Mjg4KSBbamJvc3MtaW52b2NhdGlvbi5qYXI6MS4xLjEuRmluYWxd
CglhdCBvcmcuamJvc3MuYXMuZWUuY29tcG9uZW50LlRDQ0xJbnRlcmNlcHRvci5wcm9jZXNzSW52
b2NhdGlvbihUQ0NMSW50ZXJjZXB0b3IuamF2YTo0NSkgW2pib3NzLWFzLWVlLTcuMS4xLkZpbmFs
Lmphcjo3LjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLkludGVyY2VwdG9yQ29u
dGV4dC5wcm9jZWVkKEludGVyY2VwdG9yQ29udGV4dC5qYXZhOjI4OCkgW2pib3NzLWludm9jYXRp
b24uamFyOjEuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmludm9jYXRpb24uQ2hhaW5lZEludGVy
Y2VwdG9yLnByb2Nlc3NJbnZvY2F0aW9uKENoYWluZWRJbnRlcmNlcHRvci5qYXZhOjYxKSBbamJv
c3MtaW52b2NhdGlvbi5qYXI6MS4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuYXMuZWUuY29tcG9u
ZW50LlZpZXdTZXJ2aWNlJFZpZXcuaW52b2tlKFZpZXdTZXJ2aWNlLmphdmE6MTY1KSBbamJvc3Mt
YXMtZWUtNy4xLjEuRmluYWwuamFyOjcuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmFzLmVlLmNv
bXBvbmVudC5WaWV3RGVzY3JpcHRpb24kMS5wcm9jZXNzSW52b2NhdGlvbihWaWV3RGVzY3JpcHRp
b24uamF2YToxNzMpIFtqYm9zcy1hcy1lZS03LjEuMS5GaW5hbC5qYXI6Ny4xLjEuRmluYWxdCglh
dCBvcmcuamJvc3MuaW52b2NhdGlvbi5JbnRlcmNlcHRvckNvbnRleHQucHJvY2VlZChJbnRlcmNl
cHRvckNvbnRleHQuamF2YToyODgpIFtqYm9zcy1pbnZvY2F0aW9uLmphcjoxLjEuMS5GaW5hbF0K
CWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLkNoYWluZWRJbnRlcmNlcHRvci5wcm9jZXNzSW52b2Nh
dGlvbihDaGFpbmVkSW50ZXJjZXB0b3IuamF2YTo2MSkgW2pib3NzLWludm9jYXRpb24uamFyOjEu
MS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmFzLmVlLmNvbXBvbmVudC5Qcm94eUludm9jYXRpb25I
YW5kbGVyLmludm9rZShQcm94eUludm9jYXRpb25IYW5kbGVyLmphdmE6NzIpIFtqYm9zcy1hcy1l
ZS03LjEuMS5GaW5hbC5qYXI6Ny4xLjEuRmluYWxdCglhdCBvcmcub3ZpcnQuZW5naW5lLmNvcmUu
Y29tbW9uLmludGVyZmFjZXMuQmFja2VuZExvY2FsJCQkdmlldzEwLlJ1blF1ZXJ5KFVua25vd24g
U291cmNlKSBbY29tbW9uLmphcjpdCglhdCBvcmcub3ZpcnQuZW5naW5lLnVpLmZyb250ZW5kLnNl
cnZlci5nd3QuR2VuZXJpY0FwaUdXVFNlcnZpY2VJbXBsLlJ1blF1ZXJ5KEdlbmVyaWNBcGlHV1RT
ZXJ2aWNlSW1wbC5qYXZhOjU5KQoJYXQgc3VuLnJlZmxlY3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJ
bXBsLmludm9rZTAoTmF0aXZlIE1ldGhvZCkgW3J0LmphcjoxLjcuMF8yNV0KCWF0IHN1bi5yZWZs
ZWN0Lk5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UoTmF0aXZlTWV0aG9kQWNjZXNzb3JJ
bXBsLmphdmE6NTcpIFtydC5qYXI6MS43LjBfMjVdCglhdCBzdW4ucmVmbGVjdC5EZWxlZ2F0aW5n
TWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShEZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmph
dmE6NDMpIFtydC5qYXI6MS43LjBfMjVdCglhdCBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2QuaW52
b2tlKE1ldGhvZC5qYXZhOjYwNikgW3J0LmphcjoxLjcuMF8yNV0KCWF0IGNvbS5nb29nbGUuZ3d0
LnJwYy5zZXJ2ZXIuUlBDLmludm9rZUFuZFN0cmVhbVJlc3BvbnNlKFJQQy5qYXZhOjE5NikKCWF0
IGNvbS5nb29nbGUuZ3d0LnJwYy5zZXJ2ZXIuUnBjU2VydmxldC5wcm9jZXNzQ2FsbChScGNTZXJ2
bGV0LmphdmE6MTYxKQoJYXQgY29tLmdvb2dsZS5nd3QucnBjLnNlcnZlci5ScGNTZXJ2bGV0LnBy
b2Nlc3NQb3N0KFJwY1NlcnZsZXQuamF2YToyMjIpCglhdCBjb20uZ29vZ2xlLmd3dC51c2VyLnNl
cnZlci5ycGMuQWJzdHJhY3RSZW1vdGVTZXJ2aWNlU2VydmxldC5kb1Bvc3QoQWJzdHJhY3RSZW1v
dGVTZXJ2aWNlU2VydmxldC5qYXZhOjYyKQoJYXQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2
bGV0LnNlcnZpY2UoSHR0cFNlcnZsZXQuamF2YTo3NTQpIFtqYm9zcy1zZXJ2bGV0LTMuMC1hcGku
amFyOjEuMC4xLkZpbmFsXQoJYXQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0LnNlcnZp
Y2UoSHR0cFNlcnZsZXQuamF2YTo4NDcpIFtqYm9zcy1zZXJ2bGV0LTMuMC1hcGkuamFyOjEuMC4x
LkZpbmFsXQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLkFwcGxpY2F0aW9uRmlsdGVyQ2hh
aW4uaW50ZXJuYWxEb0ZpbHRlcihBcHBsaWNhdGlvbkZpbHRlckNoYWluLmphdmE6MzI5KQoJYXQg
b3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLkFwcGxpY2F0aW9uRmlsdGVyQ2hhaW4uZG9GaWx0ZXIo
QXBwbGljYXRpb25GaWx0ZXJDaGFpbi5qYXZhOjI0OCkKCWF0IG9yZy5vdmlydC5lbmdpbmUudWku
ZnJvbnRlbmQuc2VydmVyLmd3dC5Hd3RDYWNoaW5nRmlsdGVyLmRvRmlsdGVyKEd3dENhY2hpbmdG
aWx0ZXIuamF2YToxMzIpCglhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUuQXBwbGljYXRpb25G
aWx0ZXJDaGFpbi5pbnRlcm5hbERvRmlsdGVyKEFwcGxpY2F0aW9uRmlsdGVyQ2hhaW4uamF2YToy
ODApCglhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUuQXBwbGljYXRpb25GaWx0ZXJDaGFpbi5k
b0ZpbHRlcihBcHBsaWNhdGlvbkZpbHRlckNoYWluLmphdmE6MjQ4KQoJYXQgb3JnLm92aXJ0LmVu
Z2luZS5jb3JlLnV0aWxzLnNlcnZsZXQuTG9jYWxlRmlsdGVyLmRvRmlsdGVyKExvY2FsZUZpbHRl
ci5qYXZhOjU5KSBbdXRpbHMuamFyOl0KCWF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuY29yZS5BcHBs
aWNhdGlvbkZpbHRlckNoYWluLmludGVybmFsRG9GaWx0ZXIoQXBwbGljYXRpb25GaWx0ZXJDaGFp
bi5qYXZhOjI4MCkKCWF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuY29yZS5BcHBsaWNhdGlvbkZpbHRl
ckNoYWluLmRvRmlsdGVyKEFwcGxpY2F0aW9uRmlsdGVyQ2hhaW4uamF2YToyNDgpCglhdCBvcmcu
YXBhY2hlLmNhdGFsaW5hLmNvcmUuU3RhbmRhcmRXcmFwcGVyVmFsdmUuaW52b2tlKFN0YW5kYXJk
V3JhcHBlclZhbHZlLmphdmE6Mjc1KQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLlN0YW5k
YXJkQ29udGV4dFZhbHZlLmludm9rZShTdGFuZGFyZENvbnRleHRWYWx2ZS5qYXZhOjE2MSkKCWF0
IG9yZy5hcGFjaGUuY2F0YWxpbmEuYXV0aGVudGljYXRvci5BdXRoZW50aWNhdG9yQmFzZS5pbnZv
a2UoQXV0aGVudGljYXRvckJhc2UuamF2YTo0ODkpCglhdCBvcmcuamJvc3MuYXMud2ViLnNlY3Vy
aXR5LlNlY3VyaXR5Q29udGV4dEFzc29jaWF0aW9uVmFsdmUuaW52b2tlKFNlY3VyaXR5Q29udGV4
dEFzc29jaWF0aW9uVmFsdmUuamF2YToxNTMpCglhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUu
U3RhbmRhcmRIb3N0VmFsdmUuaW52b2tlKFN0YW5kYXJkSG9zdFZhbHZlLmphdmE6MTU1KQoJYXQg
b3JnLmFwYWNoZS5jYXRhbGluYS52YWx2ZXMuRXJyb3JSZXBvcnRWYWx2ZS5pbnZva2UoRXJyb3JS
ZXBvcnRWYWx2ZS5qYXZhOjEwMikKCWF0IG9yZy5qYm9zcy53ZWIucmV3cml0ZS5SZXdyaXRlVmFs
dmUuaW52b2tlKFJld3JpdGVWYWx2ZS5qYXZhOjQ2NikKCWF0IG9yZy5hcGFjaGUuY2F0YWxpbmEu
Y29yZS5TdGFuZGFyZEVuZ2luZVZhbHZlLmludm9rZShTdGFuZGFyZEVuZ2luZVZhbHZlLmphdmE6
MTA5KQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb25uZWN0b3IuQ295b3RlQWRhcHRlci5zZXJ2
aWNlKENveW90ZUFkYXB0ZXIuamF2YTozNjgpCglhdCBvcmcuYXBhY2hlLmNveW90ZS5odHRwMTEu
SHR0cDExUHJvY2Vzc29yLnByb2Nlc3MoSHR0cDExUHJvY2Vzc29yLmphdmE6ODc3KQoJYXQgb3Jn
LmFwYWNoZS5jb3lvdGUuaHR0cDExLkh0dHAxMVByb3RvY29sJEh0dHAxMUNvbm5lY3Rpb25IYW5k
bGVyLnByb2Nlc3MoSHR0cDExUHJvdG9jb2wuamF2YTo2NzEpCglhdCBvcmcuYXBhY2hlLnRvbWNh
dC51dGlsLm5ldC5KSW9FbmRwb2ludCRXb3JrZXIucnVuKEpJb0VuZHBvaW50LmphdmE6OTMwKQoJ
YXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzI0KSBbcnQuamFyOjEuNy4wXzI1
XQoKMjAxMy0wNy0wOCAxMzo0MzoxMyw1MzggRVJST1IgW29yZy5vdmlydC5lbmdpbmUuY29yZS5k
YWwuZGJicm9rZXIuZ2VuZXJpYy5EQkNvbmZpZ1V0aWxzXSAoaHR0cC0tMC4wLjAuMC04MDgwLTEp
IEZhaWxlZCB0byBkZWNyeXB0IHZhbHVlIGZvciBwcm9wZXJ0eSBMb2NhbEFkbWluUGFzc3dvcmQg
d2lsbCBiZSB1c2VkIGVuY3J5cHRlZCB2YWx1ZTogamF2YXguY3J5cHRvLkJhZFBhZGRpbmdFeGNl
cHRpb246IERhdGEgbXVzdCBzdGFydCB3aXRoIHplcm8KCWF0IHN1bi5zZWN1cml0eS5yc2EuUlNB
UGFkZGluZy51bnBhZFYxNShSU0FQYWRkaW5nLmphdmE6MzI1KSBbcnQuamFyOjEuNy4wXzI1XQoJ
YXQgc3VuLnNlY3VyaXR5LnJzYS5SU0FQYWRkaW5nLnVucGFkKFJTQVBhZGRpbmcuamF2YToyNzIp
IFtydC5qYXI6MS43LjBfMjVdCglhdCBjb20uc3VuLmNyeXB0by5wcm92aWRlci5SU0FDaXBoZXIu
ZG9GaW5hbChSU0FDaXBoZXIuamF2YTozNTYpCglhdCBjb20uc3VuLmNyeXB0by5wcm92aWRlci5S
U0FDaXBoZXIuZW5naW5lRG9GaW5hbChSU0FDaXBoZXIuamF2YTozODIpCglhdCBqYXZheC5jcnlw
dG8uQ2lwaGVyLmRvRmluYWwoQ2lwaGVyLmphdmE6MTkyMikgW2pjZS5qYXI6MS43LjBfMjVdCglh
dCBvcmcub3ZpcnQuZW5naW5lLmNvcmUudXRpbHMuY3J5cHQuRW5naW5lRW5jcnlwdGlvblV0aWxz
LmRlY3J5cHQoRW5naW5lRW5jcnlwdGlvblV0aWxzLmphdmE6MTY5KSBbdXRpbHMuamFyOl0KCWF0
IG9yZy5vdmlydC5lbmdpbmUuY29yZS5kYWwuZGJicm9rZXIuZ2VuZXJpYy5EQkNvbmZpZ1V0aWxz
LkdldFZhbHVlKERCQ29uZmlnVXRpbHMuamF2YToxMDkpIFtkYWwuamFyOl0KCWF0IG9yZy5vdmly
dC5lbmdpbmUuY29yZS5kYWwuZGJicm9rZXIuZ2VuZXJpYy5EQkNvbmZpZ1V0aWxzLkdldFZhbHVl
KERCQ29uZmlnVXRpbHMuamF2YToyMzEpIFtkYWwuamFyOl0KCWF0IG9yZy5vdmlydC5lbmdpbmUu
Y29yZS5jb21tb24uY29uZmlnLkNvbmZpZy5HZXRWYWx1ZShDb25maWcuamF2YToyMikgW2NvbW1v
bi5qYXI6XQoJYXQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmJsbC5HZXRDb25maWd1cmF0aW9uVmFs
dWVzUXVlcnkuZXhlY3V0ZVF1ZXJ5Q29tbWFuZChHZXRDb25maWd1cmF0aW9uVmFsdWVzUXVlcnku
amF2YTo0OCkgW2JsbC5qYXI6XQoJYXQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmJsbC5RdWVyaWVz
Q29tbWFuZEJhc2UuZXhlY3V0ZUNvbW1hbmQoUXVlcmllc0NvbW1hbmRCYXNlLmphdmE6NjUpIFti
bGwuamFyOl0KCWF0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5kYWwuVmRjQ29tbWFuZEJhc2UuZXhl
Y3V0ZShWZGNDb21tYW5kQmFzZS5qYXZhOjI4KSBbZGFsLmphcjpdCglhdCBvcmcub3ZpcnQuZW5n
aW5lLmNvcmUuYmxsLkJhY2tlbmQucnVuUXVlcnlJbXBsKEJhY2tlbmQuamF2YTo0NjApIFtibGwu
amFyOl0KCWF0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5ibGwuQmFja2VuZC5SdW5RdWVyeShCYWNr
ZW5kLmphdmE6NDM3KSBbYmxsLmphcjpdCglhdCBzdW4ucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nl
c3NvckltcGwuaW52b2tlMChOYXRpdmUgTWV0aG9kKSBbcnQuamFyOjEuNy4wXzI1XQoJYXQgc3Vu
LnJlZmxlY3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShOYXRpdmVNZXRob2RBY2Nl
c3NvckltcGwuamF2YTo1NykgW3J0LmphcjoxLjcuMF8yNV0KCWF0IHN1bi5yZWZsZWN0LkRlbGVn
YXRpbmdNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlKERlbGVnYXRpbmdNZXRob2RBY2Nlc3Nvcklt
cGwuamF2YTo0MykgW3J0LmphcjoxLjcuMF8yNV0KCWF0IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhv
ZC5pbnZva2UoTWV0aG9kLmphdmE6NjA2KSBbcnQuamFyOjEuNy4wXzI1XQoJYXQgb3JnLmpib3Nz
LmFzLmVlLmNvbXBvbmVudC5NYW5hZ2VkUmVmZXJlbmNlTWV0aG9kSW50ZXJjZXB0b3JGYWN0b3J5
JE1hbmFnZWRSZWZlcmVuY2VNZXRob2RJbnRlcmNlcHRvci5wcm9jZXNzSW52b2NhdGlvbihNYW5h
Z2VkUmVmZXJlbmNlTWV0aG9kSW50ZXJjZXB0b3JGYWN0b3J5LmphdmE6NzIpIFtqYm9zcy1hcy1l
ZS03LjEuMS5GaW5hbC5qYXI6Ny4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5J
bnRlcmNlcHRvckNvbnRleHQucHJvY2VlZChJbnRlcmNlcHRvckNvbnRleHQuamF2YToyODgpIFtq
Ym9zcy1pbnZvY2F0aW9uLmphcjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9u
LkludGVyY2VwdG9yQ29udGV4dCRJbnZvY2F0aW9uLnByb2NlZWQoSW50ZXJjZXB0b3JDb250ZXh0
LmphdmE6Mzc0KSBbamJvc3MtaW52b2NhdGlvbi5qYXI6MS4xLjEuRmluYWxdCglhdCBvcmcub3Zp
cnQuZW5naW5lLmNvcmUuYmxsLmludGVyY2VwdG9ycy5UaHJlYWRMb2NhbFNlc3Npb25DbGVhbmVy
SW50ZXJjZXB0b3IuaW5qZWN0V2ViQ29udGV4dFRvVGhyZWFkTG9jYWwoVGhyZWFkTG9jYWxTZXNz
aW9uQ2xlYW5lckludGVyY2VwdG9yLmphdmE6MTMpIFtibGwuamFyOl0KCWF0IHN1bi5yZWZsZWN0
Lk5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UwKE5hdGl2ZSBNZXRob2QpIFtydC5qYXI6
MS43LjBfMjVdCglhdCBzdW4ucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuaW52b2tl
KE5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5qYXZhOjU3KSBbcnQuamFyOjEuNy4wXzI1XQoJYXQg
c3VuLnJlZmxlY3QuRGVsZWdhdGluZ01ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UoRGVsZWdhdGlu
Z01ldGhvZEFjY2Vzc29ySW1wbC5qYXZhOjQzKSBbcnQuamFyOjEuNy4wXzI1XQoJYXQgamF2YS5s
YW5nLnJlZmxlY3QuTWV0aG9kLmludm9rZShNZXRob2QuamF2YTo2MDYpIFtydC5qYXI6MS43LjBf
MjVdCglhdCBvcmcuamJvc3MuYXMuZWUuY29tcG9uZW50Lk1hbmFnZWRSZWZlcmVuY2VMaWZlY3lj
bGVNZXRob2RJbnRlcmNlcHRvckZhY3RvcnkkTWFuYWdlZFJlZmVyZW5jZUxpZmVjeWNsZU1ldGhv
ZEludGVyY2VwdG9yLnByb2Nlc3NJbnZvY2F0aW9uKE1hbmFnZWRSZWZlcmVuY2VMaWZlY3ljbGVN
ZXRob2RJbnRlcmNlcHRvckZhY3RvcnkuamF2YToxMjMpIFtqYm9zcy1hcy1lZS03LjEuMS5GaW5h
bC5qYXI6Ny4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5JbnRlcmNlcHRvckNv
bnRleHQucHJvY2VlZChJbnRlcmNlcHRvckNvbnRleHQuamF2YToyODgpIFtqYm9zcy1pbnZvY2F0
aW9uLmphcjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLldlYXZlZEludGVy
Y2VwdG9yLnByb2Nlc3NJbnZvY2F0aW9uKFdlYXZlZEludGVyY2VwdG9yLmphdmE6NTMpIFtqYm9z
cy1pbnZvY2F0aW9uLmphcjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5hcy5lZS5jb21wb25l
bnQuaW50ZXJjZXB0b3JzLlVzZXJJbnRlcmNlcHRvckZhY3RvcnkkMS5wcm9jZXNzSW52b2NhdGlv
bihVc2VySW50ZXJjZXB0b3JGYWN0b3J5LmphdmE6MzYpIFtqYm9zcy1hcy1lZS03LjEuMS5GaW5h
bC5qYXI6Ny4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5JbnRlcmNlcHRvckNv
bnRleHQucHJvY2VlZChJbnRlcmNlcHRvckNvbnRleHQuamF2YToyODgpIFtqYm9zcy1pbnZvY2F0
aW9uLmphcjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLkluaXRpYWxJbnRl
cmNlcHRvci5wcm9jZXNzSW52b2NhdGlvbihJbml0aWFsSW50ZXJjZXB0b3IuamF2YToyMSkgW2pi
b3NzLWludm9jYXRpb24uamFyOjEuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmludm9jYXRpb24u
SW50ZXJjZXB0b3JDb250ZXh0LnByb2NlZWQoSW50ZXJjZXB0b3JDb250ZXh0LmphdmE6Mjg4KSBb
amJvc3MtaW52b2NhdGlvbi5qYXI6MS4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlv
bi5DaGFpbmVkSW50ZXJjZXB0b3IucHJvY2Vzc0ludm9jYXRpb24oQ2hhaW5lZEludGVyY2VwdG9y
LmphdmE6NjEpIFtqYm9zcy1pbnZvY2F0aW9uLmphcjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9z
cy5hcy5lZS5jb21wb25lbnQuaW50ZXJjZXB0b3JzLkNvbXBvbmVudERpc3BhdGNoZXJJbnRlcmNl
cHRvci5wcm9jZXNzSW52b2NhdGlvbihDb21wb25lbnREaXNwYXRjaGVySW50ZXJjZXB0b3IuamF2
YTo1MykgW2pib3NzLWFzLWVlLTcuMS4xLkZpbmFsLmphcjo3LjEuMS5GaW5hbF0KCWF0IG9yZy5q
Ym9zcy5pbnZvY2F0aW9uLkludGVyY2VwdG9yQ29udGV4dC5wcm9jZWVkKEludGVyY2VwdG9yQ29u
dGV4dC5qYXZhOjI4OCkgW2pib3NzLWludm9jYXRpb24uamFyOjEuMS4xLkZpbmFsXQoJYXQgb3Jn
Lmpib3NzLmFzLmVqYjMuY29tcG9uZW50LnNpbmdsZXRvbi5TaW5nbGV0b25Db21wb25lbnRJbnN0
YW5jZUFzc29jaWF0aW9uSW50ZXJjZXB0b3IucHJvY2Vzc0ludm9jYXRpb24oU2luZ2xldG9uQ29t
cG9uZW50SW5zdGFuY2VBc3NvY2lhdGlvbkludGVyY2VwdG9yLmphdmE6NTMpIFtqYm9zcy1hcy1l
amIzLTcuMS4xLkZpbmFsLmphcjo3LjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9u
LkludGVyY2VwdG9yQ29udGV4dC5wcm9jZWVkKEludGVyY2VwdG9yQ29udGV4dC5qYXZhOjI4OCkg
W2pib3NzLWludm9jYXRpb24uamFyOjEuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmFzLmVqYjMu
dHguQ01UVHhJbnRlcmNlcHRvci5pbnZva2VJbk5vVHgoQ01UVHhJbnRlcmNlcHRvci5qYXZhOjIx
MSkgW2pib3NzLWFzLWVqYjMtNy4xLjEuRmluYWwuamFyOjcuMS4xLkZpbmFsXQoJYXQgb3JnLmpi
b3NzLmFzLmVqYjMudHguQ01UVHhJbnRlcmNlcHRvci5zdXBwb3J0cyhDTVRUeEludGVyY2VwdG9y
LmphdmE6MzYzKSBbamJvc3MtYXMtZWpiMy03LjEuMS5GaW5hbC5qYXI6Ny4xLjEuRmluYWxdCglh
dCBvcmcuamJvc3MuYXMuZWpiMy50eC5DTVRUeEludGVyY2VwdG9yLnByb2Nlc3NJbnZvY2F0aW9u
KENNVFR4SW50ZXJjZXB0b3IuamF2YToxOTQpIFtqYm9zcy1hcy1lamIzLTcuMS4xLkZpbmFsLmph
cjo3LjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLkludGVyY2VwdG9yQ29udGV4
dC5wcm9jZWVkKEludGVyY2VwdG9yQ29udGV4dC5qYXZhOjI4OCkgW2pib3NzLWludm9jYXRpb24u
amFyOjEuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmFzLmVqYjMuY29tcG9uZW50LmludGVyY2Vw
dG9ycy5DdXJyZW50SW52b2NhdGlvbkNvbnRleHRJbnRlcmNlcHRvci5wcm9jZXNzSW52b2NhdGlv
bihDdXJyZW50SW52b2NhdGlvbkNvbnRleHRJbnRlcmNlcHRvci5qYXZhOjQxKSBbamJvc3MtYXMt
ZWpiMy03LjEuMS5GaW5hbC5qYXI6Ny4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlv
bi5JbnRlcmNlcHRvckNvbnRleHQucHJvY2VlZChJbnRlcmNlcHRvckNvbnRleHQuamF2YToyODgp
IFtqYm9zcy1pbnZvY2F0aW9uLmphcjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5hcy5lamIz
LmNvbXBvbmVudC5pbnRlcmNlcHRvcnMuTG9nZ2luZ0ludGVyY2VwdG9yLnByb2Nlc3NJbnZvY2F0
aW9uKExvZ2dpbmdJbnRlcmNlcHRvci5qYXZhOjU5KSBbamJvc3MtYXMtZWpiMy03LjEuMS5GaW5h
bC5qYXI6Ny4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5JbnRlcmNlcHRvckNv
bnRleHQucHJvY2VlZChJbnRlcmNlcHRvckNvbnRleHQuamF2YToyODgpIFtqYm9zcy1pbnZvY2F0
aW9uLmphcjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5hcy5lZS5jb21wb25lbnQuTmFtZXNw
YWNlQ29udGV4dEludGVyY2VwdG9yLnByb2Nlc3NJbnZvY2F0aW9uKE5hbWVzcGFjZUNvbnRleHRJ
bnRlcmNlcHRvci5qYXZhOjUwKSBbamJvc3MtYXMtZWUtNy4xLjEuRmluYWwuamFyOjcuMS4xLkZp
bmFsXQoJYXQgb3JnLmpib3NzLmludm9jYXRpb24uSW50ZXJjZXB0b3JDb250ZXh0LnByb2NlZWQo
SW50ZXJjZXB0b3JDb250ZXh0LmphdmE6Mjg4KSBbamJvc3MtaW52b2NhdGlvbi5qYXI6MS4xLjEu
RmluYWxdCglhdCBvcmcuamJvc3MuYXMuZWUuY29tcG9uZW50LlRDQ0xJbnRlcmNlcHRvci5wcm9j
ZXNzSW52b2NhdGlvbihUQ0NMSW50ZXJjZXB0b3IuamF2YTo0NSkgW2pib3NzLWFzLWVlLTcuMS4x
LkZpbmFsLmphcjo3LjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLkludGVyY2Vw
dG9yQ29udGV4dC5wcm9jZWVkKEludGVyY2VwdG9yQ29udGV4dC5qYXZhOjI4OCkgW2pib3NzLWlu
dm9jYXRpb24uamFyOjEuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmludm9jYXRpb24uQ2hhaW5l
ZEludGVyY2VwdG9yLnByb2Nlc3NJbnZvY2F0aW9uKENoYWluZWRJbnRlcmNlcHRvci5qYXZhOjYx
KSBbamJvc3MtaW52b2NhdGlvbi5qYXI6MS4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuYXMuZWUu
Y29tcG9uZW50LlZpZXdTZXJ2aWNlJFZpZXcuaW52b2tlKFZpZXdTZXJ2aWNlLmphdmE6MTY1KSBb
amJvc3MtYXMtZWUtNy4xLjEuRmluYWwuamFyOjcuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmFz
LmVlLmNvbXBvbmVudC5WaWV3RGVzY3JpcHRpb24kMS5wcm9jZXNzSW52b2NhdGlvbihWaWV3RGVz
Y3JpcHRpb24uamF2YToxNzMpIFtqYm9zcy1hcy1lZS03LjEuMS5GaW5hbC5qYXI6Ny4xLjEuRmlu
YWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5JbnRlcmNlcHRvckNvbnRleHQucHJvY2VlZChJ
bnRlcmNlcHRvckNvbnRleHQuamF2YToyODgpIFtqYm9zcy1pbnZvY2F0aW9uLmphcjoxLjEuMS5G
aW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLkNoYWluZWRJbnRlcmNlcHRvci5wcm9jZXNz
SW52b2NhdGlvbihDaGFpbmVkSW50ZXJjZXB0b3IuamF2YTo2MSkgW2pib3NzLWludm9jYXRpb24u
amFyOjEuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmFzLmVlLmNvbXBvbmVudC5Qcm94eUludm9j
YXRpb25IYW5kbGVyLmludm9rZShQcm94eUludm9jYXRpb25IYW5kbGVyLmphdmE6NzIpIFtqYm9z
cy1hcy1lZS03LjEuMS5GaW5hbC5qYXI6Ny4xLjEuRmluYWxdCglhdCBvcmcub3ZpcnQuZW5naW5l
LmNvcmUuY29tbW9uLmludGVyZmFjZXMuQmFja2VuZExvY2FsJCQkdmlldzEwLlJ1blF1ZXJ5KFVu
a25vd24gU291cmNlKSBbY29tbW9uLmphcjpdCglhdCBvcmcub3ZpcnQuZW5naW5lLnVpLmZyb250
ZW5kLnNlcnZlci5nd3QuR2VuZXJpY0FwaUdXVFNlcnZpY2VJbXBsLlJ1blF1ZXJ5KEdlbmVyaWNB
cGlHV1RTZXJ2aWNlSW1wbC5qYXZhOjU5KQoJYXQgc3VuLnJlZmxlY3QuTmF0aXZlTWV0aG9kQWNj
ZXNzb3JJbXBsLmludm9rZTAoTmF0aXZlIE1ldGhvZCkgW3J0LmphcjoxLjcuMF8yNV0KCWF0IHN1
bi5yZWZsZWN0Lk5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UoTmF0aXZlTWV0aG9kQWNj
ZXNzb3JJbXBsLmphdmE6NTcpIFtydC5qYXI6MS43LjBfMjVdCglhdCBzdW4ucmVmbGVjdC5EZWxl
Z2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShEZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJ
bXBsLmphdmE6NDMpIFtydC5qYXI6MS43LjBfMjVdCglhdCBqYXZhLmxhbmcucmVmbGVjdC5NZXRo
b2QuaW52b2tlKE1ldGhvZC5qYXZhOjYwNikgW3J0LmphcjoxLjcuMF8yNV0KCWF0IGNvbS5nb29n
bGUuZ3d0LnJwYy5zZXJ2ZXIuUlBDLmludm9rZUFuZFN0cmVhbVJlc3BvbnNlKFJQQy5qYXZhOjE5
NikKCWF0IGNvbS5nb29nbGUuZ3d0LnJwYy5zZXJ2ZXIuUnBjU2VydmxldC5wcm9jZXNzQ2FsbChS
cGNTZXJ2bGV0LmphdmE6MTYxKQoJYXQgY29tLmdvb2dsZS5nd3QucnBjLnNlcnZlci5ScGNTZXJ2
bGV0LnByb2Nlc3NQb3N0KFJwY1NlcnZsZXQuamF2YToyMjIpCglhdCBjb20uZ29vZ2xlLmd3dC51
c2VyLnNlcnZlci5ycGMuQWJzdHJhY3RSZW1vdGVTZXJ2aWNlU2VydmxldC5kb1Bvc3QoQWJzdHJh
Y3RSZW1vdGVTZXJ2aWNlU2VydmxldC5qYXZhOjYyKQoJYXQgamF2YXguc2VydmxldC5odHRwLkh0
dHBTZXJ2bGV0LnNlcnZpY2UoSHR0cFNlcnZsZXQuamF2YTo3NTQpIFtqYm9zcy1zZXJ2bGV0LTMu
MC1hcGkuamFyOjEuMC4xLkZpbmFsXQoJYXQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0
LnNlcnZpY2UoSHR0cFNlcnZsZXQuamF2YTo4NDcpIFtqYm9zcy1zZXJ2bGV0LTMuMC1hcGkuamFy
OjEuMC4xLkZpbmFsXQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLkFwcGxpY2F0aW9uRmls
dGVyQ2hhaW4uaW50ZXJuYWxEb0ZpbHRlcihBcHBsaWNhdGlvbkZpbHRlckNoYWluLmphdmE6MzI5
KQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLkFwcGxpY2F0aW9uRmlsdGVyQ2hhaW4uZG9G
aWx0ZXIoQXBwbGljYXRpb25GaWx0ZXJDaGFpbi5qYXZhOjI0OCkKCWF0IG9yZy5vdmlydC5lbmdp
bmUudWkuZnJvbnRlbmQuc2VydmVyLmd3dC5Hd3RDYWNoaW5nRmlsdGVyLmRvRmlsdGVyKEd3dENh
Y2hpbmdGaWx0ZXIuamF2YToxMzIpCglhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUuQXBwbGlj
YXRpb25GaWx0ZXJDaGFpbi5pbnRlcm5hbERvRmlsdGVyKEFwcGxpY2F0aW9uRmlsdGVyQ2hhaW4u
amF2YToyODApCglhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUuQXBwbGljYXRpb25GaWx0ZXJD
aGFpbi5kb0ZpbHRlcihBcHBsaWNhdGlvbkZpbHRlckNoYWluLmphdmE6MjQ4KQoJYXQgb3JnLm92
aXJ0LmVuZ2luZS5jb3JlLnV0aWxzLnNlcnZsZXQuTG9jYWxlRmlsdGVyLmRvRmlsdGVyKExvY2Fs
ZUZpbHRlci5qYXZhOjU5KSBbdXRpbHMuamFyOl0KCWF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuY29y
ZS5BcHBsaWNhdGlvbkZpbHRlckNoYWluLmludGVybmFsRG9GaWx0ZXIoQXBwbGljYXRpb25GaWx0
ZXJDaGFpbi5qYXZhOjI4MCkKCWF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuY29yZS5BcHBsaWNhdGlv
bkZpbHRlckNoYWluLmRvRmlsdGVyKEFwcGxpY2F0aW9uRmlsdGVyQ2hhaW4uamF2YToyNDgpCglh
dCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUuU3RhbmRhcmRXcmFwcGVyVmFsdmUuaW52b2tlKFN0
YW5kYXJkV3JhcHBlclZhbHZlLmphdmE6Mjc1KQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3Jl
LlN0YW5kYXJkQ29udGV4dFZhbHZlLmludm9rZShTdGFuZGFyZENvbnRleHRWYWx2ZS5qYXZhOjE2
MSkKCWF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuYXV0aGVudGljYXRvci5BdXRoZW50aWNhdG9yQmFz
ZS5pbnZva2UoQXV0aGVudGljYXRvckJhc2UuamF2YTo0ODkpCglhdCBvcmcuamJvc3MuYXMud2Vi
LnNlY3VyaXR5LlNlY3VyaXR5Q29udGV4dEFzc29jaWF0aW9uVmFsdmUuaW52b2tlKFNlY3VyaXR5
Q29udGV4dEFzc29jaWF0aW9uVmFsdmUuamF2YToxNTMpCglhdCBvcmcuYXBhY2hlLmNhdGFsaW5h
LmNvcmUuU3RhbmRhcmRIb3N0VmFsdmUuaW52b2tlKFN0YW5kYXJkSG9zdFZhbHZlLmphdmE6MTU1
KQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS52YWx2ZXMuRXJyb3JSZXBvcnRWYWx2ZS5pbnZva2Uo
RXJyb3JSZXBvcnRWYWx2ZS5qYXZhOjEwMikKCWF0IG9yZy5qYm9zcy53ZWIucmV3cml0ZS5SZXdy
aXRlVmFsdmUuaW52b2tlKFJld3JpdGVWYWx2ZS5qYXZhOjQ2NikKCWF0IG9yZy5hcGFjaGUuY2F0
YWxpbmEuY29yZS5TdGFuZGFyZEVuZ2luZVZhbHZlLmludm9rZShTdGFuZGFyZEVuZ2luZVZhbHZl
LmphdmE6MTA5KQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb25uZWN0b3IuQ295b3RlQWRhcHRl
ci5zZXJ2aWNlKENveW90ZUFkYXB0ZXIuamF2YTozNjgpCglhdCBvcmcuYXBhY2hlLmNveW90ZS5o
dHRwMTEuSHR0cDExUHJvY2Vzc29yLnByb2Nlc3MoSHR0cDExUHJvY2Vzc29yLmphdmE6ODc3KQoJ
YXQgb3JnLmFwYWNoZS5jb3lvdGUuaHR0cDExLkh0dHAxMVByb3RvY29sJEh0dHAxMUNvbm5lY3Rp
b25IYW5kbGVyLnByb2Nlc3MoSHR0cDExUHJvdG9jb2wuamF2YTo2NzEpCglhdCBvcmcuYXBhY2hl
LnRvbWNhdC51dGlsLm5ldC5KSW9FbmRwb2ludCRXb3JrZXIucnVuKEpJb0VuZHBvaW50LmphdmE6
OTMwKQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzI0KSBbcnQuamFyOjEu
Ny4wXzI1XQoKMjAxMy0wNy0wOCAxMzo0MzoxMyw2MDEgRVJST1IgW29yZy5vdmlydC5lbmdpbmUu
Y29yZS5kYWwuZGJicm9rZXIuZ2VuZXJpYy5EQkNvbmZpZ1V0aWxzXSAoaHR0cC0tMC4wLjAuMC04
MDgwLTEpIEZhaWxlZCB0byBkZWNyeXB0IHZhbHVlIGZvciBwcm9wZXJ0eSBMb2NhbEFkbWluUGFz
c3dvcmQgd2lsbCBiZSB1c2VkIGVuY3J5cHRlZCB2YWx1ZTogamF2YXguY3J5cHRvLkJhZFBhZGRp
bmdFeGNlcHRpb246IERhdGEgbXVzdCBzdGFydCB3aXRoIHplcm8KCWF0IHN1bi5zZWN1cml0eS5y
c2EuUlNBUGFkZGluZy51bnBhZFYxNShSU0FQYWRkaW5nLmphdmE6MzI1KSBbcnQuamFyOjEuNy4w
XzI1XQoJYXQgc3VuLnNlY3VyaXR5LnJzYS5SU0FQYWRkaW5nLnVucGFkKFJTQVBhZGRpbmcuamF2
YToyNzIpIFtydC5qYXI6MS43LjBfMjVdCglhdCBjb20uc3VuLmNyeXB0by5wcm92aWRlci5SU0FD
aXBoZXIuZG9GaW5hbChSU0FDaXBoZXIuamF2YTozNTYpCglhdCBjb20uc3VuLmNyeXB0by5wcm92
aWRlci5SU0FDaXBoZXIuZW5naW5lRG9GaW5hbChSU0FDaXBoZXIuamF2YTozODIpCglhdCBqYXZh
eC5jcnlwdG8uQ2lwaGVyLmRvRmluYWwoQ2lwaGVyLmphdmE6MTkyMikgW2pjZS5qYXI6MS43LjBf
MjVdCglhdCBvcmcub3ZpcnQuZW5naW5lLmNvcmUudXRpbHMuY3J5cHQuRW5naW5lRW5jcnlwdGlv
blV0aWxzLmRlY3J5cHQoRW5naW5lRW5jcnlwdGlvblV0aWxzLmphdmE6MTY5KSBbdXRpbHMuamFy
Ol0KCWF0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5kYWwuZGJicm9rZXIuZ2VuZXJpYy5EQkNvbmZp
Z1V0aWxzLkdldFZhbHVlKERCQ29uZmlnVXRpbHMuamF2YToxMDkpIFtkYWwuamFyOl0KCWF0IG9y
Zy5vdmlydC5lbmdpbmUuY29yZS5kYWwuZGJicm9rZXIuZ2VuZXJpYy5EQkNvbmZpZ1V0aWxzLkdl
dFZhbHVlKERCQ29uZmlnVXRpbHMuamF2YToyMzEpIFtkYWwuamFyOl0KCWF0IG9yZy5vdmlydC5l
bmdpbmUuY29yZS5jb21tb24uY29uZmlnLkNvbmZpZy5HZXRWYWx1ZShDb25maWcuamF2YToyMikg
W2NvbW1vbi5qYXI6XQoJYXQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmJsbC5HZXRDb25maWd1cmF0
aW9uVmFsdWVzUXVlcnkuZXhlY3V0ZVF1ZXJ5Q29tbWFuZChHZXRDb25maWd1cmF0aW9uVmFsdWVz
UXVlcnkuamF2YTo0OCkgW2JsbC5qYXI6XQoJYXQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmJsbC5R
dWVyaWVzQ29tbWFuZEJhc2UuZXhlY3V0ZUNvbW1hbmQoUXVlcmllc0NvbW1hbmRCYXNlLmphdmE6
NjUpIFtibGwuamFyOl0KCWF0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5kYWwuVmRjQ29tbWFuZEJh
c2UuZXhlY3V0ZShWZGNDb21tYW5kQmFzZS5qYXZhOjI4KSBbZGFsLmphcjpdCglhdCBvcmcub3Zp
cnQuZW5naW5lLmNvcmUuYmxsLkJhY2tlbmQucnVuUXVlcnlJbXBsKEJhY2tlbmQuamF2YTo0NjAp
IFtibGwuamFyOl0KCWF0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5ibGwuQmFja2VuZC5SdW5RdWVy
eShCYWNrZW5kLmphdmE6NDM3KSBbYmxsLmphcjpdCglhdCBzdW4ucmVmbGVjdC5OYXRpdmVNZXRo
b2RBY2Nlc3NvckltcGwuaW52b2tlMChOYXRpdmUgTWV0aG9kKSBbcnQuamFyOjEuNy4wXzI1XQoJ
YXQgc3VuLnJlZmxlY3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShOYXRpdmVNZXRo
b2RBY2Nlc3NvckltcGwuamF2YTo1NykgW3J0LmphcjoxLjcuMF8yNV0KCWF0IHN1bi5yZWZsZWN0
LkRlbGVnYXRpbmdNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlKERlbGVnYXRpbmdNZXRob2RBY2Nl
c3NvckltcGwuamF2YTo0MykgW3J0LmphcjoxLjcuMF8yNV0KCWF0IGphdmEubGFuZy5yZWZsZWN0
Lk1ldGhvZC5pbnZva2UoTWV0aG9kLmphdmE6NjA2KSBbcnQuamFyOjEuNy4wXzI1XQoJYXQgb3Jn
Lmpib3NzLmFzLmVlLmNvbXBvbmVudC5NYW5hZ2VkUmVmZXJlbmNlTWV0aG9kSW50ZXJjZXB0b3JG
YWN0b3J5JE1hbmFnZWRSZWZlcmVuY2VNZXRob2RJbnRlcmNlcHRvci5wcm9jZXNzSW52b2NhdGlv
bihNYW5hZ2VkUmVmZXJlbmNlTWV0aG9kSW50ZXJjZXB0b3JGYWN0b3J5LmphdmE6NzIpIFtqYm9z
cy1hcy1lZS03LjEuMS5GaW5hbC5qYXI6Ny4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuaW52b2Nh
dGlvbi5JbnRlcmNlcHRvckNvbnRleHQucHJvY2VlZChJbnRlcmNlcHRvckNvbnRleHQuamF2YToy
ODgpIFtqYm9zcy1pbnZvY2F0aW9uLmphcjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZv
Y2F0aW9uLkludGVyY2VwdG9yQ29udGV4dCRJbnZvY2F0aW9uLnByb2NlZWQoSW50ZXJjZXB0b3JD
b250ZXh0LmphdmE6Mzc0KSBbamJvc3MtaW52b2NhdGlvbi5qYXI6MS4xLjEuRmluYWxdCglhdCBv
cmcub3ZpcnQuZW5naW5lLmNvcmUuYmxsLmludGVyY2VwdG9ycy5UaHJlYWRMb2NhbFNlc3Npb25D
bGVhbmVySW50ZXJjZXB0b3IuaW5qZWN0V2ViQ29udGV4dFRvVGhyZWFkTG9jYWwoVGhyZWFkTG9j
YWxTZXNzaW9uQ2xlYW5lckludGVyY2VwdG9yLmphdmE6MTMpIFtibGwuamFyOl0KCWF0IHN1bi5y
ZWZsZWN0Lk5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UwKE5hdGl2ZSBNZXRob2QpIFty
dC5qYXI6MS43LjBfMjVdCglhdCBzdW4ucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwu
aW52b2tlKE5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5qYXZhOjU3KSBbcnQuamFyOjEuNy4wXzI1
XQoJYXQgc3VuLnJlZmxlY3QuRGVsZWdhdGluZ01ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UoRGVs
ZWdhdGluZ01ldGhvZEFjY2Vzc29ySW1wbC5qYXZhOjQzKSBbcnQuamFyOjEuNy4wXzI1XQoJYXQg
amF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kLmludm9rZShNZXRob2QuamF2YTo2MDYpIFtydC5qYXI6
MS43LjBfMjVdCglhdCBvcmcuamJvc3MuYXMuZWUuY29tcG9uZW50Lk1hbmFnZWRSZWZlcmVuY2VM
aWZlY3ljbGVNZXRob2RJbnRlcmNlcHRvckZhY3RvcnkkTWFuYWdlZFJlZmVyZW5jZUxpZmVjeWNs
ZU1ldGhvZEludGVyY2VwdG9yLnByb2Nlc3NJbnZvY2F0aW9uKE1hbmFnZWRSZWZlcmVuY2VMaWZl
Y3ljbGVNZXRob2RJbnRlcmNlcHRvckZhY3RvcnkuamF2YToxMjMpIFtqYm9zcy1hcy1lZS03LjEu
MS5GaW5hbC5qYXI6Ny4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5JbnRlcmNl
cHRvckNvbnRleHQucHJvY2VlZChJbnRlcmNlcHRvckNvbnRleHQuamF2YToyODgpIFtqYm9zcy1p
bnZvY2F0aW9uLmphcjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLldlYXZl
ZEludGVyY2VwdG9yLnByb2Nlc3NJbnZvY2F0aW9uKFdlYXZlZEludGVyY2VwdG9yLmphdmE6NTMp
IFtqYm9zcy1pbnZvY2F0aW9uLmphcjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5hcy5lZS5j
b21wb25lbnQuaW50ZXJjZXB0b3JzLlVzZXJJbnRlcmNlcHRvckZhY3RvcnkkMS5wcm9jZXNzSW52
b2NhdGlvbihVc2VySW50ZXJjZXB0b3JGYWN0b3J5LmphdmE6MzYpIFtqYm9zcy1hcy1lZS03LjEu
MS5GaW5hbC5qYXI6Ny4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5JbnRlcmNl
cHRvckNvbnRleHQucHJvY2VlZChJbnRlcmNlcHRvckNvbnRleHQuamF2YToyODgpIFtqYm9zcy1p
bnZvY2F0aW9uLmphcjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLkluaXRp
YWxJbnRlcmNlcHRvci5wcm9jZXNzSW52b2NhdGlvbihJbml0aWFsSW50ZXJjZXB0b3IuamF2YToy
MSkgW2pib3NzLWludm9jYXRpb24uamFyOjEuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmludm9j
YXRpb24uSW50ZXJjZXB0b3JDb250ZXh0LnByb2NlZWQoSW50ZXJjZXB0b3JDb250ZXh0LmphdmE6
Mjg4KSBbamJvc3MtaW52b2NhdGlvbi5qYXI6MS4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuaW52
b2NhdGlvbi5DaGFpbmVkSW50ZXJjZXB0b3IucHJvY2Vzc0ludm9jYXRpb24oQ2hhaW5lZEludGVy
Y2VwdG9yLmphdmE6NjEpIFtqYm9zcy1pbnZvY2F0aW9uLmphcjoxLjEuMS5GaW5hbF0KCWF0IG9y
Zy5qYm9zcy5hcy5lZS5jb21wb25lbnQuaW50ZXJjZXB0b3JzLkNvbXBvbmVudERpc3BhdGNoZXJJ
bnRlcmNlcHRvci5wcm9jZXNzSW52b2NhdGlvbihDb21wb25lbnREaXNwYXRjaGVySW50ZXJjZXB0
b3IuamF2YTo1MykgW2pib3NzLWFzLWVlLTcuMS4xLkZpbmFsLmphcjo3LjEuMS5GaW5hbF0KCWF0
IG9yZy5qYm9zcy5pbnZvY2F0aW9uLkludGVyY2VwdG9yQ29udGV4dC5wcm9jZWVkKEludGVyY2Vw
dG9yQ29udGV4dC5qYXZhOjI4OCkgW2pib3NzLWludm9jYXRpb24uamFyOjEuMS4xLkZpbmFsXQoJ
YXQgb3JnLmpib3NzLmFzLmVqYjMuY29tcG9uZW50LnNpbmdsZXRvbi5TaW5nbGV0b25Db21wb25l
bnRJbnN0YW5jZUFzc29jaWF0aW9uSW50ZXJjZXB0b3IucHJvY2Vzc0ludm9jYXRpb24oU2luZ2xl
dG9uQ29tcG9uZW50SW5zdGFuY2VBc3NvY2lhdGlvbkludGVyY2VwdG9yLmphdmE6NTMpIFtqYm9z
cy1hcy1lamIzLTcuMS4xLkZpbmFsLmphcjo3LjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZv
Y2F0aW9uLkludGVyY2VwdG9yQ29udGV4dC5wcm9jZWVkKEludGVyY2VwdG9yQ29udGV4dC5qYXZh
OjI4OCkgW2pib3NzLWludm9jYXRpb24uamFyOjEuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmFz
LmVqYjMudHguQ01UVHhJbnRlcmNlcHRvci5pbnZva2VJbk5vVHgoQ01UVHhJbnRlcmNlcHRvci5q
YXZhOjIxMSkgW2pib3NzLWFzLWVqYjMtNy4xLjEuRmluYWwuamFyOjcuMS4xLkZpbmFsXQoJYXQg
b3JnLmpib3NzLmFzLmVqYjMudHguQ01UVHhJbnRlcmNlcHRvci5zdXBwb3J0cyhDTVRUeEludGVy
Y2VwdG9yLmphdmE6MzYzKSBbamJvc3MtYXMtZWpiMy03LjEuMS5GaW5hbC5qYXI6Ny4xLjEuRmlu
YWxdCglhdCBvcmcuamJvc3MuYXMuZWpiMy50eC5DTVRUeEludGVyY2VwdG9yLnByb2Nlc3NJbnZv
Y2F0aW9uKENNVFR4SW50ZXJjZXB0b3IuamF2YToxOTQpIFtqYm9zcy1hcy1lamIzLTcuMS4xLkZp
bmFsLmphcjo3LjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLkludGVyY2VwdG9y
Q29udGV4dC5wcm9jZWVkKEludGVyY2VwdG9yQ29udGV4dC5qYXZhOjI4OCkgW2pib3NzLWludm9j
YXRpb24uamFyOjEuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmFzLmVqYjMuY29tcG9uZW50Lmlu
dGVyY2VwdG9ycy5DdXJyZW50SW52b2NhdGlvbkNvbnRleHRJbnRlcmNlcHRvci5wcm9jZXNzSW52
b2NhdGlvbihDdXJyZW50SW52b2NhdGlvbkNvbnRleHRJbnRlcmNlcHRvci5qYXZhOjQxKSBbamJv
c3MtYXMtZWpiMy03LjEuMS5GaW5hbC5qYXI6Ny4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuaW52
b2NhdGlvbi5JbnRlcmNlcHRvckNvbnRleHQucHJvY2VlZChJbnRlcmNlcHRvckNvbnRleHQuamF2
YToyODgpIFtqYm9zcy1pbnZvY2F0aW9uLmphcjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5h
cy5lamIzLmNvbXBvbmVudC5pbnRlcmNlcHRvcnMuTG9nZ2luZ0ludGVyY2VwdG9yLnByb2Nlc3NJ
bnZvY2F0aW9uKExvZ2dpbmdJbnRlcmNlcHRvci5qYXZhOjU5KSBbamJvc3MtYXMtZWpiMy03LjEu
MS5GaW5hbC5qYXI6Ny4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5JbnRlcmNl
cHRvckNvbnRleHQucHJvY2VlZChJbnRlcmNlcHRvckNvbnRleHQuamF2YToyODgpIFtqYm9zcy1p
bnZvY2F0aW9uLmphcjoxLjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5hcy5lZS5jb21wb25lbnQu
TmFtZXNwYWNlQ29udGV4dEludGVyY2VwdG9yLnByb2Nlc3NJbnZvY2F0aW9uKE5hbWVzcGFjZUNv
bnRleHRJbnRlcmNlcHRvci5qYXZhOjUwKSBbamJvc3MtYXMtZWUtNy4xLjEuRmluYWwuamFyOjcu
MS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmludm9jYXRpb24uSW50ZXJjZXB0b3JDb250ZXh0LnBy
b2NlZWQoSW50ZXJjZXB0b3JDb250ZXh0LmphdmE6Mjg4KSBbamJvc3MtaW52b2NhdGlvbi5qYXI6
MS4xLjEuRmluYWxdCglhdCBvcmcuamJvc3MuYXMuZWUuY29tcG9uZW50LlRDQ0xJbnRlcmNlcHRv
ci5wcm9jZXNzSW52b2NhdGlvbihUQ0NMSW50ZXJjZXB0b3IuamF2YTo0NSkgW2pib3NzLWFzLWVl
LTcuMS4xLkZpbmFsLmphcjo3LjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLklu
dGVyY2VwdG9yQ29udGV4dC5wcm9jZWVkKEludGVyY2VwdG9yQ29udGV4dC5qYXZhOjI4OCkgW2pi
b3NzLWludm9jYXRpb24uamFyOjEuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmludm9jYXRpb24u
Q2hhaW5lZEludGVyY2VwdG9yLnByb2Nlc3NJbnZvY2F0aW9uKENoYWluZWRJbnRlcmNlcHRvci5q
YXZhOjYxKSBbamJvc3MtaW52b2NhdGlvbi5qYXI6MS4xLjEuRmluYWxdCglhdCBvcmcuamJvc3Mu
YXMuZWUuY29tcG9uZW50LlZpZXdTZXJ2aWNlJFZpZXcuaW52b2tlKFZpZXdTZXJ2aWNlLmphdmE6
MTY1KSBbamJvc3MtYXMtZWUtNy4xLjEuRmluYWwuamFyOjcuMS4xLkZpbmFsXQoJYXQgb3JnLmpi
b3NzLmFzLmVlLmNvbXBvbmVudC5WaWV3RGVzY3JpcHRpb24kMS5wcm9jZXNzSW52b2NhdGlvbihW
aWV3RGVzY3JpcHRpb24uamF2YToxNzMpIFtqYm9zcy1hcy1lZS03LjEuMS5GaW5hbC5qYXI6Ny4x
LjEuRmluYWxdCglhdCBvcmcuamJvc3MuaW52b2NhdGlvbi5JbnRlcmNlcHRvckNvbnRleHQucHJv
Y2VlZChJbnRlcmNlcHRvckNvbnRleHQuamF2YToyODgpIFtqYm9zcy1pbnZvY2F0aW9uLmphcjox
LjEuMS5GaW5hbF0KCWF0IG9yZy5qYm9zcy5pbnZvY2F0aW9uLkNoYWluZWRJbnRlcmNlcHRvci5w
cm9jZXNzSW52b2NhdGlvbihDaGFpbmVkSW50ZXJjZXB0b3IuamF2YTo2MSkgW2pib3NzLWludm9j
YXRpb24uamFyOjEuMS4xLkZpbmFsXQoJYXQgb3JnLmpib3NzLmFzLmVlLmNvbXBvbmVudC5Qcm94
eUludm9jYXRpb25IYW5kbGVyLmludm9rZShQcm94eUludm9jYXRpb25IYW5kbGVyLmphdmE6NzIp
IFtqYm9zcy1hcy1lZS03LjEuMS5GaW5hbC5qYXI6Ny4xLjEuRmluYWxdCglhdCBvcmcub3ZpcnQu
ZW5naW5lLmNvcmUuY29tbW9uLmludGVyZmFjZXMuQmFja2VuZExvY2FsJCQkdmlldzEwLlJ1blF1
ZXJ5KFVua25vd24gU291cmNlKSBbY29tbW9uLmphcjpdCglhdCBvcmcub3ZpcnQuZW5naW5lLnVp
LmZyb250ZW5kLnNlcnZlci5nd3QuR2VuZXJpY0FwaUdXVFNlcnZpY2VJbXBsLlJ1blF1ZXJ5KEdl
bmVyaWNBcGlHV1RTZXJ2aWNlSW1wbC5qYXZhOjU5KQoJYXQgc3VuLnJlZmxlY3QuTmF0aXZlTWV0
aG9kQWNjZXNzb3JJbXBsLmludm9rZTAoTmF0aXZlIE1ldGhvZCkgW3J0LmphcjoxLjcuMF8yNV0K
CWF0IHN1bi5yZWZsZWN0Lk5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UoTmF0aXZlTWV0
aG9kQWNjZXNzb3JJbXBsLmphdmE6NTcpIFtydC5qYXI6MS43LjBfMjVdCglhdCBzdW4ucmVmbGVj
dC5EZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShEZWxlZ2F0aW5nTWV0aG9kQWNj
ZXNzb3JJbXBsLmphdmE6NDMpIFtydC5qYXI6MS43LjBfMjVdCglhdCBqYXZhLmxhbmcucmVmbGVj
dC5NZXRob2QuaW52b2tlKE1ldGhvZC5qYXZhOjYwNikgW3J0LmphcjoxLjcuMF8yNV0KCWF0IGNv
bS5nb29nbGUuZ3d0LnJwYy5zZXJ2ZXIuUlBDLmludm9rZUFuZFN0cmVhbVJlc3BvbnNlKFJQQy5q
YXZhOjE5NikKCWF0IGNvbS5nb29nbGUuZ3d0LnJwYy5zZXJ2ZXIuUnBjU2VydmxldC5wcm9jZXNz
Q2FsbChScGNTZXJ2bGV0LmphdmE6MTYxKQoJYXQgY29tLmdvb2dsZS5nd3QucnBjLnNlcnZlci5S
cGNTZXJ2bGV0LnByb2Nlc3NQb3N0KFJwY1NlcnZsZXQuamF2YToyMjIpCglhdCBjb20uZ29vZ2xl
Lmd3dC51c2VyLnNlcnZlci5ycGMuQWJzdHJhY3RSZW1vdGVTZXJ2aWNlU2VydmxldC5kb1Bvc3Qo
QWJzdHJhY3RSZW1vdGVTZXJ2aWNlU2VydmxldC5qYXZhOjYyKQoJYXQgamF2YXguc2VydmxldC5o
dHRwLkh0dHBTZXJ2bGV0LnNlcnZpY2UoSHR0cFNlcnZsZXQuamF2YTo3NTQpIFtqYm9zcy1zZXJ2
bGV0LTMuMC1hcGkuamFyOjEuMC4xLkZpbmFsXQoJYXQgamF2YXguc2VydmxldC5odHRwLkh0dHBT
ZXJ2bGV0LnNlcnZpY2UoSHR0cFNlcnZsZXQuamF2YTo4NDcpIFtqYm9zcy1zZXJ2bGV0LTMuMC1h
cGkuamFyOjEuMC4xLkZpbmFsXQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLkFwcGxpY2F0
aW9uRmlsdGVyQ2hhaW4uaW50ZXJuYWxEb0ZpbHRlcihBcHBsaWNhdGlvbkZpbHRlckNoYWluLmph
dmE6MzI5KQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLkFwcGxpY2F0aW9uRmlsdGVyQ2hh
aW4uZG9GaWx0ZXIoQXBwbGljYXRpb25GaWx0ZXJDaGFpbi5qYXZhOjI0OCkKCWF0IG9yZy5vdmly
dC5lbmdpbmUudWkuZnJvbnRlbmQuc2VydmVyLmd3dC5Hd3RDYWNoaW5nRmlsdGVyLmRvRmlsdGVy
KEd3dENhY2hpbmdGaWx0ZXIuamF2YToxMzIpCglhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUu
QXBwbGljYXRpb25GaWx0ZXJDaGFpbi5pbnRlcm5hbERvRmlsdGVyKEFwcGxpY2F0aW9uRmlsdGVy
Q2hhaW4uamF2YToyODApCglhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUuQXBwbGljYXRpb25G
aWx0ZXJDaGFpbi5kb0ZpbHRlcihBcHBsaWNhdGlvbkZpbHRlckNoYWluLmphdmE6MjQ4KQoJYXQg
b3JnLm92aXJ0LmVuZ2luZS5jb3JlLnV0aWxzLnNlcnZsZXQuTG9jYWxlRmlsdGVyLmRvRmlsdGVy
KExvY2FsZUZpbHRlci5qYXZhOjU5KSBbdXRpbHMuamFyOl0KCWF0IG9yZy5hcGFjaGUuY2F0YWxp
bmEuY29yZS5BcHBsaWNhdGlvbkZpbHRlckNoYWluLmludGVybmFsRG9GaWx0ZXIoQXBwbGljYXRp
b25GaWx0ZXJDaGFpbi5qYXZhOjI4MCkKCWF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuY29yZS5BcHBs
aWNhdGlvbkZpbHRlckNoYWluLmRvRmlsdGVyKEFwcGxpY2F0aW9uRmlsdGVyQ2hhaW4uamF2YToy
NDgpCglhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUuU3RhbmRhcmRXcmFwcGVyVmFsdmUuaW52
b2tlKFN0YW5kYXJkV3JhcHBlclZhbHZlLmphdmE6Mjc1KQoJYXQgb3JnLmFwYWNoZS5jYXRhbGlu
YS5jb3JlLlN0YW5kYXJkQ29udGV4dFZhbHZlLmludm9rZShTdGFuZGFyZENvbnRleHRWYWx2ZS5q
YXZhOjE2MSkKCWF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuYXV0aGVudGljYXRvci5BdXRoZW50aWNh
dG9yQmFzZS5pbnZva2UoQXV0aGVudGljYXRvckJhc2UuamF2YTo0ODkpCglhdCBvcmcuamJvc3Mu
YXMud2ViLnNlY3VyaXR5LlNlY3VyaXR5Q29udGV4dEFzc29jaWF0aW9uVmFsdmUuaW52b2tlKFNl
Y3VyaXR5Q29udGV4dEFzc29jaWF0aW9uVmFsdmUuamF2YToxNTMpCglhdCBvcmcuYXBhY2hlLmNh
dGFsaW5hLmNvcmUuU3RhbmRhcmRIb3N0VmFsdmUuaW52b2tlKFN0YW5kYXJkSG9zdFZhbHZlLmph
dmE6MTU1KQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS52YWx2ZXMuRXJyb3JSZXBvcnRWYWx2ZS5p
bnZva2UoRXJyb3JSZXBvcnRWYWx2ZS5qYXZhOjEwMikKCWF0IG9yZy5qYm9zcy53ZWIucmV3cml0
ZS5SZXdyaXRlVmFsdmUuaW52b2tlKFJld3JpdGVWYWx2ZS5qYXZhOjQ2NikKCWF0IG9yZy5hcGFj
aGUuY2F0YWxpbmEuY29yZS5TdGFuZGFyZEVuZ2luZVZhbHZlLmludm9rZShTdGFuZGFyZEVuZ2lu
ZVZhbHZlLmphdmE6MTA5KQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb25uZWN0b3IuQ295b3Rl
QWRhcHRlci5zZXJ2aWNlKENveW90ZUFkYXB0ZXIuamF2YTozNjgpCglhdCBvcmcuYXBhY2hlLmNv
eW90ZS5odHRwMTEuSHR0cDExUHJvY2Vzc29yLnByb2Nlc3MoSHR0cDExUHJvY2Vzc29yLmphdmE6
ODc3KQoJYXQgb3JnLmFwYWNoZS5jb3lvdGUuaHR0cDExLkh0dHAxMVByb3RvY29sJEh0dHAxMUNv
bm5lY3Rpb25IYW5kbGVyLnByb2Nlc3MoSHR0cDExUHJvdG9jb2wuamF2YTo2NzEpCglhdCBvcmcu
YXBhY2hlLnRvbWNhdC51dGlsLm5ldC5KSW9FbmRwb2ludCRXb3JrZXIucnVuKEpJb0VuZHBvaW50
LmphdmE6OTMwKQoJYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzI0KSBbcnQu
amFyOjEuNy4wXzI1XQoKMjAxMy0wNy0wOCAxMzo0MzoxMyw2ODYgSU5GTyAgW29yZy5vdmlydC5l
bmdpbmUuY29yZS5ibGwuTG9naW5Vc2VyQ29tbWFuZF0gKGh0dHAtLTAuMC4wLjAtODA4MC0zKSBS
dW5uaW5nIGNvbW1hbmQ6IExvZ2luVXNlckNvbW1hbmQgaW50ZXJuYWw6IGZhbHNlLgoyMDEzLTA3
LTA4IDEzOjQzOjE1LDM1OCBFUlJPUiBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLnV0aWxzLnNlcnZs
ZXQuU2VydmxldFV0aWxzXSAoaHR0cC0tMC4wLjAuMC04MDgwLTEpIENhbid0IHJlYWQgZmlsZSAi
L2RvYy9vdmlydC1lbmdpbmUvbWFudWFsL0RvY3VtZW50YXRpb25QYXRoLmNzdiIgZm9yIHJlcXVl
c3QgIi9kb2NzL0RvY3VtZW50YXRpb25QYXRoLmNzdiIsIHdpbGwgc2VuZCBhIDQwNCBlcnJvciBy
ZXNwb25zZS4KCg==
------=_Part_500131_1462225325.1373284688721--
11 years, 5 months
[Engine-devel] Sorting in tabs
by Lior Vernia
Hello everyone (UI peeps in particular),
I've pushed (not yet merged) a patch that would enable us to keep items
in tabs (main/sub) sorted at all times by setting a comparator in
SearchableListModel:
http://gerrit.ovirt.org/#/c/15846/
If a comparator isn't set, then everything should behave as before. If a
comparator is set, then from that moment on the tab items will be kept
in a SortedSet, so that even if an item is added in a way that doesn't
trigger an event (e.g. getItems().add()) the items will be kept sorted
according to the given comparator. If the comparator is set to null,
from that moment on the tab should revert to its old behaviour.
You're most welcome to have a look and let me know if this might break
something (remember though that it's not obligatory to set a comparator,
so only possible breakage should be in generic flows).
Feel free to use it once it's merged; along with SortedListModel, this
should make sorting less painful. Just keep in mind that once you set a
comparator, you can't cast getItems() to a List. This shouldn't be a
problem in general, as mostly it's as useful (and probably more correct)
to cast to a Collection.
Lior.
11 years, 5 months
[Engine-devel] Guid improvements
by Allon Mureinik
Hi all,
I just merged a couple of improvements to the [N]Guid class [1] to improve it's performance both CPU-wise and memory-wise, based on a set of benchmarks presented by Liran.
What this patchset achieves:
1. Clean up the code, so it's easier to understand and use
2. Eliminate the inflation in the memory foot print caused by the getValue() method
3. Eliminate all the heavy calls to UUID.fromString when creating a new/empty Guid instance as a default value
4. Note that the cleanups proposed in (1) will have minor performance benefits (e.g., eliminating useless conditional statements), but I doubt this would be anything to write home about.
>From a developer's perspective, here's what changed:
1. No more NGuid, just Guid. Both static methods to create a Guid from String still exist, and are named createGuidFromString and createGuidFromStringDefaultEmpty.
2. [N]Guid.getValue() was removed, it's no longer needed after (1) was implemented
3. The Guid() constructor was made private, as it forced a redundant call to UUID.fromString(String). If you need an empty Guid instance, just use Guid.Empty
4. The Guid.EMPTY_GUID_VALUE string constant was removed, as it was used for redundant calls to UUID.fromString. If you really, REALLY, need it, just call Guid.Empty.getValue() for a UUID or Guid.Empty.toString() for a String.
5. All sorts of ways to transform Strings to Guids were removed. If you have a literal you trust, just use new Guid(String). If you suspect it may be null, use Guid.createGuidFromString[DefaultEmpty]
6. NewGuid is now called newGuid. We're in Java, not C# :-)
Many thanks to everyone who reviewed this patchset.
You guys rock!
Regards,
Allon
[1] http://gerrit.ovirt.org/#/q/project:ovirt-engine+branch:master+topic:guid...
11 years, 5 months