Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pFCoB-0006Pq-C9 for pgsql-hackers@arkaria.postgresql.org; Tue, 10 Jan 2023 11:28:47 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pFCoA-00020E-2n for pgsql-hackers@arkaria.postgresql.org; Tue, 10 Jan 2023 11:28:46 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pFCo9-000203-45 for pgsql-hackers@lists.postgresql.org; Tue, 10 Jan 2023 11:28:45 +0000 Received: from mail-westus2azon11011003.outbound.protection.outlook.com ([52.101.47.3] helo=CO1PR02CU001-vft-obe.outbound.protection.outlook.com) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pFCo5-0007L9-7b for pgsql-hackers@lists.postgresql.org; Tue, 10 Jan 2023 11:28:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=biwvmYxoRI6kpEVtjumn9VrBcb0pINeWXW30t5/PDTJqTd4RzviF/ofCDbMO4DOnN7KUdVvZHd5Ib3Pg3Yu5qLS0lnVA5ufPHjWYHP4jPjD0qlSlv9varOBjpWUvFtAyrVMOLU7NU8I5HfEypGEioy+Iw3UEkNlg8Znq8DxSWFoBdbVncXBwkuW/L2EvgzI+RtiNibQxsQwJuAzdX1BAqXeGMagnJXTuN0EuOImP1m9H/A7tISk+ulxOlUviVbq0FJFhfvaJmI/bDn0zVeusmZx/5CNfLJ7+Ucw3dwESHTuZ+BVfOkWejynl7MhoernT5NdajTHe3RsmRqECda3MrA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=eNJrT2R8Hg8GOdNzg1rvHiR8uvYvXlhBSXymUDlo73c=; b=XDMfE+gUIZgiuTgMLmD+ry5sQN43sk2UZKHm/xASBYNpoCOuR/Dcc6IhD6R7IXGfjh52Xng/OMvWa3AZPKIKBNDGMyfPx8SyYZ1iarahcXzVdLtcVvYQuDPfHzv+45hjoiLI6gOmGkkV8DUcPHFvYQiOkFPdHM0AUJwCZTF3ZR2XRjgWrqN9TwOV0ubiDYDJ35KB3tijRKo0aembfIxxaYSXkngVJhqFXo1dg/JGBruDpsFPuVv6Aarb0ztnXlWoRBCPDsnFtZVr/3AHhZZ9i4P5tRM2vUE3KJ326SAOyxl3UaLf48fQ6YTxEpzjVrAElt1PdMp7uA9XNDFdcor8BA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vmware.com; dmarc=pass action=none header.from=vmware.com; dkim=pass header.d=vmware.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vmware.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eNJrT2R8Hg8GOdNzg1rvHiR8uvYvXlhBSXymUDlo73c=; b=dLjugYjskAknGp4RhUnN8NQr6Qk3Mcb2EhGHviKYrdgZ3GCXotDKjMe2TBpzlZc5gJcLeHs/l9DHbF0aPpGoiy66TgIcIC/HgLFNHD+7/YOIb5rQWpSvuF8mZn2gR9YtFj735HWq1Ltn38dpx21KhHUGlpYPtiTl1rrX/m/gz0E= Received: from MN2PR05MB6879.namprd05.prod.outlook.com (2603:10b6:208:193::17) by MW4PR05MB8763.namprd05.prod.outlook.com (2603:10b6:303:12b::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18; Tue, 10 Jan 2023 11:28:36 +0000 Received: from MN2PR05MB6879.namprd05.prod.outlook.com ([fe80::f812:65ba:a174:945c]) by MN2PR05MB6879.namprd05.prod.outlook.com ([fe80::f812:65ba:a174:945c%7]) with mapi id 15.20.5986.018; Tue, 10 Jan 2023 11:28:36 +0000 From: Hari krishna Maddileti To: "pgsql-hackers@lists.postgresql.org" , "pgsql-hackers@lists.postgresql.org" CC: Bruce Momjian Subject: Re: Support for dumping extended statistics Thread-Topic: Support for dumping extended statistics Thread-Index: AQHZITJBgP44nSWfwUKD8vMaewyHAa6SQEaAgAVHryI= Date: Tue, 10 Jan 2023 11:28:36 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-IN X-MS-Has-Attach: yes X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vmware.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN2PR05MB6879:EE_|MW4PR05MB8763:EE_ x-ms-office365-filtering-correlation-id: d9efb353-8291-4f15-918f-08daf2fdd098 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: vh+patZfkxd+sXXbHDPyMvfI+DBNKItDm/FrVZYL0mopyyxzIvsgl1cDnekRGzQYqo9cDpGYkgzDFON/h7mUT9eG+1JTQTdgU5XYB1qcgXEOI+exGgAIxf44tcqsBlpb2Z7O1RL/n83R8NyzP7gVlmLpfQxpRCivZp+Tn8k3AukwvkTZ6yZDWKslyobIMhxFoPkyzahKkILNLulfZ5nzPzZgx5G5ePWaDf6e3tGh85uSeJSTq/nQqkVr8ZC24pb8Zf62XsDlrg5hVcZJUoNAzrimPizkhbEAWxZ4NaK/BuMtyiP/sJ7QK+lDJ3ZDiQocXktOkN/aWZmlRxzhhTIP/tmJ1I1NM/EJu7TV3kImFKBy939AEgEyPQfCmumVGzsqkszM4t7r8SIEU1DoyhBfV+HQuQJTZ6AxXjb+38PvDs89lYHxThRKiA4mm3oWP5bpL02ylT7eUytyr2aCzwX/4KHhWzfEVMT55ZGDc0KJyRK/NNoR8wke2Jk063rAj9A5yvFajruJXc9a2cu0WvOyg5RZm9ZdnQnJqO3RqsaoxiL6eNc/UFAdRvk6fcLPLKfmw5gi06KnY6+18CruOvBz5ZzFNIU7hF5QA552J2Ld+y3oJcCMKSNvI7MEJ++s9iVUjnFZixMQFKfF1RMEcwEi5frUYa4FBG6EKqIJBz3RGq+HBT/fDHHoyMwDd0EmJfBXHJ9Ily/x5rtPyYqlx1/wi5u+zKOsBlNON+L/DeN9Q7AZTh11aXBMP3a24hJPTwpF8HE8wTKtXsMfV8Sk7307Bt8FC6GFykOcP6TwhlIb44o= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR05MB6879.namprd05.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(346002)(396003)(136003)(366004)(376002)(39860400002)(451199015)(6506007)(38100700002)(122000001)(99936003)(53546011)(166002)(2906002)(478600001)(966005)(33656002)(26005)(9686003)(7696005)(186003)(71200400001)(5660300002)(316002)(83380400001)(8936002)(38070700005)(52536014)(55016003)(86362001)(41300700001)(45080400002)(64756008)(8676002)(110136005)(91956017)(66946007)(76116006)(66556008)(66446008)(66476007)(4326008);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?CtjF6WNedcZfLfqPT30Co1MyHEJfOD3WnRrVbVjdVnwkAzcz3Mj9sIqLbowF?= =?us-ascii?Q?X2ATpVEoQbeHW1czZ3prjq72p3kaEUCbmuEUA0DVHexWDsps1RnkW0QDyN7h?= =?us-ascii?Q?xkaCBT0vElNMLDCq2PXsOm3ttkfaRc0GCvagmegnR2l98J3qg0cM/MYq/WC0?= =?us-ascii?Q?x9JSDPTf5iDQPxnHTqxpH1dBPOLOohti1irWkO93EpfHAu90W+ihtGP5Z+6G?= =?us-ascii?Q?A4cIN2lKwFDcBdJjPSNJwkjjX3jeh9cZqssY223OnmhhYTGgKd1BPlyLUA8b?= =?us-ascii?Q?c5vxXI74sPWvtN+SIbCJjX2HZxwmzM6v6FveaSjJj2NPJOPz/BfOYt7y+UG3?= =?us-ascii?Q?tYH30XWqyi951fSLTFFwo9KWhyD92zt00PU5pUyfb5YIrgg5duQ8y0++Udvl?= =?us-ascii?Q?8h46lo1QvrwOrMKlUvLUVxeySt1NF5zSKWehxxqiMCgVSLuho+noM78VDQhK?= =?us-ascii?Q?YsBYINBlzOWtNOXrW3eMXBSnQ26vOd4Udbtpp8tFWY1GpdUdiLMLJHUXzIGa?= =?us-ascii?Q?r8+w0jzufU9zEedFmaukQlH+7ozOKviqpcME1H875v3wdy7j6L/BY/feVau1?= =?us-ascii?Q?phOYOfOV9462WsG5pBG42kvkqWmFyrW4AlxSuhCKoTzkKuWgTI3/2wRXHPpm?= =?us-ascii?Q?ndZiNa9DUdWMn6J6UlpOINP74MGExFXogBtRKP192AoOC2jIF2Ozf3bnCxSV?= =?us-ascii?Q?mhKk1lGBUbD6R7EKNsUl96MODGJ03b9GPT6rRDxolmfpiP7G5TwkGcYXHhZn?= =?us-ascii?Q?QjUnGsl034DMuD+HPlPjlrYojsxSyt7zXDV4dioxy+5L7/Op9jr8sm7sSn4m?= =?us-ascii?Q?idlINq9hKOwVEIIk3TBElPa6eQArT4jLqpAFAyPghVZ96vl4+eJSYDtpSQWF?= =?us-ascii?Q?iZ0ZpaxMLdj6pnat7tQl2+Q8Kud3cDGzXDymFBT1GRa633SlHeqPbNcdHyot?= =?us-ascii?Q?lIvcR/3cKzRP5V/TS5A0pzCz3Z0vMuTDHIEyZSQ3ZntysUZ1T6EYZcw1otal?= =?us-ascii?Q?J3/9mGNnHu9IY45H3lyv7w07nj7TdVa3Z6jOJux0fMiht/ePM3RwHk/kioON?= =?us-ascii?Q?S3oF8Kv28ade9k2lcERikTH+fNPrQWMnkmo8i+tGewnof6WUqwJ1kBtsyCEt?= =?us-ascii?Q?qmb1uAItuDlv3bUSFbYoKBoH4/FWgcSSuIAhFMTACQzRHGqfrIUGQlUywVkn?= =?us-ascii?Q?9Ny2+hRWJ4k+Ry+ulv71+ILOwJBPNanOvC19T4OwJ4R/s1ug/smGCYFweHTY?= =?us-ascii?Q?WaiT8HN7iFbLc4mTRCkXuB4R4ODCgovEdSEJF1LVwVA89Y+IqW9fnNp71BcI?= =?us-ascii?Q?WxsjJ5M/ykttM4uOdH/C1QOjLfrmliTIxHq2EUvH/99R3QVht0P2OdsK0rBV?= =?us-ascii?Q?1vRIQMuicwE5fld+85t041B9zDT6d02SNVhpajpCeu0bZJG93rxUmxo9/pUW?= =?us-ascii?Q?kjavtcrtfRV8pCJiFKhdQAWg0dOj9PaYw7ef2bZS/i8SyplGzWnQMvCSAwJG?= =?us-ascii?Q?xHmLxkTigeUDkz9yWh+WUZd0ncUjmePxs7QJApmiSn+SOlO3Tnvu1qCDFe5a?= =?us-ascii?Q?GlmMyPpJwPccyzjsWGZY1ZA8XOq6rf90ssQA9WCTJsNI7RBCI78IFWwLkig3?= =?us-ascii?Q?MQ=3D=3D?= Content-Type: multipart/mixed; boundary="_004_MN2PR05MB687981D756160DF3EBA38B8AB6FF9MN2PR05MB6879namp_" MIME-Version: 1.0 X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR05MB6879.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d9efb353-8291-4f15-918f-08daf2fdd098 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Jan 2023 11:28:36.6028 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Mkj0ENCJ7t3VU9mD8ypdgZVpZo4y3tCbwt5rC5jMidkIj8lVJjdTtK7IUnrAGMhbhMfV5Ph4csOwzlpYFzAvWA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR05MB8763 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_004_MN2PR05MB687981D756160DF3EBA38B8AB6FF9MN2PR05MB6879namp_ Content-Type: multipart/alternative; boundary="_000_MN2PR05MB687981D756160DF3EBA38B8AB6FF9MN2PR05MB6879namp_" --_000_MN2PR05MB687981D756160DF3EBA38B8AB6FF9MN2PR05MB6879namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Thanks Team for showing interest. Please find the attached patch, which uses the same approach as mentioned i= n previous email to implement input functions to parse pg_distinct, pg_depe= ndency and pg_mcv_list strings. Regards, Hari From: Bruce Momjian Date: Saturday, 7 January 2023 at 8:10 AM To: Hari krishna Maddileti Cc: PostgreSQL Hackers Subject: Re: Support for dumping extended statistics !! External Email On Thu, Jan 5, 2023 at 06:29:03PM +0000, Hari krishna Maddileti wrote: > Hi Team, > In order to restore dumped extended statistics (stxdndistinct, > stxddependencies, stxdmcv) we need to provide input functions to parse > pg_distinct/pg_dependency/pg_mcv_list strings. > > Today we get the ERROR "cannot accept a value of type pg_ndistinct/ > pg_dependencies/pg_mcv_list" when we try to do an insert of any type. > > Approch tried: > > - Using yacc grammar file (statistics_gram.y) to parse the input string t= o its > internal format for the types pg_distinct and pg_dependencies > > - We are just calling byteain() for serialized input text of type pg_mcv_= list. > > Currently the changes are working locally, I would like to push the comm= it > changes to upstream if there any usecase for postgres. Would like to kn= ow if > there any interest from postgres side. There is certainly interest in allowing the optimizer statistics to be dumped and reloaded. This could be used by pg_restore and pg_upgrade. -- Bruce Momjian https://nam04.safelinks.protecti= on.outlook.com/?url=3Dhttps%3A%2F%2Fmomjian.us%2F&data=3D05%7C01%7Chmaddile= ti%40vmware.com%7C3eec45fa323646114b1b08daf0587937%7Cb39138ca3cee4b4aa4d6cd= 83d9dd62f0%7C0%7C0%7C638086560027653219%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4= wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sda= ta=3DNGidyq8AYdqqAAjirIud%2FE2SD%2Bw4MWmdyFwIu2Bos4A%3D&reserved=3D0 EDB https://nam04.safelinks.protecti= on.outlook.com/?url=3Dhttps%3A%2F%2Fenterprisedb.com%2F&data=3D05%7C01%7Chm= addileti%40vmware.com%7C3eec45fa323646114b1b08daf0587937%7Cb39138ca3cee4b4a= a4d6cd83d9dd62f0%7C0%7C0%7C638086560027653219%7CUnknown%7CTWFpbGZsb3d8eyJWI= joiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%= 7C&sdata=3DXUv87gO4KT3W%2FJh17szMBUryZF5kB2hhkY8DD8HeAjE%3D&reserved=3D0 Embrace your flaws. They make you human, rather than perfect, which you will never be. !! External Email: This email originated from outside of the organization. = Do not click links or open attachments unless you recognize the sender. --_000_MN2PR05MB687981D756160DF3EBA38B8AB6FF9MN2PR05MB6879namp_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Thanks Te= am for showing interest.

&nbs= p;

Please fi= nd the attached patch, which uses the same approach as mentioned in previou= s email to implement input functions to parse pg_distinct, pg_dependency an= d pg_mcv_list strings.

&nbs= p;

&nbs= p;

Regards,<= o:p>

Hari=

From: Bruce Momjian <b= ruce@momjian.us>
Date: Saturday, 7 January 2023 at 8:10 AM
To: Hari krishna Maddileti <hmaddileti@vmware.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org> Subject: Re: Support for dumping extended statistics

!! External Email

On Thu, Jan  5, 2023 at 06:29:03PM +0000, Hari krishna Maddileti wrote= :
> Hi Team,
> In order to restore dumped extended statistics (stxdndistinct,
> stxddependencies, stxdmcv) we need to provide input functions to parse=
> pg_distinct/pg_dependency/pg_mcv_list strings.
>
> Today we get the ERROR "cannot accept a value of type pg_ndistinc= t/
> pg_dependencies/pg_mcv_list" when we try to do an insert of any t= ype.
>
> Approch tried:
>
> - Using yacc grammar file (statistics_gram.y) to parse the input strin= g to its
> internal format for the types pg_distinct and pg_dependencies
>
> - We are just calling byteain() for serialized input text of type pg_m= cv_list.
>
> Currently the changes are working locally,  I would like to push = the commit
> changes to upstream if there any usecase for postgres.   Wou= ld like to know if
> there any interest from postgres side.

There is certainly interest in allowing the optimizer statistics to be
dumped and reloaded.  This could be used by pg_restore and pg_upgrade.=

--
  Bruce Momjian  <bruce@momjian.us>    =     https://nam04.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fmomjian= .us%2F&data=3D05%7C01%7Chmaddileti%40vmware.com%7C3eec45fa323646114b1b0= 8daf0587937%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C638086560027653219= %7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haW= wiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=3DNGidyq8AYdqqAAjirIud%2FE2SD%2B= w4MWmdyFwIu2Bos4A%3D&reserved=3D0
  EDB           = ;            &n= bsp;            = ;  https://nam04.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fenterpr= isedb.com%2F&data=3D05%7C01%7Chmaddileti%40vmware.com%7C3eec45fa3236461= 14b1b08daf0587937%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C638086560027= 653219%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6= Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=3DXUv87gO4KT3W%2FJh17szMBU= ryZF5kB2hhkY8DD8HeAjE%3D&reserved=3D0

Embrace your flaws.  They make you human, rather than perfect,
which you will never be.

!! External Email: This email originated from outside of the organization. = Do not click links or open attachments unless you recognize the sender.

--_000_MN2PR05MB687981D756160DF3EBA38B8AB6FF9MN2PR05MB6879namp_-- --_004_MN2PR05MB687981D756160DF3EBA38B8AB6FF9MN2PR05MB6879namp_ Content-Type: application/octet-stream; name="v13-0001-Implement-input-functions-for-extended-statistic.patch" Content-Description: v13-0001-Implement-input-functions-for-extended-statistic.patch Content-Disposition: attachment; filename="v13-0001-Implement-input-functions-for-extended-statistic.patch"; size=34290; creation-date="Tue, 10 Jan 2023 11:20:01 GMT"; modification-date="Tue, 10 Jan 2023 11:20:01 GMT" Content-Transfer-Encoding: base64 RnJvbSA0N2VkZGM3OGMyNjM1OTBlN2E3Y2U3ZjAwMmVjMTFiZGRiYTQzYTU0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBoYXJpIGtyaXNobmEgPGhtYWRkaWxldGlAdm13YXJlLmNvbT4K RGF0ZTogVHVlLCAxMCBKYW4gMjAyMyAxNTozNTozOCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjEz XSBJbXBsZW1lbnQgaW5wdXQgZnVuY3Rpb25zIGZvciBleHRlbmRlZCBzdGF0aXN0aWNzIHR5cGVz CgpJbiBvcmRlciByZXN0b3JlIGEgZHVtcGVkIGV4dGVuZGVkIHN0YXRpc3RpY3MgKHN0eGRuZGlz dGluY3QsIHN0eGRkZXBlbmRlbmNpZXMsIHN0eGRtY3YpIHdlIG5lZWQgdG8gcHJvdmlkZSBpbnB1 dCBmdW5jdGlvbnMgdG8gcGFyc2UgcGdfZGlzdGluY3QvcGdfZGVwZW5kZW5jeS9wZ19tY3ZfbGlz dCBzdHJpbmdzLgoKVG9kYXkgd2UgZ2V0IHRoZSBFUlJPUiAiY2Fubm90IGFjY2VwdCBhIHZhbHVl IG9mIHR5cGUgcGdfbmRpc3RpbmN0L3BnX2RlcGVuZGVuY2llcy9wZ19tY3ZfbGlzdCIgd2hlbiB3 ZSB0cnkgdG8gZG8gYW4gaW5zZXJ0IG9mIGFueSB0eXBlLgoKQXBwcm9hY2ggOgotIFVzaW5nIHlh Y2MgZ3JhbW1hciBmaWxlIChzdGF0aXN0aWNzX2dyYW0ueSkgdG8gcGFyc2UgdGhlIGlucHV0IHN0 cmluZyB0byBpdHMgaW50ZXJuYWwgZm9ybWF0IGZvciB0aGUgdHlwZXMgcGdfZGlzdGluY3QgYW5k IHBnX2RlcGVuZGVuY2llcwotIFdlIGFyZSBqdXN0IGNhbGxpbmcgYnl0ZWFpbigpIGZvciBzZXJp YWxpemVkIGlucHV0IHRleHQgb2YgdHlwZSBwZ19tY3ZfbGlzdC4KLSBBZGQgcmVncmVzcyB0ZXN0 Y2FzZXMgZm9yIGludHB1dCAgZnVuY3Rpb25zIHBnX2RlcGVuZGVuY2llc19pbiBhbmQgcGdfbmRp c3RpbmN0X2luCgpVc2VjYXNlOgoJLSBIZWxwcyBmb3IgcmVwcm9kdWNpbmcgY29tcGxleCBjdXN0 b21lciBpc3N1ZXMgbG9jYWxseQoJLSBkdW1wIGFuZCByZXN0b3JlIHVzaW5nIHBnX3VwZ3JhZGUg YW5kIHBnX3Jlc3RvcmUKCkNvLWF1dGhvcmVkLWJ5OiBEYXZpZCBLaW11cmEgZGtpbXVyYUB2bXdh cmUuY29tCi0tLQogc3JjL2JhY2tlbmQvc3RhdGlzdGljcy9NYWtlZmlsZSAgICAgICAgICAgICAg IHwgICA1ICstCiBzcmMvYmFja2VuZC9zdGF0aXN0aWNzL2RlcGVuZGVuY2llcy5jICAgICAgICAg fCAgMjggKy0KIHNyYy9iYWNrZW5kL3N0YXRpc3RpY3MvbWN2LmMgICAgICAgICAgICAgICAgICB8 ICAxNCArLQogc3JjL2JhY2tlbmQvc3RhdGlzdGljcy9tdmRpc3RpbmN0LmMgICAgICAgICAgIHwg IDI1ICstCiBzcmMvYmFja2VuZC9zdGF0aXN0aWNzL3N0YXRpc3RpY3NfZ3JhbS55ICAgICAgfCAy MTkgKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL3N0YXRpc3RpY3Mvc3RhdGlzdGljc19zY2Fu bmVyLmwgICB8IDExOCArKysrKysrKwogLi4uL3N0YXRpc3RpY3MvZXh0ZW5kZWRfc3RhdHNfaW50 ZXJuYWwuaCAgICAgIHwgIDEzICsKIHNyYy9pbmNsdWRlL3N0YXRpc3RpY3Mvc3RhdGlzdGljcy5o ICAgICAgICAgICB8ICAgNCArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N0YXRzX2V4dC5v dXQgICAgICAgfCAyNzcgKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9z dGF0c19leHQuc3FsICAgICAgICAgICAgfCAgOTggKysrKysrKwogMTAgZmlsZXMgY2hhbmdlZCwg NzcxIGluc2VydGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Yy9iYWNrZW5kL3N0YXRpc3RpY3Mvc3RhdGlzdGljc19ncmFtLnkKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmMvYmFja2VuZC9zdGF0aXN0aWNzL3N0YXRpc3RpY3Nfc2Nhbm5lci5sCgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvc3RhdGlzdGljcy9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL3N0YXRpc3Rp Y3MvTWFrZWZpbGUKaW5kZXggODljZjhjMjc5Ny4uY2Q0YmIzNzczNCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvc3RhdGlzdGljcy9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC9zdGF0aXN0aWNz L01ha2VmaWxlCkBAIC0xNiw2ICsxNiw5IEBAIE9CSlMgPSBcCiAJZGVwZW5kZW5jaWVzLm8gXAog CWV4dGVuZGVkX3N0YXRzLm8gXAogCW1jdi5vIFwKLQltdmRpc3RpbmN0Lm8KKwltdmRpc3RpbmN0 Lm8gXAorCXN0YXRpc3RpY3NfZ3JhbS5vCisKK3N0YXRpc3RpY3NfZ3JhbS5vOiBzdGF0aXN0aWNz X3NjYW5uZXIuYwogCiBpbmNsdWRlICQodG9wX3NyY2Rpcikvc3JjL2JhY2tlbmQvY29tbW9uLm1r CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdGF0aXN0aWNzL2RlcGVuZGVuY2llcy5jIGIvc3Jj L2JhY2tlbmQvc3RhdGlzdGljcy9kZXBlbmRlbmNpZXMuYwppbmRleCBlNmUyODM1MzQ1Li4yYmNj ODZiZmQyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdGF0aXN0aWNzL2RlcGVuZGVuY2llcy5j CisrKyBiL3NyYy9iYWNrZW5kL3N0YXRpc3RpY3MvZGVwZW5kZW5jaWVzLmMKQEAgLTg4LDYgKzg4 LDcgQEAgc3RhdGljIFNlbGVjdGl2aXR5IGNsYXVzZWxpc3RfYXBwbHlfZGVwZW5kZW5jaWVzKFBs YW5uZXJJbmZvICpyb290LCBMaXN0ICpjbGF1c2UKIAkJCQkJCQkJCQkJCSBpbnQgbmRlcGVuZGVu Y2llcywKIAkJCQkJCQkJCQkJCSBBdHRyTnVtYmVyICpsaXN0X2F0dG51bXMsCiAJCQkJCQkJCQkJ CQkgQml0bWFwc2V0ICoqZXN0aW1hdGVkY2xhdXNlcyk7CitleHRlcm4gdm9pZCBzdGF0aXN0aWNz X3NjYW5uZXJfaW5pdChjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcpOwogCiBzdGF0aWMgdm9pZAog Z2VuZXJhdGVfZGVwZW5kZW5jaWVzX3JlY3Vyc2UoRGVwZW5kZW5jeUdlbmVyYXRvciBzdGF0ZSwg aW50IGluZGV4LApAQCAtNjQ4LDIxICs2NDksMjYgQEAgc3RhdGV4dF9kZXBlbmRlbmNpZXNfbG9h ZChPaWQgbXZvaWQsIGJvb2wgaW5oKQogLyoKICAqIHBnX2RlcGVuZGVuY2llc19pbgkJLSBpbnB1 dCByb3V0aW5lIGZvciB0eXBlIHBnX2RlcGVuZGVuY2llcy4KICAqCi0gKiBwZ19kZXBlbmRlbmNp ZXMgaXMgcmVhbCBlbm91Z2ggdG8gYmUgYSB0YWJsZSBjb2x1bW4sIGJ1dCBpdCBoYXMgbm8gb3Bl cmF0aW9ucwotICogb2YgaXRzIG93biwgYW5kIGRpc2FsbG93cyBpbnB1dCB0b28KKyAqIGNvbnZl cnRzIHRoZSBkZXBlbmRlbmNpZXMgZnJvbSB0aGUgZXh0ZXJuYWwgZm9ybWF0IGluICJzdHJpbmci IHRvIGl0cworICogaW50ZXJuYWwgZm9ybWF0LgogICovCiBEYXR1bQogcGdfZGVwZW5kZW5jaWVz X2luKFBHX0ZVTkNUSU9OX0FSR1MpCiB7Ci0JLyoKLQkgKiBwZ19ub2RlX2xpc3Qgc3RvcmVzIHRo ZSBkYXRhIGluIGJpbmFyeSBmb3JtIGFuZCBwYXJzaW5nIHRleHQgaW5wdXQgaXMKLQkgKiBub3Qg bmVlZGVkLCBzbyBkaXNhbGxvdyB0aGlzLgotCSAqLwotCWVyZXBvcnQoRVJST1IsCi0JCQkoZXJy Y29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkgZXJybXNnKCJjYW5ub3Qg YWNjZXB0IGEgdmFsdWUgb2YgdHlwZSAlcyIsICJwZ19kZXBlbmRlbmNpZXMiKSkpOwotCi0JUEdf UkVUVVJOX1ZPSUQoKTsJCQkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCisJY2hhcgkgICAqc3Ry ID0gUEdfR0VUQVJHX0NTVFJJTkcoMCk7CisJTVZEZXBlbmRlbmNpZXMgKm12ZGVwZW5kZW5jaWVz OworCWludAkJCXBhcnNlX3JjOworCisJc3RhdGlzdGljc19zY2FubmVyX2luaXQoc3RyKTsKKwlw YXJzZV9yYyA9IHN0YXRpc3RpY195eXBhcnNlKCk7CisJaWYgKHBhcnNlX3JjICE9IDApCisJCWVy ZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5U QVRJT04pLAorCQkJCSBlcnJtc2coImZhaWxlZCB0byBwYXJzZSBhIHZhbHVlIG9mIHR5cGUgJXMi LCAicGdfZGVwZW5kZW5jaWVzIikpKTsKKwlzdGF0aXN0aWNfc2Nhbm5lcl9maW5pc2goKTsKKwlt dmRlcGVuZGVuY2llcyA9IG12ZGVwZW5kZW5jaWVzX3BhcnNlX3Jlc3VsdDsKKworCVBHX1JFVFVS Tl9NVk5EaXN0aW5jdF9QKHN0YXRleHRfZGVwZW5kZW5jaWVzX3NlcmlhbGl6ZShtdmRlcGVuZGVu Y2llcykpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RhdGlzdGljcy9tY3Yu YyBiL3NyYy9iYWNrZW5kL3N0YXRpc3RpY3MvbWN2LmMKaW5kZXggMmQyYTg3ZDNhNi4uNDUyYTc2 MDY4MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RhdGlzdGljcy9tY3YuYworKysgYi9zcmMv YmFja2VuZC9zdGF0aXN0aWNzL21jdi5jCkBAIC0xNDY5LDIxICsxNDY5LDEzIEBAIHBnX3N0YXRz X2V4dF9tY3ZsaXN0X2l0ZW1zKFBHX0ZVTkNUSU9OX0FSR1MpCiAvKgogICogcGdfbWN2X2xpc3Rf aW4JCS0gaW5wdXQgcm91dGluZSBmb3IgdHlwZSBwZ19tY3ZfbGlzdC4KICAqCi0gKiBwZ19tY3Zf bGlzdCBpcyByZWFsIGVub3VnaCB0byBiZSBhIHRhYmxlIGNvbHVtbiwgYnV0IGl0IGhhcyBubyBv cGVyYXRpb25zCi0gKiBvZiBpdHMgb3duLCBhbmQgZGlzYWxsb3dzIGlucHV0IHRvbworICogY29u dmVydHMgc2VyaWFsaXplZCB0ZXh0IE1DViBsaXN0cyBpbnRvIGEgYnl0ZSB2YWx1ZXMgYnkgc2lt cGx5CisgKiBjYWxsaW5nIGJ5ZWFpbigpLgogICovCiBEYXR1bQogcGdfbWN2X2xpc3RfaW4oUEdf RlVOQ1RJT05fQVJHUykKIHsKLQkvKgotCSAqIHBnX21jdl9saXN0IHN0b3JlcyB0aGUgZGF0YSBp biBiaW5hcnkgZm9ybSBhbmQgcGFyc2luZyB0ZXh0IGlucHV0IGlzCi0JICogbm90IG5lZWRlZCwg c28gZGlzYWxsb3cgdGhpcy4KLQkgKi8KLQllcmVwb3J0KEVSUk9SLAotCQkJKGVycmNvZGUoRVJS Q09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJIGVycm1zZygiY2Fubm90IGFjY2VwdCBh IHZhbHVlIG9mIHR5cGUgJXMiLCAicGdfbWN2X2xpc3QiKSkpOwotCi0JUEdfUkVUVVJOX1ZPSUQo KTsJCQkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCisJUEdfUkVUVVJOX01DVkxpc3RfUChieXRl YWluKGZjaW5mbykpOwogfQogCiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0YXRpc3RpY3Mv bXZkaXN0aW5jdC5jIGIvc3JjL2JhY2tlbmQvc3RhdGlzdGljcy9tdmRpc3RpbmN0LmMKaW5kZXgg MTMzMDFhMzE1Ny4uMDU0OGZkYTg1YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RhdGlzdGlj cy9tdmRpc3RpbmN0LmMKKysrIGIvc3JjL2JhY2tlbmQvc3RhdGlzdGljcy9tdmRpc3RpbmN0LmMK QEAgLTQyLDYgKzQyLDggQEAgc3RhdGljIGRvdWJsZSBlc3RpbWF0ZV9uZGlzdGluY3QoZG91Ymxl IHRvdGFscm93cywgaW50IG51bXJvd3MsIGludCBkLCBpbnQgZjEpOwogc3RhdGljIGludAluX2No b29zZV9rKGludCBuLCBpbnQgayk7CiBzdGF0aWMgaW50CW51bV9jb21iaW5hdGlvbnMoaW50IG4p OwogCitleHRlcm4gdm9pZCBzdGF0aXN0aWNzX3NjYW5uZXJfaW5pdChjb25zdCBjaGFyICpxdWVy eV9zdHJpbmcpOworCiAvKiBzaXplIG9mIHRoZSBzdHJ1Y3QgaGVhZGVyIGZpZWxkcyAobWFnaWMs IHR5cGUsIG5pdGVtcykgKi8KICNkZWZpbmUgU2l6ZU9mSGVhZGVyCQkoMyAqIHNpemVvZih1aW50 MzIpKQogCkBAIC0zMzMsMTcgKzMzNSwyNiBAQCBzdGF0ZXh0X25kaXN0aW5jdF9kZXNlcmlhbGl6 ZShieXRlYSAqZGF0YSkKICAqIHBnX25kaXN0aW5jdF9pbgogICoJCWlucHV0IHJvdXRpbmUgZm9y IHR5cGUgcGdfbmRpc3RpbmN0CiAgKgotICogcGdfbmRpc3RpbmN0IGlzIHJlYWwgZW5vdWdoIHRv IGJlIGEgdGFibGUgY29sdW1uLCBidXQgaXQgaGFzIG5vCi0gKiBvcGVyYXRpb25zIG9mIGl0cyBv d24sIGFuZCBkaXNhbGxvd3MgaW5wdXQgKGp1c3QgbGlrZSBwZ19ub2RlX3RyZWUpLgorICogY29u dmVydHMgdGhlIGRpc3RpbmN0IGZyb20gdGhlIGV4dGVybmFsIGZvcm1hdCBpbiAic3RyaW5nIiB0 byBpdHMgaW50ZXJuYWwKKyAqIGZvcm1hdC4KICAqLwogRGF0dW0KIHBnX25kaXN0aW5jdF9pbihQ R19GVU5DVElPTl9BUkdTKQogewotCWVyZXBvcnQoRVJST1IsCi0JCQkoZXJyY29kZShFUlJDT0RF X0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkgZXJybXNnKCJjYW5ub3QgYWNjZXB0IGEgdmFs dWUgb2YgdHlwZSAlcyIsICJwZ19uZGlzdGluY3QiKSkpOwotCi0JUEdfUkVUVVJOX1ZPSUQoKTsJ CQkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCisJY2hhcgkgICAqc3RyID0gUEdfR0VUQVJHX0NT VFJJTkcoMCk7CisJTVZORGlzdGluY3QgKm12bmRpc3RpbmN0OworCWludAkJCXBhcnNlX3JjOwor CisJc3RhdGlzdGljc19zY2FubmVyX2luaXQoc3RyKTsKKwlwYXJzZV9yYyA9IHN0YXRpc3RpY195 eXBhcnNlKCk7CisJaWYgKHBhcnNlX3JjICE9IDApCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9JTlZBTElEX1RFWFRfUkVQUkVTRU5UQVRJT04pLAorCQkJCSBlcnJtc2co ImZhaWxlZCB0byBwYXJzZSBhIHZhbHVlIG9mIHR5cGUgJXMiLCAicGdfbmRpc3RpbmN0IikpKTsK KwlzdGF0aXN0aWNfc2Nhbm5lcl9maW5pc2goKTsKKwltdm5kaXN0aW5jdCA9IG12bmRpc3RpbmN0 X3BhcnNlX3Jlc3VsdDsKKworCVBHX1JFVFVSTl9NVk5EaXN0aW5jdF9QKHN0YXRleHRfbmRpc3Rp bmN0X3NlcmlhbGl6ZShtdm5kaXN0aW5jdCkpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvc3RhdGlzdGljcy9zdGF0aXN0aWNzX2dyYW0ueSBiL3NyYy9iYWNrZW5kL3N0YXRpc3Rp Y3Mvc3RhdGlzdGljc19ncmFtLnkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MC4uMDIyZmJhNmNhOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNrZW5kL3N0YXRpc3RpY3Mv c3RhdGlzdGljc19ncmFtLnkKQEAgLTAsMCArMSwyMTkgQEAKKyUKK3sKKyNpbmNsdWRlICJwb3N0 Z3Jlcy5oIgorCisjaW5jbHVkZSAic3RhdGlzdGljcy9leHRlbmRlZF9zdGF0c19pbnRlcm5hbC5o IgorI2luY2x1ZGUgInN0YXRpc3RpY3Mvc3RhdGlzdGljcy5oIgorCisJTVZORGlzdGluY3QgKm12 bmRpc3RpbmN0X3BhcnNlX3Jlc3VsdDsKKwlNVkRlcGVuZGVuY2llcyAqbXZkZXBlbmRlbmNpZXNf cGFyc2VfcmVzdWx0OworCisvKgorICogQmlzb24gZG9lc24ndCBhbGxvY2F0ZSBhbnl0aGluZyB0 aGF0IG5lZWRzIHRvIGxpdmUgYWNyb3NzIHBhcnNlciBjYWxscywKKyAqIHNvIHdlIGNhbiBlYXNp bHkgaGF2ZSBpdCB1c2UgcGFsbG9jIGluc3RlYWQgb2YgbWFsbG9jLiAgVGhpcyBwcmV2ZW50cwor ICogbWVtb3J5IGxlYWtzIGlmIHdlIGVycm9yIG91dCBkdXJpbmcgcGFyc2luZy4gIE5vdGUgdGhp cyBvbmx5IHdvcmtzIHdpdGgKKyAqIGJpc29uID49IDIuMC4gIEhvd2V2ZXIsIGluIGJpc29uIDEu ODc1IHRoZSBkZWZhdWx0IGlzIHRvIHVzZSBhbGxvY2EoKQorICogaWYgcG9zc2libGUsIHNvIHRo ZXJlJ3Mgbm90IHJlYWxseSBtdWNoIHByb2JsZW0gYW55aG93LCBhdCBsZWFzdCBpZgorICogeW91 J3JlIGJ1aWxkaW5nIHdpdGggZ2NjLgorICovCisjZGVmaW5lIFlZTUFMTE9DIHBhbGxvYworI2Rl ZmluZSBZWUZSRUUgICBwZnJlZQorCisJaW50CQkJYXR0ckNvdW50ID0gMDsKKworCSUKK30KKwor JWV4cGVjdCAwCislIG5hbWUgLSBwcmVmaXggPSAic3RhdGlzdGljX3l5IgorCisKKyUgdW5pb24K K3sKKwl1aW50MzIJCXVpbnR2YWw7CisJZG91YmxlCQlkb3VibGV2YWw7CisKKwlNVk5EaXN0aW5j dCAqbmRpc3RpbmN0OworCU1WTkRpc3RpbmN0SXRlbSAqbmRpc3RpbmN0X2l0ZW07CisKKwlNVkRl cGVuZGVuY2llcyAqZGVwZW5kZW5jaWVzOworCU1WRGVwZW5kZW5jeSAqZGVwZW5kZW5jeTsKKwor CUJpdG1hcHNldCAgKmJpdG1hcDsKKwlMaXN0CSAgICpsaXN0OworfQorCisvKiBOb24ta2V5d29y ZCB0b2tlbnMgKi8KKwkJICAgJXRva2VuIDwgdWludHZhbCA+IFVDT05TVAorJQkJCXRva2VuIDwg ZG91YmxldmFsID4gRE9VQkxFCislCQkJdG9rZW4gQVJST1cKKworJQkJCXR5cGUgPCBuZGlzdGlu Y3QgPiBuZGlzdGluY3QKKyUJCQl0eXBlIDwgbmRpc3RpbmN0X2l0ZW0gPiBuZGlzdGluY3RfaXRl bQorJQkJCXR5cGUgPCBsaXN0ID4gbmRpc3RpbmN0X2l0ZW1fbGlzdAorCislCQkJdHlwZSA8IGRl cGVuZGVuY2llcyA+IGRlcGVuZGVuY2llcworJQkJCXR5cGUgPCBsaXN0ID4gZGVwZW5kZW5jeV9p dGVtX2xpc3QKKyUJCQl0eXBlIDwgZGVwZW5kZW5jeSA+IGRlcGVuZGVuY3lfaXRlbQorJQkJCXR5 cGUgPCBiaXRtYXAgPiBkZXBlbmRlbmN5X2F0dHJzCisKKyUJCQl0eXBlIDwgYml0bWFwID4gYXR0 cnMKKworJSUKKworCQkJZXh0ZW5kZWRfc3RhdGlzdGljOgorCQkJbmRpc3RpbmN0Cit7Cit9CQkg ICB8CisKKwkJCWRlcGVuZGVuY2llcworeworfQorCisJCSAgIDsKKworLyoKKyAqICJuZGlzdGlu Y3QiIHJ1bGUgaGVscHMgdG8gcGFyc2UgdGhlIGlucHV0IHN0cmluZyByZWN1cnNpdmVseSBhbmQg c3RvcmVzIHRoZSBvdXRwdXQgaW50byBNVk5EaXN0aW5jdCBzdHJ1Y3R1cmUuCisgKiBFeG1wbGU6 CisgKiAJaW50cHV0IDogJ3siMSwgMiI6IDEsIjIsIDMiOiAyLCAiMywgMSIsIDJ9JworICogCW91 dHB1dCA6IHJldHVybnMgTVZORGlzdGluY3Qgb2JqZWN0CisqLworbmRpc3RpbmN0OgorJ3snIG5k aXN0aW5jdF9pdGVtX2xpc3QgJ30nCit7CisJJCQgPSBwYWxsb2MwKE1BWEFMSUdOKG9mZnNldG9m KE1WTkRpc3RpbmN0LCBpdGVtcykpICsKKwkJCQkgbGlzdF9sZW5ndGgoJDIpICogc2l6ZW9mKE1W TkRpc3RpbmN0SXRlbSkpOworCW12bmRpc3RpbmN0X3BhcnNlX3Jlc3VsdCA9ICQkOworCSQkLT5t YWdpYyA9IFNUQVRTX05ESVNUSU5DVF9NQUdJQzsKKwkkJC0+dHlwZSA9IFNUQVRTX05ESVNUSU5D VF9UWVBFX0JBU0lDOworCSQkLT5uaXRlbXMgPSBsaXN0X2xlbmd0aCgkMik7CisKKwlMaXN0Q2Vs bCAgICpjZWxsOworCU1WTkRpc3RpbmN0SXRlbSAqcG9pbnRlciA9ICQkLT5pdGVtczsKKworCWZv cmVhY2goY2VsbCwgJDIpCisJeworCQltZW1jcHkocG9pbnRlciwgbGZpcnN0KGNlbGwpLCBzaXpl b2YoTVZORGlzdGluY3RJdGVtKSk7CisJCXBvaW50ZXIgKz0gMTsKKwl9Cit9CisKKzsKKworbmRp c3RpbmN0X2l0ZW1fbGlzdDoKK25kaXN0aW5jdF9pdGVtX2xpc3QgJywnIG5kaXN0aW5jdF9pdGVt Cit7CisJJCQgPSBsYXBwZW5kKCQxLCAkMyk7Cit9CisKK3xuZGlzdGluY3RfaXRlbQoreworCSQk ID0gbGFwcGVuZChOSUwsICQxKTsKK30KKworOworCituZGlzdGluY3RfaXRlbToKKyciJyBhdHRy cyAnIicgJzonIFVDT05TVAoreworCSQkID0gKE1WTkRpc3RpbmN0SXRlbSAqKSBwYWxsb2MwKHNp emVvZihNVk5EaXN0aW5jdEl0ZW0pKTsKKwkkJC0+YXR0cnMgPSAkMjsKKwkkJC0+bmRpc3RpbmN0 ID0gJDU7Cit9CisKKzsKKworYXR0cnM6CithdHRycyAnLCcgVUNPTlNUCit7CisJJCQgPSBibXNf YWRkX21lbWJlcigkMSwgJDMpOworCWF0dHJDb3VudCArPSAxOworCit9CisKK3xVQ09OU1QgJywn IFVDT05TVAoreworCSQkID0gYm1zX21ha2Vfc2luZ2xldG9uKCQxKTsKKwkkJCA9IGJtc19hZGRf bWVtYmVyKCQkLCAkMyk7CisKKwlhdHRyQ291bnQgKz0gMjsKK30KKworOworCisvKgorICogImRl cGVuZGVuY2llcyIgcnVsZSBoZWxwcyB0byBwYXJzZSB0aGUgaW5wdXQgc3RyaW5nIHJlY3Vyc2l2 ZWx5IGFuZCBzdG9yZXMgdGhlIG91dHB1dCBpbnRvIE1WRGVwZW5kZW5jaWVzIHN0cnVjdHVyZS4K KyAqIGV4YW1wbGU6CisgKglpbnRwdXQgOiAneyIxID0+IDIiOiAxLjAwMDAwMCwgIjIgPT4gMyI6 IDIuMDAwMDAwfScKKyAqIAlvdXRwdXQgOiByZXR1cm5zIE1WRGVwZW5kZW5jaWVzCW9iamVjdAor Ki8KK2RlcGVuZGVuY2llczoKKyd7JyBkZXBlbmRlbmN5X2l0ZW1fbGlzdCAnfScKK3sKKwkkJCA9 IHBhbGxvYzAoTUFYQUxJR04ob2Zmc2V0b2YoTVZEZXBlbmRlbmNpZXMsIGRlcHMpKSArIGxpc3Rf bGVuZ3RoKCQyKSAqIHNpemVvZihNVkRlcGVuZGVuY3kgKikpOworCW12ZGVwZW5kZW5jaWVzX3Bh cnNlX3Jlc3VsdCA9ICQkOworCisJJCQtPm1hZ2ljID0gU1RBVFNfREVQU19NQUdJQzsKKwkkJC0+ dHlwZSA9IFNUQVRTX0RFUFNfVFlQRV9CQVNJQzsKKwkkJC0+bmRlcHMgPSBsaXN0X2xlbmd0aCgk Mik7CisKKwlmb3IgKGludCBpID0gMDsgaSA8ICQkLT5uZGVwczsgaSsrKQorCXsKKwkJJCQtPmRl cHNbaV0gPSBsaXN0X250aCgkMiwgaSk7CisJfQorCWF0dHJDb3VudCA9IDA7Cit9CisKKzsKKwor ZGVwZW5kZW5jeV9pdGVtX2xpc3Q6CitkZXBlbmRlbmN5X2l0ZW1fbGlzdCAnLCcgZGVwZW5kZW5j eV9pdGVtCit7CisJJCQgPSBsYXBwZW5kKCQxLCAkMyk7Cit9CisKK3xkZXBlbmRlbmN5X2l0ZW0K K3sKKwkkJCA9IGxhcHBlbmQoTklMLCAkMSk7Cit9CisKKzsKKworZGVwZW5kZW5jeV9pdGVtOgor JyInIGRlcGVuZGVuY3lfYXR0cnMgJyInICc6JyBET1VCTEUKK3sKKwkkJCA9IChNVkRlcGVuZGVu Y3kgKikgcGFsbG9jMChzaXplb2YoTVZEZXBlbmRlbmN5KSk7CisJJCQtPmRlZ3JlZSA9ICQ1Owor CSQkLT5uYXR0cmlidXRlcyA9IGF0dHJDb3VudDsKKworCUF0dHJOdW1iZXIgKnB0ciA9IGJ1aWxk X2F0dG51bXNfYXJyYXkoJDIsICYkJC0+bmF0dHJpYnV0ZXMpOworCisJZm9yIChpbnQgaSA9IDA7 IGkgPCAkJC0+bmF0dHJpYnV0ZXM7IGkrKykKKwl7CisJCSQkLT5hdHRyaWJ1dGVzW2ldID0gKihw dHIgKyBpKTsKKwl9CisJYXR0ckNvdW50ID0gMDsKK30KKworOworCitkZXBlbmRlbmN5X2F0dHJz OgorCitVQ09OU1QgQVJST1cgVUNPTlNUCit7CisJJCQgPSBibXNfbWFrZV9zaW5nbGV0b24oJDEp OworCSQkID0gYm1zX2FkZF9tZW1iZXIoJCQsICQzKTsKKwlhdHRyQ291bnQgKz0gMjsKK30KKwor fGF0dHJzIEFSUk9XIFVDT05TVAoreworCSQkID0gYm1zX2FkZF9tZW1iZXIoJDEsICQzKTsKKwlh dHRyQ291bnQgKz0gMTsKK30KKworOworCislJQorCisjaW5jbHVkZSAic3RhdGlzdGljc19zY2Fu bmVyLmMiCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdGF0aXN0aWNzL3N0YXRpc3RpY3Nfc2Nh bm5lci5sIGIvc3JjL2JhY2tlbmQvc3RhdGlzdGljcy9zdGF0aXN0aWNzX3NjYW5uZXIubApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi44NDlhOTcwMTUzCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjL2JhY2tlbmQvc3RhdGlzdGljcy9zdGF0aXN0aWNzX3NjYW5uZXIubApAQCAt MCwwICsxLDExOCBAQAorJQoreworI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJ1 dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInBhcnNlci9zY2Fuc3VwLmgiCisKKy8qIEhhbmRs ZSB0byB0aGUgYnVmZmVyIHRoYXQgdGhlIGxleGVyIHVzZXMgaW50ZXJuYWxseSAqLworCXN0YXRp YyBZWV9CVUZGRVJfU1RBVEUgc2NhbmJ1ZmhhbmRsZTsKKworCSUKK30KKworJW9wdGlvbiBub3l5 d3JhcAorJSBvcHRpb24gcHJlZml4ID0gInN0YXRpc3RpY195eSIKKworZGlnaXRbMCAtIDldICsK K2RvdWJsZVsJCTAgLSA5Ll0KKworJSUKKworWwkJICAgXHQgXCBuXTsKKworInsiCit7CisJcmV0 dXJuICd7JzsKK30KKworIn0iCit7CisJcmV0dXJuICd9JzsKK30KKworIiwiCit7CisJcmV0dXJu ICcsJzsKK30KKworIlwiIgoreworCXJldHVybiAnIic7Cit9CisKKyI6IgoreworCXJldHVybiAn Oic7Cit9CisKKyI9PiIKK3sKKwlyZXR1cm4gQVJST1c7Cit9CisKK3sKKwlkaWdpdAorfSArCisK K3sKKwl5eWx2YWwudWludHZhbCA9IHN0cnRvdWwoeXl0ZXh0LCBOVUxMLCAxMCk7CisJcmV0dXJu IFVDT05TVDsKK30KKworeworCWRvdWJsZQorfQkJICAgKworCit7CisJeXlsdmFsLmRvdWJsZXZh bCA9IHN0cnRvZCh5eXRleHQsIE5VTEwpOworCXJldHVybiBET1VCTEU7Cit9CisKKwkJICAlJQor CisJCQl2b2lkCit5eWVycm9yKGNvbnN0IGNoYXIgKm1lc3NhZ2UpCit7CisJaWYgKCp5eXRleHQg PT0gWVlfRU5EX09GX0JVRkZFUl9DSEFSKQorCXsKKwkJZXJlcG9ydChFUlJPUiwgKGVycmNvZGUo RVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJZXJybXNnKCJpbnZhbGlkIGlucHV0IHN5bnRh eCBmb3IgZXh0ZW5kZWQgc3RhdHMgdHlwZSIpLAorCQkJCQkJZXJyZGV0YWlsKCIlcyBhdCBlbmQg b2YgaW5wdXQiLCBtZXNzYWdlKSkpOworCX0KKwllbHNlCisJeworCQllcmVwb3J0KEVSUk9SLAor CQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkgZXJybXNnKCJpbnZhbGlk IGlucHV0IHN5bnRheCBmb3IgZXh0ZW5kZWQgc3RhdHMgdHlwZSIpLAorCQkJCSBlcnJkZXRhaWwo IiVzIGF0IG9yIG5lYXIgXCIlc1wiIiwgbWVzc2FnZSwgeXl0ZXh0KSkpOworCX0KK30KKwordm9p ZAorc3RhdGlzdGljc19zY2FubmVyX2luaXQoY29uc3QgY2hhciAqc3RyKQoreworCVNpemUJCXNs ZW4gPSBzdHJsZW4oc3RyKTsKKwljaGFyCSAgICpzY2FuYnVmOworCisJLyoKKwkgKiBNaWdodCBi ZSBsZWZ0IG92ZXIgYWZ0ZXIgZXJlcG9ydCgpCisJICovCisJaWYgKFlZX0NVUlJFTlRfQlVGRkVS KQorCQl5eV9kZWxldGVfYnVmZmVyKFlZX0NVUlJFTlRfQlVGRkVSKTsKKworCS8qCisJICogTWFr ZSBhIHNjYW4gYnVmZmVyIHdpdGggc3BlY2lhbCB0ZXJtaW5hdGlvbiBuZWVkZWQgYnkgZmxleC4K KwkgKi8KKwlzY2FuYnVmID0gKGNoYXIgKikgcGFsbG9jKHNsZW4gKyAyKTsKKwltZW1jcHkoc2Nh bmJ1Ziwgc3RyLCBzbGVuKTsKKwlzY2FuYnVmW3NsZW5dID0gc2NhbmJ1ZltzbGVuICsgMV0gPSBZ WV9FTkRfT0ZfQlVGRkVSX0NIQVI7CisJc2NhbmJ1ZmhhbmRsZSA9IHl5X3NjYW5fYnVmZmVyKHNj YW5idWYsIHNsZW4gKyAyKTsKK30KKwordm9pZAorc3RhdGlzdGljX3NjYW5uZXJfZmluaXNoKHZv aWQpCit7CisJeXlfZGVsZXRlX2J1ZmZlcihzY2FuYnVmaGFuZGxlKTsKKwlzY2FuYnVmaGFuZGxl ID0gTlVMTDsKK30KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0YXRpc3RpY3MvZXh0ZW5kZWRf c3RhdHNfaW50ZXJuYWwuaCBiL3NyYy9pbmNsdWRlL3N0YXRpc3RpY3MvZXh0ZW5kZWRfc3RhdHNf aW50ZXJuYWwuaAppbmRleCA3YjU1ZWI4ZmZhLi4xZDQwNDM2MTE5IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9zdGF0aXN0aWNzL2V4dGVuZGVkX3N0YXRzX2ludGVybmFsLmgKKysrIGIvc3JjL2lu Y2x1ZGUvc3RhdGlzdGljcy9leHRlbmRlZF9zdGF0c19pbnRlcm5hbC5oCkBAIC0xMjcsNCArMTI3 LDE3IEBAIGV4dGVybiBTZWxlY3Rpdml0eSBtY3ZfY2xhdXNlX3NlbGVjdGl2aXR5X29yKFBsYW5u ZXJJbmZvICpyb290LAogCQkJCQkJCQkJCQkgU2VsZWN0aXZpdHkgKm92ZXJsYXBfYmFzZXNlbCwK IAkJCQkJCQkJCQkJIFNlbGVjdGl2aXR5ICp0b3RhbHNlbCk7CiAKKy8qCisgKiBJbnRlcm5hbCBm dW5jdGlvbnMgZm9yIHBhcnNpbmcgdGhlIHN0YXRpc3RpY3MgZ3JhbW1hciwgaW4gc3RhdGlhdGlj c19ncmFtLnkgYW5kCisgKiBzdGF0aXN0aWNzX3NjYW5uZXIubAorICovCitleHRlcm4gaW50CXN0 YXRpc3RpY195eXBhcnNlKHZvaWQpOworZXh0ZXJuIGludAlzdGF0aXN0aWNfeXlsZXgodm9pZCk7 CitleHRlcm4gdm9pZCBzdGF0aXN0aWNfeXllcnJvcihjb25zdCBjaGFyICpzdHIpIHBnX2F0dHJp YnV0ZV9ub3JldHVybigpOworZXh0ZXJuIHZvaWQgc3RhdGlzdGljX3NjYW5uZXJfaW5pdChjb25z dCBjaGFyICpxdWVyeV9zdHJpbmcpOworZXh0ZXJuIHZvaWQgc3RhdGlzdGljX3NjYW5uZXJfZmlu aXNoKHZvaWQpOworCitleHRlcm4gTVZORGlzdGluY3QgKm12bmRpc3RpbmN0X3BhcnNlX3Jlc3Vs dDsKK2V4dGVybiBNVkRlcGVuZGVuY2llcyAqbXZkZXBlbmRlbmNpZXNfcGFyc2VfcmVzdWx0Owor CiAjZW5kaWYJCQkJCQkJLyogRVhURU5ERURfU1RBVFNfSU5URVJOQUxfSCAqLwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvc3RhdGlzdGljcy9zdGF0aXN0aWNzLmggYi9zcmMvaW5jbHVkZS9zdGF0 aXN0aWNzL3N0YXRpc3RpY3MuaAppbmRleCAxN2UzZTdmODgxLi5iNTdiOTkxNDE5IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9zdGF0aXN0aWNzL3N0YXRpc3RpY3MuaAorKysgYi9zcmMvaW5jbHVk ZS9zdGF0aXN0aWNzL3N0YXRpc3RpY3MuaApAQCAtMjIsNiArMjIsMTAgQEAKICNkZWZpbmUgU1RB VFNfTkRJU1RJTkNUX01BR0lDCQkweEEzNTJCRkE0CS8qIHN0cnVjdCBpZGVudGlmaWVyICovCiAj ZGVmaW5lIFNUQVRTX05ESVNUSU5DVF9UWVBFX0JBU0lDCTEJLyogc3RydWN0IHZlcnNpb24gKi8K IAorI2RlZmluZSBQR19SRVRVUk5fTVZORGlzdGluY3RfUChYKSByZXR1cm4gUG9pbnRlckdldERh dHVtKFgpCisjZGVmaW5lIFBHX1JFVFVSTl9NVkRlcGVuZGVuY2llc19QKFgpIHJldHVybiBQb2lu dGVyR2V0RGF0dW0oWCkKKyNkZWZpbmUgUEdfUkVUVVJOX01DVkxpc3RfUChYKSByZXR1cm4gUG9p bnRlckdldERhdHVtKFgpCisKIC8qIE1WTkRpc3RpbmN0SXRlbSByZXByZXNlbnRzIGEgc2luZ2xl IGNvbWJpbmF0aW9uIG9mIGNvbHVtbnMgKi8KIHR5cGVkZWYgc3RydWN0IE1WTkRpc3RpbmN0SXRl bQogewpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdGF0c19leHQub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdGF0c19leHQub3V0CmluZGV4IDAzODgwODc0 YzEuLjY3ZjViZmQyMTIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Rh dHNfZXh0Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N0YXRzX2V4dC5vdXQK QEAgLTMyOTAsMyArMzI5MCwyODAgQEAgTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAyIG90aGVy IG9iamVjdHMKIERFVEFJTDogIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgdHN0c3RhdHMucHJpdl90 ZXN0X3RibAogZHJvcCBjYXNjYWRlcyB0byB2aWV3IHRzdHN0YXRzLnByaXZfdGVzdF92aWV3CiBE Uk9QIFVTRVIgcmVncmVzc19zdGF0c191c2VyMTsKKyAgICAtLSBUZXN0IHBnX25kaXN0aW5jdF9p bgorZHJvcCB0YWJsZSBpZiBleGlzdHMgdGJsX2Rpc3RpbmN0OworTk9USUNFOiAgdGFibGUgInRi bF9kaXN0aW5jdCIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nCitjcmVhdGUgdGFibGUgdGJsX2Rp c3RpbmN0KGkgaW50LCBpaSBwZ19uZGlzdGluY3QpOworTk9USUNFOiAgVGFibGUgZG9lc24ndCBo YXZlICdESVNUUklCVVRFRCBCWScgY2xhdXNlIC0tIFVzaW5nIGNvbHVtbiBuYW1lZCAnaScgYXMg dGhlIEdyZWVucGx1bSBEYXRhYmFzZSBkYXRhIGRpc3RyaWJ1dGlvbiBrZXkgZm9yIHRoaXMgdGFi bGUuCitISU5UOiAgVGhlICdESVNUUklCVVRFRCBCWScgY2xhdXNlIGRldGVybWluZXMgdGhlIGRp c3RyaWJ1dGlvbiBvZiBkYXRhLiBNYWtlIHN1cmUgY29sdW1uKHMpIGNob3NlbiBhcmUgdGhlIG9w dGltYWwgZGF0YSBkaXN0cmlidXRpb24ga2V5IHRvIG1pbmltaXplIHNrZXcuCitpbnNlcnQgaW50 byB0YmxfZGlzdGluY3QgdmFsdWVzICgxLCAneyIxLCAyIjogMX0nKTsKK2luc2VydCBpbnRvIHRi bF9kaXN0aW5jdCB2YWx1ZXMgKDIsICd7IjEsIDIiOiAyLCAiMSwgMyI6IDMsICIyLCAzIjogMiwg IjEsIDIsIDMiOiAzfScpOworaW5zZXJ0IGludG8gdGJsX2Rpc3RpbmN0IHZhbHVlcyAoMywgJ3si MTIzLCAyMzQiOiAxMX0nKTsKK3NlbGVjdCAqIGZyb20gdGJsX2Rpc3RpbmN0OworIGkgfCAgICAg ICAgICAgICAgICAgICAgICAgaWkKKy0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgMiB8IHsiMSwgMiI6IDIsICIxLCAzIjogMywgIjIsIDMiOiAy LCAiMSwgMiwgMyI6IDN9CisgMyB8IHsiMTIzLCAyMzQiOiAxMX0KKyAxIHwgeyIxLCAyIjogMX0K KygzIHJvd3MpCisKKy0tIGxlYWRpbmcgc3BhY2UKK2luc2VydCBpbnRvIHRibF9kaXN0aW5jdCB2 YWx1ZXMgKDEsICcgeyIxLCAyIjogMX0nKTsKKy0tIHRyYWlsaW5nIHNwYWNlCitpbnNlcnQgaW50 byB0YmxfZGlzdGluY3QgdmFsdWVzICgxLCAneyIxLCAyIjogMX0gJyk7CistLSB1bm1hdGNoZWQg cXVvdGUKK2luc2VydCBpbnRvIHRibF9kaXN0aW5jdCB2YWx1ZXMgKDEsICd7IjEiLCAyIjogMX0g Jyk7CitFUlJPUjogIGludmFsaWQgaW5wdXQgc3ludGF4IGZvciBleHRlbmRlZCBzdGF0cyB0eXBl CitMSU5FIDE6IGluc2VydCBpbnRvIHRibF9kaXN0aW5jdCB2YWx1ZXMgKDEsICd7IjEiLCAyIjog MX0gJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0RF VEFJTDogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICIiIgorLS0gc3BhY2UgaW4gYXR0cmlidXRl IGxpc3QKK2luc2VydCBpbnRvIHRibF9kaXN0aW5jdCB2YWx1ZXMgKDEsICd7IjEgMywgMiI6IDF9 ICcpOworRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgZXh0ZW5kZWQgc3RhdHMgdHlw ZQorTElORSAxOiBpbnNlcnQgaW50byB0YmxfZGlzdGluY3QgdmFsdWVzICgxLCAneyIxIDMsIDIi OiAxfSAnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgor REVUQUlMOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIjMiCistLSBjb2xvbiBpbiBhdHRyaWJ1 dGUgbGlzdAoraW5zZXJ0IGludG8gdGJsX2Rpc3RpbmN0IHZhbHVlcyAoMSwgJ3siMTogMiI6IDF9 Jyk7CitFUlJPUjogIGludmFsaWQgaW5wdXQgc3ludGF4IGZvciBleHRlbmRlZCBzdGF0cyB0eXBl CitMSU5FIDE6IGluc2VydCBpbnRvIHRibF9kaXN0aW5jdCB2YWx1ZXMgKDEsICd7IjE6IDIiOiAx fScpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitERVRB SUw6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiOiIKK2luc2VydCBpbnRvIHRibF9kaXN0aW5j dCB2YWx1ZXMgKDEsICd7IjEsIDI6IiAxfScpOworRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRh eCBmb3IgZXh0ZW5kZWQgc3RhdHMgdHlwZQorTElORSAxOiBpbnNlcnQgaW50byB0YmxfZGlzdGlu Y3QgdmFsdWVzICgxLCAneyIxLCAyOiIgMX0nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgorREVUQUlMOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIjoi CitpbnNlcnQgaW50byB0YmxfZGlzdGluY3QgdmFsdWVzICgxLCAneyI6MSAyIjogMX0nKTsKK0VS Uk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIGV4dGVuZGVkIHN0YXRzIHR5cGUKK0xJTkUg MTogaW5zZXJ0IGludG8gdGJsX2Rpc3RpbmN0IHZhbHVlcyAoMSwgJ3siOjEgMiI6IDF9Jyk7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIHN5 bnRheCBlcnJvciBhdCBvciBuZWFyICI6IgorLS0gemVyby9zaW5nbGUgaXRlbSBhdHRyaWJ1dGUg bGlzdAoraW5zZXJ0IGludG8gdGJsX2Rpc3RpbmN0IHZhbHVlcyAoMSwgJ3siMSI6IDF9Jyk7CitF UlJPUjogIGludmFsaWQgaW5wdXQgc3ludGF4IGZvciBleHRlbmRlZCBzdGF0cyB0eXBlCitMSU5F IDE6IGluc2VydCBpbnRvIHRibF9kaXN0aW5jdCB2YWx1ZXMgKDEsICd7IjEiOiAxfScpOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitERVRBSUw6ICBzeW50 YXggZXJyb3IgYXQgb3IgbmVhciAiIiIKK2luc2VydCBpbnRvIHRibF9kaXN0aW5jdCB2YWx1ZXMg KDEsICd7OiAxfScpOworRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgZXh0ZW5kZWQg c3RhdHMgdHlwZQorTElORSAxOiBpbnNlcnQgaW50byB0YmxfZGlzdGluY3QgdmFsdWVzICgxLCAn ezogMX0nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgor REVUQUlMOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIjoiCitpbnNlcnQgaW50byB0YmxfZGlz dGluY3QgdmFsdWVzICgxLCAneyIiOiAxfScpOworRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRh eCBmb3IgZXh0ZW5kZWQgc3RhdHMgdHlwZQorTElORSAxOiBpbnNlcnQgaW50byB0YmxfZGlzdGlu Y3QgdmFsdWVzICgxLCAneyIiOiAxfScpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCitERVRBSUw6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiIiIKK2lu c2VydCBpbnRvIHRibF9kaXN0aW5jdCB2YWx1ZXMgKDEsICd7IiAiOiAxfScpOworRVJST1I6ICBp bnZhbGlkIGlucHV0IHN5bnRheCBmb3IgZXh0ZW5kZWQgc3RhdHMgdHlwZQorTElORSAxOiBpbnNl cnQgaW50byB0YmxfZGlzdGluY3QgdmFsdWVzICgxLCAneyIgIjogMX0nKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorREVUQUlMOiAgc3ludGF4IGVycm9y IGF0IG9yIG5lYXIgIiIiCitpbnNlcnQgaW50byB0YmxfZGlzdGluY3QgdmFsdWVzICgxLCAne30n KTsKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIGV4dGVuZGVkIHN0YXRzIHR5cGUK K0xJTkUgMTogaW5zZXJ0IGludG8gdGJsX2Rpc3RpbmN0IHZhbHVlcyAoMSwgJ3t9Jyk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIHN5bnRh eCBlcnJvciBhdCBvciBuZWFyICJ9IgoraW5zZXJ0IGludG8gdGJsX2Rpc3RpbmN0IHZhbHVlcyAo MSwgJ3s6fScpOworRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgZXh0ZW5kZWQgc3Rh dHMgdHlwZQorTElORSAxOiBpbnNlcnQgaW50byB0YmxfZGlzdGluY3QgdmFsdWVzICgxLCAnezp9 Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0RFVEFJ TDogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICI6IgorLS0gaWxsZWdhbCBjaGFyYWN0ZXIKK2lu c2VydCBpbnRvIHRibF9kaXN0aW5jdCB2YWx1ZXMgKDEsICd7IjEsfCAyIjogMX0nKTsKKy0tIG11 bHRpcGxlIGNvbnNlY3V0aXZlIGNoYXJhY3RlcnMKK2luc2VydCBpbnRvIHRibF9kaXN0aW5jdCB2 YWx1ZXMgKDEsICd7IjEsLCAyIjogMX0nKTsKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXgg Zm9yIGV4dGVuZGVkIHN0YXRzIHR5cGUKK0xJTkUgMTogaW5zZXJ0IGludG8gdGJsX2Rpc3RpbmN0 IHZhbHVlcyAoMSwgJ3siMSwsIDIiOiAxfScpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCitERVRBSUw6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiLCIK K2luc2VydCBpbnRvIHRibF9kaXN0aW5jdCB2YWx1ZXMgKDEsICd7IjEiOiAxfScpOworRVJST1I6 ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgZXh0ZW5kZWQgc3RhdHMgdHlwZQorTElORSAxOiBp bnNlcnQgaW50byB0YmxfZGlzdGluY3QgdmFsdWVzICgxLCAneyIxIjogMX0nKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorREVUQUlMOiAgc3ludGF4IGVy cm9yIGF0IG9yIG5lYXIgIiIiCistLSBOZWVkIHRvIGFkZCBjaGVjayBvbiBjYXRhbG9nIHRhYmxl IGluc2VydCB0aGF0IGF0cmlidXRlIG51bWJlcnMgYXJlIGxlZ2FsCistLSAoZS5nLiB0aGVyZSBz aG91bGRuJ3QgYmUgYXR0cmlidXRlIG51bWJlciAxMDAgZm9yIGEgdGFibGUgd2l0aCBvbmx5IDIK Ky0tIGNvbHVtbnMgYWxzbyBpdCBzaG91bGQgbWF0Y2gpCitzZWxlY3QgKiBmcm9tIHRibF9kaXN0 aW5jdDsKKyBpIHwgICAgICAgICAgICAgICAgICAgICAgIGlpCistLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDEgfCB7IjEsIDIiOiAxfQorIDEg fCB7IjEsIDIiOiAxfQorIDEgfCB7IjEsIDIiOiAxfQorIDEgfCB7IjEsIDIiOiAxfQorIDIgfCB7 IjEsIDIiOiAyLCAiMSwgMyI6IDMsICIyLCAzIjogMiwgIjEsIDIsIDMiOiAzfQorIDMgfCB7IjEy MywgMjM0IjogMTF9CisoNiByb3dzKQorCisgICAgLS0gVGVzdCBwZ19kZXBlbmRlbmNpZXNfaW4K K2Ryb3AgdGFibGUgaWYgZXhpc3RzIHRibF9kZXBlbmRlbmNpZXM7CitOT1RJQ0U6ICB0YWJsZSAi dGJsX2RlcGVuZGVuY2llcyIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nCitjcmVhdGUgdGFibGUg dGJsX2RlcGVuZGVuY2llcyhpIGludCwgaWkgcGdfZGVwZW5kZW5jaWVzKTsKK05PVElDRTogIFRh YmxlIGRvZXNuJ3QgaGF2ZSAnRElTVFJJQlVURUQgQlknIGNsYXVzZSAtLSBVc2luZyBjb2x1bW4g bmFtZWQgJ2knIGFzIHRoZSBHcmVlbnBsdW0gRGF0YWJhc2UgZGF0YSBkaXN0cmlidXRpb24ga2V5 IGZvciB0aGlzIHRhYmxlLgorSElOVDogIFRoZSAnRElTVFJJQlVURUQgQlknIGNsYXVzZSBkZXRl cm1pbmVzIHRoZSBkaXN0cmlidXRpb24gb2YgZGF0YS4gTWFrZSBzdXJlIGNvbHVtbihzKSBjaG9z ZW4gYXJlIHRoZSBvcHRpbWFsIGRhdGEgZGlzdHJpYnV0aW9uIGtleSB0byBtaW5pbWl6ZSBza2V3 LgoraW5zZXJ0IGludG8gdGJsX2RlcGVuZGVuY2llcyB2YWx1ZXMgKDEsICd7IjEgPT4gMiI6IDEu MDAwMDAwfScpOworaW5zZXJ0IGludG8gdGJsX2RlcGVuZGVuY2llcyB2YWx1ZXMgKDIsICd7IjEg PT4gMiI6IDIuMDAwMDAwLCAiMSA9PiAzIjogMy4wMDAwMDAsICIyID0+IDMiOiAyLjAwMDAwMCwg IjEsIDIgPT4gMyI6IDMuMDAwMDAwfScpOworc2VsZWN0ICogZnJvbSB0YmxfZGVwZW5kZW5jaWVz OworIGkgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWkKKy0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMiB8IHsiMSA9PiAyIjogMi4wMDAwMDAsICIx ID0+IDMiOiAzLjAwMDAwMCwgIjIgPT4gMyI6IDIuMDAwMDAwLCAiMSwgMiA9PiAzIjogMy4wMDAw MDB9CisgMSB8IHsiMSA9PiAyIjogMS4wMDAwMDB9CisoMiByb3dzKQorCistLSBsZWFkaW5nIHNw YWNlCitpbnNlcnQgaW50byB0YmxfZGVwZW5kZW5jaWVzIHZhbHVlcyAoMSwgJyB7IjEgPT4gMiI6 IDEuMDAwMDAwfScpOworLS0gdHJhaWxpbmcgc3BhY2UKK2luc2VydCBpbnRvIHRibF9kZXBlbmRl bmNpZXMgdmFsdWVzICgxLCAneyIxID0+IDIiOiAxLjAwMDAwMH0gJyk7CistLSB1bm1hdGNoZWQg cXVvdGUKK2luc2VydCBpbnRvIHRibF9kZXBlbmRlbmNpZXMgdmFsdWVzICgxLCAneyIxIiA9PiAy IjogMS4wMDAwMDB9ICcpOworRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgZXh0ZW5k ZWQgc3RhdHMgdHlwZQorTElORSAxOiBpbnNlcnQgaW50byB0YmxfZGVwZW5kZW5jaWVzIHZhbHVl cyAoMSwgJ3siMSIgPT4gMiI6IDEuMDAwMDAuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIHN5bnRheCBlcnJvciBhdCBvciBuZWFy ICIiIgorLS0gV3JvbmcgZm9ybWF0CitpbnNlcnQgaW50byB0YmxfZGVwZW5kZW5jaWVzIHZhbHVl cyAoMSwgJ3siMSwgMiI6IDEuMDAwMDAwfScpOworRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRh eCBmb3IgZXh0ZW5kZWQgc3RhdHMgdHlwZQorTElORSAxOiBpbnNlcnQgaW50byB0YmxfZGVwZW5k ZW5jaWVzIHZhbHVlcyAoMSwgJ3siMSwgMiI6IDEuMDAwMDAwfScuLi4KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIHN5bnRheCBlcnJv ciBhdCBvciBuZWFyICIxLjAwMDAwMCIKK2luc2VydCBpbnRvIHRibF9kZXBlbmRlbmNpZXMgdmFs dWVzICgxLCAneyIxID0+IDIiOiAxfScpOworRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBm b3IgZXh0ZW5kZWQgc3RhdHMgdHlwZQorTElORSAxOiBpbnNlcnQgaW50byB0YmxfZGVwZW5kZW5j aWVzIHZhbHVlcyAoMSwgJ3siMSA9PiAyIjogMX0nKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIHN5bnRheCBlcnJvciBhdCBvciBu ZWFyICIxIgoraW5zZXJ0IGludG8gdGJsX2RlcGVuZGVuY2llcyB2YWx1ZXMgKDEsICd7IjEgPT4g MiI6IDEuMDAwMDAwLCAiIDIgPT4gMSI6IDJ9Jyk7CitFUlJPUjogIGludmFsaWQgaW5wdXQgc3lu dGF4IGZvciBleHRlbmRlZCBzdGF0cyB0eXBlCitMSU5FIDE6IGluc2VydCBpbnRvIHRibF9kZXBl bmRlbmNpZXMgdmFsdWVzICgxLCAneyIxID0+IDIiOiAxLjAwMDAwMC4uLgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorREVUQUlMOiAgc3ludGF4IGVy cm9yIGF0IG9yIG5lYXIgIjIiCistLSBzcGFjZSBpbiBhdHRyaWJ1dGUgbGlzdAoraW5zZXJ0IGlu dG8gdGJsX2RlcGVuZGVuY2llcyB2YWx1ZXMgKDEsICd7IjEgMyA9PiAyIjogMS4wMDAwMDB9ICcp OworRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgZXh0ZW5kZWQgc3RhdHMgdHlwZQor TElORSAxOiBpbnNlcnQgaW50byB0YmxfZGVwZW5kZW5jaWVzIHZhbHVlcyAoMSwgJ3siMSAzID0+ IDIiOiAxLjAwMDAuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KK0RFVEFJTDogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICIzIgorLS0gY29sb24g aW4gYXR0cmlidXRlIGxpc3QKK2luc2VydCBpbnRvIHRibF9kZXBlbmRlbmNpZXMgdmFsdWVzICgx LCAneyIxOiAyIjogMS4wMDAwMDB9Jyk7CitFUlJPUjogIGludmFsaWQgaW5wdXQgc3ludGF4IGZv ciBleHRlbmRlZCBzdGF0cyB0eXBlCitMSU5FIDE6IGluc2VydCBpbnRvIHRibF9kZXBlbmRlbmNp ZXMgdmFsdWVzICgxLCAneyIxOiAyIjogMS4wMDAwMDB9Jy4uLgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorREVUQUlMOiAgc3ludGF4IGVycm9yIGF0 IG9yIG5lYXIgIjoiCitpbnNlcnQgaW50byB0YmxfZGVwZW5kZW5jaWVzIHZhbHVlcyAoMSwgJ3si MSA9PiAyOiIgMS4wMDAwMDB9Jyk7CitFUlJPUjogIGludmFsaWQgaW5wdXQgc3ludGF4IGZvciBl eHRlbmRlZCBzdGF0cyB0eXBlCitMSU5FIDE6IGluc2VydCBpbnRvIHRibF9kZXBlbmRlbmNpZXMg dmFsdWVzICgxLCAneyIxID0+IDI6IiAxLjAwMDAwMC4uLgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorREVUQUlMOiAgc3ludGF4IGVycm9yIGF0IG9y IG5lYXIgIjoiCitpbnNlcnQgaW50byB0YmxfZGVwZW5kZW5jaWVzIHZhbHVlcyAoMSwgJ3siOjEg MiI6IDEuMDAwMDAwfScpOworRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgZXh0ZW5k ZWQgc3RhdHMgdHlwZQorTElORSAxOiBpbnNlcnQgaW50byB0YmxfZGVwZW5kZW5jaWVzIHZhbHVl cyAoMSwgJ3siOjEgMiI6IDEuMDAwMDAwfScuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIHN5bnRheCBlcnJvciBhdCBvciBuZWFy ICI6IgoraW5zZXJ0IGludG8gdGJsX2RlcGVuZGVuY2llcyB2YWx1ZXMgKDEsICd7IjEsIDIiIDEu MDAwMDAwfScpOworRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgZXh0ZW5kZWQgc3Rh dHMgdHlwZQorTElORSAxOiBpbnNlcnQgaW50byB0YmxfZGVwZW5kZW5jaWVzIHZhbHVlcyAoMSwg J3siMSwgMiIgMS4wMDAwMDB9JykuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICIxLjAw MDAwMCIKKy0tIHplcm8vc2luZ2xlIGl0ZW0gYXR0cmlidXRlIGxpc3QKK2luc2VydCBpbnRvIHRi bF9kZXBlbmRlbmNpZXMgdmFsdWVzICgxLCAneyIxIjogMS4wMDAwMDB9Jyk7CitFUlJPUjogIGlu dmFsaWQgaW5wdXQgc3ludGF4IGZvciBleHRlbmRlZCBzdGF0cyB0eXBlCitMSU5FIDE6IGluc2Vy dCBpbnRvIHRibF9kZXBlbmRlbmNpZXMgdmFsdWVzICgxLCAneyIxIjogMS4wMDAwMDB9Jyk7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitERVRBSUw6 ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiIiIKK2luc2VydCBpbnRvIHRibF9kZXBlbmRlbmNp ZXMgdmFsdWVzICgxLCAnezogMS4wMDAwMDB9Jyk7CitFUlJPUjogIGludmFsaWQgaW5wdXQgc3lu dGF4IGZvciBleHRlbmRlZCBzdGF0cyB0eXBlCitMSU5FIDE6IGluc2VydCBpbnRvIHRibF9kZXBl bmRlbmNpZXMgdmFsdWVzICgxLCAnezogMS4wMDAwMDB9Jyk7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitERVRBSUw6ICBzeW50YXggZXJyb3IgYXQg b3IgbmVhciAiOiIKK2luc2VydCBpbnRvIHRibF9kZXBlbmRlbmNpZXMgdmFsdWVzICgxLCAneyIi OiAxLjAwMDAwMH0nKTsKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIGV4dGVuZGVk IHN0YXRzIHR5cGUKK0xJTkUgMTogaW5zZXJ0IGludG8gdGJsX2RlcGVuZGVuY2llcyB2YWx1ZXMg KDEsICd7IiI6IDEuMDAwMDAwfScpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgorREVUQUlMOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIiIiCitp bnNlcnQgaW50byB0YmxfZGVwZW5kZW5jaWVzIHZhbHVlcyAoMSwgJ3siICI6IDEuMDAwMDAwfScp OworRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgZXh0ZW5kZWQgc3RhdHMgdHlwZQor TElORSAxOiBpbnNlcnQgaW50byB0YmxfZGVwZW5kZW5jaWVzIHZhbHVlcyAoMSwgJ3siICI6IDEu MDAwMDAwfScpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgorREVUQUlMOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIiIiCitpbnNlcnQgaW50byB0 YmxfZGVwZW5kZW5jaWVzIHZhbHVlcyAoMSwgJ3t9Jyk7CitFUlJPUjogIGludmFsaWQgaW5wdXQg c3ludGF4IGZvciBleHRlbmRlZCBzdGF0cyB0eXBlCitMSU5FIDE6IGluc2VydCBpbnRvIHRibF9k ZXBlbmRlbmNpZXMgdmFsdWVzICgxLCAne30nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIHN5bnRheCBlcnJvciBhdCBvciBuZWFy ICJ9IgoraW5zZXJ0IGludG8gdGJsX2RlcGVuZGVuY2llcyB2YWx1ZXMgKDEsICd7On0nKTsKK0VS Uk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIGV4dGVuZGVkIHN0YXRzIHR5cGUKK0xJTkUg MTogaW5zZXJ0IGludG8gdGJsX2RlcGVuZGVuY2llcyB2YWx1ZXMgKDEsICd7On0nKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIHN5 bnRheCBlcnJvciBhdCBvciBuZWFyICI6IgorLS0gbXVsdGlwbGUgY29uc2VjdXRpdmUgY2hhcmFj dGVycworaW5zZXJ0IGludG8gdGJsX2RlcGVuZGVuY2llcyB2YWx1ZXMgKDEsICd7IjEgPT49PiAy IjogMS4wMDAwMDB9Jyk7CitFUlJPUjogIGludmFsaWQgaW5wdXQgc3ludGF4IGZvciBleHRlbmRl ZCBzdGF0cyB0eXBlCitMSU5FIDE6IGluc2VydCBpbnRvIHRibF9kZXBlbmRlbmNpZXMgdmFsdWVz ICgxLCAneyIxID0+PT4gMiI6IDEuMDAwMC4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgorREVUQUlMOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIg Ij0+IgoraW5zZXJ0IGludG8gdGJsX2RlcGVuZGVuY2llcyB2YWx1ZXMgKDEsICd7IjEiOiAxLjAw MDAwMH0nKTsKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIGV4dGVuZGVkIHN0YXRz IHR5cGUKK0xJTkUgMTogaW5zZXJ0IGludG8gdGJsX2RlcGVuZGVuY2llcyB2YWx1ZXMgKDEsICd7 IjEiOiAxLjAwMDAwMH0nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KK0RFVEFJTDogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICIiIgorc2VsZWN0 ICogZnJvbSB0YmxfZGVwZW5kZW5jaWVzOworIGkgfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWkKKy0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMiB8 IHsiMSA9PiAyIjogMi4wMDAwMDAsICIxID0+IDMiOiAzLjAwMDAwMCwgIjIgPT4gMyI6IDIuMDAw MDAwLCAiMSwgMiA9PiAzIjogMy4wMDAwMDB9CisgMSB8IHsiMSA9PiAyIjogMS4wMDAwMDB9Cisg MSB8IHsiMSA9PiAyIjogMS4wMDAwMDB9CisgMSB8IHsiMSA9PiAyIjogMS4wMDAwMDB9CisoNCBy b3dzKQorCistLSBUZXN0IGEgdGFibGUgd2l0aCBjb2x1bW5zIG9mIHR5cGUgcGdfbmRpc3RpbmN0 IGFuZCBwZ19kZXBlbmRlbmNpZXMKK2Ryb3AgdGFibGUgaWYgZXhpc3RzIHRibF9kaXN0X2RlcDsK K05PVElDRTogIHRhYmxlICJ0YmxfZGlzdF9kZXAiIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZwor Y3JlYXRlIHRhYmxlIHRibF9kaXN0X2RlcChpIHBnX25kaXN0aW5jdCwgaWkgcGdfZGVwZW5kZW5j aWVzKTsKK05PVElDRTogIFRhYmxlIGRvZXNuJ3QgaGF2ZSAnRElTVFJJQlVURUQgQlknIGNsYXVz ZSAtLSBVc2luZyBjb2x1bW4gbmFtZWQgJ2knIGFzIHRoZSBHcmVlbnBsdW0gRGF0YWJhc2UgZGF0 YSBkaXN0cmlidXRpb24ga2V5IGZvciB0aGlzIHRhYmxlLgorSElOVDogIFRoZSAnRElTVFJJQlVU RUQgQlknIGNsYXVzZSBkZXRlcm1pbmVzIHRoZSBkaXN0cmlidXRpb24gb2YgZGF0YS4gTWFrZSBz dXJlIGNvbHVtbihzKSBjaG9zZW4gYXJlIHRoZSBvcHRpbWFsIGRhdGEgZGlzdHJpYnV0aW9uIGtl eSB0byBtaW5pbWl6ZSBza2V3LgoraW5zZXJ0IGludG8gdGJsX2Rpc3RfZGVwIHZhbHVlcyAoJ3si MSwgMiIgOiAxfScsICd7IjEgPT4gMiI6IDEuMDAwMDAwfScpOworaW5zZXJ0IGludG8gdGJsX2Rp c3RfZGVwIHZhbHVlcyAoJ3siMSwgMiIgOiAzLCAiMSwgMyIgOiAzLCAiMiwgMyIgOiAyLCAiMSwg MiwgMyIgOiAzfScsICd7IjEgPT4gMiI6IDIuMDAwMDAwLCAiMSA9PiAzIjogMy4wMDAwMDAsICIy ID0+IDMiOiAyLjAwMDAwMCwgIjEsIDIgPT4gMyI6IDMuMDAwMDAwfScpOworLS0gdW5tYXRjaGVk IHF1b3RlCitpbnNlcnQgaW50byB0YmxfZGlzdF9kZXAgdmFsdWVzICgnezEsIDIgOiAxfScsICd7 IjEgPT4gMiI6IDEuMDAwMDAwfScpOworRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3Ig ZXh0ZW5kZWQgc3RhdHMgdHlwZQorTElORSAxOiBpbnNlcnQgaW50byB0YmxfZGlzdF9kZXAgdmFs dWVzICgnezEsIDIgOiAxfScsICd7IjEgPT4gMiI6IDEuLi4KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgorREVUQUlMOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIg IjEiCitpbnNlcnQgaW50byB0YmxfZGlzdF9kZXAgdmFsdWVzICgneyIxLCAyIiA6IDF9JywgJ3sx ID0+IDI6IDEuMDAwMDAwfScpOworRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgZXh0 ZW5kZWQgc3RhdHMgdHlwZQorTElORSAxOiBpbnNlcnQgaW50byB0YmxfZGlzdF9kZXAgdmFsdWVz ICgneyIxLCAyIiA6IDF9JywgJ3sxID0+IDI6IDEuLi4KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIHN5bnRheCBlcnJv ciBhdCBvciBuZWFyICIxIgoraW5zZXJ0IGludG8gdGJsX2Rpc3RfZGVwIHZhbHVlcyAoJ3sxLCAy IDogMX0nLCAnezEgPT4gMjogMS4wMDAwMDB9Jyk7CitFUlJPUjogIGludmFsaWQgaW5wdXQgc3lu dGF4IGZvciBleHRlbmRlZCBzdGF0cyB0eXBlCitMSU5FIDE6IGluc2VydCBpbnRvIHRibF9kaXN0 X2RlcCB2YWx1ZXMgKCd7MSwgMiA6IDF9JywgJ3sxID0+IDI6IDEuMC4uLgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitERVRBSUw6ICBzeW50YXggZXJyb3IgYXQg b3IgbmVhciAiMSIKKy0tIEludmFsaWQgdHlwZQoraW5zZXJ0IGludG8gdGJsX2Rpc3RfZGVwIHZh bHVlcyAoJ3siMSwgMiIgOiAxfScsICd7IjEgPT4gMiI6IDF9Jyk7CitFUlJPUjogIGludmFsaWQg aW5wdXQgc3ludGF4IGZvciBleHRlbmRlZCBzdGF0cyB0eXBlCitMSU5FIDE6IGluc2VydCBpbnRv IHRibF9kaXN0X2RlcCB2YWx1ZXMgKCd7IjEsIDIiIDogMX0nLCAneyIxID0+IDIiOi4uLgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgor REVUQUlMOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIjEiCitpbnNlcnQgaW50byB0YmxfZGlz dF9kZXAgdmFsdWVzICgneyIxLCAyIiA6IDEuMDAwMDAwfScsICd7IjEgPT4gMiI6IDEuMDAwMDAw fScpOworRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgZXh0ZW5kZWQgc3RhdHMgdHlw ZQorTElORSAxOiBpbnNlcnQgaW50byB0YmxfZGlzdF9kZXAgdmFsdWVzICgneyIxLCAyIiA6IDEu MDAwMDAwfScsICd7IjEuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgorREVUQUlMOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIjEuMDAwMDAwIgoraW5zZXJ0 IGludG8gdGJsX2Rpc3RfZGVwIHZhbHVlcyAoJ3siMSwgMiIgOiAxfScsICd7IjEuMDAwMDAwID0+ IDIuMDAwMDAwIjogMS4wMDAwMDB9Jyk7CitFUlJPUjogIGludmFsaWQgaW5wdXQgc3ludGF4IGZv ciBleHRlbmRlZCBzdGF0cyB0eXBlCitMSU5FIDE6IGluc2VydCBpbnRvIHRibF9kaXN0X2RlcCB2 YWx1ZXMgKCd7IjEsIDIiIDogMX0nLCAneyIxLjAwMDAwMC4uLgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorREVUQUlMOiAgc3ludGF4 IGVycm9yIGF0IG9yIG5lYXIgIjEuMDAwMDAwIgoraW5zZXJ0IGludG8gdGJsX2Rpc3RfZGVwIHZh bHVlcyAoJ3siMSwgMi4wMDAwMDAiIDogMX0nLCAneyIxID0+IDIiOiAxLjAwMDAwMH0nKTsKK0VS Uk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIGV4dGVuZGVkIHN0YXRzIHR5cGUKK0xJTkUg MTogaW5zZXJ0IGludG8gdGJsX2Rpc3RfZGVwIHZhbHVlcyAoJ3siMSwgMi4wMDAwMDAiIDogMX0n LCAneyIxLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0RF VEFJTDogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICIyLjAwMDAwMCIKK3NlbGVjdCAqIGZyb20g dGJsX2Rpc3RfZGVwOworICAgICAgICAgICAgICAgICAgICAgICAgaSAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlpCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyB7IjEsIDIiOiAzLCAiMSwgMyI6IDMsICIyLCAzIjogMiwgIjEs IDIsIDMiOiAzfSB8IHsiMSA9PiAyIjogMi4wMDAwMDAsICIxID0+IDMiOiAzLjAwMDAwMCwgIjIg PT4gMyI6IDIuMDAwMDAwLCAiMSwgMiA9PiAzIjogMy4wMDAwMDB9CisgeyIxLCAyIjogMX0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB7IjEgPT4gMiI6IDEuMDAwMDAwfQor KDIgcm93cykKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N0YXRzX2V4dC5zcWwg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdGF0c19leHQuc3FsCmluZGV4IGQwZDQyY2QwMTMuLjVh Y2YwZjU0NjUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N0YXRzX2V4dC5zcWwK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3RhdHNfZXh0LnNxbApAQCAtMTY2MywzICsxNjYz LDEwMSBAQCBEUk9QIEZVTkNUSU9OIG9wX2xlYWsoaW50LCBpbnQpOwogUkVTRVQgU0VTU0lPTiBB VVRIT1JJWkFUSU9OOwogRFJPUCBTQ0hFTUEgdHN0c3RhdHMgQ0FTQ0FERTsKIERST1AgVVNFUiBy ZWdyZXNzX3N0YXRzX3VzZXIxOworCisgICAgLS0gVGVzdCBwZ19uZGlzdGluY3RfaW4KK2Ryb3Ag dGFibGUgaWYgZXhpc3RzIHRibF9kaXN0aW5jdDsKK2NyZWF0ZSB0YWJsZSB0YmxfZGlzdGluY3Qo aSBpbnQsIGlpIHBnX25kaXN0aW5jdCk7CitpbnNlcnQgaW50byB0YmxfZGlzdGluY3QgdmFsdWVz ICgxLCAneyIxLCAyIjogMX0nKTsKK2luc2VydCBpbnRvIHRibF9kaXN0aW5jdCB2YWx1ZXMgKDIs ICd7IjEsIDIiOiAyLCAiMSwgMyI6IDMsICIyLCAzIjogMiwgIjEsIDIsIDMiOiAzfScpOworaW5z ZXJ0IGludG8gdGJsX2Rpc3RpbmN0IHZhbHVlcyAoMywgJ3siMTIzLCAyMzQiOiAxMX0nKTsKK3Nl bGVjdCAqIGZyb20gdGJsX2Rpc3RpbmN0OworCistLSBsZWFkaW5nIHNwYWNlCitpbnNlcnQgaW50 byB0YmxfZGlzdGluY3QgdmFsdWVzICgxLCAnIHsiMSwgMiI6IDF9Jyk7CistLSB0cmFpbGluZyBz cGFjZQoraW5zZXJ0IGludG8gdGJsX2Rpc3RpbmN0IHZhbHVlcyAoMSwgJ3siMSwgMiI6IDF9ICcp OworLS0gdW5tYXRjaGVkIHF1b3RlCitpbnNlcnQgaW50byB0YmxfZGlzdGluY3QgdmFsdWVzICgx LCAneyIxIiwgMiI6IDF9ICcpOworLS0gc3BhY2UgaW4gYXR0cmlidXRlIGxpc3QKK2luc2VydCBp bnRvIHRibF9kaXN0aW5jdCB2YWx1ZXMgKDEsICd7IjEgMywgMiI6IDF9ICcpOworLS0gY29sb24g aW4gYXR0cmlidXRlIGxpc3QKK2luc2VydCBpbnRvIHRibF9kaXN0aW5jdCB2YWx1ZXMgKDEsICd7 IjE6IDIiOiAxfScpOworaW5zZXJ0IGludG8gdGJsX2Rpc3RpbmN0IHZhbHVlcyAoMSwgJ3siMSwg MjoiIDF9Jyk7CitpbnNlcnQgaW50byB0YmxfZGlzdGluY3QgdmFsdWVzICgxLCAneyI6MSAyIjog MX0nKTsKKy0tIHplcm8vc2luZ2xlIGl0ZW0gYXR0cmlidXRlIGxpc3QKK2luc2VydCBpbnRvIHRi bF9kaXN0aW5jdCB2YWx1ZXMgKDEsICd7IjEiOiAxfScpOworaW5zZXJ0IGludG8gdGJsX2Rpc3Rp bmN0IHZhbHVlcyAoMSwgJ3s6IDF9Jyk7CitpbnNlcnQgaW50byB0YmxfZGlzdGluY3QgdmFsdWVz ICgxLCAneyIiOiAxfScpOworaW5zZXJ0IGludG8gdGJsX2Rpc3RpbmN0IHZhbHVlcyAoMSwgJ3si ICI6IDF9Jyk7CitpbnNlcnQgaW50byB0YmxfZGlzdGluY3QgdmFsdWVzICgxLCAne30nKTsKK2lu c2VydCBpbnRvIHRibF9kaXN0aW5jdCB2YWx1ZXMgKDEsICd7On0nKTsKKy0tIGlsbGVnYWwgY2hh cmFjdGVyCitpbnNlcnQgaW50byB0YmxfZGlzdGluY3QgdmFsdWVzICgxLCAneyIxLHwgMiI6IDF9 Jyk7CisKKy0tIG11bHRpcGxlIGNvbnNlY3V0aXZlIGNoYXJhY3RlcnMKK2luc2VydCBpbnRvIHRi bF9kaXN0aW5jdCB2YWx1ZXMgKDEsICd7IjEsLCAyIjogMX0nKTsKK2luc2VydCBpbnRvIHRibF9k aXN0aW5jdCB2YWx1ZXMgKDEsICd7IjEiOiAxfScpOworCistLSBOZWVkIHRvIGFkZCBjaGVjayBv biBjYXRhbG9nIHRhYmxlIGluc2VydCB0aGF0IGF0cmlidXRlIG51bWJlcnMgYXJlIGxlZ2FsCist LSAoZS5nLiB0aGVyZSBzaG91bGRuJ3QgYmUgYXR0cmlidXRlIG51bWJlciAxMDAgZm9yIGEgdGFi bGUgd2l0aCBvbmx5IDIKKy0tIGNvbHVtbnMgYWxzbyBpdCBzaG91bGQgbWF0Y2gpCisKK3NlbGVj dCAqIGZyb20gdGJsX2Rpc3RpbmN0OworCisKKy0tIFRlc3QgcGdfZGVwZW5kZW5jaWVzX2luCitk cm9wIHRhYmxlIGlmIGV4aXN0cyB0YmxfZGVwZW5kZW5jaWVzOworY3JlYXRlIHRhYmxlIHRibF9k ZXBlbmRlbmNpZXMoaSBpbnQsIGlpIHBnX2RlcGVuZGVuY2llcyk7CitpbnNlcnQgaW50byB0Ymxf ZGVwZW5kZW5jaWVzIHZhbHVlcyAoMSwgJ3siMSA9PiAyIjogMS4wMDAwMDB9Jyk7CitpbnNlcnQg aW50byB0YmxfZGVwZW5kZW5jaWVzIHZhbHVlcyAoMiwgJ3siMSA9PiAyIjogMi4wMDAwMDAsICIx ID0+IDMiOiAzLjAwMDAwMCwgIjIgPT4gMyI6IDIuMDAwMDAwLCAiMSwgMiA9PiAzIjogMy4wMDAw MDB9Jyk7CisKK3NlbGVjdCAqIGZyb20gdGJsX2RlcGVuZGVuY2llczsKKworLS0gbGVhZGluZyBz cGFjZQoraW5zZXJ0IGludG8gdGJsX2RlcGVuZGVuY2llcyB2YWx1ZXMgKDEsICcgeyIxID0+IDIi OiAxLjAwMDAwMH0nKTsKKy0tIHRyYWlsaW5nIHNwYWNlCitpbnNlcnQgaW50byB0YmxfZGVwZW5k ZW5jaWVzIHZhbHVlcyAoMSwgJ3siMSA9PiAyIjogMS4wMDAwMDB9ICcpOworLS0gdW5tYXRjaGVk IHF1b3RlCitpbnNlcnQgaW50byB0YmxfZGVwZW5kZW5jaWVzIHZhbHVlcyAoMSwgJ3siMSIgPT4g MiI6IDEuMDAwMDAwfSAnKTsKKy0tIFdyb25nIGZvcm1hdAoraW5zZXJ0IGludG8gdGJsX2RlcGVu ZGVuY2llcyB2YWx1ZXMgKDEsICd7IjEsIDIiOiAxLjAwMDAwMH0nKTsKK2luc2VydCBpbnRvIHRi bF9kZXBlbmRlbmNpZXMgdmFsdWVzICgxLCAneyIxID0+IDIiOiAxfScpOworaW5zZXJ0IGludG8g dGJsX2RlcGVuZGVuY2llcyB2YWx1ZXMgKDEsICd7IjEgPT4gMiI6IDEuMDAwMDAwLCAiIDIgPT4g MSI6IDJ9Jyk7CistLSBzcGFjZSBpbiBhdHRyaWJ1dGUgbGlzdAoraW5zZXJ0IGludG8gdGJsX2Rl cGVuZGVuY2llcyB2YWx1ZXMgKDEsICd7IjEgMyA9PiAyIjogMS4wMDAwMDB9ICcpOworLS0gY29s b24gaW4gYXR0cmlidXRlIGxpc3QKK2luc2VydCBpbnRvIHRibF9kZXBlbmRlbmNpZXMgdmFsdWVz ICgxLCAneyIxOiAyIjogMS4wMDAwMDB9Jyk7CitpbnNlcnQgaW50byB0YmxfZGVwZW5kZW5jaWVz IHZhbHVlcyAoMSwgJ3siMSA9PiAyOiIgMS4wMDAwMDB9Jyk7CitpbnNlcnQgaW50byB0YmxfZGVw ZW5kZW5jaWVzIHZhbHVlcyAoMSwgJ3siOjEgMiI6IDEuMDAwMDAwfScpOworaW5zZXJ0IGludG8g dGJsX2RlcGVuZGVuY2llcyB2YWx1ZXMgKDEsICd7IjEsIDIiIDEuMDAwMDAwfScpOworLS0gemVy by9zaW5nbGUgaXRlbSBhdHRyaWJ1dGUgbGlzdAoraW5zZXJ0IGludG8gdGJsX2RlcGVuZGVuY2ll cyB2YWx1ZXMgKDEsICd7IjEiOiAxLjAwMDAwMH0nKTsKK2luc2VydCBpbnRvIHRibF9kZXBlbmRl bmNpZXMgdmFsdWVzICgxLCAnezogMS4wMDAwMDB9Jyk7CitpbnNlcnQgaW50byB0YmxfZGVwZW5k ZW5jaWVzIHZhbHVlcyAoMSwgJ3siIjogMS4wMDAwMDB9Jyk7CitpbnNlcnQgaW50byB0YmxfZGVw ZW5kZW5jaWVzIHZhbHVlcyAoMSwgJ3siICI6IDEuMDAwMDAwfScpOworaW5zZXJ0IGludG8gdGJs X2RlcGVuZGVuY2llcyB2YWx1ZXMgKDEsICd7fScpOworaW5zZXJ0IGludG8gdGJsX2RlcGVuZGVu Y2llcyB2YWx1ZXMgKDEsICd7On0nKTsKKworLS0gbXVsdGlwbGUgY29uc2VjdXRpdmUgY2hhcmFj dGVycworaW5zZXJ0IGludG8gdGJsX2RlcGVuZGVuY2llcyB2YWx1ZXMgKDEsICd7IjEgPT49PiAy IjogMS4wMDAwMDB9Jyk7CitpbnNlcnQgaW50byB0YmxfZGVwZW5kZW5jaWVzIHZhbHVlcyAoMSwg J3siMSI6IDEuMDAwMDAwfScpOworCitzZWxlY3QgKiBmcm9tIHRibF9kZXBlbmRlbmNpZXM7CisK KworLS0gVGVzdCBhIHRhYmxlIHdpdGggY29sdW1ucyBvZiB0eXBlIHBnX25kaXN0aW5jdCBhbmQg cGdfZGVwZW5kZW5jaWVzCitkcm9wIHRhYmxlIGlmIGV4aXN0cyB0YmxfZGlzdF9kZXA7CitjcmVh dGUgdGFibGUgdGJsX2Rpc3RfZGVwKGkgcGdfbmRpc3RpbmN0LCBpaSBwZ19kZXBlbmRlbmNpZXMp OworaW5zZXJ0IGludG8gdGJsX2Rpc3RfZGVwIHZhbHVlcyAoJ3siMSwgMiIgOiAxfScsICd7IjEg PT4gMiI6IDEuMDAwMDAwfScpOworaW5zZXJ0IGludG8gdGJsX2Rpc3RfZGVwIHZhbHVlcyAoJ3si MSwgMiIgOiAzLCAiMSwgMyIgOiAzLCAiMiwgMyIgOiAyLCAiMSwgMiwgMyIgOiAzfScsICd7IjEg PT4gMiI6IDIuMDAwMDAwLCAiMSA9PiAzIjogMy4wMDAwMDAsICIyID0+IDMiOiAyLjAwMDAwMCwg IjEsIDIgPT4gMyI6IDMuMDAwMDAwfScpOworLS0gdW5tYXRjaGVkIHF1b3RlCitpbnNlcnQgaW50 byB0YmxfZGlzdF9kZXAgdmFsdWVzICgnezEsIDIgOiAxfScsICd7IjEgPT4gMiI6IDEuMDAwMDAw fScpOworaW5zZXJ0IGludG8gdGJsX2Rpc3RfZGVwIHZhbHVlcyAoJ3siMSwgMiIgOiAxfScsICd7 MSA9PiAyOiAxLjAwMDAwMH0nKTsKK2luc2VydCBpbnRvIHRibF9kaXN0X2RlcCB2YWx1ZXMgKCd7 MSwgMiA6IDF9JywgJ3sxID0+IDI6IDEuMDAwMDAwfScpOworLS0gSW52YWxpZCB0eXBlCitpbnNl cnQgaW50byB0YmxfZGlzdF9kZXAgdmFsdWVzICgneyIxLCAyIiA6IDF9JywgJ3siMSA9PiAyIjog MX0nKTsKK2luc2VydCBpbnRvIHRibF9kaXN0X2RlcCB2YWx1ZXMgKCd7IjEsIDIiIDogMS4wMDAw MDB9JywgJ3siMSA9PiAyIjogMS4wMDAwMDB9Jyk7CitpbnNlcnQgaW50byB0YmxfZGlzdF9kZXAg dmFsdWVzICgneyIxLCAyIiA6IDF9JywgJ3siMS4wMDAwMDAgPT4gMi4wMDAwMDAiOiAxLjAwMDAw MH0nKTsKK2luc2VydCBpbnRvIHRibF9kaXN0X2RlcCB2YWx1ZXMgKCd7IjEsIDIuMDAwMDAwIiA6 IDF9JywgJ3siMSA9PiAyIjogMS4wMDAwMDB9Jyk7CisKK3NlbGVjdCAqIGZyb20gdGJsX2Rpc3Rf ZGVwOwotLSAKMi4zMC4xIChBcHBsZSBHaXQtMTMwKQoK --_004_MN2PR05MB687981D756160DF3EBA38B8AB6FF9MN2PR05MB6879namp_--