Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vif4I-00Cd3J-13 for pgsql-hackers@arkaria.postgresql.org; Wed, 21 Jan 2026 20:44:47 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vif4H-009EPp-1R for pgsql-hackers@arkaria.postgresql.org; Wed, 21 Jan 2026 20:44:45 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vif4G-009EPg-0v for pgsql-hackers@lists.postgresql.org; Wed, 21 Jan 2026 20:44:45 +0000 Received: from mail-lf1-x129.google.com ([2a00:1450:4864:20::129]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vif4C-001eZo-0a for pgsql-hackers@lists.postgresql.org; Wed, 21 Jan 2026 20:44:43 +0000 Received: by mail-lf1-x129.google.com with SMTP id 2adb3069b0e04-59dcd9b89ecso303461e87.1 for ; Wed, 21 Jan 2026 12:44:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1769028279; cv=none; d=google.com; s=arc-20240605; b=GVp43pH4uP+5sy/Y8ISRNk3FVBJPIsywcUidtVs4a1/lQzO15nmsXBLGjuECCsR6ml hc6qYd1sWOVP2itw0T+3D553aiWVGaaI+OmPQo2aoumzX2V8DEYwNzNPGzDu8mCH83KX tix159sOusQeGBDz/3xYDCc+SBcps5UzUzieQrklSWsQO4/dKohvOpLxVjXLR8RWpW2K WWGeXOil7MuMdQYOMdPpmGbi0QCaEDUiVNAaSKRu9TcWy8+Ir5H8uNyzg+/kCLCGmuvM TZVABhpLeBNhmQ1w7pHq0HYH1EWC/K2x4a2Tfmd04NRHTekhtVHKJuVJ65Nm8QHtPBfz Z8Mw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=IletBE7atJDVgbf4Z0PRIoqqAW1Jkr562qACah9z1Ts=; fh=BGCi8se81nPzqU/GqGDhyJ+QM7GRaCw8dL5b87MmwzE=; b=fLGBHY/Wu+pdnbo2ltvoT1D1qbmZUdrDI0QiHB7MQZkd1rMbkc9nZi5l7HlD8w6RfF LuGeYD2/jlSc9Q568pJxux6KS3MaMOUUr7QcbYeDoLWuf/pJY3mKQORF4CcLfZAYSNoJ bd6SOvxzqIcHeCn9yjThNaOPenKUmQxDBDA02k5dKWkMESJJKgX4g7wecsPboOUXt7Up YA4BUdRA2RoZ+afygvt8XnMwE5GGaOME1kyiFS2VIUQcwvJIPn+lL/374SF63+QdoCv/ 1pyZA2sDgY4SXZG8K5HE3+9OjZwB7qgYaGPKz3IVYPULYsQOshFoYs8TLk6b/sgyxD3q KP/w==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769028279; x=1769633079; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=IletBE7atJDVgbf4Z0PRIoqqAW1Jkr562qACah9z1Ts=; b=BVMqsJn1iVNQDVEk/APpo/wW/QefZLhdgiDuUAnAkF6fYq3Xa458kQOzk50lYjAopf zemMcBWtXEZzJfuLNZysGePOUtiCzSE77/9bhWuM1iJbdGxh/1fYBnNggSGjbQbE0UDV ce33a9njHCRhdM5XAUzjSmYpPpyhjPbISKYh3apbqd1gmDparfwX9u9U7UO5mhQ7PmRw Z1REYHBeqS/TwwaLMwu8VNV5PbB5SFvEc+0Eb3TUW2cH/bnjPJ8iA0lkg5CWZAE7EzUU PjewpjLMK4WFacFWhJcM6ERxmkyyuqWSI9FFkVG6/JbuED1sIEPyppPcU5gxB3jYYgMl l1Jw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769028279; x=1769633079; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=IletBE7atJDVgbf4Z0PRIoqqAW1Jkr562qACah9z1Ts=; b=IuUjl3gazCg+yTkirLSZzBeDHNiiXxCbYpRqfr0KjZVznFcFK6OvJQJ3Nq3hqOEyJQ M4f58uu1h6/X11qO07L2nrHT4/fIv9RtGQFAQphN+/+JZJ9JAj6K+sU3M0R1suTxk7pk UQevQ18vQwbH7LXrcHzVcG9BC76YMEGrB8c0KrxTSzqs3bRYJwj09N/z+9/DoC+yqptH l2rISE9+iwXk2d5rGqA4vs4lVi6h9Zz1cVj6NS1o1w9KMWizxSJLVBzzaNZivfnNhd8P Gqrn4n9og+GsldYBxorGB+Xj0z/T9JsUtFkAabAj4ELqZhLf2O/YQQrBYOubVGhXPt83 UDGA== X-Forwarded-Encrypted: i=1; AJvYcCWEdI8Og/rn3r/003Ccrg8GIfjnHt+xZoPkvFZoLzLtGqhb6RhlXDtbXX9DSY1lCmYFYU6cU73qtlTpkacx@lists.postgresql.org X-Gm-Message-State: AOJu0YxoI7ZPyNnk7587Vdd00caSK54cGYyQRO2xtfkRz6FMagBlWa1N zsn9GGuCNdvP8MHExrMVO3szcp0jraTJGwWmmCxYQUfimkenulvFvp0OybHdQj06KcVvVbjHzq8 uruPoOoFHGQ3DJCgHIjO/1Wf+2fRVtFQ= X-Gm-Gg: AZuq6aLiGFA4EJCn9ZU+UuVMZSWXK/DO8R/yHy1RWkh5DDDMtjz20+1DSsEuzwArBXX QUMDJ6Ujkz/Hy53ixS9zalf1dr9Zc6XPNCcUioxVm/jYeJ1fn1VRq4RqSmbXy8I1kB2yKZL0lH6 cooSbAzfbILvcxwhgU38N0hzXa0tF0U9861G8kMSwOP9Ovw/GJClDnZ8/U/c2jMLLp8mZqqMcAr OtsNtI7LDNhkIkcFK32yr/AH1w1N5svqoZ2jHfCo3ffL+dDyo9tRiH3U1jZJLZRUAiIEb88g50M QN+7AX37NFu8ml2tZqLfdFbxrYUU X-Received: by 2002:a05:6512:3b98:b0:59b:6ac6:115f with SMTP id 2adb3069b0e04-59dd7d141ffmr212568e87.18.1769028278825; Wed, 21 Jan 2026 12:44:38 -0800 (PST) MIME-Version: 1.0 References: <89DE974B-F318-4D0A-A60B-51EDE84054E2@gmail.com> <9A074422-2308-4BD0-9FFA-0B6D70989935@yandex-team.ru> <70c72cb1-a39f-41b3-bfe3-e32ee7fda9c4@uni-muenster.de> <68a012d3-121b-418a-913b-aa0aaf32915d@uni-muenster.de> <2898f090-d9cf-475c-940c-a99da4a308f1@uni-muenster.de> In-Reply-To: <2898f090-d9cf-475c-940c-a99da4a308f1@uni-muenster.de> From: Marcos Magueta Date: Wed, 21 Jan 2026 17:44:27 -0300 X-Gm-Features: AZwV_Qjxv4jeXoXhRI1Rfcz7eqj6o84gmW022xCJgaVRGFe2jvCboyOqKRt7SVg Message-ID: Subject: Re: WIP - xmlvalidate implementation from TODO list To: Jim Jones Cc: Andrey Borodin , Kirill Reshke , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000002859840648ebfe5f" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000002859840648ebfe5f Content-Type: multipart/alternative; boundary="0000000000002859830648ebfe5d" --0000000000002859830648ebfe5d Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hey Jim, > Any particular reason for that? If not, take a look at other options, e.g. a_expr No particular reason apart from it being simpler since I didn't need to invoke an execution at the cmd. Changed it now. > Why did you choose text over xml for schemadata? My original thought was that XML schemas require additional validation in contrast to normal XML, but it being additive, we would have redundant checks. But in reconsideration, perhaps keeping the field with an XML type is more intuitive for anyone introspecting over the catalog. Also applied the change on the latest version of the patch. Just a question about something I am very curious about the previous patch I sent: I noticed DefineXmlSchema() calls IsThereXmlSchemaInNamespace() right after XmlSchemaCreate() returns a valid OID. Since XmlSchemaCreate() already inserted the tuple into the catalog (via CatalogTupleInsert at pg_xmlschema.c:166), wouldn't SearchSysCacheExists2() find it and always throw "already exists"? We all tested the original code and it worked fine, so I'm missing something about syscache visibility or timing; that was an early function I did to check for duplicates that ended up in the wrong place. I removed the call (and function) as I judged it to be redundant (the duplicate check already happens inside XmlSchemaCreate()), but is there something subtle about intra-command visibility I'm not understanding? If anyone knows, please let me know. I tried to split the patch into multiple, as recommended, but there might still exist some overlaps when it comes to the division of the implementation of XMLVALIDATE and XMLSCHEMA. I put the docs and tests on the last patch, as I had issues amending. Also, I added tab completion on psql and fixed pg_dump. Regards, Marcos Magueta Em qua., 14 de jan. de 2026 =C3=A0s 07:10, Jim Jones escreveu: > > > On 14/01/2026 02:23, Marcos Magueta wrote: > > Please follow the updated version attached. > > A few comments: > > =3D=3D grammar =3D=3D > > In gram.y you restricted CREATE XMLSCHEMA to Sconst: > > DO $$ > DECLARE xsd text :=3D ''; > BEGIN > CREATE XMLSCHEMA person_schema AS xsd; > END $$; > ERROR: syntax error at or near "xsd" > LINE 4: CREATE XMLSCHEMA person_schema AS xsd; > > Any particular reason for that? If not, take a look at other options, > e.g. a_expr > > =3D=3D pg_xmlschema =3D=3D > > Why did you choose text over xml for schemadata? > > postgres=3D# \d pg_xmlschema > Table "pg_catalog.pg_xmlschema" > Column | Type | Collation | Nullable | Default > -----------------+-----------+-----------+----------+--------- > oid | oid | | not null | > schemaname | name | | not null | > schemanamespace | oid | | not null | > schemaowner | oid | | not null | > schemadata | text | C | not null | > schemaacl | aclitem[] | | | > Indexes: > "pg_xmlschema_oid_index" PRIMARY KEY, btree (oid) > "pg_xmlschema_name_nsp_index" UNIQUE CONSTRAINT, btree (schemaname, > schemanamespace) > > > =3D=3D psql command to display and list xml schemas =3D=3D > > Not a requirement for this patch (specially not at the current stage), > but you should add it to your TODO list. > > \dz > \dz foo > \dz+ foo > > * z here is just an example > > =3D=3D tab completion =3D=3D > > CREATE should suggest XMLSCHEMA and CREATE XML should > autocomplete CREATE XMLSCHEMA. The same applies for DROP XMLSCHEMA [IF > EXISTS], where it should additionally list the available schemas after > DROP XMLSCHEMA . > > =3D=3D white-space warnings =3D=3D > > The patch does not apply cleanly: > > > /home/jim/patches/xmlvalidate/0002-xmlschema-catalog-and-xmlvalidate.patc= h:594: > indent with spaces. > Oid schemanamespace, > > /home/jim/patches/xmlvalidate/0002-xmlschema-catalog-and-xmlvalidate.patc= h:595: > indent with spaces. > Oid schemaowner, > > /home/jim/patches/xmlvalidate/0002-xmlschema-catalog-and-xmlvalidate.patc= h:596: > indent with spaces. > const char *schemadata, > > /home/jim/patches/xmlvalidate/0002-xmlschema-catalog-and-xmlvalidate.patc= h:597: > indent with spaces. > bool if_not_exists, > > /home/jim/patches/xmlvalidate/0002-xmlschema-catalog-and-xmlvalidate.patc= h:598: > indent with spaces. > bool quiet) > warning: squelched 139 whitespace errors > warning: 144 lines add whitespace errors. > > =3D=3D file naming =3D=3D > > Your patch suggests that it is part of a patch set, from which 0001 is > missing. In case you meant a version 2 of the previous patch, a better > format would be > > v2-0001-xmlschema-catalog-and-xmlvalidate.patch > > which can be generated with > > $ git format-patch -1 -v2 > > =3D=3D xml_1.out not updated =3D=3D > > After every change in xml.sql you must create an equivalent file for a > postgres compiled without --with-libxml, and put the changes in > xml_1.out.[1] > > =3D=3D corrupt pg_dump =3D=3D > > I understand we agreed to work on XMLVALIDATE only after CREATE > XMLSCHEMA is settled, but since the code is partially already there, you > might wanna take a look at pg_dump. It is not serialising the CREATE > XMLSCHEMA statements: > > $ /usr/local/postgres-dev/bin/psql postgres > psql (19devel) > Type "help" for help. > > postgres=3D# CREATE XMLSCHEMA person_schema AS ' > > > > > > > > > > '; > CREATE XMLSCHEMA > postgres=3D# CREATE VIEW v AS > SELECT XMLVALIDATE(DOCUMENT ''::xml > ACCORDING TO XMLSCHEMA person_schema); > CREATE VIEW > postgres=3D# \q > > $ /usr/local/postgres-dev/bin/pg_dump postgres > -- > -- PostgreSQL database dump > -- > > \restrict WLaIQWmNJVW2yc4Jv5W81qh2TZGHnupJlpl4Urm4Pp6Ku3VPyH5dO3ReFc4LMmd > > -- Dumped from database version 19devel > -- Dumped by pg_dump version 19devel > > SET statement_timeout =3D 0; > SET lock_timeout =3D 0; > SET idle_in_transaction_session_timeout =3D 0; > SET transaction_timeout =3D 0; > SET client_encoding =3D 'UTF8'; > SET standard_conforming_strings =3D on; > SELECT pg_catalog.set_config('search_path', '', false); > SET check_function_bodies =3D false; > SET xmloption =3D content; > SET client_min_messages =3D warning; > SET row_security =3D off; > > -- > -- Name: test_xmlschema_ns; Type: SCHEMA; Schema: -; Owner: jim > -- > > CREATE SCHEMA test_xmlschema_ns; > > > ALTER SCHEMA test_xmlschema_ns OWNER TO jim; > > -- > -- Name: v; Type: VIEW; Schema: public; Owner: jim > -- > > CREATE VIEW public.v AS > SELECT XMLVALIDATE(DOCUMENT ''::xml ACCORDING TO XMLSCHEMA > person_schema) AS "xmlvalidate"; > > > ALTER VIEW public.v OWNER TO jim; > > -- > -- PostgreSQL database dump complete > -- > > \unrestrict WLaIQWmNJVW2yc4Jv5W81qh2TZGHnupJlpl4Urm4Pp6Ku3VPyH5dO3ReFc4LM= md > > Take a look at pg_dump.c. You might need a new function, e.g. > dumpXmlSchemas(Archive *fout, const SchemaInfo *schemaInfo) > > =3D=3D patch structure =3D=3D > > To make the review a bit easier, I suggest to split this patch into a > patch set with **at least 4** smaller patches - the more seasoned > hackers here might correct me if I am wrong. For instance: > > 0001 - CREATE XMLSCHEMA (code + tests + documentation) > 0002 - pg_dump changes to output CREATE XMLSCHEMA > 0003 - psql tab completion + new command to display and list xml schemas > 0004 - XMLVALIDATE (code + tests + documentation) > > > Thanks for working on this! > > Best, Jim > > [1] https://cirrus-ci.com/task/4872456290172928?logs=3Dcheck_world#L126 > --0000000000002859830648ebfe5d Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hey Jim,

> Any particular reason = for that? If not, take a look at other options, e.g. a_expr
No par= ticular reason apart from it being simpler since I didn't need to invok= e an=C2=A0execution at the cmd. Changed it now.

> Why did you cho= ose text over xml for schemadata?
My original thought was that XML= schemas require additional validation in contrast to normal XML, but it be= ing additive, we would have redundant checks. But in reconsideration, perha= ps keeping the field with an XML type is more intuitive for anyone introspe= cting over the catalog. Also applied the change on the latest version of th= e patch.

Just a question about something I am very curious abo= ut the previous patch I sent:
I noticed DefineXmlSchema() calls IsThereX= mlSchemaInNamespace() right after XmlSchemaCreate() returns a valid OID. Si= nce XmlSchemaCreate() already inserted the tuple into the catalog (via Cata= logTupleInsert at pg_xmlschema.c:166), wouldn't SearchSysCacheExists2()= find it and always throw "already exists"? We all tested the ori= ginal code and it worked fine, so I'm missing something about syscache = visibility or timing; that was an early function I did to check for duplica= tes that ended up in the wrong place. I removed the call (and function) as = I judged it to be redundant (the duplicate check already happens inside Xml= SchemaCreate()), but is there something subtle about intra-command visibili= ty I'm not understanding? If anyone knows, please let me know.

=
I tried to split the patch into multiple, as recommended, but th= ere might still exist some overlaps when it comes to the division of the im= plementation of XMLVALIDATE and XMLSCHEMA. I put the docs and tests on the = last patch, as I had issues amending.

Also, I added tab c= ompletion on psql and fixed pg_dump.

Regards, Marcos Magu= eta


Em qua., 14 de jan. de 2026 =C3=A0s 07:10, Jim Jone= s <jim.jo= nes@uni-muenster.de> escreveu:


On 14/01/2026 02:23, Marcos Magueta wrote:
> Please follow the updated version attached.

A few comments:

=3D=3D grammar =3D=3D

In gram.y you restricted CREATE XMLSCHEMA to Sconst:

DO $$
DECLARE xsd text :=3D '<foo></foo>';
BEGIN
=C2=A0 CREATE XMLSCHEMA person_schema AS xsd;
END $$;
ERROR:=C2=A0 syntax error at or near "xsd"
LINE 4:=C2=A0 =C2=A0CREATE XMLSCHEMA person_schema AS xsd;

Any particular reason for that? If not, take a look at other options,
e.g. a_expr

=3D=3D pg_xmlschema =3D=3D

Why did you choose text over xml for schemadata?

postgres=3D# \d pg_xmlschema
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Table "pg_catal= og.pg_xmlschema"
=C2=A0 =C2=A0 =C2=A0Column=C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A0Type=C2=A0 =C2= =A0 | Collation | Nullable | Default
-----------------+-----------+-----------+----------+---------
=C2=A0oid=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| oid=C2=A0 =C2=A0= =C2=A0 =C2=A0|=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| not null |
=C2=A0schemaname=C2=A0 =C2=A0 =C2=A0 | name=C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| not null |
=C2=A0schemanamespace | oid=C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0| not null |
=C2=A0schemaowner=C2=A0 =C2=A0 =C2=A0| oid=C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| not null |
=C2=A0schemadata=C2=A0 =C2=A0 =C2=A0 | text=C2=A0 =C2=A0 =C2=A0 | C=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0| not null |
=C2=A0schemaacl=C2=A0 =C2=A0 =C2=A0 =C2=A0| aclitem[] |=C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |
Indexes:
=C2=A0 =C2=A0 "pg_xmlschema_oid_index" PRIMARY KEY, btree (oid) =C2=A0 =C2=A0 "pg_xmlschema_name_nsp_index" UNIQUE CONSTRAINT, bt= ree (schemaname,
schemanamespace)


=3D=3D psql command to display and list xml schemas =3D=3D

Not a requirement for this patch (specially not at the current stage),
but you should add it to your TODO list.

\dz
\dz foo
\dz+ foo

* z here is just an example

=3D=3D tab completion =3D=3D

CREATE <TAB> should suggest XMLSCHEMA and CREATE XML<TAB> shoul= d
autocomplete CREATE XMLSCHEMA. The same applies for DROP XMLSCHEMA [IF
EXISTS], where it should additionally list the available schemas after
DROP XMLSCHEMA <TAB>.

=3D=3D white-space warnings =3D=3D

The patch does not apply cleanly:

/home/jim/patches/xmlvalidate/0002-xmlschema-catalog-and-xmlvalidate.patch:= 594:
indent with spaces.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Oid schemanamespace= ,
/home/jim/patches/xmlvalidate/0002-xmlschema-catalog-and-xmlvalidate.patch:= 595:
indent with spaces.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Oid schemaowner, /home/jim/patches/xmlvalidate/0002-xmlschema-catalog-and-xmlvalidate.patch:= 596:
indent with spaces.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 const char *schemad= ata,
/home/jim/patches/xmlvalidate/0002-xmlschema-catalog-and-xmlvalidate.patch:= 597:
indent with spaces.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bool if_not_exists,=
/home/jim/patches/xmlvalidate/0002-xmlschema-catalog-and-xmlvalidate.patch:= 598:
indent with spaces.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bool quiet)
warning: squelched 139 whitespace errors
warning: 144 lines add whitespace errors.

=3D=3D file naming =3D=3D

Your patch suggests that it is part of a patch set, from which 0001 is
missing. In case you meant a version 2 of the previous patch, a better
format would be

v2-0001-xmlschema-catalog-and-xmlvalidate.patch

which can be generated with

$ git format-patch -1 -v2

=3D=3D xml_1.out not updated =3D=3D

After every change in xml.sql you must create an equivalent file for a
postgres compiled without --with-libxml, and put the changes in
xml_1.out.[1]

=3D=3D corrupt pg_dump =3D=3D

I understand we agreed to work on XMLVALIDATE only after CREATE
XMLSCHEMA is settled, but since the code is partially already there, you might wanna take a look at pg_dump. It is not serialising the CREATE
XMLSCHEMA statements:

$ /usr/local/postgres-dev/bin/psql postgres
psql (19devel)
Type "help" for help.

postgres=3D# CREATE XMLSCHEMA person_schema AS '<?xml version=3D&quo= t;1.0"?>
<xs:schema xmlns:xs=3D"http://www.w3.org/2001/XMLSchema&= quot;>
=C2=A0 <xs:element name=3D"person">
=C2=A0 =C2=A0 <xs:complexType>
=C2=A0 =C2=A0 =C2=A0 <xs:sequence>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 <xs:element name=3D"name" type=3D&= quot;xs:string"/>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 <xs:element name=3D"age" type=3D&q= uot;xs:integer"/>
=C2=A0 =C2=A0 =C2=A0 </xs:sequence>
=C2=A0 =C2=A0 </xs:complexType>
=C2=A0 </xs:element>
</xs:schema>';
CREATE XMLSCHEMA
postgres=3D# CREATE VIEW v AS
=C2=A0SELECT XMLVALIDATE(DOCUMENT '<bar></bar>'::xml =C2=A0ACCORDING TO XMLSCHEMA person_schema);
CREATE VIEW
postgres=3D# \q

$ /usr/local/postgres-dev/bin/pg_dump postgres
--
-- PostgreSQL database dump
--

\restrict WLaIQWmNJVW2yc4Jv5W81qh2TZGHnupJlpl4Urm4Pp6Ku3VPyH5dO3ReFc4LMmd
-- Dumped from database version 19devel
-- Dumped by pg_dump version 19devel

SET statement_timeout =3D 0;
SET lock_timeout =3D 0;
SET idle_in_transaction_session_timeout =3D 0;
SET transaction_timeout =3D 0;
SET client_encoding =3D 'UTF8';
SET standard_conforming_strings =3D on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies =3D false;
SET xmloption =3D content;
SET client_min_messages =3D warning;
SET row_security =3D off;

--
-- Name: test_xmlschema_ns; Type: SCHEMA; Schema: -; Owner: jim
--

CREATE SCHEMA test_xmlschema_ns;


ALTER SCHEMA test_xmlschema_ns OWNER TO jim;

--
-- Name: v; Type: VIEW; Schema: public; Owner: jim
--

CREATE VIEW public.v AS
=C2=A0SELECT XMLVALIDATE(DOCUMENT '<bar></bar>'::xml AC= CORDING TO XMLSCHEMA
person_schema) AS "xmlvalidate";


ALTER VIEW public.v OWNER TO jim;

--
-- PostgreSQL database dump complete
--

\unrestrict WLaIQWmNJVW2yc4Jv5W81qh2TZGHnupJlpl4Urm4Pp6Ku3VPyH5dO3ReFc4LMmd=

Take a look at pg_dump.c. You might need a new function, e.g.
dumpXmlSchemas(Archive *fout, const SchemaInfo *schemaInfo)

=3D=3D patch structure =3D=3D

To make the review a bit easier, I suggest to split this patch into a
patch set with **at least 4** smaller patches - the more seasoned
hackers here might correct me if I am wrong. For instance:

0001 - CREATE XMLSCHEMA (code + tests + documentation)
0002 - pg_dump changes to output CREATE XMLSCHEMA
0003 - psql tab completion + new command to display and list xml schemas 0004 - XMLVALIDATE (code + tests + documentation)


Thanks for working on this!

Best, Jim

[1] https://cirrus-ci.com/task/48= 72456290172928?logs=3Dcheck_world#L126
--0000000000002859830648ebfe5d-- --0000000000002859840648ebfe5f Content-Type: application/octet-stream; name="0004-Add-XMLVALIDATE-function-for-XML-schema-validation.patch" Content-Disposition: attachment; filename="0004-Add-XMLVALIDATE-function-for-XML-schema-validation.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkohqcux3 RnJvbSAwMDVhYjkxZDg4NTYzMzQ4OTAzNmM2Yzg2ZmYxNTI4NWU0OGU4MThiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjb3MgTWFndWV0YSA8bWFndWV0YW1hcmNvc0BnbWFpbC5j b20+CkRhdGU6IFdlZCwgMjEgSmFuIDIwMjYgMTc6MTE6NTIgLTAzMDAKU3ViamVjdDogW1BBVENI IDQvNV0gQWRkIFhNTFZBTElEQVRFIGZ1bmN0aW9uIGZvciBYTUwgc2NoZW1hIHZhbGlkYXRpb24K Ci0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyB8ICAyNyArKysrKwog c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAgICAgICB8ICA0MyArKysrKysrKwogc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC91 dGlscy9hZHQveG1sLmMgICAgICAgICAgIHwgMTQ0ICsrKysrKysrKysrKysrKysrKysrKysrKyst CiBzcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCAgICAgICAgIHwgICAxICsKIHNyYy9pbmNs dWRlL3V0aWxzL3htbC5oICAgICAgICAgICAgICAgfCAgIDEgKwogNiBmaWxlcyBjaGFuZ2VkLCAy MTcgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjRXhwckludGVycC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHJJbnRlcnAuYwppbmRleCBhN2E1YWMxZTgzYi4uMmI0MTZhNGQ5MDMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAtNDYyNiw2ICs0NjI2LDMzIEBAIEV4ZWNFdmFsWG1s RXhwcihFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wKQogCQkJfQogCQkJYnJlYWs7 CiAKKwkJY2FzZSBJU19YTUxWQUxJREFURToKKwkJCXsKKwkJCQlEYXR1bQkgICAqYXJndmFsdWUg PSBvcC0+ZC54bWxleHByLmFyZ3ZhbHVlOworCQkJCWJvb2wJICAgKmFyZ251bGwgPSBvcC0+ZC54 bWxleHByLmFyZ251bGw7CisJCQkJeG1sdHlwZSAgICAqZGF0YTsKKwkJCQlPaWQJCQlzY2hlbWFf b2lkOworCQkJCXhtbHR5cGUgICAgKnJlc3VsdDsKKworCQkJCS8qIFR3byBhcmd1bWVudHM6IFhN TCBkYXRhIGFuZCBzY2hlbWEgT0lEICovCisJCQkJQXNzZXJ0KGxpc3RfbGVuZ3RoKHhleHByLT5h cmdzKSA9PSAyKTsKKworCQkJCWlmIChhcmdudWxsWzBdIHx8IGFyZ251bGxbMV0pCisJCQkJewor CQkJCQkqb3AtPnJlc251bGwgPSB0cnVlOworCQkJCQlyZXR1cm47CisJCQkJfQorCisJCQkJZGF0 YSA9IERhdHVtR2V0WG1sUChhcmd2YWx1ZVswXSk7CisJCQkJc2NoZW1hX29pZCA9IERhdHVtR2V0 T2JqZWN0SWQoYXJndmFsdWVbMV0pOworCisJCQkJcmVzdWx0ID0geG1sdmFsaWRhdGVfc2NoZW1h KGRhdGEsIHNjaGVtYV9vaWQpOworCisJCQkJKm9wLT5yZXN2YWx1ZSA9IFBvaW50ZXJHZXREYXR1 bShyZXN1bHQpOworCQkJCSpvcC0+cmVzbnVsbCA9IGZhbHNlOworCQkJfQorCQkJYnJlYWs7CisK IAkJY2FzZSBJU19ET0NVTUVOVDoKIAkJCXsKIAkJCQlEYXR1bQkgICAqYXJndmFsdWUgPSBvcC0+ ZC54bWxleHByLmFyZ3ZhbHVlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggNTY4MjZkYjRj MjYuLmZkMzk5YjE0ZDlhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhw ci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTE2LDYgKzE2LDcg QEAKICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAiYWNjZXNzL2h0dXBfZGV0YWls cy5oIgorI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19hZ2dyZWdhdGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJt aXNjYWRtaW4uaCIKQEAgLTIzNjEsNiArMjM2Miw3IEBAIHRyYW5zZm9ybVhtbEV4cHIoUGFyc2VT dGF0ZSAqcHN0YXRlLCBYbWxFeHByICp4KQogCVhtbEV4cHIgICAgKm5ld3g7CiAJTGlzdENlbGwg ICAqbGM7CiAJaW50CQkJaTsKKwlPaWQJCQl4bWx2YWxpZGF0ZV9zY2hlbWFfb2lkID0gSW52YWxp ZE9pZDsKIAogCW5ld3ggPSBtYWtlTm9kZShYbWxFeHByKTsKIAluZXd4LT5vcCA9IHgtPm9wOwpA QCAtMjM3Myw2ICsyMzc1LDIyIEBAIHRyYW5zZm9ybVhtbEV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRl LCBYbWxFeHByICp4KQogCW5ld3gtPnR5cG1vZCA9IC0xOwogCW5ld3gtPmxvY2F0aW9uID0geC0+ bG9jYXRpb247CiAKKwkvKgorCSAqIFhNTFZBTElEQVRFIHN0b3JlcyB0aGUgc2NoZW1hIG5hbWUg bGlzdCBpbiBuYW1lZF9hcmdzLCBub3QgUmVzVGFyZ2V0cy4KKwkgKiBFeHRyYWN0IGl0IGJlZm9y ZSBwcm9jZXNzaW5nIG5hbWVkIGFyZ3VtZW50cy4KKwkgKi8KKwlpZiAoeC0+b3AgPT0gSVNfWE1M VkFMSURBVEUgJiYgeC0+bmFtZWRfYXJncyAhPSBOSUwpCisJeworCQlMaXN0CSAgICpzY2hlbWFf bmFtZV9saXN0OworCisJCXNjaGVtYV9uYW1lX2xpc3QgPSB4LT5uYW1lZF9hcmdzOworCQl4bWx2 YWxpZGF0ZV9zY2hlbWFfb2lkID0gZ2V0X3htbHNjaGVtYV9vaWQoc2NoZW1hX25hbWVfbGlzdCwg ZmFsc2UpOworCQkvKiBQcmVzZXJ2ZSBzY2hlbWEgbmFtZSBmb3IgZGVwYXJzaW5nICovCisJCW5l d3gtPm5hbWUgPSBOYW1lTGlzdFRvU3RyaW5nKHNjaGVtYV9uYW1lX2xpc3QpOworCQkvKiBDbGVh ciB0byBhdm9pZCBwcm9jZXNzaW5nIGFzIFJlc1RhcmdldHMgKi8KKwkJeC0+bmFtZWRfYXJncyA9 IE5JTDsKKwl9CisKIAkvKgogCSAqIGdyYW0ueSBidWlsdCB0aGUgbmFtZWQgYXJncyBhcyBhIGxp c3Qgb2YgUmVzVGFyZ2V0LiAgVHJhbnNmb3JtIGVhY2gsCiAJICogYW5kIGJyZWFrIHRoZSBuYW1l cyBvdXQgYXMgYSBzZXBhcmF0ZSBsaXN0LgpAQCAtMjQ3Miw2ICsyNDkwLDExIEBAIHRyYW5zZm9y bVhtbEV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBYbWxFeHByICp4KQogCQkJCS8qIG5vdCBoYW5k bGVkIGhlcmUgKi8KIAkJCQlBc3NlcnQoZmFsc2UpOwogCQkJCWJyZWFrOworCQkJY2FzZSBJU19Y TUxWQUxJREFURToKKwkJCQkvKiBGaXJzdCBhcmd1bWVudCBpcyB0aGUgWE1MIGRhdGEgKi8KKwkJ CQluZXdlID0gY29lcmNlX3RvX3NwZWNpZmljX3R5cGUocHN0YXRlLCBuZXdlLCBYTUxPSUQsCisJ CQkJCQkJCQkJCSAgICJYTUxWQUxJREFURSIpOworCQkJCWJyZWFrOwogCQkJY2FzZSBJU19ET0NV TUVOVDoKIAkJCQluZXdlID0gY29lcmNlX3RvX3NwZWNpZmljX3R5cGUocHN0YXRlLCBuZXdlLCBY TUxPSUQsCiAJCQkJCQkJCQkJCSAgICJJUyBET0NVTUVOVCIpOwpAQCAtMjQ4MSw2ICsyNTA0LDI2 IEBAIHRyYW5zZm9ybVhtbEV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBYbWxFeHByICp4KQogCQlp Kys7CiAJfQogCisJLyogRm9yIFhNTFZBTElEQVRFLCBhZGQgdGhlIHNjaGVtYSBPSUQgYXMgc2Vj b25kIGFyZ3VtZW50ICovCisJaWYgKHgtPm9wID09IElTX1hNTFZBTElEQVRFKQorCXsKKwkJQ29u c3QJICAgKnNjaGVtYV9vaWRfY29uc3Q7CisKKwkJQXNzZXJ0KE9pZElzVmFsaWQoeG1sdmFsaWRh dGVfc2NoZW1hX29pZCkpOworCisJCXNjaGVtYV9vaWRfY29uc3QgPSBtYWtlQ29uc3QoT0lET0lE LAorCQkJCQkJCQkJIC0xLAorCQkJCQkJCQkJIEludmFsaWRPaWQsCisJCQkJCQkJCQkgc2l6ZW9m KE9pZCksCisJCQkJCQkJCQkgT2JqZWN0SWRHZXREYXR1bSh4bWx2YWxpZGF0ZV9zY2hlbWFfb2lk KSwKKwkJCQkJCQkJCSBmYWxzZSwKKwkJCQkJCQkJCSB0cnVlKTsKKwkJbmV3eC0+YXJncyA9IGxh cHBlbmQobmV3eC0+YXJncywgc2NoZW1hX29pZF9jb25zdCk7CisKKwkJLyogUmV0dXJuIHR5cGUg aXMgWE1MICovCisJCW5ld3gtPnR5cGUgPSBYTUxPSUQ7CisJfQorCiAJcmV0dXJuIChOb2RlICop IG5ld3g7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQu YyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCBiNWEyZjkxNWI2Ny4u YjM4MGJiMzllYjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQu YworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTE5NzYsNiArMTk3 Niw5IEBAIEZpZ3VyZUNvbG5hbWVJbnRlcm5hbChOb2RlICpub2RlLCBjaGFyICoqbmFtZSkKIAkJ CQljYXNlIElTX1hNTFNFUklBTElaRToKIAkJCQkJKm5hbWUgPSAieG1sc2VyaWFsaXplIjsKIAkJ CQkJcmV0dXJuIDI7CisJCQkJY2FzZSBJU19YTUxWQUxJREFURToKKwkJCQkJKm5hbWUgPSAieG1s dmFsaWRhdGUiOworCQkJCQlyZXR1cm4gMjsKIAkJCQljYXNlIElTX0RPQ1VNRU5UOgogCQkJCQkv KiBub3RoaW5nICovCiAJCQkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3htbC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jCmluZGV4IGY2OWRjNjgyODZj Li5kNTdjM2MwN2Y5MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC94bWwuYwpAQCAtNTgsNiArNTgsNyBAQAogI2luY2x1 ZGUgPGxpYnhtbC94bWx3cml0ZXIuaD4KICNpbmNsdWRlIDxsaWJ4bWwveHBhdGguaD4KICNpbmNs dWRlIDxsaWJ4bWwveHBhdGhJbnRlcm5hbHMuaD4KKyNpbmNsdWRlIDxsaWJ4bWwveG1sc2NoZW1h cy5oPgogCiAvKgogICogV2UgdXNlZCB0byBjaGVjayBmb3IgeG1sU3RydWN0dXJlZEVycm9yQ29u dGV4dCB2aWEgYSBjb25maWd1cmUgdGVzdDsgYnV0CkBAIC04NCw2ICs4NSw3IEBACiAjaW5jbHVk ZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NsYXNzLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ194bWxzY2hl bWEuaCIKICNpbmNsdWRlICJleGVjdXRvci9zcGkuaCIKICNpbmNsdWRlICJleGVjdXRvci90YWJs ZWZ1bmMuaCIKICNpbmNsdWRlICJmbWdyLmgiCkBAIC05NCw2ICs5Niw3IEBACiAjaW5jbHVkZSAi bm9kZXMvZXhlY25vZGVzLmgiCiAjaW5jbHVkZSAibm9kZXMvbWlzY25vZGVzLmgiCiAjaW5jbHVk ZSAibm9kZXMvbm9kZUZ1bmNzLmgiCisjaW5jbHVkZSAidXRpbHMvYWNsLmgiCiAjaW5jbHVkZSAi dXRpbHMvYXJyYXkuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0 aWxzL2RhdGUuaCIKQEAgLTExNTgsMTAgKzExNjEsMTQ3IEBAIHhtbHZhbGlkYXRlKFBHX0ZVTkNU SU9OX0FSR1MpCiB7CiAJZXJlcG9ydChFUlJPUiwKIAkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVS RV9OT1RfU1VQUE9SVEVEKSwKLQkJCSBlcnJtc2coInhtbHZhbGlkYXRlIGlzIG5vdCBpbXBsZW1l bnRlZCIpKSk7CisJCQkgZXJybXNnKCJ4bWx2YWxpZGF0ZSBpcyBub3QgaW1wbGVtZW50ZWQgYWdh aW5zdCBnZW5lcmFsaXplZCBzY2hlbWEgZGVmaW5pdGlvbnMiKSkpOwogCXJldHVybiAwOwogfQog CisvKgorICogeG1sdmFsaWRhdGVfc2NoZW1hIC0gdmFsaWRhdGUgWE1MIGRvY3VtZW50IGFnYWlu c3QgYSByZWdpc3RlcmVkIFhNTCBTY2hlbWEKKyAqCisgKiBWYWxpZGF0ZXMgdGhlIGdpdmVuIFhN TCBkb2N1bWVudCBhZ2FpbnN0IHRoZSBzY2hlbWEgaWRlbnRpZmllZCBieSBhIHNjaGVtYV9vaWQu CisgKiBSZXR1cm5zIHRoZSB2YWxpZGF0ZWQgWE1MIHZhbHVlLCBvciByYWlzZXMgYW4gZXJyb3Ig aWYgdGhlIHZhbGlkYXRpb24gZmFpbHMuCisgKi8KK3htbHR5cGUgKgoreG1sdmFsaWRhdGVfc2No ZW1hKHhtbHR5cGUgKmRhdGEsIE9pZCBzY2hlbWFfb2lkKQoreworI2lmZGVmIFVTRV9MSUJYTUwK KwlIZWFwVHVwbGUJdHVwbGU7CisJRGF0dW0JCXNjaGVtYV9kYXR1bTsKKwlib29sCQlpc251bGw7 CisJeG1sdHlwZSAgICAqc2NoZW1hX3htbDsKKwljaGFyCSAgICpzY2hlbWFzdHI7CisJdm9sYXRp bGUgeG1sRG9jUHRyIGRvYyA9IE5VTEw7CisJdm9sYXRpbGUJeG1sU2NoZW1hUGFyc2VyQ3R4dFB0 ciBzY2hlbWFfcGFyc2VyX2N0eHQgPSBOVUxMOworCXZvbGF0aWxlCXhtbFNjaGVtYVB0ciBzY2hl bWFfcHRyID0gTlVMTDsKKwl2b2xhdGlsZQl4bWxTY2hlbWFWYWxpZEN0eHRQdHIgdmFsaWRfY3R4 dCA9IE5VTEw7CisJaW50CQkJcmVzdWx0OworCVBnWG1sRXJyb3JDb250ZXh0ICp4bWxlcnJjeHQ7 CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKworCS8qIENoZWNrIHVzYWdlIHBlcm1pc3Npb24gZmly c3QgKi8KKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soWG1sU2NoZW1hUmVsYXRpb25JZCwg c2NoZW1hX29pZCwKKwkJCQkJCQkJR2V0VXNlcklkKCksIEFDTF9VU0FHRSk7CisJaWYgKGFjbHJl c3VsdCAhPSBBQ0xDSEVDS19PSykKKwl7CisJCS8qIEZldGNoIHR1cGxlIG9ubHkgdG8gZ2V0IG5h bWUgZm9yIHRoZSBlcnJvciBtZXNzYWdlICovCisJCUZvcm1fcGdfeG1sc2NoZW1hIHNjaGVtYV9m b3JtOworCisJCXR1cGxlID0gU2VhcmNoU3lzQ2FjaGUxKFhNTFNDSEVNQU9JRCwgT2JqZWN0SWRH ZXREYXR1bShzY2hlbWFfb2lkKSk7CisJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSkpCisJ CQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgWE1MIHNjaGVtYSAldSIsIHNj aGVtYV9vaWQpOworCisJCXNjaGVtYV9mb3JtID0gKEZvcm1fcGdfeG1sc2NoZW1hKSBHRVRTVFJV Q1QodHVwbGUpOworCQlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOworCisJCWFjbGNoZWNrX2Vycm9y KGFjbHJlc3VsdCwgT0JKRUNUX1hNTFNDSEVNQSwKKwkJCQkJICAgTmFtZVN0cihzY2hlbWFfZm9y bS0+c2NoZW1hbmFtZSkpOworCX0KKworCXR1cGxlID0gU2VhcmNoU3lzQ2FjaGUxKFhNTFNDSEVN QU9JRCwgT2JqZWN0SWRHZXREYXR1bShzY2hlbWFfb2lkKSk7CisJaWYgKCFIZWFwVHVwbGVJc1Zh bGlkKHR1cGxlKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIFhNTCBz Y2hlbWEgJXUiLCBzY2hlbWFfb2lkKTsKKworCXNjaGVtYV9kYXR1bSA9IFN5c0NhY2hlR2V0QXR0 cihYTUxTQ0hFTUFPSUQsIHR1cGxlLAorCQkJCQkJCQkgICBBbnVtX3BnX3htbHNjaGVtYV9zY2hl bWFkYXRhLCAmaXNudWxsKTsKKwlpZiAoaXNudWxsKQorCQllbG9nKEVSUk9SLCAibnVsbCBzY2hl bWFkYXRhIGZvciBYTUwgc2NoZW1hICV1Iiwgc2NoZW1hX29pZCk7CisKKwlzY2hlbWFfeG1sID0g RGF0dW1HZXRYbWxQKHNjaGVtYV9kYXR1bSk7CisJc2NoZW1hc3RyID0gdGV4dF90b19jc3RyaW5n KHNjaGVtYV94bWwpOworCVJlbGVhc2VTeXNDYWNoZSh0dXBsZSk7CisKKwl4bWxlcnJjeHQgPSBw Z194bWxfaW5pdChQR19YTUxfU1RSSUNUTkVTU19XRUxMRk9STUVEKTsKKworCVBHX1RSWSgpOwor CXsKKwkJRXJyb3JTYXZlQ29udGV4dCBlc2NvbnRleHQgPSB7VF9FcnJvclNhdmVDb250ZXh0fTsK KworCQlkb2MgPSB4bWxfcGFyc2UoKHRleHQgKikgZGF0YSwgWE1MT1BUSU9OX0RPQ1VNRU5ULCB0 cnVlLAorCQkJCQkJR2V0RGF0YWJhc2VFbmNvZGluZygpLCBOVUxMLCBOVUxMLCAoTm9kZSAqKSAm ZXNjb250ZXh0KTsKKworCQlpZiAoZXNjb250ZXh0LmVycm9yX29jY3VycmVkIHx8IGRvYyA9PSBO VUxMKQorCQl7CisJCQlpZiAoZXNjb250ZXh0LmVycm9yX29jY3VycmVkICYmIGVzY29udGV4dC5l cnJvcl9kYXRhKQorCQkJeworCQkJCUVycm9yRGF0YSAgKmVkYXRhID0gZXNjb250ZXh0LmVycm9y X2RhdGE7CisKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZB TElEX1hNTF9ET0NVTUVOVCksCisJCQkJCQkgZXJybXNnKCJpbnZhbGlkIFhNTCBkb2N1bWVudCIp LAorCQkJCQkJIGVycmRldGFpbF9pbnRlcm5hbCgiJXMiLCBlZGF0YS0+bWVzc2FnZSA/IGVkYXRh LT5tZXNzYWdlIDogInVua25vd24gZXJyb3IiKSkpOworCQkJfQorCQkJeG1sX2VyZXBvcnQoeG1s ZXJyY3h0LCBFUlJPUiwgRVJSQ09ERV9JTlZBTElEX1hNTF9ET0NVTUVOVCwKKwkJCQkJCSJpbnZh bGlkIFhNTCBkb2N1bWVudCIpOworCQl9CisKKwkJc2NoZW1hX3BhcnNlcl9jdHh0ID0geG1sU2No ZW1hTmV3TWVtUGFyc2VyQ3R4dChzY2hlbWFzdHIsIHN0cmxlbihzY2hlbWFzdHIpKTsKKwkJaWYg KHNjaGVtYV9wYXJzZXJfY3R4dCA9PSBOVUxMKQorCQkJeG1sX2VyZXBvcnQoeG1sZXJyY3h0LCBF UlJPUiwgRVJSQ09ERV9JTlRFUk5BTF9FUlJPUiwKKwkJCQkJCSJmYWlsZWQgdG8gY3JlYXRlIHNj aGVtYSBwYXJzZXIgY29udGV4dCIpOworCisJCXNjaGVtYV9wdHIgPSB4bWxTY2hlbWFQYXJzZShz Y2hlbWFfcGFyc2VyX2N0eHQpOworCQlpZiAoc2NoZW1hX3B0ciA9PSBOVUxMKQorCQkJeG1sX2Vy ZXBvcnQoeG1sZXJyY3h0LCBFUlJPUiwgRVJSQ09ERV9JTlZBTElEX1hNTF9ET0NVTUVOVCwKKwkJ CQkJCSJmYWlsZWQgdG8gcGFyc2UgWE1MIHNjaGVtYSIpOworCisJCXZhbGlkX2N0eHQgPSB4bWxT Y2hlbWFOZXdWYWxpZEN0eHQoc2NoZW1hX3B0cik7CisJCWlmICh2YWxpZF9jdHh0ID09IE5VTEwp CisJCQl4bWxfZXJlcG9ydCh4bWxlcnJjeHQsIEVSUk9SLCBFUlJDT0RFX09VVF9PRl9NRU1PUlks CisJCQkJCQkiZmFpbGVkIHRvIGNyZWF0ZSBzY2hlbWEgdmFsaWRhdGlvbiBjb250ZXh0Iik7CisK KwkJeG1sU2NoZW1hU2V0VmFsaWRTdHJ1Y3R1cmVkRXJyb3JzKHZhbGlkX2N0eHQsIHhtbF9lcnJv ckhhbmRsZXIsIHhtbGVycmN4dCk7CisKKwkJcmVzdWx0ID0geG1sU2NoZW1hVmFsaWRhdGVEb2Mo dmFsaWRfY3R4dCwgZG9jKTsKKwkJaWYgKHJlc3VsdCA8IDApCisJCQl4bWxfZXJlcG9ydCh4bWxl cnJjeHQsIEVSUk9SLCBFUlJDT0RFX0lOVEVSTkFMX0VSUk9SLAorCQkJCQkJImludGVybmFsIGVy cm9yIGR1cmluZyBzY2hlbWEgdmFsaWRhdGlvbiIpOworCQlpZiAocmVzdWx0ID4gMCkKKwkJCXht bF9lcmVwb3J0KHhtbGVycmN4dCwgRVJST1IsIEVSUkNPREVfSU5WQUxJRF9YTUxfRE9DVU1FTlQs CisJCQkJCQkiWE1MIHZhbGlkYXRpb24gZmFpbGVkIik7CisJfQorCVBHX0NBVENIKCk7CisJewor CQlpZiAodmFsaWRfY3R4dCkKKwkJCXhtbFNjaGVtYUZyZWVWYWxpZEN0eHQodmFsaWRfY3R4dCk7 CisJCWlmIChzY2hlbWFfcHRyKQorCQkJeG1sU2NoZW1hRnJlZShzY2hlbWFfcHRyKTsKKwkJaWYg KHNjaGVtYV9wYXJzZXJfY3R4dCkKKwkJCXhtbFNjaGVtYUZyZWVQYXJzZXJDdHh0KHNjaGVtYV9w YXJzZXJfY3R4dCk7CisJCWlmIChkb2MpCisJCQl4bWxGcmVlRG9jKGRvYyk7CisJCXBnX3htbF9k b25lKHhtbGVycmN4dCwgdHJ1ZSk7CisJCXBmcmVlKHNjaGVtYXN0cik7CisJCVBHX1JFX1RIUk9X KCk7CisJfQorCVBHX0VORF9UUlkoKTsKKworCWlmICh2YWxpZF9jdHh0KQorCQl4bWxTY2hlbWFG cmVlVmFsaWRDdHh0KHZhbGlkX2N0eHQpOworCWlmIChzY2hlbWFfcHRyKQorCQl4bWxTY2hlbWFG cmVlKHNjaGVtYV9wdHIpOworCWlmIChzY2hlbWFfcGFyc2VyX2N0eHQpCisJCXhtbFNjaGVtYUZy ZWVQYXJzZXJDdHh0KHNjaGVtYV9wYXJzZXJfY3R4dCk7CisJaWYgKGRvYykKKwkJeG1sRnJlZURv Yyhkb2MpOworCisJcGdfeG1sX2RvbmUoeG1sZXJyY3h0LCBmYWxzZSk7CisJcGZyZWUoc2NoZW1h c3RyKTsKKwlyZXR1cm4gZGF0YTsKKyNlbHNlCisJTk9fWE1MX1NVUFBPUlQoKTsKKwlyZXR1cm4g TlVMTDsKKyNlbmRpZgorfQogCiBib29sCiB4bWxfaXNfZG9jdW1lbnQoeG1sdHlwZSAqYXJnKQpA QCAtMTE4MSw3ICsxMzIxLDcgQEAgeG1sX2lzX2RvY3VtZW50KHhtbHR5cGUgKmFyZykKIAlyZXR1 cm4gIWVzY29udGV4dC5lcnJvcl9vY2N1cnJlZDsKICNlbHNlCQkJCQkJCS8qIG5vdCBVU0VfTElC WE1MICovCiAJTk9fWE1MX1NVUFBPUlQoKTsKLQlyZXR1cm4gZmFsc2U7CisJcmV0dXJuIE5VTEw7 CiAjZW5kaWYJCQkJCQkJLyogbm90IFVTRV9MSUJYTUwgKi8KIH0KIApkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMu aAppbmRleCA1MjExY2FkYzI1OC4uYzQwY2JjODk4MWEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L25vZGVzL3ByaW1ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBA IC0xNjEwLDYgKzE2MTAsNyBAQCB0eXBlZGVmIGVudW0gWG1sRXhwck9wCiAJSVNfWE1MUk9PVCwJ CQkJCS8qIFhNTFJPT1QoeG1sLCB2ZXJzaW9uLCBzdGFuZGFsb25lKSAqLwogCUlTX1hNTFNFUklB TElaRSwJCQkvKiBYTUxTRVJJQUxJWkUoaXNfZG9jdW1lbnQsIHhtbHZhbCwgaW5kZW50KSAqLwog CUlTX0RPQ1VNRU5ULAkJCQkvKiB4bWx2YWwgSVMgRE9DVU1FTlQgKi8KKwlJU19YTUxWQUxJREFU RSwJCQkJLyogWE1MVkFMSURBVEUoeG1sdmFsLCBzY2hlbWEpICovCiB9IFhtbEV4cHJPcDsKIAog dHlwZWRlZiBlbnVtIFhtbE9wdGlvblR5cGUKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxz L3htbC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMveG1sLmgKaW5kZXggMDNhY2IyNTU0NDkuLmRjNmE0 ZDM3ODQwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy94bWwuaAorKysgYi9zcmMvaW5j bHVkZS91dGlscy94bWwuaApAQCAtNzYsNiArNzYsNyBAQCBleHRlcm4geG1sdHlwZSAqeG1sZWxl bWVudChYbWxFeHByICp4ZXhwciwKIGV4dGVybiB4bWx0eXBlICp4bWxwYXJzZSh0ZXh0ICpkYXRh LCBYbWxPcHRpb25UeXBlIHhtbG9wdGlvbl9hcmcsIGJvb2wgcHJlc2VydmVfd2hpdGVzcGFjZSk7 CiBleHRlcm4geG1sdHlwZSAqeG1scGkoY29uc3QgY2hhciAqdGFyZ2V0LCB0ZXh0ICphcmcsIGJv b2wgYXJnX2lzX251bGwsIGJvb2wgKnJlc3VsdF9pc19udWxsKTsKIGV4dGVybiB4bWx0eXBlICp4 bWxyb290KHhtbHR5cGUgKmRhdGEsIHRleHQgKnZlcnNpb24sIGludCBzdGFuZGFsb25lKTsKK2V4 dGVybiB4bWx0eXBlICp4bWx2YWxpZGF0ZV9zY2hlbWEoeG1sdHlwZSAqZGF0YSwgT2lkIHNjaGVt YV9vaWQpOwogZXh0ZXJuIGJvb2wgeG1sX2lzX2RvY3VtZW50KHhtbHR5cGUgKmFyZyk7CiBleHRl cm4gdGV4dCAqeG1sdG90ZXh0X3dpdGhfb3B0aW9ucyh4bWx0eXBlICpkYXRhLCBYbWxPcHRpb25U eXBlIHhtbG9wdGlvbl9hcmcsCiAJCQkJCQkJCQlib29sIGluZGVudCk7Ci0tIAoyLjUxLjIKCg== --0000000000002859840648ebfe5f Content-Type: application/octet-stream; name="0003-Add-psql-tab-completion-for-XMLSCHEMA-commands.patch" Content-Disposition: attachment; filename="0003-Add-psql-tab-completion-for-XMLSCHEMA-commands.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkohqcuw2 RnJvbSA5MmMzY2ViYjI0Y2UxNDczOTgwOTc1YmIzNjY2YzkyYzJlMGZhYzU1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjb3MgTWFndWV0YSA8bWFndWV0YW1hcmNvc0BnbWFpbC5j b20+CkRhdGU6IFdlZCwgMjEgSmFuIDIwMjYgMTc6MTE6MzkgLTAzMDAKU3ViamVjdDogW1BBVENI IDMvNV0gQWRkIHBzcWwgdGFiIGNvbXBsZXRpb24gZm9yIFhNTFNDSEVNQSBjb21tYW5kcwoKLS0t CiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgfCAyMiArKysrKysrKysrKysrKysrKysr KysrCiAxIGZpbGUgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4u YwppbmRleCA4YjkxYmMwMDA2Mi4uM2UzZDc4ODgyOTQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNx bC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMK QEAgLTc5Nyw2ICs3OTcsMTMgQEAgc3RhdGljIGNvbnN0IFNjaGVtYVF1ZXJ5IFF1ZXJ5X2Zvcl9s aXN0X29mX21hdHZpZXdzID0gewogCS5yZXN1bHQgPSAiYy5yZWxuYW1lIiwKIH07CiAKK3N0YXRp YyBjb25zdCBTY2hlbWFRdWVyeSBRdWVyeV9mb3JfbGlzdF9vZl94bWxzY2hlbWFzID0geworCS5j YXRuYW1lID0gInBnX2NhdGFsb2cucGdfeG1sc2NoZW1hIHMiLAorCS52aXNjb25kaXRpb24gPSAi cGdfY2F0YWxvZy5oYXNfc2NoZW1hX3ByaXZpbGVnZShzLm9pZCwgJ1VTQUdFJykiLAorCS5uYW1l c3BhY2UgPSAicy5zY2hlbWFuYW1lc3BhY2UiLAorCS5yZXN1bHQgPSAicy5zY2hlbWFuYW1lIiwK K307CisKIHN0YXRpYyBjb25zdCBTY2hlbWFRdWVyeSBRdWVyeV9mb3JfbGlzdF9vZl9pbmRleGVz ID0gewogCS5jYXRuYW1lID0gInBnX2NhdGFsb2cucGdfY2xhc3MgYyIsCiAJLnNlbGNvbmRpdGlv biA9CkBAIC0xMzY0LDYgKzEzNzEsNyBAQCBzdGF0aWMgY29uc3QgcGdzcWxfdGhpbmdfdCB3b3Jk c19hZnRlcl9jcmVhdGVbXSA9IHsKIAl7IlVTRVIiLCBRdWVyeV9mb3JfbGlzdF9vZl9yb2xlcywg TlVMTCwgTlVMTCwgS2V5d29yZHNfZm9yX3VzZXJfdGhpbmd9LAogCXsiVVNFUiBNQVBQSU5HIEZP UiIsIE5VTEwsIE5VTEwsIE5VTEx9LAogCXsiVklFVyIsIE5VTEwsIE5VTEwsICZRdWVyeV9mb3Jf bGlzdF9vZl92aWV3c30sCisJeyJYTUxTQ0hFTUEiLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xp c3Rfb2ZfeG1sc2NoZW1hc30sCiAJe05VTEx9CQkJCQkJLyogZW5kIG9mIGxpc3QgKi8KIH07CiAK QEAgLTI3MDEsNiArMjcwOSwxMCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9p ZCwKIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJNQVRFUklBTElaRUQiLCAiVklFVyIsIE1h dGNoQW55LCAiU0VUIiwgIkFDQ0VTUyIsICJNRVRIT0QiKSkKIAkJQ09NUExFVEVfV0lUSF9RVUVS WShRdWVyeV9mb3JfbGlzdF9vZl90YWJsZV9hY2Nlc3NfbWV0aG9kcyk7CiAKKwkvKiBBTFRFUiBY TUxTQ0hFTUEgPG5hbWU+ICovCisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiWE1MU0NIRU1B IiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJPV05FUiBUTyIsICJSRU5BTUUgVE8iLCAi U0VUIFNDSEVNQSIpOworCiAJLyogQUxURVIgUE9MSUNZIDxuYW1lPiAqLwogCWVsc2UgaWYgKE1h dGNoZXMoIkFMVEVSIiwgIlBPTElDWSIpKQogCQlDT01QTEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zv cl9saXN0X29mX3BvbGljaWVzKTsKQEAgLTQxNzgsNiArNDE5MCwxNiBAQCBtYXRjaF9wcmV2aW91 c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJCSBNYXRjaGVzKCJDUkVBVEUiLCAiTUFURVJJQUxJ WkVEIiwgIlZJRVciLCBNYXRjaEFueSwgIlVTSU5HIiwgTWF0Y2hBbnksICJBUyIpKQogCQlDT01Q TEVURV9XSVRIKCJTRUxFQ1QiKTsKIAorLyogQ1JFQVRFIFhNTFNDSEVNQSAqLworCWVsc2UgaWYg KE1hdGNoZXMoIkNSRUFURSIsICJYTUxTQ0hFTUEiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJ VEgoIkFTIiwgIklGIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlhNTFNDSEVNQSIs ICJJRiIpKQorCQlDT01QTEVURV9XSVRIKCJOT1QiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVB VEUiLCAiWE1MU0NIRU1BIiwgIklGIiwgIk5PVCIpKQorCQlDT01QTEVURV9XSVRIKCJFWElTVFMi KTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiWE1MU0NIRU1BIiwgIklGIiwgIk5PVCIs ICJFWElTVFMiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIkFTIik7CisKIC8qIENSRUFU RSBFVkVOVCBUUklHR0VSICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIkVWRU5UIikp CiAJCUNPTVBMRVRFX1dJVEgoIlRSSUdHRVIiKTsKLS0gCjIuNTEuMgoK --0000000000002859840648ebfe5f Content-Type: application/octet-stream; name="0002-Add-pg_dump-support-for-XMLSCHEMA-objects.patch" Content-Disposition: attachment; filename="0002-Add-pg_dump-support-for-XMLSCHEMA-objects.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkohqcuu1 RnJvbSA3NjdkY2QwZjM2NjlkMjcwMWQ5Zjk0YTAxMTIxMDhiZTM0MDcxYzM4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjb3MgTWFndWV0YSA8bWFndWV0YW1hcmNvc0BnbWFpbC5j b20+CkRhdGU6IFdlZCwgMjEgSmFuIDIwMjYgMTc6MTE6MjQgLTAzMDAKU3ViamVjdDogW1BBVENI IDIvNV0gQWRkIHBnX2R1bXAgc3VwcG9ydCBmb3IgWE1MU0NIRU1BIG9iamVjdHMKCi0tLQogc3Jj L2Jpbi9wZ19kdW1wL2NvbW1vbi5jICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iaW4vcGdfZHVt cC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyB8ICAgMSArCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5j ICAgICAgICAgICAgfCAxMjggKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgfCAgIDggKysKIDQgZmlsZXMgY2hhbmdlZCwgMTQw IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMgYi9z cmMvYmluL3BnX2R1bXAvY29tbW9uLmMKaW5kZXggMzQ5YjQ3YzhlMjkuLjY1MWNmNjc0MzY1IDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1w L2NvbW1vbi5jCkBAIC0xODIsNiArMTgyLDkgQEAgZ2V0U2NoZW1hRGF0YShBcmNoaXZlICpmb3V0 LCBpbnQgKm51bVRhYmxlc1B0cikKIAlwZ19sb2dfaW5mbygicmVhZGluZyB1c2VyLWRlZmluZWQg Y29udmVyc2lvbnMiKTsKIAlnZXRDb252ZXJzaW9ucyhmb3V0KTsKIAorCXBnX2xvZ19pbmZvKCJy ZWFkaW5nIFhNTCBzY2hlbWFzIik7CisJZ2V0WG1sU2NoZW1hcyhmb3V0KTsKKwogCXBnX2xvZ19p bmZvKCJyZWFkaW5nIHR5cGUgY2FzdHMiKTsKIAlnZXRDYXN0cyhmb3V0KTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jIGIvc3JjL2Jpbi9wZ19kdW1w L3BnX2JhY2t1cF9hcmNoaXZlci5jCmluZGV4IDRhNjNmNzM5MmFlLi4zMTc1MDgzZWRiMCAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCisrKyBiL3NyYy9i aW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwpAQCAtMzgxNiw2ICszODE2LDcgQEAgX2dl dE9iamVjdERlc2NyaXB0aW9uKFBRRXhwQnVmZmVyIGJ1ZiwgY29uc3QgVG9jRW50cnkgKnRlKQog CQlzdHJjbXAodHlwZSwgIlRFWFQgU0VBUkNIIENPTkZJR1VSQVRJT04iKSA9PSAwIHx8CiAJCXN0 cmNtcCh0eXBlLCAiVFlQRSIpID09IDAgfHwKIAkJc3RyY21wKHR5cGUsICJWSUVXIikgPT0gMCB8 fAorCQlzdHJjbXAodHlwZSwgIlhNTFNDSEVNQSIpID09IDAgfHwKIAkvKiBub24tc2NoZW1hLXNw ZWNpZmllZCBvYmplY3RzICovCiAJCXN0cmNtcCh0eXBlLCAiREFUQUJBU0UiKSA9PSAwIHx8CiAJ CXN0cmNtcCh0eXBlLCAiUFJPQ0VEVVJBTCBMQU5HVUFHRSIpID09IDAgfHwKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmlu ZGV4IDY4N2RjOThlNDZkLi45YTUzMWZmM2U4YyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC0zMTAsNiArMzEw LDcgQEAgc3RhdGljIHZvaWQgZHVtcEFjY2Vzc01ldGhvZChBcmNoaXZlICpmb3V0LCBjb25zdCBB Y2Nlc3NNZXRob2RJbmZvICphbWluZm8pOwogc3RhdGljIHZvaWQgZHVtcE9wY2xhc3MoQXJjaGl2 ZSAqZm91dCwgY29uc3QgT3BjbGFzc0luZm8gKm9wY2luZm8pOwogc3RhdGljIHZvaWQgZHVtcE9w ZmFtaWx5KEFyY2hpdmUgKmZvdXQsIGNvbnN0IE9wZmFtaWx5SW5mbyAqb3BmaW5mbyk7CiBzdGF0 aWMgdm9pZCBkdW1wQ29sbGF0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IENvbGxJbmZvICpjb2xs aW5mbyk7CitzdGF0aWMgdm9pZCBkdW1wWG1sU2NoZW1hKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFht bFNjaGVtYUluZm8gKiB4bWxzY2hlbWFpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBDb252ZXJzaW9u KEFyY2hpdmUgKmZvdXQsIGNvbnN0IENvbnZJbmZvICpjb252aW5mbyk7CiBzdGF0aWMgdm9pZCBk dW1wUnVsZShBcmNoaXZlICpmb3V0LCBjb25zdCBSdWxlSW5mbyAqcmluZm8pOwogc3RhdGljIHZv aWQgZHVtcEFnZyhBcmNoaXZlICpmb3V0LCBjb25zdCBBZ2dJbmZvICphZ2dpbmZvKTsKQEAgLTY1 NjMsNiArNjU2NCw2MiBAQCBnZXRDb252ZXJzaW9ucyhBcmNoaXZlICpmb3V0KQogCWRlc3Ryb3lQ UUV4cEJ1ZmZlcihxdWVyeSk7CiB9CiAKKy8qCisgKiBnZXRYbWxTY2hlbWFzOgorICoJICBnZXQg aW5mb3JtYXRpb24gYWJvdXQgYWxsIFhNTCBzY2hlbWFzIGluIHRoZSBzeXN0ZW0gY2F0YWxvZ3MK KyAqLwordm9pZAorZ2V0WG1sU2NoZW1hcyhBcmNoaXZlICpmb3V0KQoreworCVBHcmVzdWx0ICAg KnJlczsKKwlpbnQJCQludHVwczsKKwlpbnQJCQlpOworCVBRRXhwQnVmZmVyIHF1ZXJ5OworCVht bFNjaGVtYUluZm8gKnhtbHNjaGVtYWluZm87CisJaW50CQkJaV90YWJsZW9pZDsKKwlpbnQJCQlp X29pZDsKKwlpbnQJCQlpX3NjaGVtYW5hbWU7CisJaW50CQkJaV9zY2hlbWFuYW1lc3BhY2U7CisJ aW50CQkJaV9zY2hlbWFvd25lcjsKKworCXF1ZXJ5ID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKwor CWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiU0VMRUNUIHRhYmxlb2lkLCBvaWQsIHNjaGVt YW5hbWUsICIKKwkJCQkJCSAic2NoZW1hbmFtZXNwYWNlLCAiCisJCQkJCQkgInNjaGVtYW93bmVy ICIKKwkJCQkJCSAiRlJPTSBwZ194bWxzY2hlbWEiKTsKKworCXJlcyA9IEV4ZWN1dGVTcWxRdWVy eShmb3V0LCBxdWVyeS0+ZGF0YSwgUEdSRVNfVFVQTEVTX09LKTsKKworCW50dXBzID0gUFFudHVw bGVzKHJlcyk7CisKKwl4bWxzY2hlbWFpbmZvID0gKFhtbFNjaGVtYUluZm8gKikgcGdfbWFsbG9j KG50dXBzICogc2l6ZW9mKFhtbFNjaGVtYUluZm8pKTsKKworCWlfdGFibGVvaWQgPSBQUWZudW1i ZXIocmVzLCAidGFibGVvaWQiKTsKKwlpX29pZCA9IFBRZm51bWJlcihyZXMsICJvaWQiKTsKKwlp X3NjaGVtYW5hbWUgPSBQUWZudW1iZXIocmVzLCAic2NoZW1hbmFtZSIpOworCWlfc2NoZW1hbmFt ZXNwYWNlID0gUFFmbnVtYmVyKHJlcywgInNjaGVtYW5hbWVzcGFjZSIpOworCWlfc2NoZW1hb3du ZXIgPSBQUWZudW1iZXIocmVzLCAic2NoZW1hb3duZXIiKTsKKworCWZvciAoaSA9IDA7IGkgPCBu dHVwczsgaSsrKQorCXsKKwkJeG1sc2NoZW1haW5mb1tpXS5kb2JqLm9ialR5cGUgPSBET19YTUxT Q0hFTUE7CisJCXhtbHNjaGVtYWluZm9baV0uZG9iai5jYXRJZC50YWJsZW9pZCA9IGF0b29pZChQ UWdldHZhbHVlKHJlcywgaSwgaV90YWJsZW9pZCkpOworCQl4bWxzY2hlbWFpbmZvW2ldLmRvYmou Y2F0SWQub2lkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX29pZCkpOworCQlBc3NpZ25E dW1wSWQoJnhtbHNjaGVtYWluZm9baV0uZG9iaik7CisJCXhtbHNjaGVtYWluZm9baV0uZG9iai5u YW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3NjaGVtYW5hbWUpKTsKKwkJeG1s c2NoZW1haW5mb1tpXS5kb2JqLm5hbWVzcGFjZSA9CisJCQlmaW5kTmFtZXNwYWNlKGF0b29pZChQ UWdldHZhbHVlKHJlcywgaSwgaV9zY2hlbWFuYW1lc3BhY2UpKSk7CisJCXhtbHNjaGVtYWluZm9b aV0ucm9sbmFtZSA9IGdldFJvbGVOYW1lKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3NjaGVtYW93bmVy KSk7CisKKwkJc2VsZWN0RHVtcGFibGVPYmplY3QoJih4bWxzY2hlbWFpbmZvW2ldLmRvYmopLCBm b3V0KTsKKwl9CisKKwlQUWNsZWFyKHJlcyk7CisKKwlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkp OworfQorCiAvKgogICogZ2V0QWNjZXNzTWV0aG9kczoKICAqCSAgZ2V0IGluZm9ybWF0aW9uIGFi b3V0IGFsbCB1c2VyLWRlZmluZWQgYWNjZXNzIG1ldGhvZHMKQEAgLTExNzEwLDYgKzExNzY3LDkg QEAgZHVtcER1bXBhYmxlT2JqZWN0KEFyY2hpdmUgKmZvdXQsIER1bXBhYmxlT2JqZWN0ICpkb2Jq KQogCQljYXNlIERPX0NPTlZFUlNJT046CiAJCQlkdW1wQ29udmVyc2lvbihmb3V0LCAoY29uc3Qg Q29udkluZm8gKikgZG9iaik7CiAJCQlicmVhazsKKwkJY2FzZSBET19YTUxTQ0hFTUE6CisJCQlk dW1wWG1sU2NoZW1hKGZvdXQsIChjb25zdCBYbWxTY2hlbWFJbmZvICopIGRvYmopOworCQkJYnJl YWs7CiAJCWNhc2UgRE9fVEFCTEU6CiAJCQlkdW1wVGFibGUoZm91dCwgKGNvbnN0IFRhYmxlSW5m byAqKSBkb2JqKTsKIAkJCWJyZWFrOwpAQCAtMTUyMzUsNiArMTUyOTUsNzMgQEAgZHVtcENvbGxh dGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBDb2xsSW5mbyAqY29sbGluZm8pCiAJZnJlZShxY29s bG5hbWUpOwogfQogCisvKgorICogZHVtcFhtbFNjaGVtYQorICoJICB3cml0ZSBvdXQgYSBzaW5n bGUgWE1MIHNjaGVtYSBkZWZpbml0aW9uCisgKi8KK3N0YXRpYyB2b2lkCitkdW1wWG1sU2NoZW1h KEFyY2hpdmUgKmZvdXQsIGNvbnN0IFhtbFNjaGVtYUluZm8gKiB4bWxzY2hlbWFpbmZvKQorewor CUR1bXBPcHRpb25zICpkb3B0ID0gZm91dC0+ZG9wdDsKKwlQUUV4cEJ1ZmZlciBxdWVyeTsKKwlQ UUV4cEJ1ZmZlciBxOworCVBRRXhwQnVmZmVyIGRlbHE7CisJY2hhcgkgICAqcXhtbHNjaGVtYW5h bWU7CisJUEdyZXN1bHQgICAqcmVzOworCWludAkJCWlfc2NoZW1hZGF0YTsKKwljaGFyCSAgICpz Y2hlbWFkYXRhOworCisJaWYgKCFkb3B0LT5kdW1wU2NoZW1hKQorCQlyZXR1cm47CisKKwlxdWVy eSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisJcSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisJZGVs cSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisKKwlxeG1sc2NoZW1hbmFtZSA9IHBnX3N0cmR1cChm bXRJZCh4bWxzY2hlbWFpbmZvLT5kb2JqLm5hbWUpKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyKHF1 ZXJ5LAorCQkJCQkgICJTRUxFQ1Qgc2NoZW1hZGF0YSAiCisJCQkJCSAgIkZST00gcGdfY2F0YWxv Zy5wZ194bWxzY2hlbWEgIgorCQkJCQkgICJXSEVSRSBvaWQgPSAnJXUnOjpwZ19jYXRhbG9nLm9p ZCIsCisJCQkJCSAgeG1sc2NoZW1haW5mby0+ZG9iai5jYXRJZC5vaWQpOworCisJcmVzID0gRXhl Y3V0ZVNxbFF1ZXJ5Rm9yU2luZ2xlUm93KGZvdXQsIHF1ZXJ5LT5kYXRhKTsKKworCWlfc2NoZW1h ZGF0YSA9IFBRZm51bWJlcihyZXMsICJzY2hlbWFkYXRhIik7CisJc2NoZW1hZGF0YSA9IFBRZ2V0 dmFsdWUocmVzLCAwLCBpX3NjaGVtYWRhdGEpOworCisJYXBwZW5kUFFFeHBCdWZmZXIoZGVscSwg IkRST1AgWE1MU0NIRU1BICVzO1xuIiwKKwkJCQkJICBmbXRRdWFsaWZpZWREdW1wYWJsZSh4bWxz Y2hlbWFpbmZvKSk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxLCAiQ1JFQVRFIFhNTFNDSEVNQSAl cyBBUyAiLAorCQkJCQkgIGZtdFF1YWxpZmllZER1bXBhYmxlKHhtbHNjaGVtYWluZm8pKTsKKwlh cHBlbmRTdHJpbmdMaXRlcmFsQUgocSwgc2NoZW1hZGF0YSwgZm91dCk7CisJYXBwZW5kUFFFeHBC dWZmZXJTdHIocSwgIjtcbiIpOworCisJaWYgKHhtbHNjaGVtYWluZm8tPmRvYmouZHVtcCAmIERV TVBfQ09NUE9ORU5UX0RFRklOSVRJT04pCisJCUFyY2hpdmVFbnRyeShmb3V0LCB4bWxzY2hlbWFp bmZvLT5kb2JqLmNhdElkLCB4bWxzY2hlbWFpbmZvLT5kb2JqLmR1bXBJZCwKKwkJCQkJIEFSQ0hJ VkVfT1BUUygudGFnID0geG1sc2NoZW1haW5mby0+ZG9iai5uYW1lLAorCQkJCQkJCQkgIC5uYW1l c3BhY2UgPSB4bWxzY2hlbWFpbmZvLT5kb2JqLm5hbWVzcGFjZS0+ZG9iai5uYW1lLAorCQkJCQkJ CQkgIC5vd25lciA9IHhtbHNjaGVtYWluZm8tPnJvbG5hbWUsCisJCQkJCQkJCSAgLmRlc2NyaXB0 aW9uID0gIlhNTFNDSEVNQSIsCisJCQkJCQkJCSAgLnNlY3Rpb24gPSBTRUNUSU9OX1BSRV9EQVRB LAorCQkJCQkJCQkgIC5jcmVhdGVTdG10ID0gcS0+ZGF0YSwKKwkJCQkJCQkJICAuZHJvcFN0bXQg PSBkZWxxLT5kYXRhKSk7CisKKwlpZiAoeG1sc2NoZW1haW5mby0+ZG9iai5kdW1wICYgRFVNUF9D T01QT05FTlRfQ09NTUVOVCkKKwkJZHVtcENvbW1lbnQoZm91dCwgIlhNTFNDSEVNQSIsIHF4bWxz Y2hlbWFuYW1lLAorCQkJCQl4bWxzY2hlbWFpbmZvLT5kb2JqLm5hbWVzcGFjZS0+ZG9iai5uYW1l LCB4bWxzY2hlbWFpbmZvLT5yb2xuYW1lLAorCQkJCQl4bWxzY2hlbWFpbmZvLT5kb2JqLmNhdElk LCAwLCB4bWxzY2hlbWFpbmZvLT5kb2JqLmR1bXBJZCk7CisKKwlQUWNsZWFyKHJlcyk7CisKKwlk ZXN0cm95UFFFeHBCdWZmZXIocXVlcnkpOworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxKTsKKwlkZXN0 cm95UFFFeHBCdWZmZXIoZGVscSk7CisJZnJlZShxeG1sc2NoZW1hbmFtZSk7Cit9CisKIC8qCiAg KiBkdW1wQ29udmVyc2lvbgogICoJICB3cml0ZSBvdXQgYSBzaW5nbGUgY29udmVyc2lvbiBkZWZp bml0aW9uCkBAIC0yMDE3Nyw2ICsyMDMwNCw3IEBAIGFkZEJvdW5kYXJ5RGVwZW5kZW5jaWVzKER1 bXBhYmxlT2JqZWN0ICoqZG9ianMsIGludCBudW1PYmpzLAogCQkJY2FzZSBET19PUEZBTUlMWToK IAkJCWNhc2UgRE9fQ09MTEFUSU9OOgogCQkJY2FzZSBET19DT05WRVJTSU9OOgorCQkJY2FzZSBE T19YTUxTQ0hFTUE6CiAJCQljYXNlIERPX1RBQkxFOgogCQkJY2FzZSBET19UQUJMRV9BVFRBQ0g6 CiAJCQljYXNlIERPX0FUVFJERUY6CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCA0YzRiMTRlNWZjNy4uYmMxY2Y1 YTAwZDIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNTAsNiArNTAsNyBAQCB0eXBlZGVmIGVudW0KIAlET19P UEZBTUlMWSwKIAlET19DT0xMQVRJT04sCiAJRE9fQ09OVkVSU0lPTiwKKwlET19YTUxTQ0hFTUEs CiAJRE9fVEFCTEUsCiAJRE9fVEFCTEVfQVRUQUNILAogCURPX0FUVFJERUYsCkBAIC0yOTksNiAr MzAwLDEyIEBAIHR5cGVkZWYgc3RydWN0IF9jb252SW5mbwogCWNvbnN0IGNoYXIgKnJvbG5hbWU7 CiB9IENvbnZJbmZvOwogCit0eXBlZGVmIHN0cnVjdCBfeG1sU2NoZW1hSW5mbworeworCUR1bXBh YmxlT2JqZWN0IGRvYmo7CisJY29uc3QgY2hhciAqcm9sbmFtZTsKK30JCQlYbWxTY2hlbWFJbmZv OworCiB0eXBlZGVmIHN0cnVjdCBfdGFibGVJbmZvCiB7CiAJLyoKQEAgLTc5Nyw2ICs4MDQsNyBA QCBleHRlcm4gdm9pZCBnZXRPcGNsYXNzZXMoQXJjaGl2ZSAqZm91dCk7CiBleHRlcm4gdm9pZCBn ZXRPcGZhbWlsaWVzKEFyY2hpdmUgKmZvdXQpOwogZXh0ZXJuIHZvaWQgZ2V0Q29sbGF0aW9ucyhB cmNoaXZlICpmb3V0KTsKIGV4dGVybiB2b2lkIGdldENvbnZlcnNpb25zKEFyY2hpdmUgKmZvdXQp OworZXh0ZXJuIHZvaWQgZ2V0WG1sU2NoZW1hcyhBcmNoaXZlICpmb3V0KTsKIGV4dGVybiBUYWJs ZUluZm8gKmdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcyk7CiBleHRlcm4g dm9pZCBnZXRPd25lZFNlcXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50 IG51bVRhYmxlcyk7CiBleHRlcm4gSW5oSW5mbyAqZ2V0SW5oZXJpdHMoQXJjaGl2ZSAqZm91dCwg aW50ICpudW1Jbmhlcml0cyk7Ci0tIAoyLjUxLjIKCg== --0000000000002859840648ebfe5f Content-Type: application/octet-stream; name="0001-Add-CREATE-ALTER-DROP-XMLSCHEMA-DDL-commands.patch" Content-Disposition: attachment; filename="0001-Add-CREATE-ALTER-DROP-XMLSCHEMA-DDL-commands.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkohqcup0 RnJvbSA5NzVhNGMzNGY4MzI2Y2JkMmU1YjI5ZTQ2ZDNmOWRjODIxYzhhMmE2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjb3MgTWFndWV0YSA8bWFndWV0YW1hcmNvc0BnbWFpbC5j b20+CkRhdGU6IFdlZCwgMjEgSmFuIDIwMjYgMTc6MTE6MDYgLTAzMDAKU3ViamVjdDogW1BBVENI IDEvNV0gQWRkIENSRUFURS9BTFRFUi9EUk9QIFhNTFNDSEVNQSBEREwgY29tbWFuZHMKCi0tLQog c3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZSAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5k L2NhdGFsb2cvYWNsY2hrLmMgICAgICAgICB8ICAxNyArKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cv ZGVwZW5kZW5jeS5jICAgICB8ICAzMSArKysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5i dWlsZCAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgICAgICB8 ICA1NiArKysrKysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgIHwgIDg0 ICsrKysrKysrKysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ194bWxzY2hlbWEuYyAgIHwgMTk0 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZp bGUgICAgICAgIHwgICAzICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jICAgICAgICAg fCAgIDggKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMgICAgICB8ICAgNyArCiBz cmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMgfCAgIDIgKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvbWVzb24uYnVpbGQgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl Y2xhYmVsLmMgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy94bWxzY2hlbWFjbWRz LmMgfCAxNDYgKysrKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkg ICAgICAgICAgICB8ICA4MyArKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5j ICAgICAgICAgICB8ICAxNyArKysKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYyAgICAgICAg ICB8ICAgNCArCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgICAgfCAgMTYgKyst CiBzcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1 ZGUvY2F0YWxvZy9tZXNvbi5idWlsZCAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cv bmFtZXNwYWNlLmggICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3htbHNjaGVt YS5oICAgfCAgNDggKysrKysrKwogc3JjL2luY2x1ZGUvY29tbWFuZHMveG1sc2NoZW1hY21kcy5o IHwgICA5ICsrCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgfCAgIDEgKwog c3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRl L3Rjb3AvY21kdGFnbGlzdC5oICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS91dGlscy9hY2wu aCAgICAgICAgICAgICAgfCAgIDEgKwogMjcgZmlsZXMgY2hhbmdlZCwgNzM0IGluc2VydGlvbnMo KyksIDYgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ194bWxzY2hlbWEuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL2NvbW1hbmRz L3htbHNjaGVtYWNtZHMuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2NhdGFsb2cv cGdfeG1sc2NoZW1hLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jb21tYW5kcy94 bWxzY2hlbWFjbWRzLmgKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxl IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZQppbmRleCAyNmZhMGM5YjE4Yy4uZWQ5NDE0 YmE2MzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKKysrIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZQpAQCAtNDYsNiArNDYsNyBAQCBPQkpTID0gXAogCXBn X3N1YnNjcmlwdGlvbi5vIFwKIAlwZ190YWJsZXNwYWNlLm8gXAogCXBnX3R5cGUubyBcCisJcGdf eG1sc2NoZW1hLm8gXAogCXN0b3JhZ2UubyBcCiAJdG9hc3RpbmcubwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsu YwppbmRleCBhNDMxZmMwOTI2Zi4uYzUxOThlYTZlYzYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvYWNsY2hrLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwpAQCAt NjQsNiArNjQsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfdGFibGVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2lu Y2x1ZGUgImNhdGFsb2cvcGdfeG1sc2NoZW1hLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVt LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNvbW1h bmRzL2V4dGVuc2lvbi5oIgpAQCAtMjkwLDYgKzI5MSw5IEBAIHJlc3RyaWN0X2FuZF9jaGVja19n cmFudChib29sIGlzX2dyYW50LCBBY2xNb2RlIGF2YWlsX2dvcHRpb25zLCBib29sIGFsbF9wcml2 cywKIAkJY2FzZSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDoKIAkJCXdob2xlX21hc2sgPSBBQ0xfQUxM X1JJR0hUU19QQVJBTUVURVJfQUNMOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1hNTFNDSEVN QToKKwkJCXdob2xlX21hc2sgPSBBQ0xfQUxMX1JJR0hUU19YTUxTQ0hFTUE7CisJCQlicmVhazsK IAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGU6ICVk Iiwgb2JqdHlwZSk7CiAJCQkvKiBub3QgcmVhY2hlZCwgYnV0IGtlZXAgY29tcGlsZXIgcXVpZXQg Ki8KQEAgLTUzNCw2ICs1MzgsMTAgQEAgRXhlY3V0ZUdyYW50U3RtdChHcmFudFN0bXQgKnN0bXQp CiAJCQlhbGxfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1BBUkFNRVRFUl9BQ0w7CiAJCQll cnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52YWxpZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3IgcGFy YW1ldGVyIik7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfWE1MU0NIRU1BOgorCQkJYWxsX3By aXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19YTUxTQ0hFTUE7CisJCQllcnJvcm1zZyA9IGdldHRl eHRfbm9vcCgiaW52YWxpZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3IgWE1MIHNjaGVtYSIpOworCQkJ YnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIEdyYW50U3Rt dC5vYmp0eXBlOiAlZCIsCiAJCQkJIChpbnQpIHN0bXQtPm9ianR5cGUpOwpAQCAtNjM5LDYgKzY0 Nyw5IEBAIEV4ZWNHcmFudFN0bXRfb2lkcyhJbnRlcm5hbEdyYW50ICppc3RtdCkKIAkJY2FzZSBP QkpFQ1RfUEFSQU1FVEVSX0FDTDoKIAkJCUV4ZWNHcmFudF9QYXJhbWV0ZXIoaXN0bXQpOwogCQkJ YnJlYWs7CisJCWNhc2UgT0JKRUNUX1hNTFNDSEVNQToKKwkJCUV4ZWNHcmFudF9jb21tb24oaXN0 bXQsIFhtbFNjaGVtYVJlbGF0aW9uSWQsIEFDTF9BTExfUklHSFRTX1hNTFNDSEVNQSwgTlVMTCk7 CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgR3Jh bnRTdG10Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGludCkgaXN0bXQtPm9ianR5cGUpOwpAQCAtMjY3 Nyw2ICsyNjg4LDkgQEAgYWNsY2hlY2tfZXJyb3IoQWNsUmVzdWx0IGFjbGVyciwgT2JqZWN0VHlw ZSBvYmp0eXBlLAogCQkJCQljYXNlIE9CSkVDVF9DT05WRVJTSU9OOgogCQkJCQkJbXNnID0gZ2V0 dGV4dF9ub29wKCJwZXJtaXNzaW9uIGRlbmllZCBmb3IgY29udmVyc2lvbiAlcyIpOwogCQkJCQkJ YnJlYWs7CisJCQkJCWNhc2UgT0JKRUNUX1hNTFNDSEVNQToKKwkJCQkJCW1zZyA9IGdldHRleHRf bm9vcCgicGVybWlzc2lvbiBkZW5pZWQgZm9yIFhNTCBzY2hlbWEgJXMiKTsKKwkJCQkJCWJyZWFr OwogCQkJCQljYXNlIE9CSkVDVF9EQVRBQkFTRToKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgi cGVybWlzc2lvbiBkZW5pZWQgZm9yIGRhdGFiYXNlICVzIik7CiAJCQkJCQlicmVhazsKQEAgLTI4 MDksNiArMjgyMyw5IEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5 cGUgb2JqdHlwZSwKIAkJCQkJY2FzZSBPQkpFQ1RfQ09OVkVSU0lPTjoKIAkJCQkJCW1zZyA9IGdl dHRleHRfbm9vcCgibXVzdCBiZSBvd25lciBvZiBjb252ZXJzaW9uICVzIik7CiAJCQkJCQlicmVh azsKKwkJCQkJY2FzZSBPQkpFQ1RfWE1MU0NIRU1BOgorCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29w KCJtdXN0IGJlIG93bmVyIG9mIFhNTCBzY2hlbWEgJXMiKTsKKwkJCQkJCWJyZWFrOwogCQkJCQlj YXNlIE9CSkVDVF9EQVRBQkFTRToKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBiZSBv d25lciBvZiBkYXRhYmFzZSAlcyIpOwogCQkJCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5j eS5jCmluZGV4IGY4OTI2N2YwMzQyLi41MGNlMzg3MWU3OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRl bmN5LmMKQEAgLTY2LDYgKzY2LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX3RlbXBsYXRl LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ191 c2VyX21hcHBpbmcuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3htbHNjaGVtYS5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL2NvbW1lbnQuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNp bmNsdWRlICJjb21tYW5kcy9ldmVudF90cmlnZ2VyLmgiCkBAIC03OSw2ICs4MCw3IEBACiAjaW5j bHVkZSAiZnVuY2FwaS5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVz L25vZGVGdW5jcy5oIgorI2luY2x1ZGUgIm5vZGVzL3ByaW1ub2Rlcy5oIgogI2luY2x1ZGUgInBh cnNlci9wYXJzZXRyZWUuaCIKICNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVSZW1vdmUuaCIKICNp bmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKQEAgLTE1MTQsNiArMTUxNiw3IEBAIGRvRGVsZXRpb24o Y29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBpbnQgZmxhZ3MpCiAJCWNhc2UgRXZlbnRUcmln Z2VyUmVsYXRpb25JZDoKIAkJY2FzZSBUcmFuc2Zvcm1SZWxhdGlvbklkOgogCQljYXNlIEF1dGhN ZW1SZWxhdGlvbklkOgorCQljYXNlIFhtbFNjaGVtYVJlbGF0aW9uSWQ6CiAJCQlEcm9wT2JqZWN0 QnlJZChvYmplY3QpOwogCQkJYnJlYWs7CiAKQEAgLTI0MTYsNiArMjQxOSwzNCBAQCBmaW5kX2V4 cHJfcmVmZXJlbmNlc193YWxrZXIoTm9kZSAqbm9kZSwKIAkJCQkJCSAgIGNvbnRleHQtPmFkZHJz KTsKIAkJLyogZmFsbCB0aHJvdWdoIHRvIGV4YW1pbmUgYXJndW1lbnRzICovCiAJfQorCWVsc2Ug aWYgKElzQShub2RlLCBYbWxFeHByKSkKKwl7CisJCVhtbEV4cHIgICAgKnhtbGV4cHIgPSAoWG1s RXhwciAqKSBub2RlOworCisJCS8qCisJCSAqIFhNTFZBTElEQVRFJ3Mgc2Vjb25kIGFyZ3VtZW50 IGlzIGEgQ29uc3QgY29udGFpbmluZyB0aGUgc2NoZW1hIE9JRC4KKwkJICogUmVjb3JkIGEgZGVw ZW5kZW5jeSBvbiBpdC4KKwkJICovCisJCWlmICh4bWxleHByLT5vcCA9PSBJU19YTUxWQUxJREFU RSAmJiBsaXN0X2xlbmd0aCh4bWxleHByLT5hcmdzKSA9PSAyKQorCQl7CisJCQlOb2RlCSAgICpz Y2hlbWFfYXJnID0gKE5vZGUgKikgbHNlY29uZCh4bWxleHByLT5hcmdzKTsKKworCQkJaWYgKElz QShzY2hlbWFfYXJnLCBDb25zdCkpCisJCQl7CisJCQkJQ29uc3QJICAgKnNjaGVtYV9jb25zdCA9 IChDb25zdCAqKSBzY2hlbWFfYXJnOworCQkJCU9pZAkJCXNjaGVtYV9vaWQ7CisKKwkJCQlpZiAo IXNjaGVtYV9jb25zdC0+Y29uc3Rpc251bGwgJiYKKwkJCQkJc2NoZW1hX2NvbnN0LT5jb25zdHR5 cGUgPT0gT0lET0lEKQorCQkJCXsKKwkJCQkJc2NoZW1hX29pZCA9IERhdHVtR2V0T2JqZWN0SWQo c2NoZW1hX2NvbnN0LT5jb25zdHZhbHVlKTsKKwkJCQkJYWRkX29iamVjdF9hZGRyZXNzKFhtbFNj aGVtYVJlbGF0aW9uSWQsIHNjaGVtYV9vaWQsIDAsCisJCQkJCQkJCQkgICBjb250ZXh0LT5hZGRy cyk7CisJCQkJfQorCQkJfQorCQl9CisJCS8qIGZhbGwgdGhyb3VnaCB0byBleGFtaW5lIGFyZ3Vt ZW50cyAqLworCX0KIAogCXJldHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIGZpbmRf ZXhwcl9yZWZlcmVuY2VzX3dhbGtlciwKIAkJCQkJCQkJICBjb250ZXh0KTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9jYXRhbG9nL21l c29uLmJ1aWxkCmluZGV4IDExZDIxYzVhZDZiLi45YmExNWU3MWI3MiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL21l c29uLmJ1aWxkCkBAIC0zMyw2ICszMyw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAg J3BnX3N1YnNjcmlwdGlvbi5jJywKICAgJ3BnX3RhYmxlc3BhY2UuYycsCiAgICdwZ190eXBlLmMn LAorICAncGdfeG1sc2NoZW1hLmMnLAogICAnc3RvcmFnZS5jJywKICAgJ3RvYXN0aW5nLmMnLAog KQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKaW5kZXggYzNiNzlhMmJhNDguLjg5YjEyNGNlZWVjIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCisrKyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJjYXRh bG9nL3BnX2NvbGxhdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29udmVyc2lvbi5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJhc2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ht bHNjaGVtYS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19vcGNsYXNzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19vcGVyYXRvci5oIgpA QCAtNDE0Myw2ICs0MTQ0LDYxIEBAIGdldF9jb252ZXJzaW9uX29pZChMaXN0ICpjb25uYW1lLCBi b29sIG1pc3Npbmdfb2spCiAJcmV0dXJuIGNvbm9pZDsKIH0KIAorLyoKKyAqIGdldF94bWxzY2hl bWFfb2lkIC0gZmluZCBhbiBYTUwgc2NoZW1hIGJ5IHBvc3NpYmx5IHF1YWxpZmllZCBuYW1lCisg Ki8KK09pZAorZ2V0X3htbHNjaGVtYV9vaWQoTGlzdCAqc2NoZW1hbmFtZSwgYm9vbCBtaXNzaW5n X29rKQoreworCWNoYXIJICAgKm5zcG5hbWU7CisJY2hhcgkgICAqc2NoZW1hX25hbWU7CisJT2lk CQkJbmFtZXNwYWNlSWQ7CisJT2lkCQkJc2NoZW1hX29pZCA9IEludmFsaWRPaWQ7CisJTGlzdENl bGwgICAqbDsKKworCS8qIGRlY29uc3RydWN0IHRoZSBuYW1lIGxpc3QgKi8KKwlEZWNvbnN0cnVj dFF1YWxpZmllZE5hbWUoc2NoZW1hbmFtZSwgJm5zcG5hbWUsICZzY2hlbWFfbmFtZSk7CisKKwlp ZiAobnNwbmFtZSkKKwl7CisJCS8qIHVzZSBleGFjdCBzY2hlbWEgZ2l2ZW4gKi8KKwkJbmFtZXNw YWNlSWQgPSBMb29rdXBFeHBsaWNpdE5hbWVzcGFjZShuc3BuYW1lLCBtaXNzaW5nX29rKTsKKwkJ aWYgKG1pc3Npbmdfb2sgJiYgIU9pZElzVmFsaWQobmFtZXNwYWNlSWQpKQorCQkJc2NoZW1hX29p ZCA9IEludmFsaWRPaWQ7CisJCWVsc2UKKwkJCXNjaGVtYV9vaWQgPSBHZXRTeXNDYWNoZU9pZDIo WE1MU0NIRU1BTkFNRU5TUCwgQW51bV9wZ194bWxzY2hlbWFfb2lkLAorCQkJCQkJCQkJCSBQb2lu dGVyR2V0RGF0dW0oc2NoZW1hX25hbWUpLAorCQkJCQkJCQkJCSBPYmplY3RJZEdldERhdHVtKG5h bWVzcGFjZUlkKSk7CisJfQorCWVsc2UKKwl7CisJCS8qIHNlYXJjaCBmb3IgaXQgaW4gc2VhcmNo IHBhdGggKi8KKwkJcmVjb21wdXRlTmFtZXNwYWNlUGF0aCgpOworCisJCWZvcmVhY2gobCwgYWN0 aXZlU2VhcmNoUGF0aCkKKwkJeworCQkJbmFtZXNwYWNlSWQgPSBsZmlyc3Rfb2lkKGwpOworCisJ CQlpZiAobmFtZXNwYWNlSWQgPT0gbXlUZW1wTmFtZXNwYWNlKQorCQkJCWNvbnRpbnVlOwkJLyog ZG8gbm90IGxvb2sgaW4gdGVtcCBuYW1lc3BhY2UgKi8KKworCQkJc2NoZW1hX29pZCA9IEdldFN5 c0NhY2hlT2lkMihYTUxTQ0hFTUFOQU1FTlNQLCBBbnVtX3BnX3htbHNjaGVtYV9vaWQsCisJCQkJ CQkJCQkJIFBvaW50ZXJHZXREYXR1bShzY2hlbWFfbmFtZSksCisJCQkJCQkJCQkJIE9iamVjdElk R2V0RGF0dW0obmFtZXNwYWNlSWQpKTsKKwkJCWlmIChPaWRJc1ZhbGlkKHNjaGVtYV9vaWQpKQor CQkJCXJldHVybiBzY2hlbWFfb2lkOworCQl9CisJfQorCisJLyogTm90IGZvdW5kIGluIHBhdGgg Ki8KKwlpZiAoIU9pZElzVmFsaWQoc2NoZW1hX29pZCkgJiYgIW1pc3Npbmdfb2spCisJCWVyZXBv cnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkg ZXJybXNnKCJYTUwgc2NoZW1hIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQlOYW1lTGlz dFRvU3RyaW5nKHNjaGVtYW5hbWUpKSkpOworCXJldHVybiBzY2hlbWFfb2lkOworfQorCiAvKgog ICogRmluZERlZmF1bHRDb252ZXJzaW9uUHJvYyAtIGZpbmQgZGVmYXVsdCBlbmNvZGluZyBjb252 ZXJzaW9uIHByb2MKICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3Rh ZGRyZXNzLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwppbmRleCAwMmFm NjRiODJjNi4uNjMwNmI5YzhmNmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2Jq ZWN0YWRkcmVzcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCkBA IC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c190ZW1wbGF0ZS5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdXNlcl9tYXBw aW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ194bWxzY2hlbWEuaCIKICNpbmNsdWRlICJjb21t YW5kcy9kZWZyZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy9ldmVudF90cmlnZ2VyLmgiCiAjaW5j bHVkZSAiY29tbWFuZHMvZXh0ZW5zaW9uLmgiCkBAIC0xODcsNiArMTg4LDIwIEBAIHN0YXRpYyBj b25zdCBPYmplY3RQcm9wZXJ0eVR5cGUgT2JqZWN0UHJvcGVydHlbXSA9CiAJCU9CSkVDVF9DT0xM QVRJT04sCiAJCXRydWUKIAl9LAorCXsKKwkJInhtbHNjaGVtYSIsCisJCVhtbFNjaGVtYVJlbGF0 aW9uSWQsCisJCVhtbFNjaGVtYU9pZEluZGV4SWQsCisJCVhNTFNDSEVNQU9JRCwKKwkJWE1MU0NI RU1BTkFNRU5TUCwKKwkJQW51bV9wZ194bWxzY2hlbWFfb2lkLAorCQlBbnVtX3BnX3htbHNjaGVt YV9zY2hlbWFuYW1lLAorCQlBbnVtX3BnX3htbHNjaGVtYV9zY2hlbWFuYW1lc3BhY2UsCisJCUFu dW1fcGdfeG1sc2NoZW1hX3NjaGVtYW93bmVyLAorCQlBbnVtX3BnX3htbHNjaGVtYV9zY2hlbWFh Y2wsCisJCU9CSkVDVF9YTUxTQ0hFTUEsCisJCXRydWUKKwl9LAogCXsKIAkJImNvbnN0cmFpbnQi LAogCQlDb25zdHJhaW50UmVsYXRpb25JZCwKQEAgLTcyMCw2ICs3MzUsOSBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IG9iamVjdF90eXBlX21hcAogCXsKIAkJImNvbGxhdGlvbiIsIE9CSkVDVF9DT0xM QVRJT04KIAl9LAorCXsKKwkJInhtbHNjaGVtYSIsIE9CSkVDVF9YTUxTQ0hFTUEKKwl9LAogCXsK IAkJInRhYmxlIGNvbnN0cmFpbnQiLCBPQkpFQ1RfVEFCQ09OU1RSQUlOVAogCX0sCkBAIC0xMDI5 LDYgKzEwNDcsMTEgQEAgZ2V0X29iamVjdF9hZGRyZXNzKE9iamVjdFR5cGUgb2JqdHlwZSwgTm9k ZSAqb2JqZWN0LAogCQkJCWFkZHJlc3Mub2JqZWN0SWQgPSBnZXRfY29sbGF0aW9uX29pZChjYXN0 Tm9kZShMaXN0LCBvYmplY3QpLCBtaXNzaW5nX29rKTsKIAkJCQlhZGRyZXNzLm9iamVjdFN1Yklk ID0gMDsKIAkJCQlicmVhazsKKwkJCWNhc2UgT0JKRUNUX1hNTFNDSEVNQToKKwkJCQlhZGRyZXNz LmNsYXNzSWQgPSBYbWxTY2hlbWFSZWxhdGlvbklkOworCQkJCWFkZHJlc3Mub2JqZWN0SWQgPSBn ZXRfeG1sc2NoZW1hX29pZChjYXN0Tm9kZShMaXN0LCBvYmplY3QpLCBtaXNzaW5nX29rKTsKKwkJ CQlhZGRyZXNzLm9iamVjdFN1YklkID0gMDsKKwkJCQlicmVhazsKIAkJCWNhc2UgT0JKRUNUX0NP TlZFUlNJT046CiAJCQkJYWRkcmVzcy5jbGFzc0lkID0gQ29udmVyc2lvblJlbGF0aW9uSWQ7CiAJ CQkJYWRkcmVzcy5vYmplY3RJZCA9IGdldF9jb252ZXJzaW9uX29pZChjYXN0Tm9kZShMaXN0LCBv YmplY3QpLCBtaXNzaW5nX29rKTsKQEAgLTIyODIsNiArMjMwNSw3IEBAIHBnX2dldF9vYmplY3Rf YWRkcmVzcyhQR19GVU5DVElPTl9BUkdTKQogCQljYXNlIE9CSkVDVF9DT0xVTU46CiAJCWNhc2Ug T0JKRUNUX0FUVFJJQlVURToKIAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgorCQljYXNlIE9CSkVD VF9YTUxTQ0hFTUE6CiAJCWNhc2UgT0JKRUNUX0NPTlZFUlNJT046CiAJCWNhc2UgT0JKRUNUX1NU QVRJU1RJQ19FWFQ6CiAJCWNhc2UgT0JKRUNUX1RTUEFSU0VSOgpAQCAtMjQ2MCw2ICsyNDg0LDcg QEAgY2hlY2tfb2JqZWN0X293bmVyc2hpcChPaWQgcm9sZWlkLCBPYmplY3RUeXBlIG9ianR5cGUs IE9iamVjdEFkZHJlc3MgYWRkcmVzcywKIAkJCQkJCQkgICBzdHJWYWwob2JqZWN0KSk7CiAJCQli cmVhazsKIAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgorCQljYXNlIE9CSkVDVF9YTUxTQ0hFTUE6 CiAJCWNhc2UgT0JKRUNUX0NPTlZFUlNJT046CiAJCWNhc2UgT0JKRUNUX09QQ0xBU1M6CiAJCWNh c2UgT0JKRUNUX09QRkFNSUxZOgpAQCAtNDA2Nyw2ICs0MDkyLDM0IEBAIGdldE9iamVjdERlc2Ny aXB0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCQkJ CWJyZWFrOwogCQkJfQogCisJCWNhc2UgWG1sU2NoZW1hUmVsYXRpb25JZDoKKwkJCXsKKwkJCQlI ZWFwVHVwbGUJc2NoZW1hVHVwOworCQkJCUZvcm1fcGdfeG1sc2NoZW1hIHNjaGVtYTsKKwkJCQlj aGFyCSAgICpuc3BuYW1lOworCisJCQkJc2NoZW1hVHVwID0gU2VhcmNoU3lzQ2FjaGUxKFhNTFND SEVNQU9JRCwKKwkJCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9iamVjdElkKSk7 CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHNjaGVtYVR1cCkpCisJCQkJeworCQkJCQlpZiAo IW1pc3Npbmdfb2spCisJCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Ig WE1MIHNjaGVtYSAldSIsCisJCQkJCQkJIG9iamVjdC0+b2JqZWN0SWQpOworCQkJCQlicmVhazsK KwkJCQl9CisKKwkJCQlzY2hlbWEgPSAoRm9ybV9wZ194bWxzY2hlbWEpIEdFVFNUUlVDVChzY2hl bWFUdXApOworCisJCQkJLyogUXVhbGlmeSB0aGUgbmFtZSBpZiBub3QgdmlzaWJsZSBpbiBzZWFy Y2ggcGF0aCAqLworCQkJCW5zcG5hbWUgPSBnZXRfbmFtZXNwYWNlX25hbWUoc2NoZW1hLT5zY2hl bWFuYW1lc3BhY2UpOworCisJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCBfKCJYTUwgc2No ZW1hICVzIiksCisJCQkJCQkJCSBxdW90ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihuc3BuYW1lLAor CQkJCQkJCQkJCQkJCQkJTmFtZVN0cihzY2hlbWEtPnNjaGVtYW5hbWUpKSk7CisJCQkJUmVsZWFz ZVN5c0NhY2hlKHNjaGVtYVR1cCk7CisJCQkJYnJlYWs7CisJCQl9CisKIAkJZGVmYXVsdDoKIAkJ CWVsb2coRVJST1IsICJ1bnN1cHBvcnRlZCBvYmplY3QgY2xhc3M6ICV1Iiwgb2JqZWN0LT5jbGFz c0lkKTsKIAl9CkBAIC00NjY5LDYgKzQ3MjIsMTAgQEAgZ2V0T2JqZWN0VHlwZURlc2NyaXB0aW9u KGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCQkJYXBwZW5k U3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLCAidHJhbnNmb3JtIik7CiAJCQlicmVhazsKIAorCQlj YXNlIFhtbFNjaGVtYVJlbGF0aW9uSWQ6CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZm ZXIsICJYTUwgc2NoZW1hIik7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJP UiwgInVuc3VwcG9ydGVkIG9iamVjdCBjbGFzczogJXUiLCBvYmplY3QtPmNsYXNzSWQpOwogCX0K QEAgLTYwMTksNiArNjA3NiwzMyBAQCBnZXRPYmplY3RJZGVudGl0eVBhcnRzKGNvbnN0IE9iamVj dEFkZHJlc3MgKm9iamVjdCwKIAkJCX0KIAkJCWJyZWFrOwogCisJCWNhc2UgWG1sU2NoZW1hUmVs YXRpb25JZDoKKwkJCXsKKwkJCQlIZWFwVHVwbGUJc2NoZW1hVHVwOworCQkJCUZvcm1fcGdfeG1s c2NoZW1hIHNjaGVtYTsKKwkJCQljaGFyCSAgICpuc3BuYW1lOworCisJCQkJc2NoZW1hVHVwID0g U2VhcmNoU3lzQ2FjaGUxKFhNTFNDSEVNQU9JRCwKKwkJCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1 bShvYmplY3QtPm9iamVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHNjaGVtYVR1 cCkpCisJCQkJeworCQkJCQlpZiAoIW1pc3Npbmdfb2spCisJCQkJCQllbG9nKEVSUk9SLCAiY2Fj aGUgbG9va3VwIGZhaWxlZCBmb3IgWE1MIHNjaGVtYSAldSIsCisJCQkJCQkJIG9iamVjdC0+b2Jq ZWN0SWQpOworCQkJCQlicmVhazsKKwkJCQl9CisJCQkJc2NoZW1hID0gKEZvcm1fcGdfeG1sc2No ZW1hKSBHRVRTVFJVQ1Qoc2NoZW1hVHVwKTsKKwkJCQluc3BuYW1lID0gZ2V0X25hbWVzcGFjZV9u YW1lX29yX3RlbXAoc2NoZW1hLT5zY2hlbWFuYW1lc3BhY2UpOworCQkJCWFwcGVuZFN0cmluZ0lu Zm9TdHJpbmcoJmJ1ZmZlciwKKwkJCQkJCQkJCSAgIHF1b3RlX3F1YWxpZmllZF9pZGVudGlmaWVy KG5zcG5hbWUsCisJCQkJCQkJCQkJCQkJCQkJICBOYW1lU3RyKHNjaGVtYS0+c2NoZW1hbmFtZSkp KTsKKwkJCQlpZiAob2JqbmFtZSkKKwkJCQkJKm9iam5hbWUgPSBsaXN0X21ha2UyKG5zcG5hbWUs CisJCQkJCQkJCQkJICBwc3RyZHVwKE5hbWVTdHIoc2NoZW1hLT5zY2hlbWFuYW1lKSkpOworCQkJ CVJlbGVhc2VTeXNDYWNoZShzY2hlbWFUdXApOworCQkJCWJyZWFrOworCQkJfQorCiAJCWRlZmF1 bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgb2JqZWN0IGNsYXNzOiAldSIsIG9iamVj dC0+Y2xhc3NJZCk7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ194bWxz Y2hlbWEuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfeG1sc2NoZW1hLmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjExNmJiZmE3MWM3Ci0tLSAvZGV2L251bGwKKysr IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ194bWxzY2hlbWEuYwpAQCAtMCwwICsxLDE5NCBAQAor I2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgi CisjaW5jbHVkZSAiYWNjZXNzL3RhYmxlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9jYXRhbG9nLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9kZXBlbmRlbmN5LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9pbmRl eGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWNjZXNzLmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ194bWxzY2hlbWEuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgor I2luY2x1ZGUgInV0aWxzL2FjbC5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5j bHVkZSAidXRpbHMvcmVsLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKKyNpbmNsdWRl ICJ1dGlscy94bWwuaCIKKworI2lmZGVmIFVTRV9MSUJYTUwKKyNpbmNsdWRlIDxsaWJ4bWwveG1s c2NoZW1hcy5oPgorI2VuZGlmCisKKy8qCisgKiBYbWxTY2hlbWFDcmVhdGUKKyAqCisgKiBBZGQg YSBuZXcgdHVwbGUgdG8gcGdfeG1sc2NoZW1hLgorICoKKyAqIGlmX25vdF9leGlzdHM6IGlmIHRy dWUsIGRvbid0IGZhaWwgb24gZHVwbGljYXRlIG5hbWUsIGp1c3QgcHJpbnQgYSBub3RpY2UKKyAq IGFuZCByZXR1cm4gSW52YWxpZE9pZC4KKyAqIHF1aWV0OiBpZiB0cnVlLCBkb24ndCBmYWlsIG9u IGR1cGxpY2F0ZSBuYW1lLCBqdXN0IHNpbGVudGx5IHJldHVybgorICogSW52YWxpZE9pZCAod2hp Y2ggb3ZlcmlkZXMgaWZfbm90X2V4aXN0cykuCisgKi8KK09pZAorWG1sU2NoZW1hQ3JlYXRlKGNv bnN0IGNoYXIgKnNjaGVtYW5hbWUsCisJCQkJT2lkIHNjaGVtYW5hbWVzcGFjZSwKKwkJCQlPaWQg c2NoZW1hb3duZXIsCisJCQkJeG1sdHlwZSAqc2NoZW1hZGF0YSwKKwkJCQlib29sIGlmX25vdF9l eGlzdHMsCisJCQkJYm9vbCBxdWlldCkKK3sKKwlSZWxhdGlvbglyZWw7CisJVHVwbGVEZXNjCXR1 cERlc2M7CisJSGVhcFR1cGxlCXR1cDsKKwlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX3htbHNjaGVt YV07CisJYm9vbAkJbnVsbHNbTmF0dHNfcGdfeG1sc2NoZW1hXTsKKwlOYW1lRGF0YQluYW1lX25h bWU7CisJT2lkCQkJb2lkOworCU9iamVjdEFkZHJlc3MgbXlzZWxmLAorCQkJCXJlZmVyZW5jZWQ7 CisKKwlBc3NlcnQoc2NoZW1hbmFtZSk7CisJQXNzZXJ0KHNjaGVtYW5hbWVzcGFjZSk7CisJQXNz ZXJ0KHNjaGVtYW93bmVyKTsKKwlBc3NlcnQoc2NoZW1hZGF0YSk7CisKKyNpZmRlZiBVU0VfTElC WE1MCisJLyogVmFsaWRhdGUgdGhlIFhNTCBTY2hlbWEgYmVmb3JlIHN0b3JpbmcgaXQgKi8KKwl7 CisJCXhtbFNjaGVtYVBhcnNlckN0eHRQdHIgcGFyc2VyX2N0eHQ7CisJCXhtbFNjaGVtYVB0ciBz Y2hlbWFfcHRyOworCQlQZ1htbEVycm9yQ29udGV4dCAqeG1sZXJyY3h0OworCQljaGFyCSAgICpz Y2hlbWFzdHI7CisKKwkJc2NoZW1hc3RyID0gdGV4dF90b19jc3RyaW5nKHNjaGVtYWRhdGEpOwor CQl4bWxlcnJjeHQgPSBwZ194bWxfaW5pdChQR19YTUxfU1RSSUNUTkVTU19XRUxMRk9STUVEKTsK KworCQlQR19UUlkoKTsKKwkJeworCQkJcGFyc2VyX2N0eHQgPSB4bWxTY2hlbWFOZXdNZW1QYXJz ZXJDdHh0KHNjaGVtYXN0ciwgc3RybGVuKHNjaGVtYXN0cikpOworCQkJaWYgKHBhcnNlcl9jdHh0 ID09IE5VTEwpCisJCQkJeG1sX2VyZXBvcnQoeG1sZXJyY3h0LCBFUlJPUiwgRVJSQ09ERV9JTlZB TElEX1hNTF9ET0NVTUVOVCwKKwkJCQkJCQkiZmFpbGVkIHRvIGNyZWF0ZSBzY2hlbWEgcGFyc2Vy IGNvbnRleHQiKTsKKworCQkJc2NoZW1hX3B0ciA9IHhtbFNjaGVtYVBhcnNlKHBhcnNlcl9jdHh0 KTsKKwkJCWlmIChzY2hlbWFfcHRyID09IE5VTEwpCisJCQkJeG1sX2VyZXBvcnQoeG1sZXJyY3h0 LCBFUlJPUiwgRVJSQ09ERV9JTlZBTElEX1hNTF9ET0NVTUVOVCwKKwkJCQkJCQkiaW52YWxpZCBY TUwgc2NoZW1hIGRlZmluaXRpb24iKTsKKworCQkJeG1sU2NoZW1hRnJlZShzY2hlbWFfcHRyKTsK KwkJCXhtbFNjaGVtYUZyZWVQYXJzZXJDdHh0KHBhcnNlcl9jdHh0KTsKKwkJfQorCQlQR19DQVRD SCgpOworCQl7CisJCQlwZ194bWxfZG9uZSh4bWxlcnJjeHQsIHRydWUpOworCQkJUEdfUkVfVEhS T1coKTsKKwkJfQorCQlQR19FTkRfVFJZKCk7CisKKwkJcGdfeG1sX2RvbmUoeG1sZXJyY3h0LCBm YWxzZSk7CisJCXBmcmVlKHNjaGVtYXN0cik7CisJfQorI2Vsc2UKKwllcmVwb3J0KEVSUk9SLAor CQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJIGVycm1zZygi eG1sc2NoZW1hIHN1cHBvcnQgcmVxdWlyZXMgbGlieG1sIikpKTsKKyNlbmRpZgorCisJLyoKKwkg KiBNYWtlIHN1cmUgdGhlcmUgaXMgbm8gZXhpc3RpbmcgWE1MIHNjaGVtYSBvZiBzYW1lIG5hbWUg aW4gdGhlCisJICogbmFtZXNwYWNlLgorCSAqCisJICogVGhpcyB3b3VsZCBiZSBjYXVnaHQgYnkg dGhlIHVuaXF1ZSBpbmRleCBhbnl3YXk7IHdlJ3JlIGp1c3QgZ2l2aW5nIGEKKwkgKiBmcmllbmRs aWVyIGVycm9yIG1lc3NhZ2UuICBUaGUgdW5pcXVlIGluZGV4IHByb3ZpZGVzIGEgYmFja3N0b3Ag YWdhaW5zdAorCSAqIHJhY2UgY29uZGl0aW9ucy4KKwkgKi8KKwlvaWQgPSBHZXRTeXNDYWNoZU9p ZDIoWE1MU0NIRU1BTkFNRU5TUCwKKwkJCQkJCSAgQW51bV9wZ194bWxzY2hlbWFfb2lkLAorCQkJ CQkJICBQb2ludGVyR2V0RGF0dW0oc2NoZW1hbmFtZSksCisJCQkJCQkgIE9iamVjdElkR2V0RGF0 dW0oc2NoZW1hbmFtZXNwYWNlKSk7CisJaWYgKE9pZElzVmFsaWQob2lkKSkKKwl7CisJCWlmIChx dWlldCkKKwkJCXJldHVybiBJbnZhbGlkT2lkOworCQllbHNlIGlmIChpZl9ub3RfZXhpc3RzKQor CQl7CisJCQkvKgorCQkJICogSWYgd2UgYXJlIGluIGFuIGV4dGVuc2lvbiBzY3JpcHQsIGluc2lz dCB0aGF0IHRoZSBwcmUtZXhpc3RpbmcKKwkJCSAqIG9iamVjdCBiZSBhIG1lbWJlciBvZiB0aGUg ZXh0ZW5zaW9uLCB0byBhdm9pZCBzZWN1cml0eSByaXNrcy4KKwkJCSAqLworCQkJT2JqZWN0QWRk cmVzc1NldChteXNlbGYsIFhtbFNjaGVtYVJlbGF0aW9uSWQsIG9pZCk7CisJCQljaGVja01lbWJl cnNoaXBJbkN1cnJlbnRFeHRlbnNpb24oJm15c2VsZik7CisKKwkJCS8qIE9LIHRvIHNraXAgKi8K KwkJCWVyZXBvcnQoTk9USUNFLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpF Q1QpLAorCQkJCQkgZXJybXNnKCJYTUwgc2NoZW1hIFwiJXNcIiBhbHJlYWR5IGV4aXN0cywgc2tp cHBpbmciLAorCQkJCQkJCXNjaGVtYW5hbWUpKSk7CisJCQlyZXR1cm4gSW52YWxpZE9pZDsKKwkJ fQorCQllbHNlCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJ Q0FURV9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJYTUwgc2NoZW1hIFwiJXNcIiBhbHJlYWR5IGV4 aXN0cyIsCisJCQkJCQkJc2NoZW1hbmFtZSkpKTsKKwl9CisKKwkvKiBvcGVuIHBnX3htbHNjaGVt YTsgbG9jayB0byBwcm90ZWN0IGFnYWluc3QgY29uY3VycmVudCBjaGFuZ2VzICovCisJcmVsID0g dGFibGVfb3BlbihYbWxTY2hlbWFSZWxhdGlvbklkLCBTaGFyZVJvd0V4Y2x1c2l2ZUxvY2spOwor CisJdHVwRGVzYyA9IFJlbGF0aW9uR2V0RGVzY3IocmVsKTsKKworCS8qIGZvcm0gYSB0dXBsZSAq LworCW1lbXNldChudWxscywgMCwgc2l6ZW9mKG51bGxzKSk7CisKKwluYW1lc3RyY3B5KCZuYW1l X25hbWUsIHNjaGVtYW5hbWUpOworCW9pZCA9IEdldE5ld09pZFdpdGhJbmRleChyZWwsIFhtbFNj aGVtYU9pZEluZGV4SWQsCisJCQkJCQkJIEFudW1fcGdfeG1sc2NoZW1hX29pZCk7CisJdmFsdWVz W0FudW1fcGdfeG1sc2NoZW1hX29pZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShvaWQpOworCXZh bHVlc1tBbnVtX3BnX3htbHNjaGVtYV9zY2hlbWFuYW1lIC0gMV0gPSBOYW1lR2V0RGF0dW0oJm5h bWVfbmFtZSk7CisJdmFsdWVzW0FudW1fcGdfeG1sc2NoZW1hX3NjaGVtYW5hbWVzcGFjZSAtIDFd ID0gT2JqZWN0SWRHZXREYXR1bShzY2hlbWFuYW1lc3BhY2UpOworCXZhbHVlc1tBbnVtX3BnX3ht bHNjaGVtYV9zY2hlbWFvd25lciAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShzY2hlbWFvd25lcik7 CisJdmFsdWVzW0FudW1fcGdfeG1sc2NoZW1hX3NjaGVtYWRhdGEgLSAxXSA9IFBvaW50ZXJHZXRE YXR1bShzY2hlbWFkYXRhKTsKKworCS8qIFNldCB1cCBkZWZhdWx0IEFDTCAqLworCXsKKwkJQWNs CQkgICAqc2NoZW1hYWNsOworCisJCXNjaGVtYWFjbCA9IGdldF91c2VyX2RlZmF1bHRfYWNsKE9C SkVDVF9YTUxTQ0hFTUEsIHNjaGVtYW93bmVyLAorCQkJCQkJCQkJCSBzY2hlbWFuYW1lc3BhY2Up OworCQlpZiAoc2NoZW1hYWNsICE9IE5VTEwpCisJCQl2YWx1ZXNbQW51bV9wZ194bWxzY2hlbWFf c2NoZW1hYWNsIC0gMV0gPSBQb2ludGVyR2V0RGF0dW0oc2NoZW1hYWNsKTsKKwkJZWxzZQorCQkJ bnVsbHNbQW51bV9wZ194bWxzY2hlbWFfc2NoZW1hYWNsIC0gMV0gPSB0cnVlOworCX0KKworCXR1 cCA9IGhlYXBfZm9ybV90dXBsZSh0dXBEZXNjLCB2YWx1ZXMsIG51bGxzKTsKKworCS8qIGluc2Vy dCBhIG5ldyB0dXBsZSAqLworCUNhdGFsb2dUdXBsZUluc2VydChyZWwsIHR1cCk7CisJQXNzZXJ0 KE9pZElzVmFsaWQob2lkKSk7CisKKwkvKiBzZXQgdXAgZGVwZW5kZW5jaWVzIGZvciB0aGUgbmV3 IFhNTCBzY2hlbWEgKi8KKwlteXNlbGYuY2xhc3NJZCA9IFhtbFNjaGVtYVJlbGF0aW9uSWQ7CisJ bXlzZWxmLm9iamVjdElkID0gb2lkOworCW15c2VsZi5vYmplY3RTdWJJZCA9IDA7CisKKwkvKiBj cmVhdGUgZGVwZW5kZW5jeSBvbiBuYW1lc3BhY2UgKi8KKwlyZWZlcmVuY2VkLmNsYXNzSWQgPSBO YW1lc3BhY2VSZWxhdGlvbklkOworCXJlZmVyZW5jZWQub2JqZWN0SWQgPSBzY2hlbWFuYW1lc3Bh Y2U7CisJcmVmZXJlbmNlZC5vYmplY3RTdWJJZCA9IDA7CisJcmVjb3JkRGVwZW5kZW5jeU9uKCZt eXNlbGYsICZyZWZlcmVuY2VkLCBERVBFTkRFTkNZX05PUk1BTCk7CisKKwkvKiBjcmVhdGUgZGVw ZW5kZW5jeSBvbiBvd25lciAqLworCXJlY29yZERlcGVuZGVuY3lPbk93bmVyKFhtbFNjaGVtYVJl bGF0aW9uSWQsIG9pZCwgc2NoZW1hb3duZXIpOworCisJLyogZGVwZW5kZW5jeSBvbiBleHRlbnNp b24gKi8KKwlyZWNvcmREZXBlbmRlbmN5T25DdXJyZW50RXh0ZW5zaW9uKCZteXNlbGYsIGZhbHNl KTsKKworCS8qIFBvc3QgY3JlYXRpb24gaG9vayBmb3IgbmV3IFhNTCBzY2hlbWEgKi8KKwlJbnZv a2VPYmplY3RQb3N0Q3JlYXRlSG9vayhYbWxTY2hlbWFSZWxhdGlvbklkLCBvaWQsIDApOworCisJ aGVhcF9mcmVldHVwbGUodHVwKTsKKwl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CisKKwlyZXR1 cm4gb2lkOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZQppbmRleCA2NGNiNjI3ODQwOS4uMDdmMDRlYWZk YWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCkBAIC02Niw2ICs2Niw3IEBAIE9CSlMgPSBcCiAJdmFj dXVtcGFyYWxsZWwubyBcCiAJdmFyaWFibGUubyBcCiAJdmlldy5vIFwKLQl3YWl0Lm8KKwl3YWl0 Lm8gXAorCXhtbHNjaGVtYWNtZHMubwogCiBpbmNsdWRlICQodG9wX3NyY2Rpcikvc3JjL2JhY2tl bmQvY29tbW9uLm1rCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYwppbmRleCBmN2IyMzg5YjAxOS4uNzc4ZjU0YmRh ZTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvYWx0ZXIuYwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgImNhdGFs b2cvcGdfdHNfZGljdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfcGFyc2VyLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ190c190ZW1wbGF0ZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfeG1s c2NoZW1hLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvYWx0ZXIuaCIKICNpbmNsdWRlICJjb21tYW5k cy9jb2xsYXRpb25jbWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgpAQCAt MTQwLDYgKzE0MSwxMCBAQCByZXBvcnRfbmFtZXNwYWNlX2NvbmZsaWN0KE9pZCBjbGFzc0lkLCBj b25zdCBjaGFyICpuYW1lLCBPaWQgbnNwT2lkKQogCQkJQXNzZXJ0KE9pZElzVmFsaWQobnNwT2lk KSk7CiAJCQltc2dmbXQgPSBnZXR0ZXh0X25vb3AoInRleHQgc2VhcmNoIGNvbmZpZ3VyYXRpb24g XCIlc1wiIGFscmVhZHkgZXhpc3RzIGluIHNjaGVtYSBcIiVzXCIiKTsKIAkJCWJyZWFrOworCQlj YXNlIFhtbFNjaGVtYVJlbGF0aW9uSWQ6CisJCQlBc3NlcnQoT2lkSXNWYWxpZChuc3BPaWQpKTsK KwkJCW1zZ2ZtdCA9IGdldHRleHRfbm9vcCgiWE1MIHNjaGVtYSBcIiVzXCIgYWxyZWFkeSBleGlz dHMgaW4gc2NoZW1hIFwiJXNcIiIpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVS Uk9SLCAidW5zdXBwb3J0ZWQgb2JqZWN0IGNsYXNzOiAldSIsIGNsYXNzSWQpOwogCQkJYnJlYWs7 CkBAIC00MjMsNiArNDI4LDcgQEAgRXhlY1JlbmFtZVN0bXQoUmVuYW1lU3RtdCAqc3RtdCkKIAkJ Y2FzZSBPQkpFQ1RfRkRXOgogCQljYXNlIE9CSkVDVF9GT1JFSUdOX1NFUlZFUjoKIAkJY2FzZSBP QkpFQ1RfRlVOQ1RJT046CisJCWNhc2UgT0JKRUNUX1hNTFNDSEVNQToKIAkJY2FzZSBPQkpFQ1Rf T1BDTEFTUzoKIAkJY2FzZSBPQkpFQ1RfT1BGQU1JTFk6CiAJCWNhc2UgT0JKRUNUX0xBTkdVQUdF OgpAQCAtNTY3LDYgKzU3Myw3IEBAIEV4ZWNBbHRlck9iamVjdFNjaGVtYVN0bXQoQWx0ZXJPYmpl Y3RTY2hlbWFTdG10ICpzdG10LAogCQljYXNlIE9CSkVDVF9GVU5DVElPTjoKIAkJY2FzZSBPQkpF Q1RfT1BFUkFUT1I6CiAJCWNhc2UgT0JKRUNUX09QQ0xBU1M6CisJCWNhc2UgT0JKRUNUX1hNTFND SEVNQToKIAkJY2FzZSBPQkpFQ1RfT1BGQU1JTFk6CiAJCWNhc2UgT0JKRUNUX1BST0NFRFVSRToK IAkJY2FzZSBPQkpFQ1RfUk9VVElORToKQEAgLTg3Nyw2ICs4ODQsNyBAQCBFeGVjQWx0ZXJPd25l clN0bXQoQWx0ZXJPd25lclN0bXQgKnN0bXQpCiAJCWNhc2UgT0JKRUNUX0NPTlZFUlNJT046CiAJ CWNhc2UgT0JKRUNUX0ZVTkNUSU9OOgogCQljYXNlIE9CSkVDVF9MQU5HVUFHRToKKwkJY2FzZSBP QkpFQ1RfWE1MU0NIRU1BOgogCQljYXNlIE9CSkVDVF9MQVJHRU9CSkVDVDoKIAkJY2FzZSBPQkpF Q1RfT1BFUkFUT1I6CiAJCWNhc2UgT0JKRUNUX09QQ0xBU1M6CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9kcm9wY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMu YwppbmRleCA5MjUyNjAxMmQyYS4uMmU4OTM5NjhhYjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2Ryb3BjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMu YwpAQCAtMjc4LDYgKzI3OCwxMyBAQCBkb2VzX25vdF9leGlzdF9za2lwcGluZyhPYmplY3RUeXBl IG9ianR5cGUsIE5vZGUgKm9iamVjdCkKIAkJCQluYW1lID0gTmFtZUxpc3RUb1N0cmluZyhjYXN0 Tm9kZShMaXN0LCBvYmplY3QpKTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9YTUxT Q0hFTUE6CisJCQlpZiAoIXNjaGVtYV9kb2VzX25vdF9leGlzdF9za2lwcGluZyhjYXN0Tm9kZShM aXN0LCBvYmplY3QpLCAmbXNnLCAmbmFtZSkpCisJCQl7CisJCQkJbXNnID0gZ2V0dGV4dF9ub29w KCJYTUwgc2NoZW1hIFwiJXNcIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmciKTsKKwkJCQluYW1l ID0gTmFtZUxpc3RUb1N0cmluZyhjYXN0Tm9kZShMaXN0LCBvYmplY3QpKTsKKwkJCX0KKwkJCWJy ZWFrOwogCQljYXNlIE9CSkVDVF9TQ0hFTUE6CiAJCQltc2cgPSBnZXR0ZXh0X25vb3AoInNjaGVt YSBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nIik7CiAJCQluYW1lID0gc3RyVmFsKG9i amVjdCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKaW5kZXggMDI4ZjllMmRlOTAu LjRhMDg3OTM1ZjE2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmln Z2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jCkBAIC0yMzE4 LDYgKzIzMTgsNyBAQCBzdHJpbmdpZnlfZ3JhbnRfb2JqdHlwZShPYmplY3RUeXBlIG9ianR5cGUp CiAJCWNhc2UgT0JKRUNUX1RTVEVNUExBVEU6CiAJCWNhc2UgT0JKRUNUX1VTRVJfTUFQUElORzoK IAkJY2FzZSBPQkpFQ1RfVklFVzoKKwkJY2FzZSBPQkpFQ1RfWE1MU0NIRU1BOgogCQkJZWxvZyhF UlJPUiwgInVuc3VwcG9ydGVkIG9iamVjdCB0eXBlOiAlZCIsIChpbnQpIG9ianR5cGUpOwogCX0K IApAQCAtMjQwMiw2ICsyNDAzLDcgQEAgc3RyaW5naWZ5X2FkZWZwcml2c19vYmp0eXBlKE9iamVj dFR5cGUgb2JqdHlwZSkKIAkJY2FzZSBPQkpFQ1RfVFNURU1QTEFURToKIAkJY2FzZSBPQkpFQ1Rf VVNFUl9NQVBQSU5HOgogCQljYXNlIE9CSkVDVF9WSUVXOgorCQljYXNlIE9CSkVDVF9YTUxTQ0hF TUE6CiAJCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgb2JqZWN0IHR5cGU6ICVkIiwgKGludCkg b2JqdHlwZSk7CiAJfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5i dWlsZCBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCmluZGV4IGNhM2Y1M2M2MjEz Li4zMzYzNzk3ZWNlZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVp bGQKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQKQEAgLTU1LDQgKzU1LDUg QEAgYmFja2VuZF9zb3VyY2VzICs9IGZpbGVzKAogICAndmFyaWFibGUuYycsCiAgICd2aWV3LmMn LAogICAnd2FpdC5jJywKKyAgJ3htbHNjaGVtYWNtZHMuYycsCiApCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFi ZWwuYwppbmRleCA0MTYwZjViNjg1NS4uODNjNmNkZDliYjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFi ZWwuYwpAQCAtOTIsNiArOTIsNyBAQCBTZWNMYWJlbFN1cHBvcnRzT2JqZWN0VHlwZShPYmplY3RU eXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX1RTUEFSU0VSOgogCQljYXNlIE9CSkVDVF9UU1RF TVBMQVRFOgogCQljYXNlIE9CSkVDVF9VU0VSX01BUFBJTkc6CisJCWNhc2UgT0JKRUNUX1hNTFND SEVNQToKIAkJCXJldHVybiBmYWxzZTsKIAogCQkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3htbHNjaGVtYWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3htbHNjaGVt YWNtZHMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzQwMGUzNWFl ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy94bWxzY2hlbWFjbWRz LmMKQEAgLTAsMCArMSwxNDYgQEAKKyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAi YWNjZXNzL2h0dXBfZGV0YWlscy5oIgorI2luY2x1ZGUgImFjY2Vzcy90YWJsZS5oIgorI2luY2x1 ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhY2Nlc3Mu aCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3htbHNjaGVtYS5oIgorI2luY2x1ZGUgImNhdGFsb2cv cGdfbmFtZXNwYWNlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMveG1sc2NoZW1hY21kcy5oIgorI2lu Y2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgorI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgi CisjaW5jbHVkZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgiCisj aW5jbHVkZSAicGFyc2VyL3BhcnNlX2NvZXJjZS5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9j b2xsYXRlLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2V4cHIuaCIKKyNpbmNsdWRlICJ1dGls cy9hY2wuaCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2xz eXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3JlbC5oIgorI2luY2x1ZGUgInV0aWxzL3N5c2Nh Y2hlLmgiCisjaW5jbHVkZSAidXRpbHMveG1sLmgiCisKKworLyoKKyAqIENSRUFURSBYTUxTQ0hF TUEKKyAqLworT2JqZWN0QWRkcmVzcworRGVmaW5lWG1sU2NoZW1hKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgTGlzdCAqbmFtZXMsIExpc3QgKnBhcmFtZXRlcnMsIGJvb2wgaWZfbm90X2V4aXN0cykKK3sK KwljaGFyCSAgICpzY2hlbWFOYW1lOworCU9pZAkJCXNjaGVtYU5hbWVzcGFjZTsKKwlBY2xSZXN1 bHQJYWNscmVzdWx0OworCUxpc3RDZWxsICAgKnBsOworCURlZkVsZW0gICAgKnNjaGVtYURhdGFF bCA9IE5VTEw7CisJeG1sdHlwZSAgICAqc2NoZW1hRGF0YTsKKwlPaWQJCQluZXdvaWQ7CisJT2Jq ZWN0QWRkcmVzcyBhZGRyZXNzOworCisJc2NoZW1hTmFtZXNwYWNlID0gUXVhbGlmaWVkTmFtZUdl dENyZWF0aW9uTmFtZXNwYWNlKG5hbWVzLCAmc2NoZW1hTmFtZSk7CisKKwlhY2xyZXN1bHQgPSBv YmplY3RfYWNsY2hlY2soTmFtZXNwYWNlUmVsYXRpb25JZCwgc2NoZW1hTmFtZXNwYWNlLCBHZXRV c2VySWQoKSwgQUNMX0NSRUFURSk7CisJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJ YWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfU0NIRU1BLAorCQkJCQkgICBnZXRfbmFt ZXNwYWNlX25hbWUoc2NoZW1hTmFtZXNwYWNlKSk7CisKKwkvKiBQYXJzZSBwYXJhbWV0ZXJzICov CisJZm9yZWFjaChwbCwgcGFyYW1ldGVycykKKwl7CisJCURlZkVsZW0gICAgKmRlZmVsID0gbGZp cnN0X25vZGUoRGVmRWxlbSwgcGwpOworCQlEZWZFbGVtICAgKipkZWZlbHA7CisKKwkJaWYgKHN0 cmNtcChkZWZlbC0+ZGVmbmFtZSwgInNjaGVtYSIpID09IDApCisJCQlkZWZlbHAgPSAmc2NoZW1h RGF0YUVsOworCQllbHNlCisJCXsKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVS UkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJIGVycm1zZygiWE1MIHNjaGVtYSBhdHRyaWJ1dGUg XCIlc1wiIG5vdCByZWNvZ25pemVkIiwKKwkJCQkJCQlkZWZlbC0+ZGVmbmFtZSksCisJCQkJCSBw YXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBkZWZlbC0+bG9jYXRpb24pKSk7CisJCQlicmVhazsK KwkJfQorCQlpZiAoKmRlZmVscCAhPSBOVUxMKQorCQkJZXJyb3JDb25mbGljdGluZ0RlZkVsZW0o ZGVmZWwsIHBzdGF0ZSk7CisJCSpkZWZlbHAgPSBkZWZlbDsKKwl9CisKKwlpZiAoIXNjaGVtYURh dGFFbCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJP UiksCisJCQkJIGVycm1zZygicGFyYW1ldGVyIFwic2NoZW1hXCIgbXVzdCBiZSBzcGVjaWZpZWQi KSkpOworCisJaWYgKElzQShzY2hlbWFEYXRhRWwtPmFyZywgU3RyaW5nKSkKKwl7CisJCXNjaGVt YURhdGEgPSAoeG1sdHlwZSAqKSBjc3RyaW5nX3RvX3RleHQoZGVmR2V0U3RyaW5nKHNjaGVtYURh dGFFbCkpOworCX0KKwllbHNlCisJeworCQlOb2RlCSAgICpleHByID0gc2NoZW1hRGF0YUVsLT5h cmc7CisJCUVTdGF0ZQkgICAqZXN0YXRlOworCQlFeHByU3RhdGUgICpleHByc3RhdGU7CisJCURh dHVtCQl2YWw7CisJCWJvb2wJCWlzbnVsbDsKKwkJRXhwckNvbnRleHQgKmVjb250ZXh0OworCQlP aWQJCQlyZXN1bHR0eXBlOworCisJCWV4cHIgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgZXhwciwg RVhQUl9LSU5EX09USEVSKTsKKworCQlyZXN1bHR0eXBlID0gZXhwclR5cGUoZXhwcik7CisJCWlm IChyZXN1bHR0eXBlICE9IFhNTE9JRCkKKwkJeworCQkJZXhwciA9IGNvZXJjZV90b190YXJnZXRf dHlwZShwc3RhdGUsIGV4cHIsIHJlc3VsdHR5cGUsCisJCQkJCQkJCQkJIFhNTE9JRCwgLTEsCisJ CQkJCQkJCQkJIENPRVJDSU9OX0FTU0lHTk1FTlQsCisJCQkJCQkJCQkJIENPRVJDRV9JTVBMSUNJ VF9DQVNULAorCQkJCQkJCQkJCSAtMSk7CisJCQlpZiAoZXhwciA9PSBOVUxMKQorCQkJCWVyZXBv cnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJ CQkJCSBlcnJtc2coIlhNTCBzY2hlbWEgZXhwcmVzc2lvbiBtdXN0IGJlIHR5cGUgeG1sLCBub3Qg dHlwZSAlcyIsCisJCQkJCQkJCWZvcm1hdF90eXBlX2JlKHJlc3VsdHR5cGUpKSkpOworCQl9CisK KwkJYXNzaWduX2V4cHJfY29sbGF0aW9ucyhwc3RhdGUsIGV4cHIpOworCisJCWVzdGF0ZSA9IENy ZWF0ZUV4ZWN1dG9yU3RhdGUoKTsKKwkJZXhwcnN0YXRlID0gRXhlY1ByZXBhcmVFeHByKChFeHBy ICopIGV4cHIsIGVzdGF0ZSk7CisJCWVjb250ZXh0ID0gR2V0UGVyVHVwbGVFeHByQ29udGV4dChl c3RhdGUpOworCisJCXZhbCA9IEV4ZWNFdmFsRXhwcihleHByc3RhdGUsIGVjb250ZXh0LCAmaXNu dWxsKTsKKworCQlpZiAoaXNudWxsKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUo RVJSQ09ERV9OVUxMX1ZBTFVFX05PVF9BTExPV0VEKSwKKwkJCQkJIGVycm1zZygiWE1MIHNjaGVt YSBleHByZXNzaW9uIG11c3Qgbm90IGJlIG51bGwiKSkpOworCisJCXNjaGVtYURhdGEgPSAoeG1s dHlwZSAqKSBEYXR1bUdldFBvaW50ZXIodmFsKTsKKworCQlGcmVlRXhlY3V0b3JTdGF0ZShlc3Rh dGUpOworCX0KKworCW5ld29pZCA9IFhtbFNjaGVtYUNyZWF0ZShzY2hlbWFOYW1lLAorCQkJCQkJ CSBzY2hlbWFOYW1lc3BhY2UsCisJCQkJCQkJIEdldFVzZXJJZCgpLAorCQkJCQkJCSBzY2hlbWFE YXRhLAorCQkJCQkJCSBpZl9ub3RfZXhpc3RzLAorCQkJCQkJCSBmYWxzZSk7CisKKwlpZiAoIU9p ZElzVmFsaWQobmV3b2lkKSkKKwl7CisJCS8qCisJCSAqIFdoZW4gSUYgTk9UIEVYSVNUUyB3YXMg c3BlY2lmaWVkIGFuZCB0aGUgb2JqZWN0IGFscmVhZHkgZXhpc3RlZCwKKwkJICogWG1sU2NoZW1h Q3JlYXRlIHJldHVybmVkIEludmFsaWRPaWQuIFJlcG9ydCBhbiBpbnZhbGlkIG9iamVjdAorCQkg KiBhZGRyZXNzLgorCQkgKi8KKwkJYWRkcmVzcy5jbGFzc0lkID0gWG1sU2NoZW1hUmVsYXRpb25J ZDsKKwkJYWRkcmVzcy5vYmplY3RJZCA9IEludmFsaWRPaWQ7CisJCWFkZHJlc3Mub2JqZWN0U3Vi SWQgPSAwOworCQlyZXR1cm4gYWRkcmVzczsKKwl9CisKKwlPYmplY3RBZGRyZXNzU2V0KGFkZHJl c3MsIFhtbFNjaGVtYVJlbGF0aW9uSWQsIG5ld29pZCk7CisKKwlyZXR1cm4gYWRkcmVzczsKK30K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55CmluZGV4IDcxM2VlNWMxMGEyLi5jYjc1MGVkZTdmOSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBA IC03MDcsNyArNzA3LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNo YXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICAqLwogCiAvKiBvcmRp bmFyeSBrZXkgd29yZHMgaW4gYWxwaGFiZXRpY2FsIG9yZGVyICovCi0ldG9rZW4gPGtleXdvcmQ+ IEFCT1JUX1AgQUJTRU5UIEFCU09MVVRFX1AgQUNDRVNTIEFDVElPTiBBRERfUCBBRE1JTiBBRlRF UgorJXRva2VuIDxrZXl3b3JkPiBBQk9SVF9QIEFCU0VOVCBBQlNPTFVURV9QIEFDQ0VTUyBBQ0NP UkRJTkcgQUNUSU9OIEFERF9QIEFETUlOIEFGVEVSCiAJQUdHUkVHQVRFIEFMTCBBTFNPIEFMVEVS IEFMV0FZUyBBTkFMWVNFIEFOQUxZWkUgQU5EIEFOWSBBUlJBWSBBUyBBU0MKIAlBU0VOU0lUSVZF IEFTU0VSVElPTiBBU1NJR05NRU5UIEFTWU1NRVRSSUMgQVRPTUlDIEFUIEFUVEFDSCBBVFRSSUJV VEUgQVVUSE9SSVpBVElPTgogCkBAIC03MjgsNyArNzI4LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VS ZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1 ZXJ5KTsKIAlERVRBQ0ggRElDVElPTkFSWSBESVNBQkxFX1AgRElTQ0FSRCBESVNUSU5DVCBETyBE T0NVTUVOVF9QIERPTUFJTl9QCiAJRE9VQkxFX1AgRFJPUAogCi0JRUFDSCBFTFNFIEVNUFRZX1Ag RU5BQkxFX1AgRU5DT0RJTkcgRU5DUllQVEVEIEVORF9QIEVORk9SQ0VEIEVOVU1fUCBFUlJPUl9Q CisJRUFDSCBFTFNFIEVMRU1FTlQgRU1QVFlfUCBFTkFCTEVfUCBFTkNPRElORyBFTkNSWVBURUQg RU5EX1AgRU5GT1JDRUQgRU5VTV9QIEVSUk9SX1AKIAlFU0NBUEUgRVZFTlQgRVhDRVBUIEVYQ0xV REUgRVhDTFVESU5HIEVYQ0xVU0lWRSBFWEVDVVRFIEVYSVNUUyBFWFBMQUlOCiAJRVhQUkVTU0lP TiBFWFRFTlNJT04gRVhURVJOQUwgRVhUUkFDVAogCkBAIC03OTgsNyArNzk4LDcgQEAgc3RhdGlj IE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFz ZXMsIE5vZGUgKnF1ZXJ5KTsKIAlXQUlUIFdIRU4gV0hFUkUgV0hJVEVTUEFDRV9QIFdJTkRPVyBX SVRIIFdJVEhJTiBXSVRIT1VUIFdPUksgV1JBUFBFUiBXUklURQogCiAJWE1MX1AgWE1MQVRUUklC VVRFUyBYTUxDT05DQVQgWE1MRUxFTUVOVCBYTUxFWElTVFMgWE1MRk9SRVNUIFhNTE5BTUVTUEFD RVMKLQlYTUxQQVJTRSBYTUxQSSBYTUxST09UIFhNTFNFUklBTElaRSBYTUxUQUJMRQorCVhNTFBB UlNFIFhNTFBJIFhNTFJPT1QgWE1MU0NIRU1BIFhNTFNFUklBTElaRSBYTUxUQUJMRSBYTUxWQUxJ REFURQogCiAJWUVBUl9QIFlFU19QCiAKQEAgLTY2NTQsNiArNjY1NCwyNyBAQCBEZWZpbmVTdG10 OgogCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwog CQkJCX0KKwkJCXwgQ1JFQVRFIFhNTFNDSEVNQSBhbnlfbmFtZSBBUyBhX2V4cHIKKwkJCQl7CisJ CQkJCURlZmluZVN0bXQgKm4gPSBtYWtlTm9kZShEZWZpbmVTdG10KTsKKworCQkJCQluLT5raW5k ID0gT0JKRUNUX1hNTFNDSEVNQTsKKwkJCQkJbi0+YXJncyA9IE5JTDsKKwkJCQkJbi0+ZGVmbmFt ZXMgPSAkMzsKKwkJCQkJbi0+ZGVmaW5pdGlvbiA9IGxpc3RfbWFrZTEobWFrZURlZkVsZW0oInNj aGVtYSIsIChOb2RlICopICQ1LCBANSkpOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQor CQkJfCBDUkVBVEUgWE1MU0NIRU1BIElGX1AgTk9UIEVYSVNUUyBhbnlfbmFtZSBBUyBhX2V4cHIK KwkJCQl7CisJCQkJCURlZmluZVN0bXQgKm4gPSBtYWtlTm9kZShEZWZpbmVTdG10KTsKKworCQkJ CQluLT5raW5kID0gT0JKRUNUX1hNTFNDSEVNQTsKKwkJCQkJbi0+YXJncyA9IE5JTDsKKwkJCQkJ bi0+ZGVmbmFtZXMgPSAkNjsKKwkJCQkJbi0+ZGVmaW5pdGlvbiA9IGxpc3RfbWFrZTEobWFrZURl ZkVsZW0oInNjaGVtYSIsIChOb2RlICopICQ4LCBAOCkpOworCQkJCQluLT5pZl9ub3RfZXhpc3Rz ID0gdHJ1ZTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KIAkJOwogCiBkZWZpbml0aW9u OiAnKCcgZGVmX2xpc3QgJyknCQkJCQkJeyAkJCA9ICQyOyB9CkBAIC03MTkzLDYgKzcyMTQsNyBA QCBvYmplY3RfdHlwZV9hbnlfbmFtZToKIAkJCXwgSU5ERVgJCQkJCQkJCQl7ICQkID0gT0JKRUNU X0lOREVYOyB9CiAJCQl8IEZPUkVJR04gVEFCTEUJCQkJCQkJeyAkJCA9IE9CSkVDVF9GT1JFSUdO X1RBQkxFOyB9CiAJCQl8IENPTExBVElPTgkJCQkJCQkJeyAkJCA9IE9CSkVDVF9DT0xMQVRJT047 IH0KKwkJCXwgWE1MU0NIRU1BCQkJCQkJCQl7ICQkID0gT0JKRUNUX1hNTFNDSEVNQTsgfQogCQkJ fCBDT05WRVJTSU9OX1AJCQkJCQkJeyAkJCA9IE9CSkVDVF9DT05WRVJTSU9OOyB9CiAJCQl8IFNU QVRJU1RJQ1MJCQkJCQkJeyAkJCA9IE9CSkVDVF9TVEFUSVNUSUNfRVhUOyB9CiAJCQl8IFRFWFRf UCBTRUFSQ0ggUEFSU0VSCQkJCQl7ICQkID0gT0JKRUNUX1RTUEFSU0VSOyB9CkBAIC04MTA3LDYg KzgxMjksMTUgQEAgcHJpdmlsZWdlX3RhcmdldDoKIAkJCQkJbi0+b2JqcyA9ICQyOwogCQkJCQkk JCA9IG47CiAJCQkJfQorCQkJfCBYTUxTQ0hFTUEgYW55X25hbWVfbGlzdAorCQkJCXsKKwkJCQkJ UHJpdlRhcmdldCAqbiA9IHBhbGxvY19vYmplY3QoUHJpdlRhcmdldCk7CisKKwkJCQkJbi0+dGFy Z3R5cGUgPSBBQ0xfVEFSR0VUX09CSkVDVDsKKwkJCQkJbi0+b2JqdHlwZSA9IE9CSkVDVF9YTUxT Q0hFTUE7CisJCQkJCW4tPm9ianMgPSAkMjsKKwkJCQkJJCQgPSBuOworCQkJCX0KIAkJCXwgQUxM IFRBQkxFUyBJTl9QIFNDSEVNQSBuYW1lX2xpc3QKIAkJCQl7CiAJCQkJCVByaXZUYXJnZXQgKm4g PSBwYWxsb2Nfb2JqZWN0KFByaXZUYXJnZXQpOwpAQCAtOTU3Myw2ICs5NjA0LDE2IEBAIFJlbmFt ZVN0bXQ6IEFMVEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0eXBlcyBSRU5BTUUgVE8g bmFtZQogCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsK IAkJCQl9CisJCQl8IEFMVEVSIFhNTFNDSEVNQSBhbnlfbmFtZSBSRU5BTUUgVE8gbmFtZQorCQkJ CXsKKwkJCQkJUmVuYW1lU3RtdCAqbiA9IG1ha2VOb2RlKFJlbmFtZVN0bXQpOworCisJCQkJCW4t PnJlbmFtZVR5cGUgPSBPQkpFQ1RfWE1MU0NIRU1BOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAq KSAkMzsKKwkJCQkJbi0+bmV3bmFtZSA9ICQ2OworCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7 CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CiAJCQl8IEFMVEVSIENPTlZFUlNJT05fUCBh bnlfbmFtZSBSRU5BTUUgVE8gbmFtZQogCQkJCXsKIAkJCQkJUmVuYW1lU3RtdCAqbiA9IG1ha2VO b2RlKFJlbmFtZVN0bXQpOwpAQCAtMTAyNTAsNiArMTAyOTEsMTYgQEAgQWx0ZXJPYmplY3RTY2hl bWFTdG10OgogCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikg bjsKIAkJCQl9CisJCQl8IEFMVEVSIFhNTFNDSEVNQSBhbnlfbmFtZSBTRVQgU0NIRU1BIG5hbWUK KwkJCQl7CisJCQkJCUFsdGVyT2JqZWN0U2NoZW1hU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyT2Jq ZWN0U2NoZW1hU3RtdCk7CisKKwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9CSkVDVF9YTUxTQ0hFTUE7 CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQzOworCQkJCQluLT5uZXdzY2hlbWEgPSAkNjsK KwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJ fQogCQkJfCBBTFRFUiBDT05WRVJTSU9OX1AgYW55X25hbWUgU0VUIFNDSEVNQSBuYW1lCiAJCQkJ ewogCQkJCQlBbHRlck9iamVjdFNjaGVtYVN0bXQgKm4gPSBtYWtlTm9kZShBbHRlck9iamVjdFNj aGVtYVN0bXQpOwpAQCAtMTA1ODMsNiArMTA2MzQsMTUgQEAgQWx0ZXJPd25lclN0bXQ6IEFMVEVS IEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0eXBlcyBPV05FUiBUTyBSb2xlU3BlYwogCQkJ CQluLT5uZXdvd25lciA9ICQ2OwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBB TFRFUiBYTUxTQ0hFTUEgYW55X25hbWUgT1dORVIgVE8gUm9sZVNwZWMKKwkJCQl7CisJCQkJCUFs dGVyT3duZXJTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJPd25lclN0bXQpOworCisJCQkJCW4tPm9i amVjdFR5cGUgPSBPQkpFQ1RfWE1MU0NIRU1BOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAk MzsKKwkJCQkJbi0+bmV3b3duZXIgPSAkNjsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0K IAkJCXwgQUxURVIgQ09OVkVSU0lPTl9QIGFueV9uYW1lIE9XTkVSIFRPIFJvbGVTcGVjCiAJCQkJ ewogCQkJCQlBbHRlck93bmVyU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyT3duZXJTdG10KTsKQEAg LTE2Mjg4LDYgKzE2MzQ4LDE3IEBAIGZ1bmNfZXhwcl9jb21tb25fc3ViZXhwcjoKIAkJCQkJbi0+ bG9jYXRpb24gPSBAMTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgWE1MVkFM SURBVEUgJygnIERPQ1VNRU5UX1AgYV9leHByIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgYW55X25h bWUgJyknCisJCQkJeworCQkJCQlYbWxFeHByICp4ID0gKFhtbEV4cHIgKikKKwkJCQkJCW1ha2VY bWxFeHByKElTX1hNTFZBTElEQVRFLCBOVUxMLCAkOCwKKwkJCQkJCQkJCWxpc3RfbWFrZTEoJDQp LAorCQkJCQkJCQkJQDEpOworCisJCQkJCXgtPnhtbG9wdGlvbiA9IFhNTE9QVElPTl9ET0NVTUVO VDsKKwkJCQkJeC0+bG9jYXRpb24gPSBAMTsKKwkJCQkJJCQgPSAoTm9kZSAqKSB4OworCQkJCX0K IAkJCXwgSlNPTl9PQkpFQ1QgJygnIGZ1bmNfYXJnX2xpc3QgJyknCiAJCQkJewogCQkJCQkvKiBT dXBwb3J0IGZvciBsZWdhY3kgKG5vbi1zdGFuZGFyZCkganNvbl9vYmplY3QoKSAqLwpAQCAtMTc4 OTgsNiArMTc5NjksNyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IEFCU0VOVAogCQkJfCBB QlNPTFVURV9QCiAJCQl8IEFDQ0VTUworCQkJfCBBQ0NPUkRJTkcKIAkJCXwgQUNUSU9OCiAJCQl8 IEFERF9QCiAJCQl8IEFETUlOCkBAIC0xODIyNyw2ICsxODI5OSw3IEBAIHVucmVzZXJ2ZWRfa2V5 d29yZDoKIAkJCXwgV1JBUFBFUgogCQkJfCBXUklURQogCQkJfCBYTUxfUAorCQkJfCBYTUxTQ0hF TUEKIAkJCXwgWUVBUl9QCiAJCQl8IFlFU19QCiAJCQl8IFpPTkUKQEAgLTE4MzA2LDYgKzE4Mzc5 LDcgQEAgY29sX25hbWVfa2V5d29yZDoKIAkJCXwgWE1MUk9PVAogCQkJfCBYTUxTRVJJQUxJWkUK IAkJCXwgWE1MVEFCTEUKKwkJCXwgWE1MVkFMSURBVEUKIAkJOwogCiAvKiBUeXBlL2Z1bmN0aW9u IGlkZW50aWZpZXIgLS0tIGtleXdvcmRzIHRoYXQgY2FuIGJlIHR5cGUgb3IgZnVuY3Rpb24gbmFt ZXMuCkBAIC0xODQ0NSw2ICsxODUxOSw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgQUJT RU5UCiAJCQl8IEFCU09MVVRFX1AKIAkJCXwgQUNDRVNTCisJCQl8IEFDQ09SRElORwogCQkJfCBB Q1RJT04KIAkJCXwgQUREX1AKIAkJCXwgQURNSU4KQEAgLTE4ODk2LDggKzE4OTcxLDEwIEBAIGJh cmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgWE1MUEFSU0UKIAkJCXwgWE1MUEkKIAkJCXwgWE1MUk9P VAorCQkJfCBYTUxTQ0hFTUEKIAkJCXwgWE1MU0VSSUFMSVpFCiAJCQl8IFhNTFRBQkxFCisJCQl8 IFhNTFZBTElEQVRFCiAJCQl8IFlFU19QCiAJCQl8IFpPTkUKIAkJOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwppbmRl eCAzNGRkNmUxOGRmNS4uNjBlMGEwZjdlN2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3Av dXRpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC01Nyw2ICs1Nyw3 IEBACiAjaW5jbHVkZSAiY29tbWFuZHMvdmFjdXVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdmll dy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3dhaXQuaCIKKyNpbmNsdWRlICJjb21tYW5kcy94bWxz Y2hlbWFjbWRzLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAicGFyc2VyL3Bh cnNlX3V0aWxjbWQuaCIKICNpbmNsdWRlICJwb3N0bWFzdGVyL2Jnd3JpdGVyLmgiCkBAIC0xNDQz LDYgKzE0NDQsMTMgQEAgUHJvY2Vzc1V0aWxpdHlTbG93KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJ CQkJCQkJCQkJCQkgIHN0bXQtPmRlZmluaXRpb24sCiAJCQkJCQkJCQkJCQkJICBzdG10LT5pZl9u b3RfZXhpc3RzKTsKIAkJCQkJCQlicmVhazsKKwkJCQkJCWNhc2UgT0JKRUNUX1hNTFNDSEVNQToK KwkJCQkJCQlBc3NlcnQoc3RtdC0+YXJncyA9PSBOSUwpOworCQkJCQkJCWFkZHJlc3MgPSBEZWZp bmVYbWxTY2hlbWEocHN0YXRlLAorCQkJCQkJCQkJCQkJCSAgc3RtdC0+ZGVmbmFtZXMsCisJCQkJ CQkJCQkJCQkJICBzdG10LT5kZWZpbml0aW9uLAorCQkJCQkJCQkJCQkJCSAgc3RtdC0+aWZfbm90 X2V4aXN0cyk7CisJCQkJCQkJYnJlYWs7CiAJCQkJCQlkZWZhdWx0OgogCQkJCQkJCWVsb2coRVJS T1IsICJ1bnJlY29nbml6ZWQgZGVmaW5lIHN0bXQgdHlwZTogJWQiLAogCQkJCQkJCQkgKGludCkg c3RtdC0+a2luZCk7CkBAIC0yMjM4LDYgKzIyNDYsOSBAQCBBbHRlck9iamVjdFR5cGVDb21tYW5k VGFnKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQkJdGFn ID0gQ01EVEFHX0FMVEVSX0NPTExBVElPTjsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9YTUxT Q0hFTUE6CisJCQl0YWcgPSBDTURUQUdfQUxURVJfWE1MU0NIRU1BOworCQkJYnJlYWs7CiAJCWNh c2UgT0JKRUNUX0NPTFVNTjoKIAkJCXRhZyA9IENNRFRBR19BTFRFUl9UQUJMRTsKIAkJCWJyZWFr OwpAQCAtMjU3NSw2ICsyNTg2LDkgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUp CiAJCQkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQkJCQl0YWcgPSBDTURUQUdfRFJPUF9DT0xM QVRJT047CiAJCQkJCWJyZWFrOworCQkJCWNhc2UgT0JKRUNUX1hNTFNDSEVNQToKKwkJCQkJdGFn ID0gQ01EVEFHX0RST1BfWE1MU0NIRU1BOworCQkJCQlicmVhazsKIAkJCQljYXNlIE9CSkVDVF9D T05WRVJTSU9OOgogCQkJCQl0YWcgPSBDTURUQUdfRFJPUF9DT05WRVJTSU9OOwogCQkJCQlicmVh azsKQEAgLTI3NzYsNiArMjc5MCw5IEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9kZSAqcGFyc2V0cmVl KQogCQkJCWNhc2UgT0JKRUNUX0NPTExBVElPTjoKIAkJCQkJdGFnID0gQ01EVEFHX0NSRUFURV9D T0xMQVRJT047CiAJCQkJCWJyZWFrOworCQkJCWNhc2UgT0JKRUNUX1hNTFNDSEVNQToKKwkJCQkJ dGFnID0gQ01EVEFHX0NSRUFURV9YTUxTQ0hFTUE7CisJCQkJCWJyZWFrOwogCQkJCWNhc2UgT0JK RUNUX0FDQ0VTU19NRVRIT0Q6CiAJCQkJCXRhZyA9IENNRFRBR19DUkVBVEVfQUNDRVNTX01FVEhP RDsKIAkJCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMKaW5kZXggM2E2OTA1Zjk1NDYuLjQxMmEwNDUw NDMwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2FjbC5jCkBAIC04NjcsNiArODY3LDEwIEBAIGFjbGRlZmF1bHQoT2Jq ZWN0VHlwZSBvYmp0eXBlLCBPaWQgb3duZXJJZCkKIAkJCXdvcmxkX2RlZmF1bHQgPSBBQ0xfTk9f UklHSFRTOwogCQkJb3duZXJfZGVmYXVsdCA9IEFDTF9BTExfUklHSFRTX1BBUkFNRVRFUl9BQ0w7 CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfWE1MU0NIRU1BOgorCQkJd29ybGRfZGVmYXVsdCA9 IEFDTF9OT19SSUdIVFM7CisJCQlvd25lcl9kZWZhdWx0ID0gQUNMX0FMTF9SSUdIVFNfWE1MU0NI RU1BOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVk IG9iamVjdCB0eXBlOiAlZCIsIChpbnQpIG9ianR5cGUpOwogCQkJd29ybGRfZGVmYXVsdCA9IEFD TF9OT19SSUdIVFM7CS8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxl dXRpbHMuYwppbmRleCAwMzNiNjI1ZjNmYy4uMWM0MDBlOGRjYmQgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQv cnVsZXV0aWxzLmMKQEAgLTEwMTE5LDE3ICsxMDExOSwyMCBAQCBnZXRfcnVsZV9leHByKE5vZGUg Km5vZGUsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCwKIAkJCQkJY2FzZSBJU19YTUxTRVJJQUxJ WkU6CiAJCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIlhNTFNFUklBTElaRSgiKTsK IAkJCQkJCWJyZWFrOworCQkJCQljYXNlIElTX1hNTFZBTElEQVRFOgorCQkJCQkJYXBwZW5kU3Ry aW5nSW5mb1N0cmluZyhidWYsICJYTUxWQUxJREFURSgiKTsKKwkJCQkJCWJyZWFrOwogCQkJCQlj YXNlIElTX0RPQ1VNRU5UOgogCQkJCQkJYnJlYWs7CiAJCQkJfQotCQkJCWlmICh4ZXhwci0+b3Ag PT0gSVNfWE1MUEFSU0UgfHwgeGV4cHItPm9wID09IElTX1hNTFNFUklBTElaRSkKKwkJCQlpZiAo eGV4cHItPm9wID09IElTX1hNTFBBUlNFIHx8IHhleHByLT5vcCA9PSBJU19YTUxTRVJJQUxJWkUg fHwgeGV4cHItPm9wID09IElTX1hNTFZBTElEQVRFKQogCQkJCXsKIAkJCQkJaWYgKHhleHByLT54 bWxvcHRpb24gPT0gWE1MT1BUSU9OX0RPQ1VNRU5UKQogCQkJCQkJYXBwZW5kU3RyaW5nSW5mb1N0 cmluZyhidWYsICJET0NVTUVOVCAiKTsKIAkJCQkJZWxzZQogCQkJCQkJYXBwZW5kU3RyaW5nSW5m b1N0cmluZyhidWYsICJDT05URU5UICIpOwogCQkJCX0KLQkJCQlpZiAoeGV4cHItPm5hbWUpCisJ CQkJaWYgKHhleHByLT5uYW1lICYmIHhleHByLT5vcCAhPSBJU19YTUxWQUxJREFURSkKIAkJCQl7 CiAJCQkJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiTkFNRSAlcyIsCiAJCQkJCQkJCQkgcXVvdGVf aWRlbnRpZmllcihtYXBfeG1sX25hbWVfdG9fc3FsX2lkZW50aWZpZXIoeGV4cHItPm5hbWUpKSk7 CkBAIC0xMDIyNiw2ICsxMDIyOSwxNSBAQCBnZXRfcnVsZV9leHByKE5vZGUgKm5vZGUsIGRlcGFy c2VfY29udGV4dCAqY29udGV4dCwKIAkJCQkJCQkJfQogCQkJCQkJCX0KIAkJCQkJCQlicmVhazsK KwkJCQkJCWNhc2UgSVNfWE1MVkFMSURBVEU6CisJCQkJCQkJQXNzZXJ0KGxpc3RfbGVuZ3RoKHhl eHByLT5hcmdzKSA9PSAyKTsKKworCQkJCQkJCWdldF9ydWxlX2V4cHIoKE5vZGUgKikgbGluaXRp YWwoeGV4cHItPmFyZ3MpLAorCQkJCQkJCQkJCSAgY29udGV4dCwgdHJ1ZSk7CisKKwkJCQkJCQlh cHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIiBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BICIpOwor CQkJCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCB4ZXhwci0+bmFtZSk7CisJCQkJCQkJ YnJlYWs7CiAJCQkJCQljYXNlIElTX0RPQ1VNRU5UOgogCQkJCQkJCWdldF9ydWxlX2V4cHJfcGFy ZW4oKE5vZGUgKikgeGV4cHItPmFyZ3MsIGNvbnRleHQsIGZhbHNlLCBub2RlKTsKIAkJCQkJCQli cmVhazsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUgYi9zcmMvaW5j bHVkZS9jYXRhbG9nL01ha2VmaWxlCmluZGV4IGM5MDAyMmY3YzU3Li5kY2IxZDg5NmQ5ZiAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZQorKysgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL01ha2VmaWxlCkBAIC03Miw2ICs3Miw3IEBAIENBVEFMT0dfSEVBREVSUyA6PSBcCiAJ cGdfc2VjbGFiZWwuaCBcCiAJcGdfc2hzZWNsYWJlbC5oIFwKIAlwZ19jb2xsYXRpb24uaCBcCisJ cGdfeG1sc2NoZW1hLmggXAogCXBnX3BhcmFtZXRlcl9hY2wuaCBcCiAJcGdfcGFydGl0aW9uZWRf dGFibGUuaCBcCiAJcGdfcmFuZ2UuaCBcCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L21lc29uLmJ1aWxkIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZAppbmRleCBiNjNj ZDU4NDA2OC4uNTg0NjkxOWY2MjYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVz b24uYnVpbGQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZApAQCAtNTksNiAr NTksNyBAQCBjYXRhbG9nX2hlYWRlcnMgPSBbCiAgICdwZ19zZWNsYWJlbC5oJywKICAgJ3BnX3No c2VjbGFiZWwuaCcsCiAgICdwZ19jb2xsYXRpb24uaCcsCisgICdwZ194bWxzY2hlbWEuaCcsCiAg ICdwZ19wYXJhbWV0ZXJfYWNsLmgnLAogICAncGdfcGFydGl0aW9uZWRfdGFibGUuaCcsCiAgICdw Z19yYW5nZS5oJywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCmluZGV4IDFhMjU5NzM2ODVjLi5hMGY5 NTg1YzUzYSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaAorKysg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCkBAIC0xOTEsNiArMTkxLDcgQEAgZXh0 ZXJuIGJvb2wgU2VhcmNoUGF0aE1hdGNoZXNDdXJyZW50RW52aXJvbm1lbnQoU2VhcmNoUGF0aE1h dGNoZXIgKnBhdGgpOwogCiBleHRlcm4gT2lkCWdldF9jb2xsYXRpb25fb2lkKExpc3QgKmNvbGxu YW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIE9pZAlnZXRfY29udmVyc2lvbl9vaWQoTGlz dCAqY29ubmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKK2V4dGVybiBPaWQJZ2V0X3htbHNjaGVtYV9v aWQoTGlzdCAqc2NoZW1hbmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJRmluZERl ZmF1bHRDb252ZXJzaW9uUHJvYyhpbnQzMiBmb3JfZW5jb2RpbmcsIGludDMyIHRvX2VuY29kaW5n KTsKIAogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3htbHNjaGVtYS5oIGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ194bWxzY2hlbWEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uMzI2MTQyMGYyYmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3htbHNjaGVtYS5oCkBAIC0wLDAgKzEsNDggQEAKKyNpZm5kZWYgUEdf WE1MU0NIRU1BX0gKKyNkZWZpbmUgUEdfWE1MU0NIRU1BX0gKKworI2luY2x1ZGUgImNhdGFsb2cv Z2VuYmtpLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ194bWxzY2hlbWFfZC5oIgorI2luY2x1ZGUg InV0aWxzL3htbC5oIgorCitDQVRBTE9HKHBnX3htbHNjaGVtYSw2NDM0LFhtbFNjaGVtYVJlbGF0 aW9uSWQpCit7CisJT2lkCQkJb2lkOwkJCS8qIG9pZCAqLworCU5hbWVEYXRhCXNjaGVtYW5hbWU7 CQkvKiBYTUwgc2NoZW1hIG5hbWUgKi8KKworCS8qIE9JRCBvZiBuYW1lc3BhY2UgY29udGFpbmlu ZyB0aGlzIFhNTCBzY2hlbWEgKi8KKwlPaWQJCQlzY2hlbWFuYW1lc3BhY2UgQktJX0RFRkFVTFQo cGdfY2F0YWxvZykgQktJX0xPT0tVUChwZ19uYW1lc3BhY2UpOworCisJLyogb3duZXIgb2YgWE1M IHNjaGVtYSAqLworCU9pZAkJCXNjaGVtYW93bmVyIEJLSV9ERUZBVUxUKFBPU1RHUkVTKSBCS0lf TE9PS1VQKHBnX2F1dGhpZCk7CisjaWZkZWYgQ0FUQUxPR19WQVJMRU4KKwkvKiBUaGUgWFNEIGl0 c2VsZiAqLworCXhtbAkJCXNjaGVtYWRhdGEgQktJX0ZPUkNFX05PVF9OVUxMOworCisJLyogQWNj ZXNzIHByaXZpbGVnZXMgKi8KKwlhY2xpdGVtCQlzY2hlbWFhY2xbMV0gQktJX0RFRkFVTFQoX251 bGxfKTsKKyNlbmRpZgorfSBGb3JtRGF0YV9wZ194bWxzY2hlbWE7CisKKy8qIC0tLS0tLS0tLS0t LS0tLS0KKyAqICAgICAgICBGb3JtX3BnX3htbHNjaGVtYSBtYXBzIHRvIGEgcG9pbnRlciB0byBh IHJvdyB3aXRoCisgKiAgICAgICAgdGhlIGZvcm1hdCBvZiBwZ194bWxzY2hlbWEgcmVsYXRpb24u CisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgRm9ybURhdGFfcGdfeG1sc2NoZW1h ICogRm9ybV9wZ194bWxzY2hlbWE7CisKK0RFQ0xBUkVfVE9BU1QocGdfeG1sc2NoZW1hLCA2NDM1 LCA2NDM2KTsKK0RFQ0xBUkVfVU5JUVVFX0lOREVYKHBnX3htbHNjaGVtYV9uYW1lX25zcF9pbmRl eCwgNjQzNywgWG1sU2NoZW1hTmFtZU5zcEluZGV4SWQsIHBnX3htbHNjaGVtYSwgYnRyZWUoc2No ZW1hbmFtZSBuYW1lX29wcywgc2NoZW1hbmFtZXNwYWNlIG9pZF9vcHMpKTsKK0RFQ0xBUkVfVU5J UVVFX0lOREVYX1BLRVkocGdfeG1sc2NoZW1hX29pZF9pbmRleCwgNjQzOCwgWG1sU2NoZW1hT2lk SW5kZXhJZCwgcGdfeG1sc2NoZW1hLCBidHJlZShvaWQgb2lkX29wcykpOworCitNQUtFX1NZU0NB Q0hFKFhNTFNDSEVNQU5BTUVOU1AsIHBnX3htbHNjaGVtYV9uYW1lX25zcF9pbmRleCwgOCk7CitN QUtFX1NZU0NBQ0hFKFhNTFNDSEVNQU9JRCwgcGdfeG1sc2NoZW1hX29pZF9pbmRleCwgOCk7CisK K2V4dGVybiBPaWQJWG1sU2NoZW1hQ3JlYXRlKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCisJCQkJ CQkJT2lkIHNjaGVtYW5hbWVzcGFjZSwKKwkJCQkJCQlPaWQgc2NoZW1hb3duZXIsCisJCQkJCQkJ eG1sdHlwZSAqc2NoZW1hZGF0YSwKKwkJCQkJCQlib29sIGlmX25vdF9leGlzdHMsCisJCQkJCQkJ Ym9vbCBxdWlldCk7CisKKyNlbmRpZgkJCQkJCQkvKiBQR19YTUxTQ0hFTUFfSCAqLwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMveG1sc2NoZW1hY21kcy5oIGIvc3JjL2luY2x1ZGUv Y29tbWFuZHMveG1sc2NoZW1hY21kcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi4zMDJjYjc5MWYzMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1h bmRzL3htbHNjaGVtYWNtZHMuaApAQCAtMCwwICsxLDkgQEAKKyNpZm5kZWYgWE1MU0NIRU1BQ01E U19ICisjZGVmaW5lIFhNTFNDSEVNQUNNRFNfSAorCisjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3Rh ZGRyZXNzLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX25vZGUuaCIKKworZXh0ZXJuIE9iamVj dEFkZHJlc3MgRGVmaW5lWG1sU2NoZW1hKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqbmFtZXMs IExpc3QgKnBhcmFtZXRlcnMsIGJvb2wgaWZfbm90X2V4aXN0cyk7CisKKyNlbmRpZgkJCQkJCQkv KiBYTUxTQ0hFTUFDTURTX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCA2NDZkNmNlZDc2 My4uNTEwYjc5YTM0NjcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMu aAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTI0MDEsNiArMjQwMSw3 IEBAIHR5cGVkZWYgZW51bSBPYmplY3RUeXBlCiAJT0JKRUNUX1RZUEUsCiAJT0JKRUNUX1VTRVJf TUFQUElORywKIAlPQkpFQ1RfVklFVywKKwlPQkpFQ1RfWE1MU0NIRU1BLAogfSBPYmplY3RUeXBl OwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9w YXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKaW5kZXggZjc3NTNj NWM4YTguLjRlOGI1ZTFkN2U3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0 LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCkBAIC0yOSw2ICsyOSw3IEBAIFBH X0tFWVdPUkQoImFib3J0IiwgQUJPUlRfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVM KQogUEdfS0VZV09SRCgiYWJzZW50IiwgQUJTRU5ULCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVf TEFCRUwpCiBQR19LRVlXT1JEKCJhYnNvbHV0ZSIsIEFCU09MVVRFX1AsIFVOUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImFjY2VzcyIsIEFDQ0VTUywgVU5SRVNFUlZF RF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgiYWNjb3JkaW5nIiwgQUNDT1JESU5H LCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJhY3Rpb24iLCBB Q1RJT04sIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImFkZCIs IEFERF9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJhZG1p biIsIEFETUlOLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCkBAIC01MjAsOCArNTIx LDEwIEBAIFBHX0tFWVdPUkQoInhtbG5hbWVzcGFjZXMiLCBYTUxOQU1FU1BBQ0VTLCBDT0xfTkFN RV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgieG1scGFyc2UiLCBYTUxQQVJTRSwg Q09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInhtbHBpIiwgWE1MUEks IENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ4bWxyb290IiwgWE1M Uk9PVCwgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoInhtbHNjaGVt YSIsIFhNTFNDSEVNQSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09S RCgieG1sc2VyaWFsaXplIiwgWE1MU0VSSUFMSVpFLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xB QkVMKQogUEdfS0VZV09SRCgieG1sdGFibGUiLCBYTUxUQUJMRSwgQ09MX05BTUVfS0VZV09SRCwg QkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoInhtbHZhbGlkYXRlIiwgWE1MVkFMSURBVEUsIENPTF9O QU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ5ZWFyIiwgWUVBUl9QLCBVTlJF U0VSVkVEX0tFWVdPUkQsIEFTX0xBQkVMKQogUEdfS0VZV09SRCgieWVzIiwgWUVTX1AsIFVOUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInpvbmUiLCBaT05FLCBVTlJF U0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90Y29w L2NtZHRhZ2xpc3QuaCBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCmluZGV4IDEyOTBj OWJhYjY4Li4xY2QzNTQ1MmFjZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWds aXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKQEAgLTMxLDYgKzMxLDcg QEAgUEdfQ01EVEFHKENNRFRBR19BTFRFUl9DQVNULCAiQUxURVIgQ0FTVCIsIHRydWUsIGZhbHNl LCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfQ09MTEFUSU9OLCAiQUxURVIgQ09MTEFU SU9OIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9DT05TVFJB SU5ULCAiQUxURVIgQ09OU1RSQUlOVCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhD TURUQUdfQUxURVJfQ09OVkVSU0lPTiwgIkFMVEVSIENPTlZFUlNJT04iLCB0cnVlLCBmYWxzZSwg ZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0FMVEVSX1hNTFNDSEVNQSwgIkFMVEVSIFhNTFNDSEVN QSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfREFUQUJBU0Us ICJBTFRFUiBEQVRBQkFTRSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFH X0FMVEVSX0RFRkFVTFRfUFJJVklMRUdFUywgIkFMVEVSIERFRkFVTFQgUFJJVklMRUdFUyIsIHRy dWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfRE9NQUlOLCAiQUxURVIg RE9NQUlOIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQpAQCAtODgsNiArODksNyBAQCBQR19DTURUQUco Q01EVEFHX0NSRUFURV9DQVNULCAiQ1JFQVRFIENBU1QiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQ R19DTURUQUcoQ01EVEFHX0NSRUFURV9DT0xMQVRJT04sICJDUkVBVEUgQ09MTEFUSU9OIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfQ09OU1RSQUlOVCwgIkNS RUFURSBDT05TVFJBSU5UIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19D UkVBVEVfQ09OVkVSU0lPTiwgIkNSRUFURSBDT05WRVJTSU9OIiwgdHJ1ZSwgZmFsc2UsIGZhbHNl KQorUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfWE1MU0NIRU1BLCAiQ1JFQVRFIFhNTFNDSEVNQSIs IHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX0RBVEFCQVNFLCAi Q1JFQVRFIERBVEFCQVNFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdf Q1JFQVRFX0RPTUFJTiwgIkNSRUFURSBET01BSU4iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19D TURUQUcoQ01EVEFHX0NSRUFURV9FVkVOVF9UUklHR0VSLCAiQ1JFQVRFIEVWRU5UIFRSSUdHRVIi LCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpAQCAtMTQwLDYgKzE0Miw3IEBAIFBHX0NNRFRBRyhDTURU QUdfRFJPUF9DQVNULCAiRFJPUCBDQVNUIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFH KENNRFRBR19EUk9QX0NPTExBVElPTiwgIkRST1AgQ09MTEFUSU9OIiwgdHJ1ZSwgZmFsc2UsIGZh bHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX0NPTlNUUkFJTlQsICJEUk9QIENPTlNUUkFJTlQi LCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfQ09OVkVSU0lPTiwg IkRST1AgQ09OVkVSU0lPTiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdf RFJPUF9YTUxTQ0hFTUEsICJEUk9QIFhNTFNDSEVNQSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBH X0NNRFRBRyhDTURUQUdfRFJPUF9EQVRBQkFTRSwgIkRST1AgREFUQUJBU0UiLCBmYWxzZSwgZmFs c2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX0RPTUFJTiwgIkRST1AgRE9NQUlOIiwg dHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX0VWRU5UX1RSSUdHRVIs ICJEUk9QIEVWRU5UIFRSSUdHRVIiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvdXRpbHMvYWNsLmggYi9zcmMvaW5jbHVkZS91dGlscy9hY2wuaAppbmRleCBl YzAxZmQ1ODFjZi4uZTI0NDI3Yzk2NjMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2Fj bC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2FjbC5oCkBAIC0xNjksNiArMTY5LDcgQEAgdHlw ZWRlZiBzdHJ1Y3QgQXJyYXlUeXBlIEFjbDsKICNkZWZpbmUgQUNMX0FMTF9SSUdIVFNfU0NIRU1B CQkoQUNMX1VTQUdFfEFDTF9DUkVBVEUpCiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX1RBQkxFU1BB Q0UJKEFDTF9DUkVBVEUpCiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX1RZUEUJCQkoQUNMX1VTQUdF KQorI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19YTUxTQ0hFTUEJKEFDTF9VU0FHRSkKIAogLyogb3Bl cmF0aW9uIGNvZGVzIGZvciBwZ18qX2FjbG1hc2sgKi8KIHR5cGVkZWYgZW51bQotLSAKMi41MS4y Cgo= --0000000000002859840648ebfe5f Content-Type: application/octet-stream; name="0005-Add-tests-and-documentation-for-XMLSCHEMA-feature.patch" Content-Disposition: attachment; filename="0005-Add-tests-and-documentation-for-XMLSCHEMA-feature.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkohqcuy4 RnJvbSAyY2NjMTMzMjgxYjYwMzQwMTA4MTEzNmU0YTBjMzc4MTM0YTczYTUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjb3MgTWFndWV0YSA8bWFndWV0YW1hcmNvc0BnbWFpbC5j b20+CkRhdGU6IFdlZCwgMjEgSmFuIDIwMjYgMTc6MTI6MTAgLTAzMDAKU3ViamVjdDogW1BBVENI IDUvNV0gQWRkIHRlc3RzIGFuZCBkb2N1bWVudGF0aW9uIGZvciBYTUxTQ0hFTUEgZmVhdHVyZQoK LS0tCiBkb2Mvc3JjL3NnbWwvZGF0YXR5cGUuc2dtbCAgICAgICAgICAgICB8ICAgIDggKy0KIGRv Yy9zcmMvc2dtbC9mdW5jL2Z1bmMteG1sLnNnbWwgICAgICAgIHwgIDEwNSArCiBkb2Mvc3JjL3Nn bWwvcmVmL2FsbGZpbGVzLnNnbWwgICAgICAgICB8ICAgIDMgKwogZG9jL3NyYy9zZ21sL3JlZi9h bHRlcl94bWxzY2hlbWEuc2dtbCAgfCAgMTQ1ICsKIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ht bHNjaGVtYS5zZ21sIHwgIDE4NCArKwogZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3htbHNjaGVtYS5z Z21sICAgfCAgMTIwICsKIGRvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCAgICAgICAgICAgIHwg ICAgMyArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dCB8ICAgIDIgKwog c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC94bWwub3V0ICAgICAgfCA0MDYzICsrKysrKysrKysr KystLS0tLS0tLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC94bWxfMi5vdXQgICAgfCAg MzEzICsrCiBzcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3MuYyAgICAgICAgICB8ICAgIDIgKy0K IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3htbC5zcWwgICAgICAgICAgIHwgIDI3NCArKwogMTIgZmls ZXMgY2hhbmdlZCwgMzMzNiBpbnNlcnRpb25zKCspLCAxODg2IGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfeG1sc2NoZW1hLnNnbWwKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV94bWxzY2hlbWEuc2dtbAogY3Jl YXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvZHJvcF94bWxzY2hlbWEuc2dtbAoKZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kYXRhdHlwZS5zZ21sIGIvZG9jL3NyYy9zZ21sL2RhdGF0 eXBlLnNnbWwKaW5kZXggMzAxN2M2NzQwNDAuLmRkYWY3YzRkM2Q5IDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvZGF0YXR5cGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGF0YXR5cGUuc2dtbApA QCAtNDUxMCw4ICs0NTEwLDExIEBAIHhtbCAnPGZvbz5iYXI8L2Zvbz4nCiAgICAgYWdhaW5zdCBh IGRvY3VtZW50IHR5cGUgZGVjbGFyYXRpb24KICAgICAoRFREKSw8aW5kZXh0ZXJtPjxwcmltYXJ5 PkRURDwvcHJpbWFyeT48L2luZGV4dGVybT4KICAgICBldmVuIHdoZW4gdGhlIGlucHV0IHZhbHVl IHNwZWNpZmllcyBhIERURC4KLSAgICBUaGVyZSBpcyBhbHNvIGN1cnJlbnRseSBubyBidWlsdC1p biBzdXBwb3J0IGZvciB2YWxpZGF0aW5nIGFnYWluc3QKLSAgICBvdGhlciBYTUwgc2NoZW1hIGxh bmd1YWdlcyBzdWNoIGFzIFhNTCBTY2hlbWEuCisgICAgSG93ZXZlciwgPHByb2R1Y3RuYW1lPlBv c3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBwcm92aWRlcyB0aGUKKyAgICA8ZnVuY3Rpb24+WE1MVkFM SURBVEU8L2Z1bmN0aW9uPiBmdW5jdGlvbiBmb3IgdmFsaWRhdGluZyBYTUwgZG9jdW1lbnRzCisg ICAgYWdhaW5zdCBYTUwgU2NoZW1hIChYU0QpIGRvY3VtZW50cy4gU2VlCisgICAgPHhyZWYgbGlu a2VuZD0iZnVuY3Rpb25zLXhtbC1wcm9jZXNzaW5nLXhtbHZhbGlkYXRlIi8+IGFuZAorICAgIDx4 cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV4bWxzY2hlbWEiLz4gZm9yIG1vcmUgaW5mb3JtYXRpb24u CiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgpAQCAtNDY0OSw2ICs0NjUyLDcgQEAgU0VUIHhtbG9w dGlvbiBUTyB7IERPQ1VNRU5UIHwgQ09OVEVOVCB9OwogICAgIGRpc3RyaWJ1dGlvbi4KICAgIDwv cGFyYT4KICAgIDwvc2VjdDI+CisKICAgPC9zZWN0MT4KIAogICAmanNvbjsKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMteG1sLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5j LXhtbC5zZ21sCmluZGV4IDUxMWJjOTA4NTJhLi40OWNmYTQwOTEyNCAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL2Z1bmMvZnVuYy14bWwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5j LXhtbC5zZ21sCkBAIC0xMDA3LDYgKzEwMDcsMTExIEBAIFNFTEVDVCB4bWx0YWJsZS4qCiAgICAz IHwgICA0CiAgICA0IHwgICA1CiAoMyByb3dzKQorXV0+PC9zY3JlZW4+CisgICAgPC9wYXJhPgor ICAgPC9zZWN0Mz4KKworICAgPHNlY3QzIGlkPSJmdW5jdGlvbnMteG1sLXByb2Nlc3NpbmcteG1s dmFsaWRhdGUiPgorICAgIDx0aXRsZT48bGl0ZXJhbD54bWx2YWxpZGF0ZTwvbGl0ZXJhbD48L3Rp dGxlPgorCisgICAgPGluZGV4dGVybT4KKyAgICAgPHByaW1hcnk+eG1sdmFsaWRhdGU8L3ByaW1h cnk+CisgICAgPC9pbmRleHRlcm0+CisKKzxzeW5vcHNpcz4KKzxmdW5jdGlvbj5YTUxWQUxJREFU RTwvZnVuY3Rpb24+ICggPGxpdGVyYWw+RE9DVU1FTlQ8L2xpdGVyYWw+IDxyZXBsYWNlYWJsZT54 bWxfdmFsdWU8L3JlcGxhY2VhYmxlPiA8bGl0ZXJhbD5BQ0NPUkRJTkcgVE8gWE1MU0NIRU1BPC9s aXRlcmFsPiA8cmVwbGFjZWFibGU+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiApIDxyZXR1cm52 YWx1ZT54bWw8L3JldHVybnZhbHVlPgorPC9zeW5vcHNpcz4KKworICAgIDxwYXJhPgorICAgICBU aGUgPGZ1bmN0aW9uPnhtbHZhbGlkYXRlPC9mdW5jdGlvbj4gZnVuY3Rpb24gdmFsaWRhdGVzIGFu IFhNTCBkb2N1bWVudAorICAgICBhZ2FpbnN0IGFuIFhNTCBTY2hlbWEuIFRoZSBzY2hlbWEgbXVz dCBoYXZlIGJlZW4gcHJldmlvdXNseSBjcmVhdGVkIHVzaW5nCisgICAgIDxjb21tYW5kPkNSRUFU RSBYTUxTQ0hFTUE8L2NvbW1hbmQ+LiBJZiB0aGUgWE1MIGlzIHZhbGlkIGFjY29yZGluZyB0byB0 aGUKKyAgICAgc2NoZW1hLCB0aGUgZnVuY3Rpb24gcmV0dXJucyB0aGUgWE1MIHZhbHVlIHVuY2hh bmdlZC4gSWYgdmFsaWRhdGlvbiBmYWlscywKKyAgICAgYW4gZXJyb3IgaXMgcmFpc2VkLiBJZiA8 cmVwbGFjZWFibGU+eG1sX3ZhbHVlPC9yZXBsYWNlYWJsZT4gaXMKKyAgICAgPGxpdGVyYWw+TlVM TDwvbGl0ZXJhbD4sIHRoZSBmdW5jdGlvbiByZXR1cm5zIDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+ LgorICAgIDwvcGFyYT4KKworICAgIDxwYXJhPgorICAgICBUaGUgPHJlcGxhY2VhYmxlPnNjaGVt YV9uYW1lPC9yZXBsYWNlYWJsZT4gYXJndW1lbnQgc3BlY2lmaWVzIHRoZSBuYW1lCisgICAgIG9m IGFuIFhNTCBzY2hlbWEgc3RvcmVkIGluIHRoZSBkYXRhYmFzZS4gSXQgY2FuIGJlIHNjaGVtYS1x dWFsaWZpZWQKKyAgICAgKGUuZy4sIDxsaXRlcmFsPm15c2NoZW1hLnBlcnNvbl9zY2hlbWE8L2xp dGVyYWw+KSBvciB1bnF1YWxpZmllZCwgaW4KKyAgICAgd2hpY2ggY2FzZSBpdCB3aWxsIGJlIHNl YXJjaGVkIGZvciBpbiB0aGUgY3VycmVudCBzY2hlbWEgc2VhcmNoIHBhdGguCisgICAgIFRoZSB1 c2VyIG11c3QgaGF2ZSA8bGl0ZXJhbD5VU0FHRTwvbGl0ZXJhbD4gcHJpdmlsZWdlIG9uIHRoZSBz Y2hlbWEuCisgICAgPC9wYXJhPgorCisgICAgPHBhcmE+CisgICAgIEV4YW1wbGVzOgorPHNjcmVl bj48IVtDREFUQVsKK0NSRUFURSBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYSBBUyAnPD94bWwgdmVy c2lvbj0iMS4wIj8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAx L1hNTFNjaGVtYSI+CisgIDx4czplbGVtZW50IG5hbWU9InBlcnNvbiI+CisgICAgPHhzOmNvbXBs ZXhUeXBlPgorICAgICAgPHhzOnNlcXVlbmNlPgorICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJu YW1lIiB0eXBlPSJ4czpzdHJpbmciLz4KKyAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iYWdlIiB0 eXBlPSJ4czppbnRlZ2VyIi8+CisgICAgICA8L3hzOnNlcXVlbmNlPgorICAgIDwveHM6Y29tcGxl eFR5cGU+CisgIDwveHM6ZWxlbWVudD4KKzwveHM6c2NoZW1hPic7CisKK1NFTEVDVCB4bWx2YWxp ZGF0ZShET0NVTUVOVCAnPHBlcnNvbj48bmFtZT5Kb2huPC9uYW1lPjxhZ2U+MzA8L2FnZT48L3Bl cnNvbj4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYSk7CisKKyAgICAg ICAgICAgICAgICAgeG1sdmFsaWRhdGUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIDxwZXJzb24+PG5hbWU+Sm9objwvbmFtZT48YWdlPjMwPC9hZ2U+PC9w ZXJzb24+CisoMSByb3cpCitdXT48L3NjcmVlbj4KKyAgICA8L3BhcmE+CisKKyAgICA8cGFyYT4K KyAgICAgVGhpcyBleGFtcGxlIHNob3dzIGEgdmFsaWRhdGlvbiBmYWlsdXJlIGR1ZSB0byBhIG1p c3NpbmcgcmVxdWlyZWQgZWxlbWVudDoKKzxzY3JlZW4+PCFbQ0RBVEFbCitTRUxFQ1QgeG1sdmFs aWRhdGUoRE9DVU1FTlQgJzxwZXJzb24+PG5hbWU+Sm9objwvbmFtZT48L3BlcnNvbj4nCisgIEFD Q09SRElORyBUTyBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYSk7CitFUlJPUjogIFhNTCB2YWxpZGF0 aW9uIGZhaWxlZAorXV0+PC9zY3JlZW4+CisgICAgPC9wYXJhPgorCisgICAgPHBhcmE+CisgICAg IFNjaGVtYS1xdWFsaWZpZWQgbmFtZXMgYXJlIHN1cHBvcnRlZDoKKzxzY3JlZW4+PCFbQ0RBVEFb CitDUkVBVEUgU0NIRU1BIHRlc3Rfc2NoZW1hOworQ1JFQVRFIFhNTFNDSEVNQSB0ZXN0X3NjaGVt YS5wcm9kdWN0X3NjaGVtYSBBUyAnPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHM6c2NoZW1hIHht bG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4czplbGVtZW50 IG5hbWU9InByb2R1Y3QiPgorICAgIDx4czpjb21wbGV4VHlwZT4KKyAgICAgIDx4czpzZXF1ZW5j ZT4KKyAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0ibmFtZSIgdHlwZT0ieHM6c3RyaW5nIi8+Cisg ICAgICAgIDx4czplbGVtZW50IG5hbWU9InByaWNlIiB0eXBlPSJ4czpkZWNpbWFsIi8+CisgICAg ICA8L3hzOnNlcXVlbmNlPgorICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJpZCIgdHlwZT0ieHM6 c3RyaW5nIiB1c2U9InJlcXVpcmVkIi8+CisgICAgPC94czpjb21wbGV4VHlwZT4KKyAgPC94czpl bGVtZW50PgorPC94czpzY2hlbWE+JzsKKworU0VMRUNUIHhtbHZhbGlkYXRlKERPQ1VNRU5UICc8 cHJvZHVjdCBpZD0iMTIzIj48bmFtZT5XaWRnZXQ8L25hbWU+PHByaWNlPjkuOTk8L3ByaWNlPjwv cHJvZHVjdD4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgdGVzdF9zY2hlbWEucHJvZHVjdF9z Y2hlbWEpOworCisgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbHZhbGlkYXRlCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyA8cHJvZHVjdCBpZD0iMTIzIj48bmFtZT5XaWRnZXQ8L25hbWU+PHByaWNlPjkuOTk8L3ByaWNl PjwvcHJvZHVjdD4KKygxIHJvdykKK11dPjwvc2NyZWVuPgorICAgIDwvcGFyYT4KKworICAgIDxw YXJhPgorICAgICBTaW5jZSA8ZnVuY3Rpb24+eG1sdmFsaWRhdGU8L2Z1bmN0aW9uPiByZXR1cm5z IDx0eXBlPnhtbDwvdHlwZT4sIGl0IGNhbgorICAgICBiZSBjb21wb3NlZCB3aXRoIG90aGVyIFhN TCBmdW5jdGlvbnM6Cis8c2NyZWVuPjwhW0NEQVRBWworU0VMRUNUIHhtbHNlcmlhbGl6ZShET0NV TUVOVAorICB4bWx2YWxpZGF0ZShET0NVTUVOVCAnPHBlcnNvbj48bmFtZT5BbGljZTwvbmFtZT48 YWdlPjI1PC9hZ2U+PC9wZXJzb24+JworICAgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgcGVyc29u X3NjaGVtYSkgQVMgdGV4dCk7CisKKyAgICAgICAgICAgICAgeG1sc2VyaWFsaXplCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA8cGVyc29uPjxuYW1lPkFsaWNl PC9uYW1lPjxhZ2U+MjU8L2FnZT48L3BlcnNvbj4KKygxIHJvdykKIF1dPjwvc2NyZWVuPgogICAg IDwvcGFyYT4KICAgIDwvc2VjdDM+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZp bGVzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKaW5kZXggZTE2NzQwNmM3 NDQuLjg3YThlNjA2NmU0IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCkBAIC00OCw2ICs0OCw3IEBA IENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxlIHNnbWwgc291cmNlIGZpbGVzIGluIHRoaXMgZGlyZWN0 b3J5LgogPCFFTlRJVFkgYWx0ZXJVc2VyICAgICAgICAgIFNZU1RFTSAiYWx0ZXJfdXNlci5zZ21s Ij4KIDwhRU5USVRZIGFsdGVyVXNlck1hcHBpbmcgICBTWVNURU0gImFsdGVyX3VzZXJfbWFwcGlu Zy5zZ21sIj4KIDwhRU5USVRZIGFsdGVyVmlldyAgICAgICAgICBTWVNURU0gImFsdGVyX3ZpZXcu c2dtbCI+Cis8IUVOVElUWSBhbHRlclhtbFNjaGVtYSAgICAgU1lTVEVNICJhbHRlcl94bWxzY2hl bWEuc2dtbCI+CiA8IUVOVElUWSBhbmFseXplICAgICAgICAgICAgU1lTVEVNICJhbmFseXplLnNn bWwiPgogPCFFTlRJVFkgYmVnaW4gICAgICAgICAgICAgIFNZU1RFTSAiYmVnaW4uc2dtbCI+CiA8 IUVOVElUWSBjYWxsICAgICAgICAgICAgICAgU1lTVEVNICJjYWxsLnNnbWwiPgpAQCAtMTAwLDYg KzEwMSw3IEBAIENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxlIHNnbWwgc291cmNlIGZpbGVzIGluIHRo aXMgZGlyZWN0b3J5LgogPCFFTlRJVFkgY3JlYXRlVXNlciAgICAgICAgIFNZU1RFTSAiY3JlYXRl X3VzZXIuc2dtbCI+CiA8IUVOVElUWSBjcmVhdGVVc2VyTWFwcGluZyAgU1lTVEVNICJjcmVhdGVf dXNlcl9tYXBwaW5nLnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlVmlldyAgICAgICAgIFNZU1RFTSAi Y3JlYXRlX3ZpZXcuc2dtbCI+Cis8IUVOVElUWSBjcmVhdGVYbWxTY2hlbWEgICAgU1lTVEVNICJj cmVhdGVfeG1sc2NoZW1hLnNnbWwiPgogPCFFTlRJVFkgZGVhbGxvY2F0ZSAgICAgICAgIFNZU1RF TSAiZGVhbGxvY2F0ZS5zZ21sIj4KIDwhRU5USVRZIGRlY2xhcmUgICAgICAgICAgICBTWVNURU0g ImRlY2xhcmUuc2dtbCI+CiA8IUVOVElUWSBkZWxldGUgICAgICAgICAgICAgU1lTVEVNICJkZWxl dGUuc2dtbCI+CkBAIC0xNDgsNiArMTUwLDcgQEAgQ29tcGxldGUgbGlzdCBvZiB1c2FibGUgc2dt bCBzb3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8IUVOVElUWSBkcm9wVXNlciAgICAg ICAgICAgU1lTVEVNICJkcm9wX3VzZXIuc2dtbCI+CiA8IUVOVElUWSBkcm9wVXNlck1hcHBpbmcg ICAgU1lTVEVNICJkcm9wX3VzZXJfbWFwcGluZy5zZ21sIj4KIDwhRU5USVRZIGRyb3BWaWV3ICAg ICAgICAgICBTWVNURU0gImRyb3Bfdmlldy5zZ21sIj4KKzwhRU5USVRZIGRyb3BYbWxTY2hlbWEg ICAgICBTWVNURU0gImRyb3BfeG1sc2NoZW1hLnNnbWwiPgogPCFFTlRJVFkgZW5kICAgICAgICAg ICAgICAgIFNZU1RFTSAiZW5kLnNnbWwiPgogPCFFTlRJVFkgZXhlY3V0ZSAgICAgICAgICAgIFNZ U1RFTSAiZXhlY3V0ZS5zZ21sIj4KIDwhRU5USVRZIGV4cGxhaW4gICAgICAgICAgICBTWVNURU0g ImV4cGxhaW4uc2dtbCI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3htbHNj aGVtYS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl94bWxzY2hlbWEuc2dtbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmEyODZhZDAwZmUKLS0tIC9kZXYvbnVs bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3htbHNjaGVtYS5zZ21sCkBAIC0wLDAgKzEs MTQ1IEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3htbHNjaGVtYS5zZ21sCitQb3N0 Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1hbHRlcnhtbHNj aGVtYSI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtYWx0ZXJ4bWxzY2hlbWEiPgorICA8cHJpbWFy eT5BTFRFUiBYTUxTQ0hFTUE8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4K KyAgPHJlZmVudHJ5dGl0bGU+QUxURVIgWE1MU0NIRU1BPC9yZWZlbnRyeXRpdGxlPgorICA8bWFu dm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0YXRl bWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxyZWZuYW1lZGl2PgorICA8cmVm bmFtZT5BTFRFUiBYTUxTQ0hFTUE8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPmNoYW5nZSB0aGUg ZGVmaW5pdGlvbiBvZiBhbiBYTUwgc2NoZW1hPC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4K KworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0FMVEVSIFhNTFNDSEVNQSBbIElGIEVY SVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4g T1dORVIgVE8geyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X293bmVyPC9yZXBs YWNlYWJsZT4gfCBDVVJSRU5UX1JPTEUgfCBDVVJSRU5UX1VTRVIgfCBTRVNTSU9OX1VTRVIgfQor QUxURVIgWE1MU0NIRU1BIFsgSUYgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5ld19uYW1lPC9yZXBsYWNlYWJsZT4KK0FMVEVSIFhNTFNDSEVNQSBbIElGIEVYSVNU UyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gU0VU IFNDSEVNQSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X3NjaGVtYTwvcmVwbGFj ZWFibGU+Cis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+Cisg IDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5BTFRF UiBYTUxTQ0hFTUE8L2NvbW1hbmQ+IGNoYW5nZXMgdGhlIGRlZmluaXRpb24gb2YgYW4gWE1MIHNj aGVtYS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgWW91IG11c3Qgb3duIHRoZSBYTUwgc2No ZW1hIHRvIHVzZSA8Y29tbWFuZD5BTFRFUiBYTUxTQ0hFTUE8L2NvbW1hbmQ+LgorICAgVG8gY2hh bmdlIGFuIFhNTCBzY2hlbWEncyBzY2hlbWEsIHlvdSBtdXN0IGFsc28gaGF2ZSA8bGl0ZXJhbD5D UkVBVEU8L2xpdGVyYWw+CisgICBwcml2aWxlZ2Ugb24gdGhlIG5ldyBzY2hlbWEuCisgICBUbyBh bHRlciB0aGUgb3duZXIsIHlvdSBtdXN0IGJlIGFibGUgdG8gPGxpdGVyYWw+U0VUIFJPTEU8L2xp dGVyYWw+IHRvIHRoZQorICAgbmV3IG93bmluZyByb2xlLCBhbmQgdGhhdCByb2xlIG11c3QgaGF2 ZSA8bGl0ZXJhbD5DUkVBVEU8L2xpdGVyYWw+CisgICBwcml2aWxlZ2Ugb24gdGhlIFhNTCBzY2hl bWEncyBzY2hlbWEuCisgICAoVGhlc2UgcmVzdHJpY3Rpb25zIGVuZm9yY2UgdGhhdCBhbHRlcmlu ZyB0aGUgb3duZXIKKyAgIGRvZXNuJ3QgZG8gYW55dGhpbmcgeW91IGNvdWxkbid0IGRvIGJ5IGRy b3BwaW5nIGFuZCByZWNyZWF0aW5nIHRoZSBYTUwgc2NoZW1hLgorICAgSG93ZXZlciwgYSBzdXBl cnVzZXIgY2FuIGFsdGVyIG93bmVyc2hpcCBvZiBhbnkgWE1MIHNjaGVtYSBhbnl3YXkuKQorICA8 L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8 L3RpdGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJt PjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+ CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lIChvcHRpb25hbGx5 IHNjaGVtYS1xdWFsaWZpZWQpIG9mIGFuIFhNTCBzY2hlbWEgdG8gYmUgYWx0ZXJlZC4KKyAgICAg PC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxp c3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5JRiBFWElTVFM8L2xpdGVyYWw+PC90ZXJtPgor ICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBEbyBub3QgdGhyb3cgYW4gZXJyb3Ig aWYgdGhlIFhNTCBzY2hlbWEgZG9lcyBub3QgZXhpc3QuIEEgbm90aWNlIGlzIGlzc3VlZAorICAg ICAgaW4gdGhpcyBjYXNlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFy bGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5uZXdfb3duZXI8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlz dGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIHVzZXIgbmFtZSBvZiB0aGUgbmV3IG93bmVy IG9mIHRoZSBYTUwgc2NoZW1hLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwv dmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxs aXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmV3IG5hbWUgb2YgdGhlIFhNTCBzY2hl bWEuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisK KyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5ld19zY2hlbWE8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAg IDxwYXJhPgorICAgICAgVGhlIG5ldyBzY2hlbWEgZm9yIHRoZSBYTUwgc2NoZW1hLgorICAgICA8 L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorICA8L3ZhcmlhYmxl bGlzdD4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3Rp dGxlPgorCisgIDxwYXJhPgorICAgVG8gcmVuYW1lIGFuIFhNTCBzY2hlbWE6Cis8cHJvZ3JhbWxp c3Rpbmc+CitBTFRFUiBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYSBSRU5BTUUgVE8gcGVvcGxlX3Nj aGVtYTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRvIGNo YW5nZSB0aGUgb3duZXIgb2YgYW4gWE1MIHNjaGVtYToKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVS IFhNTFNDSEVNQSBwZW9wbGVfc2NoZW1hIE9XTkVSIFRPIGpvZTsKKzwvcHJvZ3JhbWxpc3Rpbmc+ CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRvIG1vdmUgYW4gWE1MIHNjaGVtYSB0byBhbm90 aGVyIHNjaGVtYToKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIFhNTFNDSEVNQSBwZW9wbGVfc2No ZW1hIFNFVCBTQ0hFTUEgbXlzY2hlbWE7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+Cisg PC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxl PgorCisgIDxwYXJhPgorICAgPGNvbW1hbmQ+QUxURVIgWE1MU0NIRU1BPC9jb21tYW5kPiBpcyBh CisgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGV4dGVuc2lvbi4KKyAg PC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwv dGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYg bGlua2VuZD0ic3FsLWNyZWF0ZXhtbHNjaGVtYSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtZHJvcHhtbHNjaGVtYSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+ CisgPC9yZWZzZWN0MT4KKworPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3htbHNjaGVtYS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfeG1sc2No ZW1hLnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJhZDM4ZGYz NDY4Ci0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfeG1sc2NoZW1h LnNnbWwKQEAgLTAsMCArMSwxODQgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ht bHNjaGVtYS5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkg aWQ9InNxbC1jcmVhdGV4bWxzY2hlbWEiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWNyZWF0ZXht bHNjaGVtYSI+CisgIDxwcmltYXJ5PkNSRUFURSBYTUxTQ0hFTUE8L3ByaW1hcnk+CisgPC9pbmRl eHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+Q1JFQVRFIFhNTFNDSEVNQTwv cmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5m bz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisK KyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+Q1JFQVRFIFhNTFNDSEVNQTwvcmVmbmFtZT4KKyAg PHJlZnB1cnBvc2U+ZGVmaW5lIGEgbmV3IFhNTCBzY2hlbWE8L3JlZnB1cnBvc2U+CisgPC9yZWZu YW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5bm9wc2lzPgorQ1JFQVRFIFhNTFNDSEVN QSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwv cmVwbGFjZWFibGU+IEFTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfZGVm aW5pdGlvbjwvcmVwbGFjZWFibGU+Cis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisK KyA8cmVmc2VjdDE+CisgIDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+Cisg ICA8Y29tbWFuZD5DUkVBVEUgWE1MU0NIRU1BPC9jb21tYW5kPiBkZWZpbmVzIGEgbmV3IFhNTCBz Y2hlbWEgaW4gdGhlCisgICBjdXJyZW50IGRhdGFiYXNlLiBUaGUgc2NoZW1hIGRlZmluaXRpb24g aXMgYW4gWE1MIFNjaGVtYSBEZWZpbml0aW9uIChYU0QpCisgICBkb2N1bWVudCB0aGF0IGNhbiBi ZSB1c2VkIHRvIHZhbGlkYXRlIFhNTCBkb2N1bWVudHMgdXNpbmcgdGhlCisgICA8ZnVuY3Rpb24+ WE1MVkFMSURBVEU8L2Z1bmN0aW9uPiBmdW5jdGlvbi4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgor ICAgSWYgYSBzY2hlbWEgbmFtZSBpcyBnaXZlbiB0aGVuIHRoZSBYTUwgc2NoZW1hIGlzIGNyZWF0 ZWQgaW4gdGhlCisgICBzcGVjaWZpZWQgc2NoZW1hLiBPdGhlcndpc2UgaXQgaXMgY3JlYXRlZCBp biB0aGUgY3VycmVudCBzY2hlbWEuCisgICBUaGUgWE1MIHNjaGVtYSBuYW1lIG11c3QgYmUgdW5p cXVlIHdpdGhpbiB0aGUgc2NoZW1hLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBBZnRlciBh biBYTUwgc2NoZW1hIGlzIGNyZWF0ZWQsIHlvdSB1c2UgdGhlCisgICA8ZnVuY3Rpb24+WE1MVkFM SURBVEU8L2Z1bmN0aW9uPiBmdW5jdGlvbiB0byB2YWxpZGF0ZSBYTUwgZG9jdW1lbnRzCisgICBh Z2FpbnN0IGl0LiBUaGlzIGZ1bmN0aW9uIGlzIGRvY3VtZW50ZWQgaW4KKyAgIDx4cmVmIGxpbmtl bmQ9ImZ1bmN0aW9ucy14bWwtcHJvY2Vzc2luZy14bWx2YWxpZGF0ZSIvPi4KKyAgPC9wYXJhPgor IDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4K KworICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJh bD5JRiBOT1QgRVhJU1RTPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxw YXJhPgorICAgICAgRG8gbm90IHRocm93IGFuIGVycm9yIGlmIGFuIFhNTCBzY2hlbWEgd2l0aCB0 aGUgc2FtZSBuYW1lIGFscmVhZHkgZXhpc3RzLgorICAgICAgQSBub3RpY2UgaXMgaXNzdWVkIGlu IHRoaXMgY2FzZS4gTm90ZSB0aGF0IHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0CisgICAgICB0 aGUgZXhpc3RpbmcgWE1MIHNjaGVtYSBpcyBzaW1pbGFyIHRvIHRoZSBvbmUgdGhhdCB3b3VsZCBo YXZlIGJlZW4gY3JlYXRlZC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zh cmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRl bT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmFtZSAob3B0aW9uYWxseSBzY2hlbWEtcXVhbGlm aWVkKSBvZiB0aGUgWE1MIHNjaGVtYSB0byBiZSBjcmVhdGVkLgorICAgICA8L3BhcmE+CisgICAg PC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAg IDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfZGVmaW5pdGlvbjwv cmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBB biBYTUwgU2NoZW1hIERlZmluaXRpb24gKFhTRCkgZG9jdW1lbnQgcHJvdmlkZWQgYXMgYSBzdHJp bmcgbGl0ZXJhbC4KKyAgICAgIFRoZSBzY2hlbWEgZGVmaW5pdGlvbiBtdXN0IGJlIGEgdmFsaWQg WFNEIGRvY3VtZW50IGNvbmZvcm1pbmcgdG8gdGhlCisgICAgICBXM0MgWE1MIFNjaGVtYSBzdGFu ZGFyZC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4K KyAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxl Pk5vdGVzPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRvIGNyZWF0ZSBhbiBYTUwgc2NoZW1hLCB5 b3UgbXVzdCBoYXZlIDxsaXRlcmFsPkNSRUFURTwvbGl0ZXJhbD4gcHJpdmlsZWdlCisgICBvbiB0 aGUgY3VycmVudCBzY2hlbWEuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFVzZSA8bGluayBs aW5rZW5kPSJzcWwtZHJvcHhtbHNjaGVtYSI+PGNvbW1hbmQ+RFJPUCBYTUxTQ0hFTUE8L2NvbW1h bmQ+PC9saW5rPiB0byByZW1vdmUgYW4gWE1MIHNjaGVtYS4KKyAgPC9wYXJhPgorCisgIDxwYXJh PgorICAgU2VlIGFsc28gPGxpbmsgbGlua2VuZD0ic3FsLWFsdGVyeG1sc2NoZW1hIj48Y29tbWFu ZD5BTFRFUiBYTUxTQ0hFTUE8L2NvbW1hbmQ+PC9saW5rPgorICAgdG8gcmVuYW1lIGFuIFhNTCBz Y2hlbWEgb3IgY2hhbmdlIGl0cyBvd25lci4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8 cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBDcmVh dGUgYW4gWE1MIHNjaGVtYSBmb3IgdmFsaWRhdGluZyBwZXJzb24gZG9jdW1lbnRzOgorPHByb2dy YW1saXN0aW5nPgorQ1JFQVRFIFhNTFNDSEVNQSBwZXJzb25fc2NoZW1hIEFTICcmbHQ7P3htbCB2 ZXJzaW9uPSIxLjAiPyZndDsKKyZsdDt4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMu b3JnLzIwMDEvWE1MU2NoZW1hIiZndDsKKyAgJmx0O3hzOmVsZW1lbnQgbmFtZT0icGVyc29uIiZn dDsKKyAgICAmbHQ7eHM6Y29tcGxleFR5cGUmZ3Q7CisgICAgICAmbHQ7eHM6c2VxdWVuY2UmZ3Q7 CisgICAgICAgICZsdDt4czplbGVtZW50IG5hbWU9Im5hbWUiIHR5cGU9InhzOnN0cmluZyIvJmd0 OworICAgICAgICAmbHQ7eHM6ZWxlbWVudCBuYW1lPSJhZ2UiIHR5cGU9InhzOmludGVnZXIiLyZn dDsKKyAgICAgICZsdDsveHM6c2VxdWVuY2UmZ3Q7CisgICAgJmx0Oy94czpjb21wbGV4VHlwZSZn dDsKKyAgJmx0Oy94czplbGVtZW50Jmd0OworJmx0Oy94czpzY2hlbWEmZ3Q7JzsKKzwvcHJvZ3Jh bWxpc3Rpbmc+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIENyZWF0ZSBhbiBYTUwgc2NoZW1h IHdpdGggYSBzY2hlbWEtcXVhbGlmaWVkIG5hbWU6Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUg U0NIRU1BIG15c2NoZW1hOworQ1JFQVRFIFhNTFNDSEVNQSBteXNjaGVtYS5wcm9kdWN0X3NjaGVt YSBBUyAnJmx0Oz94bWwgdmVyc2lvbj0iMS4wIj8mZ3Q7CismbHQ7eHM6c2NoZW1hIHhtbG5zOnhz PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSImZ3Q7CisgICZsdDt4czplbGVtZW50 IG5hbWU9InByb2R1Y3QiJmd0OworICAgICZsdDt4czpjb21wbGV4VHlwZSZndDsKKyAgICAgICZs dDt4czpzZXF1ZW5jZSZndDsKKyAgICAgICAgJmx0O3hzOmVsZW1lbnQgbmFtZT0ibmFtZSIgdHlw ZT0ieHM6c3RyaW5nIi8mZ3Q7CisgICAgICAgICZsdDt4czplbGVtZW50IG5hbWU9InByaWNlIiB0 eXBlPSJ4czpkZWNpbWFsIi8mZ3Q7CisgICAgICAmbHQ7L3hzOnNlcXVlbmNlJmd0OworICAgICAg Jmx0O3hzOmF0dHJpYnV0ZSBuYW1lPSJpZCIgdHlwZT0ieHM6c3RyaW5nIiB1c2U9InJlcXVpcmVk Ii8mZ3Q7CisgICAgJmx0Oy94czpjb21wbGV4VHlwZSZndDsKKyAgJmx0Oy94czplbGVtZW50Jmd0 OworJmx0Oy94czpzY2hlbWEmZ3Q7JzsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKwor ICA8cGFyYT4KKyAgIENyZWF0ZSBhbiBYTUwgc2NoZW1hIG9ubHkgaWYgaXQgZG9lc24ndCBhbHJl YWR5IGV4aXN0OgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFhNTFNDSEVNQSBJRiBOT1QgRVhJ U1RTIHBlcnNvbl9zY2hlbWEgQVMgJy4uLic7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+ CisKKyAgPHBhcmE+CisgICBWYWxpZGF0ZSBhbiBYTUwgZG9jdW1lbnQgYWdhaW5zdCB0aGUgc2No ZW1hOgorPHByb2dyYW1saXN0aW5nPgorU0VMRUNUIFhNTFZBTElEQVRFKAorICBET0NVTUVOVCAn Jmx0O3BlcnNvbiZndDsmbHQ7bmFtZSZndDtKb2huJmx0Oy9uYW1lJmd0OyZsdDthZ2UmZ3Q7MzAm bHQ7L2FnZSZndDsmbHQ7L3BlcnNvbiZndDsnCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgcGVy c29uX3NjaGVtYQorKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKyA8L3JlZnNlY3Qx PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBh cmE+CisgICA8Y29tbWFuZD5DUkVBVEUgWE1MU0NIRU1BPC9jb21tYW5kPiBpcyBhCisgICA8cHJv ZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGV4dGVuc2lvbi4gVGhlcmUgaXMgbm8K KyAgIDxjb21tYW5kPkNSRUFURSBYTUxTQ0hFTUE8L2NvbW1hbmQ+IHN0YXRlbWVudCBpbiB0aGUg U1FMIHN0YW5kYXJkLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAg PHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgor ICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ4bWxzY2hlbWEiLz48L21lbWJlcj4K KyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B4bWxzY2hlbWEiLz48L21lbWJlcj4K KyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0iZnVuY3Rpb25zLXhtbC1wcm9jZXNzaW5nLXhtbHZh bGlkYXRlIi8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCis8L3Jl ZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3htbHNjaGVtYS5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3htbHNjaGVtYS5zZ21sCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40MjA0ZjliYzQxMwotLS0gL2Rldi9udWxsCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvZHJvcF94bWxzY2hlbWEuc2dtbApAQCAtMCwwICsxLDEyMCBAQAorPCEt LQorZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3htbHNjaGVtYS5zZ21sCitQb3N0Z3JlU1FMIGRvY3Vt ZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1kcm9weG1sc2NoZW1hIj4KKyA8aW5k ZXh0ZXJtIHpvbmU9InNxbC1kcm9weG1sc2NoZW1hIj4KKyAgPHByaW1hcnk+RFJPUCBYTUxTQ0hF TUE8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0 bGU+RFJPUCBYTUxTQ0hFTUE8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9s bnVtPgorICA8cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2lu Zm8+CisgPC9yZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkRST1AgWE1MU0NI RU1BPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5yZW1vdmUgYW4gWE1MIHNjaGVtYTwvcmVmcHVy cG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitE Uk9QIFhNTFNDSEVNQSBbIElGIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBbIENBU0NBREUgfCBSRVNUUklDVCBdCis8L3N5 bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5EZXNj cmlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5EUk9QIFhNTFNDSEVNQTwv Y29tbWFuZD4gcmVtb3ZlcyBYTUwgc2NoZW1hcyBmcm9tIHRoZSBkYXRhYmFzZS4KKyAgIEFuIFhN TCBzY2hlbWEgY2FuIG9ubHkgYmUgZHJvcHBlZCBieSBpdHMgb3duZXIgb3IgYSBzdXBlcnVzZXIu CisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1l dGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+CisgICAg PHRlcm0+PGxpdGVyYWw+SUYgRVhJU1RTPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgRG8gbm90IHRocm93IGFuIGVycm9yIGlmIHRoZSBYTUwgc2No ZW1hIGRvZXMgbm90IGV4aXN0LiBBIG5vdGljZSBpcyBpc3N1ZWQKKyAgICAgIGluIHRoaXMgY2Fz ZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwor ICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICBUaGUgbmFtZSAob3B0aW9uYWxseSBzY2hlbWEtcXVhbGlmaWVkKSBvZiBhbiBYTUwg c2NoZW1hLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5 PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPkNBU0NBREU8L2xpdGVy YWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBBdXRvbWF0aWNh bGx5IGRyb3Agb2JqZWN0cyB0aGF0IGRlcGVuZCBvbiB0aGUgWE1MIHNjaGVtYSwKKyAgICAgIGFu ZCBpbiB0dXJuIGFsbCBvYmplY3RzIHRoYXQgZGVwZW5kIG9uIHRob3NlIG9iamVjdHMKKyAgICAg IChzZWUgPHhyZWYgbGlua2VuZD0iZGRsLWRlcGVuZCIvPikuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAg PHRlcm0+PGxpdGVyYWw+UkVTVFJJQ1Q8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4K KyAgICAgPHBhcmE+CisgICAgICBSZWZ1c2UgdG8gZHJvcCB0aGUgWE1MIHNjaGVtYSBpZiBhbnkg b2JqZWN0cyBkZXBlbmQgb24gaXQuICBUaGlzCisgICAgICBpcyB0aGUgZGVmYXVsdC4KKyAgICAg PC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKyAgPC92YXJpYWJs ZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90 aXRsZT4KKworICA8cGFyYT4KKyAgIFRvIHJlbW92ZSB0aGUgWE1MIHNjaGVtYSA8bGl0ZXJhbD5w ZXJzb25fc2NoZW1hPC9saXRlcmFsPjoKKzxwcm9ncmFtbGlzdGluZz4KK0RST1AgWE1MU0NIRU1B IHBlcnNvbl9zY2hlbWE7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKKyAgPHBhcmE+ CisgICBUbyByZW1vdmUgYW4gWE1MIHNjaGVtYSBhbmQgYWxsIGRlcGVuZGVudCBvYmplY3RzOgor PHByb2dyYW1saXN0aW5nPgorRFJPUCBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYSBDQVNDQURFOwor PC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+ CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5k PkRST1AgWE1MU0NIRU1BPC9jb21tYW5kPiBpcyBhCisgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNR TDwvcHJvZHVjdG5hbWU+IGV4dGVuc2lvbi4gVGhlcmUgaXMgbm8KKyAgIDxjb21tYW5kPkRST1Ag WE1MU0NIRU1BPC9jb21tYW5kPiBzdGF0ZW1lbnQgaW4gdGhlIFNRTCBzdGFuZGFyZC4KKyAgPC9w YXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0 bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlu a2VuZD0ic3FsLWNyZWF0ZXhtbHNjaGVtYSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBs aW5rZW5kPSJzcWwtYWx0ZXJ4bWxzY2hlbWEiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0Pgor IDwvcmVmc2VjdDE+CisKKzwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVm ZXJlbmNlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKaW5kZXggMmNmMDJjMzdi MTcuLjk4MmJiZWEzYTI3IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCkBAIC03Niw2ICs3Niw3IEBACiAgICAm YWx0ZXJVc2VyOwogICAgJmFsdGVyVXNlck1hcHBpbmc7CiAgICAmYWx0ZXJWaWV3OworICAgJmFs dGVyWG1sU2NoZW1hOwogICAgJmFuYWx5emU7CiAgICAmYmVnaW47CiAgICAmY2FsbDsKQEAgLTEy OCw2ICsxMjksNyBAQAogICAgJmNyZWF0ZVVzZXI7CiAgICAmY3JlYXRlVXNlck1hcHBpbmc7CiAg ICAmY3JlYXRlVmlldzsKKyAgICZjcmVhdGVYbWxTY2hlbWE7CiAgICAmZGVhbGxvY2F0ZTsKICAg ICZkZWNsYXJlOwogICAgJmRlbGV0ZTsKQEAgLTE3Niw2ICsxNzgsNyBAQAogICAgJmRyb3BVc2Vy OwogICAgJmRyb3BVc2VyTWFwcGluZzsKICAgICZkcm9wVmlldzsKKyAgICZkcm9wWG1sU2NoZW1h OwogICAgJmVuZDsKICAgICZleGVjdXRlOwogICAgJmV4cGxhaW47CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvb2lkam9pbnMub3V0CmluZGV4IDIxNWViODk5YmUzLi41NDRiM2VmMzFlZCAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQKQEAgLTIzOSw2ICsyMzksOCBAQCBOT1RJ Q0U6ICBjaGVja2luZyBwZ19zZWNsYWJlbCB7Y2xhc3NvaWR9ID0+IHBnX2NsYXNzIHtvaWR9CiBO T1RJQ0U6ICBjaGVja2luZyBwZ19zaHNlY2xhYmVsIHtjbGFzc29pZH0gPT4gcGdfY2xhc3Mge29p ZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX2NvbGxhdGlvbiB7Y29sbG5hbWVzcGFjZX0gPT4gcGdf bmFtZXNwYWNlIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19jb2xsYXRpb24ge2NvbGxvd25l cn0gPT4gcGdfYXV0aGlkIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ194bWxzY2hlbWEge3Nj aGVtYW5hbWVzcGFjZX0gPT4gcGdfbmFtZXNwYWNlIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBw Z194bWxzY2hlbWEge3NjaGVtYW93bmVyfSA9PiBwZ19hdXRoaWQge29pZH0KIE5PVElDRTogIGNo ZWNraW5nIHBnX3BhcnRpdGlvbmVkX3RhYmxlIHtwYXJ0cmVsaWR9ID0+IHBnX2NsYXNzIHtvaWR9 CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19wYXJ0aXRpb25lZF90YWJsZSB7cGFydGRlZmlkfSA9PiBw Z19jbGFzcyB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfcGFydGl0aW9uZWRfdGFibGUge3Bh cnRjbGFzc30gPT4gcGdfb3BjbGFzcyB7b2lkfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC94bWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC94bWwub3V0Cmlu ZGV4IDEwM2EyMmEzYjFkLi4zYWFiZDk3ZDYxYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC94bWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQveG1sLm91 dApAQCAtMSwxODgzICsxLDIxODAgQEAKLUNSRUFURSBUQUJMRSB4bWx0ZXN0ICgKLSAgICBpZCBp bnQsCi0gICAgZGF0YSB4bWwKLSk7Ci1JTlNFUlQgSU5UTyB4bWx0ZXN0IFZBTFVFUyAoMSwgJzx2 YWx1ZT5vbmU8L3ZhbHVlPicpOwotSU5TRVJUIElOVE8geG1sdGVzdCBWQUxVRVMgKDIsICc8dmFs dWU+dHdvPC92YWx1ZT4nKTsKLUlOU0VSVCBJTlRPIHhtbHRlc3QgVkFMVUVTICgzLCAnPHdyb25n Jyk7Ci1FUlJPUjogIGludmFsaWQgWE1MIGNvbnRlbnQKLUxJTkUgMTogSU5TRVJUIElOVE8geG1s dGVzdCBWQUxVRVMgKDMsICc8d3JvbmcnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KLURFVEFJTDogIGxpbmUgMTogQ291bGRuJ3QgZmluZCBlbmQgb2YgU3RhcnQg VGFnIHdyb25nIGxpbmUgMQotPHdyb25nCi0gICAgICBeCi1TRUxFQ1QgKiBGUk9NIHhtbHRlc3Q7 Ci0gaWQgfCAgICAgICAgZGF0YSAgICAgICAgCi0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCi0g IDEgfCA8dmFsdWU+b25lPC92YWx1ZT4KLSAgMiB8IDx2YWx1ZT50d288L3ZhbHVlPgotKDIgcm93 cykKLQotLS0gdGVzdCBub24tdGhyb3dpbmcgQVBJLCB0b28KLVNFTEVDVCBwZ19pbnB1dF9pc192 YWxpZCgnPHZhbHVlPm9uZTwvdmFsdWU+JywgJ3htbCcpOwotIHBnX2lucHV0X2lzX3ZhbGlkIAot LS0tLS0tLS0tLS0tLS0tLS0tLQotIHQKLSgxIHJvdykKLQotU0VMRUNUIHBnX2lucHV0X2lzX3Zh bGlkKCc8dmFsdWU+b25lPC8nLCAneG1sJyk7Ci0gcGdfaW5wdXRfaXNfdmFsaWQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tCi0gZgotKDEgcm93KQotCi1TRUxFQ1QgbWVzc2FnZSBGUk9NIHBnX2lucHV0 X2Vycm9yX2luZm8oJzx2YWx1ZT5vbmU8LycsICd4bWwnKTsKLSAgICAgICBtZXNzYWdlICAgICAg IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gaW52YWxpZCBYTUwgY29udGVudAotKDEgcm93KQot Ci1TRUxFQ1QgcGdfaW5wdXRfaXNfdmFsaWQoJzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9u ZT0ieSI/Pjxmb28vPicsICd4bWwnKTsKLSBwZ19pbnB1dF9pc192YWxpZCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSBmCi0oMSByb3cpCi0KLVNFTEVDVCBtZXNzYWdlIEZST00gcGdfaW5wdXRfZXJy b3JfaW5mbygnPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJ5Ij8+PGZvby8+JywgJ3ht bCcpOwotICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgICAgICAgICAgICAgICAgICAgIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIGludmFsaWQgWE1M IGNvbnRlbnQ6IGludmFsaWQgWE1MIGRlY2xhcmF0aW9uCi0oMSByb3cpCi0KLVNFTEVDVCB4bWxj b21tZW50KCd0ZXN0Jyk7Ci0geG1sY29tbWVudCAgCi0tLS0tLS0tLS0tLS0tCi0gPCEtLXRlc3Qt LT4KLSgxIHJvdykKLQotU0VMRUNUIHhtbGNvbW1lbnQoJy10ZXN0Jyk7Ci0gIHhtbGNvbW1lbnQg IAotLS0tLS0tLS0tLS0tLS0KLSA8IS0tLXRlc3QtLT4KLSgxIHJvdykKLQotU0VMRUNUIHhtbGNv bW1lbnQoJ3Rlc3QtJyk7Ci1FUlJPUjogIGludmFsaWQgWE1MIGNvbW1lbnQKLVNFTEVDVCB4bWxj b21tZW50KCctLXRlc3QnKTsKLUVSUk9SOiAgaW52YWxpZCBYTUwgY29tbWVudAotU0VMRUNUIHht bGNvbW1lbnQoJ3RlIHN0Jyk7Ci0gIHhtbGNvbW1lbnQgIAotLS0tLS0tLS0tLS0tLS0KLSA8IS0t dGUgc3QtLT4KLSgxIHJvdykKLQotU0VMRUNUIHhtbGNvbmNhdCh4bWxjb21tZW50KCdoZWxsbycp LAotICAgICAgICAgICAgICAgICB4bWxlbGVtZW50KE5BTUUgcXV4LCAnZm9vJyksCi0gICAgICAg ICAgICAgICAgIHhtbGNvbW1lbnQoJ3dvcmxkJykpOwotICAgICAgICAgICAgICAgeG1sY29uY2F0 ICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotIDwhLS1oZWxsby0tPjxxdXg+Zm9vPC9xdXg+PCEtLXdvcmxkLS0+Ci0oMSByb3cpCi0KLVNF TEVDVCB4bWxjb25jYXQoJ2hlbGxvJywgJ3lvdScpOwotIHhtbGNvbmNhdCAKLS0tLS0tLS0tLS0t Ci0gaGVsbG95b3UKLSgxIHJvdykKLQotU0VMRUNUIHhtbGNvbmNhdCgxLCAyKTsKLUVSUk9SOiAg YXJndW1lbnQgb2YgWE1MQ09OQ0FUIG11c3QgYmUgdHlwZSB4bWwsIG5vdCB0eXBlIGludGVnZXIK LUxJTkUgMTogU0VMRUNUIHhtbGNvbmNhdCgxLCAyKTsKLSAgICAgICAgICAgICAgICAgICAgICAg ICBeCi1TRUxFQ1QgeG1sY29uY2F0KCdiYWQnLCAnPHN5bnRheCcpOwotRVJST1I6ICBpbnZhbGlk IFhNTCBjb250ZW50Ci1MSU5FIDE6IFNFTEVDVCB4bWxjb25jYXQoJ2JhZCcsICc8c3ludGF4Jyk7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KLURFVEFJTDogIGxpbmUgMTogQ291 bGRuJ3QgZmluZCBlbmQgb2YgU3RhcnQgVGFnIHN5bnRheCBsaW5lIDEKLTxzeW50YXgKLSAgICAg ICBeCi1TRUxFQ1QgeG1sY29uY2F0KCc8Zm9vLz4nLCBOVUxMLCAnPD94bWwgdmVyc2lvbj0iMS4x IiBzdGFuZGFsb25lPSJubyI/PjxiYXIvPicpOwotICB4bWxjb25jYXQgICAKLS0tLS0tLS0tLS0t LS0tCi0gPGZvby8+PGJhci8+Ci0oMSByb3cpCi0KLVNFTEVDVCB4bWxjb25jYXQoJzw/eG1sIHZl cnNpb249IjEuMSI/Pjxmb28vPicsIE5VTEwsICc8P3htbCB2ZXJzaW9uPSIxLjEiIHN0YW5kYWxv bmU9Im5vIj8+PGJhci8+Jyk7Ci0gICAgICAgICAgICAgeG1sY29uY2F0ICAgICAgICAgICAgIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSA8P3htbCB2ZXJzaW9uPSIxLjEi Pz48Zm9vLz48YmFyLz4KLSgxIHJvdykKLQotU0VMRUNUIHhtbGNvbmNhdChOVUxMKTsKLSB4bWxj b25jYXQgCi0tLS0tLS0tLS0tLQotIAotKDEgcm93KQotCi1TRUxFQ1QgeG1sY29uY2F0KE5VTEws IE5VTEwpOwotIHhtbGNvbmNhdCAKLS0tLS0tLS0tLS0tCi0gCi0oMSByb3cpCi0KLVNFTEVDVCB4 bWxlbGVtZW50KG5hbWUgZWxlbWVudCwKLSAgICAgICAgICAgICAgICAgIHhtbGF0dHJpYnV0ZXMg KDEgYXMgb25lLCAnZGV1Y2UnIGFzIHR3byksCi0gICAgICAgICAgICAgICAgICAnY29udGVudCcp OwotICAgICAgICAgICAgICAgICAgIHhtbGVsZW1lbnQgICAgICAgICAgICAgICAgICAgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSA8ZWxlbWVudCBv bmU9IjEiIHR3bz0iZGV1Y2UiPmNvbnRlbnQ8L2VsZW1lbnQ+Ci0oMSByb3cpCi0KLVNFTEVDVCB4 bWxlbGVtZW50KG5hbWUgZWxlbWVudCwKLSAgICAgICAgICAgICAgICAgIHhtbGF0dHJpYnV0ZXMg KCd1bm5hbWVkIGFuZCB3cm9uZycpKTsKLUVSUk9SOiAgdW5uYW1lZCBYTUwgYXR0cmlidXRlIHZh bHVlIG11c3QgYmUgYSBjb2x1bW4gcmVmZXJlbmNlCi1MSU5FIDI6ICAgICAgICAgICAgICAgICAg IHhtbGF0dHJpYnV0ZXMgKCd1bm5hbWVkIGFuZCB3cm9uZycpKTsKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgotU0VMRUNUIHhtbGVsZW1lbnQobmFtZSBlbGVtZW50 LCB4bWxlbGVtZW50KG5hbWUgbmVzdGVkLCAnc3R1ZmYnKSk7Ci0gICAgICAgICAgICAgICAgeG1s ZWxlbWVudCAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0gPGVsZW1lbnQ+PG5lc3RlZD5zdHVmZjwvbmVzdGVkPjwvZWxlbWVudD4K LSgxIHJvdykKLQotU0VMRUNUIHhtbGVsZW1lbnQobmFtZSBlbXBsb3llZSwgeG1sZm9yZXN0KG5h bWUsIGFnZSwgc2FsYXJ5IGFzIHBheSkpIEZST00gZW1wOwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgeG1sZWxlbWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotIDxlbXBsb3llZT48bmFtZT5zaGFyb248L25hbWU+PGFnZT4yNTwvYWdlPjxwYXk+ MTAwMDwvcGF5PjwvZW1wbG95ZWU+Ci0gPGVtcGxveWVlPjxuYW1lPnNhbTwvbmFtZT48YWdlPjMw PC9hZ2U+PHBheT4yMDAwPC9wYXk+PC9lbXBsb3llZT4KLSA8ZW1wbG95ZWU+PG5hbWU+YmlsbDwv bmFtZT48YWdlPjIwPC9hZ2U+PHBheT4xMDAwPC9wYXk+PC9lbXBsb3llZT4KLSA8ZW1wbG95ZWU+ PG5hbWU+amVmZjwvbmFtZT48YWdlPjIzPC9hZ2U+PHBheT42MDA8L3BheT48L2VtcGxveWVlPgot IDxlbXBsb3llZT48bmFtZT5jaW08L25hbWU+PGFnZT4zMDwvYWdlPjxwYXk+NDAwPC9wYXk+PC9l bXBsb3llZT4KLSA8ZW1wbG95ZWU+PG5hbWU+bGluZGE8L25hbWU+PGFnZT4xOTwvYWdlPjxwYXk+ MTAwPC9wYXk+PC9lbXBsb3llZT4KLSg2IHJvd3MpCi0KLVNFTEVDVCB4bWxlbGVtZW50KG5hbWUg ZHVwbGljYXRlLCB4bWxhdHRyaWJ1dGVzKDEgYXMgYSwgMiBhcyBiLCAzIGFzIGEpKTsKLUVSUk9S OiAgWE1MIGF0dHJpYnV0ZSBuYW1lICJhIiBhcHBlYXJzIG1vcmUgdGhhbiBvbmNlCi1MSU5FIDE6 IC4uLm1lbnQobmFtZSBkdXBsaWNhdGUsIHhtbGF0dHJpYnV0ZXMoMSBhcyBhLCAyIGFzIGIsIDMg YXMgYSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCi1TRUxFQ1QgeG1sZWxlbWVudChuYW1lIG51bSwgMzcpOwotICB4bWxl bGVtZW50ICAgCi0tLS0tLS0tLS0tLS0tLS0KLSA8bnVtPjM3PC9udW0+Ci0oMSByb3cpCi0KLVNF TEVDVCB4bWxlbGVtZW50KG5hbWUgZm9vLCB0ZXh0ICdiYXInKTsKLSAgIHhtbGVsZW1lbnQgICAK LS0tLS0tLS0tLS0tLS0tLS0KLSA8Zm9vPmJhcjwvZm9vPgotKDEgcm93KQotCi1TRUxFQ1QgeG1s ZWxlbWVudChuYW1lIGZvbywgeG1sICdiYXInKTsKLSAgIHhtbGVsZW1lbnQgICAKLS0tLS0tLS0t LS0tLS0tLS0KLSA8Zm9vPmJhcjwvZm9vPgotKDEgcm93KQotCi1TRUxFQ1QgeG1sZWxlbWVudChu YW1lIGZvbywgdGV4dCAnYjxhLz5yJyk7Ci0gICAgICAgeG1sZWxlbWVudCAgICAgICAgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gPGZvbz5iJmx0O2EvJmd0O3I8L2Zvbz4KLSgxIHJvdykK LQotU0VMRUNUIHhtbGVsZW1lbnQobmFtZSBmb28sIHhtbCAnYjxhLz5yJyk7Ci0gICAgeG1sZWxl bWVudCAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gPGZvbz5iPGEvPnI8L2Zvbz4KLSgxIHJv dykKLQotU0VMRUNUIHhtbGVsZW1lbnQobmFtZSBmb28sIGFycmF5WzEsIDIsIDNdKTsKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxlbGVtZW50ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSA8Zm9vPjxlbGVtZW50PjE8L2VsZW1lbnQ+ PGVsZW1lbnQ+MjwvZWxlbWVudD48ZWxlbWVudD4zPC9lbGVtZW50PjwvZm9vPgotKDEgcm93KQot Ci1TRVQgeG1sYmluYXJ5IFRPIGJhc2U2NDsKLVNFTEVDVCB4bWxlbGVtZW50KG5hbWUgZm9vLCBi eXRlYSAnYmFyJyk7Ci0gICB4bWxlbGVtZW50ICAgIAotLS0tLS0tLS0tLS0tLS0tLS0KLSA8Zm9v PlltRnk8L2Zvbz4KLSgxIHJvdykKLQotU0VUIHhtbGJpbmFyeSBUTyBoZXg7Ci1TRUxFQ1QgeG1s ZWxlbWVudChuYW1lIGZvbywgYnl0ZWEgJ2JhcicpOwotICAgIHhtbGVsZW1lbnQgICAgIAotLS0t LS0tLS0tLS0tLS0tLS0tLQotIDxmb28+NjI2MTcyPC9mb28+Ci0oMSByb3cpCi0KLVNFTEVDVCB4 bWxlbGVtZW50KG5hbWUgZm9vLCB4bWxhdHRyaWJ1dGVzKHRydWUgYXMgYmFyKSk7Ci0gICAgeG1s ZWxlbWVudCAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gPGZvbyBiYXI9InRydWUiLz4KLSgx IHJvdykKLQotU0VMRUNUIHhtbGVsZW1lbnQobmFtZSBmb28sIHhtbGF0dHJpYnV0ZXMoJzIwMDkt MDQtMDkgMDA6MjQ6MzcnOjp0aW1lc3RhbXAgYXMgYmFyKSk7Ci0gICAgICAgICAgICB4bWxlbGVt ZW50ICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gPGZv byBiYXI9IjIwMDktMDQtMDlUMDA6MjQ6MzciLz4KLSgxIHJvdykKLQotU0VMRUNUIHhtbGVsZW1l bnQobmFtZSBmb28sIHhtbGF0dHJpYnV0ZXMoJ2luZmluaXR5Jzo6dGltZXN0YW1wIGFzIGJhcikp OwotRVJST1I6ICB0aW1lc3RhbXAgb3V0IG9mIHJhbmdlCi1ERVRBSUw6ICBYTUwgZG9lcyBub3Qg c3VwcG9ydCBpbmZpbml0ZSB0aW1lc3RhbXAgdmFsdWVzLgotU0VMRUNUIHhtbGVsZW1lbnQobmFt ZSBmb28sIHhtbGF0dHJpYnV0ZXMoJzw+JiInJycgYXMgZnVubnksIHhtbCAnYjxhLz5yJyBhcyBm dW5uaWVyKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgeG1sZWxlbWVudCAgICAgICAgICAg ICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotIDxmb28gZnVubnk9IiZsdDsmZ3Q7JmFtcDsmcXVvdDsnIiBm dW5uaWVyPSJiJmx0O2EvJmd0O3IiLz4KLSgxIHJvdykKLQotU0VMRUNUIHhtbHBhcnNlKGNvbnRl bnQgJycpOwotIHhtbHBhcnNlIAotLS0tLS0tLS0tLQotIAotKDEgcm93KQotCi1TRUxFQ1QgeG1s cGFyc2UoY29udGVudCAnICAnKTsKLSB4bWxwYXJzZSAKLS0tLS0tLS0tLS0KLSAgIAotKDEgcm93 KQotCi1TRUxFQ1QgeG1scGFyc2UoY29udGVudCAnYWJjJyk7Ci0geG1scGFyc2UgCi0tLS0tLS0t LS0tCi0gYWJjCi0oMSByb3cpCi0KLVNFTEVDVCB4bWxwYXJzZShjb250ZW50ICc8YWJjPng8L2Fi Yz4nKTsKLSAgIHhtbHBhcnNlICAgCi0tLS0tLS0tLS0tLS0tLQotIDxhYmM+eDwvYWJjPgotKDEg cm93KQotCi1TRUxFQ1QgeG1scGFyc2UoY29udGVudCAnPGludmFsaWRlbnRpdHk+JjwvaW52YWxp ZGVudGl0eT4nKTsKLUVSUk9SOiAgaW52YWxpZCBYTUwgY29udGVudAotREVUQUlMOiAgbGluZSAx OiB4bWxQYXJzZUVudGl0eVJlZjogbm8gbmFtZQotPGludmFsaWRlbnRpdHk+JjwvaW52YWxpZGVu dGl0eT4KLSAgICAgICAgICAgICAgICBeCi1TRUxFQ1QgeG1scGFyc2UoY29udGVudCAnPHVuZGVm aW5lZGVudGl0eT4maWRvbnRleGlzdDs8L3VuZGVmaW5lZGVudGl0eT4nKTsKLUVSUk9SOiAgaW52 YWxpZCBYTUwgY29udGVudAotREVUQUlMOiAgbGluZSAxOiBFbnRpdHkgJ2lkb250ZXhpc3QnIG5v dCBkZWZpbmVkCi08dW5kZWZpbmVkZW50aXR5PiZpZG9udGV4aXN0OzwvdW5kZWZpbmVkZW50aXR5 PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi1TRUxFQ1QgeG1scGFyc2UoY29udGVu dCAnPGludmFsaWRucyB4bWxucz0nJyZsdDsnJy8+Jyk7Ci0gICAgICAgICB4bWxwYXJzZSAgICAg ICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIDxpbnZhbGlkbnMgeG1sbnM9JyZs dDsnLz4KLSgxIHJvdykKLQotU0VMRUNUIHhtbHBhcnNlKGNvbnRlbnQgJzxyZWxhdGl2ZW5zIHht bG5zPScncmVsYXRpdmUnJy8+Jyk7Ci0gICAgICAgICAgICB4bWxwYXJzZSAgICAgICAgICAgIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSA8cmVsYXRpdmVucyB4bWxucz0ncmVs YXRpdmUnLz4KLSgxIHJvdykKLQotU0VMRUNUIHhtbHBhcnNlKGNvbnRlbnQgJzx0d29lcnJvcnM+ Jmlkb250ZXhpc3Q7PC91bmJhbGFuY2VkPicpOwotRVJST1I6ICBpbnZhbGlkIFhNTCBjb250ZW50 Ci1ERVRBSUw6ICBsaW5lIDE6IEVudGl0eSAnaWRvbnRleGlzdCcgbm90IGRlZmluZWQKLTx0d29l cnJvcnM+Jmlkb250ZXhpc3Q7PC91bmJhbGFuY2VkPgotICAgICAgICAgICAgICAgICAgICAgICBe Ci1saW5lIDE6IE9wZW5pbmcgYW5kIGVuZGluZyB0YWcgbWlzbWF0Y2g6IHR3b2Vycm9ycyBsaW5l IDEgYW5kIHVuYmFsYW5jZWQKLTx0d29lcnJvcnM+Jmlkb250ZXhpc3Q7PC91bmJhbGFuY2VkPgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgotU0VMRUNUIHhtbHBhcnNlKGNv bnRlbnQgJzxub3N1Y2hwcmVmaXg6dGFnLz4nKTsKLSAgICAgIHhtbHBhcnNlICAgICAgIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tCi0gPG5vc3VjaHByZWZpeDp0YWcvPgotKDEgcm93KQotCi1TRUxF Q1QgeG1scGFyc2UoZG9jdW1lbnQgJyAgICcpOwotRVJST1I6ICBpbnZhbGlkIFhNTCBkb2N1bWVu dAotREVUQUlMOiAgbGluZSAxOiBTdGFydCB0YWcgZXhwZWN0ZWQsICc8JyBub3QgZm91bmQKLSAg IAotICAgXgotU0VMRUNUIHhtbHBhcnNlKGRvY3VtZW50ICdhYmMnKTsKLUVSUk9SOiAgaW52YWxp ZCBYTUwgZG9jdW1lbnQKLURFVEFJTDogIGxpbmUgMTogU3RhcnQgdGFnIGV4cGVjdGVkLCAnPCcg bm90IGZvdW5kCi1hYmMKLV4KLVNFTEVDVCB4bWxwYXJzZShkb2N1bWVudCAnPGFiYz54PC9hYmM+ Jyk7Ci0gICB4bWxwYXJzZSAgIAotLS0tLS0tLS0tLS0tLS0KLSA8YWJjPng8L2FiYz4KLSgxIHJv dykKLQotU0VMRUNUIHhtbHBhcnNlKGRvY3VtZW50ICc8aW52YWxpZGVudGl0eT4mPC9hYmM+Jyk7 Ci1FUlJPUjogIGludmFsaWQgWE1MIGRvY3VtZW50Ci1ERVRBSUw6ICBsaW5lIDE6IHhtbFBhcnNl RW50aXR5UmVmOiBubyBuYW1lCi08aW52YWxpZGVudGl0eT4mPC9hYmM+Ci0gICAgICAgICAgICAg ICAgXgotbGluZSAxOiBPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiBpbnZhbGlkZW50 aXR5IGxpbmUgMSBhbmQgYWJjCi08aW52YWxpZGVudGl0eT4mPC9hYmM+Ci0gICAgICAgICAgICAg ICAgICAgICAgXgotU0VMRUNUIHhtbHBhcnNlKGRvY3VtZW50ICc8dW5kZWZpbmVkZW50aXR5PiZp ZG9udGV4aXN0OzwvYWJjPicpOwotRVJST1I6ICBpbnZhbGlkIFhNTCBkb2N1bWVudAotREVUQUlM OiAgbGluZSAxOiBFbnRpdHkgJ2lkb250ZXhpc3QnIG5vdCBkZWZpbmVkCi08dW5kZWZpbmVkZW50 aXR5PiZpZG9udGV4aXN0OzwvYWJjPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi1s aW5lIDE6IE9wZW5pbmcgYW5kIGVuZGluZyB0YWcgbWlzbWF0Y2g6IHVuZGVmaW5lZGVudGl0eSBs aW5lIDEgYW5kIGFiYwotPHVuZGVmaW5lZGVudGl0eT4maWRvbnRleGlzdDs8L2FiYz4KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgotU0VMRUNUIHhtbHBhcnNlKGRvY3VtZW50 ICc8aW52YWxpZG5zIHhtbG5zPScnJmx0OycnLz4nKTsKLSAgICAgICAgIHhtbHBhcnNlICAgICAg ICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gPGludmFsaWRucyB4bWxucz0nJmx0 OycvPgotKDEgcm93KQotCi1TRUxFQ1QgeG1scGFyc2UoZG9jdW1lbnQgJzxyZWxhdGl2ZW5zIHht bG5zPScncmVsYXRpdmUnJy8+Jyk7Ci0gICAgICAgICAgICB4bWxwYXJzZSAgICAgICAgICAgIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSA8cmVsYXRpdmVucyB4bWxucz0ncmVs YXRpdmUnLz4KLSgxIHJvdykKLQotU0VMRUNUIHhtbHBhcnNlKGRvY3VtZW50ICc8dHdvZXJyb3Jz PiZpZG9udGV4aXN0OzwvdW5iYWxhbmNlZD4nKTsKLUVSUk9SOiAgaW52YWxpZCBYTUwgZG9jdW1l bnQKLURFVEFJTDogIGxpbmUgMTogRW50aXR5ICdpZG9udGV4aXN0JyBub3QgZGVmaW5lZAotPHR3 b2Vycm9ycz4maWRvbnRleGlzdDs8L3VuYmFsYW5jZWQ+Ci0gICAgICAgICAgICAgICAgICAgICAg IF4KLWxpbmUgMTogT3BlbmluZyBhbmQgZW5kaW5nIHRhZyBtaXNtYXRjaDogdHdvZXJyb3JzIGxp bmUgMSBhbmQgdW5iYWxhbmNlZAotPHR3b2Vycm9ycz4maWRvbnRleGlzdDs8L3VuYmFsYW5jZWQ+ Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi1TRUxFQ1QgeG1scGFyc2Uo ZG9jdW1lbnQgJzxub3N1Y2hwcmVmaXg6dGFnLz4nKTsKLSAgICAgIHhtbHBhcnNlICAgICAgIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gPG5vc3VjaHByZWZpeDp0YWcvPgotKDEgcm93KQotCi1T RUxFQ1QgeG1scGkobmFtZSBmb28pOwotICB4bWxwaSAgCi0tLS0tLS0tLS0KLSA8P2Zvbz8+Ci0o MSByb3cpCi0KLVNFTEVDVCB4bWxwaShuYW1lIHhtbCk7Ci1FUlJPUjogIGludmFsaWQgWE1MIHBy b2Nlc3NpbmcgaW5zdHJ1Y3Rpb24KLURFVEFJTDogIFhNTCBwcm9jZXNzaW5nIGluc3RydWN0aW9u IHRhcmdldCBuYW1lIGNhbm5vdCBiZSAieG1sIi4KLVNFTEVDVCB4bWxwaShuYW1lIHhtbHN0dWZm KTsKLSAgICB4bWxwaSAgICAgCi0tLS0tLS0tLS0tLS0tLQotIDw/eG1sc3R1ZmY/PgotKDEgcm93 KQotCi1TRUxFQ1QgeG1scGkobmFtZSBmb28sICdiYXInKTsKLSAgICB4bWxwaSAgICAKLS0tLS0t LS0tLS0tLS0KLSA8P2ZvbyBiYXI/PgotKDEgcm93KQotCi1TRUxFQ1QgeG1scGkobmFtZSBmb28s ICdpbj8+dmFsaWQnKTsKLUVSUk9SOiAgaW52YWxpZCBYTUwgcHJvY2Vzc2luZyBpbnN0cnVjdGlv bgotREVUQUlMOiAgWE1MIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gY2Fubm90IGNvbnRhaW4gIj8+ Ii4KLVNFTEVDVCB4bWxwaShuYW1lIGZvbywgbnVsbCk7Ci0geG1scGkgCi0tLS0tLS0tCi0gCi0o MSByb3cpCi0KLVNFTEVDVCB4bWxwaShuYW1lIHhtbCwgbnVsbCk7Ci1FUlJPUjogIGludmFsaWQg WE1MIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24KLURFVEFJTDogIFhNTCBwcm9jZXNzaW5nIGluc3Ry dWN0aW9uIHRhcmdldCBuYW1lIGNhbm5vdCBiZSAieG1sIi4KLVNFTEVDVCB4bWxwaShuYW1lIHht bHN0dWZmLCBudWxsKTsKLSB4bWxwaSAKLS0tLS0tLS0KLSAKLSgxIHJvdykKLQotU0VMRUNUIHht bHBpKG5hbWUgInhtbC1zdHlsZXNoZWV0IiwgJ2hyZWY9Im15c3R5bGUuY3NzIiB0eXBlPSJ0ZXh0 L2NzcyInKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICB4bWxwaSAgICAgICAgICAgICAgICAg ICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSA8P3htbC1zdHlsZXNoZWV0IGhyZWY9Im15c3R5bGUuY3NzIiB0eXBlPSJ0ZXh0 L2NzcyI/PgotKDEgcm93KQotCi1TRUxFQ1QgeG1scGkobmFtZSBmb28sICcgICBiYXInKTsKLSAg ICB4bWxwaSAgICAKLS0tLS0tLS0tLS0tLS0KLSA8P2ZvbyBiYXI/PgotKDEgcm93KQotCi1TRUxF Q1QgeG1scm9vdCh4bWwgJzxmb28vPicsIHZlcnNpb24gbm8gdmFsdWUsIHN0YW5kYWxvbmUgbm8g dmFsdWUpOwotIHhtbHJvb3QgCi0tLS0tLS0tLS0KLSA8Zm9vLz4KLSgxIHJvdykKLQotU0VMRUNU IHhtbHJvb3QoeG1sICc8Zm9vLz4nLCB2ZXJzaW9uICcyLjAnKTsKLSAgICAgICAgICAgeG1scm9v dCAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIDw/eG1sIHZlcnNp b249IjIuMCI/Pjxmb28vPgotKDEgcm93KQotCi1TRUxFQ1QgeG1scm9vdCh4bWwgJzxmb28vPics IHZlcnNpb24gbm8gdmFsdWUsIHN0YW5kYWxvbmUgeWVzKTsKLSAgICAgICAgICAgICAgICAgICB4 bWxyb290ICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLSA8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9InllcyI/ Pjxmb28vPgotKDEgcm93KQotCi1TRUxFQ1QgeG1scm9vdCh4bWwgJzw/eG1sIHZlcnNpb249IjEu MSI/Pjxmb28vPicsIHZlcnNpb24gbm8gdmFsdWUsIHN0YW5kYWxvbmUgeWVzKTsKLSAgICAgICAg ICAgICAgICAgICB4bWxyb290ICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSA8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5k YWxvbmU9InllcyI/Pjxmb28vPgotKDEgcm93KQotCi1TRUxFQ1QgeG1scm9vdCh4bWxyb290KHht bCAnPGZvby8+JywgdmVyc2lvbiAnMS4wJyksIHZlcnNpb24gJzEuMScsIHN0YW5kYWxvbmUgbm8p OwotICAgICAgICAgICAgICAgICAgIHhtbHJvb3QgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSA8P3htbCB2ZXJzaW9uPSIx LjEiIHN0YW5kYWxvbmU9Im5vIj8+PGZvby8+Ci0oMSByb3cpCi0KLVNFTEVDVCB4bWxyb290KCc8 P3htbCB2ZXJzaW9uPSIxLjEiIHN0YW5kYWxvbmU9InllcyI/Pjxmb28vPicsIHZlcnNpb24gbm8g dmFsdWUsIHN0YW5kYWxvbmUgbm8pOwotICAgICAgICAgICAgICAgICAgIHhtbHJvb3QgICAgICAg ICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSA8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+PGZvby8+Ci0oMSByb3cp Ci0KLVNFTEVDVCB4bWxyb290KCc8P3htbCB2ZXJzaW9uPSIxLjEiIHN0YW5kYWxvbmU9InllcyI/ Pjxmb28vPicsIHZlcnNpb24gbm8gdmFsdWUsIHN0YW5kYWxvbmUgbm8gdmFsdWUpOwotIHhtbHJv b3QgCi0tLS0tLS0tLS0KLSA8Zm9vLz4KLSgxIHJvdykKLQotU0VMRUNUIHhtbHJvb3QoJzw/eG1s IHZlcnNpb249IjEuMSIgc3RhbmRhbG9uZT0ieWVzIj8+PGZvby8+JywgdmVyc2lvbiBubyB2YWx1 ZSk7Ci0gICAgICAgICAgICAgICAgICAgeG1scm9vdCAgICAgICAgICAgICAgICAgICAgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gPD94bWwgdmVyc2lv bj0iMS4wIiBzdGFuZGFsb25lPSJ5ZXMiPz48Zm9vLz4KLSgxIHJvdykKLQotU0VMRUNUIHhtbHJv b3QgKAotICB4bWxlbGVtZW50ICgKLSAgICBuYW1lIGdhem9uaywKLSAgICB4bWxhdHRyaWJ1dGVz ICgKLSAgICAgICd2YWwnIEFTIG5hbWUsCi0gICAgICAxICsgMSBBUyBudW0KLSAgICApLAotICAg IHhtbGVsZW1lbnQgKAotICAgICAgTkFNRSBxdXgsCi0gICAgICAnZm9vJwotICAgICkKLSAgKSwK LSAgdmVyc2lvbiAnMS4wJywKLSAgc3RhbmRhbG9uZSB5ZXMKLSk7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHhtbHJvb3QgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIDw/ eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ieWVzIj8+PGdhem9uayBuYW1lPSJ2YWwiIG51 bT0iMiI+PHF1eD5mb288L3F1eD48L2dhem9uaz4KLSgxIHJvdykKLQotU0VMRUNUIHhtbHNlcmlh bGl6ZShjb250ZW50IGRhdGEgYXMgY2hhcmFjdGVyIHZhcnlpbmcoMjApKSBGUk9NIHhtbHRlc3Q7 Ci0gICAgeG1sc2VyaWFsaXplICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSA8dmFsdWU+b25l PC92YWx1ZT4KLSA8dmFsdWU+dHdvPC92YWx1ZT4KLSgyIHJvd3MpCi0KLVNFTEVDVCB4bWxzZXJp YWxpemUoY29udGVudCAnZ29vZCcgYXMgY2hhcigxMCkpOwotIHhtbHNlcmlhbGl6ZSAKLS0tLS0t LS0tLS0tLS0tCi0gZ29vZCAgICAgIAotKDEgcm93KQotCi1TRUxFQ1QgeG1sc2VyaWFsaXplKGRv Y3VtZW50ICdiYWQnIGFzIHRleHQpOwotRVJST1I6ICBub3QgYW4gWE1MIGRvY3VtZW50Ci0tLSBp bmRlbnQKLVNFTEVDVCB4bWxzZXJpYWxpemUoRE9DVU1FTlQgJzxmb28+PGJhcj48dmFsIHg9Inki PjQyPC92YWw+PC9iYXI+PC9mb28+JyBBUyB0ZXh0IElOREVOVCk7Ci0gICAgICB4bWxzZXJpYWxp emUgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gPGZvbz4gICAgICAgICAgICAg ICAgICArCi0gICA8YmFyPiAgICAgICAgICAgICAgICArCi0gICAgIDx2YWwgeD0ieSI+NDI8L3Zh bD4rCi0gICA8L2Jhcj4gICAgICAgICAgICAgICArCi0gPC9mb28+Ci0oMSByb3cpCi0KLVNFTEVD VCB4bWxzZXJpYWxpemUoQ09OVEVOVCAgJzxmb28+PGJhcj48dmFsIHg9InkiPjQyPC92YWw+PC9i YXI+PC9mb28+JyBBUyB0ZXh0IElOREVOVCk7Ci0gICAgICB4bWxzZXJpYWxpemUgICAgICAgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gPGZvbz4gICAgICAgICAgICAgICAgICArCi0gICA8 YmFyPiAgICAgICAgICAgICAgICArCi0gICAgIDx2YWwgeD0ieSI+NDI8L3ZhbD4rCi0gICA8L2Jh cj4gICAgICAgICAgICAgICArCi0gPC9mb28+Ci0oMSByb3cpCi0KLS0tIG5vIGluZGVudAotU0VM RUNUIHhtbHNlcmlhbGl6ZShET0NVTUVOVCAnPGZvbz48YmFyPjx2YWwgeD0ieSI+NDI8L3ZhbD48 L2Jhcj48L2Zvbz4nIEFTIHRleHQgTk8gSU5ERU5UKTsKLSAgICAgICAgICAgICAgIHhtbHNlcmlh bGl6ZSAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSA8Zm9vPjxiYXI+PHZhbCB4PSJ5Ij40MjwvdmFsPjwvYmFyPjwvZm9vPgotKDEg cm93KQotCi1TRUxFQ1QgeG1sc2VyaWFsaXplKENPTlRFTlQgICc8Zm9vPjxiYXI+PHZhbCB4PSJ5 Ij40MjwvdmFsPjwvYmFyPjwvZm9vPicgQVMgdGV4dCBOTyBJTkRFTlQpOwotICAgICAgICAgICAg ICAgeG1sc2VyaWFsaXplICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotIDxmb28+PGJhcj48dmFsIHg9InkiPjQyPC92YWw+PC9iYXI+ PC9mb28+Ci0oMSByb3cpCi0KLS0tIGluZGVudCBub24gc2luZ2x5LXJvb3RlZCB4bWwKLVNFTEVD VCB4bWxzZXJpYWxpemUoRE9DVU1FTlQgJzxmb28+NzM8L2Zvbz48YmFyPjx2YWwgeD0ieSI+NDI8 L3ZhbD48L2Jhcj4nIEFTIHRleHQgSU5ERU5UKTsKLUVSUk9SOiAgbm90IGFuIFhNTCBkb2N1bWVu dAotU0VMRUNUIHhtbHNlcmlhbGl6ZShDT05URU5UICAnPGZvbz43MzwvZm9vPjxiYXI+PHZhbCB4 PSJ5Ij40MjwvdmFsPjwvYmFyPicgQVMgdGV4dCBJTkRFTlQpOwotICAgICB4bWxzZXJpYWxpemUg ICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gPGZvbz43MzwvZm9vPiAgICAgICAgKwot IDxiYXI+ICAgICAgICAgICAgICAgICsKLSAgIDx2YWwgeD0ieSI+NDI8L3ZhbD4rCi0gPC9iYXI+ Ci0oMSByb3cpCi0KLS0tIGluZGVudCBub24gc2luZ2x5LXJvb3RlZCB4bWwgd2l0aCBtaXhlZCBj b250ZW50cwotU0VMRUNUIHhtbHNlcmlhbGl6ZShET0NVTUVOVCAndGV4dCBub2RlPGZvbz43Mzwv Zm9vPnRleHQgbm9kZTxiYXI+PHZhbCB4PSJ5Ij40MjwvdmFsPjwvYmFyPicgQVMgdGV4dCBJTkRF TlQpOwotRVJST1I6ICBub3QgYW4gWE1MIGRvY3VtZW50Ci1TRUxFQ1QgeG1sc2VyaWFsaXplKENP TlRFTlQgICd0ZXh0IG5vZGU8Zm9vPjczPC9mb28+dGV4dCBub2RlPGJhcj48dmFsIHg9InkiPjQy PC92YWw+PC9iYXI+JyBBUyB0ZXh0IElOREVOVCk7Ci0gICAgICB4bWxzZXJpYWxpemUgICAgICAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIHRleHQgbm9kZSAgICAgICAgICAgICArCi0gPGZv bz43MzwvZm9vPnRleHQgbm9kZSsKLSA8YmFyPiAgICAgICAgICAgICAgICAgKwotICAgPHZhbCB4 PSJ5Ij40MjwvdmFsPiArCi0gPC9iYXI+Ci0oMSByb3cpCi0KLS0tIGluZGVudCBzaW5nbHktcm9v dGVkIHhtbCB3aXRoIG1peGVkIGNvbnRlbnRzCi1TRUxFQ1QgeG1sc2VyaWFsaXplKERPQ1VNRU5U ICc8Zm9vPjxiYXI+PHZhbCB4PSJ5Ij40MjwvdmFsPjx2YWwgeD0ieSI+dGV4dCBub2RlPHZhbD43 MzwvdmFsPjwvdmFsPjwvYmFyPjwvZm9vPicgQVMgdGV4dCBJTkRFTlQpOwotICAgICAgICAgICAg ICAgIHhtbHNlcmlhbGl6ZSAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSA8Zm9vPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKwotICAgPGJhcj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCi0gICAgIDx2YWwgeD0ieSI+NDI8L3ZhbD4gICAgICAgICAgICAgICAgICAgICsKLSAgICAg PHZhbCB4PSJ5Ij50ZXh0IG5vZGU8dmFsPjczPC92YWw+PC92YWw+KwotICAgPC9iYXI+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gPC9mb28+Ci0oMSByb3cpCi0KLVNFTEVD VCB4bWxzZXJpYWxpemUoQ09OVEVOVCAgJzxmb28+PGJhcj48dmFsIHg9InkiPjQyPC92YWw+PHZh bCB4PSJ5Ij50ZXh0IG5vZGU8dmFsPjczPC92YWw+PC92YWw+PC9iYXI+PC9mb28+JyBBUyB0ZXh0 IElOREVOVCk7Ci0gICAgICAgICAgICAgICAgeG1sc2VyaWFsaXplICAgICAgICAgICAgICAgICAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIDxmb28+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICA8YmFyPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgPHZhbCB4PSJ5Ij40MjwvdmFsPiAgICAg ICAgICAgICAgICAgICAgKwotICAgICA8dmFsIHg9InkiPnRleHQgbm9kZTx2YWw+NzM8L3ZhbD48 L3ZhbD4rCi0gICA8L2Jhcj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSA8 L2Zvbz4KLSgxIHJvdykKLQotLS0gaW5kZW50IGVtcHR5IHN0cmluZwotU0VMRUNUIHhtbHNlcmlh bGl6ZShET0NVTUVOVCAnJyBBUyB0ZXh0IElOREVOVCk7Ci1FUlJPUjogIG5vdCBhbiBYTUwgZG9j dW1lbnQKLVNFTEVDVCB4bWxzZXJpYWxpemUoQ09OVEVOVCAgJycgQVMgdGV4dCBJTkRFTlQpOwot IHhtbHNlcmlhbGl6ZSAKLS0tLS0tLS0tLS0tLS0tCi0gCi0oMSByb3cpCi0KLS0tIHdoaXRlc3Bh Y2VzCi1TRUxFQ1QgeG1sc2VyaWFsaXplKERPQ1VNRU5UICcgICcgQVMgdGV4dCBJTkRFTlQpOwot RVJST1I6ICBub3QgYW4gWE1MIGRvY3VtZW50Ci1TRUxFQ1QgeG1sc2VyaWFsaXplKENPTlRFTlQg ICcgICcgQVMgdGV4dCBJTkRFTlQpOwotIHhtbHNlcmlhbGl6ZSAKLS0tLS0tLS0tLS0tLS0tCi0g ICAKLSgxIHJvdykKLQotLS0gaW5kZW50IG51bGwKLVNFTEVDVCB4bWxzZXJpYWxpemUoRE9DVU1F TlQgTlVMTCBBUyB0ZXh0IElOREVOVCk7Ci0geG1sc2VyaWFsaXplIAotLS0tLS0tLS0tLS0tLS0K LSAKLSgxIHJvdykKLQotU0VMRUNUIHhtbHNlcmlhbGl6ZShDT05URU5UICBOVUxMIEFTIHRleHQg SU5ERU5UKTsKLSB4bWxzZXJpYWxpemUgCi0tLS0tLS0tLS0tLS0tLQotIAotKDEgcm93KQotCi0t LSBpbmRlbnQgd2l0aCBYTUwgZGVjbGFyYXRpb24KLVNFTEVDVCB4bWxzZXJpYWxpemUoRE9DVU1F TlQgJzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+PGZvbz48YmFyPjx2YWw+ NzM8L3ZhbD48L2Jhcj48L2Zvbz4nIEFTIHRleHQgSU5ERU5UKTsKLSAgICAgICAgICAgICAgeG1s c2VyaWFsaXplICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PisKLSA8Zm9v PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgIDxiYXI+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKLSAgICAgPHZhbD43MzwvdmFsPiAgICAgICAgICAgICAgICAg ICAgICsKLSAgIDwvYmFyPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSA8L2Zvbz4K LSgxIHJvdykKLQotU0VMRUNUIHhtbHNlcmlhbGl6ZShDT05URU5UICAnPD94bWwgdmVyc2lvbj0i MS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Zm9vPjxiYXI+PHZhbD43MzwvdmFsPjwvYmFyPjwvZm9v PicgQVMgdGV4dCBJTkRFTlQpOwotICAgeG1sc2VyaWFsaXplICAgIAotLS0tLS0tLS0tLS0tLS0t LS0tLQotIDxmb28+ICAgICAgICAgICAgKwotICAgPGJhcj4gICAgICAgICAgKwotICAgICA8dmFs PjczPC92YWw+KwotICAgPC9iYXI+ICAgICAgICAgKwotIDwvZm9vPgotKDEgcm93KQotCi0tLSBp bmRlbnQgY29udGFpbmluZyBET0NUWVBFIGRlY2xhcmF0aW9uCi1TRUxFQ1QgeG1sc2VyaWFsaXpl KERPQ1VNRU5UICc8IURPQ1RZUEUgYT48YS8+JyBBUyB0ZXh0IElOREVOVCk7Ci0geG1sc2VyaWFs aXplIAotLS0tLS0tLS0tLS0tLS0KLSA8IURPQ1RZUEUgYT4rCi0gPGEvPgotKDEgcm93KQotCi1T RUxFQ1QgeG1sc2VyaWFsaXplKENPTlRFTlQgICc8IURPQ1RZUEUgYT48YS8+JyBBUyB0ZXh0IElO REVOVCk7Ci0geG1sc2VyaWFsaXplIAotLS0tLS0tLS0tLS0tLS0KLSA8IURPQ1RZUEUgYT4rCi0g PGEvPiAgICAgICAgKwotIAotKDEgcm93KQotCi0tLSBpbmRlbnQgeG1sIHdpdGggZW1wdHkgZWxl bWVudAotU0VMRUNUIHhtbHNlcmlhbGl6ZShET0NVTUVOVCAnPGZvbz48YmFyPjwvYmFyPjwvZm9v PicgQVMgdGV4dCBJTkRFTlQpOwotIHhtbHNlcmlhbGl6ZSAKLS0tLS0tLS0tLS0tLS0tCi0gPGZv bz4gICAgICAgKwotICAgPGJhci8+ICAgICsKLSA8L2Zvbz4KLSgxIHJvdykKLQotU0VMRUNUIHht bHNlcmlhbGl6ZShDT05URU5UICAnPGZvbz48YmFyPjwvYmFyPjwvZm9vPicgQVMgdGV4dCBJTkRF TlQpOwotIHhtbHNlcmlhbGl6ZSAKLS0tLS0tLS0tLS0tLS0tCi0gPGZvbz4gICAgICAgKwotICAg PGJhci8+ICAgICsKLSA8L2Zvbz4KLSgxIHJvdykKLQotLS0gJ25vIGluZGVudCcgPSBub3QgdXNp bmcgJ25vIGluZGVudCcKLVNFTEVDVCB4bWxzZXJpYWxpemUoRE9DVU1FTlQgJzxmb28+PGJhcj48 dmFsIHg9InkiPjQyPC92YWw+PC9iYXI+PC9mb28+JyBBUyB0ZXh0KSA9IHhtbHNlcmlhbGl6ZShE T0NVTUVOVCAnPGZvbz48YmFyPjx2YWwgeD0ieSI+NDI8L3ZhbD48L2Jhcj48L2Zvbz4nIEFTIHRl eHQgTk8gSU5ERU5UKTsKLSA/Y29sdW1uPyAKLS0tLS0tLS0tLS0KLSB0Ci0oMSByb3cpCi0KLVNF TEVDVCB4bWxzZXJpYWxpemUoQ09OVEVOVCAgJzxmb28+PGJhcj48dmFsIHg9InkiPjQyPC92YWw+ PC9iYXI+PC9mb28+JyBBUyB0ZXh0KSA9IHhtbHNlcmlhbGl6ZShDT05URU5UICc8Zm9vPjxiYXI+ PHZhbCB4PSJ5Ij40MjwvdmFsPjwvYmFyPjwvZm9vPicgQVMgdGV4dCBOTyBJTkRFTlQpOwotID9j b2x1bW4/IAotLS0tLS0tLS0tLQotIHQKLSgxIHJvdykKLQotLS0gaW5kZW50IHhtbCBzdHJpbmdz IGNvbnRhaW5pbmcgYmxhbmsgbm9kZXMKLVNFTEVDVCB4bWxzZXJpYWxpemUoRE9DVU1FTlQgJzxm b28+ICAgPGJhcj48L2Jhcj4gICAgPC9mb28+JyBBUyB0ZXh0IElOREVOVCk7Ci0geG1sc2VyaWFs aXplIAotLS0tLS0tLS0tLS0tLS0KLSA8Zm9vPiAgICAgICArCi0gICA8YmFyLz4gICAgKwotIDwv Zm9vPgotKDEgcm93KQotCi1TRUxFQ1QgeG1sc2VyaWFsaXplKENPTlRFTlQgICd0ZXh0IG5vZGU8 Zm9vPiAgICA8YmFyPjwvYmFyPiAgIDwvZm9vPicgQVMgdGV4dCBJTkRFTlQpOwotIHhtbHNlcmlh bGl6ZSAKLS0tLS0tLS0tLS0tLS0tCi0gdGV4dCBub2RlICAgKwotIDxmb28+ICAgICAgICsKLSAg IDxiYXIvPiAgICArCi0gPC9mb28+Ci0oMSByb3cpCi0KLVNFTEVDVCB4bWwgJzxmb28+YmFyPC9m b28+JyBJUyBET0NVTUVOVDsKLSA/Y29sdW1uPyAKLS0tLS0tLS0tLS0KLSB0Ci0oMSByb3cpCi0K LVNFTEVDVCB4bWwgJzxmb28+YmFyPC9mb28+PGJhcj5mb288L2Jhcj4nIElTIERPQ1VNRU5UOwot ID9jb2x1bW4/IAotLS0tLS0tLS0tLQotIGYKLSgxIHJvdykKLQotU0VMRUNUIHhtbCAnPGFiYy8+ JyBJUyBOT1QgRE9DVU1FTlQ7Ci0gP2NvbHVtbj8gCi0tLS0tLS0tLS0tCi0gZgotKDEgcm93KQot Ci1TRUxFQ1QgeG1sICdhYmMnIElTIE5PVCBET0NVTUVOVDsKLSA/Y29sdW1uPyAKLS0tLS0tLS0t LS0KLSB0Ci0oMSByb3cpCi0KLVNFTEVDVCAnPD4nIElTIE5PVCBET0NVTUVOVDsKLUVSUk9SOiAg aW52YWxpZCBYTUwgY29udGVudAotTElORSAxOiBTRUxFQ1QgJzw+JyBJUyBOT1QgRE9DVU1FTlQ7 Ci0gICAgICAgICAgICAgICBeCi1ERVRBSUw6ICBsaW5lIDE6IFN0YXJ0VGFnOiBpbnZhbGlkIGVs ZW1lbnQgbmFtZQotPD4KLSBeCi1TRUxFQ1QgeG1sYWdnKGRhdGEpIEZST00geG1sdGVzdDsKLSAg ICAgICAgICAgICAgICB4bWxhZ2cgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotIDx2YWx1ZT5vbmU8L3ZhbHVlPjx2YWx1ZT50d288L3ZhbHVl PgotKDEgcm93KQotCi1TRUxFQ1QgeG1sYWdnKGRhdGEpIEZST00geG1sdGVzdCBXSEVSRSBpZCA+ IDEwOwotIHhtbGFnZyAKLS0tLS0tLS0tCi0gCi0oMSByb3cpCi0KLVNFTEVDVCB4bWxlbGVtZW50 KG5hbWUgZW1wbG95ZWVzLCB4bWxhZ2coeG1sZWxlbWVudChuYW1lIG5hbWUsIG5hbWUpKSkgRlJP TSBlbXA7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHhtbGVsZW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSA8ZW1wbG95ZWVzPjxuYW1l PnNoYXJvbjwvbmFtZT48bmFtZT5zYW08L25hbWU+PG5hbWU+YmlsbDwvbmFtZT48bmFtZT5qZWZm PC9uYW1lPjxuYW1lPmNpbTwvbmFtZT48bmFtZT5saW5kYTwvbmFtZT48L2VtcGxveWVlcz4KLSgx IHJvdykKLQotLS0gQ2hlY2sgbWFwcGluZyBTUUwgaWRlbnRpZmllciB0byBYTUwgbmFtZQotU0VM RUNUIHhtbHBpKG5hbWUgIjo6Ol94bWxfYWJjMTM1LiUtJl8iKTsKLSAgICAgICAgICAgICAgICAg ICAgICB4bWxwaSAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSA8P194MDAzQV86Ol94MDA1Rl94bWxfYWJjMTM1 Ll94MDAyNV8tX3gwMDI2X18/PgotKDEgcm93KQotCi1TRUxFQ1QgeG1scGkobmFtZSAiMTIzIik7 Ci0gICAgIHhtbHBpICAgICAKLS0tLS0tLS0tLS0tLS0tLQotIDw/X3gwMDMxXzIzPz4KLSgxIHJv dykKLQotUFJFUEFSRSBmb28gKHhtbCkgQVMgU0VMRUNUIHhtbGNvbmNhdCgnPGZvby8+JywgJDEp OwotU0VUIFhNTCBPUFRJT04gRE9DVU1FTlQ7Ci1FWEVDVVRFIGZvbyAoJzxiYXIvPicpOwotICB4 bWxjb25jYXQgICAKLS0tLS0tLS0tLS0tLS0tCi0gPGZvby8+PGJhci8+Ci0oMSByb3cpCi0KLUVY RUNVVEUgZm9vICgnYmFkJyk7Ci1FUlJPUjogIGludmFsaWQgWE1MIGRvY3VtZW50Ci1MSU5FIDE6 IEVYRUNVVEUgZm9vICgnYmFkJyk7Ci0gICAgICAgICAgICAgICAgICAgICBeCi1ERVRBSUw6ICBs aW5lIDE6IFN0YXJ0IHRhZyBleHBlY3RlZCwgJzwnIG5vdCBmb3VuZAotYmFkCi1eCi1TRUxFQ1Qg eG1sICc8IURPQ1RZUEUgYT48YS8+PGIvPic7Ci1FUlJPUjogIGludmFsaWQgWE1MIGRvY3VtZW50 Ci1MSU5FIDE6IFNFTEVDVCB4bWwgJzwhRE9DVFlQRSBhPjxhLz48Yi8+JzsKLSAgICAgICAgICAg ICAgICAgICBeCi1ERVRBSUw6ICBsaW5lIDE6IEV4dHJhIGNvbnRlbnQgYXQgdGhlIGVuZCBvZiB0 aGUgZG9jdW1lbnQKLTwhRE9DVFlQRSBhPjxhLz48Yi8+Ci0gICAgICAgICAgICAgICAgXgotU0VU IFhNTCBPUFRJT04gQ09OVEVOVDsKLUVYRUNVVEUgZm9vICgnPGJhci8+Jyk7Ci0gIHhtbGNvbmNh dCAgIAotLS0tLS0tLS0tLS0tLS0KLSA8Zm9vLz48YmFyLz4KLSgxIHJvdykKLQotRVhFQ1VURSBm b28gKCdnb29kJyk7Ci0geG1sY29uY2F0ICAKLS0tLS0tLS0tLS0tLQotIDxmb28vPmdvb2QKLSgx IHJvdykKLQotU0VMRUNUIHhtbCAnPCEtLSBpbiBTUUw6MjAwNisgYSBkb2MgaXMgY29udGVudCB0 b28tLT4gPD95IHo/PiA8IURPQ1RZUEUgYT48YS8+JzsKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgeG1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotIDwhLS0gaW4gU1FMOjIwMDYrIGEgZG9jIGlzIGNvbnRlbnQgdG9vLS0+IDw/eSB6Pz4gPCFE T0NUWVBFIGE+PGEvPgotKDEgcm93KQotCi1TRUxFQ1QgeG1sICc8P3htbCB2ZXJzaW9uPSIxLjAi Pz4gPCEtLSBoaS0tPiA8IURPQ1RZUEUgYT48YS8+JzsKLSAgICAgICAgICAgICB4bWwgICAgICAg ICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gIDwhLS0gaGktLT4gPCFE T0NUWVBFIGE+PGEvPgotKDEgcm93KQotCi1TRUxFQ1QgeG1sICc8IURPQ1RZUEUgYT48YS8+JzsK LSAgICAgICB4bWwgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tCi0gPCFET0NUWVBFIGE+PGEv PgotKDEgcm93KQotCi1TRUxFQ1QgeG1sICc8IS0tIGhpLS0+IG9vcHMgPCFET0NUWVBFIGE+PGEv Pic7Ci1FUlJPUjogIGludmFsaWQgWE1MIGNvbnRlbnQKLUxJTkUgMTogU0VMRUNUIHhtbCAnPCEt LSBoaS0tPiBvb3BzIDwhRE9DVFlQRSBhPjxhLz4nOwotICAgICAgICAgICAgICAgICAgIF4KLURF VEFJTDogIGxpbmUgMTogU3RhcnRUYWc6IGludmFsaWQgZWxlbWVudCBuYW1lCi08IS0tIGhpLS0+ IG9vcHMgPCFET0NUWVBFIGE+PGEvPgotICAgICAgICAgICAgICAgICBeCi1TRUxFQ1QgeG1sICc8 IS0tIGhpLS0+IDxvb3BzLz4gPCFET0NUWVBFIGE+PGEvPic7Ci1FUlJPUjogIGludmFsaWQgWE1M IGNvbnRlbnQKLUxJTkUgMTogU0VMRUNUIHhtbCAnPCEtLSBoaS0tPiA8b29wcy8+IDwhRE9DVFlQ RSBhPjxhLz4nOwotICAgICAgICAgICAgICAgICAgIF4KLURFVEFJTDogIGxpbmUgMTogU3RhcnRU YWc6IGludmFsaWQgZWxlbWVudCBuYW1lCi08IS0tIGhpLS0+IDxvb3BzLz4gPCFET0NUWVBFIGE+ PGEvPgotICAgICAgICAgICAgICAgICAgICBeCi1TRUxFQ1QgeG1sICc8IURPQ1RZUEUgYT48YS8+ PGIvPic7Ci1FUlJPUjogIGludmFsaWQgWE1MIGNvbnRlbnQKLUxJTkUgMTogU0VMRUNUIHhtbCAn PCFET0NUWVBFIGE+PGEvPjxiLz4nOwotICAgICAgICAgICAgICAgICAgIF4KLURFVEFJTDogIGxp bmUgMTogRXh0cmEgY29udGVudCBhdCB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudAotPCFET0NUWVBF IGE+PGEvPjxiLz4KLSAgICAgICAgICAgICAgICBeCi0tLSBUZXN0IGJhY2t3YXJkcyBwYXJzaW5n Ci1DUkVBVEUgVklFVyB4bWx2aWV3MSBBUyBTRUxFQ1QgeG1sY29tbWVudCgndGVzdCcpOwotQ1JF QVRFIFZJRVcgeG1sdmlldzIgQVMgU0VMRUNUIHhtbGNvbmNhdCgnaGVsbG8nLCAneW91Jyk7Ci1D UkVBVEUgVklFVyB4bWx2aWV3MyBBUyBTRUxFQ1QgeG1sZWxlbWVudChuYW1lIGVsZW1lbnQsIHht bGF0dHJpYnV0ZXMgKDEgYXMgIjpvbmU6IiwgJ2RldWNlJyBhcyB0d28pLCAnY29udGVudCYnKTsK LUNSRUFURSBWSUVXIHhtbHZpZXc0IEFTIFNFTEVDVCB4bWxlbGVtZW50KG5hbWUgZW1wbG95ZWUs IHhtbGZvcmVzdChuYW1lLCBhZ2UsIHNhbGFyeSBhcyBwYXkpKSBGUk9NIGVtcDsKLUNSRUFURSBW SUVXIHhtbHZpZXc1IEFTIFNFTEVDVCB4bWxwYXJzZShjb250ZW50ICc8YWJjPng8L2FiYz4nKTsK LUNSRUFURSBWSUVXIHhtbHZpZXc2IEFTIFNFTEVDVCB4bWxwaShuYW1lIGZvbywgJ2JhcicpOwot Q1JFQVRFIFZJRVcgeG1sdmlldzcgQVMgU0VMRUNUIHhtbHJvb3QoeG1sICc8Zm9vLz4nLCB2ZXJz aW9uIG5vIHZhbHVlLCBzdGFuZGFsb25lIHllcyk7Ci1DUkVBVEUgVklFVyB4bWx2aWV3OCBBUyBT RUxFQ1QgeG1sc2VyaWFsaXplKGNvbnRlbnQgJ2dvb2QnIGFzIGNoYXIoMTApKTsKLUNSRUFURSBW SUVXIHhtbHZpZXc5IEFTIFNFTEVDVCB4bWxzZXJpYWxpemUoY29udGVudCAnZ29vZCcgYXMgdGV4 dCk7Ci1DUkVBVEUgVklFVyB4bWx2aWV3MTAgQVMgU0VMRUNUIHhtbHNlcmlhbGl6ZShkb2N1bWVu dCAnPGZvbz48YmFyPjQyPC9iYXI+PC9mb28+JyBBUyB0ZXh0IGluZGVudCk7Ci1DUkVBVEUgVklF VyB4bWx2aWV3MTEgQVMgU0VMRUNUIHhtbHNlcmlhbGl6ZShkb2N1bWVudCAnPGZvbz48YmFyPjQy PC9iYXI+PC9mb28+JyBBUyBjaGFyYWN0ZXIgdmFyeWluZyBubyBpbmRlbnQpOwotU0VMRUNUIHRh YmxlX25hbWUsIHZpZXdfZGVmaW5pdGlvbiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS52aWV3cwot ICBXSEVSRSB0YWJsZV9uYW1lIExJS0UgJ3htbHZpZXclJyBPUkRFUiBCWSAxOwotIHRhYmxlX25h bWUgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHZpZXdfZGVmaW5pdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotIHhtbHZpZXcxICAgfCAgU0VMRUNUIHhtbGNvbW1lbnQoJ3Rlc3QnOjp0ZXh0KSBBUyB4 bWxjb21tZW50OwotIHhtbHZpZXcxMCAgfCAgU0VMRUNUIFhNTFNFUklBTElaRShET0NVTUVOVCAn PGZvbz48YmFyPjQyPC9iYXI+PC9mb28+Jzo6eG1sIEFTIHRleHQgSU5ERU5UKSBBUyAieG1sc2Vy aWFsaXplIjsKLSB4bWx2aWV3MTEgIHwgIFNFTEVDVCAoWE1MU0VSSUFMSVpFKERPQ1VNRU5UICc8 Zm9vPjxiYXI+NDI8L2Jhcj48L2Zvbz4nOjp4bWwgQVMgY2hhcmFjdGVyIHZhcnlpbmcgTk8gSU5E RU5UKSk6OmNoYXJhY3RlciB2YXJ5aW5nIEFTICJ4bWxzZXJpYWxpemUiOwotIHhtbHZpZXcyICAg fCAgU0VMRUNUIFhNTENPTkNBVCgnaGVsbG8nOjp4bWwsICd5b3UnOjp4bWwpIEFTICJ4bWxjb25j YXQiOwotIHhtbHZpZXczICAgfCAgU0VMRUNUIFhNTEVMRU1FTlQoTkFNRSBlbGVtZW50LCBYTUxB VFRSSUJVVEVTKDEgQVMgIjpvbmU6IiwgJ2RldWNlJyBBUyB0d28pLCAnY29udGVudCYnKSBBUyAi eG1sZWxlbWVudCI7Ci0geG1sdmlldzQgICB8ICBTRUxFQ1QgWE1MRUxFTUVOVChOQU1FIGVtcGxv eWVlLCBYTUxGT1JFU1QobmFtZSBBUyBuYW1lLCBhZ2UgQVMgYWdlLCBzYWxhcnkgQVMgcGF5KSkg QVMgInhtbGVsZW1lbnQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgICAg ICAgICB8ICAgIEZST00gZW1wOwotIHhtbHZpZXc1ICAgfCAgU0VMRUNUIFhNTFBBUlNFKENPTlRF TlQgJzxhYmM+eDwvYWJjPic6OnRleHQgU1RSSVAgV0hJVEVTUEFDRSkgQVMgInhtbHBhcnNlIjsK LSB4bWx2aWV3NiAgIHwgIFNFTEVDVCBYTUxQSShOQU1FIGZvbywgJ2Jhcic6OnRleHQpIEFTICJ4 bWxwaSI7Ci0geG1sdmlldzcgICB8ICBTRUxFQ1QgWE1MUk9PVCgnPGZvby8+Jzo6eG1sLCBWRVJT SU9OIE5PIFZBTFVFLCBTVEFOREFMT05FIFlFUykgQVMgInhtbHJvb3QiOwotIHhtbHZpZXc4ICAg fCAgU0VMRUNUIChYTUxTRVJJQUxJWkUoQ09OVEVOVCAnZ29vZCc6OnhtbCBBUyBjaGFyYWN0ZXIo MTApIE5PIElOREVOVCkpOjpjaGFyYWN0ZXIoMTApIEFTICJ4bWxzZXJpYWxpemUiOwotIHhtbHZp ZXc5ICAgfCAgU0VMRUNUIFhNTFNFUklBTElaRShDT05URU5UICdnb29kJzo6eG1sIEFTIHRleHQg Tk8gSU5ERU5UKSBBUyAieG1sc2VyaWFsaXplIjsKLSgxMSByb3dzKQotCi0tLSBUZXh0IFhQYXRo IGV4cHJlc3Npb25zIGV2YWx1YXRpb24KLVNFTEVDVCB4cGF0aCgnL3ZhbHVlJywgZGF0YSkgRlJP TSB4bWx0ZXN0OwotICAgICAgICB4cGF0aCAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotIHs8dmFsdWU+b25lPC92YWx1ZT59Ci0gezx2YWx1ZT50d288L3ZhbHVlPn0KLSgyIHJvd3Mp Ci0KLVNFTEVDVCB4cGF0aChOVUxMLCBOVUxMKSBJUyBOVUxMIEZST00geG1sdGVzdDsKLSA/Y29s dW1uPyAKLS0tLS0tLS0tLS0KLSB0Ci0gdAotKDIgcm93cykKLQotU0VMRUNUIHhwYXRoKCcnLCAn PCEtLSBlcnJvciAtLT4nKTsKLUVSUk9SOiAgZW1wdHkgWFBhdGggZXhwcmVzc2lvbgotQ09OVEVY VDogIFNRTCBmdW5jdGlvbiAieHBhdGgiIHN0YXRlbWVudCAxCi1TRUxFQ1QgeHBhdGgoJy8vdGV4 dCgpJywgJzxsb2NhbDpkYXRhIHhtbG5zOmxvY2FsPSJodHRwOi8vMTI3LjAuMC4xIj48bG9jYWw6 cGllY2UgaWQ9IjEiPm51bWJlciBvbmU8L2xvY2FsOnBpZWNlPjxsb2NhbDpwaWVjZSBpZD0iMiIg Lz48L2xvY2FsOmRhdGE+Jyk7Ci0gICAgIHhwYXRoICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tCi0g eyJudW1iZXIgb25lIn0KLSgxIHJvdykKLQotU0VMRUNUIHhwYXRoKCcvL2xvYzpwaWVjZS9AaWQn LCAnPGxvY2FsOmRhdGEgeG1sbnM6bG9jYWw9Imh0dHA6Ly8xMjcuMC4wLjEiPjxsb2NhbDpwaWVj ZSBpZD0iMSI+bnVtYmVyIG9uZTwvbG9jYWw6cGllY2U+PGxvY2FsOnBpZWNlIGlkPSIyIiAvPjwv bG9jYWw6ZGF0YT4nLCBBUlJBWVtBUlJBWVsnbG9jJywgJ2h0dHA6Ly8xMjcuMC4wLjEnXV0pOwot IHhwYXRoIAotLS0tLS0tLQotIHsxLDJ9Ci0oMSByb3cpCi0KLVNFTEVDVCB4cGF0aCgnLy9sb2M6 cGllY2UnLCAnPGxvY2FsOmRhdGEgeG1sbnM6bG9jYWw9Imh0dHA6Ly8xMjcuMC4wLjEiPjxsb2Nh bDpwaWVjZSBpZD0iMSI+bnVtYmVyIG9uZTwvbG9jYWw6cGllY2U+PGxvY2FsOnBpZWNlIGlkPSIy IiAvPjwvbG9jYWw6ZGF0YT4nLCBBUlJBWVtBUlJBWVsnbG9jJywgJ2h0dHA6Ly8xMjcuMC4wLjEn XV0pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgeHBhdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLSB7Ijxsb2NhbDpwaWVjZSB4bWxuczpsb2NhbD1cImh0dHA6Ly8xMjcuMC4w LjFcIiBpZD1cIjFcIj5udW1iZXIgb25lPC9sb2NhbDpwaWVjZT4iLCI8bG9jYWw6cGllY2UgeG1s bnM6bG9jYWw9XCJodHRwOi8vMTI3LjAuMC4xXCIgaWQ9XCIyXCIvPiJ9Ci0oMSByb3cpCi0KLVNF TEVDVCB4cGF0aCgnLy9sb2M6cGllY2UnLCAnPGxvY2FsOmRhdGEgeG1sbnM6bG9jYWw9Imh0dHA6 Ly8xMjcuMC4wLjEiIHhtbG5zPSJodHRwOi8vMTI3LjAuMC4yIj48bG9jYWw6cGllY2UgaWQ9IjEi PjxpbnRlcm5hbD5udW1iZXIgb25lPC9pbnRlcm5hbD48aW50ZXJuYWwyLz48L2xvY2FsOnBpZWNl Pjxsb2NhbDpwaWVjZSBpZD0iMiIgLz48L2xvY2FsOmRhdGE+JywgQVJSQVlbQVJSQVlbJ2xvYycs ICdodHRwOi8vMTI3LjAuMC4xJ11dKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHhwYXRoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0geyI8bG9jYWw6cGllY2UgeG1s bnM6bG9jYWw9XCJodHRwOi8vMTI3LjAuMC4xXCIgeG1sbnM9XCJodHRwOi8vMTI3LjAuMC4yXCIg aWQ9XCIxXCI+PGludGVybmFsPm51bWJlciBvbmU8L2ludGVybmFsPjxpbnRlcm5hbDIvPjwvbG9j YWw6cGllY2U+IiwiPGxvY2FsOnBpZWNlIHhtbG5zOmxvY2FsPVwiaHR0cDovLzEyNy4wLjAuMVwi IGlkPVwiMlwiLz4ifQotKDEgcm93KQotCi1TRUxFQ1QgeHBhdGgoJy8vYicsICc8YT5vbmUgPGI+ dHdvPC9iPiB0aHJlZSA8Yj5ldGM8L2I+PC9hPicpOwotICAgICAgICAgIHhwYXRoICAgICAgICAg IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIHs8Yj50d288L2I+LDxiPmV0YzwvYj59Ci0o MSByb3cpCi0KLVNFTEVDVCB4cGF0aCgnLy90ZXh0KCknLCAnPHJvb3Q+Jmx0Ozwvcm9vdD4nKTsK LSB4cGF0aCAgCi0tLS0tLS0tLQotIHsmbHQ7fQotKDEgcm93KQotCi1TRUxFQ1QgeHBhdGgoJy8v QHZhbHVlJywgJzxyb290IHZhbHVlPSImbHQ7Ii8+Jyk7Ci0geHBhdGggIAotLS0tLS0tLS0KLSB7 Jmx0O30KLSgxIHJvdykKLQotU0VMRUNUIHhwYXRoKCcnJzw8aW52YWxpZD4+JycnLCAnPHJvb3Qv PicpOwotICAgICAgICAgICB4cGF0aCAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSB7Jmx0OyZsdDtpbnZhbGlkJmd0OyZndDt9Ci0oMSByb3cpCi0KLVNFTEVDVCB4cGF0 aCgnY291bnQoLy8qKScsICc8cm9vdD48c3ViLz48c3ViLz48L3Jvb3Q+Jyk7Ci0geHBhdGggCi0t LS0tLS0tCi0gezN9Ci0oMSByb3cpCi0KLVNFTEVDVCB4cGF0aCgnY291bnQoLy8qKT0wJywgJzxy b290PjxzdWIvPjxzdWIvPjwvcm9vdD4nKTsKLSAgeHBhdGggIAotLS0tLS0tLS0tCi0ge2ZhbHNl fQotKDEgcm93KQotCi1TRUxFQ1QgeHBhdGgoJ2NvdW50KC8vKik9MycsICc8cm9vdD48c3ViLz48 c3ViLz48L3Jvb3Q+Jyk7Ci0geHBhdGggIAotLS0tLS0tLS0KLSB7dHJ1ZX0KLSgxIHJvdykKLQot U0VMRUNUIHhwYXRoKCduYW1lKC8qKScsICc8cm9vdD48c3ViLz48c3ViLz48L3Jvb3Q+Jyk7Ci0g eHBhdGggIAotLS0tLS0tLS0KLSB7cm9vdH0KLSgxIHJvdykKLQotU0VMRUNUIHhwYXRoKCcvbm9z dWNodGFnJywgJzxyb290Lz4nKTsKLSB4cGF0aCAKLS0tLS0tLS0KLSB7fQotKDEgcm93KQotCi1T RUxFQ1QgeHBhdGgoJ3Jvb3QnLCAnPHJvb3QvPicpOwotICAgeHBhdGggICAKLS0tLS0tLS0tLS0t Ci0gezxyb290Lz59Ci0oMSByb3cpCi0KLS0tIFJvdW5kLXRyaXAgbm9uLUFTQ0lJIGRhdGEgdGhy b3VnaCB4cGF0aCgpLgotRE8gJCQKLURFQ0xBUkUKLSAgeG1sX2RlY2xhcmF0aW9uIHRleHQgOj0g Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4nOwotICBkZWdyZWVf c3ltYm9sIHRleHQ7Ci0gIHJlcyB4bWxbXTsKLUJFR0lOCi0gIC0tIFBlciB0aGUgZG9jdW1lbnRh dGlvbiwgZXhjZXB0IHdoZW4gdGhlIHNlcnZlciBlbmNvZGluZyBpcyBVVEY4LCB4cGF0aCgpCi0g IC0tIG1heSBub3Qgd29yayBvbiBub24tQVNDSUkgZGF0YS4gIFRoZSB1bnRyYW5zbGF0YWJsZV9j aGFyYWN0ZXIgYW5kCi0gIC0tIHVuZGVmaW5lZF9mdW5jdGlvbiB0cmFwcyBiZWxvdywgY3VycmVu dGx5IGRlYWQgY29kZSwgd2lsbCBiZWNvbWUgcmVsZXZhbnQKLSAgLS0gaWYgd2UgcmVtb3ZlIHRo aXMgbGltaXRhdGlvbi4KLSAgSUYgY3VycmVudF9zZXR0aW5nKCdzZXJ2ZXJfZW5jb2RpbmcnKSA8 PiAnVVRGOCcgVEhFTgotICAgIFJBSVNFIExPRyAnc2tpcDogZW5jb2RpbmcgJSB1bnN1cHBvcnRl ZCBmb3IgeHBhdGgnLAotICAgICAgY3VycmVudF9zZXR0aW5nKCdzZXJ2ZXJfZW5jb2RpbmcnKTsK LSAgICBSRVRVUk47Ci0gIEVORCBJRjsKLQotICBkZWdyZWVfc3ltYm9sIDo9IGNvbnZlcnRfZnJv bSgnXHhjMmIwJywgJ1VURjgnKTsKLSAgcmVzIDo9IHhwYXRoKCd0ZXh0KCknLCAoeG1sX2RlY2xh cmF0aW9uIHx8Ci0gICAgJzx4PicgfHwgZGVncmVlX3N5bWJvbCB8fCAnPC94PicpOjp4bWwpOwot ICBJRiBkZWdyZWVfc3ltYm9sIDw+IHJlc1sxXTo6dGV4dCBUSEVOCi0gICAgUkFJU0UgJ2V4cGVj dGVkICUgKCUpLCBnb3QgJSAoJSknLAotICAgICAgZGVncmVlX3N5bWJvbCwgY29udmVydF90byhk ZWdyZWVfc3ltYm9sLCAnVVRGOCcpLAotICAgICAgcmVzWzFdLCBjb252ZXJ0X3RvKHJlc1sxXTo6 dGV4dCwgJ1VURjgnKTsKLSAgRU5EIElGOwotRVhDRVBUSU9OCi0gIC0tIGNoYXJhY3RlciB3aXRo IGJ5dGUgc2VxdWVuY2UgMHhjMiAweGIwIGluIGVuY29kaW5nICJVVEY4IiBoYXMgbm8gZXF1aXZh bGVudCBpbiBlbmNvZGluZyAiTEFUSU44IgotICBXSEVOIHVudHJhbnNsYXRhYmxlX2NoYXJhY3Rl cgotICAtLSBkZWZhdWx0IGNvbnZlcnNpb24gZnVuY3Rpb24gZm9yIGVuY29kaW5nICJVVEY4IiB0 byAiTVVMRV9JTlRFUk5BTCIgZG9lcyBub3QgZXhpc3QKLSAgT1IgdW5kZWZpbmVkX2Z1bmN0aW9u Ci0gIC0tIHVuc3VwcG9ydGVkIFhNTCBmZWF0dXJlCi0gIE9SIGZlYXR1cmVfbm90X3N1cHBvcnRl ZCBUSEVOCi0gICAgUkFJU0UgTE9HICdza2lwOiAlJywgU1FMRVJSTTsKLUVORAotJCQ7Ci0tLSBU ZXN0IHhtbGV4aXN0cyBhbmQgeHBhdGhfZXhpc3RzCi1TRUxFQ1QgeG1sZXhpc3RzKCcvL3Rvd25b dGV4dCgpID0gJydUb3JvbnRvJyddJyBQQVNTSU5HIEJZIFJFRiAnPHRvd25zPjx0b3duPkJpZGZv cmQtb24tQXZvbjwvdG93bj48dG93bj5Dd21icmFuPC90b3duPjx0b3duPkJyaXN0b2w8L3Rvd24+ PC90b3ducz4nKTsKLSB4bWxleGlzdHMgCi0tLS0tLS0tLS0tLQotIGYKLSgxIHJvdykKLQotU0VM RUNUIHhtbGV4aXN0cygnLy90b3duW3RleHQoKSA9ICcnQ3dtYnJhbicnXScgUEFTU0lORyBCWSBS RUYgJzx0b3ducz48dG93bj5CaWRmb3JkLW9uLUF2b248L3Rvd24+PHRvd24+Q3dtYnJhbjwvdG93 bj48dG93bj5CcmlzdG9sPC90b3duPjwvdG93bnM+Jyk7Ci0geG1sZXhpc3RzIAotLS0tLS0tLS0t LS0KLSB0Ci0oMSByb3cpCi0KLVNFTEVDVCB4bWxleGlzdHMoJ2NvdW50KC9ub3N1Y2h0YWcpJyBQ QVNTSU5HIEJZIFJFRiAnPHJvb3QvPicpOwotIHhtbGV4aXN0cyAKLS0tLS0tLS0tLS0tCi0gdAot KDEgcm93KQotCi1TRUxFQ1QgeHBhdGhfZXhpc3RzKCcvL3Rvd25bdGV4dCgpID0gJydUb3JvbnRv JyddJywnPHRvd25zPjx0b3duPkJpZGZvcmQtb24tQXZvbjwvdG93bj48dG93bj5Dd21icmFuPC90 b3duPjx0b3duPkJyaXN0b2w8L3Rvd24+PC90b3ducz4nOjp4bWwpOwotIHhwYXRoX2V4aXN0cyAK LS0tLS0tLS0tLS0tLS0tCi0gZgotKDEgcm93KQotCi1TRUxFQ1QgeHBhdGhfZXhpc3RzKCcvL3Rv d25bdGV4dCgpID0gJydDd21icmFuJyddJywnPHRvd25zPjx0b3duPkJpZGZvcmQtb24tQXZvbjwv dG93bj48dG93bj5Dd21icmFuPC90b3duPjx0b3duPkJyaXN0b2w8L3Rvd24+PC90b3ducz4nOjp4 bWwpOwotIHhwYXRoX2V4aXN0cyAKLS0tLS0tLS0tLS0tLS0tCi0gdAotKDEgcm93KQotCi1TRUxF Q1QgeHBhdGhfZXhpc3RzKCdjb3VudCgvbm9zdWNodGFnKScsICc8cm9vdC8+Jzo6eG1sKTsKLSB4 cGF0aF9leGlzdHMgCi0tLS0tLS0tLS0tLS0tLQotIHQKLSgxIHJvdykKLQotSU5TRVJUIElOVE8g eG1sdGVzdCBWQUxVRVMgKDQsICc8bWVudT48YmVlcnM+PG5hbWU+QnVkdmFyPC9uYW1lPjxjb3N0 PmZyZWU8L2Nvc3Q+PG5hbWU+Q2FybGluZzwvbmFtZT48Y29zdD5sb3RzPC9jb3N0PjwvYmVlcnM+ PC9tZW51Pic6OnhtbCk7Ci1JTlNFUlQgSU5UTyB4bWx0ZXN0IFZBTFVFUyAoNSwgJzxtZW51Pjxi ZWVycz48bmFtZT5Nb2xzb248L25hbWU+PGNvc3Q+ZnJlZTwvY29zdD48bmFtZT5DYXJsaW5nPC9u YW1lPjxjb3N0PmxvdHM8L2Nvc3Q+PC9iZWVycz48L21lbnU+Jzo6eG1sKTsKLUlOU0VSVCBJTlRP IHhtbHRlc3QgVkFMVUVTICg2LCAnPG15bnM6bWVudSB4bWxuczpteW5zPSJodHRwOi8vbXlucy5j b20iPjxteW5zOmJlZXJzPjxteW5zOm5hbWU+QnVkdmFyPC9teW5zOm5hbWU+PG15bnM6Y29zdD5m cmVlPC9teW5zOmNvc3Q+PG15bnM6bmFtZT5DYXJsaW5nPC9teW5zOm5hbWU+PG15bnM6Y29zdD5s b3RzPC9teW5zOmNvc3Q+PC9teW5zOmJlZXJzPjwvbXluczptZW51Pic6OnhtbCk7Ci1JTlNFUlQg SU5UTyB4bWx0ZXN0IFZBTFVFUyAoNywgJzxteW5zOm1lbnUgeG1sbnM6bXlucz0iaHR0cDovL215 bnMuY29tIj48bXluczpiZWVycz48bXluczpuYW1lPk1vbHNvbjwvbXluczpuYW1lPjxteW5zOmNv c3Q+ZnJlZTwvbXluczpjb3N0PjxteW5zOm5hbWU+Q2FybGluZzwvbXluczpuYW1lPjxteW5zOmNv c3Q+bG90czwvbXluczpjb3N0PjwvbXluczpiZWVycz48L215bnM6bWVudT4nOjp4bWwpOwotU0VM RUNUIENPVU5UKGlkKSBGUk9NIHhtbHRlc3QgV0hFUkUgeG1sZXhpc3RzKCcvbWVudS9iZWVyJyBQ QVNTSU5HIGRhdGEpOwotIGNvdW50IAotLS0tLS0tLQotICAgICAwCi0oMSByb3cpCi0KLVNFTEVD VCBDT1VOVChpZCkgRlJPTSB4bWx0ZXN0IFdIRVJFIHhtbGV4aXN0cygnL21lbnUvYmVlcicgUEFT U0lORyBCWSBSRUYgZGF0YSBCWSBSRUYpOwotIGNvdW50IAotLS0tLS0tLQotICAgICAwCi0oMSBy b3cpCi0KLVNFTEVDVCBDT1VOVChpZCkgRlJPTSB4bWx0ZXN0IFdIRVJFIHhtbGV4aXN0cygnL21l bnUvYmVlcnMnIFBBU1NJTkcgQlkgUkVGIGRhdGEpOwotIGNvdW50IAotLS0tLS0tLQotICAgICAy Ci0oMSByb3cpCi0KLVNFTEVDVCBDT1VOVChpZCkgRlJPTSB4bWx0ZXN0IFdIRVJFIHhtbGV4aXN0 cygnL21lbnUvYmVlcnMvbmFtZVt0ZXh0KCkgPSAnJ01vbHNvbicnXScgUEFTU0lORyBCWSBSRUYg ZGF0YSk7Ci0gY291bnQgCi0tLS0tLS0tCi0gICAgIDEKLSgxIHJvdykKLQotU0VMRUNUIENPVU5U KGlkKSBGUk9NIHhtbHRlc3QgV0hFUkUgeHBhdGhfZXhpc3RzKCcvbWVudS9iZWVyJyxkYXRhKTsK LSBjb3VudCAKLS0tLS0tLS0KLSAgICAgMAotKDEgcm93KQotCi1TRUxFQ1QgQ09VTlQoaWQpIEZS T00geG1sdGVzdCBXSEVSRSB4cGF0aF9leGlzdHMoJy9tZW51L2JlZXJzJyxkYXRhKTsKLSBjb3Vu dCAKLS0tLS0tLS0KLSAgICAgMgotKDEgcm93KQotCi1TRUxFQ1QgQ09VTlQoaWQpIEZST00geG1s dGVzdCBXSEVSRSB4cGF0aF9leGlzdHMoJy9tZW51L2JlZXJzL25hbWVbdGV4dCgpID0gJydNb2xz b24nJ10nLGRhdGEpOwotIGNvdW50IAotLS0tLS0tLQotICAgICAxCi0oMSByb3cpCi0KLVNFTEVD VCBDT1VOVChpZCkgRlJPTSB4bWx0ZXN0IFdIRVJFIHhwYXRoX2V4aXN0cygnL215bnM6bWVudS9t eW5zOmJlZXInLGRhdGEsQVJSQVlbQVJSQVlbJ215bnMnLCdodHRwOi8vbXlucy5jb20nXV0pOwot IGNvdW50IAotLS0tLS0tLQotICAgICAwCi0oMSByb3cpCi0KLVNFTEVDVCBDT1VOVChpZCkgRlJP TSB4bWx0ZXN0IFdIRVJFIHhwYXRoX2V4aXN0cygnL215bnM6bWVudS9teW5zOmJlZXJzJyxkYXRh LEFSUkFZW0FSUkFZWydteW5zJywnaHR0cDovL215bnMuY29tJ11dKTsKLSBjb3VudCAKLS0tLS0t LS0KLSAgICAgMgotKDEgcm93KQotCi1TRUxFQ1QgQ09VTlQoaWQpIEZST00geG1sdGVzdCBXSEVS RSB4cGF0aF9leGlzdHMoJy9teW5zOm1lbnUvbXluczpiZWVycy9teW5zOm5hbWVbdGV4dCgpID0g JydNb2xzb24nJ10nLGRhdGEsQVJSQVlbQVJSQVlbJ215bnMnLCdodHRwOi8vbXlucy5jb20nXV0p OwotIGNvdW50IAotLS0tLS0tLQotICAgICAxCi0oMSByb3cpCi0KLUNSRUFURSBUQUJMRSBxdWVy eSAoIGV4cHIgVEVYVCApOwotSU5TRVJUIElOVE8gcXVlcnkgVkFMVUVTICgnL21lbnUvYmVlcnMv Y29zdFt0ZXh0KCkgPSAnJ2xvdHMnJ10nKTsKLVNFTEVDVCBDT1VOVChpZCkgRlJPTSB4bWx0ZXN0 LCBxdWVyeSBXSEVSRSB4bWxleGlzdHMoZXhwciBQQVNTSU5HIEJZIFJFRiBkYXRhKTsKLSBjb3Vu dCAKLS0tLS0tLS0KLSAgICAgMgotKDEgcm93KQotCi0tLSBUZXN0IHhtbF9pc193ZWxsX2Zvcm1l ZCBhbmQgdmFyaWFudHMKLVNFTEVDVCB4bWxfaXNfd2VsbF9mb3JtZWRfZG9jdW1lbnQoJzxmb28+ YmFyPC9mb28+Jyk7Ci0geG1sX2lzX3dlbGxfZm9ybWVkX2RvY3VtZW50IAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLSB0Ci0oMSByb3cpCi0KLVNFTEVDVCB4bWxfaXNfd2VsbF9mb3Jt ZWRfZG9jdW1lbnQoJ2FiYycpOwotIHhtbF9pc193ZWxsX2Zvcm1lZF9kb2N1bWVudCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gZgotKDEgcm93KQotCi1TRUxFQ1QgeG1sX2lzX3dl bGxfZm9ybWVkX2NvbnRlbnQoJzxmb28+YmFyPC9mb28+Jyk7Ci0geG1sX2lzX3dlbGxfZm9ybWVk X2NvbnRlbnQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gdAotKDEgcm93KQotCi1T RUxFQ1QgeG1sX2lzX3dlbGxfZm9ybWVkX2NvbnRlbnQoJ2FiYycpOwotIHhtbF9pc193ZWxsX2Zv cm1lZF9jb250ZW50IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIHQKLSgxIHJvdykK LQotU0VUIHhtbG9wdGlvbiBUTyBET0NVTUVOVDsKLVNFTEVDVCB4bWxfaXNfd2VsbF9mb3JtZWQo J2FiYycpOwotIHhtbF9pc193ZWxsX2Zvcm1lZCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gZgot KDEgcm93KQotCi1TRUxFQ1QgeG1sX2lzX3dlbGxfZm9ybWVkKCc8PicpOwotIHhtbF9pc193ZWxs X2Zvcm1lZCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gZgotKDEgcm93KQotCi1TRUxFQ1QgeG1s X2lzX3dlbGxfZm9ybWVkKCc8YWJjLz4nKTsKLSB4bWxfaXNfd2VsbF9mb3JtZWQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLQotIHQKLSgxIHJvdykKLQotU0VMRUNUIHhtbF9pc193ZWxsX2Zvcm1lZCgn PGZvbz5iYXI8L2Zvbz4nKTsKLSB4bWxfaXNfd2VsbF9mb3JtZWQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLQotIHQKLSgxIHJvdykKLQotU0VMRUNUIHhtbF9pc193ZWxsX2Zvcm1lZCgnPGZvbz5iYXI8 L2ZvbycpOwotIHhtbF9pc193ZWxsX2Zvcm1lZCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gZgot KDEgcm93KQotCi1TRUxFQ1QgeG1sX2lzX3dlbGxfZm9ybWVkKCc8Zm9vPjxiYXI+YmF6PC9mb28+ Jyk7Ci0geG1sX2lzX3dlbGxfZm9ybWVkIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBmCi0oMSBy b3cpCi0KLVNFTEVDVCB4bWxfaXNfd2VsbF9mb3JtZWQoJzxsb2NhbDpkYXRhIHhtbG5zOmxvY2Fs PSJodHRwOi8vMTI3LjAuMC4xIj48bG9jYWw6cGllY2UgaWQ9IjEiPm51bWJlciBvbmU8L2xvY2Fs OnBpZWNlPjxsb2NhbDpwaWVjZSBpZD0iMiIgLz48L2xvY2FsOmRhdGE+Jyk7Ci0geG1sX2lzX3dl bGxfZm9ybWVkIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSB0Ci0oMSByb3cpCi0KLVNFTEVDVCB4 bWxfaXNfd2VsbF9mb3JtZWQoJzxwZzpmb28geG1sbnM6cGc9Imh0dHA6Ly9wb3N0Z3Jlc3FsLm9y Zy9zdHVmZiI+YmFyPC9teTpmb28+Jyk7Ci0geG1sX2lzX3dlbGxfZm9ybWVkIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0KLSBmCi0oMSByb3cpCi0KLVNFTEVDVCB4bWxfaXNfd2VsbF9mb3JtZWQoJzxw Zzpmb28geG1sbnM6cGc9Imh0dHA6Ly9wb3N0Z3Jlc3FsLm9yZy9zdHVmZiI+YmFyPC9wZzpmb28+ Jyk7Ci0geG1sX2lzX3dlbGxfZm9ybWVkIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSB0Ci0oMSBy b3cpCi0KLVNFTEVDVCB4bWxfaXNfd2VsbF9mb3JtZWQoJzxpbnZhbGlkZW50aXR5PiY8L2FiYz4n KTsKLSB4bWxfaXNfd2VsbF9mb3JtZWQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIGYKLSgxIHJv dykKLQotU0VMRUNUIHhtbF9pc193ZWxsX2Zvcm1lZCgnPHVuZGVmaW5lZGVudGl0eT4maWRvbnRl eGlzdDs8L2FiYz4nKTsKLSB4bWxfaXNfd2VsbF9mb3JtZWQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LQotIGYKLSgxIHJvdykKLQotU0VMRUNUIHhtbF9pc193ZWxsX2Zvcm1lZCgnPGludmFsaWRucyB4 bWxucz0nJyZsdDsnJy8+Jyk7Ci0geG1sX2lzX3dlbGxfZm9ybWVkIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSB0Ci0oMSByb3cpCi0KLVNFTEVDVCB4bWxfaXNfd2VsbF9mb3JtZWQoJzxyZWxhdGl2 ZW5zIHhtbG5zPScncmVsYXRpdmUnJy8+Jyk7Ci0geG1sX2lzX3dlbGxfZm9ybWVkIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0KLSB0Ci0oMSByb3cpCi0KLVNFTEVDVCB4bWxfaXNfd2VsbF9mb3JtZWQo Jzx0d29lcnJvcnM+Jmlkb250ZXhpc3Q7PC91bmJhbGFuY2VkPicpOwotIHhtbF9pc193ZWxsX2Zv cm1lZCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gZgotKDEgcm93KQotCi1TRVQgeG1sb3B0aW9u IFRPIENPTlRFTlQ7Ci1TRUxFQ1QgeG1sX2lzX3dlbGxfZm9ybWVkKCdhYmMnKTsKLSB4bWxfaXNf d2VsbF9mb3JtZWQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIHQKLSgxIHJvdykKLQotLS0gU2lu Y2UgeHBhdGgoKSBkZWFscyB3aXRoIG5hbWVzcGFjZXMsIGl0J3MgYSBiaXQgc3RyaWN0ZXIgYWJv dXQKLS0tIHdoYXQncyB3ZWxsLWZvcm1lZCBhbmQgd2hhdCdzIG5vdC4gSWYgd2UgZG9uJ3Qgb2Jl eSB0aGVzZSBydWxlcwotLS0gKGkuZS4gaWdub3JlIG5hbWVzcGFjZS1yZWxhdGVkIGVycm9ycyBm cm9tIGxpYnhtbCksIHhwYXRoKCkKLS0tIGZhaWxzIGluIHN1YnRsZSB3YXlzLiBUaGUgZm9sbG93 aW5nIHdvdWxkIGZvciBleGFtcGxlIHByb2R1Y2UKLS0tIHRoZSB4bWwgdmFsdWUKLS0tICAgPGlu dmFsaWRucyB4bWxucz0nPCcvPgotLS0gd2hpY2ggaXMgaW52YWxpZCBiZWNhdXNlICc8JyBtYXkg bm90IGFwcGVhciB1bi1lc2NhcGVkIGluCi0tLSBhdHRyaWJ1dGUgdmFsdWVzLgotLS0gU2luY2Ug ZGlmZmVyZW50IGxpYnhtbCB2ZXJzaW9ucyBlbWl0IHNsaWdodGx5IGRpZmZlcmVudAotLS0gZXJy b3IgbWVzc2FnZXMsIHdlIHN1cHByZXNzIHRoZSBERVRBSUwgaW4gdGhpcyB0ZXN0LgotXHNldCBW RVJCT1NJVFkgdGVyc2UKLVNFTEVDVCB4cGF0aCgnLyonLCAnPGludmFsaWRucyB4bWxucz0nJyZs dDsnJy8+Jyk7Ci1FUlJPUjogIGNvdWxkIG5vdCBwYXJzZSBYTUwgZG9jdW1lbnQKLVxzZXQgVkVS Qk9TSVRZIGRlZmF1bHQKLS0tIEFnYWluLCB0aGUgWE1MIGlzbid0IHdlbGwtZm9ybWVkIGZvciBu YW1lc3BhY2UgcHVycG9zZXMKLVNFTEVDVCB4cGF0aCgnLyonLCAnPG5vc3VjaHByZWZpeDp0YWcv PicpOwotRVJST1I6ICBjb3VsZCBub3QgcGFyc2UgWE1MIGRvY3VtZW50Ci1ERVRBSUw6ICBsaW5l IDE6IE5hbWVzcGFjZSBwcmVmaXggbm9zdWNocHJlZml4IG9uIHRhZyBpcyBub3QgZGVmaW5lZAot PG5vc3VjaHByZWZpeDp0YWcvPgotICAgICAgICAgICAgICAgICBeCi1DT05URVhUOiAgU1FMIGZ1 bmN0aW9uICJ4cGF0aCIgc3RhdGVtZW50IDEKLS0tIFhQYXRoIGRlcHJlY2F0ZXMgcmVsYXRpdmUg bmFtZXNwYWNlcywgYnV0IHRoZXkncmUgbm90IHN1cHBvc2VkIHRvCi0tLSB0aHJvdyBhbiBlcnJv ciwgb25seSBhIHdhcm5pbmcuCi1TRUxFQ1QgeHBhdGgoJy8qJywgJzxyZWxhdGl2ZW5zIHhtbG5z PScncmVsYXRpdmUnJy8+Jyk7Ci1XQVJOSU5HOiAgbGluZSAxOiB4bWxuczogVVJJIHJlbGF0aXZl IGlzIG5vdCBhYnNvbHV0ZQotPHJlbGF0aXZlbnMgeG1sbnM9J3JlbGF0aXZlJy8+Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgotICAgICAgICAgICAgICAgIHhwYXRoICAgICAgICAgICAg ICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0geyI8cmVsYXRp dmVucyB4bWxucz1cInJlbGF0aXZlXCIvPiJ9Ci0oMSByb3cpCi0KLS0tIEV4dGVybmFsIGVudGl0 eSByZWZlcmVuY2VzIHNob3VsZCBub3QgbGVhayBmaWxlc3lzdGVtIGluZm9ybWF0aW9uLgotU0VM RUNUIFhNTFBBUlNFKERPQ1VNRU5UICc8IURPQ1RZUEUgZm9vIFs8IUVOVElUWSBjIFNZU1RFTSAi L2V0Yy9wYXNzd2QiPl0+PGZvbz4mYzs8L2Zvbz4nKTsKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB4bWxwYXJzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIDwh RE9DVFlQRSBmb28gWzwhRU5USVRZIGMgU1lTVEVNICIvZXRjL3Bhc3N3ZCI+XT48Zm9vPiZjOzwv Zm9vPgotKDEgcm93KQotCi1TRUxFQ1QgWE1MUEFSU0UoRE9DVU1FTlQgJzwhRE9DVFlQRSBmb28g WzwhRU5USVRZIGMgU1lTVEVNICIvZXRjL25vLnN1Y2guZmlsZSI+XT48Zm9vPiZjOzwvZm9vPicp OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbHBhcnNlICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gPCFET0NUWVBFIGZvbyBbPCFFTlRJ VFkgYyBTWVNURU0gIi9ldGMvbm8uc3VjaC5maWxlIj5dPjxmb28+JmM7PC9mb28+Ci0oMSByb3cp Ci0KLS0tIFRoaXMgbWlnaHQgb3IgbWlnaHQgbm90IGxvYWQgdGhlIHJlcXVlc3RlZCBEVEQsIGJ1 dCBpdCBtdXN0bid0IHRocm93IGVycm9yLgotU0VMRUNUIFhNTFBBUlNFKERPQ1VNRU5UICc8IURP Q1RZUEUgY2hhcHRlciBQVUJMSUMgIi0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwgVjQuMS4yLy9F TiIgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3gu ZHRkIj48Y2hhcHRlcj4mbmJzcDs8L2NoYXB0ZXI+Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbHBhcnNl ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIDwh RE9DVFlQRSBjaGFwdGVyIFBVQkxJQyAiLS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCBWNC4xLjIv L0VOIiAiaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kb2Nib29r eC5kdGQiPjxjaGFwdGVyPiZuYnNwOzwvY2hhcHRlcj4KLSgxIHJvdykKLQotLS0gWE1MUEFUSCB0 ZXN0cwotQ1JFQVRFIFRBQkxFIHhtbGRhdGEoZGF0YSB4bWwpOwotSU5TRVJUIElOVE8geG1sZGF0 YSBWQUxVRVMoJzxST1dTPgotPFJPVyBpZD0iMSI+Ci0gIDxDT1VOVFJZX0lEPkFVPC9DT1VOVFJZ X0lEPgotICA8Q09VTlRSWV9OQU1FPkF1c3RyYWxpYTwvQ09VTlRSWV9OQU1FPgotICA8UkVHSU9O X0lEPjM8L1JFR0lPTl9JRD4KLTwvUk9XPgotPFJPVyBpZD0iMiI+Ci0gIDxDT1VOVFJZX0lEPkNO PC9DT1VOVFJZX0lEPgotICA8Q09VTlRSWV9OQU1FPkNoaW5hPC9DT1VOVFJZX05BTUU+Ci0gIDxS RUdJT05fSUQ+MzwvUkVHSU9OX0lEPgotPC9ST1c+Ci08Uk9XIGlkPSIzIj4KLSAgPENPVU5UUllf SUQ+SEs8L0NPVU5UUllfSUQ+Ci0gIDxDT1VOVFJZX05BTUU+SG9uZ0tvbmc8L0NPVU5UUllfTkFN RT4KLSAgPFJFR0lPTl9JRD4zPC9SRUdJT05fSUQ+Ci08L1JPVz4KLTxST1cgaWQ9IjQiPgotICA8 Q09VTlRSWV9JRD5JTjwvQ09VTlRSWV9JRD4KLSAgPENPVU5UUllfTkFNRT5JbmRpYTwvQ09VTlRS WV9OQU1FPgotICA8UkVHSU9OX0lEPjM8L1JFR0lPTl9JRD4KLTwvUk9XPgotPFJPVyBpZD0iNSI+ Ci0gIDxDT1VOVFJZX0lEPkpQPC9DT1VOVFJZX0lEPgotICA8Q09VTlRSWV9OQU1FPkphcGFuPC9D T1VOVFJZX05BTUU+Ci0gIDxSRUdJT05fSUQ+MzwvUkVHSU9OX0lEPjxQUkVNSUVSX05BTUU+U2lu em8gQWJlPC9QUkVNSUVSX05BTUU+Ci08L1JPVz4KLTxST1cgaWQ9IjYiPgotICA8Q09VTlRSWV9J RD5TRzwvQ09VTlRSWV9JRD4KLSAgPENPVU5UUllfTkFNRT5TaW5nYXBvcmU8L0NPVU5UUllfTkFN RT4KLSAgPFJFR0lPTl9JRD4zPC9SRUdJT05fSUQ+PFNJWkUgdW5pdD0ia20iPjc5MTwvU0laRT4K LTwvUk9XPgotPC9ST1dTPicpOwotLS0gWE1MVEFCTEUgd2l0aCBjb2x1bW5zCi1TRUxFQ1QgIHht bHRhYmxlLioKLSAgIEZST00gKFNFTEVDVCBkYXRhIEZST00geG1sZGF0YSkgeCwKLSAgICAgICAg TEFURVJBTCBYTUxUQUJMRSgnL1JPV1MvUk9XJwotICAgICAgICAgICAgICAgICAgICAgICAgIFBB U1NJTkcgZGF0YQotICAgICAgICAgICAgICAgICAgICAgICAgIENPTFVNTlMgaWQgaW50IFBBVEgg J0BpZCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2lkIEZPUiBPUkRJTkFM SVRZLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfbmFtZSB0ZXh0 IFBBVEggJ0NPVU5UUllfTkFNRS90ZXh0KCknIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvdW50cnlfaWQgdGV4dCBQQVRIICdDT1VOVFJZX0lEJywKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpb25faWQgaW50IFBBVEggJ1JFR0lPTl9J RCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSBmbG9hdCBQQVRIICdT SVpFJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bml0IHRleHQgUEFUSCAn U0laRS9AdW5pdCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlbWllcl9u YW1lIHRleHQgUEFUSCAnUFJFTUlFUl9OQU1FJyBERUZBVUxUICdub3Qgc3BlY2lmaWVkJyk7Ci0g aWQgfCBfaWQgfCBjb3VudHJ5X25hbWUgfCBjb3VudHJ5X2lkIHwgcmVnaW9uX2lkIHwgc2l6ZSB8 IHVuaXQgfCBwcmVtaWVyX25hbWUgIAotLS0tLSstLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0KLSAgMSB8ICAg MSB8IEF1c3RyYWxpYSAgICB8IEFVICAgICAgICAgfCAgICAgICAgIDMgfCAgICAgIHwgICAgICB8 IG5vdCBzcGVjaWZpZWQKLSAgMiB8ICAgMiB8IENoaW5hICAgICAgICB8IENOICAgICAgICAgfCAg ICAgICAgIDMgfCAgICAgIHwgICAgICB8IG5vdCBzcGVjaWZpZWQKLSAgMyB8ICAgMyB8IEhvbmdL b25nICAgICB8IEhLICAgICAgICAgfCAgICAgICAgIDMgfCAgICAgIHwgICAgICB8IG5vdCBzcGVj aWZpZWQKLSAgNCB8ICAgNCB8IEluZGlhICAgICAgICB8IElOICAgICAgICAgfCAgICAgICAgIDMg fCAgICAgIHwgICAgICB8IG5vdCBzcGVjaWZpZWQKLSAgNSB8ICAgNSB8IEphcGFuICAgICAgICB8 IEpQICAgICAgICAgfCAgICAgICAgIDMgfCAgICAgIHwgICAgICB8IFNpbnpvIEFiZQotICA2IHwg ICA2IHwgU2luZ2Fwb3JlICAgIHwgU0cgICAgICAgICB8ICAgICAgICAgMyB8ICA3OTEgfCBrbSAg IHwgbm90IHNwZWNpZmllZAotKDYgcm93cykKLQotQ1JFQVRFIFZJRVcgeG1sdGFibGV2aWV3MSBB UyBTRUxFQ1QgIHhtbHRhYmxlLioKLSAgIEZST00gKFNFTEVDVCBkYXRhIEZST00geG1sZGF0YSkg eCwKLSAgICAgICAgTEFURVJBTCBYTUxUQUJMRSgnL1JPV1MvUk9XJwotICAgICAgICAgICAgICAg ICAgICAgICAgIFBBU1NJTkcgZGF0YQotICAgICAgICAgICAgICAgICAgICAgICAgIENPTFVNTlMg aWQgaW50IFBBVEggJ0BpZCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2lk IEZPUiBPUkRJTkFMSVRZLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50 cnlfbmFtZSB0ZXh0IFBBVEggJ0NPVU5UUllfTkFNRS90ZXh0KCknIE5PVCBOVUxMLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfaWQgdGV4dCBQQVRIICdDT1VOVFJZ X0lEJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpb25faWQgaW50IFBB VEggJ1JFR0lPTl9JRCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSBm bG9hdCBQQVRIICdTSVpFJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bml0 IHRleHQgUEFUSCAnU0laRS9AdW5pdCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcHJlbWllcl9uYW1lIHRleHQgUEFUSCAnUFJFTUlFUl9OQU1FJyBERUZBVUxUICdub3Qgc3Bl Y2lmaWVkJyk7Ci1TRUxFQ1QgKiBGUk9NIHhtbHRhYmxldmlldzE7Ci0gaWQgfCBfaWQgfCBjb3Vu dHJ5X25hbWUgfCBjb3VudHJ5X2lkIHwgcmVnaW9uX2lkIHwgc2l6ZSB8IHVuaXQgfCBwcmVtaWVy X25hbWUgIAotLS0tLSstLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0KLSAgMSB8ICAgMSB8IEF1c3RyYWxpYSAg ICB8IEFVICAgICAgICAgfCAgICAgICAgIDMgfCAgICAgIHwgICAgICB8IG5vdCBzcGVjaWZpZWQK LSAgMiB8ICAgMiB8IENoaW5hICAgICAgICB8IENOICAgICAgICAgfCAgICAgICAgIDMgfCAgICAg IHwgICAgICB8IG5vdCBzcGVjaWZpZWQKLSAgMyB8ICAgMyB8IEhvbmdLb25nICAgICB8IEhLICAg ICAgICAgfCAgICAgICAgIDMgfCAgICAgIHwgICAgICB8IG5vdCBzcGVjaWZpZWQKLSAgNCB8ICAg NCB8IEluZGlhICAgICAgICB8IElOICAgICAgICAgfCAgICAgICAgIDMgfCAgICAgIHwgICAgICB8 IG5vdCBzcGVjaWZpZWQKLSAgNSB8ICAgNSB8IEphcGFuICAgICAgICB8IEpQICAgICAgICAgfCAg ICAgICAgIDMgfCAgICAgIHwgICAgICB8IFNpbnpvIEFiZQotICA2IHwgICA2IHwgU2luZ2Fwb3Jl ICAgIHwgU0cgICAgICAgICB8ICAgICAgICAgMyB8ICA3OTEgfCBrbSAgIHwgbm90IHNwZWNpZmll ZAotKDYgcm93cykKLQotXHN2IHhtbHRhYmxldmlldzEKLUNSRUFURSBPUiBSRVBMQUNFIFZJRVcg cHVibGljLnhtbHRhYmxldmlldzEgQVMKLSBTRUxFQ1QgInhtbHRhYmxlIi5pZCwKLSAgICAieG1s dGFibGUiLl9pZCwKLSAgICAieG1sdGFibGUiLmNvdW50cnlfbmFtZSwKLSAgICAieG1sdGFibGUi LmNvdW50cnlfaWQsCi0gICAgInhtbHRhYmxlIi5yZWdpb25faWQsCi0gICAgInhtbHRhYmxlIi5z aXplLAotICAgICJ4bWx0YWJsZSIudW5pdCwKLSAgICAieG1sdGFibGUiLnByZW1pZXJfbmFtZQot ICAgRlJPTSAoIFNFTEVDVCB4bWxkYXRhLmRhdGEKLSAgICAgICAgICAgRlJPTSB4bWxkYXRhKSB4 LAotICAgIExBVEVSQUwgWE1MVEFCTEUoKCcvUk9XUy9ST1cnOjp0ZXh0KSBQQVNTSU5HICh4LmRh dGEpIENPTFVNTlMgaWQgaW50ZWdlciBQQVRIICgnQGlkJzo6dGV4dCksIF9pZCBGT1IgT1JESU5B TElUWSwgY291bnRyeV9uYW1lIHRleHQgUEFUSCAoJ0NPVU5UUllfTkFNRS90ZXh0KCknOjp0ZXh0 KSBOT1QgTlVMTCwgY291bnRyeV9pZCB0ZXh0IFBBVEggKCdDT1VOVFJZX0lEJzo6dGV4dCksIHJl Z2lvbl9pZCBpbnRlZ2VyIFBBVEggKCdSRUdJT05fSUQnOjp0ZXh0KSwgc2l6ZSBkb3VibGUgcHJl Y2lzaW9uIFBBVEggKCdTSVpFJzo6dGV4dCksIHVuaXQgdGV4dCBQQVRIICgnU0laRS9AdW5pdCc6 OnRleHQpLCBwcmVtaWVyX25hbWUgdGV4dCBERUZBVUxUICgnbm90IHNwZWNpZmllZCc6OnRleHQp IFBBVEggKCdQUkVNSUVSX05BTUUnOjp0ZXh0KSkKLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNU ICogRlJPTSB4bWx0YWJsZXZpZXcxOwotICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gTmVz dGVkIExvb3AKLSAgIC0+ICBTZXEgU2NhbiBvbiB4bWxkYXRhCi0gICAtPiAgVGFibGUgRnVuY3Rp b24gU2NhbiBvbiAieG1sdGFibGUiCi0oMyByb3dzKQotCi1FWFBMQUlOIChDT1NUUyBPRkYsIFZF UkJPU0UpIFNFTEVDVCAqIEZST00geG1sdGFibGV2aWV3MTsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gTmVzdGVkIExvb3AKLSAgIE91dHB1dDogInht bHRhYmxlIi5pZCwgInhtbHRhYmxlIi5faWQsICJ4bWx0YWJsZSIuY291bnRyeV9uYW1lLCAieG1s dGFibGUiLmNvdW50cnlfaWQsICJ4bWx0YWJsZSIucmVnaW9uX2lkLCAieG1sdGFibGUiLnNpemUs ICJ4bWx0YWJsZSIudW5pdCwgInhtbHRhYmxlIi5wcmVtaWVyX25hbWUKLSAgIC0+ICBTZXEgU2Nh biBvbiBwdWJsaWMueG1sZGF0YQotICAgICAgICAgT3V0cHV0OiB4bWxkYXRhLmRhdGEKLSAgIC0+ ICBUYWJsZSBGdW5jdGlvbiBTY2FuIG9uICJ4bWx0YWJsZSIKLSAgICAgICAgIE91dHB1dDogInht bHRhYmxlIi5pZCwgInhtbHRhYmxlIi5faWQsICJ4bWx0YWJsZSIuY291bnRyeV9uYW1lLCAieG1s dGFibGUiLmNvdW50cnlfaWQsICJ4bWx0YWJsZSIucmVnaW9uX2lkLCAieG1sdGFibGUiLnNpemUs ICJ4bWx0YWJsZSIudW5pdCwgInhtbHRhYmxlIi5wcmVtaWVyX25hbWUKLSAgICAgICAgIFRhYmxl IEZ1bmN0aW9uIENhbGw6IFhNTFRBQkxFKCgnL1JPV1MvUk9XJzo6dGV4dCkgUEFTU0lORyAoeG1s ZGF0YS5kYXRhKSBDT0xVTU5TIGlkIGludGVnZXIgUEFUSCAoJ0BpZCc6OnRleHQpLCBfaWQgRk9S IE9SRElOQUxJVFksIGNvdW50cnlfbmFtZSB0ZXh0IFBBVEggKCdDT1VOVFJZX05BTUUvdGV4dCgp Jzo6dGV4dCkgTk9UIE5VTEwsIGNvdW50cnlfaWQgdGV4dCBQQVRIICgnQ09VTlRSWV9JRCc6OnRl eHQpLCByZWdpb25faWQgaW50ZWdlciBQQVRIICgnUkVHSU9OX0lEJzo6dGV4dCksIHNpemUgZG91 YmxlIHByZWNpc2lvbiBQQVRIICgnU0laRSc6OnRleHQpLCB1bml0IHRleHQgUEFUSCAoJ1NJWkUv QHVuaXQnOjp0ZXh0KSwgcHJlbWllcl9uYW1lIHRleHQgREVGQVVMVCAoJ25vdCBzcGVjaWZpZWQn Ojp0ZXh0KSBQQVRIICgnUFJFTUlFUl9OQU1FJzo6dGV4dCkpCi0oNyByb3dzKQotCi0tLSBlcnJv cnMKLVNFTEVDVCAqIEZST00gWE1MVEFCTEUgKFJPVyAoKSBQQVNTSU5HIG51bGwgQ09MVU1OUyB2 MSB0aW1lc3RhbXApIEFTIGYgKHYxLCB2Mik7Ci1FUlJPUjogIFhNTFRBQkxFIGZ1bmN0aW9uIGhh cyAxIGNvbHVtbnMgYXZhaWxhYmxlIGJ1dCAyIGNvbHVtbnMgc3BlY2lmaWVkCi1TRUxFQ1QgKiBG Uk9NIFhNTFRBQkxFIChST1cgKCkgUEFTU0lORyBudWxsIENPTFVNTlMgdjEgdGltZXN0YW1wIF9f cGdfX2lzX25vdF9udWxsIDEpIEFTIGYgKHYxKTsKLUVSUk9SOiAgb3B0aW9uIG5hbWUgIl9fcGdf X2lzX25vdF9udWxsIiBjYW5ub3QgYmUgdXNlZCBpbiBYTUxUQUJMRQotTElORSAxOiAuLi5NTFRB QkxFIChST1cgKCkgUEFTU0lORyBudWxsIENPTFVNTlMgdjEgdGltZXN0YW1wIF9fcGdfX2lzX24u Li4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi0tLSBYTUxOQU1FU1BBQ0VTIHRlc3RzCi1TRUxFQ1QgKiBGUk9NIFhNTFRBQkxF KFhNTE5BTUVTUEFDRVMoJ2h0dHA6Ly94LnknIEFTIHp6KSwKLSAgICAgICAgICAgICAgICAgICAg ICAnL3p6OnJvd3Mveno6cm93JwotICAgICAgICAgICAgICAgICAgICAgIFBBU1NJTkcgJzxyb3dz IHhtbG5zPSJodHRwOi8veC55Ij48cm93PjxhPjEwPC9hPjwvcm93Pjwvcm93cz4nCi0gICAgICAg ICAgICAgICAgICAgICAgQ09MVU1OUyBhIGludCBQQVRIICd6ejphJyk7Ci0gYSAgCi0tLS0tCi0g MTAKLSgxIHJvdykKLQotQ1JFQVRFIFZJRVcgeG1sdGFibGV2aWV3MiBBUyBTRUxFQ1QgKiBGUk9N IFhNTFRBQkxFKFhNTE5BTUVTUEFDRVMoJ2h0dHA6Ly94LnknIEFTICJaeiIpLAotICAgICAgICAg ICAgICAgICAgICAgICcvWno6cm93cy9aejpyb3cnCi0gICAgICAgICAgICAgICAgICAgICAgUEFT U0lORyAnPHJvd3MgeG1sbnM9Imh0dHA6Ly94LnkiPjxyb3c+PGE+MTA8L2E+PC9yb3c+PC9yb3dz PicKLSAgICAgICAgICAgICAgICAgICAgICBDT0xVTU5TIGEgaW50IFBBVEggJ1p6OmEnKTsKLVNF TEVDVCAqIEZST00geG1sdGFibGV2aWV3MjsKLSBhICAKLS0tLS0KLSAxMAotKDEgcm93KQotCi1c c3YgeG1sdGFibGV2aWV3MgotQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyBwdWJsaWMueG1sdGFibGV2 aWV3MiBBUwotIFNFTEVDVCBhCi0gICBGUk9NIFhNTFRBQkxFKFhNTE5BTUVTUEFDRVMgKCdodHRw Oi8veC55Jzo6dGV4dCBBUyAiWnoiKSwgKCcvWno6cm93cy9aejpyb3cnOjp0ZXh0KSBQQVNTSU5H ICgnPHJvd3MgeG1sbnM9Imh0dHA6Ly94LnkiPjxyb3c+PGE+MTA8L2E+PC9yb3c+PC9yb3dzPic6 OnhtbCkgQ09MVU1OUyBhIGludGVnZXIgUEFUSCAoJ1p6OmEnOjp0ZXh0KSkKLVNFTEVDVCAqIEZS T00gWE1MVEFCTEUoWE1MTkFNRVNQQUNFUyhERUZBVUxUICdodHRwOi8veC55JyksCi0gICAgICAg ICAgICAgICAgICAgICAgJy9yb3dzL3JvdycKLSAgICAgICAgICAgICAgICAgICAgICBQQVNTSU5H ICc8cm93cyB4bWxucz0iaHR0cDovL3gueSI+PHJvdz48YT4xMDwvYT48L3Jvdz48L3Jvd3M+Jwot ICAgICAgICAgICAgICAgICAgICAgIENPTFVNTlMgYSBpbnQgUEFUSCAnYScpOwotRVJST1I6ICBE RUZBVUxUIG5hbWVzcGFjZSBpcyBub3Qgc3VwcG9ydGVkCi1TRUxFQ1QgKiBGUk9NIFhNTFRBQkxF KCcuJwotICAgICAgICAgICAgICAgICAgICAgICBQQVNTSU5HICc8Zm9vLz4nCi0gICAgICAgICAg ICAgICAgICAgICAgIENPTFVNTlMgYSB0ZXh0IFBBVEggJ2Zvby9uYW1lc3BhY2U6Om5vZGUoKScp OwotICAgICAgICAgICAgICAgICAgYSAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFt ZXNwYWNlCi0oMSByb3cpCi0KLS0tIHVzZWQgaW4gcHJlcGFyZSBzdGF0ZW1lbnRzCi1QUkVQQVJF IHBwIEFTCi1TRUxFQ1QgIHhtbHRhYmxlLioKLSAgIEZST00gKFNFTEVDVCBkYXRhIEZST00geG1s ZGF0YSkgeCwKLSAgICAgICAgTEFURVJBTCBYTUxUQUJMRSgnL1JPV1MvUk9XJwotICAgICAgICAg ICAgICAgICAgICAgICAgIFBBU1NJTkcgZGF0YQotICAgICAgICAgICAgICAgICAgICAgICAgIENP TFVNTlMgaWQgaW50IFBBVEggJ0BpZCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgX2lkIEZPUiBPUkRJTkFMSVRZLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvdW50cnlfbmFtZSB0ZXh0IFBBVEggJ0NPVU5UUllfTkFNRScgTk9UIE5VTEwsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9pZCB0ZXh0IFBBVEggJ0NPVU5UUllf SUQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lvbl9pZCBpbnQgUEFU SCAnUkVHSU9OX0lEJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplIGZs b2F0IFBBVEggJ1NJWkUnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXQg dGV4dCBQQVRIICdTSVpFL0B1bml0JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwcmVtaWVyX25hbWUgdGV4dCBQQVRIICdQUkVNSUVSX05BTUUnIERFRkFVTFQgJ25vdCBzcGVj aWZpZWQnKTsKLUVYRUNVVEUgcHA7Ci0gaWQgfCBfaWQgfCBjb3VudHJ5X25hbWUgfCBjb3VudHJ5 X2lkIHwgcmVnaW9uX2lkIHwgc2l6ZSB8IHVuaXQgfCBwcmVtaWVyX25hbWUgIAotLS0tLSstLS0t LSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSst LS0tLS0tLS0tLS0tLS0KLSAgMSB8ICAgMSB8IEF1c3RyYWxpYSAgICB8IEFVICAgICAgICAgfCAg ICAgICAgIDMgfCAgICAgIHwgICAgICB8IG5vdCBzcGVjaWZpZWQKLSAgMiB8ICAgMiB8IENoaW5h ICAgICAgICB8IENOICAgICAgICAgfCAgICAgICAgIDMgfCAgICAgIHwgICAgICB8IG5vdCBzcGVj aWZpZWQKLSAgMyB8ICAgMyB8IEhvbmdLb25nICAgICB8IEhLICAgICAgICAgfCAgICAgICAgIDMg fCAgICAgIHwgICAgICB8IG5vdCBzcGVjaWZpZWQKLSAgNCB8ICAgNCB8IEluZGlhICAgICAgICB8 IElOICAgICAgICAgfCAgICAgICAgIDMgfCAgICAgIHwgICAgICB8IG5vdCBzcGVjaWZpZWQKLSAg NSB8ICAgNSB8IEphcGFuICAgICAgICB8IEpQICAgICAgICAgfCAgICAgICAgIDMgfCAgICAgIHwg ICAgICB8IFNpbnpvIEFiZQotICA2IHwgICA2IHwgU2luZ2Fwb3JlICAgIHwgU0cgICAgICAgICB8 ICAgICAgICAgMyB8ICA3OTEgfCBrbSAgIHwgbm90IHNwZWNpZmllZAotKDYgcm93cykKLQotU0VM RUNUIHhtbHRhYmxlLiogRlJPTSB4bWxkYXRhLCBMQVRFUkFMIHhtbHRhYmxlKCcvUk9XUy9ST1db Q09VTlRSWV9OQU1FPSJKYXBhbiIgb3IgQ09VTlRSWV9OQU1FPSJJbmRpYSJdJyBQQVNTSU5HIGRh dGEgQ09MVU1OUyAiQ09VTlRSWV9OQU1FIiB0ZXh0LCAiUkVHSU9OX0lEIiBpbnQpOwotIENPVU5U UllfTkFNRSB8IFJFR0lPTl9JRCAKLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCi0gSW5kaWEg ICAgICAgIHwgICAgICAgICAzCi0gSmFwYW4gICAgICAgIHwgICAgICAgICAzCi0oMiByb3dzKQot Ci1TRUxFQ1QgeG1sdGFibGUuKiBGUk9NIHhtbGRhdGEsIExBVEVSQUwgeG1sdGFibGUoJy9ST1dT L1JPV1tDT1VOVFJZX05BTUU9IkphcGFuIiBvciBDT1VOVFJZX05BTUU9IkluZGlhIl0nIFBBU1NJ TkcgZGF0YSBDT0xVTU5TIGlkIEZPUiBPUkRJTkFMSVRZLCAiQ09VTlRSWV9OQU1FIiB0ZXh0LCAi UkVHSU9OX0lEIiBpbnQpOwotIGlkIHwgQ09VTlRSWV9OQU1FIHwgUkVHSU9OX0lEIAotLS0tLSst LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQotICAxIHwgSW5kaWEgICAgICAgIHwgICAgICAgICAz Ci0gIDIgfCBKYXBhbiAgICAgICAgfCAgICAgICAgIDMKLSgyIHJvd3MpCi0KLVNFTEVDVCB4bWx0 YWJsZS4qIEZST00geG1sZGF0YSwgTEFURVJBTCB4bWx0YWJsZSgnL1JPV1MvUk9XW0NPVU5UUllf TkFNRT0iSmFwYW4iIG9yIENPVU5UUllfTkFNRT0iSW5kaWEiXScgUEFTU0lORyBkYXRhIENPTFVN TlMgaWQgaW50IFBBVEggJ0BpZCcsICJDT1VOVFJZX05BTUUiIHRleHQsICJSRUdJT05fSUQiIGlu dCk7Ci0gaWQgfCBDT1VOVFJZX05BTUUgfCBSRUdJT05fSUQgCi0tLS0tKy0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tCi0gIDQgfCBJbmRpYSAgICAgICAgfCAgICAgICAgIDMKLSAgNSB8IEphcGFu ICAgICAgICB8ICAgICAgICAgMwotKDIgcm93cykKLQotU0VMRUNUIHhtbHRhYmxlLiogRlJPTSB4 bWxkYXRhLCBMQVRFUkFMIHhtbHRhYmxlKCcvUk9XUy9ST1dbQ09VTlRSWV9OQU1FPSJKYXBhbiIg b3IgQ09VTlRSWV9OQU1FPSJJbmRpYSJdJyBQQVNTSU5HIGRhdGEgQ09MVU1OUyBpZCBpbnQgUEFU SCAnQGlkJyk7Ci0gaWQgCi0tLS0tCi0gIDQKLSAgNQotKDIgcm93cykKLQotU0VMRUNUIHhtbHRh YmxlLiogRlJPTSB4bWxkYXRhLCBMQVRFUkFMIHhtbHRhYmxlKCcvUk9XUy9ST1dbQ09VTlRSWV9O QU1FPSJKYXBhbiIgb3IgQ09VTlRSWV9OQU1FPSJJbmRpYSJdJyBQQVNTSU5HIGRhdGEgQ09MVU1O UyBpZCBGT1IgT1JESU5BTElUWSk7Ci0gaWQgCi0tLS0tCi0gIDEKLSAgMgotKDIgcm93cykKLQot U0VMRUNUIHhtbHRhYmxlLiogRlJPTSB4bWxkYXRhLCBMQVRFUkFMIHhtbHRhYmxlKCcvUk9XUy9S T1dbQ09VTlRSWV9OQU1FPSJKYXBhbiIgb3IgQ09VTlRSWV9OQU1FPSJJbmRpYSJdJyBQQVNTSU5H IGRhdGEgQ09MVU1OUyBpZCBpbnQgUEFUSCAnQGlkJywgIkNPVU5UUllfTkFNRSIgdGV4dCwgIlJF R0lPTl9JRCIgaW50LCByYXdkYXRhIHhtbCBQQVRIICcuJyk7Ci0gaWQgfCBDT1VOVFJZX05BTUUg fCBSRUdJT05fSUQgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmF3ZGF0YSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAotLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSAgNCB8IEluZGlhICAgICAgICB8ICAgICAgICAgMyB8IDxST1cgaWQ9IjQiPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAg fCAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgIDxDT1VOVFJZX0lEPklOPC9DT1VOVFJZX0lE PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgIHwgICAgICAgICAgICAg IHwgICAgICAgICAgIHwgICA8Q09VTlRSWV9OQU1FPkluZGlhPC9DT1VOVFJZX05BTUU+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKLSAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICB8 ICAgPFJFR0lPTl9JRD4zPC9SRUdJT05fSUQ+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCi0gICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgfCA8L1JPVz4KLSAgNSB8 IEphcGFuICAgICAgICB8ICAgICAgICAgMyB8IDxST1cgaWQ9IjUiPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgfCAgICAgICAgICAgICAg fCAgICAgICAgICAgfCAgIDxDT1VOVFJZX0lEPkpQPC9DT1VOVFJZX0lEPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKwotICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgIHwg ICA8Q09VTlRSWV9OQU1FPkphcGFuPC9DT1VOVFJZX05BTUU+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKLSAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgPFJFR0lPTl9JRD4z PC9SRUdJT05fSUQ+PFBSRU1JRVJfTkFNRT5TaW56byBBYmU8L1BSRU1JRVJfTkFNRT4rCi0gICAg fCAgICAgICAgICAgICAgfCAgICAgICAgICAgfCA8L1JPVz4KLSgyIHJvd3MpCi0KLVNFTEVDVCB4 bWx0YWJsZS4qIEZST00geG1sZGF0YSwgTEFURVJBTCB4bWx0YWJsZSgnL1JPV1MvUk9XW0NPVU5U UllfTkFNRT0iSmFwYW4iIG9yIENPVU5UUllfTkFNRT0iSW5kaWEiXScgUEFTU0lORyBkYXRhIENP TFVNTlMgaWQgaW50IFBBVEggJ0BpZCcsICJDT1VOVFJZX05BTUUiIHRleHQsICJSRUdJT05fSUQi IGludCwgcmF3ZGF0YSB4bWwgUEFUSCAnLi8qJyk7Ci0gaWQgfCBDT1VOVFJZX05BTUUgfCBSRUdJ T05fSUQgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmF3ZGF0YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCi0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0gIDQgfCBJbmRpYSAgICAgICAgfCAgICAgICAgIDMgfCA8Q09VTlRSWV9JRD5JTjwv Q09VTlRSWV9JRD48Q09VTlRSWV9OQU1FPkluZGlhPC9DT1VOVFJZX05BTUU+PFJFR0lPTl9JRD4z PC9SRUdJT05fSUQ+Ci0gIDUgfCBKYXBhbiAgICAgICAgfCAgICAgICAgIDMgfCA8Q09VTlRSWV9J RD5KUDwvQ09VTlRSWV9JRD48Q09VTlRSWV9OQU1FPkphcGFuPC9DT1VOVFJZX05BTUU+PFJFR0lP Tl9JRD4zPC9SRUdJT05fSUQ+PFBSRU1JRVJfTkFNRT5TaW56byBBYmU8L1BSRU1JRVJfTkFNRT4K LSgyIHJvd3MpCi0KLVNFTEVDVCAqIEZST00geG1sdGFibGUoJy9yb290JyBwYXNzaW5nICc8cm9v dD48ZWxlbWVudD5hMWE8IS0tIGFhYWEgLS0+YTJhPD9hYWFhYT8+IDwhLS16LS0+ICBiYmJiPHg+ eHh4PC94PmNjY2M8L2VsZW1lbnQ+PC9yb290PicgQ09MVU1OUyBlbGVtZW50IHRleHQpOwotICAg ICAgIGVsZW1lbnQgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIGExYWEyYSAgIGJi YmJ4eHhjY2NjCi0oMSByb3cpCi0KLVNFTEVDVCAqIEZST00geG1sdGFibGUoJy9yb290JyBwYXNz aW5nICc8cm9vdD48ZWxlbWVudD5hMWE8IS0tIGFhYWEgLS0+YTJhPD9hYWFhYT8+IDwhLS16LS0+ ICBiYmJiPHg+eHh4PC94PmNjY2M8L2VsZW1lbnQ+PC9yb290PicgQ09MVU1OUyBlbGVtZW50IHRl eHQgUEFUSCAnZWxlbWVudC90ZXh0KCknKTsgLS0gc2hvdWxkIGZhaWwKLUVSUk9SOiAgbW9yZSB0 aGFuIG9uZSB2YWx1ZSByZXR1cm5lZCBieSBjb2x1bW4gWFBhdGggZXhwcmVzc2lvbgotLS0gQ0RB VEEgdGVzdAotc2VsZWN0ICogZnJvbSB4bWx0YWJsZSgnZC9yJyBwYXNzaW5nICc8ZD48cj48Yz48 IVtDREFUQVs8aGVsbG8+ICYiPD4hPGE+Zm9vPC9hPl1dPjwvYz48L3I+PHI+PGM+MjwvYz48L3I+ PC9kPicgY29sdW1ucyBjIHRleHQpOwotICAgICAgICAgICAgYyAgICAgICAgICAgIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotIDxoZWxsbz4gJiI8PiE8YT5mb288L2E+Ci0gMgotKDIgcm93 cykKLQotLS0gWE1MIGJ1aWx0aW4gZW50aXRpZXMKLVNFTEVDVCAqIEZST00geG1sdGFibGUoJy94 L2EnIFBBU1NJTkcgJzx4PjxhPjxlbnQ+JmFwb3M7PC9lbnQ+PC9hPjxhPjxlbnQ+JnF1b3Q7PC9l bnQ+PC9hPjxhPjxlbnQ+JmFtcDs8L2VudD48L2E+PGE+PGVudD4mbHQ7PC9lbnQ+PC9hPjxhPjxl bnQ+Jmd0OzwvZW50PjwvYT48L3g+JyBDT0xVTU5TIGVudCB0ZXh0KTsKLSBlbnQgCi0tLS0tLQot ICcKLSAiCi0gJgotIDwKLSA+Ci0oNSByb3dzKQotCi1TRUxFQ1QgKiBGUk9NIHhtbHRhYmxlKCcv eC9hJyBQQVNTSU5HICc8eD48YT48ZW50PiZhcG9zOzwvZW50PjwvYT48YT48ZW50PiZxdW90Ozwv ZW50PjwvYT48YT48ZW50PiZhbXA7PC9lbnQ+PC9hPjxhPjxlbnQ+Jmx0OzwvZW50PjwvYT48YT48 ZW50PiZndDs8L2VudD48L2E+PC94PicgQ09MVU1OUyBlbnQgeG1sKTsKLSAgICAgICBlbnQgICAg ICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tCi0gPGVudD4nPC9lbnQ+Ci0gPGVudD4iPC9lbnQ+Ci0g PGVudD4mYW1wOzwvZW50PgotIDxlbnQ+Jmx0OzwvZW50PgotIDxlbnQ+Jmd0OzwvZW50PgotKDUg cm93cykKLQotRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQotU0VMRUNUICB4bWx0YWJsZS4q Ci0gICBGUk9NIChTRUxFQ1QgZGF0YSBGUk9NIHhtbGRhdGEpIHgsCi0gICAgICAgIExBVEVSQUwg WE1MVEFCTEUoJy9ST1dTL1JPVycKLSAgICAgICAgICAgICAgICAgICAgICAgICBQQVNTSU5HIGRh dGEKLSAgICAgICAgICAgICAgICAgICAgICAgICBDT0xVTU5TIGlkIGludCBQQVRIICdAaWQnLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9pZCBGT1IgT1JESU5BTElUWSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X25hbWUgdGV4dCBQQVRIICdD T1VOVFJZX05BTUUnIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvdW50cnlfaWQgdGV4dCBQQVRIICdDT1VOVFJZX0lEJywKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZWdpb25faWQgaW50IFBBVEggJ1JFR0lPTl9JRCcsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSBmbG9hdCBQQVRIICdTSVpFJywKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1bml0IHRleHQgUEFUSCAnU0laRS9AdW5pdCcsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlbWllcl9uYW1lIHRleHQgUEFUSCAn UFJFTUlFUl9OQU1FJyBERUZBVUxUICdub3Qgc3BlY2lmaWVkJyk7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLSBOZXN0ZWQgTG9vcAotICAgT3V0cHV0OiAieG1sdGFibGUiLmlk LCAieG1sdGFibGUiLl9pZCwgInhtbHRhYmxlIi5jb3VudHJ5X25hbWUsICJ4bWx0YWJsZSIuY291 bnRyeV9pZCwgInhtbHRhYmxlIi5yZWdpb25faWQsICJ4bWx0YWJsZSIuc2l6ZSwgInhtbHRhYmxl Ii51bml0LCAieG1sdGFibGUiLnByZW1pZXJfbmFtZQotICAgLT4gIFNlcSBTY2FuIG9uIHB1Ymxp Yy54bWxkYXRhCi0gICAgICAgICBPdXRwdXQ6IHhtbGRhdGEuZGF0YQotICAgLT4gIFRhYmxlIEZ1 bmN0aW9uIFNjYW4gb24gInhtbHRhYmxlIgotICAgICAgICAgT3V0cHV0OiAieG1sdGFibGUiLmlk LCAieG1sdGFibGUiLl9pZCwgInhtbHRhYmxlIi5jb3VudHJ5X25hbWUsICJ4bWx0YWJsZSIuY291 bnRyeV9pZCwgInhtbHRhYmxlIi5yZWdpb25faWQsICJ4bWx0YWJsZSIuc2l6ZSwgInhtbHRhYmxl Ii51bml0LCAieG1sdGFibGUiLnByZW1pZXJfbmFtZQotICAgICAgICAgVGFibGUgRnVuY3Rpb24g Q2FsbDogWE1MVEFCTEUoKCcvUk9XUy9ST1cnOjp0ZXh0KSBQQVNTSU5HICh4bWxkYXRhLmRhdGEp IENPTFVNTlMgaWQgaW50ZWdlciBQQVRIICgnQGlkJzo6dGV4dCksIF9pZCBGT1IgT1JESU5BTElU WSwgY291bnRyeV9uYW1lIHRleHQgUEFUSCAoJ0NPVU5UUllfTkFNRSc6OnRleHQpIE5PVCBOVUxM LCBjb3VudHJ5X2lkIHRleHQgUEFUSCAoJ0NPVU5UUllfSUQnOjp0ZXh0KSwgcmVnaW9uX2lkIGlu dGVnZXIgUEFUSCAoJ1JFR0lPTl9JRCc6OnRleHQpLCBzaXplIGRvdWJsZSBwcmVjaXNpb24gUEFU SCAoJ1NJWkUnOjp0ZXh0KSwgdW5pdCB0ZXh0IFBBVEggKCdTSVpFL0B1bml0Jzo6dGV4dCksIHBy ZW1pZXJfbmFtZSB0ZXh0IERFRkFVTFQgKCdub3Qgc3BlY2lmaWVkJzo6dGV4dCkgUEFUSCAoJ1BS RU1JRVJfTkFNRSc6OnRleHQpKQotKDcgcm93cykKLQotLS0gdGVzdCBxdWFsCi1TRUxFQ1QgeG1s dGFibGUuKiBGUk9NIHhtbGRhdGEsIExBVEVSQUwgeG1sdGFibGUoJy9ST1dTL1JPV1tDT1VOVFJZ X05BTUU9IkphcGFuIiBvciBDT1VOVFJZX05BTUU9IkluZGlhIl0nIFBBU1NJTkcgZGF0YSBDT0xV TU5TICJDT1VOVFJZX05BTUUiIHRleHQsICJSRUdJT05fSUQiIGludCkgV0hFUkUgIkNPVU5UUllf TkFNRSIgPSAnSmFwYW4nOwotIENPVU5UUllfTkFNRSB8IFJFR0lPTl9JRCAKLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tCi0gSmFwYW4gICAgICAgIHwgICAgICAgICAzCi0oMSByb3cpCi0KLUVY UExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikKLVNFTEVDVCBmLiogRlJPTSB4bWxkYXRhLCBMQVRF UkFMIHhtbHRhYmxlKCcvUk9XUy9ST1dbQ09VTlRSWV9OQU1FPSJKYXBhbiIgb3IgQ09VTlRSWV9O QU1FPSJJbmRpYSJdJyBQQVNTSU5HIGRhdGEgQ09MVU1OUyAiQ09VTlRSWV9OQU1FIiB0ZXh0LCAi UkVHSU9OX0lEIiBpbnQpIEFTIGYgV0hFUkUgIkNPVU5UUllfTkFNRSIgPSAnSmFwYW4nOwotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotIE5lc3RlZCBMb29wCi0gICBPdXRwdXQ6IGYuIkNPVU5UUllfTkFNRSIs IGYuIlJFR0lPTl9JRCIKLSAgIC0+ICBTZXEgU2NhbiBvbiBwdWJsaWMueG1sZGF0YQotICAgICAg ICAgT3V0cHV0OiB4bWxkYXRhLmRhdGEKLSAgIC0+ICBUYWJsZSBGdW5jdGlvbiBTY2FuIG9uICJ4 bWx0YWJsZSIgZgotICAgICAgICAgT3V0cHV0OiBmLiJDT1VOVFJZX05BTUUiLCBmLiJSRUdJT05f SUQiCi0gICAgICAgICBUYWJsZSBGdW5jdGlvbiBDYWxsOiBYTUxUQUJMRSgoJy9ST1dTL1JPV1tD T1VOVFJZX05BTUU9IkphcGFuIiBvciBDT1VOVFJZX05BTUU9IkluZGlhIl0nOjp0ZXh0KSBQQVNT SU5HICh4bWxkYXRhLmRhdGEpIENPTFVNTlMgIkNPVU5UUllfTkFNRSIgdGV4dCwgIlJFR0lPTl9J RCIgaW50ZWdlcikKLSAgICAgICAgIEZpbHRlcjogKGYuIkNPVU5UUllfTkFNRSIgPSAnSmFwYW4n Ojp0ZXh0KQotKDggcm93cykKLQotRVhQTEFJTiAoVkVSQk9TRSwgRk9STUFUIEpTT04sIENPU1RT IE9GRikKLVNFTEVDVCBmLiogRlJPTSB4bWxkYXRhLCBMQVRFUkFMIHhtbHRhYmxlKCcvUk9XUy9S T1dbQ09VTlRSWV9OQU1FPSJKYXBhbiIgb3IgQ09VTlRSWV9OQU1FPSJJbmRpYSJdJyBQQVNTSU5H IGRhdGEgQ09MVU1OUyAiQ09VTlRSWV9OQU1FIiB0ZXh0LCAiUkVHSU9OX0lEIiBpbnQpIEFTIGYg V0hFUkUgIkNPVU5UUllfTkFNRSIgPSAnSmFwYW4nOwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgeyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKwotICAgICAiUGxhbiI6IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICAgICJOb2RlIFR5cGUi OiAiTmVzdGVkIExvb3AiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKwotICAgICAgICJQYXJhbGxlbCBBd2FyZSI6IGZhbHNlLCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICAgICJBc3luYyBDYXBhYmxlIjogZmFs c2UsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAg ICAgICJKb2luIFR5cGUiOiAiSW5uZXIiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKwotICAgICAgICJEaXNhYmxlZCI6IGZhbHNlLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICAgICJPdXRw dXQiOiBbImYuXCJDT1VOVFJZX05BTUVcIiIsICJmLlwiUkVHSU9OX0lEXCIiXSwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKwotICAgICAgICJJbm5lciBVbmlxdWUiOiBmYWxzZSwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICAgICJQbGFucyI6IFsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KwotICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICAgICAgICAiTm9kZSBUeXBlIjogIlNlcSBT Y2FuIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICAg ICAgICAiUGFyZW50IFJlbGF0aW9uc2hpcCI6ICJPdXRlciIsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKwotICAgICAgICAgICAiUGFyYWxsZWwgQXdhcmUiOiBmYWxzZSwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICAgICAgICAiQXN5 bmMgQ2FwYWJsZSI6IGZhbHNlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKwotICAgICAgICAgICAiUmVsYXRpb24gTmFtZSI6ICJ4bWxkYXRhIiwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICAgICAgICAiU2NoZW1hIjogInB1 YmxpYyIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwot ICAgICAgICAgICAiQWxpYXMiOiAieG1sZGF0YSIsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKwotICAgICAgICAgICAiRGlzYWJsZWQiOiBmYWxzZSwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICAgICAg ICAiT3V0cHV0IjogWyJ4bWxkYXRhLmRhdGEiXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKwotICAgICAgICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICAgICAgeyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKwotICAgICAgICAgICAiTm9kZSBUeXBlIjogIlRhYmxlIEZ1bmN0aW9uIFNjYW4iLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICAgICAgICAiUGFyZW50IFJlbGF0aW9u c2hpcCI6ICJJbm5lciIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAg ICAgICAgICAiUGFyYWxsZWwgQXdhcmUiOiBmYWxzZSwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKwotICAgICAgICAgICAiQXN5bmMgQ2FwYWJsZSI6IGZhbHNlLCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICAgICAgICAi VGFibGUgRnVuY3Rpb24gTmFtZSI6ICJ4bWx0YWJsZSIsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKwotICAgICAgICAgICAiQWxpYXMiOiAiZiIsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICAgICAgICAiRGlzYWJsZWQi OiBmYWxzZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KwotICAgICAgICAgICAiT3V0cHV0IjogWyJmLlwiQ09VTlRSWV9OQU1FXCIiLCAiZi5cIlJFR0lP Tl9JRFwiIl0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICAgICAgICAiVGFibGUgRnVuY3Rpb24gQ2Fs bCI6ICJYTUxUQUJMRSgoJy9ST1dTL1JPV1tDT1VOVFJZX05BTUU9XCJKYXBhblwiIG9yIENPVU5U UllfTkFNRT1cIkluZGlhXCJdJzo6dGV4dCkgUEFTU0lORyAoeG1sZGF0YS5kYXRhKSBDT0xVTU5T IFwiQ09VTlRSWV9OQU1FXCIgdGV4dCwgXCJSRUdJT05fSURcIiBpbnRlZ2VyKSIsKwotICAgICAg ICAgICAiRmlsdGVyIjogIihmLlwiQ09VTlRSWV9OQU1FXCIgPSAnSmFwYW4nOjp0ZXh0KSIgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKwotICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICAgIF0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKwotICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgfSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwot IF0KLSgxIHJvdykKLQotLS0gc2hvdWxkIHRvIHdvcmsgd2l0aCBtb3JlIGRhdGEKLUlOU0VSVCBJ TlRPIHhtbGRhdGEgVkFMVUVTKCc8Uk9XUz4KLTxST1cgaWQ9IjEwIj4KLSAgPENPVU5UUllfSUQ+ Q1o8L0NPVU5UUllfSUQ+Ci0gIDxDT1VOVFJZX05BTUU+Q3plY2ggUmVwdWJsaWM8L0NPVU5UUllf TkFNRT4KLSAgPFJFR0lPTl9JRD4yPC9SRUdJT05fSUQ+PFBSRU1JRVJfTkFNRT5NaWxvcyBaZW1h bjwvUFJFTUlFUl9OQU1FPgotPC9ST1c+Ci08Uk9XIGlkPSIxMSI+Ci0gIDxDT1VOVFJZX0lEPkRF PC9DT1VOVFJZX0lEPgotICA8Q09VTlRSWV9OQU1FPkdlcm1hbnk8L0NPVU5UUllfTkFNRT4KLSAg PFJFR0lPTl9JRD4yPC9SRUdJT05fSUQ+Ci08L1JPVz4KLTxST1cgaWQ9IjEyIj4KLSAgPENPVU5U UllfSUQ+RlI8L0NPVU5UUllfSUQ+Ci0gIDxDT1VOVFJZX05BTUU+RnJhbmNlPC9DT1VOVFJZX05B TUU+Ci0gIDxSRUdJT05fSUQ+MjwvUkVHSU9OX0lEPgotPC9ST1c+Ci08L1JPV1M+Jyk7Ci1JTlNF UlQgSU5UTyB4bWxkYXRhIFZBTFVFUygnPFJPV1M+Ci08Uk9XIGlkPSIyMCI+Ci0gIDxDT1VOVFJZ X0lEPkVHPC9DT1VOVFJZX0lEPgotICA8Q09VTlRSWV9OQU1FPkVneXB0PC9DT1VOVFJZX05BTUU+ Ci0gIDxSRUdJT05fSUQ+MTwvUkVHSU9OX0lEPgotPC9ST1c+Ci08Uk9XIGlkPSIyMSI+Ci0gIDxD T1VOVFJZX0lEPlNEPC9DT1VOVFJZX0lEPgotICA8Q09VTlRSWV9OQU1FPlN1ZGFuPC9DT1VOVFJZ X05BTUU+Ci0gIDxSRUdJT05fSUQ+MTwvUkVHSU9OX0lEPgotPC9ST1c+Ci08L1JPV1M+Jyk7Ci1T RUxFQ1QgIHhtbHRhYmxlLioKLSAgIEZST00gKFNFTEVDVCBkYXRhIEZST00geG1sZGF0YSkgeCwK LSAgICAgICAgTEFURVJBTCBYTUxUQUJMRSgnL1JPV1MvUk9XJwotICAgICAgICAgICAgICAgICAg ICAgICAgIFBBU1NJTkcgZGF0YQotICAgICAgICAgICAgICAgICAgICAgICAgIENPTFVNTlMgaWQg aW50IFBBVEggJ0BpZCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2lkIEZP UiBPUkRJTkFMSVRZLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlf bmFtZSB0ZXh0IFBBVEggJ0NPVU5UUllfTkFNRScgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY291bnRyeV9pZCB0ZXh0IFBBVEggJ0NPVU5UUllfSUQnLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lvbl9pZCBpbnQgUEFUSCAnUkVHSU9O X0lEJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplIGZsb2F0IFBBVEgg J1NJWkUnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXQgdGV4dCBQQVRI ICdTSVpFL0B1bml0JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVtaWVy X25hbWUgdGV4dCBQQVRIICdQUkVNSUVSX05BTUUnIERFRkFVTFQgJ25vdCBzcGVjaWZpZWQnKTsK LSBpZCB8IF9pZCB8ICBjb3VudHJ5X25hbWUgIHwgY291bnRyeV9pZCB8IHJlZ2lvbl9pZCB8IHNp emUgfCB1bml0IHwgcHJlbWllcl9uYW1lICAKLS0tLS0rLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0KLSAg MSB8ICAgMSB8IEF1c3RyYWxpYSAgICAgIHwgQVUgICAgICAgICB8ICAgICAgICAgMyB8ICAgICAg fCAgICAgIHwgbm90IHNwZWNpZmllZAotICAyIHwgICAyIHwgQ2hpbmEgICAgICAgICAgfCBDTiAg ICAgICAgIHwgICAgICAgICAzIHwgICAgICB8ICAgICAgfCBub3Qgc3BlY2lmaWVkCi0gIDMgfCAg IDMgfCBIb25nS29uZyAgICAgICB8IEhLICAgICAgICAgfCAgICAgICAgIDMgfCAgICAgIHwgICAg ICB8IG5vdCBzcGVjaWZpZWQKLSAgNCB8ICAgNCB8IEluZGlhICAgICAgICAgIHwgSU4gICAgICAg ICB8ICAgICAgICAgMyB8ICAgICAgfCAgICAgIHwgbm90IHNwZWNpZmllZAotICA1IHwgICA1IHwg SmFwYW4gICAgICAgICAgfCBKUCAgICAgICAgIHwgICAgICAgICAzIHwgICAgICB8ICAgICAgfCBT aW56byBBYmUKLSAgNiB8ICAgNiB8IFNpbmdhcG9yZSAgICAgIHwgU0cgICAgICAgICB8ICAgICAg ICAgMyB8ICA3OTEgfCBrbSAgIHwgbm90IHNwZWNpZmllZAotIDEwIHwgICAxIHwgQ3plY2ggUmVw dWJsaWMgfCBDWiAgICAgICAgIHwgICAgICAgICAyIHwgICAgICB8ICAgICAgfCBNaWxvcyBaZW1h bgotIDExIHwgICAyIHwgR2VybWFueSAgICAgICAgfCBERSAgICAgICAgIHwgICAgICAgICAyIHwg ICAgICB8ICAgICAgfCBub3Qgc3BlY2lmaWVkCi0gMTIgfCAgIDMgfCBGcmFuY2UgICAgICAgICB8 IEZSICAgICAgICAgfCAgICAgICAgIDIgfCAgICAgIHwgICAgICB8IG5vdCBzcGVjaWZpZWQKLSAy MCB8ICAgMSB8IEVneXB0ICAgICAgICAgIHwgRUcgICAgICAgICB8ICAgICAgICAgMSB8ICAgICAg fCAgICAgIHwgbm90IHNwZWNpZmllZAotIDIxIHwgICAyIHwgU3VkYW4gICAgICAgICAgfCBTRCAg ICAgICAgIHwgICAgICAgICAxIHwgICAgICB8ICAgICAgfCBub3Qgc3BlY2lmaWVkCi0oMTEgcm93 cykKLQotU0VMRUNUICB4bWx0YWJsZS4qCi0gICBGUk9NIChTRUxFQ1QgZGF0YSBGUk9NIHhtbGRh dGEpIHgsCi0gICAgICAgIExBVEVSQUwgWE1MVEFCTEUoJy9ST1dTL1JPVycKLSAgICAgICAgICAg ICAgICAgICAgICAgICBQQVNTSU5HIGRhdGEKLSAgICAgICAgICAgICAgICAgICAgICAgICBDT0xV TU5TIGlkIGludCBQQVRIICdAaWQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF9pZCBGT1IgT1JESU5BTElUWSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b3VudHJ5X25hbWUgdGV4dCBQQVRIICdDT1VOVFJZX05BTUUnIE5PVCBOVUxMLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfaWQgdGV4dCBQQVRIICdDT1VOVFJZX0lE JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpb25faWQgaW50IFBBVEgg J1JFR0lPTl9JRCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSBmbG9h dCBQQVRIICdTSVpFJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bml0IHRl eHQgUEFUSCAnU0laRS9AdW5pdCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cHJlbWllcl9uYW1lIHRleHQgUEFUSCAnUFJFTUlFUl9OQU1FJyBERUZBVUxUICdub3Qgc3BlY2lm aWVkJykKLSAgV0hFUkUgcmVnaW9uX2lkID0gMjsKLSBpZCB8IF9pZCB8ICBjb3VudHJ5X25hbWUg IHwgY291bnRyeV9pZCB8IHJlZ2lvbl9pZCB8IHNpemUgfCB1bml0IHwgcHJlbWllcl9uYW1lICAK LS0tLS0rLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0KLSAxMCB8ICAgMSB8IEN6ZWNoIFJlcHVibGljIHwg Q1ogICAgICAgICB8ICAgICAgICAgMiB8ICAgICAgfCAgICAgIHwgTWlsb3MgWmVtYW4KLSAxMSB8 ICAgMiB8IEdlcm1hbnkgICAgICAgIHwgREUgICAgICAgICB8ICAgICAgICAgMiB8ICAgICAgfCAg ICAgIHwgbm90IHNwZWNpZmllZAotIDEyIHwgICAzIHwgRnJhbmNlICAgICAgICAgfCBGUiAgICAg ICAgIHwgICAgICAgICAyIHwgICAgICB8ICAgICAgfCBub3Qgc3BlY2lmaWVkCi0oMyByb3dzKQot Ci1FWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCi1TRUxFQ1QgIHhtbHRhYmxlLioKLSAgIEZS T00gKFNFTEVDVCBkYXRhIEZST00geG1sZGF0YSkgeCwKLSAgICAgICAgTEFURVJBTCBYTUxUQUJM RSgnL1JPV1MvUk9XJwotICAgICAgICAgICAgICAgICAgICAgICAgIFBBU1NJTkcgZGF0YQotICAg ICAgICAgICAgICAgICAgICAgICAgIENPTFVNTlMgaWQgaW50IFBBVEggJ0BpZCcsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgX2lkIEZPUiBPUkRJTkFMSVRZLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfbmFtZSB0ZXh0IFBBVEggJ0NPVU5UUllf TkFNRScgTk9UIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRy eV9pZCB0ZXh0IFBBVEggJ0NPVU5UUllfSUQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJlZ2lvbl9pZCBpbnQgUEFUSCAnUkVHSU9OX0lEJywKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzaXplIGZsb2F0IFBBVEggJ1NJWkUnLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVuaXQgdGV4dCBQQVRIICdTSVpFL0B1bml0JywKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVtaWVyX25hbWUgdGV4dCBQQVRIICdQUkVNSUVS X05BTUUnIERFRkFVTFQgJ25vdCBzcGVjaWZpZWQnKQotICBXSEVSRSByZWdpb25faWQgPSAyOwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gTmVzdGVkIExvb3AKLSAgIE91dHB1 dDogInhtbHRhYmxlIi5pZCwgInhtbHRhYmxlIi5faWQsICJ4bWx0YWJsZSIuY291bnRyeV9uYW1l LCAieG1sdGFibGUiLmNvdW50cnlfaWQsICJ4bWx0YWJsZSIucmVnaW9uX2lkLCAieG1sdGFibGUi LnNpemUsICJ4bWx0YWJsZSIudW5pdCwgInhtbHRhYmxlIi5wcmVtaWVyX25hbWUKLSAgIC0+ICBT ZXEgU2NhbiBvbiBwdWJsaWMueG1sZGF0YQotICAgICAgICAgT3V0cHV0OiB4bWxkYXRhLmRhdGEK LSAgIC0+ICBUYWJsZSBGdW5jdGlvbiBTY2FuIG9uICJ4bWx0YWJsZSIKLSAgICAgICAgIE91dHB1 dDogInhtbHRhYmxlIi5pZCwgInhtbHRhYmxlIi5faWQsICJ4bWx0YWJsZSIuY291bnRyeV9uYW1l LCAieG1sdGFibGUiLmNvdW50cnlfaWQsICJ4bWx0YWJsZSIucmVnaW9uX2lkLCAieG1sdGFibGUi LnNpemUsICJ4bWx0YWJsZSIudW5pdCwgInhtbHRhYmxlIi5wcmVtaWVyX25hbWUKLSAgICAgICAg IFRhYmxlIEZ1bmN0aW9uIENhbGw6IFhNTFRBQkxFKCgnL1JPV1MvUk9XJzo6dGV4dCkgUEFTU0lO RyAoeG1sZGF0YS5kYXRhKSBDT0xVTU5TIGlkIGludGVnZXIgUEFUSCAoJ0BpZCc6OnRleHQpLCBf aWQgRk9SIE9SRElOQUxJVFksIGNvdW50cnlfbmFtZSB0ZXh0IFBBVEggKCdDT1VOVFJZX05BTUUn Ojp0ZXh0KSBOT1QgTlVMTCwgY291bnRyeV9pZCB0ZXh0IFBBVEggKCdDT1VOVFJZX0lEJzo6dGV4 dCksIHJlZ2lvbl9pZCBpbnRlZ2VyIFBBVEggKCdSRUdJT05fSUQnOjp0ZXh0KSwgc2l6ZSBkb3Vi bGUgcHJlY2lzaW9uIFBBVEggKCdTSVpFJzo6dGV4dCksIHVuaXQgdGV4dCBQQVRIICgnU0laRS9A dW5pdCc6OnRleHQpLCBwcmVtaWVyX25hbWUgdGV4dCBERUZBVUxUICgnbm90IHNwZWNpZmllZCc6 OnRleHQpIFBBVEggKCdQUkVNSUVSX05BTUUnOjp0ZXh0KSkKLSAgICAgICAgIEZpbHRlcjogKCJ4 bWx0YWJsZSIucmVnaW9uX2lkID0gMikKLSg4IHJvd3MpCi0KLS0tIHNob3VsZCBmYWlsLCBOVUxM IHZhbHVlCi1TRUxFQ1QgIHhtbHRhYmxlLioKLSAgIEZST00gKFNFTEVDVCBkYXRhIEZST00geG1s ZGF0YSkgeCwKLSAgICAgICAgTEFURVJBTCBYTUxUQUJMRSgnL1JPV1MvUk9XJwotICAgICAgICAg ICAgICAgICAgICAgICAgIFBBU1NJTkcgZGF0YQotICAgICAgICAgICAgICAgICAgICAgICAgIENP TFVNTlMgaWQgaW50IFBBVEggJ0BpZCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgX2lkIEZPUiBPUkRJTkFMSVRZLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvdW50cnlfbmFtZSB0ZXh0IFBBVEggJ0NPVU5UUllfTkFNRScgTk9UIE5VTEwsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9pZCB0ZXh0IFBBVEggJ0NPVU5UUllf SUQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lvbl9pZCBpbnQgUEFU SCAnUkVHSU9OX0lEJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplIGZs b2F0IFBBVEggJ1NJWkUnIE5PVCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuaXQgdGV4dCBQQVRIICdTSVpFL0B1bml0JywKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwcmVtaWVyX25hbWUgdGV4dCBQQVRIICdQUkVNSUVSX05BTUUnIERFRkFVTFQg J25vdCBzcGVjaWZpZWQnKTsKLUVSUk9SOiAgbnVsbCBpcyBub3QgYWxsb3dlZCBpbiBjb2x1bW4g InNpemUiCi0tLSBpZiBhbGwgaXMgb2ssIHRoZW4gcmVzdWx0IGlzIGVtcHR5Ci0tLSBvbmUgbGlu ZSB4bWwgdGVzdAotV0lUSAotICAgeCBBUyAoU0VMRUNUIHByb25hbWUsIHByb293bmVyLCBwcm9j b3N0OjpudW1lcmljLCBwcm9uYXJncywKLSAgICAgICAgICAgICAgICBhcnJheV90b19zdHJpbmco cHJvYXJnbmFtZXMsJywnKSBhcyBwcm9hcmduYW1lcywKLSAgICAgICAgICAgICAgICBjYXNlIHdo ZW4gcHJvYXJndHlwZXMgPD4gJycgdGhlbiBhcnJheV90b19zdHJpbmcocHJvYXJndHlwZXM6Om9p ZFtdLCcsJykgZW5kIGFzIHByb2FyZ3R5cGVzCi0gICAgICAgICAgIEZST00gcGdfcHJvYyBXSEVS RSBwcm9uYW1lID0gJ2ZfbGVhaycpLAotICAgeSBBUyAoU0VMRUNUIHhtbGVsZW1lbnQobmFtZSBw cm9jLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sZm9yZXN0KHByb25hbWUsIHByb293 bmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nvc3QsIHByb25h cmdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2FyZ25hbWVzLCBw cm9hcmd0eXBlcykpIGFzIHByb2MKLSAgICAgICAgICAgRlJPTSB4KSwKLSAgIHogQVMgKFNFTEVD VCB4bWx0YWJsZS4qCi0gICAgICAgICAgIEZST00geSwKLSAgICAgICAgICAgICAgICBMQVRFUkFM IHhtbHRhYmxlKCcvcHJvYycgUEFTU0lORyBwcm9jCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDT0xVTU5TIHByb25hbWUgbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcHJvb3duZXIgb2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwcm9jb3N0IGZsb2F0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwcm9uYXJncyBpbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHByb2FyZ25hbWVzIHRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHByb2FyZ3R5cGVzIHRleHQpKQotICAgU0VMRUNUICogRlJPTSB6Ci0g ICBFWENFUFQgU0VMRUNUICogRlJPTSB4OwotIHByb25hbWUgfCBwcm9vd25lciB8IHByb2Nvc3Qg fCBwcm9uYXJncyB8IHByb2FyZ25hbWVzIHwgcHJvYXJndHlwZXMgCi0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSgw IHJvd3MpCi0KLS0tIG11bHRpIGxpbmUgeG1sIHRlc3QsIHJlc3VsdCBzaG91bGQgYmUgZW1wdHkg dG9vCi1XSVRICi0gICB4IEFTIChTRUxFQ1QgcHJvbmFtZSwgcHJvb3duZXIsIHByb2Nvc3Q6Om51 bWVyaWMsIHByb25hcmdzLAotICAgICAgICAgICAgICAgIGFycmF5X3RvX3N0cmluZyhwcm9hcmdu YW1lcywnLCcpIGFzIHByb2FyZ25hbWVzLAotICAgICAgICAgICAgICAgIGNhc2Ugd2hlbiBwcm9h cmd0eXBlcyA8PiAnJyB0aGVuIGFycmF5X3RvX3N0cmluZyhwcm9hcmd0eXBlczo6b2lkW10sJywn KSBlbmQgYXMgcHJvYXJndHlwZXMKLSAgICAgICAgICAgRlJPTSBwZ19wcm9jKSwKLSAgIHkgQVMg KFNFTEVDVCB4bWxlbGVtZW50KG5hbWUgZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg IHhtbGFnZyh4bWxlbGVtZW50KG5hbWUgcHJvYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHhtbGZvcmVzdChwcm9uYW1lLCBwcm9vd25lciwgcHJvY29zdCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw cm9uYXJncywgcHJvYXJnbmFtZXMsIHByb2FyZ3R5cGVzKSkpKSBhcyBkb2MKLSAgICAgICAgICAg RlJPTSB4KSwKLSAgIHogQVMgKFNFTEVDVCB4bWx0YWJsZS4qCi0gICAgICAgICAgIEZST00geSwK LSAgICAgICAgICAgICAgICBMQVRFUkFMIHhtbHRhYmxlKCcvZGF0YS9wcm9jJyBQQVNTSU5HIGRv YwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyBwcm9uYW1lIG5hbWUs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb293bmVyIG9pZCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY29zdCBmbG9hdCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvbmFyZ3MgaW50LAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9hcmduYW1lcyB0ZXh0 LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9hcmd0eXBlcyB0 ZXh0KSkKLSAgIFNFTEVDVCAqIEZST00gegotICAgRVhDRVBUIFNFTEVDVCAqIEZST00geDsKLSBw cm9uYW1lIHwgcHJvb3duZXIgfCBwcm9jb3N0IHwgcHJvbmFyZ3MgfCBwcm9hcmduYW1lcyB8IHBy b2FyZ3R5cGVzIAotLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0oMCByb3dzKQotCi1DUkVBVEUgVEFCTEUgeG1sdGVz dDIoeCB4bWwsIF9wYXRoIHRleHQpOwotSU5TRVJUIElOVE8geG1sdGVzdDIgVkFMVUVTKCc8ZD48 cj48YWM+MTwvYWM+PC9yPjwvZD4nLCAnQScpOwotSU5TRVJUIElOVE8geG1sdGVzdDIgVkFMVUVT KCc8ZD48cj48YmM+MjwvYmM+PC9yPjwvZD4nLCAnQicpOwotSU5TRVJUIElOVE8geG1sdGVzdDIg VkFMVUVTKCc8ZD48cj48Y2M+MzwvY2M+PC9yPjwvZD4nLCAnQycpOwotSU5TRVJUIElOVE8geG1s dGVzdDIgVkFMVUVTKCc8ZD48cj48ZGM+MjwvZGM+PC9yPjwvZD4nLCAnRCcpOwotU0VMRUNUIHht bHRhYmxlLiogRlJPTSB4bWx0ZXN0MiwgTEFURVJBTCB4bWx0YWJsZSgnL2QvcicgUEFTU0lORyB4 IENPTFVNTlMgYSBpbnQgUEFUSCAnJyB8fCBsb3dlcihfcGF0aCkgfHwgJ2MnKTsKLSBhIAotLS0t Ci0gMQotIDIKLSAzCi0gMgotKDQgcm93cykKLQotU0VMRUNUIHhtbHRhYmxlLiogRlJPTSB4bWx0 ZXN0MiwgTEFURVJBTCB4bWx0YWJsZSgoJy9kL3IvJyB8fCBsb3dlcihfcGF0aCkgfHwgJ2MnKSBQ QVNTSU5HIHggQ09MVU1OUyBhIGludCBQQVRIICcuJyk7Ci0gYSAKLS0tLQotIDEKLSAyCi0gMwot IDIKLSg0IHJvd3MpCi0KLVNFTEVDVCB4bWx0YWJsZS4qIEZST00geG1sdGVzdDIsIExBVEVSQUwg eG1sdGFibGUoKCcvZC9yLycgfHwgbG93ZXIoX3BhdGgpIHx8ICdjJykgUEFTU0lORyB4IENPTFVN TlMgYSBpbnQgUEFUSCAneCcgREVGQVVMVCBhc2NpaShfcGF0aCkgLSA1NCk7Ci0gYSAgCi0tLS0t Ci0gMTEKLSAxMgotIDEzCi0gMTQKLSg0IHJvd3MpCi0KLS0tIFhQYXRoIHJlc3VsdCBjYW4gYmUg Ym9vbGVhbiBvciBudW1iZXIgdG9vCi1TRUxFQ1QgKiBGUk9NIFhNTFRBQkxFKCcqJyBQQVNTSU5H ICc8YT5hPC9hPicgQ09MVU1OUyBhIHhtbCBQQVRIICcuJywgYiB0ZXh0IFBBVEggJy4nLCBjIHRl eHQgUEFUSCAnImhpIicsIGQgYm9vbGVhbiBQQVRIICcuID0gImEiJywgZSBpbnRlZ2VyIFBBVEgg J3N0cmluZy1sZW5ndGgoLiknKTsKLSAgICBhICAgICB8IGIgfCBjICB8IGQgfCBlIAotLS0tLS0t LS0tLSstLS0rLS0tLSstLS0rLS0tCi0gPGE+YTwvYT4gfCBhIHwgaGkgfCB0IHwgMQotKDEgcm93 KQotCi1ceAotU0VMRUNUICogRlJPTSBYTUxUQUJMRSgnKicgUEFTU0lORyAnPGU+cHJlPCEtLWMx LS0+PD9waSBhcmc/PjwhW0NEQVRBWyZlbnQxXV0+PG4yPiZhbXA7ZGVlcDwvbjI+cG9zdDwvZT4n IENPTFVNTlMgeCB4bWwgUEFUSCAnL2UvbjInLCB5IHhtbCBQQVRIICcvJyk7Ci0tWyBSRUNPUkQg MSBdLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLXggfCA8bjI+JmFtcDtkZWVwPC9uMj4KLXkgfCA8ZT5wcmU8IS0tYzEtLT48P3BpIGFy Zz8+PCFbQ0RBVEFbJmVudDFdXT48bjI+JmFtcDtkZWVwPC9uMj5wb3N0PC9lPisKLSAgfCAKLQot XHgKLVNFTEVDVCAqIEZST00gWE1MVEFCTEUoJy4nIFBBU1NJTkcgWE1MRUxFTUVOVChOQU1FIGEp IGNvbHVtbnMgYSB2YXJjaGFyKDIwKSBQQVRIICciPGZvby8+IicsIGIgeG1sIFBBVEggJyI8Zm9v Lz4iJyk7Ci0gICBhICAgIHwgICAgICBiICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0K LSA8Zm9vLz4gfCAmbHQ7Zm9vLyZndDsKLSgxIHJvdykKLQotU0VMRUNUIHhtbHRleHQoTlVMTCk7 Ci0geG1sdGV4dCAKLS0tLS0tLS0tLQotIAotKDEgcm93KQotCi1TRUxFQ1QgeG1sdGV4dCgnJyk7 Ci0geG1sdGV4dCAKLS0tLS0tLS0tLQotIAotKDEgcm93KQotCi1TRUxFQ1QgeG1sdGV4dCgnICAn KTsKLSB4bWx0ZXh0IAotLS0tLS0tLS0tCi0gICAKLSgxIHJvdykKLQotU0VMRUNUIHhtbHRleHQo J2ZvbyBgJF8tKz89Kl4lIXwvXCgpW117fScpOwotICAgICAgICAgeG1sdGV4dCAgICAgICAgICAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gZm9vIGAkXy0rPz0qXiUhfC9cKClbXXt9Ci0o MSByb3cpCi0KLVNFTEVDVCB4bWx0ZXh0KCdmb28gJiA8ImJhciI+Jyk7Ci0gICAgICAgICAgICAg IHhtbHRleHQgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSBmb28gJmFtcDsgJmx0OyZxdW90O2JhciZxdW90OyZndDsKLSgxIHJvdykKLQotU0VMRUNU IHhtbHRleHQoJ3gnfHwgJzxQPjczPC9QPic6OnhtbCB8fCAuNDIgfHwgdHJ1ZSB8fCAnaic6OmNo YXIpOwotICAgICAgICAgICAgIHhtbHRleHQgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLSB4Jmx0O1AmZ3Q7NzMmbHQ7L1AmZ3Q7MC40MnRydWVqCi0oMSBy b3cpCi0KK0NSRUFURSBUQUJMRSB4bWx0ZXN0ICgNCisgICAgaWQgaW50LA0KKyAgICBkYXRhIHht bA0KKyk7DQorSU5TRVJUIElOVE8geG1sdGVzdCBWQUxVRVMgKDEsICc8dmFsdWU+b25lPC92YWx1 ZT4nKTsNCitJTlNFUlQgSU5UTyB4bWx0ZXN0IFZBTFVFUyAoMiwgJzx2YWx1ZT50d288L3ZhbHVl PicpOw0KK0lOU0VSVCBJTlRPIHhtbHRlc3QgVkFMVUVTICgzLCAnPHdyb25nJyk7DQorRVJST1I6 ICBpbnZhbGlkIFhNTCBjb250ZW50DQorTElORSAxOiBJTlNFUlQgSU5UTyB4bWx0ZXN0IFZBTFVF UyAoMywgJzx3cm9uZycpOw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4NCitERVRBSUw6ICBsaW5lIDE6IENvdWxkbid0IGZpbmQgZW5kIG9mIFN0YXJ0IFRhZyB3cm9u ZyBsaW5lIDENCis8d3JvbmcNCisgICAgICBeDQorU0VMRUNUICogRlJPTSB4bWx0ZXN0Ow0KKyBp ZCB8ICAgICAgICBkYXRhICAgICAgICANCistLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tDQorICAx IHwgPHZhbHVlPm9uZTwvdmFsdWU+DQorICAyIHwgPHZhbHVlPnR3bzwvdmFsdWU+DQorKDIgcm93 cykNCisNCistLSB0ZXN0IG5vbi10aHJvd2luZyBBUEksIHRvbw0KK1NFTEVDVCBwZ19pbnB1dF9p c192YWxpZCgnPHZhbHVlPm9uZTwvdmFsdWU+JywgJ3htbCcpOw0KKyBwZ19pbnB1dF9pc192YWxp ZCANCistLS0tLS0tLS0tLS0tLS0tLS0tDQorIHQNCisoMSByb3cpDQorDQorU0VMRUNUIHBnX2lu cHV0X2lzX3ZhbGlkKCc8dmFsdWU+b25lPC8nLCAneG1sJyk7DQorIHBnX2lucHV0X2lzX3ZhbGlk IA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0NCisgZg0KKygxIHJvdykNCisNCitTRUxFQ1QgbWVzc2Fn ZSBGUk9NIHBnX2lucHV0X2Vycm9yX2luZm8oJzx2YWx1ZT5vbmU8LycsICd4bWwnKTsNCisgICAg ICAgbWVzc2FnZSAgICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgaW52YWxpZCBYTUwg Y29udGVudA0KKygxIHJvdykNCisNCitTRUxFQ1QgcGdfaW5wdXRfaXNfdmFsaWQoJzw/eG1sIHZl cnNpb249IjEuMCIgc3RhbmRhbG9uZT0ieSI/Pjxmb28vPicsICd4bWwnKTsNCisgcGdfaW5wdXRf aXNfdmFsaWQgDQorLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyBmDQorKDEgcm93KQ0KKw0KK1NFTEVD VCBtZXNzYWdlIEZST00gcGdfaW5wdXRfZXJyb3JfaW5mbygnPD94bWwgdmVyc2lvbj0iMS4wIiBz dGFuZGFsb25lPSJ5Ij8+PGZvby8+JywgJ3htbCcpOw0KKyAgICAgICAgICAgICAgICAgICBtZXNz YWdlICAgICAgICAgICAgICAgICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQorIGludmFsaWQgWE1MIGNvbnRlbnQ6IGludmFsaWQgWE1MIGRlY2xh cmF0aW9uDQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxjb21tZW50KCd0ZXN0Jyk7DQorIHhtbGNv bW1lbnQgIA0KKy0tLS0tLS0tLS0tLS0NCisgPCEtLXRlc3QtLT4NCisoMSByb3cpDQorDQorU0VM RUNUIHhtbGNvbW1lbnQoJy10ZXN0Jyk7DQorICB4bWxjb21tZW50ICANCistLS0tLS0tLS0tLS0t LQ0KKyA8IS0tLXRlc3QtLT4NCisoMSByb3cpDQorDQorU0VMRUNUIHhtbGNvbW1lbnQoJ3Rlc3Qt Jyk7DQorRVJST1I6ICBpbnZhbGlkIFhNTCBjb21tZW50DQorU0VMRUNUIHhtbGNvbW1lbnQoJy0t dGVzdCcpOw0KK0VSUk9SOiAgaW52YWxpZCBYTUwgY29tbWVudA0KK1NFTEVDVCB4bWxjb21tZW50 KCd0ZSBzdCcpOw0KKyAgeG1sY29tbWVudCAgDQorLS0tLS0tLS0tLS0tLS0NCisgPCEtLXRlIHN0 LS0+DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxjb25jYXQoeG1sY29tbWVudCgnaGVsbG8nKSwN CisgICAgICAgICAgICAgICAgIHhtbGVsZW1lbnQoTkFNRSBxdXgsICdmb28nKSwNCisgICAgICAg ICAgICAgICAgIHhtbGNvbW1lbnQoJ3dvcmxkJykpOw0KKyAgICAgICAgICAgICAgIHhtbGNvbmNh dCAgICAgICAgICAgICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQorIDwhLS1oZWxsby0tPjxxdXg+Zm9vPC9xdXg+PCEtLXdvcmxkLS0+DQorKDEgcm93KQ0K Kw0KK1NFTEVDVCB4bWxjb25jYXQoJ2hlbGxvJywgJ3lvdScpOw0KKyB4bWxjb25jYXQgDQorLS0t LS0tLS0tLS0NCisgaGVsbG95b3UNCisoMSByb3cpDQorDQorU0VMRUNUIHhtbGNvbmNhdCgxLCAy KTsNCitFUlJPUjogIGFyZ3VtZW50IG9mIFhNTENPTkNBVCBtdXN0IGJlIHR5cGUgeG1sLCBub3Qg dHlwZSBpbnRlZ2VyDQorTElORSAxOiBTRUxFQ1QgeG1sY29uY2F0KDEsIDIpOw0KKyAgICAgICAg ICAgICAgICAgICAgICAgICBeDQorU0VMRUNUIHhtbGNvbmNhdCgnYmFkJywgJzxzeW50YXgnKTsN CitFUlJPUjogIGludmFsaWQgWE1MIGNvbnRlbnQNCitMSU5FIDE6IFNFTEVDVCB4bWxjb25jYXQo J2JhZCcsICc8c3ludGF4Jyk7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeDQor REVUQUlMOiAgbGluZSAxOiBDb3VsZG4ndCBmaW5kIGVuZCBvZiBTdGFydCBUYWcgc3ludGF4IGxp bmUgMQ0KKzxzeW50YXgNCisgICAgICAgXg0KK1NFTEVDVCB4bWxjb25jYXQoJzxmb28vPicsIE5V TEwsICc8P3htbCB2ZXJzaW9uPSIxLjEiIHN0YW5kYWxvbmU9Im5vIj8+PGJhci8+Jyk7DQorICB4 bWxjb25jYXQgICANCistLS0tLS0tLS0tLS0tLQ0KKyA8Zm9vLz48YmFyLz4NCisoMSByb3cpDQor DQorU0VMRUNUIHhtbGNvbmNhdCgnPD94bWwgdmVyc2lvbj0iMS4xIj8+PGZvby8+JywgTlVMTCwg Jzw/eG1sIHZlcnNpb249IjEuMSIgc3RhbmRhbG9uZT0ibm8iPz48YmFyLz4nKTsNCisgICAgICAg ICAgICAgeG1sY29uY2F0ICAgICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQorIDw/eG1sIHZlcnNpb249IjEuMSI/Pjxmb28vPjxiYXIvPg0KKygxIHJvdykN CisNCitTRUxFQ1QgeG1sY29uY2F0KE5VTEwpOw0KKyB4bWxjb25jYXQgDQorLS0tLS0tLS0tLS0N CisgDQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxjb25jYXQoTlVMTCwgTlVMTCk7DQorIHhtbGNv bmNhdCANCistLS0tLS0tLS0tLQ0KKyANCisoMSByb3cpDQorDQorU0VMRUNUIHhtbGVsZW1lbnQo bmFtZSBlbGVtZW50LA0KKyAgICAgICAgICAgICAgICAgIHhtbGF0dHJpYnV0ZXMgKDEgYXMgb25l LCAnZGV1Y2UnIGFzIHR3byksDQorICAgICAgICAgICAgICAgICAgJ2NvbnRlbnQnKTsNCisgICAg ICAgICAgICAgICAgICAgeG1sZWxlbWVudCAgICAgICAgICAgICAgICAgICANCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgPGVsZW1lbnQgb25lPSIx IiB0d289ImRldWNlIj5jb250ZW50PC9lbGVtZW50Pg0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1s ZWxlbWVudChuYW1lIGVsZW1lbnQsDQorICAgICAgICAgICAgICAgICAgeG1sYXR0cmlidXRlcyAo J3VubmFtZWQgYW5kIHdyb25nJykpOw0KK0VSUk9SOiAgdW5uYW1lZCBYTUwgYXR0cmlidXRlIHZh bHVlIG11c3QgYmUgYSBjb2x1bW4gcmVmZXJlbmNlDQorTElORSAyOiAgICAgICAgICAgICAgICAg ICB4bWxhdHRyaWJ1dGVzICgndW5uYW1lZCBhbmQgd3JvbmcnKSk7DQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeDQorU0VMRUNUIHhtbGVsZW1lbnQobmFtZSBlbGVt ZW50LCB4bWxlbGVtZW50KG5hbWUgbmVzdGVkLCAnc3R1ZmYnKSk7DQorICAgICAgICAgICAgICAg IHhtbGVsZW1lbnQgICAgICAgICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCisgPGVsZW1lbnQ+PG5lc3RlZD5zdHVmZjwvbmVzdGVkPjwvZWxl bWVudD4NCisoMSByb3cpDQorDQorU0VMRUNUIHhtbGVsZW1lbnQobmFtZSBlbXBsb3llZSwgeG1s Zm9yZXN0KG5hbWUsIGFnZSwgc2FsYXJ5IGFzIHBheSkpIEZST00gZW1wOw0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHhtbGVsZW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQorIDxlbXBsb3llZT48bmFtZT5zaGFyb248L25hbWU+PGFnZT4y NTwvYWdlPjxwYXk+MTAwMDwvcGF5PjwvZW1wbG95ZWU+DQorIDxlbXBsb3llZT48bmFtZT5zYW08 L25hbWU+PGFnZT4zMDwvYWdlPjxwYXk+MjAwMDwvcGF5PjwvZW1wbG95ZWU+DQorIDxlbXBsb3ll ZT48bmFtZT5iaWxsPC9uYW1lPjxhZ2U+MjA8L2FnZT48cGF5PjEwMDA8L3BheT48L2VtcGxveWVl Pg0KKyA8ZW1wbG95ZWU+PG5hbWU+amVmZjwvbmFtZT48YWdlPjIzPC9hZ2U+PHBheT42MDA8L3Bh eT48L2VtcGxveWVlPg0KKyA8ZW1wbG95ZWU+PG5hbWU+Y2ltPC9uYW1lPjxhZ2U+MzA8L2FnZT48 cGF5PjQwMDwvcGF5PjwvZW1wbG95ZWU+DQorIDxlbXBsb3llZT48bmFtZT5saW5kYTwvbmFtZT48 YWdlPjE5PC9hZ2U+PHBheT4xMDA8L3BheT48L2VtcGxveWVlPg0KKyg2IHJvd3MpDQorDQorU0VM RUNUIHhtbGVsZW1lbnQobmFtZSBkdXBsaWNhdGUsIHhtbGF0dHJpYnV0ZXMoMSBhcyBhLCAyIGFz IGIsIDMgYXMgYSkpOw0KK0VSUk9SOiAgWE1MIGF0dHJpYnV0ZSBuYW1lICJhIiBhcHBlYXJzIG1v cmUgdGhhbiBvbmNlDQorTElORSAxOiAuLi5tZW50KG5hbWUgZHVwbGljYXRlLCB4bWxhdHRyaWJ1 dGVzKDEgYXMgYSwgMiBhcyBiLCAzIGFzIGEpKTsNCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4NCitTRUxFQ1QgeG1sZWxlbWVu dChuYW1lIG51bSwgMzcpOw0KKyAgeG1sZWxlbWVudCAgIA0KKy0tLS0tLS0tLS0tLS0tLQ0KKyA8 bnVtPjM3PC9udW0+DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxlbGVtZW50KG5hbWUgZm9vLCB0 ZXh0ICdiYXInKTsNCisgICB4bWxlbGVtZW50ICAgDQorLS0tLS0tLS0tLS0tLS0tLQ0KKyA8Zm9v PmJhcjwvZm9vPg0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1sZWxlbWVudChuYW1lIGZvbywgeG1s ICdiYXInKTsNCisgICB4bWxlbGVtZW50ICAgDQorLS0tLS0tLS0tLS0tLS0tLQ0KKyA8Zm9vPmJh cjwvZm9vPg0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1sZWxlbWVudChuYW1lIGZvbywgdGV4dCAn YjxhLz5yJyk7DQorICAgICAgIHhtbGVsZW1lbnQgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCisgPGZvbz5iJmx0O2EvJmd0O3I8L2Zvbz4NCisoMSByb3cpDQorDQorU0VMRUNU IHhtbGVsZW1lbnQobmFtZSBmb28sIHhtbCAnYjxhLz5yJyk7DQorICAgIHhtbGVsZW1lbnQgICAg IA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0NCisgPGZvbz5iPGEvPnI8L2Zvbz4NCisoMSByb3cpDQor DQorU0VMRUNUIHhtbGVsZW1lbnQobmFtZSBmb28sIGFycmF5WzEsIDIsIDNdKTsNCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgeG1sZWxlbWVudCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyA8Zm9vPjxlbGVtZW50PjE8L2VsZW1lbnQ+ PGVsZW1lbnQ+MjwvZWxlbWVudD48ZWxlbWVudD4zPC9lbGVtZW50PjwvZm9vPg0KKygxIHJvdykN CisNCitTRVQgeG1sYmluYXJ5IFRPIGJhc2U2NDsNCitTRUxFQ1QgeG1sZWxlbWVudChuYW1lIGZv bywgYnl0ZWEgJ2JhcicpOw0KKyAgIHhtbGVsZW1lbnQgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0N CisgPGZvbz5ZbUZ5PC9mb28+DQorKDEgcm93KQ0KKw0KK1NFVCB4bWxiaW5hcnkgVE8gaGV4Ow0K K1NFTEVDVCB4bWxlbGVtZW50KG5hbWUgZm9vLCBieXRlYSAnYmFyJyk7DQorICAgIHhtbGVsZW1l bnQgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0NCisgPGZvbz42MjYxNzI8L2Zvbz4NCisoMSBy b3cpDQorDQorU0VMRUNUIHhtbGVsZW1lbnQobmFtZSBmb28sIHhtbGF0dHJpYnV0ZXModHJ1ZSBh cyBiYXIpKTsNCisgICAgeG1sZWxlbWVudCAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyA8 Zm9vIGJhcj0idHJ1ZSIvPg0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1sZWxlbWVudChuYW1lIGZv bywgeG1sYXR0cmlidXRlcygnMjAwOS0wNC0wOSAwMDoyNDozNyc6OnRpbWVzdGFtcCBhcyBiYXIp KTsNCisgICAgICAgICAgICB4bWxlbGVtZW50ICAgICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyA8Zm9vIGJhcj0iMjAwOS0wNC0wOVQwMDoyNDozNyIvPg0K KygxIHJvdykNCisNCitTRUxFQ1QgeG1sZWxlbWVudChuYW1lIGZvbywgeG1sYXR0cmlidXRlcygn aW5maW5pdHknOjp0aW1lc3RhbXAgYXMgYmFyKSk7DQorRVJST1I6ICB0aW1lc3RhbXAgb3V0IG9m IHJhbmdlDQorREVUQUlMOiAgWE1MIGRvZXMgbm90IHN1cHBvcnQgaW5maW5pdGUgdGltZXN0YW1w IHZhbHVlcy4NCitTRUxFQ1QgeG1sZWxlbWVudChuYW1lIGZvbywgeG1sYXR0cmlidXRlcygnPD4m IicnJyBhcyBmdW5ueSwgeG1sICdiPGEvPnInIGFzIGZ1bm5pZXIpKTsNCisgICAgICAgICAgICAg ICAgICAgICAgICAgeG1sZWxlbWVudCAgICAgICAgICAgICAgICAgICAgICAgICANCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisg PGZvbyBmdW5ueT0iJmx0OyZndDsmYW1wOyZxdW90OyciIGZ1bm5pZXI9ImImbHQ7YS8mZ3Q7ciIv Pg0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1scGFyc2UoY29udGVudCAnJyk7DQorIHhtbHBhcnNl IA0KKy0tLS0tLS0tLS0NCisgDQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxwYXJzZShjb250ZW50 ICcgICcpOw0KKyB4bWxwYXJzZSANCistLS0tLS0tLS0tDQorICAgDQorKDEgcm93KQ0KKw0KK1NF TEVDVCB4bWxwYXJzZShjb250ZW50ICdhYmMnKTsNCisgeG1scGFyc2UgDQorLS0tLS0tLS0tLQ0K KyBhYmMNCisoMSByb3cpDQorDQorU0VMRUNUIHhtbHBhcnNlKGNvbnRlbnQgJzxhYmM+eDwvYWJj PicpOw0KKyAgIHhtbHBhcnNlICAgDQorLS0tLS0tLS0tLS0tLS0NCisgPGFiYz54PC9hYmM+DQor KDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxwYXJzZShjb250ZW50ICc8aW52YWxpZGVudGl0eT4mPC9p bnZhbGlkZW50aXR5PicpOw0KK0VSUk9SOiAgaW52YWxpZCBYTUwgY29udGVudA0KK0RFVEFJTDog IGxpbmUgMTogeG1sUGFyc2VFbnRpdHlSZWY6IG5vIG5hbWUNCis8aW52YWxpZGVudGl0eT4mPC9p bnZhbGlkZW50aXR5Pg0KKyAgICAgICAgICAgICAgICBeDQorU0VMRUNUIHhtbHBhcnNlKGNvbnRl bnQgJzx1bmRlZmluZWRlbnRpdHk+Jmlkb250ZXhpc3Q7PC91bmRlZmluZWRlbnRpdHk+Jyk7DQor RVJST1I6ICBpbnZhbGlkIFhNTCBjb250ZW50DQorREVUQUlMOiAgbGluZSAxOiBFbnRpdHkgJ2lk b250ZXhpc3QnIG5vdCBkZWZpbmVkDQorPHVuZGVmaW5lZGVudGl0eT4maWRvbnRleGlzdDs8L3Vu ZGVmaW5lZGVudGl0eT4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4NCitTRUxFQ1Qg eG1scGFyc2UoY29udGVudCAnPGludmFsaWRucyB4bWxucz0nJyZsdDsnJy8+Jyk7DQorICAgICAg ICAgeG1scGFyc2UgICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIDxp bnZhbGlkbnMgeG1sbnM9JyZsdDsnLz4NCisoMSByb3cpDQorDQorU0VMRUNUIHhtbHBhcnNlKGNv bnRlbnQgJzxyZWxhdGl2ZW5zIHhtbG5zPScncmVsYXRpdmUnJy8+Jyk7DQorICAgICAgICAgICAg eG1scGFyc2UgICAgICAgICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K KyA8cmVsYXRpdmVucyB4bWxucz0ncmVsYXRpdmUnLz4NCisoMSByb3cpDQorDQorU0VMRUNUIHht bHBhcnNlKGNvbnRlbnQgJzx0d29lcnJvcnM+Jmlkb250ZXhpc3Q7PC91bmJhbGFuY2VkPicpOw0K K0VSUk9SOiAgaW52YWxpZCBYTUwgY29udGVudA0KK0RFVEFJTDogIGxpbmUgMTogRW50aXR5ICdp ZG9udGV4aXN0JyBub3QgZGVmaW5lZA0KKzx0d29lcnJvcnM+Jmlkb250ZXhpc3Q7PC91bmJhbGFu Y2VkPg0KKyAgICAgICAgICAgICAgICAgICAgICAgXg0KK2xpbmUgMTogT3BlbmluZyBhbmQgZW5k aW5nIHRhZyBtaXNtYXRjaDogdHdvZXJyb3JzIGxpbmUgMSBhbmQgdW5iYWxhbmNlZA0KKzx0d29l cnJvcnM+Jmlkb250ZXhpc3Q7PC91bmJhbGFuY2VkPg0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4NCitTRUxFQ1QgeG1scGFyc2UoY29udGVudCAnPG5vc3VjaHByZWZpeDp0 YWcvPicpOw0KKyAgICAgIHhtbHBhcnNlICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K KyA8bm9zdWNocHJlZml4OnRhZy8+DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxwYXJzZShkb2N1 bWVudCAnICAgJyk7DQorRVJST1I6ICBpbnZhbGlkIFhNTCBkb2N1bWVudA0KK0RFVEFJTDogIGxp bmUgMTogU3RhcnQgdGFnIGV4cGVjdGVkLCAnPCcgbm90IGZvdW5kDQorICAgDQorICAgXg0KK1NF TEVDVCB4bWxwYXJzZShkb2N1bWVudCAnYWJjJyk7DQorRVJST1I6ICBpbnZhbGlkIFhNTCBkb2N1 bWVudA0KK0RFVEFJTDogIGxpbmUgMTogU3RhcnQgdGFnIGV4cGVjdGVkLCAnPCcgbm90IGZvdW5k DQorYWJjDQorXg0KK1NFTEVDVCB4bWxwYXJzZShkb2N1bWVudCAnPGFiYz54PC9hYmM+Jyk7DQor ICAgeG1scGFyc2UgICANCistLS0tLS0tLS0tLS0tLQ0KKyA8YWJjPng8L2FiYz4NCisoMSByb3cp DQorDQorU0VMRUNUIHhtbHBhcnNlKGRvY3VtZW50ICc8aW52YWxpZGVudGl0eT4mPC9hYmM+Jyk7 DQorRVJST1I6ICBpbnZhbGlkIFhNTCBkb2N1bWVudA0KK0RFVEFJTDogIGxpbmUgMTogeG1sUGFy c2VFbnRpdHlSZWY6IG5vIG5hbWUNCis8aW52YWxpZGVudGl0eT4mPC9hYmM+DQorICAgICAgICAg ICAgICAgIF4NCitsaW5lIDE6IE9wZW5pbmcgYW5kIGVuZGluZyB0YWcgbWlzbWF0Y2g6IGludmFs aWRlbnRpdHkgbGluZSAxIGFuZCBhYmMNCis8aW52YWxpZGVudGl0eT4mPC9hYmM+DQorICAgICAg ICAgICAgICAgICAgICAgIF4NCitTRUxFQ1QgeG1scGFyc2UoZG9jdW1lbnQgJzx1bmRlZmluZWRl bnRpdHk+Jmlkb250ZXhpc3Q7PC9hYmM+Jyk7DQorRVJST1I6ICBpbnZhbGlkIFhNTCBkb2N1bWVu dA0KK0RFVEFJTDogIGxpbmUgMTogRW50aXR5ICdpZG9udGV4aXN0JyBub3QgZGVmaW5lZA0KKzx1 bmRlZmluZWRlbnRpdHk+Jmlkb250ZXhpc3Q7PC9hYmM+DQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeDQorbGluZSAxOiBPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiB1bmRl ZmluZWRlbnRpdHkgbGluZSAxIGFuZCBhYmMNCis8dW5kZWZpbmVkZW50aXR5PiZpZG9udGV4aXN0 OzwvYWJjPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXg0KK1NFTEVDVCB4 bWxwYXJzZShkb2N1bWVudCAnPGludmFsaWRucyB4bWxucz0nJyZsdDsnJy8+Jyk7DQorICAgICAg ICAgeG1scGFyc2UgICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIDxp bnZhbGlkbnMgeG1sbnM9JyZsdDsnLz4NCisoMSByb3cpDQorDQorU0VMRUNUIHhtbHBhcnNlKGRv Y3VtZW50ICc8cmVsYXRpdmVucyB4bWxucz0nJ3JlbGF0aXZlJycvPicpOw0KKyAgICAgICAgICAg IHhtbHBhcnNlICAgICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N CisgPHJlbGF0aXZlbnMgeG1sbnM9J3JlbGF0aXZlJy8+DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4 bWxwYXJzZShkb2N1bWVudCAnPHR3b2Vycm9ycz4maWRvbnRleGlzdDs8L3VuYmFsYW5jZWQ+Jyk7 DQorRVJST1I6ICBpbnZhbGlkIFhNTCBkb2N1bWVudA0KK0RFVEFJTDogIGxpbmUgMTogRW50aXR5 ICdpZG9udGV4aXN0JyBub3QgZGVmaW5lZA0KKzx0d29lcnJvcnM+Jmlkb250ZXhpc3Q7PC91bmJh bGFuY2VkPg0KKyAgICAgICAgICAgICAgICAgICAgICAgXg0KK2xpbmUgMTogT3BlbmluZyBhbmQg ZW5kaW5nIHRhZyBtaXNtYXRjaDogdHdvZXJyb3JzIGxpbmUgMSBhbmQgdW5iYWxhbmNlZA0KKzx0 d29lcnJvcnM+Jmlkb250ZXhpc3Q7PC91bmJhbGFuY2VkPg0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4NCitTRUxFQ1QgeG1scGFyc2UoZG9jdW1lbnQgJzxub3N1Y2hwcmVm aXg6dGFnLz4nKTsNCisgICAgICB4bWxwYXJzZSAgICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0t LS0NCisgPG5vc3VjaHByZWZpeDp0YWcvPg0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1scGkobmFt ZSBmb28pOw0KKyAgeG1scGkgIA0KKy0tLS0tLS0tLQ0KKyA8P2Zvbz8+DQorKDEgcm93KQ0KKw0K K1NFTEVDVCB4bWxwaShuYW1lIHhtbCk7DQorRVJST1I6ICBpbnZhbGlkIFhNTCBwcm9jZXNzaW5n IGluc3RydWN0aW9uDQorREVUQUlMOiAgWE1MIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gdGFyZ2V0 IG5hbWUgY2Fubm90IGJlICJ4bWwiLg0KK1NFTEVDVCB4bWxwaShuYW1lIHhtbHN0dWZmKTsNCisg ICAgeG1scGkgICAgIA0KKy0tLS0tLS0tLS0tLS0tDQorIDw/eG1sc3R1ZmY/Pg0KKygxIHJvdykN CisNCitTRUxFQ1QgeG1scGkobmFtZSBmb28sICdiYXInKTsNCisgICAgeG1scGkgICAgDQorLS0t LS0tLS0tLS0tLQ0KKyA8P2ZvbyBiYXI/Pg0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1scGkobmFt ZSBmb28sICdpbj8+dmFsaWQnKTsNCitFUlJPUjogIGludmFsaWQgWE1MIHByb2Nlc3NpbmcgaW5z dHJ1Y3Rpb24NCitERVRBSUw6ICBYTUwgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiBjYW5ub3QgY29u dGFpbiAiPz4iLg0KK1NFTEVDVCB4bWxwaShuYW1lIGZvbywgbnVsbCk7DQorIHhtbHBpIA0KKy0t LS0tLS0NCisgDQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxwaShuYW1lIHhtbCwgbnVsbCk7DQor RVJST1I6ICBpbnZhbGlkIFhNTCBwcm9jZXNzaW5nIGluc3RydWN0aW9uDQorREVUQUlMOiAgWE1M IHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gdGFyZ2V0IG5hbWUgY2Fubm90IGJlICJ4bWwiLg0KK1NF TEVDVCB4bWxwaShuYW1lIHhtbHN0dWZmLCBudWxsKTsNCisgeG1scGkgDQorLS0tLS0tLQ0KKyAN CisoMSByb3cpDQorDQorU0VMRUNUIHhtbHBpKG5hbWUgInhtbC1zdHlsZXNoZWV0IiwgJ2hyZWY9 Im15c3R5bGUuY3NzIiB0eXBlPSJ0ZXh0L2NzcyInKTsNCisgICAgICAgICAgICAgICAgICAgICAg ICAgeG1scGkgICAgICAgICAgICAgICAgICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyA8P3htbC1zdHlsZXNoZWV0IGhy ZWY9Im15c3R5bGUuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI/Pg0KKygxIHJvdykNCisNCitTRUxFQ1Qg eG1scGkobmFtZSBmb28sICcgICBiYXInKTsNCisgICAgeG1scGkgICAgDQorLS0tLS0tLS0tLS0t LQ0KKyA8P2ZvbyBiYXI/Pg0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1scm9vdCh4bWwgJzxmb28v PicsIHZlcnNpb24gbm8gdmFsdWUsIHN0YW5kYWxvbmUgbm8gdmFsdWUpOw0KKyB4bWxyb290IA0K Ky0tLS0tLS0tLQ0KKyA8Zm9vLz4NCisoMSByb3cpDQorDQorU0VMRUNUIHhtbHJvb3QoeG1sICc8 Zm9vLz4nLCB2ZXJzaW9uICcyLjAnKTsNCisgICAgICAgICAgIHhtbHJvb3QgICAgICAgICAgIA0K Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIDw/eG1sIHZlcnNpb249IjIuMCI/Pjxm b28vPg0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1scm9vdCh4bWwgJzxmb28vPicsIHZlcnNpb24g bm8gdmFsdWUsIHN0YW5kYWxvbmUgeWVzKTsNCisgICAgICAgICAgICAgICAgICAgeG1scm9vdCAg ICAgICAgICAgICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KKyA8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9InllcyI/Pjxmb28v Pg0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1scm9vdCh4bWwgJzw/eG1sIHZlcnNpb249IjEuMSI/ Pjxmb28vPicsIHZlcnNpb24gbm8gdmFsdWUsIHN0YW5kYWxvbmUgeWVzKTsNCisgICAgICAgICAg ICAgICAgICAgeG1scm9vdCAgICAgICAgICAgICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyA8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5k YWxvbmU9InllcyI/Pjxmb28vPg0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1scm9vdCh4bWxyb290 KHhtbCAnPGZvby8+JywgdmVyc2lvbiAnMS4wJyksIHZlcnNpb24gJzEuMScsIHN0YW5kYWxvbmUg bm8pOw0KKyAgICAgICAgICAgICAgICAgICB4bWxyb290ICAgICAgICAgICAgICAgICAgIA0KKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyA8P3htbCB2ZXJz aW9uPSIxLjEiIHN0YW5kYWxvbmU9Im5vIj8+PGZvby8+DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4 bWxyb290KCc8P3htbCB2ZXJzaW9uPSIxLjEiIHN0YW5kYWxvbmU9InllcyI/Pjxmb28vPicsIHZl cnNpb24gbm8gdmFsdWUsIHN0YW5kYWxvbmUgbm8pOw0KKyAgICAgICAgICAgICAgICAgICB4bWxy b290ICAgICAgICAgICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KKyA8P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+PGZv by8+DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxyb290KCc8P3htbCB2ZXJzaW9uPSIxLjEiIHN0 YW5kYWxvbmU9InllcyI/Pjxmb28vPicsIHZlcnNpb24gbm8gdmFsdWUsIHN0YW5kYWxvbmUgbm8g dmFsdWUpOw0KKyB4bWxyb290IA0KKy0tLS0tLS0tLQ0KKyA8Zm9vLz4NCisoMSByb3cpDQorDQor U0VMRUNUIHhtbHJvb3QoJzw/eG1sIHZlcnNpb249IjEuMSIgc3RhbmRhbG9uZT0ieWVzIj8+PGZv by8+JywgdmVyc2lvbiBubyB2YWx1ZSk7DQorICAgICAgICAgICAgICAgICAgIHhtbHJvb3QgICAg ICAgICAgICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCisgPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJ5ZXMiPz48Zm9vLz4N CisoMSByb3cpDQorDQorU0VMRUNUIHhtbHJvb3QgKA0KKyAgeG1sZWxlbWVudCAoDQorICAgIG5h bWUgZ2F6b25rLA0KKyAgICB4bWxhdHRyaWJ1dGVzICgNCisgICAgICAndmFsJyBBUyBuYW1lLA0K KyAgICAgIDEgKyAxIEFTIG51bQ0KKyAgICApLA0KKyAgICB4bWxlbGVtZW50ICgNCisgICAgICBO QU1FIHF1eCwNCisgICAgICAnZm9vJw0KKyAgICApDQorICApLA0KKyAgdmVyc2lvbiAnMS4wJywN CisgIHN0YW5kYWxvbmUgeWVzDQorKTsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHhtbHJvb3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgPD94bWwgdmVyc2lvbj0i MS4wIiBzdGFuZGFsb25lPSJ5ZXMiPz48Z2F6b25rIG5hbWU9InZhbCIgbnVtPSIyIj48cXV4PmZv bzwvcXV4PjwvZ2F6b25rPg0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1sc2VyaWFsaXplKGNvbnRl bnQgZGF0YSBhcyBjaGFyYWN0ZXIgdmFyeWluZygyMCkpIEZST00geG1sdGVzdDsNCisgICAgeG1s c2VyaWFsaXplICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIDx2YWx1ZT5vbmU8L3ZhbHVl Pg0KKyA8dmFsdWU+dHdvPC92YWx1ZT4NCisoMiByb3dzKQ0KKw0KK1NFTEVDVCB4bWxzZXJpYWxp emUoY29udGVudCAnZ29vZCcgYXMgY2hhcigxMCkpOw0KKyB4bWxzZXJpYWxpemUgDQorLS0tLS0t LS0tLS0tLS0NCisgZ29vZCAgICAgIA0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1sc2VyaWFsaXpl KGRvY3VtZW50ICdiYWQnIGFzIHRleHQpOw0KK0VSUk9SOiAgbm90IGFuIFhNTCBkb2N1bWVudA0K Ky0tIGluZGVudA0KK1NFTEVDVCB4bWxzZXJpYWxpemUoRE9DVU1FTlQgJzxmb28+PGJhcj48dmFs IHg9InkiPjQyPC92YWw+PC9iYXI+PC9mb28+JyBBUyB0ZXh0IElOREVOVCk7DQorICAgICAgeG1s c2VyaWFsaXplICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgPGZvbz4gICAg ICAgICAgICAgICAgICArDQorICAgPGJhcj4gICAgICAgICAgICAgICAgKw0KKyAgICAgPHZhbCB4 PSJ5Ij40MjwvdmFsPisNCisgICA8L2Jhcj4gICAgICAgICAgICAgICArDQorIDwvZm9vPg0KKygx IHJvdykNCisNCitTRUxFQ1QgeG1sc2VyaWFsaXplKENPTlRFTlQgICc8Zm9vPjxiYXI+PHZhbCB4 PSJ5Ij40MjwvdmFsPjwvYmFyPjwvZm9vPicgQVMgdGV4dCBJTkRFTlQpOw0KKyAgICAgIHhtbHNl cmlhbGl6ZSAgICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIDxmb28+ICAgICAg ICAgICAgICAgICAgKw0KKyAgIDxiYXI+ICAgICAgICAgICAgICAgICsNCisgICAgIDx2YWwgeD0i eSI+NDI8L3ZhbD4rDQorICAgPC9iYXI+ICAgICAgICAgICAgICAgKw0KKyA8L2Zvbz4NCisoMSBy b3cpDQorDQorLS0gbm8gaW5kZW50DQorU0VMRUNUIHhtbHNlcmlhbGl6ZShET0NVTUVOVCAnPGZv bz48YmFyPjx2YWwgeD0ieSI+NDI8L3ZhbD48L2Jhcj48L2Zvbz4nIEFTIHRleHQgTk8gSU5ERU5U KTsNCisgICAgICAgICAgICAgICB4bWxzZXJpYWxpemUgICAgICAgICAgICAgICAgDQorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyA8Zm9vPjxiYXI+PHZhbCB4 PSJ5Ij40MjwvdmFsPjwvYmFyPjwvZm9vPg0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1sc2VyaWFs aXplKENPTlRFTlQgICc8Zm9vPjxiYXI+PHZhbCB4PSJ5Ij40MjwvdmFsPjwvYmFyPjwvZm9vPicg QVMgdGV4dCBOTyBJTkRFTlQpOw0KKyAgICAgICAgICAgICAgIHhtbHNlcmlhbGl6ZSAgICAgICAg ICAgICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQor IDxmb28+PGJhcj48dmFsIHg9InkiPjQyPC92YWw+PC9iYXI+PC9mb28+DQorKDEgcm93KQ0KKw0K Ky0tIGluZGVudCBub24gc2luZ2x5LXJvb3RlZCB4bWwNCitTRUxFQ1QgeG1sc2VyaWFsaXplKERP Q1VNRU5UICc8Zm9vPjczPC9mb28+PGJhcj48dmFsIHg9InkiPjQyPC92YWw+PC9iYXI+JyBBUyB0 ZXh0IElOREVOVCk7DQorRVJST1I6ICBub3QgYW4gWE1MIGRvY3VtZW50DQorU0VMRUNUIHhtbHNl cmlhbGl6ZShDT05URU5UICAnPGZvbz43MzwvZm9vPjxiYXI+PHZhbCB4PSJ5Ij40MjwvdmFsPjwv YmFyPicgQVMgdGV4dCBJTkRFTlQpOw0KKyAgICAgeG1sc2VyaWFsaXplICAgICAgDQorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCisgPGZvbz43MzwvZm9vPiAgICAgICAgKw0KKyA8YmFyPiAgICAg ICAgICAgICAgICArDQorICAgPHZhbCB4PSJ5Ij40MjwvdmFsPisNCisgPC9iYXI+DQorKDEgcm93 KQ0KKw0KKy0tIGluZGVudCBub24gc2luZ2x5LXJvb3RlZCB4bWwgd2l0aCBtaXhlZCBjb250ZW50 cw0KK1NFTEVDVCB4bWxzZXJpYWxpemUoRE9DVU1FTlQgJ3RleHQgbm9kZTxmb28+NzM8L2Zvbz50 ZXh0IG5vZGU8YmFyPjx2YWwgeD0ieSI+NDI8L3ZhbD48L2Jhcj4nIEFTIHRleHQgSU5ERU5UKTsN CitFUlJPUjogIG5vdCBhbiBYTUwgZG9jdW1lbnQNCitTRUxFQ1QgeG1sc2VyaWFsaXplKENPTlRF TlQgICd0ZXh0IG5vZGU8Zm9vPjczPC9mb28+dGV4dCBub2RlPGJhcj48dmFsIHg9InkiPjQyPC92 YWw+PC9iYXI+JyBBUyB0ZXh0IElOREVOVCk7DQorICAgICAgeG1sc2VyaWFsaXplICAgICAgDQor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIHRleHQgbm9kZSAgICAgICAgICAgICArDQorIDxm b28+NzM8L2Zvbz50ZXh0IG5vZGUrDQorIDxiYXI+ICAgICAgICAgICAgICAgICArDQorICAgPHZh bCB4PSJ5Ij40MjwvdmFsPiArDQorIDwvYmFyPg0KKygxIHJvdykNCisNCistLSBpbmRlbnQgc2lu Z2x5LXJvb3RlZCB4bWwgd2l0aCBtaXhlZCBjb250ZW50cw0KK1NFTEVDVCB4bWxzZXJpYWxpemUo RE9DVU1FTlQgJzxmb28+PGJhcj48dmFsIHg9InkiPjQyPC92YWw+PHZhbCB4PSJ5Ij50ZXh0IG5v ZGU8dmFsPjczPC92YWw+PC92YWw+PC9iYXI+PC9mb28+JyBBUyB0ZXh0IElOREVOVCk7DQorICAg ICAgICAgICAgICAgIHhtbHNlcmlhbGl6ZSAgICAgICAgICAgICAgICAgDQorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIDxmb28+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArDQorICAgPGJhcj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArDQorICAgICA8dmFsIHg9InkiPjQyPC92YWw+ICAgICAgICAgICAgICAg ICAgICArDQorICAgICA8dmFsIHg9InkiPnRleHQgbm9kZTx2YWw+NzM8L3ZhbD48L3ZhbD4rDQor ICAgPC9iYXI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArDQorIDwvZm9vPg0K KygxIHJvdykNCisNCitTRUxFQ1QgeG1sc2VyaWFsaXplKENPTlRFTlQgICc8Zm9vPjxiYXI+PHZh bCB4PSJ5Ij40MjwvdmFsPjx2YWwgeD0ieSI+dGV4dCBub2RlPHZhbD43MzwvdmFsPjwvdmFsPjwv YmFyPjwvZm9vPicgQVMgdGV4dCBJTkRFTlQpOw0KKyAgICAgICAgICAgICAgICB4bWxzZXJpYWxp emUgICAgICAgICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KKyA8Zm9vPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Kw0KKyAgIDxiYXI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKw0KKyAgICAg PHZhbCB4PSJ5Ij40MjwvdmFsPiAgICAgICAgICAgICAgICAgICAgKw0KKyAgICAgPHZhbCB4PSJ5 Ij50ZXh0IG5vZGU8dmFsPjczPC92YWw+PC92YWw+Kw0KKyAgIDwvYmFyPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKw0KKyA8L2Zvbz4NCisoMSByb3cpDQorDQorLS0gaW5kZW50 IGVtcHR5IHN0cmluZw0KK1NFTEVDVCB4bWxzZXJpYWxpemUoRE9DVU1FTlQgJycgQVMgdGV4dCBJ TkRFTlQpOw0KK0VSUk9SOiAgbm90IGFuIFhNTCBkb2N1bWVudA0KK1NFTEVDVCB4bWxzZXJpYWxp emUoQ09OVEVOVCAgJycgQVMgdGV4dCBJTkRFTlQpOw0KKyB4bWxzZXJpYWxpemUgDQorLS0tLS0t LS0tLS0tLS0NCisgDQorKDEgcm93KQ0KKw0KKy0tIHdoaXRlc3BhY2VzDQorU0VMRUNUIHhtbHNl cmlhbGl6ZShET0NVTUVOVCAnICAnIEFTIHRleHQgSU5ERU5UKTsNCitFUlJPUjogIG5vdCBhbiBY TUwgZG9jdW1lbnQNCitTRUxFQ1QgeG1sc2VyaWFsaXplKENPTlRFTlQgICcgICcgQVMgdGV4dCBJ TkRFTlQpOw0KKyB4bWxzZXJpYWxpemUgDQorLS0tLS0tLS0tLS0tLS0NCisgICANCisoMSByb3cp DQorDQorLS0gaW5kZW50IG51bGwNCitTRUxFQ1QgeG1sc2VyaWFsaXplKERPQ1VNRU5UIE5VTEwg QVMgdGV4dCBJTkRFTlQpOw0KKyB4bWxzZXJpYWxpemUgDQorLS0tLS0tLS0tLS0tLS0NCisgDQor KDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxzZXJpYWxpemUoQ09OVEVOVCAgTlVMTCBBUyB0ZXh0IElO REVOVCk7DQorIHhtbHNlcmlhbGl6ZSANCistLS0tLS0tLS0tLS0tLQ0KKyANCisoMSByb3cpDQor DQorLS0gaW5kZW50IHdpdGggWE1MIGRlY2xhcmF0aW9uDQorU0VMRUNUIHhtbHNlcmlhbGl6ZShE T0NVTUVOVCAnPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Zm9vPjxiYXI+ PHZhbD43MzwvdmFsPjwvYmFyPjwvZm9vPicgQVMgdGV4dCBJTkRFTlQpOw0KKyAgICAgICAgICAg ICAgeG1sc2VyaWFsaXplICAgICAgICAgICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQorIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+ Kw0KKyA8Zm9vPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsNCisgICA8YmFyPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArDQorICAgICA8dmFsPjczPC92YWw+ICAgICAg ICAgICAgICAgICAgICAgKw0KKyAgIDwvYmFyPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsNCisgPC9mb28+DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxzZXJpYWxpemUoQ09OVEVOVCAg Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+PGZvbz48YmFyPjx2YWw+NzM8 L3ZhbD48L2Jhcj48L2Zvbz4nIEFTIHRleHQgSU5ERU5UKTsNCisgICB4bWxzZXJpYWxpemUgICAg DQorLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyA8Zm9vPiAgICAgICAgICAgICsNCisgICA8YmFyPiAg ICAgICAgICArDQorICAgICA8dmFsPjczPC92YWw+Kw0KKyAgIDwvYmFyPiAgICAgICAgICsNCisg PC9mb28+DQorKDEgcm93KQ0KKw0KKy0tIGluZGVudCBjb250YWluaW5nIERPQ1RZUEUgZGVjbGFy YXRpb24NCitTRUxFQ1QgeG1sc2VyaWFsaXplKERPQ1VNRU5UICc8IURPQ1RZUEUgYT48YS8+JyBB UyB0ZXh0IElOREVOVCk7DQorIHhtbHNlcmlhbGl6ZSANCistLS0tLS0tLS0tLS0tLQ0KKyA8IURP Q1RZUEUgYT4rDQorIDxhLz4NCisoMSByb3cpDQorDQorU0VMRUNUIHhtbHNlcmlhbGl6ZShDT05U RU5UICAnPCFET0NUWVBFIGE+PGEvPicgQVMgdGV4dCBJTkRFTlQpOw0KKyB4bWxzZXJpYWxpemUg DQorLS0tLS0tLS0tLS0tLS0NCisgPCFET0NUWVBFIGE+Kw0KKyA8YS8+ICAgICAgICArDQorIA0K KygxIHJvdykNCisNCistLSBpbmRlbnQgeG1sIHdpdGggZW1wdHkgZWxlbWVudA0KK1NFTEVDVCB4 bWxzZXJpYWxpemUoRE9DVU1FTlQgJzxmb28+PGJhcj48L2Jhcj48L2Zvbz4nIEFTIHRleHQgSU5E RU5UKTsNCisgeG1sc2VyaWFsaXplIA0KKy0tLS0tLS0tLS0tLS0tDQorIDxmb28+ICAgICAgICsN CisgICA8YmFyLz4gICAgKw0KKyA8L2Zvbz4NCisoMSByb3cpDQorDQorU0VMRUNUIHhtbHNlcmlh bGl6ZShDT05URU5UICAnPGZvbz48YmFyPjwvYmFyPjwvZm9vPicgQVMgdGV4dCBJTkRFTlQpOw0K KyB4bWxzZXJpYWxpemUgDQorLS0tLS0tLS0tLS0tLS0NCisgPGZvbz4gICAgICAgKw0KKyAgIDxi YXIvPiAgICArDQorIDwvZm9vPg0KKygxIHJvdykNCisNCistLSAnbm8gaW5kZW50JyA9IG5vdCB1 c2luZyAnbm8gaW5kZW50Jw0KK1NFTEVDVCB4bWxzZXJpYWxpemUoRE9DVU1FTlQgJzxmb28+PGJh cj48dmFsIHg9InkiPjQyPC92YWw+PC9iYXI+PC9mb28+JyBBUyB0ZXh0KSA9IHhtbHNlcmlhbGl6 ZShET0NVTUVOVCAnPGZvbz48YmFyPjx2YWwgeD0ieSI+NDI8L3ZhbD48L2Jhcj48L2Zvbz4nIEFT IHRleHQgTk8gSU5ERU5UKTsNCisgP2NvbHVtbj8gDQorLS0tLS0tLS0tLQ0KKyB0DQorKDEgcm93 KQ0KKw0KK1NFTEVDVCB4bWxzZXJpYWxpemUoQ09OVEVOVCAgJzxmb28+PGJhcj48dmFsIHg9Inki PjQyPC92YWw+PC9iYXI+PC9mb28+JyBBUyB0ZXh0KSA9IHhtbHNlcmlhbGl6ZShDT05URU5UICc8 Zm9vPjxiYXI+PHZhbCB4PSJ5Ij40MjwvdmFsPjwvYmFyPjwvZm9vPicgQVMgdGV4dCBOTyBJTkRF TlQpOw0KKyA/Y29sdW1uPyANCistLS0tLS0tLS0tDQorIHQNCisoMSByb3cpDQorDQorLS0gaW5k ZW50IHhtbCBzdHJpbmdzIGNvbnRhaW5pbmcgYmxhbmsgbm9kZXMNCitTRUxFQ1QgeG1sc2VyaWFs aXplKERPQ1VNRU5UICc8Zm9vPiAgIDxiYXI+PC9iYXI+ICAgIDwvZm9vPicgQVMgdGV4dCBJTkRF TlQpOw0KKyB4bWxzZXJpYWxpemUgDQorLS0tLS0tLS0tLS0tLS0NCisgPGZvbz4gICAgICAgKw0K KyAgIDxiYXIvPiAgICArDQorIDwvZm9vPg0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1sc2VyaWFs aXplKENPTlRFTlQgICd0ZXh0IG5vZGU8Zm9vPiAgICA8YmFyPjwvYmFyPiAgIDwvZm9vPicgQVMg dGV4dCBJTkRFTlQpOw0KKyB4bWxzZXJpYWxpemUgDQorLS0tLS0tLS0tLS0tLS0NCisgdGV4dCBu b2RlICAgKw0KKyA8Zm9vPiAgICAgICArDQorICAgPGJhci8+ICAgICsNCisgPC9mb28+DQorKDEg cm93KQ0KKw0KK1NFTEVDVCB4bWwgJzxmb28+YmFyPC9mb28+JyBJUyBET0NVTUVOVDsNCisgP2Nv bHVtbj8gDQorLS0tLS0tLS0tLQ0KKyB0DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWwgJzxmb28+ YmFyPC9mb28+PGJhcj5mb288L2Jhcj4nIElTIERPQ1VNRU5UOw0KKyA/Y29sdW1uPyANCistLS0t LS0tLS0tDQorIGYNCisoMSByb3cpDQorDQorU0VMRUNUIHhtbCAnPGFiYy8+JyBJUyBOT1QgRE9D VU1FTlQ7DQorID9jb2x1bW4/IA0KKy0tLS0tLS0tLS0NCisgZg0KKygxIHJvdykNCisNCitTRUxF Q1QgeG1sICdhYmMnIElTIE5PVCBET0NVTUVOVDsNCisgP2NvbHVtbj8gDQorLS0tLS0tLS0tLQ0K KyB0DQorKDEgcm93KQ0KKw0KK1NFTEVDVCAnPD4nIElTIE5PVCBET0NVTUVOVDsNCitFUlJPUjog IGludmFsaWQgWE1MIGNvbnRlbnQNCitMSU5FIDE6IFNFTEVDVCAnPD4nIElTIE5PVCBET0NVTUVO VDsNCisgICAgICAgICAgICAgICBeDQorREVUQUlMOiAgbGluZSAxOiBTdGFydFRhZzogaW52YWxp ZCBlbGVtZW50IG5hbWUNCis8Pg0KKyBeDQorU0VMRUNUIHhtbGFnZyhkYXRhKSBGUk9NIHhtbHRl c3Q7DQorICAgICAgICAgICAgICAgIHhtbGFnZyAgICAgICAgICAgICAgICANCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyA8dmFsdWU+b25lPC92YWx1ZT48dmFsdWU+ dHdvPC92YWx1ZT4NCisoMSByb3cpDQorDQorU0VMRUNUIHhtbGFnZyhkYXRhKSBGUk9NIHhtbHRl c3QgV0hFUkUgaWQgPiAxMDsNCisgeG1sYWdnIA0KKy0tLS0tLS0tDQorIA0KKygxIHJvdykNCisN CitTRUxFQ1QgeG1sZWxlbWVudChuYW1lIGVtcGxveWVlcywgeG1sYWdnKHhtbGVsZW1lbnQobmFt ZSBuYW1lLCBuYW1lKSkpIEZST00gZW1wOw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sZWxlbWVudCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCisgPGVtcGxveWVlcz48bmFtZT5zaGFyb248L25hbWU+PG5hbWU+c2FtPC9uYW1lPjxuYW1l PmJpbGw8L25hbWU+PG5hbWU+amVmZjwvbmFtZT48bmFtZT5jaW08L25hbWU+PG5hbWU+bGluZGE8 L25hbWU+PC9lbXBsb3llZXM+DQorKDEgcm93KQ0KKw0KKy0tIENoZWNrIG1hcHBpbmcgU1FMIGlk ZW50aWZpZXIgdG8gWE1MIG5hbWUNCitTRUxFQ1QgeG1scGkobmFtZSAiOjo6X3htbF9hYmMxMzUu JS0mXyIpOw0KKyAgICAgICAgICAgICAgICAgICAgICB4bWxwaSAgICAgICAgICAgICAgICAgICAg ICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQor IDw/X3gwMDNBXzo6X3gwMDVGX3htbF9hYmMxMzUuX3gwMDI1Xy1feDAwMjZfXz8+DQorKDEgcm93 KQ0KKw0KK1NFTEVDVCB4bWxwaShuYW1lICIxMjMiKTsNCisgICAgIHhtbHBpICAgICANCistLS0t LS0tLS0tLS0tLS0NCisgPD9feDAwMzFfMjM/Pg0KKygxIHJvdykNCisNCitQUkVQQVJFIGZvbyAo eG1sKSBBUyBTRUxFQ1QgeG1sY29uY2F0KCc8Zm9vLz4nLCAkMSk7DQorU0VUIFhNTCBPUFRJT04g RE9DVU1FTlQ7DQorRVhFQ1VURSBmb28gKCc8YmFyLz4nKTsNCisgIHhtbGNvbmNhdCAgIA0KKy0t LS0tLS0tLS0tLS0tDQorIDxmb28vPjxiYXIvPg0KKygxIHJvdykNCisNCitFWEVDVVRFIGZvbyAo J2JhZCcpOw0KK0VSUk9SOiAgaW52YWxpZCBYTUwgZG9jdW1lbnQNCitMSU5FIDE6IEVYRUNVVEUg Zm9vICgnYmFkJyk7DQorICAgICAgICAgICAgICAgICAgICAgXg0KK0RFVEFJTDogIGxpbmUgMTog U3RhcnQgdGFnIGV4cGVjdGVkLCAnPCcgbm90IGZvdW5kDQorYmFkDQorXg0KK1NFTEVDVCB4bWwg JzwhRE9DVFlQRSBhPjxhLz48Yi8+JzsNCitFUlJPUjogIGludmFsaWQgWE1MIGRvY3VtZW50DQor TElORSAxOiBTRUxFQ1QgeG1sICc8IURPQ1RZUEUgYT48YS8+PGIvPic7DQorICAgICAgICAgICAg ICAgICAgIF4NCitERVRBSUw6ICBsaW5lIDE6IEV4dHJhIGNvbnRlbnQgYXQgdGhlIGVuZCBvZiB0 aGUgZG9jdW1lbnQNCis8IURPQ1RZUEUgYT48YS8+PGIvPg0KKyAgICAgICAgICAgICAgICBeDQor U0VUIFhNTCBPUFRJT04gQ09OVEVOVDsNCitFWEVDVVRFIGZvbyAoJzxiYXIvPicpOw0KKyAgeG1s Y29uY2F0ICAgDQorLS0tLS0tLS0tLS0tLS0NCisgPGZvby8+PGJhci8+DQorKDEgcm93KQ0KKw0K K0VYRUNVVEUgZm9vICgnZ29vZCcpOw0KKyB4bWxjb25jYXQgIA0KKy0tLS0tLS0tLS0tLQ0KKyA8 Zm9vLz5nb29kDQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWwgJzwhLS0gaW4gU1FMOjIwMDYrIGEg ZG9jIGlzIGNvbnRlbnQgdG9vLS0+IDw/eSB6Pz4gPCFET0NUWVBFIGE+PGEvPic7DQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB4bWwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyA8IS0tIGluIFNRTDoyMDA2KyBhIGRvYyBpcyBjb250ZW50 IHRvby0tPiA8P3kgej8+IDwhRE9DVFlQRSBhPjxhLz4NCisoMSByb3cpDQorDQorU0VMRUNUIHht bCAnPD94bWwgdmVyc2lvbj0iMS4wIj8+IDwhLS0gaGktLT4gPCFET0NUWVBFIGE+PGEvPic7DQor ICAgICAgICAgICAgIHhtbCAgICAgICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQorICA8IS0tIGhpLS0+IDwhRE9DVFlQRSBhPjxhLz4NCisoMSByb3cpDQorDQorU0VM RUNUIHhtbCAnPCFET0NUWVBFIGE+PGEvPic7DQorICAgICAgIHhtbCAgICAgICAgDQorLS0tLS0t LS0tLS0tLS0tLS0tDQorIDwhRE9DVFlQRSBhPjxhLz4NCisoMSByb3cpDQorDQorU0VMRUNUIHht bCAnPCEtLSBoaS0tPiBvb3BzIDwhRE9DVFlQRSBhPjxhLz4nOw0KK0VSUk9SOiAgaW52YWxpZCBY TUwgY29udGVudA0KK0xJTkUgMTogU0VMRUNUIHhtbCAnPCEtLSBoaS0tPiBvb3BzIDwhRE9DVFlQ RSBhPjxhLz4nOw0KKyAgICAgICAgICAgICAgICAgICBeDQorREVUQUlMOiAgbGluZSAxOiBTdGFy dFRhZzogaW52YWxpZCBlbGVtZW50IG5hbWUNCis8IS0tIGhpLS0+IG9vcHMgPCFET0NUWVBFIGE+ PGEvPg0KKyAgICAgICAgICAgICAgICAgXg0KK1NFTEVDVCB4bWwgJzwhLS0gaGktLT4gPG9vcHMv PiA8IURPQ1RZUEUgYT48YS8+JzsNCitFUlJPUjogIGludmFsaWQgWE1MIGNvbnRlbnQNCitMSU5F IDE6IFNFTEVDVCB4bWwgJzwhLS0gaGktLT4gPG9vcHMvPiA8IURPQ1RZUEUgYT48YS8+JzsNCisg ICAgICAgICAgICAgICAgICAgXg0KK0RFVEFJTDogIGxpbmUgMTogU3RhcnRUYWc6IGludmFsaWQg ZWxlbWVudCBuYW1lDQorPCEtLSBoaS0tPiA8b29wcy8+IDwhRE9DVFlQRSBhPjxhLz4NCisgICAg ICAgICAgICAgICAgICAgIF4NCitTRUxFQ1QgeG1sICc8IURPQ1RZUEUgYT48YS8+PGIvPic7DQor RVJST1I6ICBpbnZhbGlkIFhNTCBjb250ZW50DQorTElORSAxOiBTRUxFQ1QgeG1sICc8IURPQ1RZ UEUgYT48YS8+PGIvPic7DQorICAgICAgICAgICAgICAgICAgIF4NCitERVRBSUw6ICBsaW5lIDE6 IEV4dHJhIGNvbnRlbnQgYXQgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQNCis8IURPQ1RZUEUgYT48 YS8+PGIvPg0KKyAgICAgICAgICAgICAgICBeDQorLS0gVGVzdCBiYWNrd2FyZHMgcGFyc2luZw0K K0NSRUFURSBWSUVXIHhtbHZpZXcxIEFTIFNFTEVDVCB4bWxjb21tZW50KCd0ZXN0Jyk7DQorQ1JF QVRFIFZJRVcgeG1sdmlldzIgQVMgU0VMRUNUIHhtbGNvbmNhdCgnaGVsbG8nLCAneW91Jyk7DQor Q1JFQVRFIFZJRVcgeG1sdmlldzMgQVMgU0VMRUNUIHhtbGVsZW1lbnQobmFtZSBlbGVtZW50LCB4 bWxhdHRyaWJ1dGVzICgxIGFzICI6b25lOiIsICdkZXVjZScgYXMgdHdvKSwgJ2NvbnRlbnQmJyk7 DQorQ1JFQVRFIFZJRVcgeG1sdmlldzQgQVMgU0VMRUNUIHhtbGVsZW1lbnQobmFtZSBlbXBsb3ll ZSwgeG1sZm9yZXN0KG5hbWUsIGFnZSwgc2FsYXJ5IGFzIHBheSkpIEZST00gZW1wOw0KK0NSRUFU RSBWSUVXIHhtbHZpZXc1IEFTIFNFTEVDVCB4bWxwYXJzZShjb250ZW50ICc8YWJjPng8L2FiYz4n KTsNCitDUkVBVEUgVklFVyB4bWx2aWV3NiBBUyBTRUxFQ1QgeG1scGkobmFtZSBmb28sICdiYXIn KTsNCitDUkVBVEUgVklFVyB4bWx2aWV3NyBBUyBTRUxFQ1QgeG1scm9vdCh4bWwgJzxmb28vPics IHZlcnNpb24gbm8gdmFsdWUsIHN0YW5kYWxvbmUgeWVzKTsNCitDUkVBVEUgVklFVyB4bWx2aWV3 OCBBUyBTRUxFQ1QgeG1sc2VyaWFsaXplKGNvbnRlbnQgJ2dvb2QnIGFzIGNoYXIoMTApKTsNCitD UkVBVEUgVklFVyB4bWx2aWV3OSBBUyBTRUxFQ1QgeG1sc2VyaWFsaXplKGNvbnRlbnQgJ2dvb2Qn IGFzIHRleHQpOw0KK0NSRUFURSBWSUVXIHhtbHZpZXcxMCBBUyBTRUxFQ1QgeG1sc2VyaWFsaXpl KGRvY3VtZW50ICc8Zm9vPjxiYXI+NDI8L2Jhcj48L2Zvbz4nIEFTIHRleHQgaW5kZW50KTsNCitD UkVBVEUgVklFVyB4bWx2aWV3MTEgQVMgU0VMRUNUIHhtbHNlcmlhbGl6ZShkb2N1bWVudCAnPGZv bz48YmFyPjQyPC9iYXI+PC9mb28+JyBBUyBjaGFyYWN0ZXIgdmFyeWluZyBubyBpbmRlbnQpOw0K K1NFTEVDVCB0YWJsZV9uYW1lLCB2aWV3X2RlZmluaXRpb24gRlJPTSBpbmZvcm1hdGlvbl9zY2hl bWEudmlld3MNCisgIFdIRVJFIHRhYmxlX25hbWUgTElLRSAneG1sdmlldyUnIE9SREVSIEJZIDE7 DQorIHRhYmxlX25hbWUgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZpZXdfZGVmaW5pdGlvbiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCisgeG1sdmlldzEgICB8ICBTRUxFQ1QgeG1sY29tbWVudCgndGVz dCc6OnRleHQpIEFTIHhtbGNvbW1lbnQ7DQorIHhtbHZpZXcxMCAgfCAgU0VMRUNUIFhNTFNFUklB TElaRShET0NVTUVOVCAnPGZvbz48YmFyPjQyPC9iYXI+PC9mb28+Jzo6eG1sIEFTIHRleHQgSU5E RU5UKSBBUyAieG1sc2VyaWFsaXplIjsNCisgeG1sdmlldzExICB8ICBTRUxFQ1QgKFhNTFNFUklB TElaRShET0NVTUVOVCAnPGZvbz48YmFyPjQyPC9iYXI+PC9mb28+Jzo6eG1sIEFTIGNoYXJhY3Rl ciB2YXJ5aW5nIE5PIElOREVOVCkpOjpjaGFyYWN0ZXIgdmFyeWluZyBBUyAieG1sc2VyaWFsaXpl IjsNCisgeG1sdmlldzIgICB8ICBTRUxFQ1QgWE1MQ09OQ0FUKCdoZWxsbyc6OnhtbCwgJ3lvdSc6 OnhtbCkgQVMgInhtbGNvbmNhdCI7DQorIHhtbHZpZXczICAgfCAgU0VMRUNUIFhNTEVMRU1FTlQo TkFNRSBlbGVtZW50LCBYTUxBVFRSSUJVVEVTKDEgQVMgIjpvbmU6IiwgJ2RldWNlJyBBUyB0d28p LCAnY29udGVudCYnKSBBUyAieG1sZWxlbWVudCI7DQorIHhtbHZpZXc0ICAgfCAgU0VMRUNUIFhN TEVMRU1FTlQoTkFNRSBlbXBsb3llZSwgWE1MRk9SRVNUKG5hbWUgQVMgbmFtZSwgYWdlIEFTIGFn ZSwgc2FsYXJ5IEFTIHBheSkpIEFTICJ4bWxlbGVtZW50IiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKw0KKyAgICAgICAgICAgIHwgICAgRlJPTSBlbXA7DQorIHhtbHZpZXc1ICAgfCAg U0VMRUNUIFhNTFBBUlNFKENPTlRFTlQgJzxhYmM+eDwvYWJjPic6OnRleHQgU1RSSVAgV0hJVEVT UEFDRSkgQVMgInhtbHBhcnNlIjsNCisgeG1sdmlldzYgICB8ICBTRUxFQ1QgWE1MUEkoTkFNRSBm b28sICdiYXInOjp0ZXh0KSBBUyAieG1scGkiOw0KKyB4bWx2aWV3NyAgIHwgIFNFTEVDVCBYTUxS T09UKCc8Zm9vLz4nOjp4bWwsIFZFUlNJT04gTk8gVkFMVUUsIFNUQU5EQUxPTkUgWUVTKSBBUyAi eG1scm9vdCI7DQorIHhtbHZpZXc4ICAgfCAgU0VMRUNUIChYTUxTRVJJQUxJWkUoQ09OVEVOVCAn Z29vZCc6OnhtbCBBUyBjaGFyYWN0ZXIoMTApIE5PIElOREVOVCkpOjpjaGFyYWN0ZXIoMTApIEFT ICJ4bWxzZXJpYWxpemUiOw0KKyB4bWx2aWV3OSAgIHwgIFNFTEVDVCBYTUxTRVJJQUxJWkUoQ09O VEVOVCAnZ29vZCc6OnhtbCBBUyB0ZXh0IE5PIElOREVOVCkgQVMgInhtbHNlcmlhbGl6ZSI7DQor KDExIHJvd3MpDQorDQorLS0gVGV4dCBYUGF0aCBleHByZXNzaW9ucyBldmFsdWF0aW9uDQorU0VM RUNUIHhwYXRoKCcvdmFsdWUnLCBkYXRhKSBGUk9NIHhtbHRlc3Q7DQorICAgICAgICB4cGF0aCAg ICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgezx2YWx1ZT5vbmU8L3ZhbHVlPn0N Cisgezx2YWx1ZT50d288L3ZhbHVlPn0NCisoMiByb3dzKQ0KKw0KK1NFTEVDVCB4cGF0aChOVUxM LCBOVUxMKSBJUyBOVUxMIEZST00geG1sdGVzdDsNCisgP2NvbHVtbj8gDQorLS0tLS0tLS0tLQ0K KyB0DQorIHQNCisoMiByb3dzKQ0KKw0KK1NFTEVDVCB4cGF0aCgnJywgJzwhLS0gZXJyb3IgLS0+ Jyk7DQorRVJST1I6ICBlbXB0eSBYUGF0aCBleHByZXNzaW9uDQorQ09OVEVYVDogIFNRTCBmdW5j dGlvbiAieHBhdGgiIHN0YXRlbWVudCAxDQorU0VMRUNUIHhwYXRoKCcvL3RleHQoKScsICc8bG9j YWw6ZGF0YSB4bWxuczpsb2NhbD0iaHR0cDovLzEyNy4wLjAuMSI+PGxvY2FsOnBpZWNlIGlkPSIx Ij5udW1iZXIgb25lPC9sb2NhbDpwaWVjZT48bG9jYWw6cGllY2UgaWQ9IjIiIC8+PC9sb2NhbDpk YXRhPicpOw0KKyAgICAgeHBhdGggICAgICANCistLS0tLS0tLS0tLS0tLS0tDQorIHsibnVtYmVy IG9uZSJ9DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4cGF0aCgnLy9sb2M6cGllY2UvQGlkJywgJzxs b2NhbDpkYXRhIHhtbG5zOmxvY2FsPSJodHRwOi8vMTI3LjAuMC4xIj48bG9jYWw6cGllY2UgaWQ9 IjEiPm51bWJlciBvbmU8L2xvY2FsOnBpZWNlPjxsb2NhbDpwaWVjZSBpZD0iMiIgLz48L2xvY2Fs OmRhdGE+JywgQVJSQVlbQVJSQVlbJ2xvYycsICdodHRwOi8vMTI3LjAuMC4xJ11dKTsNCisgeHBh dGggDQorLS0tLS0tLQ0KKyB7MSwyfQ0KKygxIHJvdykNCisNCitTRUxFQ1QgeHBhdGgoJy8vbG9j OnBpZWNlJywgJzxsb2NhbDpkYXRhIHhtbG5zOmxvY2FsPSJodHRwOi8vMTI3LjAuMC4xIj48bG9j YWw6cGllY2UgaWQ9IjEiPm51bWJlciBvbmU8L2xvY2FsOnBpZWNlPjxsb2NhbDpwaWVjZSBpZD0i MiIgLz48L2xvY2FsOmRhdGE+JywgQVJSQVlbQVJSQVlbJ2xvYycsICdodHRwOi8vMTI3LjAuMC4x J11dKTsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB4cGF0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCisgeyI8bG9jYWw6cGllY2UgeG1sbnM6bG9jYWw9XCJodHRwOi8vMTI3 LjAuMC4xXCIgaWQ9XCIxXCI+bnVtYmVyIG9uZTwvbG9jYWw6cGllY2U+IiwiPGxvY2FsOnBpZWNl IHhtbG5zOmxvY2FsPVwiaHR0cDovLzEyNy4wLjAuMVwiIGlkPVwiMlwiLz4ifQ0KKygxIHJvdykN CisNCitTRUxFQ1QgeHBhdGgoJy8vbG9jOnBpZWNlJywgJzxsb2NhbDpkYXRhIHhtbG5zOmxvY2Fs PSJodHRwOi8vMTI3LjAuMC4xIiB4bWxucz0iaHR0cDovLzEyNy4wLjAuMiI+PGxvY2FsOnBpZWNl IGlkPSIxIj48aW50ZXJuYWw+bnVtYmVyIG9uZTwvaW50ZXJuYWw+PGludGVybmFsMi8+PC9sb2Nh bDpwaWVjZT48bG9jYWw6cGllY2UgaWQ9IjIiIC8+PC9sb2NhbDpkYXRhPicsIEFSUkFZW0FSUkFZ Wydsb2MnLCAnaHR0cDovLzEyNy4wLjAuMSddXSk7DQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgeHBhdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIHsiPGxvY2Fs OnBpZWNlIHhtbG5zOmxvY2FsPVwiaHR0cDovLzEyNy4wLjAuMVwiIHhtbG5zPVwiaHR0cDovLzEy Ny4wLjAuMlwiIGlkPVwiMVwiPjxpbnRlcm5hbD5udW1iZXIgb25lPC9pbnRlcm5hbD48aW50ZXJu YWwyLz48L2xvY2FsOnBpZWNlPiIsIjxsb2NhbDpwaWVjZSB4bWxuczpsb2NhbD1cImh0dHA6Ly8x MjcuMC4wLjFcIiBpZD1cIjJcIi8+In0NCisoMSByb3cpDQorDQorU0VMRUNUIHhwYXRoKCcvL2In LCAnPGE+b25lIDxiPnR3bzwvYj4gdGhyZWUgPGI+ZXRjPC9iPjwvYT4nKTsNCisgICAgICAgICAg eHBhdGggICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyB7PGI+dHdvPC9i Piw8Yj5ldGM8L2I+fQ0KKygxIHJvdykNCisNCitTRUxFQ1QgeHBhdGgoJy8vdGV4dCgpJywgJzxy b290PiZsdDs8L3Jvb3Q+Jyk7DQorIHhwYXRoICANCistLS0tLS0tLQ0KKyB7Jmx0O30NCisoMSBy b3cpDQorDQorU0VMRUNUIHhwYXRoKCcvL0B2YWx1ZScsICc8cm9vdCB2YWx1ZT0iJmx0OyIvPicp Ow0KKyB4cGF0aCAgDQorLS0tLS0tLS0NCisgeyZsdDt9DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4 cGF0aCgnJyc8PGludmFsaWQ+PicnJywgJzxyb290Lz4nKTsNCisgICAgICAgICAgIHhwYXRoICAg ICAgICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgeyZsdDsmbHQ7aW52YWxp ZCZndDsmZ3Q7fQ0KKygxIHJvdykNCisNCitTRUxFQ1QgeHBhdGgoJ2NvdW50KC8vKiknLCAnPHJv b3Q+PHN1Yi8+PHN1Yi8+PC9yb290PicpOw0KKyB4cGF0aCANCistLS0tLS0tDQorIHszfQ0KKygx IHJvdykNCisNCitTRUxFQ1QgeHBhdGgoJ2NvdW50KC8vKik9MCcsICc8cm9vdD48c3ViLz48c3Vi Lz48L3Jvb3Q+Jyk7DQorICB4cGF0aCAgDQorLS0tLS0tLS0tDQorIHtmYWxzZX0NCisoMSByb3cp DQorDQorU0VMRUNUIHhwYXRoKCdjb3VudCgvLyopPTMnLCAnPHJvb3Q+PHN1Yi8+PHN1Yi8+PC9y b290PicpOw0KKyB4cGF0aCAgDQorLS0tLS0tLS0NCisge3RydWV9DQorKDEgcm93KQ0KKw0KK1NF TEVDVCB4cGF0aCgnbmFtZSgvKiknLCAnPHJvb3Q+PHN1Yi8+PHN1Yi8+PC9yb290PicpOw0KKyB4 cGF0aCAgDQorLS0tLS0tLS0NCisge3Jvb3R9DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4cGF0aCgn L25vc3VjaHRhZycsICc8cm9vdC8+Jyk7DQorIHhwYXRoIA0KKy0tLS0tLS0NCisge30NCisoMSBy b3cpDQorDQorU0VMRUNUIHhwYXRoKCdyb290JywgJzxyb290Lz4nKTsNCisgICB4cGF0aCAgIA0K Ky0tLS0tLS0tLS0tDQorIHs8cm9vdC8+fQ0KKygxIHJvdykNCisNCistLSBSb3VuZC10cmlwIG5v bi1BU0NJSSBkYXRhIHRocm91Z2ggeHBhdGgoKS4NCitETyAkJA0KK0RFQ0xBUkUNCisgIHhtbF9k ZWNsYXJhdGlvbiB0ZXh0IDo9ICc8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1 OS0xIj8+JzsNCisgIGRlZ3JlZV9zeW1ib2wgdGV4dDsNCisgIHJlcyB4bWxbXTsNCitCRUdJTg0K KyAgLS0gUGVyIHRoZSBkb2N1bWVudGF0aW9uLCBleGNlcHQgd2hlbiB0aGUgc2VydmVyIGVuY29k aW5nIGlzIFVURjgsIHhwYXRoKCkNCisgIC0tIG1heSBub3Qgd29yayBvbiBub24tQVNDSUkgZGF0 YS4gIFRoZSB1bnRyYW5zbGF0YWJsZV9jaGFyYWN0ZXIgYW5kDQorICAtLSB1bmRlZmluZWRfZnVu Y3Rpb24gdHJhcHMgYmVsb3csIGN1cnJlbnRseSBkZWFkIGNvZGUsIHdpbGwgYmVjb21lIHJlbGV2 YW50DQorICAtLSBpZiB3ZSByZW1vdmUgdGhpcyBsaW1pdGF0aW9uLg0KKyAgSUYgY3VycmVudF9z ZXR0aW5nKCdzZXJ2ZXJfZW5jb2RpbmcnKSA8PiAnVVRGOCcgVEhFTg0KKyAgICBSQUlTRSBMT0cg J3NraXA6IGVuY29kaW5nICUgdW5zdXBwb3J0ZWQgZm9yIHhwYXRoJywNCisgICAgICBjdXJyZW50 X3NldHRpbmcoJ3NlcnZlcl9lbmNvZGluZycpOw0KKyAgICBSRVRVUk47DQorICBFTkQgSUY7DQor DQorICBkZWdyZWVfc3ltYm9sIDo9IGNvbnZlcnRfZnJvbSgnXHhjMmIwJywgJ1VURjgnKTsNCisg IHJlcyA6PSB4cGF0aCgndGV4dCgpJywgKHhtbF9kZWNsYXJhdGlvbiB8fA0KKyAgICAnPHg+JyB8 fCBkZWdyZWVfc3ltYm9sIHx8ICc8L3g+Jyk6OnhtbCk7DQorICBJRiBkZWdyZWVfc3ltYm9sIDw+ IHJlc1sxXTo6dGV4dCBUSEVODQorICAgIFJBSVNFICdleHBlY3RlZCAlICglKSwgZ290ICUgKCUp JywNCisgICAgICBkZWdyZWVfc3ltYm9sLCBjb252ZXJ0X3RvKGRlZ3JlZV9zeW1ib2wsICdVVEY4 JyksDQorICAgICAgcmVzWzFdLCBjb252ZXJ0X3RvKHJlc1sxXTo6dGV4dCwgJ1VURjgnKTsNCisg IEVORCBJRjsNCitFWENFUFRJT04NCisgIC0tIGNoYXJhY3RlciB3aXRoIGJ5dGUgc2VxdWVuY2Ug MHhjMiAweGIwIGluIGVuY29kaW5nICJVVEY4IiBoYXMgbm8gZXF1aXZhbGVudCBpbiBlbmNvZGlu ZyAiTEFUSU44Ig0KKyAgV0hFTiB1bnRyYW5zbGF0YWJsZV9jaGFyYWN0ZXINCisgIC0tIGRlZmF1 bHQgY29udmVyc2lvbiBmdW5jdGlvbiBmb3IgZW5jb2RpbmcgIlVURjgiIHRvICJNVUxFX0lOVEVS TkFMIiBkb2VzIG5vdCBleGlzdA0KKyAgT1IgdW5kZWZpbmVkX2Z1bmN0aW9uDQorICAtLSB1bnN1 cHBvcnRlZCBYTUwgZmVhdHVyZQ0KKyAgT1IgZmVhdHVyZV9ub3Rfc3VwcG9ydGVkIFRIRU4NCisg ICAgUkFJU0UgTE9HICdza2lwOiAlJywgU1FMRVJSTTsNCitFTkQNCiskJDsNCistLSBUZXN0IHht bGV4aXN0cyBhbmQgeHBhdGhfZXhpc3RzDQorU0VMRUNUIHhtbGV4aXN0cygnLy90b3duW3RleHQo KSA9ICcnVG9yb250bycnXScgUEFTU0lORyBCWSBSRUYgJzx0b3ducz48dG93bj5CaWRmb3JkLW9u LUF2b248L3Rvd24+PHRvd24+Q3dtYnJhbjwvdG93bj48dG93bj5CcmlzdG9sPC90b3duPjwvdG93 bnM+Jyk7DQorIHhtbGV4aXN0cyANCistLS0tLS0tLS0tLQ0KKyBmDQorKDEgcm93KQ0KKw0KK1NF TEVDVCB4bWxleGlzdHMoJy8vdG93blt0ZXh0KCkgPSAnJ0N3bWJyYW4nJ10nIFBBU1NJTkcgQlkg UkVGICc8dG93bnM+PHRvd24+QmlkZm9yZC1vbi1Bdm9uPC90b3duPjx0b3duPkN3bWJyYW48L3Rv d24+PHRvd24+QnJpc3RvbDwvdG93bj48L3Rvd25zPicpOw0KKyB4bWxleGlzdHMgDQorLS0tLS0t LS0tLS0NCisgdA0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1sZXhpc3RzKCdjb3VudCgvbm9zdWNo dGFnKScgUEFTU0lORyBCWSBSRUYgJzxyb290Lz4nKTsNCisgeG1sZXhpc3RzIA0KKy0tLS0tLS0t LS0tDQorIHQNCisoMSByb3cpDQorDQorU0VMRUNUIHhwYXRoX2V4aXN0cygnLy90b3duW3RleHQo KSA9ICcnVG9yb250bycnXScsJzx0b3ducz48dG93bj5CaWRmb3JkLW9uLUF2b248L3Rvd24+PHRv d24+Q3dtYnJhbjwvdG93bj48dG93bj5CcmlzdG9sPC90b3duPjwvdG93bnM+Jzo6eG1sKTsNCisg eHBhdGhfZXhpc3RzIA0KKy0tLS0tLS0tLS0tLS0tDQorIGYNCisoMSByb3cpDQorDQorU0VMRUNU IHhwYXRoX2V4aXN0cygnLy90b3duW3RleHQoKSA9ICcnQ3dtYnJhbicnXScsJzx0b3ducz48dG93 bj5CaWRmb3JkLW9uLUF2b248L3Rvd24+PHRvd24+Q3dtYnJhbjwvdG93bj48dG93bj5CcmlzdG9s PC90b3duPjwvdG93bnM+Jzo6eG1sKTsNCisgeHBhdGhfZXhpc3RzIA0KKy0tLS0tLS0tLS0tLS0t DQorIHQNCisoMSByb3cpDQorDQorU0VMRUNUIHhwYXRoX2V4aXN0cygnY291bnQoL25vc3VjaHRh ZyknLCAnPHJvb3QvPic6OnhtbCk7DQorIHhwYXRoX2V4aXN0cyANCistLS0tLS0tLS0tLS0tLQ0K KyB0DQorKDEgcm93KQ0KKw0KK0lOU0VSVCBJTlRPIHhtbHRlc3QgVkFMVUVTICg0LCAnPG1lbnU+ PGJlZXJzPjxuYW1lPkJ1ZHZhcjwvbmFtZT48Y29zdD5mcmVlPC9jb3N0PjxuYW1lPkNhcmxpbmc8 L25hbWU+PGNvc3Q+bG90czwvY29zdD48L2JlZXJzPjwvbWVudT4nOjp4bWwpOw0KK0lOU0VSVCBJ TlRPIHhtbHRlc3QgVkFMVUVTICg1LCAnPG1lbnU+PGJlZXJzPjxuYW1lPk1vbHNvbjwvbmFtZT48 Y29zdD5mcmVlPC9jb3N0PjxuYW1lPkNhcmxpbmc8L25hbWU+PGNvc3Q+bG90czwvY29zdD48L2Jl ZXJzPjwvbWVudT4nOjp4bWwpOw0KK0lOU0VSVCBJTlRPIHhtbHRlc3QgVkFMVUVTICg2LCAnPG15 bnM6bWVudSB4bWxuczpteW5zPSJodHRwOi8vbXlucy5jb20iPjxteW5zOmJlZXJzPjxteW5zOm5h bWU+QnVkdmFyPC9teW5zOm5hbWU+PG15bnM6Y29zdD5mcmVlPC9teW5zOmNvc3Q+PG15bnM6bmFt ZT5DYXJsaW5nPC9teW5zOm5hbWU+PG15bnM6Y29zdD5sb3RzPC9teW5zOmNvc3Q+PC9teW5zOmJl ZXJzPjwvbXluczptZW51Pic6OnhtbCk7DQorSU5TRVJUIElOVE8geG1sdGVzdCBWQUxVRVMgKDcs ICc8bXluczptZW51IHhtbG5zOm15bnM9Imh0dHA6Ly9teW5zLmNvbSI+PG15bnM6YmVlcnM+PG15 bnM6bmFtZT5Nb2xzb248L215bnM6bmFtZT48bXluczpjb3N0PmZyZWU8L215bnM6Y29zdD48bXlu czpuYW1lPkNhcmxpbmc8L215bnM6bmFtZT48bXluczpjb3N0PmxvdHM8L215bnM6Y29zdD48L215 bnM6YmVlcnM+PC9teW5zOm1lbnU+Jzo6eG1sKTsNCitTRUxFQ1QgQ09VTlQoaWQpIEZST00geG1s dGVzdCBXSEVSRSB4bWxleGlzdHMoJy9tZW51L2JlZXInIFBBU1NJTkcgZGF0YSk7DQorIGNvdW50 IA0KKy0tLS0tLS0NCisgICAgIDANCisoMSByb3cpDQorDQorU0VMRUNUIENPVU5UKGlkKSBGUk9N IHhtbHRlc3QgV0hFUkUgeG1sZXhpc3RzKCcvbWVudS9iZWVyJyBQQVNTSU5HIEJZIFJFRiBkYXRh IEJZIFJFRik7DQorIGNvdW50IA0KKy0tLS0tLS0NCisgICAgIDANCisoMSByb3cpDQorDQorU0VM RUNUIENPVU5UKGlkKSBGUk9NIHhtbHRlc3QgV0hFUkUgeG1sZXhpc3RzKCcvbWVudS9iZWVycycg UEFTU0lORyBCWSBSRUYgZGF0YSk7DQorIGNvdW50IA0KKy0tLS0tLS0NCisgICAgIDINCisoMSBy b3cpDQorDQorU0VMRUNUIENPVU5UKGlkKSBGUk9NIHhtbHRlc3QgV0hFUkUgeG1sZXhpc3RzKCcv bWVudS9iZWVycy9uYW1lW3RleHQoKSA9ICcnTW9sc29uJyddJyBQQVNTSU5HIEJZIFJFRiBkYXRh KTsNCisgY291bnQgDQorLS0tLS0tLQ0KKyAgICAgMQ0KKygxIHJvdykNCisNCitTRUxFQ1QgQ09V TlQoaWQpIEZST00geG1sdGVzdCBXSEVSRSB4cGF0aF9leGlzdHMoJy9tZW51L2JlZXInLGRhdGEp Ow0KKyBjb3VudCANCistLS0tLS0tDQorICAgICAwDQorKDEgcm93KQ0KKw0KK1NFTEVDVCBDT1VO VChpZCkgRlJPTSB4bWx0ZXN0IFdIRVJFIHhwYXRoX2V4aXN0cygnL21lbnUvYmVlcnMnLGRhdGEp Ow0KKyBjb3VudCANCistLS0tLS0tDQorICAgICAyDQorKDEgcm93KQ0KKw0KK1NFTEVDVCBDT1VO VChpZCkgRlJPTSB4bWx0ZXN0IFdIRVJFIHhwYXRoX2V4aXN0cygnL21lbnUvYmVlcnMvbmFtZVt0 ZXh0KCkgPSAnJ01vbHNvbicnXScsZGF0YSk7DQorIGNvdW50IA0KKy0tLS0tLS0NCisgICAgIDEN CisoMSByb3cpDQorDQorU0VMRUNUIENPVU5UKGlkKSBGUk9NIHhtbHRlc3QgV0hFUkUgeHBhdGhf ZXhpc3RzKCcvbXluczptZW51L215bnM6YmVlcicsZGF0YSxBUlJBWVtBUlJBWVsnbXlucycsJ2h0 dHA6Ly9teW5zLmNvbSddXSk7DQorIGNvdW50IA0KKy0tLS0tLS0NCisgICAgIDANCisoMSByb3cp DQorDQorU0VMRUNUIENPVU5UKGlkKSBGUk9NIHhtbHRlc3QgV0hFUkUgeHBhdGhfZXhpc3RzKCcv bXluczptZW51L215bnM6YmVlcnMnLGRhdGEsQVJSQVlbQVJSQVlbJ215bnMnLCdodHRwOi8vbXlu cy5jb20nXV0pOw0KKyBjb3VudCANCistLS0tLS0tDQorICAgICAyDQorKDEgcm93KQ0KKw0KK1NF TEVDVCBDT1VOVChpZCkgRlJPTSB4bWx0ZXN0IFdIRVJFIHhwYXRoX2V4aXN0cygnL215bnM6bWVu dS9teW5zOmJlZXJzL215bnM6bmFtZVt0ZXh0KCkgPSAnJ01vbHNvbicnXScsZGF0YSxBUlJBWVtB UlJBWVsnbXlucycsJ2h0dHA6Ly9teW5zLmNvbSddXSk7DQorIGNvdW50IA0KKy0tLS0tLS0NCisg ICAgIDENCisoMSByb3cpDQorDQorQ1JFQVRFIFRBQkxFIHF1ZXJ5ICggZXhwciBURVhUICk7DQor SU5TRVJUIElOVE8gcXVlcnkgVkFMVUVTICgnL21lbnUvYmVlcnMvY29zdFt0ZXh0KCkgPSAnJ2xv dHMnJ10nKTsNCitTRUxFQ1QgQ09VTlQoaWQpIEZST00geG1sdGVzdCwgcXVlcnkgV0hFUkUgeG1s ZXhpc3RzKGV4cHIgUEFTU0lORyBCWSBSRUYgZGF0YSk7DQorIGNvdW50IA0KKy0tLS0tLS0NCisg ICAgIDINCisoMSByb3cpDQorDQorLS0gVGVzdCB4bWxfaXNfd2VsbF9mb3JtZWQgYW5kIHZhcmlh bnRzDQorU0VMRUNUIHhtbF9pc193ZWxsX2Zvcm1lZF9kb2N1bWVudCgnPGZvbz5iYXI8L2Zvbz4n KTsNCisgeG1sX2lzX3dlbGxfZm9ybWVkX2RvY3VtZW50IA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQorIHQNCisoMSByb3cpDQorDQorU0VMRUNUIHhtbF9pc193ZWxsX2Zvcm1lZF9k b2N1bWVudCgnYWJjJyk7DQorIHhtbF9pc193ZWxsX2Zvcm1lZF9kb2N1bWVudCANCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyBmDQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxfaXNf d2VsbF9mb3JtZWRfY29udGVudCgnPGZvbz5iYXI8L2Zvbz4nKTsNCisgeG1sX2lzX3dlbGxfZm9y bWVkX2NvbnRlbnQgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyB0DQorKDEgcm93 KQ0KKw0KK1NFTEVDVCB4bWxfaXNfd2VsbF9mb3JtZWRfY29udGVudCgnYWJjJyk7DQorIHhtbF9p c193ZWxsX2Zvcm1lZF9jb250ZW50IA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisg dA0KKygxIHJvdykNCisNCitTRVQgeG1sb3B0aW9uIFRPIERPQ1VNRU5UOw0KK1NFTEVDVCB4bWxf aXNfd2VsbF9mb3JtZWQoJ2FiYycpOw0KKyB4bWxfaXNfd2VsbF9mb3JtZWQgDQorLS0tLS0tLS0t LS0tLS0tLS0tLS0NCisgZg0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1sX2lzX3dlbGxfZm9ybWVk KCc8PicpOw0KKyB4bWxfaXNfd2VsbF9mb3JtZWQgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisg Zg0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1sX2lzX3dlbGxfZm9ybWVkKCc8YWJjLz4nKTsNCisg eG1sX2lzX3dlbGxfZm9ybWVkIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIHQNCisoMSByb3cp DQorDQorU0VMRUNUIHhtbF9pc193ZWxsX2Zvcm1lZCgnPGZvbz5iYXI8L2Zvbz4nKTsNCisgeG1s X2lzX3dlbGxfZm9ybWVkIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIHQNCisoMSByb3cpDQor DQorU0VMRUNUIHhtbF9pc193ZWxsX2Zvcm1lZCgnPGZvbz5iYXI8L2ZvbycpOw0KKyB4bWxfaXNf d2VsbF9mb3JtZWQgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgZg0KKygxIHJvdykNCisNCitT RUxFQ1QgeG1sX2lzX3dlbGxfZm9ybWVkKCc8Zm9vPjxiYXI+YmF6PC9mb28+Jyk7DQorIHhtbF9p c193ZWxsX2Zvcm1lZCANCistLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyBmDQorKDEgcm93KQ0KKw0K K1NFTEVDVCB4bWxfaXNfd2VsbF9mb3JtZWQoJzxsb2NhbDpkYXRhIHhtbG5zOmxvY2FsPSJodHRw Oi8vMTI3LjAuMC4xIj48bG9jYWw6cGllY2UgaWQ9IjEiPm51bWJlciBvbmU8L2xvY2FsOnBpZWNl Pjxsb2NhbDpwaWVjZSBpZD0iMiIgLz48L2xvY2FsOmRhdGE+Jyk7DQorIHhtbF9pc193ZWxsX2Zv cm1lZCANCistLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyB0DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4 bWxfaXNfd2VsbF9mb3JtZWQoJzxwZzpmb28geG1sbnM6cGc9Imh0dHA6Ly9wb3N0Z3Jlc3FsLm9y Zy9zdHVmZiI+YmFyPC9teTpmb28+Jyk7DQorIHhtbF9pc193ZWxsX2Zvcm1lZCANCistLS0tLS0t LS0tLS0tLS0tLS0tLQ0KKyBmDQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxfaXNfd2VsbF9mb3Jt ZWQoJzxwZzpmb28geG1sbnM6cGc9Imh0dHA6Ly9wb3N0Z3Jlc3FsLm9yZy9zdHVmZiI+YmFyPC9w Zzpmb28+Jyk7DQorIHhtbF9pc193ZWxsX2Zvcm1lZCANCistLS0tLS0tLS0tLS0tLS0tLS0tLQ0K KyB0DQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4bWxfaXNfd2VsbF9mb3JtZWQoJzxpbnZhbGlkZW50 aXR5PiY8L2FiYz4nKTsNCisgeG1sX2lzX3dlbGxfZm9ybWVkIA0KKy0tLS0tLS0tLS0tLS0tLS0t LS0tDQorIGYNCisoMSByb3cpDQorDQorU0VMRUNUIHhtbF9pc193ZWxsX2Zvcm1lZCgnPHVuZGVm aW5lZGVudGl0eT4maWRvbnRleGlzdDs8L2FiYz4nKTsNCisgeG1sX2lzX3dlbGxfZm9ybWVkIA0K Ky0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIGYNCisoMSByb3cpDQorDQorU0VMRUNUIHhtbF9pc193 ZWxsX2Zvcm1lZCgnPGludmFsaWRucyB4bWxucz0nJyZsdDsnJy8+Jyk7DQorIHhtbF9pc193ZWxs X2Zvcm1lZCANCistLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyB0DQorKDEgcm93KQ0KKw0KK1NFTEVD VCB4bWxfaXNfd2VsbF9mb3JtZWQoJzxyZWxhdGl2ZW5zIHhtbG5zPScncmVsYXRpdmUnJy8+Jyk7 DQorIHhtbF9pc193ZWxsX2Zvcm1lZCANCistLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyB0DQorKDEg cm93KQ0KKw0KK1NFTEVDVCB4bWxfaXNfd2VsbF9mb3JtZWQoJzx0d29lcnJvcnM+Jmlkb250ZXhp c3Q7PC91bmJhbGFuY2VkPicpOw0KKyB4bWxfaXNfd2VsbF9mb3JtZWQgDQorLS0tLS0tLS0tLS0t LS0tLS0tLS0NCisgZg0KKygxIHJvdykNCisNCitTRVQgeG1sb3B0aW9uIFRPIENPTlRFTlQ7DQor U0VMRUNUIHhtbF9pc193ZWxsX2Zvcm1lZCgnYWJjJyk7DQorIHhtbF9pc193ZWxsX2Zvcm1lZCAN CistLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyB0DQorKDEgcm93KQ0KKw0KKy0tIFNpbmNlIHhwYXRo KCkgZGVhbHMgd2l0aCBuYW1lc3BhY2VzLCBpdCdzIGEgYml0IHN0cmljdGVyIGFib3V0DQorLS0g d2hhdCdzIHdlbGwtZm9ybWVkIGFuZCB3aGF0J3Mgbm90LiBJZiB3ZSBkb24ndCBvYmV5IHRoZXNl IHJ1bGVzDQorLS0gKGkuZS4gaWdub3JlIG5hbWVzcGFjZS1yZWxhdGVkIGVycm9ycyBmcm9tIGxp YnhtbCksIHhwYXRoKCkNCistLSBmYWlscyBpbiBzdWJ0bGUgd2F5cy4gVGhlIGZvbGxvd2luZyB3 b3VsZCBmb3IgZXhhbXBsZSBwcm9kdWNlDQorLS0gdGhlIHhtbCB2YWx1ZQ0KKy0tICAgPGludmFs aWRucyB4bWxucz0nPCcvPg0KKy0tIHdoaWNoIGlzIGludmFsaWQgYmVjYXVzZSAnPCcgbWF5IG5v dCBhcHBlYXIgdW4tZXNjYXBlZCBpbg0KKy0tIGF0dHJpYnV0ZSB2YWx1ZXMuDQorLS0gU2luY2Ug ZGlmZmVyZW50IGxpYnhtbCB2ZXJzaW9ucyBlbWl0IHNsaWdodGx5IGRpZmZlcmVudA0KKy0tIGVy cm9yIG1lc3NhZ2VzLCB3ZSBzdXBwcmVzcyB0aGUgREVUQUlMIGluIHRoaXMgdGVzdC4NCitcc2V0 IFZFUkJPU0lUWSB0ZXJzZQ0KK1NFTEVDVCB4cGF0aCgnLyonLCAnPGludmFsaWRucyB4bWxucz0n JyZsdDsnJy8+Jyk7DQorRVJST1I6ICBjb3VsZCBub3QgcGFyc2UgWE1MIGRvY3VtZW50DQorXHNl dCBWRVJCT1NJVFkgZGVmYXVsdA0KKy0tIEFnYWluLCB0aGUgWE1MIGlzbid0IHdlbGwtZm9ybWVk IGZvciBuYW1lc3BhY2UgcHVycG9zZXMNCitTRUxFQ1QgeHBhdGgoJy8qJywgJzxub3N1Y2hwcmVm aXg6dGFnLz4nKTsNCitFUlJPUjogIGNvdWxkIG5vdCBwYXJzZSBYTUwgZG9jdW1lbnQNCitERVRB SUw6ICBsaW5lIDE6IE5hbWVzcGFjZSBwcmVmaXggbm9zdWNocHJlZml4IG9uIHRhZyBpcyBub3Qg ZGVmaW5lZA0KKzxub3N1Y2hwcmVmaXg6dGFnLz4NCisgICAgICAgICAgICAgICAgIF4NCitDT05U RVhUOiAgU1FMIGZ1bmN0aW9uICJ4cGF0aCIgc3RhdGVtZW50IDENCistLSBYUGF0aCBkZXByZWNh dGVzIHJlbGF0aXZlIG5hbWVzcGFjZXMsIGJ1dCB0aGV5J3JlIG5vdCBzdXBwb3NlZCB0bw0KKy0t IHRocm93IGFuIGVycm9yLCBvbmx5IGEgd2FybmluZy4NCitTRUxFQ1QgeHBhdGgoJy8qJywgJzxy ZWxhdGl2ZW5zIHhtbG5zPScncmVsYXRpdmUnJy8+Jyk7DQorV0FSTklORzogIGxpbmUgMTogeG1s bnM6IFVSSSByZWxhdGl2ZSBpcyBub3QgYWJzb2x1dGUNCis8cmVsYXRpdmVucyB4bWxucz0ncmVs YXRpdmUnLz4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgXg0KKyAgICAgICAgICAgICAg ICB4cGF0aCAgICAgICAgICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCisgeyI8cmVsYXRpdmVucyB4bWxucz1cInJlbGF0aXZlXCIvPiJ9DQorKDEgcm93 KQ0KKw0KKy0tIEV4dGVybmFsIGVudGl0eSByZWZlcmVuY2VzIHNob3VsZCBub3QgbGVhayBmaWxl c3lzdGVtIGluZm9ybWF0aW9uLg0KK1NFTEVDVCBYTUxQQVJTRShET0NVTUVOVCAnPCFET0NUWVBF IGZvbyBbPCFFTlRJVFkgYyBTWVNURU0gIi9ldGMvcGFzc3dkIj5dPjxmb28+JmM7PC9mb28+Jyk7 DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbHBhcnNlICAgICAgICAgICAgICAgICAg ICAgICAgICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyA8IURPQ1RZUEUgZm9vIFs8IUVOVElUWSBjIFNZU1RF TSAiL2V0Yy9wYXNzd2QiPl0+PGZvbz4mYzs8L2Zvbz4NCisoMSByb3cpDQorDQorU0VMRUNUIFhN TFBBUlNFKERPQ1VNRU5UICc8IURPQ1RZUEUgZm9vIFs8IUVOVElUWSBjIFNZU1RFTSAiL2V0Yy9u by5zdWNoLmZpbGUiPl0+PGZvbz4mYzs8L2Zvbz4nKTsNCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgeG1scGFyc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQorIDwhRE9DVFlQRSBmb28gWzwhRU5USVRZIGMgU1lTVEVNICIvZXRjL25vLnN1 Y2guZmlsZSI+XT48Zm9vPiZjOzwvZm9vPg0KKygxIHJvdykNCisNCistLSBUaGlzIG1pZ2h0IG9y IG1pZ2h0IG5vdCBsb2FkIHRoZSByZXF1ZXN0ZWQgRFRELCBidXQgaXQgbXVzdG4ndCB0aHJvdyBl cnJvci4NCitTRUxFQ1QgWE1MUEFSU0UoRE9DVU1FTlQgJzwhRE9DVFlQRSBjaGFwdGVyIFBVQkxJ QyAiLS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCBWNC4xLjIvL0VOIiAiaHR0cDovL3d3dy5vYXNp cy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjEuMi9kb2Nib29reC5kdGQiPjxjaGFwdGVyPiZuYnNw OzwvY2hhcHRlcj4nKTsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbHBhcnNlICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgPCFET0NUWVBFIGNoYXB0ZXIg UFVCTElDICItLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjEuMi8vRU4iICJodHRwOi8vd3d3 Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuMS4yL2RvY2Jvb2t4LmR0ZCI+PGNoYXB0ZXI+ Jm5ic3A7PC9jaGFwdGVyPg0KKygxIHJvdykNCisNCistLSBYTUxQQVRIIHRlc3RzDQorQ1JFQVRF IFRBQkxFIHhtbGRhdGEoZGF0YSB4bWwpOw0KK0lOU0VSVCBJTlRPIHhtbGRhdGEgVkFMVUVTKCc8 Uk9XUz4NCis8Uk9XIGlkPSIxIj4NCisgIDxDT1VOVFJZX0lEPkFVPC9DT1VOVFJZX0lEPg0KKyAg PENPVU5UUllfTkFNRT5BdXN0cmFsaWE8L0NPVU5UUllfTkFNRT4NCisgIDxSRUdJT05fSUQ+Mzwv UkVHSU9OX0lEPg0KKzwvUk9XPg0KKzxST1cgaWQ9IjIiPg0KKyAgPENPVU5UUllfSUQ+Q048L0NP VU5UUllfSUQ+DQorICA8Q09VTlRSWV9OQU1FPkNoaW5hPC9DT1VOVFJZX05BTUU+DQorICA8UkVH SU9OX0lEPjM8L1JFR0lPTl9JRD4NCis8L1JPVz4NCis8Uk9XIGlkPSIzIj4NCisgIDxDT1VOVFJZ X0lEPkhLPC9DT1VOVFJZX0lEPg0KKyAgPENPVU5UUllfTkFNRT5Ib25nS29uZzwvQ09VTlRSWV9O QU1FPg0KKyAgPFJFR0lPTl9JRD4zPC9SRUdJT05fSUQ+DQorPC9ST1c+DQorPFJPVyBpZD0iNCI+ DQorICA8Q09VTlRSWV9JRD5JTjwvQ09VTlRSWV9JRD4NCisgIDxDT1VOVFJZX05BTUU+SW5kaWE8 L0NPVU5UUllfTkFNRT4NCisgIDxSRUdJT05fSUQ+MzwvUkVHSU9OX0lEPg0KKzwvUk9XPg0KKzxS T1cgaWQ9IjUiPg0KKyAgPENPVU5UUllfSUQ+SlA8L0NPVU5UUllfSUQ+DQorICA8Q09VTlRSWV9O QU1FPkphcGFuPC9DT1VOVFJZX05BTUU+DQorICA8UkVHSU9OX0lEPjM8L1JFR0lPTl9JRD48UFJF TUlFUl9OQU1FPlNpbnpvIEFiZTwvUFJFTUlFUl9OQU1FPg0KKzwvUk9XPg0KKzxST1cgaWQ9IjYi Pg0KKyAgPENPVU5UUllfSUQ+U0c8L0NPVU5UUllfSUQ+DQorICA8Q09VTlRSWV9OQU1FPlNpbmdh cG9yZTwvQ09VTlRSWV9OQU1FPg0KKyAgPFJFR0lPTl9JRD4zPC9SRUdJT05fSUQ+PFNJWkUgdW5p dD0ia20iPjc5MTwvU0laRT4NCis8L1JPVz4NCis8L1JPV1M+Jyk7DQorLS0gWE1MVEFCTEUgd2l0 aCBjb2x1bW5zDQorU0VMRUNUICB4bWx0YWJsZS4qDQorICAgRlJPTSAoU0VMRUNUIGRhdGEgRlJP TSB4bWxkYXRhKSB4LA0KKyAgICAgICAgTEFURVJBTCBYTUxUQUJMRSgnL1JPV1MvUk9XJw0KKyAg ICAgICAgICAgICAgICAgICAgICAgICBQQVNTSU5HIGRhdGENCisgICAgICAgICAgICAgICAgICAg ICAgICAgQ09MVU1OUyBpZCBpbnQgUEFUSCAnQGlkJywNCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgX2lkIEZPUiBPUkRJTkFMSVRZLA0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb3VudHJ5X25hbWUgdGV4dCBQQVRIICdDT1VOVFJZX05BTUUvdGV4dCgpJyBO T1QgTlVMTCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9pZCB0 ZXh0IFBBVEggJ0NPVU5UUllfSUQnLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZWdpb25faWQgaW50IFBBVEggJ1JFR0lPTl9JRCcsDQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNpemUgZmxvYXQgUEFUSCAnU0laRScsDQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVuaXQgdGV4dCBQQVRIICdTSVpFL0B1bml0JywNCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcHJlbWllcl9uYW1lIHRleHQgUEFUSCAnUFJFTUlFUl9O QU1FJyBERUZBVUxUICdub3Qgc3BlY2lmaWVkJyk7DQorIGlkIHwgX2lkIHwgY291bnRyeV9uYW1l IHwgY291bnRyeV9pZCB8IHJlZ2lvbl9pZCB8IHNpemUgfCB1bml0IHwgcHJlbWllcl9uYW1lICAN CistLS0tKy0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQ0KKyAgMSB8ICAgMSB8IEF1c3RyYWxpYSAgICB8IEFV ICAgICAgICAgfCAgICAgICAgIDMgfCAgICAgIHwgICAgICB8IG5vdCBzcGVjaWZpZWQNCisgIDIg fCAgIDIgfCBDaGluYSAgICAgICAgfCBDTiAgICAgICAgIHwgICAgICAgICAzIHwgICAgICB8ICAg ICAgfCBub3Qgc3BlY2lmaWVkDQorICAzIHwgICAzIHwgSG9uZ0tvbmcgICAgIHwgSEsgICAgICAg ICB8ICAgICAgICAgMyB8ICAgICAgfCAgICAgIHwgbm90IHNwZWNpZmllZA0KKyAgNCB8ICAgNCB8 IEluZGlhICAgICAgICB8IElOICAgICAgICAgfCAgICAgICAgIDMgfCAgICAgIHwgICAgICB8IG5v dCBzcGVjaWZpZWQNCisgIDUgfCAgIDUgfCBKYXBhbiAgICAgICAgfCBKUCAgICAgICAgIHwgICAg ICAgICAzIHwgICAgICB8ICAgICAgfCBTaW56byBBYmUNCisgIDYgfCAgIDYgfCBTaW5nYXBvcmUg ICAgfCBTRyAgICAgICAgIHwgICAgICAgICAzIHwgIDc5MSB8IGttICAgfCBub3Qgc3BlY2lmaWVk DQorKDYgcm93cykNCisNCitDUkVBVEUgVklFVyB4bWx0YWJsZXZpZXcxIEFTIFNFTEVDVCAgeG1s dGFibGUuKg0KKyAgIEZST00gKFNFTEVDVCBkYXRhIEZST00geG1sZGF0YSkgeCwNCisgICAgICAg IExBVEVSQUwgWE1MVEFCTEUoJy9ST1dTL1JPVycNCisgICAgICAgICAgICAgICAgICAgICAgICAg UEFTU0lORyBkYXRhDQorICAgICAgICAgICAgICAgICAgICAgICAgIENPTFVNTlMgaWQgaW50IFBB VEggJ0BpZCcsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9pZCBGT1IgT1JE SU5BTElUWSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9uYW1l IHRleHQgUEFUSCAnQ09VTlRSWV9OQU1FL3RleHQoKScgTk9UIE5VTEwsDQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfaWQgdGV4dCBQQVRIICdDT1VOVFJZX0lEJywN CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaW9uX2lkIGludCBQQVRIICdS RUdJT05fSUQnLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplIGZsb2F0 IFBBVEggJ1NJWkUnLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bml0IHRl eHQgUEFUSCAnU0laRS9AdW5pdCcsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHByZW1pZXJfbmFtZSB0ZXh0IFBBVEggJ1BSRU1JRVJfTkFNRScgREVGQVVMVCAnbm90IHNwZWNp ZmllZCcpOw0KK1NFTEVDVCAqIEZST00geG1sdGFibGV2aWV3MTsNCisgaWQgfCBfaWQgfCBjb3Vu dHJ5X25hbWUgfCBjb3VudHJ5X2lkIHwgcmVnaW9uX2lkIHwgc2l6ZSB8IHVuaXQgfCBwcmVtaWVy X25hbWUgIA0KKy0tLS0rLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tDQorICAxIHwgICAxIHwgQXVzdHJhbGlh ICAgIHwgQVUgICAgICAgICB8ICAgICAgICAgMyB8ICAgICAgfCAgICAgIHwgbm90IHNwZWNpZmll ZA0KKyAgMiB8ICAgMiB8IENoaW5hICAgICAgICB8IENOICAgICAgICAgfCAgICAgICAgIDMgfCAg ICAgIHwgICAgICB8IG5vdCBzcGVjaWZpZWQNCisgIDMgfCAgIDMgfCBIb25nS29uZyAgICAgfCBI SyAgICAgICAgIHwgICAgICAgICAzIHwgICAgICB8ICAgICAgfCBub3Qgc3BlY2lmaWVkDQorICA0 IHwgICA0IHwgSW5kaWEgICAgICAgIHwgSU4gICAgICAgICB8ICAgICAgICAgMyB8ICAgICAgfCAg ICAgIHwgbm90IHNwZWNpZmllZA0KKyAgNSB8ICAgNSB8IEphcGFuICAgICAgICB8IEpQICAgICAg ICAgfCAgICAgICAgIDMgfCAgICAgIHwgICAgICB8IFNpbnpvIEFiZQ0KKyAgNiB8ICAgNiB8IFNp bmdhcG9yZSAgICB8IFNHICAgICAgICAgfCAgICAgICAgIDMgfCAgNzkxIHwga20gICB8IG5vdCBz cGVjaWZpZWQNCisoNiByb3dzKQ0KKw0KK1xzdiB4bWx0YWJsZXZpZXcxDQorQ1JFQVRFIE9SIFJF UExBQ0UgVklFVyBwdWJsaWMueG1sdGFibGV2aWV3MSBBUw0KKyBTRUxFQ1QgInhtbHRhYmxlIi5p ZCwNCisgICAgInhtbHRhYmxlIi5faWQsDQorICAgICJ4bWx0YWJsZSIuY291bnRyeV9uYW1lLA0K KyAgICAieG1sdGFibGUiLmNvdW50cnlfaWQsDQorICAgICJ4bWx0YWJsZSIucmVnaW9uX2lkLA0K KyAgICAieG1sdGFibGUiLnNpemUsDQorICAgICJ4bWx0YWJsZSIudW5pdCwNCisgICAgInhtbHRh YmxlIi5wcmVtaWVyX25hbWUNCisgICBGUk9NICggU0VMRUNUIHhtbGRhdGEuZGF0YQ0KKyAgICAg ICAgICAgRlJPTSB4bWxkYXRhKSB4LA0KKyAgICBMQVRFUkFMIFhNTFRBQkxFKCgnL1JPV1MvUk9X Jzo6dGV4dCkgUEFTU0lORyAoeC5kYXRhKSBDT0xVTU5TIGlkIGludGVnZXIgUEFUSCAoJ0BpZCc6 OnRleHQpLCBfaWQgRk9SIE9SRElOQUxJVFksIGNvdW50cnlfbmFtZSB0ZXh0IFBBVEggKCdDT1VO VFJZX05BTUUvdGV4dCgpJzo6dGV4dCkgTk9UIE5VTEwsIGNvdW50cnlfaWQgdGV4dCBQQVRIICgn Q09VTlRSWV9JRCc6OnRleHQpLCByZWdpb25faWQgaW50ZWdlciBQQVRIICgnUkVHSU9OX0lEJzo6 dGV4dCksIHNpemUgZG91YmxlIHByZWNpc2lvbiBQQVRIICgnU0laRSc6OnRleHQpLCB1bml0IHRl eHQgUEFUSCAoJ1NJWkUvQHVuaXQnOjp0ZXh0KSwgcHJlbWllcl9uYW1lIHRleHQgREVGQVVMVCAo J25vdCBzcGVjaWZpZWQnOjp0ZXh0KSBQQVRIICgnUFJFTUlFUl9OQU1FJzo6dGV4dCkpDQorRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHhtbHRhYmxldmlldzE7DQorICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyBOZXN0ZWQgTG9vcA0KKyAgIC0+ICBTZXEgU2NhbiBvbiB4 bWxkYXRhDQorICAgLT4gIFRhYmxlIEZ1bmN0aW9uIFNjYW4gb24gInhtbHRhYmxlIg0KKygzIHJv d3MpDQorDQorRVhQTEFJTiAoQ09TVFMgT0ZGLCBWRVJCT1NFKSBTRUxFQ1QgKiBGUk9NIHhtbHRh YmxldmlldzE7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQorIE5lc3RlZCBMb29wDQorICAgT3V0cHV0OiAieG1sdGFibGUiLmlkLCAieG1sdGFibGUi Ll9pZCwgInhtbHRhYmxlIi5jb3VudHJ5X25hbWUsICJ4bWx0YWJsZSIuY291bnRyeV9pZCwgInht bHRhYmxlIi5yZWdpb25faWQsICJ4bWx0YWJsZSIuc2l6ZSwgInhtbHRhYmxlIi51bml0LCAieG1s dGFibGUiLnByZW1pZXJfbmFtZQ0KKyAgIC0+ICBTZXEgU2NhbiBvbiBwdWJsaWMueG1sZGF0YQ0K KyAgICAgICAgIE91dHB1dDogeG1sZGF0YS5kYXRhDQorICAgLT4gIFRhYmxlIEZ1bmN0aW9uIFNj YW4gb24gInhtbHRhYmxlIg0KKyAgICAgICAgIE91dHB1dDogInhtbHRhYmxlIi5pZCwgInhtbHRh YmxlIi5faWQsICJ4bWx0YWJsZSIuY291bnRyeV9uYW1lLCAieG1sdGFibGUiLmNvdW50cnlfaWQs ICJ4bWx0YWJsZSIucmVnaW9uX2lkLCAieG1sdGFibGUiLnNpemUsICJ4bWx0YWJsZSIudW5pdCwg InhtbHRhYmxlIi5wcmVtaWVyX25hbWUNCisgICAgICAgICBUYWJsZSBGdW5jdGlvbiBDYWxsOiBY TUxUQUJMRSgoJy9ST1dTL1JPVyc6OnRleHQpIFBBU1NJTkcgKHhtbGRhdGEuZGF0YSkgQ09MVU1O UyBpZCBpbnRlZ2VyIFBBVEggKCdAaWQnOjp0ZXh0KSwgX2lkIEZPUiBPUkRJTkFMSVRZLCBjb3Vu dHJ5X25hbWUgdGV4dCBQQVRIICgnQ09VTlRSWV9OQU1FL3RleHQoKSc6OnRleHQpIE5PVCBOVUxM LCBjb3VudHJ5X2lkIHRleHQgUEFUSCAoJ0NPVU5UUllfSUQnOjp0ZXh0KSwgcmVnaW9uX2lkIGlu dGVnZXIgUEFUSCAoJ1JFR0lPTl9JRCc6OnRleHQpLCBzaXplIGRvdWJsZSBwcmVjaXNpb24gUEFU SCAoJ1NJWkUnOjp0ZXh0KSwgdW5pdCB0ZXh0IFBBVEggKCdTSVpFL0B1bml0Jzo6dGV4dCksIHBy ZW1pZXJfbmFtZSB0ZXh0IERFRkFVTFQgKCdub3Qgc3BlY2lmaWVkJzo6dGV4dCkgUEFUSCAoJ1BS RU1JRVJfTkFNRSc6OnRleHQpKQ0KKyg3IHJvd3MpDQorDQorLS0gZXJyb3JzDQorU0VMRUNUICog RlJPTSBYTUxUQUJMRSAoUk9XICgpIFBBU1NJTkcgbnVsbCBDT0xVTU5TIHYxIHRpbWVzdGFtcCkg QVMgZiAodjEsIHYyKTsNCitFUlJPUjogIFhNTFRBQkxFIGZ1bmN0aW9uIGhhcyAxIGNvbHVtbnMg YXZhaWxhYmxlIGJ1dCAyIGNvbHVtbnMgc3BlY2lmaWVkDQorU0VMRUNUICogRlJPTSBYTUxUQUJM RSAoUk9XICgpIFBBU1NJTkcgbnVsbCBDT0xVTU5TIHYxIHRpbWVzdGFtcCBfX3BnX19pc19ub3Rf bnVsbCAxKSBBUyBmICh2MSk7DQorRVJST1I6ICBvcHRpb24gbmFtZSAiX19wZ19faXNfbm90X251 bGwiIGNhbm5vdCBiZSB1c2VkIGluIFhNTFRBQkxFDQorTElORSAxOiAuLi5NTFRBQkxFIChST1cg KCkgUEFTU0lORyBudWxsIENPTFVNTlMgdjEgdGltZXN0YW1wIF9fcGdfX2lzX24uLi4NCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Xg0KKy0tIFhNTE5BTUVTUEFDRVMgdGVzdHMNCitTRUxFQ1QgKiBGUk9NIFhNTFRBQkxFKFhNTE5B TUVTUEFDRVMoJ2h0dHA6Ly94LnknIEFTIHp6KSwNCisgICAgICAgICAgICAgICAgICAgICAgJy96 ejpyb3dzL3p6OnJvdycNCisgICAgICAgICAgICAgICAgICAgICAgUEFTU0lORyAnPHJvd3MgeG1s bnM9Imh0dHA6Ly94LnkiPjxyb3c+PGE+MTA8L2E+PC9yb3c+PC9yb3dzPicNCisgICAgICAgICAg ICAgICAgICAgICAgQ09MVU1OUyBhIGludCBQQVRIICd6ejphJyk7DQorIGEgIA0KKy0tLS0NCisg MTANCisoMSByb3cpDQorDQorQ1JFQVRFIFZJRVcgeG1sdGFibGV2aWV3MiBBUyBTRUxFQ1QgKiBG Uk9NIFhNTFRBQkxFKFhNTE5BTUVTUEFDRVMoJ2h0dHA6Ly94LnknIEFTICJaeiIpLA0KKyAgICAg ICAgICAgICAgICAgICAgICAnL1p6OnJvd3MvWno6cm93Jw0KKyAgICAgICAgICAgICAgICAgICAg ICBQQVNTSU5HICc8cm93cyB4bWxucz0iaHR0cDovL3gueSI+PHJvdz48YT4xMDwvYT48L3Jvdz48 L3Jvd3M+Jw0KKyAgICAgICAgICAgICAgICAgICAgICBDT0xVTU5TIGEgaW50IFBBVEggJ1p6OmEn KTsNCitTRUxFQ1QgKiBGUk9NIHhtbHRhYmxldmlldzI7DQorIGEgIA0KKy0tLS0NCisgMTANCiso MSByb3cpDQorDQorXHN2IHhtbHRhYmxldmlldzINCitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHB1 YmxpYy54bWx0YWJsZXZpZXcyIEFTDQorIFNFTEVDVCBhDQorICAgRlJPTSBYTUxUQUJMRShYTUxO QU1FU1BBQ0VTICgnaHR0cDovL3gueSc6OnRleHQgQVMgIlp6IiksICgnL1p6OnJvd3MvWno6cm93 Jzo6dGV4dCkgUEFTU0lORyAoJzxyb3dzIHhtbG5zPSJodHRwOi8veC55Ij48cm93PjxhPjEwPC9h Pjwvcm93Pjwvcm93cz4nOjp4bWwpIENPTFVNTlMgYSBpbnRlZ2VyIFBBVEggKCdaejphJzo6dGV4 dCkpDQorU0VMRUNUICogRlJPTSBYTUxUQUJMRShYTUxOQU1FU1BBQ0VTKERFRkFVTFQgJ2h0dHA6 Ly94LnknKSwNCisgICAgICAgICAgICAgICAgICAgICAgJy9yb3dzL3JvdycNCisgICAgICAgICAg ICAgICAgICAgICAgUEFTU0lORyAnPHJvd3MgeG1sbnM9Imh0dHA6Ly94LnkiPjxyb3c+PGE+MTA8 L2E+PC9yb3c+PC9yb3dzPicNCisgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyBhIGludCBQ QVRIICdhJyk7DQorRVJST1I6ICBERUZBVUxUIG5hbWVzcGFjZSBpcyBub3Qgc3VwcG9ydGVkDQor U0VMRUNUICogRlJPTSBYTUxUQUJMRSgnLicNCisgICAgICAgICAgICAgICAgICAgICAgIFBBU1NJ TkcgJzxmb28vPicNCisgICAgICAgICAgICAgICAgICAgICAgIENPTFVNTlMgYSB0ZXh0IFBBVEgg J2Zvby9uYW1lc3BhY2U6Om5vZGUoKScpOw0KKyAgICAgICAgICAgICAgICAgIGEgICAgICAgICAg ICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgaHR0 cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlDQorKDEgcm93KQ0KKw0KKy0tIHVzZWQg aW4gcHJlcGFyZSBzdGF0ZW1lbnRzDQorUFJFUEFSRSBwcCBBUw0KK1NFTEVDVCAgeG1sdGFibGUu Kg0KKyAgIEZST00gKFNFTEVDVCBkYXRhIEZST00geG1sZGF0YSkgeCwNCisgICAgICAgIExBVEVS QUwgWE1MVEFCTEUoJy9ST1dTL1JPVycNCisgICAgICAgICAgICAgICAgICAgICAgICAgUEFTU0lO RyBkYXRhDQorICAgICAgICAgICAgICAgICAgICAgICAgIENPTFVNTlMgaWQgaW50IFBBVEggJ0Bp ZCcsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9pZCBGT1IgT1JESU5BTElU WSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9uYW1lIHRleHQg UEFUSCAnQ09VTlRSWV9OQU1FJyBOT1QgTlVMTCwNCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY291bnRyeV9pZCB0ZXh0IFBBVEggJ0NPVU5UUllfSUQnLA0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZWdpb25faWQgaW50IFBBVEggJ1JFR0lPTl9JRCcsDQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUgZmxvYXQgUEFUSCAnU0laRScs DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXQgdGV4dCBQQVRIICdTSVpF L0B1bml0JywNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlbWllcl9uYW1l IHRleHQgUEFUSCAnUFJFTUlFUl9OQU1FJyBERUZBVUxUICdub3Qgc3BlY2lmaWVkJyk7DQorRVhF Q1VURSBwcDsNCisgaWQgfCBfaWQgfCBjb3VudHJ5X25hbWUgfCBjb3VudHJ5X2lkIHwgcmVnaW9u X2lkIHwgc2l6ZSB8IHVuaXQgfCBwcmVtaWVyX25hbWUgIA0KKy0tLS0rLS0tLS0rLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0t LS0tDQorICAxIHwgICAxIHwgQXVzdHJhbGlhICAgIHwgQVUgICAgICAgICB8ICAgICAgICAgMyB8 ICAgICAgfCAgICAgIHwgbm90IHNwZWNpZmllZA0KKyAgMiB8ICAgMiB8IENoaW5hICAgICAgICB8 IENOICAgICAgICAgfCAgICAgICAgIDMgfCAgICAgIHwgICAgICB8IG5vdCBzcGVjaWZpZWQNCisg IDMgfCAgIDMgfCBIb25nS29uZyAgICAgfCBISyAgICAgICAgIHwgICAgICAgICAzIHwgICAgICB8 ICAgICAgfCBub3Qgc3BlY2lmaWVkDQorICA0IHwgICA0IHwgSW5kaWEgICAgICAgIHwgSU4gICAg ICAgICB8ICAgICAgICAgMyB8ICAgICAgfCAgICAgIHwgbm90IHNwZWNpZmllZA0KKyAgNSB8ICAg NSB8IEphcGFuICAgICAgICB8IEpQICAgICAgICAgfCAgICAgICAgIDMgfCAgICAgIHwgICAgICB8 IFNpbnpvIEFiZQ0KKyAgNiB8ICAgNiB8IFNpbmdhcG9yZSAgICB8IFNHICAgICAgICAgfCAgICAg ICAgIDMgfCAgNzkxIHwga20gICB8IG5vdCBzcGVjaWZpZWQNCisoNiByb3dzKQ0KKw0KK1NFTEVD VCB4bWx0YWJsZS4qIEZST00geG1sZGF0YSwgTEFURVJBTCB4bWx0YWJsZSgnL1JPV1MvUk9XW0NP VU5UUllfTkFNRT0iSmFwYW4iIG9yIENPVU5UUllfTkFNRT0iSW5kaWEiXScgUEFTU0lORyBkYXRh IENPTFVNTlMgIkNPVU5UUllfTkFNRSIgdGV4dCwgIlJFR0lPTl9JRCIgaW50KTsNCisgQ09VTlRS WV9OQU1FIHwgUkVHSU9OX0lEIA0KKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tDQorIEluZGlh ICAgICAgICB8ICAgICAgICAgMw0KKyBKYXBhbiAgICAgICAgfCAgICAgICAgIDMNCisoMiByb3dz KQ0KKw0KK1NFTEVDVCB4bWx0YWJsZS4qIEZST00geG1sZGF0YSwgTEFURVJBTCB4bWx0YWJsZSgn L1JPV1MvUk9XW0NPVU5UUllfTkFNRT0iSmFwYW4iIG9yIENPVU5UUllfTkFNRT0iSW5kaWEiXScg UEFTU0lORyBkYXRhIENPTFVNTlMgaWQgRk9SIE9SRElOQUxJVFksICJDT1VOVFJZX05BTUUiIHRl eHQsICJSRUdJT05fSUQiIGludCk7DQorIGlkIHwgQ09VTlRSWV9OQU1FIHwgUkVHSU9OX0lEIA0K Ky0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0NCisgIDEgfCBJbmRpYSAgICAgICAgfCAg ICAgICAgIDMNCisgIDIgfCBKYXBhbiAgICAgICAgfCAgICAgICAgIDMNCisoMiByb3dzKQ0KKw0K K1NFTEVDVCB4bWx0YWJsZS4qIEZST00geG1sZGF0YSwgTEFURVJBTCB4bWx0YWJsZSgnL1JPV1Mv Uk9XW0NPVU5UUllfTkFNRT0iSmFwYW4iIG9yIENPVU5UUllfTkFNRT0iSW5kaWEiXScgUEFTU0lO RyBkYXRhIENPTFVNTlMgaWQgaW50IFBBVEggJ0BpZCcsICJDT1VOVFJZX05BTUUiIHRleHQsICJS RUdJT05fSUQiIGludCk7DQorIGlkIHwgQ09VTlRSWV9OQU1FIHwgUkVHSU9OX0lEIA0KKy0tLS0r LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0NCisgIDQgfCBJbmRpYSAgICAgICAgfCAgICAgICAg IDMNCisgIDUgfCBKYXBhbiAgICAgICAgfCAgICAgICAgIDMNCisoMiByb3dzKQ0KKw0KK1NFTEVD VCB4bWx0YWJsZS4qIEZST00geG1sZGF0YSwgTEFURVJBTCB4bWx0YWJsZSgnL1JPV1MvUk9XW0NP VU5UUllfTkFNRT0iSmFwYW4iIG9yIENPVU5UUllfTkFNRT0iSW5kaWEiXScgUEFTU0lORyBkYXRh IENPTFVNTlMgaWQgaW50IFBBVEggJ0BpZCcpOw0KKyBpZCANCistLS0tDQorICA0DQorICA1DQor KDIgcm93cykNCisNCitTRUxFQ1QgeG1sdGFibGUuKiBGUk9NIHhtbGRhdGEsIExBVEVSQUwgeG1s dGFibGUoJy9ST1dTL1JPV1tDT1VOVFJZX05BTUU9IkphcGFuIiBvciBDT1VOVFJZX05BTUU9Iklu ZGlhIl0nIFBBU1NJTkcgZGF0YSBDT0xVTU5TIGlkIEZPUiBPUkRJTkFMSVRZKTsNCisgaWQgDQor LS0tLQ0KKyAgMQ0KKyAgMg0KKygyIHJvd3MpDQorDQorU0VMRUNUIHhtbHRhYmxlLiogRlJPTSB4 bWxkYXRhLCBMQVRFUkFMIHhtbHRhYmxlKCcvUk9XUy9ST1dbQ09VTlRSWV9OQU1FPSJKYXBhbiIg b3IgQ09VTlRSWV9OQU1FPSJJbmRpYSJdJyBQQVNTSU5HIGRhdGEgQ09MVU1OUyBpZCBpbnQgUEFU SCAnQGlkJywgIkNPVU5UUllfTkFNRSIgdGV4dCwgIlJFR0lPTl9JRCIgaW50LCByYXdkYXRhIHht bCBQQVRIICcuJyk7DQorIGlkIHwgQ09VTlRSWV9OQU1FIHwgUkVHSU9OX0lEIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJhd2RhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAN CistLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyAgNCB8IEluZGlh ICAgICAgICB8ICAgICAgICAgMyB8IDxST1cgaWQ9IjQiPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArDQorICAgIHwgICAgICAgICAgICAgIHwgICAg ICAgICAgIHwgICA8Q09VTlRSWV9JRD5JTjwvQ09VTlRSWV9JRD4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsNCisgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgIDxD T1VOVFJZX05BTUU+SW5kaWE8L0NPVU5UUllfTkFNRT4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgKw0KKyAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgPFJFR0lPTl9JRD4zPC9S RUdJT05fSUQ+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArDQorICAgIHwg ICAgICAgICAgICAgIHwgICAgICAgICAgIHwgPC9ST1c+DQorICA1IHwgSmFwYW4gICAgICAgIHwg ICAgICAgICAzIHwgPFJPVyBpZD0iNSI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsNCisgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAg IDxDT1VOVFJZX0lEPkpQPC9DT1VOVFJZX0lEPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKw0KKyAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgPENPVU5UUllfTkFN RT5KYXBhbjwvQ09VTlRSWV9OQU1FPiAgICAgICAgICAgICAgICAgICAgICAgICAgICArDQorICAg IHwgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgICA8UkVHSU9OX0lEPjM8L1JFR0lPTl9JRD48 UFJFTUlFUl9OQU1FPlNpbnpvIEFiZTwvUFJFTUlFUl9OQU1FPisNCisgICAgfCAgICAgICAgICAg ICAgfCAgICAgICAgICAgfCA8L1JPVz4NCisoMiByb3dzKQ0KKw0KK1NFTEVDVCB4bWx0YWJsZS4q IEZST00geG1sZGF0YSwgTEFURVJBTCB4bWx0YWJsZSgnL1JPV1MvUk9XW0NPVU5UUllfTkFNRT0i SmFwYW4iIG9yIENPVU5UUllfTkFNRT0iSW5kaWEiXScgUEFTU0lORyBkYXRhIENPTFVNTlMgaWQg aW50IFBBVEggJ0BpZCcsICJDT1VOVFJZX05BTUUiIHRleHQsICJSRUdJT05fSUQiIGludCwgcmF3 ZGF0YSB4bWwgUEFUSCAnLi8qJyk7DQorIGlkIHwgQ09VTlRSWV9OQU1FIHwgUkVHSU9OX0lEIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJhd2RhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIA0KKy0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N CisgIDQgfCBJbmRpYSAgICAgICAgfCAgICAgICAgIDMgfCA8Q09VTlRSWV9JRD5JTjwvQ09VTlRS WV9JRD48Q09VTlRSWV9OQU1FPkluZGlhPC9DT1VOVFJZX05BTUU+PFJFR0lPTl9JRD4zPC9SRUdJ T05fSUQ+DQorICA1IHwgSmFwYW4gICAgICAgIHwgICAgICAgICAzIHwgPENPVU5UUllfSUQ+SlA8 L0NPVU5UUllfSUQ+PENPVU5UUllfTkFNRT5KYXBhbjwvQ09VTlRSWV9OQU1FPjxSRUdJT05fSUQ+ MzwvUkVHSU9OX0lEPjxQUkVNSUVSX05BTUU+U2luem8gQWJlPC9QUkVNSUVSX05BTUU+DQorKDIg cm93cykNCisNCitTRUxFQ1QgKiBGUk9NIHhtbHRhYmxlKCcvcm9vdCcgcGFzc2luZyAnPHJvb3Q+ PGVsZW1lbnQ+YTFhPCEtLSBhYWFhIC0tPmEyYTw/YWFhYWE/PiA8IS0tei0tPiAgYmJiYjx4Pnh4 eDwveD5jY2NjPC9lbGVtZW50Pjwvcm9vdD4nIENPTFVNTlMgZWxlbWVudCB0ZXh0KTsNCisgICAg ICAgZWxlbWVudCAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyBhMWFhMmEgICBi YmJieHh4Y2NjYw0KKygxIHJvdykNCisNCitTRUxFQ1QgKiBGUk9NIHhtbHRhYmxlKCcvcm9vdCcg cGFzc2luZyAnPHJvb3Q+PGVsZW1lbnQ+YTFhPCEtLSBhYWFhIC0tPmEyYTw/YWFhYWE/PiA8IS0t ei0tPiAgYmJiYjx4Pnh4eDwveD5jY2NjPC9lbGVtZW50Pjwvcm9vdD4nIENPTFVNTlMgZWxlbWVu dCB0ZXh0IFBBVEggJ2VsZW1lbnQvdGV4dCgpJyk7IC0tIHNob3VsZCBmYWlsDQorRVJST1I6ICBt b3JlIHRoYW4gb25lIHZhbHVlIHJldHVybmVkIGJ5IGNvbHVtbiBYUGF0aCBleHByZXNzaW9uDQor LS0gQ0RBVEEgdGVzdA0KK3NlbGVjdCAqIGZyb20geG1sdGFibGUoJ2QvcicgcGFzc2luZyAnPGQ+ PHI+PGM+PCFbQ0RBVEFbPGhlbGxvPiAmIjw+ITxhPmZvbzwvYT5dXT48L2M+PC9yPjxyPjxjPjI8 L2M+PC9yPjwvZD4nIGNvbHVtbnMgYyB0ZXh0KTsNCisgICAgICAgICAgICBjICAgICAgICAgICAg DQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyA8aGVsbG8+ICYiPD4hPGE+Zm9vPC9hPg0K KyAyDQorKDIgcm93cykNCisNCistLSBYTUwgYnVpbHRpbiBlbnRpdGllcw0KK1NFTEVDVCAqIEZS T00geG1sdGFibGUoJy94L2EnIFBBU1NJTkcgJzx4PjxhPjxlbnQ+JmFwb3M7PC9lbnQ+PC9hPjxh PjxlbnQ+JnF1b3Q7PC9lbnQ+PC9hPjxhPjxlbnQ+JmFtcDs8L2VudD48L2E+PGE+PGVudD4mbHQ7 PC9lbnQ+PC9hPjxhPjxlbnQ+Jmd0OzwvZW50PjwvYT48L3g+JyBDT0xVTU5TIGVudCB0ZXh0KTsN CisgZW50IA0KKy0tLS0tDQorICcNCisgIg0KKyAmDQorIDwNCisgPg0KKyg1IHJvd3MpDQorDQor U0VMRUNUICogRlJPTSB4bWx0YWJsZSgnL3gvYScgUEFTU0lORyAnPHg+PGE+PGVudD4mYXBvczs8 L2VudD48L2E+PGE+PGVudD4mcXVvdDs8L2VudD48L2E+PGE+PGVudD4mYW1wOzwvZW50PjwvYT48 YT48ZW50PiZsdDs8L2VudD48L2E+PGE+PGVudD4mZ3Q7PC9lbnQ+PC9hPjwveD4nIENPTFVNTlMg ZW50IHhtbCk7DQorICAgICAgIGVudCAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tDQorIDxl bnQ+JzwvZW50Pg0KKyA8ZW50PiI8L2VudD4NCisgPGVudD4mYW1wOzwvZW50Pg0KKyA8ZW50PiZs dDs8L2VudD4NCisgPGVudD4mZ3Q7PC9lbnQ+DQorKDUgcm93cykNCisNCitFWFBMQUlOIChWRVJC T1NFLCBDT1NUUyBPRkYpDQorU0VMRUNUICB4bWx0YWJsZS4qDQorICAgRlJPTSAoU0VMRUNUIGRh dGEgRlJPTSB4bWxkYXRhKSB4LA0KKyAgICAgICAgTEFURVJBTCBYTUxUQUJMRSgnL1JPV1MvUk9X Jw0KKyAgICAgICAgICAgICAgICAgICAgICAgICBQQVNTSU5HIGRhdGENCisgICAgICAgICAgICAg ICAgICAgICAgICAgQ09MVU1OUyBpZCBpbnQgUEFUSCAnQGlkJywNCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgX2lkIEZPUiBPUkRJTkFMSVRZLA0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb3VudHJ5X25hbWUgdGV4dCBQQVRIICdDT1VOVFJZX05BTUUnIE5P VCBOVUxMLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X2lkIHRl eHQgUEFUSCAnQ09VTlRSWV9JRCcsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJlZ2lvbl9pZCBpbnQgUEFUSCAnUkVHSU9OX0lEJywNCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2l6ZSBmbG9hdCBQQVRIICdTSVpFJywNCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdW5pdCB0ZXh0IFBBVEggJ1NJWkUvQHVuaXQnLA0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwcmVtaWVyX25hbWUgdGV4dCBQQVRIICdQUkVNSUVSX05B TUUnIERFRkFVTFQgJ25vdCBzcGVjaWZpZWQnKTsNCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQorIE5lc3RlZCBMb29wDQorICAgT3V0cHV0OiAieG1sdGFibGUiLmlkLCAieG1s dGFibGUiLl9pZCwgInhtbHRhYmxlIi5jb3VudHJ5X25hbWUsICJ4bWx0YWJsZSIuY291bnRyeV9p ZCwgInhtbHRhYmxlIi5yZWdpb25faWQsICJ4bWx0YWJsZSIuc2l6ZSwgInhtbHRhYmxlIi51bml0 LCAieG1sdGFibGUiLnByZW1pZXJfbmFtZQ0KKyAgIC0+ICBTZXEgU2NhbiBvbiBwdWJsaWMueG1s ZGF0YQ0KKyAgICAgICAgIE91dHB1dDogeG1sZGF0YS5kYXRhDQorICAgLT4gIFRhYmxlIEZ1bmN0 aW9uIFNjYW4gb24gInhtbHRhYmxlIg0KKyAgICAgICAgIE91dHB1dDogInhtbHRhYmxlIi5pZCwg InhtbHRhYmxlIi5faWQsICJ4bWx0YWJsZSIuY291bnRyeV9uYW1lLCAieG1sdGFibGUiLmNvdW50 cnlfaWQsICJ4bWx0YWJsZSIucmVnaW9uX2lkLCAieG1sdGFibGUiLnNpemUsICJ4bWx0YWJsZSIu dW5pdCwgInhtbHRhYmxlIi5wcmVtaWVyX25hbWUNCisgICAgICAgICBUYWJsZSBGdW5jdGlvbiBD YWxsOiBYTUxUQUJMRSgoJy9ST1dTL1JPVyc6OnRleHQpIFBBU1NJTkcgKHhtbGRhdGEuZGF0YSkg Q09MVU1OUyBpZCBpbnRlZ2VyIFBBVEggKCdAaWQnOjp0ZXh0KSwgX2lkIEZPUiBPUkRJTkFMSVRZ LCBjb3VudHJ5X25hbWUgdGV4dCBQQVRIICgnQ09VTlRSWV9OQU1FJzo6dGV4dCkgTk9UIE5VTEws IGNvdW50cnlfaWQgdGV4dCBQQVRIICgnQ09VTlRSWV9JRCc6OnRleHQpLCByZWdpb25faWQgaW50 ZWdlciBQQVRIICgnUkVHSU9OX0lEJzo6dGV4dCksIHNpemUgZG91YmxlIHByZWNpc2lvbiBQQVRI ICgnU0laRSc6OnRleHQpLCB1bml0IHRleHQgUEFUSCAoJ1NJWkUvQHVuaXQnOjp0ZXh0KSwgcHJl bWllcl9uYW1lIHRleHQgREVGQVVMVCAoJ25vdCBzcGVjaWZpZWQnOjp0ZXh0KSBQQVRIICgnUFJF TUlFUl9OQU1FJzo6dGV4dCkpDQorKDcgcm93cykNCisNCistLSB0ZXN0IHF1YWwNCitTRUxFQ1Qg eG1sdGFibGUuKiBGUk9NIHhtbGRhdGEsIExBVEVSQUwgeG1sdGFibGUoJy9ST1dTL1JPV1tDT1VO VFJZX05BTUU9IkphcGFuIiBvciBDT1VOVFJZX05BTUU9IkluZGlhIl0nIFBBU1NJTkcgZGF0YSBD T0xVTU5TICJDT1VOVFJZX05BTUUiIHRleHQsICJSRUdJT05fSUQiIGludCkgV0hFUkUgIkNPVU5U UllfTkFNRSIgPSAnSmFwYW4nOw0KKyBDT1VOVFJZX05BTUUgfCBSRUdJT05fSUQgDQorLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0NCisgSmFwYW4gICAgICAgIHwgICAgICAgICAzDQorKDEgcm93 KQ0KKw0KK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikNCitTRUxFQ1QgZi4qIEZST00geG1s ZGF0YSwgTEFURVJBTCB4bWx0YWJsZSgnL1JPV1MvUk9XW0NPVU5UUllfTkFNRT0iSmFwYW4iIG9y IENPVU5UUllfTkFNRT0iSW5kaWEiXScgUEFTU0lORyBkYXRhIENPTFVNTlMgIkNPVU5UUllfTkFN RSIgdGV4dCwgIlJFR0lPTl9JRCIgaW50KSBBUyBmIFdIRVJFICJDT1VOVFJZX05BTUUiID0gJ0ph cGFuJzsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyBOZXN0ZWQgTG9vcA0KKyAgIE91dHB1dDogZi4i Q09VTlRSWV9OQU1FIiwgZi4iUkVHSU9OX0lEIg0KKyAgIC0+ICBTZXEgU2NhbiBvbiBwdWJsaWMu eG1sZGF0YQ0KKyAgICAgICAgIE91dHB1dDogeG1sZGF0YS5kYXRhDQorICAgLT4gIFRhYmxlIEZ1 bmN0aW9uIFNjYW4gb24gInhtbHRhYmxlIiBmDQorICAgICAgICAgT3V0cHV0OiBmLiJDT1VOVFJZ X05BTUUiLCBmLiJSRUdJT05fSUQiDQorICAgICAgICAgVGFibGUgRnVuY3Rpb24gQ2FsbDogWE1M VEFCTEUoKCcvUk9XUy9ST1dbQ09VTlRSWV9OQU1FPSJKYXBhbiIgb3IgQ09VTlRSWV9OQU1FPSJJ bmRpYSJdJzo6dGV4dCkgUEFTU0lORyAoeG1sZGF0YS5kYXRhKSBDT0xVTU5TICJDT1VOVFJZX05B TUUiIHRleHQsICJSRUdJT05fSUQiIGludGVnZXIpDQorICAgICAgICAgRmlsdGVyOiAoZi4iQ09V TlRSWV9OQU1FIiA9ICdKYXBhbic6OnRleHQpDQorKDggcm93cykNCisNCitFWFBMQUlOIChWRVJC T1NFLCBGT1JNQVQgSlNPTiwgQ09TVFMgT0ZGKQ0KK1NFTEVDVCBmLiogRlJPTSB4bWxkYXRhLCBM QVRFUkFMIHhtbHRhYmxlKCcvUk9XUy9ST1dbQ09VTlRSWV9OQU1FPSJKYXBhbiIgb3IgQ09VTlRS WV9OQU1FPSJJbmRpYSJdJyBQQVNTSU5HIGRhdGEgQ09MVU1OUyAiQ09VTlRSWV9OQU1FIiB0ZXh0 LCAiUkVHSU9OX0lEIiBpbnQpIEFTIGYgV0hFUkUgIkNPVU5UUllfTkFNRSIgPSAnSmFwYW4nOw0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIFsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKw0KKyAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsNCisgICAgICJQbGFuIjog eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArDQorICAgICAgICJOb2RlIFR5cGUiOiAiTmVzdGVkIExvb3AiLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKw0KKyAgICAgICAiUGFyYWxsZWwgQXdh cmUiOiBmYWxzZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsNCisgICAgICAgIkFzeW5jIENhcGFibGUiOiBmYWxzZSwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArDQorICAgICAgICJKb2luIFR5cGUiOiAiSW5uZXIi LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKw0KKyAg ICAgICAiRGlzYWJsZWQiOiBmYWxzZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsNCisgICAgICAgIk91dHB1dCI6IFsiZi5cIkNPVU5UUllfTkFN RVwiIiwgImYuXCJSRUdJT05fSURcIiJdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArDQorICAgICAgICJJ bm5lciBVbmlxdWUiOiBmYWxzZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKw0KKyAgICAgICAiUGxhbnMiOiBbICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsNCisgICAgICAgICB7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArDQorICAgICAgICAgICAiTm9kZSBUeXBlIjogIlNlcSBTY2FuIiwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKw0KKyAgICAgICAgICAgIlBhcmVudCBSZWxh dGlvbnNoaXAiOiAiT3V0ZXIiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsN CisgICAgICAgICAgICJQYXJhbGxlbCBBd2FyZSI6IGZhbHNlLCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArDQorICAgICAgICAgICAiQXN5bmMgQ2FwYWJsZSI6IGZh bHNlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKw0KKyAgICAg ICAgICAgIlJlbGF0aW9uIE5hbWUiOiAieG1sZGF0YSIsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsNCisgICAgICAgICAgICJTY2hlbWEiOiAicHVibGljIiwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArDQorICAgICAgICAgICAi QWxpYXMiOiAieG1sZGF0YSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKw0KKyAgICAgICAgICAgIkRpc2FibGVkIjogZmFsc2UsICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsNCisgICAgICAgICAgICJPdXRwdXQi OiBbInhtbGRhdGEuZGF0YSJdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArDQorICAgICAgICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKw0KKyAgICAgICAgIHsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsNCisg ICAgICAgICAgICJOb2RlIFR5cGUiOiAiVGFibGUgRnVuY3Rpb24gU2NhbiIsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArDQorICAgICAgICAgICAiUGFyZW50IFJlbGF0aW9uc2hpcCI6 ICJJbm5lciIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKw0KKyAgICAgICAg ICAgIlBhcmFsbGVsIEF3YXJlIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsNCisgICAgICAgICAgICJBc3luYyBDYXBhYmxlIjogZmFsc2UsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArDQorICAgICAgICAgICAiVGFi bGUgRnVuY3Rpb24gTmFtZSI6ICJ4bWx0YWJsZSIsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKw0KKyAgICAgICAgICAgIkFsaWFzIjogImYiLCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsNCisgICAgICAgICAgICJEaXNhYmxlZCI6 IGZhbHNlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr DQorICAgICAgICAgICAiT3V0cHV0IjogWyJmLlwiQ09VTlRSWV9OQU1FXCIiLCAiZi5cIlJFR0lP Tl9JRFwiIl0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKw0KKyAgICAgICAgICAgIlRhYmxlIEZ1bmN0aW9uIENh bGwiOiAiWE1MVEFCTEUoKCcvUk9XUy9ST1dbQ09VTlRSWV9OQU1FPVwiSmFwYW5cIiBvciBDT1VO VFJZX05BTUU9XCJJbmRpYVwiXSc6OnRleHQpIFBBU1NJTkcgKHhtbGRhdGEuZGF0YSkgQ09MVU1O UyBcIkNPVU5UUllfTkFNRVwiIHRleHQsIFwiUkVHSU9OX0lEXCIgaW50ZWdlcikiLCsNCisgICAg ICAgICAgICJGaWx0ZXIiOiAiKGYuXCJDT1VOVFJZX05BTUVcIiA9ICdKYXBhbic6OnRleHQpIiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArDQorICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKw0KKyAgICAgICBdICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsNCisgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArDQorICAgfSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKw0KKyBdDQorKDEgcm93KQ0KKw0KKy0tIHNob3VsZCB0byB3b3JrIHdpdGggbW9yZSBkYXRh DQorSU5TRVJUIElOVE8geG1sZGF0YSBWQUxVRVMoJzxST1dTPg0KKzxST1cgaWQ9IjEwIj4NCisg IDxDT1VOVFJZX0lEPkNaPC9DT1VOVFJZX0lEPg0KKyAgPENPVU5UUllfTkFNRT5DemVjaCBSZXB1 YmxpYzwvQ09VTlRSWV9OQU1FPg0KKyAgPFJFR0lPTl9JRD4yPC9SRUdJT05fSUQ+PFBSRU1JRVJf TkFNRT5NaWxvcyBaZW1hbjwvUFJFTUlFUl9OQU1FPg0KKzwvUk9XPg0KKzxST1cgaWQ9IjExIj4N CisgIDxDT1VOVFJZX0lEPkRFPC9DT1VOVFJZX0lEPg0KKyAgPENPVU5UUllfTkFNRT5HZXJtYW55 PC9DT1VOVFJZX05BTUU+DQorICA8UkVHSU9OX0lEPjI8L1JFR0lPTl9JRD4NCis8L1JPVz4NCis8 Uk9XIGlkPSIxMiI+DQorICA8Q09VTlRSWV9JRD5GUjwvQ09VTlRSWV9JRD4NCisgIDxDT1VOVFJZ X05BTUU+RnJhbmNlPC9DT1VOVFJZX05BTUU+DQorICA8UkVHSU9OX0lEPjI8L1JFR0lPTl9JRD4N Cis8L1JPVz4NCis8L1JPV1M+Jyk7DQorSU5TRVJUIElOVE8geG1sZGF0YSBWQUxVRVMoJzxST1dT Pg0KKzxST1cgaWQ9IjIwIj4NCisgIDxDT1VOVFJZX0lEPkVHPC9DT1VOVFJZX0lEPg0KKyAgPENP VU5UUllfTkFNRT5FZ3lwdDwvQ09VTlRSWV9OQU1FPg0KKyAgPFJFR0lPTl9JRD4xPC9SRUdJT05f SUQ+DQorPC9ST1c+DQorPFJPVyBpZD0iMjEiPg0KKyAgPENPVU5UUllfSUQ+U0Q8L0NPVU5UUllf SUQ+DQorICA8Q09VTlRSWV9OQU1FPlN1ZGFuPC9DT1VOVFJZX05BTUU+DQorICA8UkVHSU9OX0lE PjE8L1JFR0lPTl9JRD4NCis8L1JPVz4NCis8L1JPV1M+Jyk7DQorU0VMRUNUICB4bWx0YWJsZS4q DQorICAgRlJPTSAoU0VMRUNUIGRhdGEgRlJPTSB4bWxkYXRhKSB4LA0KKyAgICAgICAgTEFURVJB TCBYTUxUQUJMRSgnL1JPV1MvUk9XJw0KKyAgICAgICAgICAgICAgICAgICAgICAgICBQQVNTSU5H IGRhdGENCisgICAgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyBpZCBpbnQgUEFUSCAnQGlk JywNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2lkIEZPUiBPUkRJTkFMSVRZ LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X25hbWUgdGV4dCBQ QVRIICdDT1VOVFJZX05BTUUnIE5PVCBOVUxMLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb3VudHJ5X2lkIHRleHQgUEFUSCAnQ09VTlRSWV9JRCcsDQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJlZ2lvbl9pZCBpbnQgUEFUSCAnUkVHSU9OX0lEJywNCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSBmbG9hdCBQQVRIICdTSVpFJywN CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdCB0ZXh0IFBBVEggJ1NJWkUv QHVuaXQnLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVtaWVyX25hbWUg dGV4dCBQQVRIICdQUkVNSUVSX05BTUUnIERFRkFVTFQgJ25vdCBzcGVjaWZpZWQnKTsNCisgaWQg fCBfaWQgfCAgY291bnRyeV9uYW1lICB8IGNvdW50cnlfaWQgfCByZWdpb25faWQgfCBzaXplIHwg dW5pdCB8IHByZW1pZXJfbmFtZSAgDQorLS0tLSstLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQ0KKyAgMSB8 ICAgMSB8IEF1c3RyYWxpYSAgICAgIHwgQVUgICAgICAgICB8ICAgICAgICAgMyB8ICAgICAgfCAg ICAgIHwgbm90IHNwZWNpZmllZA0KKyAgMiB8ICAgMiB8IENoaW5hICAgICAgICAgIHwgQ04gICAg ICAgICB8ICAgICAgICAgMyB8ICAgICAgfCAgICAgIHwgbm90IHNwZWNpZmllZA0KKyAgMyB8ICAg MyB8IEhvbmdLb25nICAgICAgIHwgSEsgICAgICAgICB8ICAgICAgICAgMyB8ICAgICAgfCAgICAg IHwgbm90IHNwZWNpZmllZA0KKyAgNCB8ICAgNCB8IEluZGlhICAgICAgICAgIHwgSU4gICAgICAg ICB8ICAgICAgICAgMyB8ICAgICAgfCAgICAgIHwgbm90IHNwZWNpZmllZA0KKyAgNSB8ICAgNSB8 IEphcGFuICAgICAgICAgIHwgSlAgICAgICAgICB8ICAgICAgICAgMyB8ICAgICAgfCAgICAgIHwg U2luem8gQWJlDQorICA2IHwgICA2IHwgU2luZ2Fwb3JlICAgICAgfCBTRyAgICAgICAgIHwgICAg ICAgICAzIHwgIDc5MSB8IGttICAgfCBub3Qgc3BlY2lmaWVkDQorIDEwIHwgICAxIHwgQ3plY2gg UmVwdWJsaWMgfCBDWiAgICAgICAgIHwgICAgICAgICAyIHwgICAgICB8ICAgICAgfCBNaWxvcyBa ZW1hbg0KKyAxMSB8ICAgMiB8IEdlcm1hbnkgICAgICAgIHwgREUgICAgICAgICB8ICAgICAgICAg MiB8ICAgICAgfCAgICAgIHwgbm90IHNwZWNpZmllZA0KKyAxMiB8ICAgMyB8IEZyYW5jZSAgICAg ICAgIHwgRlIgICAgICAgICB8ICAgICAgICAgMiB8ICAgICAgfCAgICAgIHwgbm90IHNwZWNpZmll ZA0KKyAyMCB8ICAgMSB8IEVneXB0ICAgICAgICAgIHwgRUcgICAgICAgICB8ICAgICAgICAgMSB8 ICAgICAgfCAgICAgIHwgbm90IHNwZWNpZmllZA0KKyAyMSB8ICAgMiB8IFN1ZGFuICAgICAgICAg IHwgU0QgICAgICAgICB8ICAgICAgICAgMSB8ICAgICAgfCAgICAgIHwgbm90IHNwZWNpZmllZA0K KygxMSByb3dzKQ0KKw0KK1NFTEVDVCAgeG1sdGFibGUuKg0KKyAgIEZST00gKFNFTEVDVCBkYXRh IEZST00geG1sZGF0YSkgeCwNCisgICAgICAgIExBVEVSQUwgWE1MVEFCTEUoJy9ST1dTL1JPVycN CisgICAgICAgICAgICAgICAgICAgICAgICAgUEFTU0lORyBkYXRhDQorICAgICAgICAgICAgICAg ICAgICAgICAgIENPTFVNTlMgaWQgaW50IFBBVEggJ0BpZCcsDQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF9pZCBGT1IgT1JESU5BTElUWSwNCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY291bnRyeV9uYW1lIHRleHQgUEFUSCAnQ09VTlRSWV9OQU1FJyBOT1Qg TlVMTCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeV9pZCB0ZXh0 IFBBVEggJ0NPVU5UUllfSUQnLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy ZWdpb25faWQgaW50IFBBVEggJ1JFR0lPTl9JRCcsDQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNpemUgZmxvYXQgUEFUSCAnU0laRScsDQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVuaXQgdGV4dCBQQVRIICdTSVpFL0B1bml0JywNCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcHJlbWllcl9uYW1lIHRleHQgUEFUSCAnUFJFTUlFUl9OQU1F JyBERUZBVUxUICdub3Qgc3BlY2lmaWVkJykNCisgIFdIRVJFIHJlZ2lvbl9pZCA9IDI7DQorIGlk IHwgX2lkIHwgIGNvdW50cnlfbmFtZSAgfCBjb3VudHJ5X2lkIHwgcmVnaW9uX2lkIHwgc2l6ZSB8 IHVuaXQgfCBwcmVtaWVyX25hbWUgIA0KKy0tLS0rLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0NCisgMTAg fCAgIDEgfCBDemVjaCBSZXB1YmxpYyB8IENaICAgICAgICAgfCAgICAgICAgIDIgfCAgICAgIHwg ICAgICB8IE1pbG9zIFplbWFuDQorIDExIHwgICAyIHwgR2VybWFueSAgICAgICAgfCBERSAgICAg ICAgIHwgICAgICAgICAyIHwgICAgICB8ICAgICAgfCBub3Qgc3BlY2lmaWVkDQorIDEyIHwgICAz IHwgRnJhbmNlICAgICAgICAgfCBGUiAgICAgICAgIHwgICAgICAgICAyIHwgICAgICB8ICAgICAg fCBub3Qgc3BlY2lmaWVkDQorKDMgcm93cykNCisNCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBP RkYpDQorU0VMRUNUICB4bWx0YWJsZS4qDQorICAgRlJPTSAoU0VMRUNUIGRhdGEgRlJPTSB4bWxk YXRhKSB4LA0KKyAgICAgICAgTEFURVJBTCBYTUxUQUJMRSgnL1JPV1MvUk9XJw0KKyAgICAgICAg ICAgICAgICAgICAgICAgICBQQVNTSU5HIGRhdGENCisgICAgICAgICAgICAgICAgICAgICAgICAg Q09MVU1OUyBpZCBpbnQgUEFUSCAnQGlkJywNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgX2lkIEZPUiBPUkRJTkFMSVRZLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb3VudHJ5X25hbWUgdGV4dCBQQVRIICdDT1VOVFJZX05BTUUnIE5PVCBOVUxMLA0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5X2lkIHRleHQgUEFUSCAnQ09V TlRSWV9JRCcsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lvbl9pZCBp bnQgUEFUSCAnUkVHSU9OX0lEJywNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2l6ZSBmbG9hdCBQQVRIICdTSVpFJywNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdW5pdCB0ZXh0IFBBVEggJ1NJWkUvQHVuaXQnLA0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwcmVtaWVyX25hbWUgdGV4dCBQQVRIICdQUkVNSUVSX05BTUUnIERFRkFVTFQg J25vdCBzcGVjaWZpZWQnKQ0KKyAgV0hFUkUgcmVnaW9uX2lkID0gMjsNCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIE5lc3RlZCBMb29wDQorICAgT3V0cHV0OiAieG1sdGFi bGUiLmlkLCAieG1sdGFibGUiLl9pZCwgInhtbHRhYmxlIi5jb3VudHJ5X25hbWUsICJ4bWx0YWJs ZSIuY291bnRyeV9pZCwgInhtbHRhYmxlIi5yZWdpb25faWQsICJ4bWx0YWJsZSIuc2l6ZSwgInht bHRhYmxlIi51bml0LCAieG1sdGFibGUiLnByZW1pZXJfbmFtZQ0KKyAgIC0+ICBTZXEgU2NhbiBv biBwdWJsaWMueG1sZGF0YQ0KKyAgICAgICAgIE91dHB1dDogeG1sZGF0YS5kYXRhDQorICAgLT4g IFRhYmxlIEZ1bmN0aW9uIFNjYW4gb24gInhtbHRhYmxlIg0KKyAgICAgICAgIE91dHB1dDogInht bHRhYmxlIi5pZCwgInhtbHRhYmxlIi5faWQsICJ4bWx0YWJsZSIuY291bnRyeV9uYW1lLCAieG1s dGFibGUiLmNvdW50cnlfaWQsICJ4bWx0YWJsZSIucmVnaW9uX2lkLCAieG1sdGFibGUiLnNpemUs ICJ4bWx0YWJsZSIudW5pdCwgInhtbHRhYmxlIi5wcmVtaWVyX25hbWUNCisgICAgICAgICBUYWJs ZSBGdW5jdGlvbiBDYWxsOiBYTUxUQUJMRSgoJy9ST1dTL1JPVyc6OnRleHQpIFBBU1NJTkcgKHht bGRhdGEuZGF0YSkgQ09MVU1OUyBpZCBpbnRlZ2VyIFBBVEggKCdAaWQnOjp0ZXh0KSwgX2lkIEZP UiBPUkRJTkFMSVRZLCBjb3VudHJ5X25hbWUgdGV4dCBQQVRIICgnQ09VTlRSWV9OQU1FJzo6dGV4 dCkgTk9UIE5VTEwsIGNvdW50cnlfaWQgdGV4dCBQQVRIICgnQ09VTlRSWV9JRCc6OnRleHQpLCBy ZWdpb25faWQgaW50ZWdlciBQQVRIICgnUkVHSU9OX0lEJzo6dGV4dCksIHNpemUgZG91YmxlIHBy ZWNpc2lvbiBQQVRIICgnU0laRSc6OnRleHQpLCB1bml0IHRleHQgUEFUSCAoJ1NJWkUvQHVuaXQn Ojp0ZXh0KSwgcHJlbWllcl9uYW1lIHRleHQgREVGQVVMVCAoJ25vdCBzcGVjaWZpZWQnOjp0ZXh0 KSBQQVRIICgnUFJFTUlFUl9OQU1FJzo6dGV4dCkpDQorICAgICAgICAgRmlsdGVyOiAoInhtbHRh YmxlIi5yZWdpb25faWQgPSAyKQ0KKyg4IHJvd3MpDQorDQorLS0gc2hvdWxkIGZhaWwsIE5VTEwg dmFsdWUNCitTRUxFQ1QgIHhtbHRhYmxlLioNCisgICBGUk9NIChTRUxFQ1QgZGF0YSBGUk9NIHht bGRhdGEpIHgsDQorICAgICAgICBMQVRFUkFMIFhNTFRBQkxFKCcvUk9XUy9ST1cnDQorICAgICAg ICAgICAgICAgICAgICAgICAgIFBBU1NJTkcgZGF0YQ0KKyAgICAgICAgICAgICAgICAgICAgICAg ICBDT0xVTU5TIGlkIGludCBQQVRIICdAaWQnLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBfaWQgRk9SIE9SRElOQUxJVFksDQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvdW50cnlfbmFtZSB0ZXh0IFBBVEggJ0NPVU5UUllfTkFNRScgTk9UIE5VTEwsDQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlfaWQgdGV4dCBQQVRIICdD T1VOVFJZX0lEJywNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaW9uX2lk IGludCBQQVRIICdSRUdJT05fSUQnLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzaXplIGZsb2F0IFBBVEggJ1NJWkUnIE5PVCBOVUxMLA0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bml0IHRleHQgUEFUSCAnU0laRS9AdW5pdCcsDQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHByZW1pZXJfbmFtZSB0ZXh0IFBBVEggJ1BSRU1JRVJfTkFN RScgREVGQVVMVCAnbm90IHNwZWNpZmllZCcpOw0KK0VSUk9SOiAgbnVsbCBpcyBub3QgYWxsb3dl ZCBpbiBjb2x1bW4gInNpemUiDQorLS0gaWYgYWxsIGlzIG9rLCB0aGVuIHJlc3VsdCBpcyBlbXB0 eQ0KKy0tIG9uZSBsaW5lIHhtbCB0ZXN0DQorV0lUSA0KKyAgIHggQVMgKFNFTEVDVCBwcm9uYW1l LCBwcm9vd25lciwgcHJvY29zdDo6bnVtZXJpYywgcHJvbmFyZ3MsDQorICAgICAgICAgICAgICAg IGFycmF5X3RvX3N0cmluZyhwcm9hcmduYW1lcywnLCcpIGFzIHByb2FyZ25hbWVzLA0KKyAgICAg ICAgICAgICAgICBjYXNlIHdoZW4gcHJvYXJndHlwZXMgPD4gJycgdGhlbiBhcnJheV90b19zdHJp bmcocHJvYXJndHlwZXM6Om9pZFtdLCcsJykgZW5kIGFzIHByb2FyZ3R5cGVzDQorICAgICAgICAg ICBGUk9NIHBnX3Byb2MgV0hFUkUgcHJvbmFtZSA9ICdmX2xlYWsnKSwNCisgICB5IEFTIChTRUxF Q1QgeG1sZWxlbWVudChuYW1lIHByb2MsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1s Zm9yZXN0KHByb25hbWUsIHByb293bmVyLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwcm9jb3N0LCBwcm9uYXJncywNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcHJvYXJnbmFtZXMsIHByb2FyZ3R5cGVzKSkgYXMgcHJvYw0KKyAgICAgICAgICAg RlJPTSB4KSwNCisgICB6IEFTIChTRUxFQ1QgeG1sdGFibGUuKg0KKyAgICAgICAgICAgRlJPTSB5 LA0KKyAgICAgICAgICAgICAgICBMQVRFUkFMIHhtbHRhYmxlKCcvcHJvYycgUEFTU0lORyBwcm9j DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyBwcm9uYW1lIG5hbWUs DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9vd25lciBvaWQs DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jb3N0IGZsb2F0 LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvbmFyZ3MgaW50 LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvYXJnbmFtZXMg dGV4dCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2FyZ3R5 cGVzIHRleHQpKQ0KKyAgIFNFTEVDVCAqIEZST00geg0KKyAgIEVYQ0VQVCBTRUxFQ1QgKiBGUk9N IHg7DQorIHByb25hbWUgfCBwcm9vd25lciB8IHByb2Nvc3QgfCBwcm9uYXJncyB8IHByb2FyZ25h bWVzIHwgcHJvYXJndHlwZXMgDQorLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tDQorKDAgcm93cykNCisNCistLSBtdWx0 aSBsaW5lIHhtbCB0ZXN0LCByZXN1bHQgc2hvdWxkIGJlIGVtcHR5IHRvbw0KK1dJVEgNCisgICB4 IEFTIChTRUxFQ1QgcHJvbmFtZSwgcHJvb3duZXIsIHByb2Nvc3Q6Om51bWVyaWMsIHByb25hcmdz LA0KKyAgICAgICAgICAgICAgICBhcnJheV90b19zdHJpbmcocHJvYXJnbmFtZXMsJywnKSBhcyBw cm9hcmduYW1lcywNCisgICAgICAgICAgICAgICAgY2FzZSB3aGVuIHByb2FyZ3R5cGVzIDw+ICcn IHRoZW4gYXJyYXlfdG9fc3RyaW5nKHByb2FyZ3R5cGVzOjpvaWRbXSwnLCcpIGVuZCBhcyBwcm9h cmd0eXBlcw0KKyAgICAgICAgICAgRlJPTSBwZ19wcm9jKSwNCisgICB5IEFTIChTRUxFQ1QgeG1s ZWxlbWVudChuYW1lIGRhdGEsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sYWdnKHht bGVsZW1lbnQobmFtZSBwcm9jLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHhtbGZvcmVzdChwcm9uYW1lLCBwcm9vd25lciwgcHJvY29zdCwNCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvbmFyZ3Ms IHByb2FyZ25hbWVzLCBwcm9hcmd0eXBlcykpKSkgYXMgZG9jDQorICAgICAgICAgICBGUk9NIHgp LA0KKyAgIHogQVMgKFNFTEVDVCB4bWx0YWJsZS4qDQorICAgICAgICAgICBGUk9NIHksDQorICAg ICAgICAgICAgICAgIExBVEVSQUwgeG1sdGFibGUoJy9kYXRhL3Byb2MnIFBBU1NJTkcgZG9jDQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyBwcm9uYW1lIG5hbWUsDQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9vd25lciBvaWQsDQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jb3N0IGZsb2F0LA0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvbmFyZ3MgaW50LA0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvYXJnbmFtZXMgdGV4 dCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2FyZ3R5cGVz IHRleHQpKQ0KKyAgIFNFTEVDVCAqIEZST00geg0KKyAgIEVYQ0VQVCBTRUxFQ1QgKiBGUk9NIHg7 DQorIHByb25hbWUgfCBwcm9vd25lciB8IHByb2Nvc3QgfCBwcm9uYXJncyB8IHByb2FyZ25hbWVz IHwgcHJvYXJndHlwZXMgDQorLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tDQorKDAgcm93cykNCisNCitDUkVBVEUgVEFC TEUgeG1sdGVzdDIoeCB4bWwsIF9wYXRoIHRleHQpOw0KK0lOU0VSVCBJTlRPIHhtbHRlc3QyIFZB TFVFUygnPGQ+PHI+PGFjPjE8L2FjPjwvcj48L2Q+JywgJ0EnKTsNCitJTlNFUlQgSU5UTyB4bWx0 ZXN0MiBWQUxVRVMoJzxkPjxyPjxiYz4yPC9iYz48L3I+PC9kPicsICdCJyk7DQorSU5TRVJUIElO VE8geG1sdGVzdDIgVkFMVUVTKCc8ZD48cj48Y2M+MzwvY2M+PC9yPjwvZD4nLCAnQycpOw0KK0lO U0VSVCBJTlRPIHhtbHRlc3QyIFZBTFVFUygnPGQ+PHI+PGRjPjI8L2RjPjwvcj48L2Q+JywgJ0Qn KTsNCitTRUxFQ1QgeG1sdGFibGUuKiBGUk9NIHhtbHRlc3QyLCBMQVRFUkFMIHhtbHRhYmxlKCcv ZC9yJyBQQVNTSU5HIHggQ09MVU1OUyBhIGludCBQQVRIICcnIHx8IGxvd2VyKF9wYXRoKSB8fCAn YycpOw0KKyBhIA0KKy0tLQ0KKyAxDQorIDINCisgMw0KKyAyDQorKDQgcm93cykNCisNCitTRUxF Q1QgeG1sdGFibGUuKiBGUk9NIHhtbHRlc3QyLCBMQVRFUkFMIHhtbHRhYmxlKCgnL2Qvci8nIHx8 IGxvd2VyKF9wYXRoKSB8fCAnYycpIFBBU1NJTkcgeCBDT0xVTU5TIGEgaW50IFBBVEggJy4nKTsN CisgYSANCistLS0NCisgMQ0KKyAyDQorIDMNCisgMg0KKyg0IHJvd3MpDQorDQorU0VMRUNUIHht bHRhYmxlLiogRlJPTSB4bWx0ZXN0MiwgTEFURVJBTCB4bWx0YWJsZSgoJy9kL3IvJyB8fCBsb3dl cihfcGF0aCkgfHwgJ2MnKSBQQVNTSU5HIHggQ09MVU1OUyBhIGludCBQQVRIICd4JyBERUZBVUxU IGFzY2lpKF9wYXRoKSAtIDU0KTsNCisgYSAgDQorLS0tLQ0KKyAxMQ0KKyAxMg0KKyAxMw0KKyAx NA0KKyg0IHJvd3MpDQorDQorLS0gWFBhdGggcmVzdWx0IGNhbiBiZSBib29sZWFuIG9yIG51bWJl ciB0b28NCitTRUxFQ1QgKiBGUk9NIFhNTFRBQkxFKCcqJyBQQVNTSU5HICc8YT5hPC9hPicgQ09M VU1OUyBhIHhtbCBQQVRIICcuJywgYiB0ZXh0IFBBVEggJy4nLCBjIHRleHQgUEFUSCAnImhpIics IGQgYm9vbGVhbiBQQVRIICcuID0gImEiJywgZSBpbnRlZ2VyIFBBVEggJ3N0cmluZy1sZW5ndGgo LiknKTsNCisgICAgYSAgICAgfCBiIHwgYyAgfCBkIHwgZSANCistLS0tLS0tLS0tKy0tLSstLS0t Ky0tLSstLS0NCisgPGE+YTwvYT4gfCBhIHwgaGkgfCB0IHwgMQ0KKygxIHJvdykNCisNCitceA0K K1NFTEVDVCAqIEZST00gWE1MVEFCTEUoJyonIFBBU1NJTkcgJzxlPnByZTwhLS1jMS0tPjw/cGkg YXJnPz48IVtDREFUQVsmZW50MV1dPjxuMj4mYW1wO2RlZXA8L24yPnBvc3Q8L2U+JyBDT0xVTU5T IHggeG1sIFBBVEggJy9lL24yJywgeSB4bWwgUEFUSCAnLycpOw0KKy1bIFJFQ09SRCAxIF0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K K3ggfCA8bjI+JmFtcDtkZWVwPC9uMj4NCit5IHwgPGU+cHJlPCEtLWMxLS0+PD9waSBhcmc/Pjwh W0NEQVRBWyZlbnQxXV0+PG4yPiZhbXA7ZGVlcDwvbjI+cG9zdDwvZT4rDQorICB8IA0KKw0KK1x4 DQorU0VMRUNUICogRlJPTSBYTUxUQUJMRSgnLicgUEFTU0lORyBYTUxFTEVNRU5UKE5BTUUgYSkg Y29sdW1ucyBhIHZhcmNoYXIoMjApIFBBVEggJyI8Zm9vLz4iJywgYiB4bWwgUEFUSCAnIjxmb28v PiInKTsNCisgICBhICAgIHwgICAgICBiICAgICAgIA0KKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t DQorIDxmb28vPiB8ICZsdDtmb28vJmd0Ow0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1sdGV4dChO VUxMKTsNCisgeG1sdGV4dCANCistLS0tLS0tLS0NCisgDQorKDEgcm93KQ0KKw0KK1NFTEVDVCB4 bWx0ZXh0KCcnKTsNCisgeG1sdGV4dCANCistLS0tLS0tLS0NCisgDQorKDEgcm93KQ0KKw0KK1NF TEVDVCB4bWx0ZXh0KCcgICcpOw0KKyB4bWx0ZXh0IA0KKy0tLS0tLS0tLQ0KKyAgIA0KKygxIHJv dykNCisNCitTRUxFQ1QgeG1sdGV4dCgnZm9vIGAkXy0rPz0qXiUhfC9cKClbXXt9Jyk7DQorICAg ICAgICAgeG1sdGV4dCAgICAgICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyBm b28gYCRfLSs/PSpeJSF8L1woKVtde30NCisoMSByb3cpDQorDQorU0VMRUNUIHhtbHRleHQoJ2Zv byAmIDwiYmFyIj4nKTsNCisgICAgICAgICAgICAgIHhtbHRleHQgICAgICAgICAgICAgIA0KKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIGZvbyAmYW1wOyAmbHQ7JnF1b3Q7 YmFyJnF1b3Q7Jmd0Ow0KKygxIHJvdykNCisNCitTRUxFQ1QgeG1sdGV4dCgneCd8fCAnPFA+NzM8 L1A+Jzo6eG1sIHx8IC40MiB8fCB0cnVlIHx8ICdqJzo6Y2hhcik7DQorICAgICAgICAgICAgIHht bHRleHQgICAgICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQor IHgmbHQ7UCZndDs3MyZsdDsvUCZndDswLjQydHJ1ZWoNCisoMSByb3cpDQorDQorQ1JFQVRFIFhN TFNDSEVNQSBwZXJzb25fc2NoZW1hIEFTICc8P3htbCB2ZXJzaW9uPSIxLjAiPz4NCis8eHM6c2No ZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+DQorICA8eHM6 ZWxlbWVudCBuYW1lPSJwZXJzb24iPg0KKyAgICA8eHM6Y29tcGxleFR5cGU+DQorICAgICAgPHhz OnNlcXVlbmNlPg0KKyAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0ibmFtZSIgdHlwZT0ieHM6c3Ry aW5nIi8+DQorICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJhZ2UiIHR5cGU9InhzOmludGVnZXIi Lz4NCisgICAgICA8L3hzOnNlcXVlbmNlPg0KKyAgICA8L3hzOmNvbXBsZXhUeXBlPg0KKyAgPC94 czplbGVtZW50Pg0KKzwveHM6c2NoZW1hPic7DQorQ1JFQVRFIFhNTFNDSEVNQSBJRiBOT1QgRVhJ U1RTIHBlcnNvbl9zY2hlbWEgQVMgJzw/eG1sIHZlcnNpb249IjEuMCI/Pg0KKzx4czpzY2hlbWEg eG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4NCisgIDx4czplbGVt ZW50IG5hbWU9Im90aGVyIiB0eXBlPSJ4czpzdHJpbmciLz4NCis8L3hzOnNjaGVtYT4nOw0KK05P VElDRTogIFhNTCBzY2hlbWEgInBlcnNvbl9zY2hlbWEiIGFscmVhZHkgZXhpc3RzLCBza2lwcGlu Zw0KK0NSRUFURSBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYSBBUyAnPD94bWwgdmVyc2lvbj0iMS4w Ij8+DQorPHhzOnNjaGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hl bWEiPg0KKyAgPHhzOmVsZW1lbnQgbmFtZT0iZHVwbGljYXRlIiB0eXBlPSJ4czpzdHJpbmciLz4N Cis8L3hzOnNjaGVtYT4nOw0KK0VSUk9SOiAgWE1MIHNjaGVtYSAicGVyc29uX3NjaGVtYSIgYWxy ZWFkeSBleGlzdHMNCitDUkVBVEUgU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zOw0KK0NSRUFURSBY TUxTQ0hFTUEgdGVzdF94bWxzY2hlbWFfbnMucHJvZHVjdF9zY2hlbWEgQVMgJzw/eG1sIHZlcnNp b249IjEuMCI/Pg0KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEv WE1MU2NoZW1hIj4NCisgIDx4czplbGVtZW50IG5hbWU9InByb2R1Y3QiPg0KKyAgICA8eHM6Y29t cGxleFR5cGU+DQorICAgICAgPHhzOnNlcXVlbmNlPg0KKyAgICAgICAgPHhzOmVsZW1lbnQgbmFt ZT0ibmFtZSIgdHlwZT0ieHM6c3RyaW5nIi8+DQorICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJw cmljZSIgdHlwZT0ieHM6ZGVjaW1hbCIvPg0KKyAgICAgIDwveHM6c2VxdWVuY2U+DQorICAgICAg PHhzOmF0dHJpYnV0ZSBuYW1lPSJpZCIgdHlwZT0ieHM6c3RyaW5nIiB1c2U9InJlcXVpcmVkIi8+ DQorICAgIDwveHM6Y29tcGxleFR5cGU+DQorICA8L3hzOmVsZW1lbnQ+DQorPC94czpzY2hlbWE+ JzsNCitDUkVBVEUgWE1MU0NIRU1BIGJhZF9zY2hlbWEgQVMgJzx0aGlzLWlzLW5vdC12YWxpZC14 c2Q+JzsNCitFUlJPUjogIGludmFsaWQgWE1MIHNjaGVtYSBkZWZpbml0aW9uDQorREVUQUlMOiAg bGluZSAxOiBQcmVtYXR1cmUgZW5kIG9mIGRhdGEgaW4gdGFnIHRoaXMtaXMtbm90LXZhbGlkLXhz ZCBsaW5lIDENCis8dGhpcy1pcy1ub3QtdmFsaWQteHNkPg0KKyAgICAgICAgICAgICAgICAgICAg ICAgXg0KK0NSRUFURSBYTUxTQ0hFTUEgYmFkX3htbF9zY2hlbWEgQVMgJ25vdCBldmVuIHhtbCc7 DQorRVJST1I6ICBpbnZhbGlkIFhNTCBzY2hlbWEgZGVmaW5pdGlvbg0KK0RFVEFJTDogIGxpbmUg MTogU3RhcnQgdGFnIGV4cGVjdGVkLCAnPCcgbm90IGZvdW5kDQorbm90IGV2ZW4geG1sDQorXg0K K0NSRUFURSBYTUxTQ0hFTUEgYm9va19zY2hlbWEgQVMgJzw/eG1sIHZlcnNpb249IjEuMCI/Pg0K Kzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4N CisgIDx4czplbGVtZW50IG5hbWU9ImJvb2siPg0KKyAgICA8eHM6Y29tcGxleFR5cGU+DQorICAg ICAgPHhzOnNlcXVlbmNlPg0KKyAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0idGl0bGUiIHR5cGU9 InhzOnN0cmluZyIvPg0KKyAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iYXV0aG9yIiBtYXhPY2N1 cnM9InVuYm91bmRlZCI+DQorICAgICAgICAgIDx4czpjb21wbGV4VHlwZT4NCisgICAgICAgICAg ICA8eHM6c2VxdWVuY2U+DQorICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJmaXJzdG5h bWUiIHR5cGU9InhzOnN0cmluZyIvPg0KKyAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0i bGFzdG5hbWUiIHR5cGU9InhzOnN0cmluZyIvPg0KKyAgICAgICAgICAgIDwveHM6c2VxdWVuY2U+ DQorICAgICAgICAgIDwveHM6Y29tcGxleFR5cGU+DQorICAgICAgICA8L3hzOmVsZW1lbnQ+DQor ICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJ5ZWFyIiB0eXBlPSJ4czppbnRlZ2VyIi8+DQorICAg ICAgPC94czpzZXF1ZW5jZT4NCisgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9ImlzYm4iIHR5cGU9 InhzOnN0cmluZyIgdXNlPSJyZXF1aXJlZCIvPg0KKyAgICA8L3hzOmNvbXBsZXhUeXBlPg0KKyAg PC94czplbGVtZW50Pg0KKzwveHM6c2NoZW1hPic7DQorU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VN RU5UICc8cGVyc29uPjxuYW1lPkpvaG48L25hbWU+PGFnZT4zMDwvYWdlPjwvcGVyc29uPicNCisg IEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYSk7DQorICAgICAgICAgICAgICAg ICAgIHhtbHZhbGlkYXRlICAgICAgICAgICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgPHBlcnNvbj48bmFtZT5Kb2huPC9uYW1l PjxhZ2U+MzA8L2FnZT48L3BlcnNvbj4NCisoMSByb3cpDQorDQorU0VMRUNUIFhNTFZBTElEQVRF KERPQ1VNRU5UICc8cHJvZHVjdCBpZD0iUDEyMyI+PG5hbWU+V2lkZ2V0PC9uYW1lPjxwcmljZT45 Ljk5PC9wcmljZT48L3Byb2R1Y3Q+Jw0KKyAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSB0ZXN0X3ht bHNjaGVtYV9ucy5wcm9kdWN0X3NjaGVtYSk7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB4bWx2YWxpZGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQorIDxwcm9kdWN0IGlkPSJQMTIzIj48bmFtZT5XaWRnZXQ8L25hbWU+PHByaWNlPjkuOTk8L3By aWNlPjwvcHJvZHVjdD4NCisoMSByb3cpDQorDQorU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5U DQorICAnPGJvb2sgaXNibj0iOTc4LTAtMTIzNDU2LTc4LTkiPg0KKyAgICA8dGl0bGU+UG9zdGdy ZVNRTCBJbnRlcm5hbHM8L3RpdGxlPg0KKyAgICA8YXV0aG9yPjxmaXJzdG5hbWU+Sm9objwvZmly c3RuYW1lPjxsYXN0bmFtZT5UaXRvcjwvbGFzdG5hbWU+PC9hdXRob3I+DQorICAgIDxhdXRob3I+ PGZpcnN0bmFtZT5KYW5lPC9maXJzdG5hbWU+PC9hdXRob3I+DQorICAgIDx5ZWFyPjIwMjQ8L3ll YXI+DQorICA8L2Jvb2s+Jw0KKyAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBib29rX3NjaGVtYSk7 DQorRVJST1I6ICBYTUwgdmFsaWRhdGlvbiBmYWlsZWQNCitTRUxFQ1QgWE1MU0VSSUFMSVpFKERP Q1VNRU5UDQorICBYTUxWQUxJREFURShET0NVTUVOVCAnPHBlcnNvbj48bmFtZT5BbGljZTwvbmFt ZT48YWdlPjI1PC9hZ2U+PC9wZXJzb24+Jw0KKyAgICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBl cnNvbl9zY2hlbWEpIEFTIHRleHQpOw0KKyAgICAgICAgICAgICAgICAgICB4bWxzZXJpYWxpemUg ICAgICAgICAgICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCisgPHBlcnNvbj48bmFtZT5BbGljZTwvbmFtZT48YWdlPjI1PC9hZ2U+ PC9wZXJzb24+DQorKDEgcm93KQ0KKw0KK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCBOVUxM IEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYSk7DQorIHhtbHZhbGlkYXRlIA0K Ky0tLS0tLS0tLS0tLS0NCisgDQorKDEgcm93KQ0KKw0KK1NFTEVDVCBYTUxWQUxJREFURShET0NV TUVOVCBOVUxMIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYSkgSVMgTlVMTCBB UyBpc19udWxsOw0KKyBpc19udWxsIA0KKy0tLS0tLS0tLQ0KKyB0DQorKDEgcm93KQ0KKw0KK1NF TEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAnPHBlcnNvbj48bmFtZT5Kb2huPC9uYW1lPjwvcGVy c29uPicNCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYSk7DQorRVJST1I6 ICBYTUwgdmFsaWRhdGlvbiBmYWlsZWQNCitTRUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxw ZXJzb24+PG5hbWU+Sm9objwvbmFtZT48YWdlPm5vdC1hLW51bWJlcjwvYWdlPjwvcGVyc29uPicN CisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYSk7DQorRVJST1I6ICBYTUwg dmFsaWRhdGlvbiBmYWlsZWQNCitTRUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxwcm9kdWN0 PjxuYW1lPldpZGdldDwvbmFtZT48cHJpY2U+OS45OTwvcHJpY2U+PC9wcm9kdWN0PicNCisgIEFD Q09SRElORyBUTyBYTUxTQ0hFTUEgdGVzdF94bWxzY2hlbWFfbnMucHJvZHVjdF9zY2hlbWEpOw0K K0VSUk9SOiAgWE1MIHZhbGlkYXRpb24gZmFpbGVkDQorU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VN RU5UICc8cGVyc29uPjxuYW1lPkpvaG48L25hbWU+PGFnZT4zMDwvYWdlPjxleHRyYT5kYXRhPC9l eHRyYT48L3BlcnNvbj4nDQorICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcnNvbl9zY2hlbWEp Ow0KK0VSUk9SOiAgWE1MIHZhbGlkYXRpb24gZmFpbGVkDQorU0VMRUNUIFhNTFZBTElEQVRFKERP Q1VNRU5UICc8bm90cGVyc29uPjxuYW1lPkpvaG48L25hbWU+PGFnZT4zMDwvYWdlPjwvbm90cGVy c29uPicNCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYSk7DQorRVJST1I6 ICBYTUwgdmFsaWRhdGlvbiBmYWlsZWQNCitTRUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzx0 ZXN0PnZhbHVlPC90ZXN0PicNCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgbm9uZXhpc3RlbnRf c2NoZW1hKTsNCitFUlJPUjogIFhNTCBzY2hlbWEgIm5vbmV4aXN0ZW50X3NjaGVtYSIgZG9lcyBu b3QgZXhpc3QNCitDUkVBVEUgVklFVyB2YWxpZGF0ZWRfcGVvcGxlIEFTDQorICBTRUxFQ1QgWE1M VkFMSURBVEUoRE9DVU1FTlQgZGF0YSBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcnNvbl9zY2hl bWEpIEFTIHZhbGlkYXRlZF94bWwNCisgIEZST00geG1sdGVzdCBXSEVSRSBpZCA9IDE7DQorU0VM RUNUIHBnX2dldF92aWV3ZGVmKCd2YWxpZGF0ZWRfcGVvcGxlJzo6cmVnY2xhc3MsIHRydWUpOw0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KKyAgU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UIGRhdGEgQUNDT1JE SU5HIFRPIFhNTFNDSEVNQSBwZXJzb25fc2NoZW1hKSBBUyB2YWxpZGF0ZWRfeG1sKw0KKyAgICBG Uk9NIHhtbHRlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKw0KKyAgIFdIRVJFIGlkID0gMTsNCisoMSByb3cp DQorDQorRFJPUCBWSUVXIHZhbGlkYXRlZF9wZW9wbGU7DQorQ1JFQVRFIFZJRVcgdmFsaWRhdGVk X3Byb2R1Y3RzIEFTDQorICBTRUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxwcm9kdWN0IGlk PSIxMjMiPjxuYW1lPlRlc3Q8L25hbWU+PHByaWNlPjEuOTk8L3ByaWNlPjwvcHJvZHVjdD4nDQor ICAgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgdGVzdF94bWxzY2hlbWFfbnMucHJvZHVjdF9zY2hl bWEpIEFTIHZhbGlkYXRlZF94bWw7DQorU0VMRUNUIHBnX2dldF92aWV3ZGVmKCd2YWxpZGF0ZWRf cHJvZHVjdHMnOjpyZWdjbGFzcywgdHJ1ZSk7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdf Z2V0X3ZpZXdkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorICBTRUxFQ1Qg WE1MVkFMSURBVEUoRE9DVU1FTlQgJzxwcm9kdWN0IGlkPSIxMjMiPjxuYW1lPlRlc3Q8L25hbWU+ PHByaWNlPjEuOTk8L3ByaWNlPjwvcHJvZHVjdD4nOjp4bWwgQUNDT1JESU5HIFRPIFhNTFNDSEVN QSB0ZXN0X3htbHNjaGVtYV9ucy5wcm9kdWN0X3NjaGVtYSkgQVMgdmFsaWRhdGVkX3htbDsNCiso MSByb3cpDQorDQorRFJPUCBWSUVXIHZhbGlkYXRlZF9wcm9kdWN0czsNCitBTFRFUiBYTUxTQ0hF TUEgYm9va19zY2hlbWEgUkVOQU1FIFRPIGxpYnJhcnlfYm9va19zY2hlbWE7DQorU0VMRUNUIFhN TFZBTElEQVRFKERPQ1VNRU5UICc8Ym9vayBpc2JuPSIxMjMiPjx0aXRsZT5UZXN0PC90aXRsZT48 YXV0aG9yPjxmaXJzdG5hbWU+QTwvZmlyc3RuYW1lPjxsYXN0bmFtZT5CPC9sYXN0bmFtZT48L2F1 dGhvcj48eWVhcj4yMDI0PC95ZWFyPjwvYm9vaz4nDQorICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1B IGJvb2tfc2NoZW1hKTsNCitFUlJPUjogIFhNTCBzY2hlbWEgImJvb2tfc2NoZW1hIiBkb2VzIG5v dCBleGlzdA0KK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAnPGJvb2sgaXNibj0iMTIzIj48 dGl0bGU+VGVzdDwvdGl0bGU+PGF1dGhvcj48Zmlyc3RuYW1lPkE8L2ZpcnN0bmFtZT48bGFzdG5h bWU+QjwvbGFzdG5hbWU+PC9hdXRob3I+PHllYXI+MjAyNDwveWVhcj48L2Jvb2s+Jw0KKyAgQUND T1JESU5HIFRPIFhNTFNDSEVNQSBsaWJyYXJ5X2Jvb2tfc2NoZW1hKTsNCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWx2YWxpZGF0ZSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0K Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQorIDxib29rIGlzYm49IjEyMyI+PHRpdGxlPlRlc3Q8L3RpdGxlPjxhdXRo b3I+PGZpcnN0bmFtZT5BPC9maXJzdG5hbWU+PGxhc3RuYW1lPkI8L2xhc3RuYW1lPjwvYXV0aG9y Pjx5ZWFyPjIwMjQ8L3llYXI+PC9ib29rPg0KKygxIHJvdykNCisNCitBTFRFUiBYTUxTQ0hFTUEg bGlicmFyeV9ib29rX3NjaGVtYSBTRVQgU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zOw0KK1NFTEVD VCBYTUxWQUxJREFURShET0NVTUVOVCAnPGJvb2sgaXNibj0iMTIzIj48dGl0bGU+VGVzdDwvdGl0 bGU+PGF1dGhvcj48Zmlyc3RuYW1lPkE8L2ZpcnN0bmFtZT48bGFzdG5hbWU+QjwvbGFzdG5hbWU+ PC9hdXRob3I+PHllYXI+MjAyNDwveWVhcj48L2Jvb2s+Jw0KKyAgQUNDT1JESU5HIFRPIFhNTFND SEVNQSBsaWJyYXJ5X2Jvb2tfc2NoZW1hKTsNCitFUlJPUjogIFhNTCBzY2hlbWEgImxpYnJhcnlf Ym9va19zY2hlbWEiIGRvZXMgbm90IGV4aXN0DQorU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5U ICc8Ym9vayBpc2JuPSIxMjMiPjx0aXRsZT5UZXN0PC90aXRsZT48YXV0aG9yPjxmaXJzdG5hbWU+ QTwvZmlyc3RuYW1lPjxsYXN0bmFtZT5CPC9sYXN0bmFtZT48L2F1dGhvcj48eWVhcj4yMDI0PC95 ZWFyPjwvYm9vaz4nDQorICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25z LmxpYnJhcnlfYm9va19zY2hlbWEpOw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHhtbHZhbGlkYXRlICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgPGJv b2sgaXNibj0iMTIzIj48dGl0bGU+VGVzdDwvdGl0bGU+PGF1dGhvcj48Zmlyc3RuYW1lPkE8L2Zp cnN0bmFtZT48bGFzdG5hbWU+QjwvbGFzdG5hbWU+PC9hdXRob3I+PHllYXI+MjAyNDwveWVhcj48 L2Jvb2s+DQorKDEgcm93KQ0KKw0KK0NSRUFURSBST0xFIHJlZ3Jlc3NfeG1sc2NoZW1hX3Rlc3Rf cm9sZTsNCitBTFRFUiBYTUxTQ0hFTUEgdGVzdF94bWxzY2hlbWFfbnMubGlicmFyeV9ib29rX3Nj aGVtYSBPV05FUiBUTyByZWdyZXNzX3htbHNjaGVtYV90ZXN0X3JvbGU7DQorU0VMRUNUIHNjaGVt YW5hbWUsIHNjaGVtYW5hbWVzcGFjZTo6cmVnbmFtZXNwYWNlLCBzY2hlbWFvd25lcjo6cmVncm9s ZQ0KK0ZST00gcGdfeG1sc2NoZW1hDQorV0hFUkUgc2NoZW1hbmFtZSA9ICdsaWJyYXJ5X2Jvb2tf c2NoZW1hJzsNCisgICAgIHNjaGVtYW5hbWUgICAgICB8ICBzY2hlbWFuYW1lc3BhY2UgIHwgICAg IHNjaGVtYW93bmVyICAgICANCistLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgbGlicmFyeV9ib29rX3NjaGVtYSB8IHRlc3Rf eG1sc2NoZW1hX25zIHwgcmVncmVzc194bWxzY2hlbWFfdGVzdF9yb2xlDQorKDEgcm93KQ0KKw0K K0NSRUFURSBWSUVXIGJvb2tfdmlldyBBUw0KKyAgU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5U ICc8Ym9vayBpc2JuPSI0NTYiPjx0aXRsZT5EZXAgVGVzdDwvdGl0bGU+PGF1dGhvcj48Zmlyc3Ru YW1lPlg8L2ZpcnN0bmFtZT48bGFzdG5hbWU+WTwvbGFzdG5hbWU+PC9hdXRob3I+PHllYXI+MjAy NTwveWVhcj48L2Jvb2s+Jw0KKyAgICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHRlc3RfeG1sc2No ZW1hX25zLmxpYnJhcnlfYm9va19zY2hlbWEpIEFTIHZhbGlkYXRlZF9ib29rOw0KK0RST1AgWE1M U0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zLmxpYnJhcnlfYm9va19zY2hlbWE7DQorRVJST1I6ICBj YW5ub3QgZHJvcCBYTUwgc2NoZW1hIHRlc3RfeG1sc2NoZW1hX25zLmxpYnJhcnlfYm9va19zY2hl bWEgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdA0KK0RFVEFJTDogIHZpZXcgYm9v a192aWV3IGRlcGVuZHMgb24gWE1MIHNjaGVtYSB0ZXN0X3htbHNjaGVtYV9ucy5saWJyYXJ5X2Jv b2tfc2NoZW1hDQorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVu ZGVudCBvYmplY3RzIHRvby4NCitEUk9QIFhNTFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9ucy5saWJy YXJ5X2Jvb2tfc2NoZW1hIENBU0NBREU7DQorTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byB2aWV3 IGJvb2tfdmlldw0KK1NFTEVDVCAqIEZST00gYm9va192aWV3Ow0KK0VSUk9SOiAgcmVsYXRpb24g ImJvb2tfdmlldyIgZG9lcyBub3QgZXhpc3QNCitMSU5FIDE6IFNFTEVDVCAqIEZST00gYm9va192 aWV3Ow0KKyAgICAgICAgICAgICAgICAgICAgICBeDQorRFJPUCBYTUxTQ0hFTUEgcGVyc29uX3Nj aGVtYTsNCitEUk9QIFhNTFNDSEVNQSBJRiBFWElTVFMgcGVyc29uX3NjaGVtYTsNCitOT1RJQ0U6 ICBYTUwgc2NoZW1hICJwZXJzb25fc2NoZW1hIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmcNCitE Uk9QIFhNTFNDSEVNQSBwZXJzb25fc2NoZW1hOw0KK0VSUk9SOiAgWE1MIHNjaGVtYSAicGVyc29u X3NjaGVtYSIgZG9lcyBub3QgZXhpc3QNCitEUk9QIFhNTFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9u cy5wcm9kdWN0X3NjaGVtYTsNCitTRVQgUk9MRSByZWdyZXNzX3htbHNjaGVtYV90ZXN0X3JvbGU7 DQorQ1JFQVRFIFhNTFNDSEVNQSBwdWJsaWMuc2hvdWxkX2ZhaWxfc2NoZW1hIEFTICc8P3htbCB2 ZXJzaW9uPSIxLjAiPz4NCis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8y MDAxL1hNTFNjaGVtYSI+DQorICA8eHM6ZWxlbWVudCBuYW1lPSJ0ZXN0IiB0eXBlPSJ4czpzdHJp bmciLz4NCis8L3hzOnNjaGVtYT4nOw0KK1JFU0VUIFJPTEU7DQorR1JBTlQgQ1JFQVRFIE9OIFND SEVNQSB0ZXN0X3htbHNjaGVtYV9ucyBUTyByZWdyZXNzX3htbHNjaGVtYV90ZXN0X3JvbGU7DQor U0VUIFJPTEUgcmVncmVzc194bWxzY2hlbWFfdGVzdF9yb2xlOw0KK0NSRUFURSBYTUxTQ0hFTUEg dGVzdF94bWxzY2hlbWFfbnMucm9sZV9zY2hlbWEgQVMgJzw/eG1sIHZlcnNpb249IjEuMCI/Pg0K Kzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4N CisgIDx4czplbGVtZW50IG5hbWU9InRlc3QiIHR5cGU9InhzOnN0cmluZyIvPg0KKzwveHM6c2No ZW1hPic7DQorUkVTRVQgUk9MRTsNCitEUk9QIFhNTFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9ucy5y b2xlX3NjaGVtYTsNCitEUk9QIFJPTEUgcmVncmVzc194bWxzY2hlbWFfdGVzdF9yb2xlOw0KK0VS Uk9SOiAgcm9sZSAicmVncmVzc194bWxzY2hlbWFfdGVzdF9yb2xlIiBjYW5ub3QgYmUgZHJvcHBl ZCBiZWNhdXNlIHNvbWUgb2JqZWN0cyBkZXBlbmQgb24gaXQNCitERVRBSUw6ICBwcml2aWxlZ2Vz IGZvciBzY2hlbWEgdGVzdF94bWxzY2hlbWFfbnMNCitvd25lciBvZiBYTUwgc2NoZW1hIHB1Ymxp Yy5zaG91bGRfZmFpbF9zY2hlbWENCitEUk9QIFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9ucyBDQVND QURFOw0KK0NSRUFURSBST0xFIHJlZ3Jlc3NfeG1sc2NoZW1hX3VzZXIxOw0KK0NSRUFURSBST0xF IHJlZ3Jlc3NfeG1sc2NoZW1hX3VzZXIyOw0KK0NSRUFURSBYTUxTQ0hFTUEgcGVybWlzc2lvbl90 ZXN0X3NjaGVtYSBBUyAnPD94bWwgdmVyc2lvbj0iMS4wIj8+DQorPHhzOnNjaGVtYSB4bWxuczp4 cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiPg0KKyAgPHhzOmVsZW1lbnQgbmFt ZT0idGVzdCIgdHlwZT0ieHM6c3RyaW5nIi8+DQorPC94czpzY2hlbWE+JzsNCitTRVQgUk9MRSBy ZWdyZXNzX3htbHNjaGVtYV91c2VyMTsNCitTRUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzx0 ZXN0PmRhdGE8L3Rlc3Q+Jw0KKyAgICAgICAgICAgICAgICAgICBBQ0NPUkRJTkcgVE8gWE1MU0NI RU1BIHBlcm1pc3Npb25fdGVzdF9zY2hlbWEpOw0KK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQg Zm9yIFhNTCBzY2hlbWEgcGVybWlzc2lvbl90ZXN0X3NjaGVtYQ0KK1JFU0VUIFJPTEU7DQorR1JB TlQgVVNBR0UgT04gWE1MU0NIRU1BIHBlcm1pc3Npb25fdGVzdF9zY2hlbWEgVE8gcmVncmVzc194 bWxzY2hlbWFfdXNlcjE7DQorU0VUIFJPTEUgcmVncmVzc194bWxzY2hlbWFfdXNlcjE7DQorU0VM RUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UICc8dGVzdD5kYXRhPC90ZXN0PicNCisgICAgICAgICAg ICAgICAgICAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBwZXJtaXNzaW9uX3Rlc3Rfc2NoZW1hKTsN CisgICAgeG1sdmFsaWRhdGUgICAgDQorLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyA8dGVzdD5kYXRh PC90ZXN0Pg0KKygxIHJvdykNCisNCitSRVNFVCBST0xFOw0KK1NFVCBST0xFIHJlZ3Jlc3NfeG1s c2NoZW1hX3VzZXIyOw0KK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAnPHRlc3Q+ZGF0YTwv dGVzdD4nDQorICAgICAgICAgICAgICAgICAgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgcGVybWlz c2lvbl90ZXN0X3NjaGVtYSk7DQorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgWE1MIHNj aGVtYSBwZXJtaXNzaW9uX3Rlc3Rfc2NoZW1hDQorUkVTRVQgUk9MRTsNCitHUkFOVCBVU0FHRSBP TiBYTUxTQ0hFTUEgcGVybWlzc2lvbl90ZXN0X3NjaGVtYSBUTyByZWdyZXNzX3htbHNjaGVtYV91 c2VyMjsNCitTRVQgUk9MRSByZWdyZXNzX3htbHNjaGVtYV91c2VyMjsNCitTRUxFQ1QgWE1MVkFM SURBVEUoRE9DVU1FTlQgJzx0ZXN0PmRhdGE8L3Rlc3Q+Jw0KKyAgICAgICAgICAgICAgICAgICBB Q0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcm1pc3Npb25fdGVzdF9zY2hlbWEpOw0KKyAgICB4bWx2 YWxpZGF0ZSAgICANCistLS0tLS0tLS0tLS0tLS0tLS0tDQorIDx0ZXN0PmRhdGE8L3Rlc3Q+DQor KDEgcm93KQ0KKw0KK1JFU0VUIFJPTEU7DQorUkVWT0tFIFVTQUdFIE9OIFhNTFNDSEVNQSBwZXJt aXNzaW9uX3Rlc3Rfc2NoZW1hIEZST00gcmVncmVzc194bWxzY2hlbWFfdXNlcjE7DQorU0VUIFJP TEUgcmVncmVzc194bWxzY2hlbWFfdXNlcjE7DQorU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5U ICc8dGVzdD5kYXRhPC90ZXN0PicNCisgICAgICAgICAgICAgICAgICAgQUNDT1JESU5HIFRPIFhN TFNDSEVNQSBwZXJtaXNzaW9uX3Rlc3Rfc2NoZW1hKTsNCitFUlJPUjogIHBlcm1pc3Npb24gZGVu aWVkIGZvciBYTUwgc2NoZW1hIHBlcm1pc3Npb25fdGVzdF9zY2hlbWENCitSRVNFVCBST0xFOw0K K0RST1AgWE1MU0NIRU1BIHBlcm1pc3Npb25fdGVzdF9zY2hlbWE7DQorRFJPUCBST0xFIHJlZ3Jl c3NfeG1sc2NoZW1hX3VzZXIxOw0KK0RST1AgUk9MRSByZWdyZXNzX3htbHNjaGVtYV91c2VyMjsN CitDUkVBVEUgVEFCTEUgdmFsaWRhdGVkX3htbF9kYXRhICgNCisgIGlkIHNlcmlhbCBQUklNQVJZ IEtFWSwNCisgIGRhdGEgeG1sDQorKTsNCitDUkVBVEUgWE1MU0NIRU1BIGRhdGFfc2NoZW1hIEFT ICc8P3htbCB2ZXJzaW9uPSIxLjAiPz4NCis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3 LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+DQorICA8eHM6ZWxlbWVudCBuYW1lPSJkYXRhIj4NCisg ICAgPHhzOmNvbXBsZXhUeXBlPg0KKyAgICAgIDx4czpzZXF1ZW5jZT4NCisgICAgICAgIDx4czpl bGVtZW50IG5hbWU9InZhbHVlIiB0eXBlPSJ4czppbnRlZ2VyIi8+DQorICAgICAgPC94czpzZXF1 ZW5jZT4NCisgICAgPC94czpjb21wbGV4VHlwZT4NCisgIDwveHM6ZWxlbWVudD4NCis8L3hzOnNj aGVtYT4nOw0KK0lOU0VSVCBJTlRPIHZhbGlkYXRlZF94bWxfZGF0YSAoZGF0YSkNCitWQUxVRVMg KFhNTFZBTElEQVRFKERPQ1VNRU5UICc8ZGF0YT48dmFsdWU+NDI8L3ZhbHVlPjwvZGF0YT4nDQor ICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIGRhdGFfc2NoZW1hKSk7DQorSU5TRVJUIElOVE8gdmFs aWRhdGVkX3htbF9kYXRhIChkYXRhKQ0KK1ZBTFVFUyAoWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxk YXRhPjx2YWx1ZT4xMDA8L3ZhbHVlPjwvZGF0YT4nDQorICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1B IGRhdGFfc2NoZW1hKSk7DQorU0VMRUNUIGlkLCBkYXRhIEZST00gdmFsaWRhdGVkX3htbF9kYXRh IE9SREVSIEJZIGlkOw0KKyBpZCB8ICAgICAgICAgICAgICBkYXRhICAgICAgICAgICAgICAgDQor LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgIDEgfCA8ZGF0YT48dmFs dWU+NDI8L3ZhbHVlPjwvZGF0YT4NCisgIDIgfCA8ZGF0YT48dmFsdWU+MTAwPC92YWx1ZT48L2Rh dGE+DQorKDIgcm93cykNCisNCitJTlNFUlQgSU5UTyB2YWxpZGF0ZWRfeG1sX2RhdGEgKGRhdGEp DQorVkFMVUVTIChYTUxWQUxJREFURShET0NVTUVOVCAnPGRhdGE+PHZhbHVlPm5vdC1hbi1pbnQ8 L3ZhbHVlPjwvZGF0YT4nDQorICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIGRhdGFfc2NoZW1hKSk7 DQorRVJST1I6ICBYTUwgdmFsaWRhdGlvbiBmYWlsZWQNCitEUk9QIFRBQkxFIHZhbGlkYXRlZF94 bWxfZGF0YTsNCitEUk9QIFhNTFNDSEVNQSBkYXRhX3NjaGVtYTsNCitEUk9QIFhNTFNDSEVNQSBz aG91bGRfZmFpbF9zY2hlbWE7DQorRFJPUCBST0xFIHJlZ3Jlc3NfeG1sc2NoZW1hX3Rlc3Rfcm9s ZTsNCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3htbF8yLm91dCBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQveG1sXzIub3V0CmluZGV4IGE4NWQ5NTM1OGQ5Li40ODg1 NjBhODZlOCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC94bWxfMi5vdXQK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC94bWxfMi5vdXQKQEAgLTksNiArOSw4IEBA IEVSUk9SOiAgaW52YWxpZCBYTUwgY29udGVudAogTElORSAxOiBJTlNFUlQgSU5UTyB4bWx0ZXN0 IFZBTFVFUyAoMywgJzx3cm9uZycpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgogREVUQUlMOiAgbGluZSAxOiBDb3VsZG4ndCBmaW5kIGVuZCBvZiBTdGFydCBUYWcg d3JvbmcgbGluZSAxCis8d3JvbmcKKyAgICAgIF4KIFNFTEVDVCAqIEZST00geG1sdGVzdDsKICBp ZCB8ICAgICAgICBkYXRhICAgICAgICAKIC0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTky LDYgKzk0LDggQEAgRVJST1I6ICBpbnZhbGlkIFhNTCBjb250ZW50CiBMSU5FIDE6IFNFTEVDVCB4 bWxjb25jYXQoJ2JhZCcsICc8c3ludGF4Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KIERFVEFJTDogIGxpbmUgMTogQ291bGRuJ3QgZmluZCBlbmQgb2YgU3RhcnQgVGFnIHN5 bnRheCBsaW5lIDEKKzxzeW50YXgKKyAgICAgICBeCiBTRUxFQ1QgeG1sY29uY2F0KCc8Zm9vLz4n LCBOVUxMLCAnPD94bWwgdmVyc2lvbj0iMS4xIiBzdGFuZGFsb25lPSJubyI/PjxiYXIvPicpOwog ICB4bWxjb25jYXQgICAKIC0tLS0tLS0tLS0tLS0tCkBAIC0yNzMsNiArMjc3LDggQEAgREVUQUlM OiAgbGluZSAxOiBFbnRpdHkgJ2lkb250ZXhpc3QnIG5vdCBkZWZpbmVkCiA8dHdvZXJyb3JzPiZp ZG9udGV4aXN0OzwvdW5iYWxhbmNlZD4KICAgICAgICAgICAgICAgICAgICAgICAgXgogbGluZSAx OiBPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiB0d29lcnJvcnMgbGluZSAxIGFuZCB1 bmJhbGFuY2VkCis8dHdvZXJyb3JzPiZpZG9udGV4aXN0OzwvdW5iYWxhbmNlZD4KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIFNFTEVDVCB4bWxwYXJzZShjb250ZW50ICc8 bm9zdWNocHJlZml4OnRhZy8+Jyk7CiAgICAgICB4bWxwYXJzZSAgICAgICAKIC0tLS0tLS0tLS0t LS0tLS0tLS0tLQpAQCAtMjgyLDYgKzI4OCw4IEBAIFNFTEVDVCB4bWxwYXJzZShjb250ZW50ICc8 bm9zdWNocHJlZml4OnRhZy8+Jyk7CiBTRUxFQ1QgeG1scGFyc2UoZG9jdW1lbnQgJyAgICcpOwog RVJST1I6ICBpbnZhbGlkIFhNTCBkb2N1bWVudAogREVUQUlMOiAgbGluZSAxOiBTdGFydCB0YWcg ZXhwZWN0ZWQsICc8JyBub3QgZm91bmQKKyAgIAorICAgXgogU0VMRUNUIHhtbHBhcnNlKGRvY3Vt ZW50ICdhYmMnKTsKIEVSUk9SOiAgaW52YWxpZCBYTUwgZG9jdW1lbnQKIERFVEFJTDogIGxpbmUg MTogU3RhcnQgdGFnIGV4cGVjdGVkLCAnPCcgbm90IGZvdW5kCkBAIC0yOTksMTIgKzMwNywxNiBA QCBERVRBSUw6ICBsaW5lIDE6IHhtbFBhcnNlRW50aXR5UmVmOiBubyBuYW1lCiA8aW52YWxpZGVu dGl0eT4mPC9hYmM+CiAgICAgICAgICAgICAgICAgXgogbGluZSAxOiBPcGVuaW5nIGFuZCBlbmRp bmcgdGFnIG1pc21hdGNoOiBpbnZhbGlkZW50aXR5IGxpbmUgMSBhbmQgYWJjCis8aW52YWxpZGVu dGl0eT4mPC9hYmM+CisgICAgICAgICAgICAgICAgICAgICAgXgogU0VMRUNUIHhtbHBhcnNlKGRv Y3VtZW50ICc8dW5kZWZpbmVkZW50aXR5PiZpZG9udGV4aXN0OzwvYWJjPicpOwogRVJST1I6ICBp bnZhbGlkIFhNTCBkb2N1bWVudAogREVUQUlMOiAgbGluZSAxOiBFbnRpdHkgJ2lkb250ZXhpc3Qn IG5vdCBkZWZpbmVkCiA8dW5kZWZpbmVkZW50aXR5PiZpZG9udGV4aXN0OzwvYWJjPgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCiBsaW5lIDE6IE9wZW5pbmcgYW5kIGVuZGluZyB0YWcg bWlzbWF0Y2g6IHVuZGVmaW5lZGVudGl0eSBsaW5lIDEgYW5kIGFiYworPHVuZGVmaW5lZGVudGl0 eT4maWRvbnRleGlzdDs8L2FiYz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgogU0VMRUNUIHhtbHBhcnNlKGRvY3VtZW50ICc8aW52YWxpZG5zIHhtbG5zPScnJmx0OycnLz4n KTsKICAgICAgICAgIHhtbHBhcnNlICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCkBAIC0zMjMsNiArMzM1LDggQEAgREVUQUlMOiAgbGluZSAxOiBFbnRpdHkgJ2lkb250ZXhp c3QnIG5vdCBkZWZpbmVkCiA8dHdvZXJyb3JzPiZpZG9udGV4aXN0OzwvdW5iYWxhbmNlZD4KICAg ICAgICAgICAgICAgICAgICAgICAgXgogbGluZSAxOiBPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1p c21hdGNoOiB0d29lcnJvcnMgbGluZSAxIGFuZCB1bmJhbGFuY2VkCis8dHdvZXJyb3JzPiZpZG9u dGV4aXN0OzwvdW5iYWxhbmNlZD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KIFNFTEVDVCB4bWxwYXJzZShkb2N1bWVudCAnPG5vc3VjaHByZWZpeDp0YWcvPicpOwogICAg ICAgeG1scGFyc2UgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE4NjcsMyArMTg4 MSwzMDIgQEAgU0VMRUNUIHhtbHRleHQoJ3gnfHwgJzxQPjczPC9QPic6OnhtbCB8fCAuNDIgfHwg dHJ1ZSB8fCAnaic6OmNoYXIpOwogIHgmbHQ7UCZndDs3MyZsdDsvUCZndDswLjQydHJ1ZWoKICgx IHJvdykKIAorQ1JFQVRFIFhNTFNDSEVNQSBwZXJzb25fc2NoZW1hIEFTICc8P3htbCB2ZXJzaW9u PSIxLjAiPz4KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1M U2NoZW1hIj4KKyAgPHhzOmVsZW1lbnQgbmFtZT0icGVyc29uIj4KKyAgICA8eHM6Y29tcGxleFR5 cGU+CisgICAgICA8eHM6c2VxdWVuY2U+CisgICAgICAgIDx4czplbGVtZW50IG5hbWU9Im5hbWUi IHR5cGU9InhzOnN0cmluZyIvPgorICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJhZ2UiIHR5cGU9 InhzOmludGVnZXIiLz4KKyAgICAgIDwveHM6c2VxdWVuY2U+CisgICAgPC94czpjb21wbGV4VHlw ZT4KKyAgPC94czplbGVtZW50PgorPC94czpzY2hlbWE+JzsKK0NSRUFURSBYTUxTQ0hFTUEgSUYg Tk9UIEVYSVNUUyBwZXJzb25fc2NoZW1hIEFTICc8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4czpz Y2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKyAgPHhz OmVsZW1lbnQgbmFtZT0ib3RoZXIiIHR5cGU9InhzOnN0cmluZyIvPgorPC94czpzY2hlbWE+JzsK K05PVElDRTogIFhNTCBzY2hlbWEgInBlcnNvbl9zY2hlbWEiIGFscmVhZHkgZXhpc3RzLCBza2lw cGluZworQ1JFQVRFIFhNTFNDSEVNQSBwZXJzb25fc2NoZW1hIEFTICc8P3htbCB2ZXJzaW9uPSIx LjAiPz4KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2No ZW1hIj4KKyAgPHhzOmVsZW1lbnQgbmFtZT0iZHVwbGljYXRlIiB0eXBlPSJ4czpzdHJpbmciLz4K KzwveHM6c2NoZW1hPic7CitFUlJPUjogIFhNTCBzY2hlbWEgInBlcnNvbl9zY2hlbWEiIGFscmVh ZHkgZXhpc3RzCitDUkVBVEUgU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zOworQ1JFQVRFIFhNTFND SEVNQSB0ZXN0X3htbHNjaGVtYV9ucy5wcm9kdWN0X3NjaGVtYSBBUyAnPD94bWwgdmVyc2lvbj0i MS4wIj8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNj aGVtYSI+CisgIDx4czplbGVtZW50IG5hbWU9InByb2R1Y3QiPgorICAgIDx4czpjb21wbGV4VHlw ZT4KKyAgICAgIDx4czpzZXF1ZW5jZT4KKyAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0ibmFtZSIg dHlwZT0ieHM6c3RyaW5nIi8+CisgICAgICAgIDx4czplbGVtZW50IG5hbWU9InByaWNlIiB0eXBl PSJ4czpkZWNpbWFsIi8+CisgICAgICA8L3hzOnNlcXVlbmNlPgorICAgICAgPHhzOmF0dHJpYnV0 ZSBuYW1lPSJpZCIgdHlwZT0ieHM6c3RyaW5nIiB1c2U9InJlcXVpcmVkIi8+CisgICAgPC94czpj b21wbGV4VHlwZT4KKyAgPC94czplbGVtZW50PgorPC94czpzY2hlbWE+JzsKK0NSRUFURSBYTUxT Q0hFTUEgYmFkX3NjaGVtYSBBUyAnPHRoaXMtaXMtbm90LXZhbGlkLXhzZD4nOworRVJST1I6ICBp bnZhbGlkIFhNTCBjb250ZW50CitMSU5FIDE6IENSRUFURSBYTUxTQ0hFTUEgYmFkX3NjaGVtYSBB UyAnPHRoaXMtaXMtbm90LXZhbGlkLXhzZD4nOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgorREVUQUlMOiAgbGluZSAxOiBQcmVtYXR1cmUgZW5kIG9mIGRhdGEgaW4g dGFnIHRoaXMtaXMtbm90LXZhbGlkLXhzZCBsaW5lIDEKKzx0aGlzLWlzLW5vdC12YWxpZC14c2Q+ CisgICAgICAgICAgICAgICAgICAgICAgIF4KK0NSRUFURSBYTUxTQ0hFTUEgYmFkX3htbF9zY2hl bWEgQVMgJ25vdCBldmVuIHhtbCc7CitFUlJPUjogIGludmFsaWQgWE1MIHNjaGVtYSBkZWZpbml0 aW9uCitERVRBSUw6ICBsaW5lIDE6IFN0YXJ0IHRhZyBleHBlY3RlZCwgJzwnIG5vdCBmb3VuZAor bm90IGV2ZW4geG1sCiteCitDUkVBVEUgWE1MU0NIRU1BIGJvb2tfc2NoZW1hIEFTICc8P3htbCB2 ZXJzaW9uPSIxLjAiPz4KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIw MDEvWE1MU2NoZW1hIj4KKyAgPHhzOmVsZW1lbnQgbmFtZT0iYm9vayI+CisgICAgPHhzOmNvbXBs ZXhUeXBlPgorICAgICAgPHhzOnNlcXVlbmNlPgorICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJ0 aXRsZSIgdHlwZT0ieHM6c3RyaW5nIi8+CisgICAgICAgIDx4czplbGVtZW50IG5hbWU9ImF1dGhv ciIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPgorICAgICAgICAgIDx4czpjb21wbGV4VHlwZT4KKyAg ICAgICAgICAgIDx4czpzZXF1ZW5jZT4KKyAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0i Zmlyc3RuYW1lIiB0eXBlPSJ4czpzdHJpbmciLz4KKyAgICAgICAgICAgICAgPHhzOmVsZW1lbnQg bmFtZT0ibGFzdG5hbWUiIHR5cGU9InhzOnN0cmluZyIvPgorICAgICAgICAgICAgPC94czpzZXF1 ZW5jZT4KKyAgICAgICAgICA8L3hzOmNvbXBsZXhUeXBlPgorICAgICAgICA8L3hzOmVsZW1lbnQ+ CisgICAgICAgIDx4czplbGVtZW50IG5hbWU9InllYXIiIHR5cGU9InhzOmludGVnZXIiLz4KKyAg ICAgIDwveHM6c2VxdWVuY2U+CisgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9ImlzYm4iIHR5cGU9 InhzOnN0cmluZyIgdXNlPSJyZXF1aXJlZCIvPgorICAgIDwveHM6Y29tcGxleFR5cGU+CisgIDwv eHM6ZWxlbWVudD4KKzwveHM6c2NoZW1hPic7CitTRUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQg JzxwZXJzb24+PG5hbWU+Sm9objwvbmFtZT48YWdlPjMwPC9hZ2U+PC9wZXJzb24+JworICBBQ0NP UkRJTkcgVE8gWE1MU0NIRU1BIHBlcnNvbl9zY2hlbWEpOworICAgICAgICAgICAgICAgICAgIHht bHZhbGlkYXRlICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDxwZXJzb24+PG5hbWU+Sm9objwvbmFtZT48YWdlPjMw PC9hZ2U+PC9wZXJzb24+CisoMSByb3cpCisKK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAn PHByb2R1Y3QgaWQ9IlAxMjMiPjxuYW1lPldpZGdldDwvbmFtZT48cHJpY2U+OS45OTwvcHJpY2U+ PC9wcm9kdWN0PicKKyAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9ucy5w cm9kdWN0X3NjaGVtYSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbHZhbGlkYXRl ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDxwcm9kdWN0IGlk PSJQMTIzIj48bmFtZT5XaWRnZXQ8L25hbWU+PHByaWNlPjkuOTk8L3ByaWNlPjwvcHJvZHVjdD4K KygxIHJvdykKKworU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UCisgICc8Ym9vayBpc2JuPSI5 NzgtMC0xMjM0NTYtNzgtOSI+CisgICAgPHRpdGxlPlBvc3RncmVTUUwgSW50ZXJuYWxzPC90aXRs ZT4KKyAgICA8YXV0aG9yPjxmaXJzdG5hbWU+Sm9objwvZmlyc3RuYW1lPjxsYXN0bmFtZT5UaXRv cjwvbGFzdG5hbWU+PC9hdXRob3I+CisgICAgPGF1dGhvcj48Zmlyc3RuYW1lPkphbmU8L2ZpcnN0 bmFtZT48L2F1dGhvcj4KKyAgICA8eWVhcj4yMDI0PC95ZWFyPgorICA8L2Jvb2s+JworICBBQ0NP UkRJTkcgVE8gWE1MU0NIRU1BIGJvb2tfc2NoZW1hKTsKK0VSUk9SOiAgWE1MIHZhbGlkYXRpb24g ZmFpbGVkCitTRUxFQ1QgWE1MU0VSSUFMSVpFKERPQ1VNRU5UCisgIFhNTFZBTElEQVRFKERPQ1VN RU5UICc8cGVyc29uPjxuYW1lPkFsaWNlPC9uYW1lPjxhZ2U+MjU8L2FnZT48L3BlcnNvbj4nCisg ICAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBwZXJzb25fc2NoZW1hKSBBUyB0ZXh0KTsKKyAgICAg ICAgICAgICAgICAgICB4bWxzZXJpYWxpemUgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDxwZXJzb24+PG5hbWU+ QWxpY2U8L25hbWU+PGFnZT4yNTwvYWdlPjwvcGVyc29uPgorKDEgcm93KQorCitTRUxFQ1QgWE1M VkFMSURBVEUoRE9DVU1FTlQgTlVMTCBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcnNvbl9zY2hl bWEpOworIHhtbHZhbGlkYXRlIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1Qg WE1MVkFMSURBVEUoRE9DVU1FTlQgTlVMTCBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcnNvbl9z Y2hlbWEpIElTIE5VTEwgQVMgaXNfbnVsbDsKKyBpc19udWxsIAorLS0tLS0tLS0tCisgdAorKDEg cm93KQorCitTRUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxwZXJzb24+PG5hbWU+Sm9objwv bmFtZT48L3BlcnNvbj4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYSk7 CitFUlJPUjogIFhNTCB2YWxpZGF0aW9uIGZhaWxlZAorU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VN RU5UICc8cGVyc29uPjxuYW1lPkpvaG48L25hbWU+PGFnZT5ub3QtYS1udW1iZXI8L2FnZT48L3Bl cnNvbj4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYSk7CitFUlJPUjog IFhNTCB2YWxpZGF0aW9uIGZhaWxlZAorU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UICc8cHJv ZHVjdD48bmFtZT5XaWRnZXQ8L25hbWU+PHByaWNlPjkuOTk8L3ByaWNlPjwvcHJvZHVjdD4nCisg IEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgdGVzdF94bWxzY2hlbWFfbnMucHJvZHVjdF9zY2hlbWEp OworRVJST1I6ICBYTUwgdmFsaWRhdGlvbiBmYWlsZWQKK1NFTEVDVCBYTUxWQUxJREFURShET0NV TUVOVCAnPHBlcnNvbj48bmFtZT5Kb2huPC9uYW1lPjxhZ2U+MzA8L2FnZT48ZXh0cmE+ZGF0YTwv ZXh0cmE+PC9wZXJzb24+JworICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcnNvbl9zY2hlbWEp OworRVJST1I6ICBYTUwgdmFsaWRhdGlvbiBmYWlsZWQKK1NFTEVDVCBYTUxWQUxJREFURShET0NV TUVOVCAnPG5vdHBlcnNvbj48bmFtZT5Kb2huPC9uYW1lPjxhZ2U+MzA8L2FnZT48L25vdHBlcnNv bj4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYSk7CitFUlJPUjogIFhN TCB2YWxpZGF0aW9uIGZhaWxlZAorU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UICc8dGVzdD52 YWx1ZTwvdGVzdD4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgbm9uZXhpc3RlbnRfc2NoZW1h KTsKK0VSUk9SOiAgWE1MIHNjaGVtYSAibm9uZXhpc3RlbnRfc2NoZW1hIiBkb2VzIG5vdCBleGlz dAorQ1JFQVRFIFZJRVcgdmFsaWRhdGVkX3Blb3BsZSBBUworICBTRUxFQ1QgWE1MVkFMSURBVEUo RE9DVU1FTlQgZGF0YSBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcnNvbl9zY2hlbWEpIEFTIHZh bGlkYXRlZF94bWwKKyAgRlJPTSB4bWx0ZXN0IFdIRVJFIGlkID0gMTsKK1NFTEVDVCBwZ19nZXRf dmlld2RlZigndmFsaWRhdGVkX3Blb3BsZSc6OnJlZ2NsYXNzLCB0cnVlKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgIFNFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCBkYXRhIEFDQ09SRElORyBUTyBYTUxTQ0hF TUEgcGVyc29uX3NjaGVtYSkgQVMgdmFsaWRhdGVkX3htbCsKKyAgICBGUk9NIHhtbHRlc3QgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgV0hFUkUgaWQgPSAxOworKDEgcm93KQorCitEUk9QIFZJRVcgdmFs aWRhdGVkX3Blb3BsZTsKK0NSRUFURSBWSUVXIHZhbGlkYXRlZF9wcm9kdWN0cyBBUworICBTRUxF Q1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxwcm9kdWN0IGlkPSIxMjMiPjxuYW1lPlRlc3Q8L25h bWU+PHByaWNlPjEuOTk8L3ByaWNlPjwvcHJvZHVjdD4nCisgICAgQUNDT1JESU5HIFRPIFhNTFND SEVNQSB0ZXN0X3htbHNjaGVtYV9ucy5wcm9kdWN0X3NjaGVtYSkgQVMgdmFsaWRhdGVkX3htbDsK K1NFTEVDVCBwZ19nZXRfdmlld2RlZigndmFsaWRhdGVkX3Byb2R1Y3RzJzo6cmVnY2xhc3MsIHRy dWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UICc8cHJv ZHVjdCBpZD0iMTIzIj48bmFtZT5UZXN0PC9uYW1lPjxwcmljZT4xLjk5PC9wcmljZT48L3Byb2R1 Y3Q+Jzo6eG1sIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgdGVzdF94bWxzY2hlbWFfbnMucHJvZHVj dF9zY2hlbWEpIEFTIHZhbGlkYXRlZF94bWw7CisoMSByb3cpCisKK0RST1AgVklFVyB2YWxpZGF0 ZWRfcHJvZHVjdHM7CitBTFRFUiBYTUxTQ0hFTUEgYm9va19zY2hlbWEgUkVOQU1FIFRPIGxpYnJh cnlfYm9va19zY2hlbWE7CitTRUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxib29rIGlzYm49 IjEyMyI+PHRpdGxlPlRlc3Q8L3RpdGxlPjxhdXRob3I+PGZpcnN0bmFtZT5BPC9maXJzdG5hbWU+ PGxhc3RuYW1lPkI8L2xhc3RuYW1lPjwvYXV0aG9yPjx5ZWFyPjIwMjQ8L3llYXI+PC9ib29rPicK KyAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBib29rX3NjaGVtYSk7CitFUlJPUjogIFhNTCBzY2hl bWEgImJvb2tfc2NoZW1hIiBkb2VzIG5vdCBleGlzdAorU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VN RU5UICc8Ym9vayBpc2JuPSIxMjMiPjx0aXRsZT5UZXN0PC90aXRsZT48YXV0aG9yPjxmaXJzdG5h bWU+QTwvZmlyc3RuYW1lPjxsYXN0bmFtZT5CPC9sYXN0bmFtZT48L2F1dGhvcj48eWVhcj4yMDI0 PC95ZWFyPjwvYm9vaz4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgbGlicmFyeV9ib29rX3Nj aGVtYSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB4bWx2YWxpZGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA8Ym9vayBpc2JuPSIxMjMiPjx0aXRs ZT5UZXN0PC90aXRsZT48YXV0aG9yPjxmaXJzdG5hbWU+QTwvZmlyc3RuYW1lPjxsYXN0bmFtZT5C PC9sYXN0bmFtZT48L2F1dGhvcj48eWVhcj4yMDI0PC95ZWFyPjwvYm9vaz4KKygxIHJvdykKKwor QUxURVIgWE1MU0NIRU1BIGxpYnJhcnlfYm9va19zY2hlbWEgU0VUIFNDSEVNQSB0ZXN0X3htbHNj aGVtYV9uczsKK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAnPGJvb2sgaXNibj0iMTIzIj48 dGl0bGU+VGVzdDwvdGl0bGU+PGF1dGhvcj48Zmlyc3RuYW1lPkE8L2ZpcnN0bmFtZT48bGFzdG5h bWU+QjwvbGFzdG5hbWU+PC9hdXRob3I+PHllYXI+MjAyNDwveWVhcj48L2Jvb2s+JworICBBQ0NP UkRJTkcgVE8gWE1MU0NIRU1BIGxpYnJhcnlfYm9va19zY2hlbWEpOworRVJST1I6ICBYTUwgc2No ZW1hICJsaWJyYXJ5X2Jvb2tfc2NoZW1hIiBkb2VzIG5vdCBleGlzdAorU0VMRUNUIFhNTFZBTElE QVRFKERPQ1VNRU5UICc8Ym9vayBpc2JuPSIxMjMiPjx0aXRsZT5UZXN0PC90aXRsZT48YXV0aG9y PjxmaXJzdG5hbWU+QTwvZmlyc3RuYW1lPjxsYXN0bmFtZT5CPC9sYXN0bmFtZT48L2F1dGhvcj48 eWVhcj4yMDI0PC95ZWFyPjwvYm9vaz4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgdGVzdF94 bWxzY2hlbWFfbnMubGlicmFyeV9ib29rX3NjaGVtYSk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWx2YWxpZGF0ZSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyA8Ym9vayBpc2JuPSIxMjMiPjx0aXRsZT5UZXN0PC90aXRsZT48YXV0aG9yPjxmaXJzdG5h bWU+QTwvZmlyc3RuYW1lPjxsYXN0bmFtZT5CPC9sYXN0bmFtZT48L2F1dGhvcj48eWVhcj4yMDI0 PC95ZWFyPjwvYm9vaz4KKygxIHJvdykKKworQ1JFQVRFIFJPTEUgcmVncmVzc194bWxzY2hlbWFf dGVzdF9yb2xlOworQUxURVIgWE1MU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zLmxpYnJhcnlfYm9v a19zY2hlbWEgT1dORVIgVE8gcmVncmVzc194bWxzY2hlbWFfdGVzdF9yb2xlOworU0VMRUNUIHNj aGVtYW5hbWUsIHNjaGVtYW5hbWVzcGFjZTo6cmVnbmFtZXNwYWNlLCBzY2hlbWFvd25lcjo6cmVn cm9sZQorRlJPTSBwZ194bWxzY2hlbWEKK1dIRVJFIHNjaGVtYW5hbWUgPSAnbGlicmFyeV9ib29r X3NjaGVtYSc7CisgICAgIHNjaGVtYW5hbWUgICAgICB8ICBzY2hlbWFuYW1lc3BhY2UgIHwgICAg ICAgICBzY2hlbWFvd25lciAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBsaWJyYXJ5X2Jvb2tf c2NoZW1hIHwgdGVzdF94bWxzY2hlbWFfbnMgfCByZWdyZXNzX3htbHNjaGVtYV90ZXN0X3JvbGUK KygxIHJvdykKKworQ1JFQVRFIFZJRVcgYm9va192aWV3IEFTCisgIFNFTEVDVCBYTUxWQUxJREFU RShET0NVTUVOVCAnPGJvb2sgaXNibj0iNDU2Ij48dGl0bGU+RGVwIFRlc3Q8L3RpdGxlPjxhdXRo b3I+PGZpcnN0bmFtZT5YPC9maXJzdG5hbWU+PGxhc3RuYW1lPlk8L2xhc3RuYW1lPjwvYXV0aG9y Pjx5ZWFyPjIwMjU8L3llYXI+PC9ib29rPicKKyAgICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHRl c3RfeG1sc2NoZW1hX25zLmxpYnJhcnlfYm9va19zY2hlbWEpIEFTIHZhbGlkYXRlZF9ib29rOwor RFJPUCBYTUxTQ0hFTUEgdGVzdF94bWxzY2hlbWFfbnMubGlicmFyeV9ib29rX3NjaGVtYTsKK0VS Uk9SOiAgY2Fubm90IGRyb3AgWE1MIHNjaGVtYSB0ZXN0X3htbHNjaGVtYV9ucy5saWJyYXJ5X2Jv b2tfc2NoZW1hIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHZp ZXcgYm9va192aWV3IGRlcGVuZHMgb24gWE1MIHNjaGVtYSB0ZXN0X3htbHNjaGVtYV9ucy5saWJy YXJ5X2Jvb2tfc2NoZW1hCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUg ZGVwZW5kZW50IG9iamVjdHMgdG9vLgorRFJPUCBYTUxTQ0hFTUEgdGVzdF94bWxzY2hlbWFfbnMu bGlicmFyeV9ib29rX3NjaGVtYSBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byB2 aWV3IGJvb2tfdmlldworU0VMRUNUICogRlJPTSBib29rX3ZpZXc7CitFUlJPUjogIHJlbGF0aW9u ICJib29rX3ZpZXciIGRvZXMgbm90IGV4aXN0CitMSU5FIDE6IFNFTEVDVCAqIEZST00gYm9va192 aWV3OworICAgICAgICAgICAgICAgICAgICAgIF4KK0RST1AgWE1MU0NIRU1BIHBlcnNvbl9zY2hl bWE7CitEUk9QIFhNTFNDSEVNQSBJRiBFWElTVFMgcGVyc29uX3NjaGVtYTsKK05PVElDRTogIFhN TCBzY2hlbWEgInBlcnNvbl9zY2hlbWEiIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZworRFJPUCBY TUxTQ0hFTUEgcGVyc29uX3NjaGVtYTsKK0VSUk9SOiAgWE1MIHNjaGVtYSAicGVyc29uX3NjaGVt YSIgZG9lcyBub3QgZXhpc3QKK0RST1AgWE1MU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zLnByb2R1 Y3Rfc2NoZW1hOworU0VUIFJPTEUgcmVncmVzc194bWxzY2hlbWFfdGVzdF9yb2xlOworQ1JFQVRF IFhNTFNDSEVNQSBwdWJsaWMuc2hvdWxkX2ZhaWxfc2NoZW1hIEFTICc8P3htbCB2ZXJzaW9uPSIx LjAiPz4KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2No ZW1hIj4KKyAgPHhzOmVsZW1lbnQgbmFtZT0idGVzdCIgdHlwZT0ieHM6c3RyaW5nIi8+Cis8L3hz OnNjaGVtYT4nOworUkVTRVQgUk9MRTsKK0dSQU5UIENSRUFURSBPTiBTQ0hFTUEgdGVzdF94bWxz Y2hlbWFfbnMgVE8gcmVncmVzc194bWxzY2hlbWFfdGVzdF9yb2xlOworU0VUIFJPTEUgcmVncmVz c194bWxzY2hlbWFfdGVzdF9yb2xlOworQ1JFQVRFIFhNTFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9u cy5yb2xlX3NjaGVtYSBBUyAnPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHM6c2NoZW1hIHhtbG5z OnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4czplbGVtZW50IG5h bWU9InRlc3QiIHR5cGU9InhzOnN0cmluZyIvPgorPC94czpzY2hlbWE+JzsKK1JFU0VUIFJPTEU7 CitEUk9QIFhNTFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9ucy5yb2xlX3NjaGVtYTsKK0RST1AgUk9M RSByZWdyZXNzX3htbHNjaGVtYV90ZXN0X3JvbGU7CitFUlJPUjogIHJvbGUgInJlZ3Jlc3NfeG1s c2NoZW1hX3Rlc3Rfcm9sZSIgY2Fubm90IGJlIGRyb3BwZWQgYmVjYXVzZSBzb21lIG9iamVjdHMg ZGVwZW5kIG9uIGl0CitERVRBSUw6ICBwcml2aWxlZ2VzIGZvciBzY2hlbWEgdGVzdF94bWxzY2hl bWFfbnMKK293bmVyIG9mIFhNTCBzY2hlbWEgcHVibGljLnNob3VsZF9mYWlsX3NjaGVtYQorRFJP UCBTQ0hFTUEgdGVzdF94bWxzY2hlbWFfbnMgQ0FTQ0FERTsKK0NSRUFURSBST0xFIHJlZ3Jlc3Nf eG1sc2NoZW1hX3VzZXIxOworQ1JFQVRFIFJPTEUgcmVncmVzc194bWxzY2hlbWFfdXNlcjI7CitD UkVBVEUgWE1MU0NIRU1BIHBlcm1pc3Npb25fdGVzdF9zY2hlbWEgQVMgJzw/eG1sIHZlcnNpb249 IjEuMCI/PgorPHhzOnNjaGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxT Y2hlbWEiPgorICA8eHM6ZWxlbWVudCBuYW1lPSJ0ZXN0IiB0eXBlPSJ4czpzdHJpbmciLz4KKzwv eHM6c2NoZW1hPic7CitTRVQgUk9MRSByZWdyZXNzX3htbHNjaGVtYV91c2VyMTsKK1NFTEVDVCBY TUxWQUxJREFURShET0NVTUVOVCAnPHRlc3Q+ZGF0YTwvdGVzdD4nCisgICAgICAgICAgICAgICAg ICAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBwZXJtaXNzaW9uX3Rlc3Rfc2NoZW1hKTsKK0VSUk9S OiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIFhNTCBzY2hlbWEgcGVybWlzc2lvbl90ZXN0X3NjaGVt YQorUkVTRVQgUk9MRTsKK0dSQU5UIFVTQUdFIE9OIFhNTFNDSEVNQSBwZXJtaXNzaW9uX3Rlc3Rf c2NoZW1hIFRPIHJlZ3Jlc3NfeG1sc2NoZW1hX3VzZXIxOworU0VUIFJPTEUgcmVncmVzc194bWxz Y2hlbWFfdXNlcjE7CitTRUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzx0ZXN0PmRhdGE8L3Rl c3Q+JworICAgICAgICAgICAgICAgICAgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgcGVybWlzc2lv bl90ZXN0X3NjaGVtYSk7CisgICAgeG1sdmFsaWRhdGUgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t CisgPHRlc3Q+ZGF0YTwvdGVzdD4KKygxIHJvdykKKworUkVTRVQgUk9MRTsKK1NFVCBST0xFIHJl Z3Jlc3NfeG1sc2NoZW1hX3VzZXIyOworU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UICc8dGVz dD5kYXRhPC90ZXN0PicKKyAgICAgICAgICAgICAgICAgICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1B IHBlcm1pc3Npb25fdGVzdF9zY2hlbWEpOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Ig WE1MIHNjaGVtYSBwZXJtaXNzaW9uX3Rlc3Rfc2NoZW1hCitSRVNFVCBST0xFOworR1JBTlQgVVNB R0UgT04gWE1MU0NIRU1BIHBlcm1pc3Npb25fdGVzdF9zY2hlbWEgVE8gcmVncmVzc194bWxzY2hl bWFfdXNlcjI7CitTRVQgUk9MRSByZWdyZXNzX3htbHNjaGVtYV91c2VyMjsKK1NFTEVDVCBYTUxW QUxJREFURShET0NVTUVOVCAnPHRlc3Q+ZGF0YTwvdGVzdD4nCisgICAgICAgICAgICAgICAgICAg QUNDT1JESU5HIFRPIFhNTFNDSEVNQSBwZXJtaXNzaW9uX3Rlc3Rfc2NoZW1hKTsKKyAgICB4bWx2 YWxpZGF0ZSAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyA8dGVzdD5kYXRhPC90ZXN0PgorKDEg cm93KQorCitSRVNFVCBST0xFOworUkVWT0tFIFVTQUdFIE9OIFhNTFNDSEVNQSBwZXJtaXNzaW9u X3Rlc3Rfc2NoZW1hIEZST00gcmVncmVzc194bWxzY2hlbWFfdXNlcjE7CitTRVQgUk9MRSByZWdy ZXNzX3htbHNjaGVtYV91c2VyMTsKK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAnPHRlc3Q+ ZGF0YTwvdGVzdD4nCisgICAgICAgICAgICAgICAgICAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBw ZXJtaXNzaW9uX3Rlc3Rfc2NoZW1hKTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIFhN TCBzY2hlbWEgcGVybWlzc2lvbl90ZXN0X3NjaGVtYQorUkVTRVQgUk9MRTsKK0RST1AgWE1MU0NI RU1BIHBlcm1pc3Npb25fdGVzdF9zY2hlbWE7CitEUk9QIFJPTEUgcmVncmVzc194bWxzY2hlbWFf dXNlcjE7CitEUk9QIFJPTEUgcmVncmVzc194bWxzY2hlbWFfdXNlcjI7CitDUkVBVEUgVEFCTEUg dmFsaWRhdGVkX3htbF9kYXRhICgKKyAgaWQgc2VyaWFsIFBSSU1BUlkgS0VZLAorICBkYXRhIHht bAorKTsKK0NSRUFURSBYTUxTQ0hFTUEgZGF0YV9zY2hlbWEgQVMgJzw/eG1sIHZlcnNpb249IjEu MCI/PgorPHhzOnNjaGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hl bWEiPgorICA8eHM6ZWxlbWVudCBuYW1lPSJkYXRhIj4KKyAgICA8eHM6Y29tcGxleFR5cGU+Cisg ICAgICA8eHM6c2VxdWVuY2U+CisgICAgICAgIDx4czplbGVtZW50IG5hbWU9InZhbHVlIiB0eXBl PSJ4czppbnRlZ2VyIi8+CisgICAgICA8L3hzOnNlcXVlbmNlPgorICAgIDwveHM6Y29tcGxleFR5 cGU+CisgIDwveHM6ZWxlbWVudD4KKzwveHM6c2NoZW1hPic7CitJTlNFUlQgSU5UTyB2YWxpZGF0 ZWRfeG1sX2RhdGEgKGRhdGEpCitWQUxVRVMgKFhNTFZBTElEQVRFKERPQ1VNRU5UICc8ZGF0YT48 dmFsdWU+NDI8L3ZhbHVlPjwvZGF0YT4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgZGF0YV9z Y2hlbWEpKTsKK0lOU0VSVCBJTlRPIHZhbGlkYXRlZF94bWxfZGF0YSAoZGF0YSkKK1ZBTFVFUyAo WE1MVkFMSURBVEUoRE9DVU1FTlQgJzxkYXRhPjx2YWx1ZT4xMDA8L3ZhbHVlPjwvZGF0YT4nCisg IEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgZGF0YV9zY2hlbWEpKTsKK1NFTEVDVCBpZCwgZGF0YSBG Uk9NIHZhbGlkYXRlZF94bWxfZGF0YSBPUkRFUiBCWSBpZDsKKyBpZCB8ICAgICAgICAgICAgICBk YXRhICAgICAgICAgICAgICAgCistLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICAxIHwgPGRhdGE+PHZhbHVlPjQyPC92YWx1ZT48L2RhdGE+CisgIDIgfCA8ZGF0YT48dmFs dWU+MTAwPC92YWx1ZT48L2RhdGE+CisoMiByb3dzKQorCitJTlNFUlQgSU5UTyB2YWxpZGF0ZWRf eG1sX2RhdGEgKGRhdGEpCitWQUxVRVMgKFhNTFZBTElEQVRFKERPQ1VNRU5UICc8ZGF0YT48dmFs dWU+bm90LWFuLWludDwvdmFsdWU+PC9kYXRhPicKKyAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBk YXRhX3NjaGVtYSkpOworRVJST1I6ICBYTUwgdmFsaWRhdGlvbiBmYWlsZWQKK0RST1AgVEFCTEUg dmFsaWRhdGVkX3htbF9kYXRhOworRFJPUCBYTUxTQ0hFTUEgZGF0YV9zY2hlbWE7CitEUk9QIFhN TFNDSEVNQSBzaG91bGRfZmFpbF9zY2hlbWE7CitEUk9QIFJPTEUgcmVncmVzc194bWxzY2hlbWFf dGVzdF9yb2xlOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wZ19yZWdyZXNzLmMgYi9z cmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3MuYwppbmRleCBiNWMwY2I2NDdhOC4uN2U5MDMyYjVl YzYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGdfcmVncmVzcy5jCisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvcGdfcmVncmVzcy5jCkBAIC0xMjMyLDcgKzEyMzIsNyBAQCBzcGF3bl9wcm9j ZXNzKGNvbnN0IGNoYXIgKmNtZGxpbmUpCiAJCWNoYXIJICAgKmNtZGxpbmUyOwogCiAJCWNtZGxp bmUyID0gcHNwcmludGYoImV4ZWMgJXMiLCBjbWRsaW5lKTsKLQkJZXhlY2woc2hlbGxwcm9nLCBz aGVsbHByb2csICItYyIsIGNtZGxpbmUyLCAoY2hhciAqKSBOVUxMKTsKKwkJZXhlY2xwKHNoZWxs cHJvZywgc2hlbGxwcm9nLCAiLWMiLCBjbWRsaW5lMiwgKGNoYXIgKikgTlVMTCk7CiAJCS8qIE5v dCB1c2luZyB0aGUgbm9ybWFsIGJhaWwoKSBoZXJlIGFzIHdlIHdhbnQgX2V4aXQgKi8KIAkJYmFp bF9ub2F0ZXhpdCgiY291bGQgbm90IGV4ZWMgXCIlc1wiOiAlbSIsIHNoZWxscHJvZyk7CiAJfQpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwveG1sLnNxbCBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3htbC5zcWwKaW5kZXggMGVhNGY1MDg4MzcuLmI2MGNkY2Y0NzM4IDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC94bWwuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3htbC5zcWwKQEAgLTY3OSwzICs2NzksMjc3IEBAIFNFTEVDVCB4bWx0ZXh0KCcgICcpOwogU0VM RUNUIHhtbHRleHQoJ2ZvbyBgJF8tKz89Kl4lIXwvXCgpW117fScpOwogU0VMRUNUIHhtbHRleHQo J2ZvbyAmIDwiYmFyIj4nKTsKIFNFTEVDVCB4bWx0ZXh0KCd4J3x8ICc8UD43MzwvUD4nOjp4bWwg fHwgLjQyIHx8IHRydWUgfHwgJ2onOjpjaGFyKTsKKworQ1JFQVRFIFhNTFNDSEVNQSBwZXJzb25f c2NoZW1hIEFTICc8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4czpzY2hlbWEgeG1sbnM6eHM9Imh0 dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKyAgPHhzOmVsZW1lbnQgbmFtZT0icGVy c29uIj4KKyAgICA8eHM6Y29tcGxleFR5cGU+CisgICAgICA8eHM6c2VxdWVuY2U+CisgICAgICAg IDx4czplbGVtZW50IG5hbWU9Im5hbWUiIHR5cGU9InhzOnN0cmluZyIvPgorICAgICAgICA8eHM6 ZWxlbWVudCBuYW1lPSJhZ2UiIHR5cGU9InhzOmludGVnZXIiLz4KKyAgICAgIDwveHM6c2VxdWVu Y2U+CisgICAgPC94czpjb21wbGV4VHlwZT4KKyAgPC94czplbGVtZW50PgorPC94czpzY2hlbWE+ JzsKKworCitDUkVBVEUgWE1MU0NIRU1BIElGIE5PVCBFWElTVFMgcGVyc29uX3NjaGVtYSBBUyAn PD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3Lncz Lm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4czplbGVtZW50IG5hbWU9Im90aGVyIiB0eXBlPSJ4 czpzdHJpbmciLz4KKzwveHM6c2NoZW1hPic7CisKK0NSRUFURSBYTUxTQ0hFTUEgcGVyc29uX3Nj aGVtYSBBUyAnPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRw Oi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4czplbGVtZW50IG5hbWU9ImR1cGxp Y2F0ZSIgdHlwZT0ieHM6c3RyaW5nIi8+Cis8L3hzOnNjaGVtYT4nOworCitDUkVBVEUgU0NIRU1B IHRlc3RfeG1sc2NoZW1hX25zOworCitDUkVBVEUgWE1MU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25z LnByb2R1Y3Rfc2NoZW1hIEFTICc8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzx4czpzY2hlbWEgeG1s bnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKyAgPHhzOmVsZW1lbnQg bmFtZT0icHJvZHVjdCI+CisgICAgPHhzOmNvbXBsZXhUeXBlPgorICAgICAgPHhzOnNlcXVlbmNl PgorICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJuYW1lIiB0eXBlPSJ4czpzdHJpbmciLz4KKyAg ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0icHJpY2UiIHR5cGU9InhzOmRlY2ltYWwiLz4KKyAgICAg IDwveHM6c2VxdWVuY2U+CisgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9ImlkIiB0eXBlPSJ4czpz dHJpbmciIHVzZT0icmVxdWlyZWQiLz4KKyAgICA8L3hzOmNvbXBsZXhUeXBlPgorICA8L3hzOmVs ZW1lbnQ+Cis8L3hzOnNjaGVtYT4nOworCitDUkVBVEUgWE1MU0NIRU1BIGJhZF9zY2hlbWEgQVMg Jzx0aGlzLWlzLW5vdC12YWxpZC14c2Q+JzsKKworQ1JFQVRFIFhNTFNDSEVNQSBiYWRfeG1sX3Nj aGVtYSBBUyAnbm90IGV2ZW4geG1sJzsKKworQ1JFQVRFIFhNTFNDSEVNQSBib29rX3NjaGVtYSBB UyAnPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3 LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4czplbGVtZW50IG5hbWU9ImJvb2siPgorICAg IDx4czpjb21wbGV4VHlwZT4KKyAgICAgIDx4czpzZXF1ZW5jZT4KKyAgICAgICAgPHhzOmVsZW1l bnQgbmFtZT0idGl0bGUiIHR5cGU9InhzOnN0cmluZyIvPgorICAgICAgICA8eHM6ZWxlbWVudCBu YW1lPSJhdXRob3IiIG1heE9jY3Vycz0idW5ib3VuZGVkIj4KKyAgICAgICAgICA8eHM6Y29tcGxl eFR5cGU+CisgICAgICAgICAgICA8eHM6c2VxdWVuY2U+CisgICAgICAgICAgICAgIDx4czplbGVt ZW50IG5hbWU9ImZpcnN0bmFtZSIgdHlwZT0ieHM6c3RyaW5nIi8+CisgICAgICAgICAgICAgIDx4 czplbGVtZW50IG5hbWU9Imxhc3RuYW1lIiB0eXBlPSJ4czpzdHJpbmciLz4KKyAgICAgICAgICAg IDwveHM6c2VxdWVuY2U+CisgICAgICAgICAgPC94czpjb21wbGV4VHlwZT4KKyAgICAgICAgPC94 czplbGVtZW50PgorICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJ5ZWFyIiB0eXBlPSJ4czppbnRl Z2VyIi8+CisgICAgICA8L3hzOnNlcXVlbmNlPgorICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJp c2JuIiB0eXBlPSJ4czpzdHJpbmciIHVzZT0icmVxdWlyZWQiLz4KKyAgICA8L3hzOmNvbXBsZXhU eXBlPgorICA8L3hzOmVsZW1lbnQ+Cis8L3hzOnNjaGVtYT4nOworCitTRUxFQ1QgWE1MVkFMSURB VEUoRE9DVU1FTlQgJzxwZXJzb24+PG5hbWU+Sm9objwvbmFtZT48YWdlPjMwPC9hZ2U+PC9wZXJz b24+JworICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcnNvbl9zY2hlbWEpOworCitTRUxFQ1Qg WE1MVkFMSURBVEUoRE9DVU1FTlQgJzxwcm9kdWN0IGlkPSJQMTIzIj48bmFtZT5XaWRnZXQ8L25h bWU+PHByaWNlPjkuOTk8L3ByaWNlPjwvcHJvZHVjdD4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hF TUEgdGVzdF94bWxzY2hlbWFfbnMucHJvZHVjdF9zY2hlbWEpOworCitTRUxFQ1QgWE1MVkFMSURB VEUoRE9DVU1FTlQKKyAgJzxib29rIGlzYm49Ijk3OC0wLTEyMzQ1Ni03OC05Ij4KKyAgICA8dGl0 bGU+UG9zdGdyZVNRTCBJbnRlcm5hbHM8L3RpdGxlPgorICAgIDxhdXRob3I+PGZpcnN0bmFtZT5K b2huPC9maXJzdG5hbWU+PGxhc3RuYW1lPlRpdG9yPC9sYXN0bmFtZT48L2F1dGhvcj4KKyAgICA8 YXV0aG9yPjxmaXJzdG5hbWU+SmFuZTwvZmlyc3RuYW1lPjwvYXV0aG9yPgorICAgIDx5ZWFyPjIw MjQ8L3llYXI+CisgIDwvYm9vaz4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgYm9va19zY2hl bWEpOworCitTRUxFQ1QgWE1MU0VSSUFMSVpFKERPQ1VNRU5UCisgIFhNTFZBTElEQVRFKERPQ1VN RU5UICc8cGVyc29uPjxuYW1lPkFsaWNlPC9uYW1lPjxhZ2U+MjU8L2FnZT48L3BlcnNvbj4nCisg ICAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBwZXJzb25fc2NoZW1hKSBBUyB0ZXh0KTsKKworU0VM RUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UIE5VTEwgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBwZXJz b25fc2NoZW1hKTsKKworU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UIE5VTEwgQUNDT1JESU5H IFRPIFhNTFNDSEVNQSBwZXJzb25fc2NoZW1hKSBJUyBOVUxMIEFTIGlzX251bGw7CisKK1NFTEVD VCBYTUxWQUxJREFURShET0NVTUVOVCAnPHBlcnNvbj48bmFtZT5Kb2huPC9uYW1lPjwvcGVyc29u PicKKyAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBwZXJzb25fc2NoZW1hKTsKKworU0VMRUNUIFhN TFZBTElEQVRFKERPQ1VNRU5UICc8cGVyc29uPjxuYW1lPkpvaG48L25hbWU+PGFnZT5ub3QtYS1u dW1iZXI8L2FnZT48L3BlcnNvbj4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgcGVyc29uX3Nj aGVtYSk7CisKK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAnPHByb2R1Y3Q+PG5hbWU+V2lk Z2V0PC9uYW1lPjxwcmljZT45Ljk5PC9wcmljZT48L3Byb2R1Y3Q+JworICBBQ0NPUkRJTkcgVE8g WE1MU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zLnByb2R1Y3Rfc2NoZW1hKTsKKworU0VMRUNUIFhN TFZBTElEQVRFKERPQ1VNRU5UICc8cGVyc29uPjxuYW1lPkpvaG48L25hbWU+PGFnZT4zMDwvYWdl PjxleHRyYT5kYXRhPC9leHRyYT48L3BlcnNvbj4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEg cGVyc29uX3NjaGVtYSk7CisKK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAnPG5vdHBlcnNv bj48bmFtZT5Kb2huPC9uYW1lPjxhZ2U+MzA8L2FnZT48L25vdHBlcnNvbj4nCisgIEFDQ09SRElO RyBUTyBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYSk7CisKK1NFTEVDVCBYTUxWQUxJREFURShET0NV TUVOVCAnPHRlc3Q+dmFsdWU8L3Rlc3Q+JworICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIG5vbmV4 aXN0ZW50X3NjaGVtYSk7CisKK0NSRUFURSBWSUVXIHZhbGlkYXRlZF9wZW9wbGUgQVMKKyAgU0VM RUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UIGRhdGEgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBwZXJz b25fc2NoZW1hKSBBUyB2YWxpZGF0ZWRfeG1sCisgIEZST00geG1sdGVzdCBXSEVSRSBpZCA9IDE7 CisKK1NFTEVDVCBwZ19nZXRfdmlld2RlZigndmFsaWRhdGVkX3Blb3BsZSc6OnJlZ2NsYXNzLCB0 cnVlKTsKKworRFJPUCBWSUVXIHZhbGlkYXRlZF9wZW9wbGU7CisKK0NSRUFURSBWSUVXIHZhbGlk YXRlZF9wcm9kdWN0cyBBUworICBTRUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxwcm9kdWN0 IGlkPSIxMjMiPjxuYW1lPlRlc3Q8L25hbWU+PHByaWNlPjEuOTk8L3ByaWNlPjwvcHJvZHVjdD4n CisgICAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9ucy5wcm9kdWN0X3Nj aGVtYSkgQVMgdmFsaWRhdGVkX3htbDsKKworU0VMRUNUIHBnX2dldF92aWV3ZGVmKCd2YWxpZGF0 ZWRfcHJvZHVjdHMnOjpyZWdjbGFzcywgdHJ1ZSk7CisKK0RST1AgVklFVyB2YWxpZGF0ZWRfcHJv ZHVjdHM7CisKK0FMVEVSIFhNTFNDSEVNQSBib29rX3NjaGVtYSBSRU5BTUUgVE8gbGlicmFyeV9i b29rX3NjaGVtYTsKKworU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5UICc8Ym9vayBpc2JuPSIx MjMiPjx0aXRsZT5UZXN0PC90aXRsZT48YXV0aG9yPjxmaXJzdG5hbWU+QTwvZmlyc3RuYW1lPjxs YXN0bmFtZT5CPC9sYXN0bmFtZT48L2F1dGhvcj48eWVhcj4yMDI0PC95ZWFyPjwvYm9vaz4nCisg IEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgYm9va19zY2hlbWEpOworCitTRUxFQ1QgWE1MVkFMSURB VEUoRE9DVU1FTlQgJzxib29rIGlzYm49IjEyMyI+PHRpdGxlPlRlc3Q8L3RpdGxlPjxhdXRob3I+ PGZpcnN0bmFtZT5BPC9maXJzdG5hbWU+PGxhc3RuYW1lPkI8L2xhc3RuYW1lPjwvYXV0aG9yPjx5 ZWFyPjIwMjQ8L3llYXI+PC9ib29rPicKKyAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBsaWJyYXJ5 X2Jvb2tfc2NoZW1hKTsKKworQUxURVIgWE1MU0NIRU1BIGxpYnJhcnlfYm9va19zY2hlbWEgU0VU IFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9uczsKKworU0VMRUNUIFhNTFZBTElEQVRFKERPQ1VNRU5U ICc8Ym9vayBpc2JuPSIxMjMiPjx0aXRsZT5UZXN0PC90aXRsZT48YXV0aG9yPjxmaXJzdG5hbWU+ QTwvZmlyc3RuYW1lPjxsYXN0bmFtZT5CPC9sYXN0bmFtZT48L2F1dGhvcj48eWVhcj4yMDI0PC95 ZWFyPjwvYm9vaz4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgbGlicmFyeV9ib29rX3NjaGVt YSk7CisKK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAnPGJvb2sgaXNibj0iMTIzIj48dGl0 bGU+VGVzdDwvdGl0bGU+PGF1dGhvcj48Zmlyc3RuYW1lPkE8L2ZpcnN0bmFtZT48bGFzdG5hbWU+ QjwvbGFzdG5hbWU+PC9hdXRob3I+PHllYXI+MjAyNDwveWVhcj48L2Jvb2s+JworICBBQ0NPUkRJ TkcgVE8gWE1MU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zLmxpYnJhcnlfYm9va19zY2hlbWEpOwor CitDUkVBVEUgUk9MRSByZWdyZXNzX3htbHNjaGVtYV90ZXN0X3JvbGU7CisKK0FMVEVSIFhNTFND SEVNQSB0ZXN0X3htbHNjaGVtYV9ucy5saWJyYXJ5X2Jvb2tfc2NoZW1hIE9XTkVSIFRPIHJlZ3Jl c3NfeG1sc2NoZW1hX3Rlc3Rfcm9sZTsKKworU0VMRUNUIHNjaGVtYW5hbWUsIHNjaGVtYW5hbWVz cGFjZTo6cmVnbmFtZXNwYWNlLCBzY2hlbWFvd25lcjo6cmVncm9sZQorRlJPTSBwZ194bWxzY2hl bWEKK1dIRVJFIHNjaGVtYW5hbWUgPSAnbGlicmFyeV9ib29rX3NjaGVtYSc7CisKK0NSRUFURSBW SUVXIGJvb2tfdmlldyBBUworICBTRUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxib29rIGlz Ym49IjQ1NiI+PHRpdGxlPkRlcCBUZXN0PC90aXRsZT48YXV0aG9yPjxmaXJzdG5hbWU+WDwvZmly c3RuYW1lPjxsYXN0bmFtZT5ZPC9sYXN0bmFtZT48L2F1dGhvcj48eWVhcj4yMDI1PC95ZWFyPjwv Ym9vaz4nCisgICAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSB0ZXN0X3htbHNjaGVtYV9ucy5saWJy YXJ5X2Jvb2tfc2NoZW1hKSBBUyB2YWxpZGF0ZWRfYm9vazsKKworRFJPUCBYTUxTQ0hFTUEgdGVz dF94bWxzY2hlbWFfbnMubGlicmFyeV9ib29rX3NjaGVtYTsKKworRFJPUCBYTUxTQ0hFTUEgdGVz dF94bWxzY2hlbWFfbnMubGlicmFyeV9ib29rX3NjaGVtYSBDQVNDQURFOworCitTRUxFQ1QgKiBG Uk9NIGJvb2tfdmlldzsKKworRFJPUCBYTUxTQ0hFTUEgcGVyc29uX3NjaGVtYTsKKworRFJPUCBY TUxTQ0hFTUEgSUYgRVhJU1RTIHBlcnNvbl9zY2hlbWE7CisKK0RST1AgWE1MU0NIRU1BIHBlcnNv bl9zY2hlbWE7CisKK0RST1AgWE1MU0NIRU1BIHRlc3RfeG1sc2NoZW1hX25zLnByb2R1Y3Rfc2No ZW1hOworCitTRVQgUk9MRSByZWdyZXNzX3htbHNjaGVtYV90ZXN0X3JvbGU7CisKK0NSRUFURSBY TUxTQ0hFTUEgcHVibGljLnNob3VsZF9mYWlsX3NjaGVtYSBBUyAnPD94bWwgdmVyc2lvbj0iMS4w Ij8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVt YSI+CisgIDx4czplbGVtZW50IG5hbWU9InRlc3QiIHR5cGU9InhzOnN0cmluZyIvPgorPC94czpz Y2hlbWE+JzsKKworUkVTRVQgUk9MRTsKKworR1JBTlQgQ1JFQVRFIE9OIFNDSEVNQSB0ZXN0X3ht bHNjaGVtYV9ucyBUTyByZWdyZXNzX3htbHNjaGVtYV90ZXN0X3JvbGU7CisKK1NFVCBST0xFIHJl Z3Jlc3NfeG1sc2NoZW1hX3Rlc3Rfcm9sZTsKKworQ1JFQVRFIFhNTFNDSEVNQSB0ZXN0X3htbHNj aGVtYV9ucy5yb2xlX3NjaGVtYSBBUyAnPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHM6c2NoZW1h IHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4czplbGVt ZW50IG5hbWU9InRlc3QiIHR5cGU9InhzOnN0cmluZyIvPgorPC94czpzY2hlbWE+JzsKKworUkVT RVQgUk9MRTsKKworRFJPUCBYTUxTQ0hFTUEgdGVzdF94bWxzY2hlbWFfbnMucm9sZV9zY2hlbWE7 CisKK0RST1AgUk9MRSByZWdyZXNzX3htbHNjaGVtYV90ZXN0X3JvbGU7CisKK0RST1AgU0NIRU1B IHRlc3RfeG1sc2NoZW1hX25zIENBU0NBREU7CisKK0NSRUFURSBST0xFIHJlZ3Jlc3NfeG1sc2No ZW1hX3VzZXIxOworQ1JFQVRFIFJPTEUgcmVncmVzc194bWxzY2hlbWFfdXNlcjI7CisKK0NSRUFU RSBYTUxTQ0hFTUEgcGVybWlzc2lvbl90ZXN0X3NjaGVtYSBBUyAnPD94bWwgdmVyc2lvbj0iMS4w Ij8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVt YSI+CisgIDx4czplbGVtZW50IG5hbWU9InRlc3QiIHR5cGU9InhzOnN0cmluZyIvPgorPC94czpz Y2hlbWE+JzsKKworU0VUIFJPTEUgcmVncmVzc194bWxzY2hlbWFfdXNlcjE7CitTRUxFQ1QgWE1M VkFMSURBVEUoRE9DVU1FTlQgJzx0ZXN0PmRhdGE8L3Rlc3Q+JworICAgICAgICAgICAgICAgICAg IEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgcGVybWlzc2lvbl90ZXN0X3NjaGVtYSk7CisKK1JFU0VU IFJPTEU7CisKK0dSQU5UIFVTQUdFIE9OIFhNTFNDSEVNQSBwZXJtaXNzaW9uX3Rlc3Rfc2NoZW1h IFRPIHJlZ3Jlc3NfeG1sc2NoZW1hX3VzZXIxOworCitTRVQgUk9MRSByZWdyZXNzX3htbHNjaGVt YV91c2VyMTsKK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAnPHRlc3Q+ZGF0YTwvdGVzdD4n CisgICAgICAgICAgICAgICAgICAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBwZXJtaXNzaW9uX3Rl c3Rfc2NoZW1hKTsKKworUkVTRVQgUk9MRTsKKworU0VUIFJPTEUgcmVncmVzc194bWxzY2hlbWFf dXNlcjI7CitTRUxFQ1QgWE1MVkFMSURBVEUoRE9DVU1FTlQgJzx0ZXN0PmRhdGE8L3Rlc3Q+Jwor ICAgICAgICAgICAgICAgICAgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEgcGVybWlzc2lvbl90ZXN0 X3NjaGVtYSk7CisKK1JFU0VUIFJPTEU7CisKK0dSQU5UIFVTQUdFIE9OIFhNTFNDSEVNQSBwZXJt aXNzaW9uX3Rlc3Rfc2NoZW1hIFRPIHJlZ3Jlc3NfeG1sc2NoZW1hX3VzZXIyOworCitTRVQgUk9M RSByZWdyZXNzX3htbHNjaGVtYV91c2VyMjsKK1NFTEVDVCBYTUxWQUxJREFURShET0NVTUVOVCAn PHRlc3Q+ZGF0YTwvdGVzdD4nCisgICAgICAgICAgICAgICAgICAgQUNDT1JESU5HIFRPIFhNTFND SEVNQSBwZXJtaXNzaW9uX3Rlc3Rfc2NoZW1hKTsKKworUkVTRVQgUk9MRTsKKworUkVWT0tFIFVT QUdFIE9OIFhNTFNDSEVNQSBwZXJtaXNzaW9uX3Rlc3Rfc2NoZW1hIEZST00gcmVncmVzc194bWxz Y2hlbWFfdXNlcjE7CisKK1NFVCBST0xFIHJlZ3Jlc3NfeG1sc2NoZW1hX3VzZXIxOworU0VMRUNU IFhNTFZBTElEQVRFKERPQ1VNRU5UICc8dGVzdD5kYXRhPC90ZXN0PicKKyAgICAgICAgICAgICAg ICAgICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIHBlcm1pc3Npb25fdGVzdF9zY2hlbWEpOworCitS RVNFVCBST0xFOworCitEUk9QIFhNTFNDSEVNQSBwZXJtaXNzaW9uX3Rlc3Rfc2NoZW1hOworRFJP UCBST0xFIHJlZ3Jlc3NfeG1sc2NoZW1hX3VzZXIxOworRFJPUCBST0xFIHJlZ3Jlc3NfeG1sc2No ZW1hX3VzZXIyOworCitDUkVBVEUgVEFCTEUgdmFsaWRhdGVkX3htbF9kYXRhICgKKyAgaWQgc2Vy aWFsIFBSSU1BUlkgS0VZLAorICBkYXRhIHhtbAorKTsKKworQ1JFQVRFIFhNTFNDSEVNQSBkYXRh X3NjaGVtYSBBUyAnPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8eHM6c2NoZW1hIHhtbG5zOnhzPSJo dHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+CisgIDx4czplbGVtZW50IG5hbWU9ImRh dGEiPgorICAgIDx4czpjb21wbGV4VHlwZT4KKyAgICAgIDx4czpzZXF1ZW5jZT4KKyAgICAgICAg PHhzOmVsZW1lbnQgbmFtZT0idmFsdWUiIHR5cGU9InhzOmludGVnZXIiLz4KKyAgICAgIDwveHM6 c2VxdWVuY2U+CisgICAgPC94czpjb21wbGV4VHlwZT4KKyAgPC94czplbGVtZW50PgorPC94czpz Y2hlbWE+JzsKKworSU5TRVJUIElOVE8gdmFsaWRhdGVkX3htbF9kYXRhIChkYXRhKQorVkFMVUVT IChYTUxWQUxJREFURShET0NVTUVOVCAnPGRhdGE+PHZhbHVlPjQyPC92YWx1ZT48L2RhdGE+Jwor ICBBQ0NPUkRJTkcgVE8gWE1MU0NIRU1BIGRhdGFfc2NoZW1hKSk7CisKK0lOU0VSVCBJTlRPIHZh bGlkYXRlZF94bWxfZGF0YSAoZGF0YSkKK1ZBTFVFUyAoWE1MVkFMSURBVEUoRE9DVU1FTlQgJzxk YXRhPjx2YWx1ZT4xMDA8L3ZhbHVlPjwvZGF0YT4nCisgIEFDQ09SRElORyBUTyBYTUxTQ0hFTUEg ZGF0YV9zY2hlbWEpKTsKKworU0VMRUNUIGlkLCBkYXRhIEZST00gdmFsaWRhdGVkX3htbF9kYXRh IE9SREVSIEJZIGlkOworCitJTlNFUlQgSU5UTyB2YWxpZGF0ZWRfeG1sX2RhdGEgKGRhdGEpCitW QUxVRVMgKFhNTFZBTElEQVRFKERPQ1VNRU5UICc8ZGF0YT48dmFsdWU+bm90LWFuLWludDwvdmFs dWU+PC9kYXRhPicKKyAgQUNDT1JESU5HIFRPIFhNTFNDSEVNQSBkYXRhX3NjaGVtYSkpOworCitE Uk9QIFRBQkxFIHZhbGlkYXRlZF94bWxfZGF0YTsKKworRFJPUCBYTUxTQ0hFTUEgZGF0YV9zY2hl bWE7CisKK0RST1AgWE1MU0NIRU1BIHNob3VsZF9mYWlsX3NjaGVtYTsKKworRFJPUCBST0xFIHJl Z3Jlc3NfeG1sc2NoZW1hX3Rlc3Rfcm9sZTsKLS0gCjIuNTEuMgoK --0000000000002859840648ebfe5f--