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 1nKILB-0004aw-R0 for pgsql-hackers@arkaria.postgresql.org; Wed, 16 Feb 2022 11:19:22 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nKILA-000858-39 for pgsql-hackers@arkaria.postgresql.org; Wed, 16 Feb 2022 11:19:20 +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 1nKIL9-00084z-2M for pgsql-hackers@lists.postgresql.org; Wed, 16 Feb 2022 11:19:19 +0000 Received: from esa2.fujitsucc.c3s2.iphmx.com ([68.232.152.246]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nKIL5-0006DO-BE for pgsql-hackers@lists.postgresql.org; Wed, 16 Feb 2022 11:19:18 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1645010356; x=1676546356; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=OTaclnQl0+dfxTgk692Re3D1RtckOowxxQITVytkudA=; b=W/KLNzDqgEwEI7tgleV0N2iJDH2W0oZCXN/PzTYx/t+d2UvEs7P1vK0G /nThQBim1AM0qeRs1+tfyrcy3zGrUwHT+rWmLUj9yMSPaQg+FprRxadOT 4iUTPNDriZWgf+rr098qakmrWY6IAusu5+R/6/l1HkoSai05yHokV/PrB 53iuwLzJC+DzujSnihZm1HnufoKwpteuMbUpciPhNE1l5X2szG/GZiDoB D7GQYcXeH5c1CR0VGwIgZh49I57cxYYfM9+XbKhkfo67o5CMhJdm91vuJ BkBDzIvCDEwLccCBRWkDoNxU9DMljwWAAkKFSy0HXHLOzN820tx2UeOwr w==; X-IronPort-AV: E=McAfee;i="6200,9189,10259"; a="58097199" X-IronPort-AV: E=Sophos;i="5.88,373,1635174000"; d="scan'208,223";a="58097199" Received: from mail-tycjpn01lp2171.outbound.protection.outlook.com (HELO JPN01-TYC-obe.outbound.protection.outlook.com) ([104.47.23.171]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Feb 2022 20:19:10 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AVIpRtaQHgwQQJmqqFiFfzCcwlvJfgsHRlTpSryznp9Xa2s7zuMuWwSeIH/+fvtsUgmfIGSFPQO4hz9uju62vOYHJ66ZR6B/7Y0Esll7WABDmS235Hmzks4cn+HVGeiQqEht4Gx9GuWtRGPwHrPqUZlRimkKzBVVIVWAl+NKKiXBn5ZQTLWRHi5P21e4i/9xl+scl+h2C3lyVEYAGkvETYepaW6XoeiQ4PufKk4Il5B0m1kHE8zoOINr72Xy6Z5irWhNVE1VbeaI+vM/CGMsU0ZTBcAI8hgImDX8srE3PWRPvas+F5Dt7b6VYEwDvTKTkhPMkm98YABEyPl/5t1NXA== 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=5zscq1uQL/g2PkSHblaRb5Du4d1Vl9ARaMQ17hJfpd0=; b=Jqzc1OGoZRxBfyQOjf/UYTEH7epA76cXjjAXVYj/7VEVOu8DF5GbiEvZTr2qWI2CZmEWIuFpco3Duoz7emhhUI0aVHgZjaM8RSBFplFPuDijqld6YhQDqOBJ8SiswY3D6+W0FOD7qhw19mrDh3ySUxfRVsC684brbmbDJxzrD/YhW1GFRMApUU4ws5UbmJBkgPGoGZzEYrq2645DXgo+3rsw6TFcqMrGpbX0oEKOXOaAjA+p/tk9W7lak0IZDyYF1UQMz0002iOIbMpj+HkxklbNw0WEVlKYeZrCeOfpZRy2Xp4+yoD3UFwcZJDaz4gdkXvi8pilMyVK4oAxxttQug== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fujitsu.onmicrosoft.com; s=selector2-fujitsu-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5zscq1uQL/g2PkSHblaRb5Du4d1Vl9ARaMQ17hJfpd0=; b=liX/hj9eOYkGWpDazG8bijf8R7Dxol022GzmfGHEESE5RmaGxEfX3ZIKl6XG7xnhQqaXjPTH77UkMWsWrrxoPQ/VUfqKXJIIri1qRv0atnzqdM8N9i+x5Jyjs7oA7a3BTWU6OxPx4Eb6415MbSJ5kt+3aeP6uO0Oc7PocCpzwKQ= Received: from TYCPR01MB8373.jpnprd01.prod.outlook.com (2603:1096:400:15f::9) by TYWPR01MB9629.jpnprd01.prod.outlook.com (2603:1096:400:1a7::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4975.17; Wed, 16 Feb 2022 11:19:07 +0000 Received: from TYCPR01MB8373.jpnprd01.prod.outlook.com ([fe80::cbe:e19d:f73d:9972]) by TYCPR01MB8373.jpnprd01.prod.outlook.com ([fe80::cbe:e19d:f73d:9972%7]) with mapi id 15.20.4975.019; Wed, 16 Feb 2022 11:19:06 +0000 From: "osumi.takamichi@fujitsu.com" To: 'Amit Kapila' CC: "tanghy.fnst@fujitsu.com" , "wangw.fnst@fujitsu.com" , vignesh C , Greg Nancarrow , Masahiko Sawada , Mark Dilger , "Smith, Peter" , PostgreSQL Hackers Subject: RE: Optionally automatically disable logical replication subscriptions on error Thread-Topic: Optionally automatically disable logical replication subscriptions on error Thread-Index: AQHXY7YD1nwUFO8cFUWY0PDiszA2XqsZMrEAgAD4WQCAAPYaAIAASpGAgAJT7YCAAAKZgIALJ6mAgMf5vwCACZoWAIACXj8ggAAx2gCAAeSJwIABPCWAgAaHeOCAAvcAAIAAJOUQgAZB3wCABsiEAIAFnJuAgACC8qCAAS6OAIAAak5wgAAPMgCAAMT44IAAP5eAgAAvuLCAAfAFUIAEIHUAgABtyBCACvHPgIABR7SggAMlNQCAAHntQIASNYiAgA04ekCAAPMhAIAAKujggD2xvACAASGZMIAB92jg Date: Wed, 16 Feb 2022 11:19:06 +0000 Message-ID: References: In-Reply-To: Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_Enabled=true; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_SetDate=2022-02-15T05:18:59Z; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_Method=Standard; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_Name=FUJITSU-RESTRICTED?; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_SiteId=a19f121d-81e1-4858-a9d8-736e267fd4c7; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_ActionId=c8839e84-37e8-4db6-9c87-0cd4fb03c629; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_ContentBits=0 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=fujitsu.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1de2fc82-ae27-4239-963a-08d9f13e2583 x-ms-traffictypediagnostic: TYWPR01MB9629:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2331; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: pCv6mzUdxl7ShjTiQer9gc1qcDBWhbGGmVtyurM6H6KZSrFsx4WcG133EjcTYGmZp5VumtfzlkXSAwp6zP0ABzLSmNnrz12nIp4t7PKr8fffIxI31QGwpCFVF+oNsXSxnBxIILNWIKbMVhbDtR+67jkXfxd06kWK5HSkFHNHYqqLsetapjpOq1PAeIzExgBNOFTPwyV9x/7X0zWjliQ5Am61ABRzwzRRwCUo7GL5esyZ/6Rlqf3Gu7yrIEKmkKiRfqv2EMezlya0Bc559jkoD97susWxVehX7qpTtKf2kHGM+LjQLnTDeNxH2t/B8p6bQyLMo4HE4RzhaYpQR1237mheZ15os3g+5GVXZi6tzMO5oKcIeHP2WwXzw6Q3YrkUoEKy9nvgfRdY952uaMVnx4BYbo+KEZ/TQKV+P3wK4EdFjhx9qsnIURlMEA8THYnegsXBdjr+xn80sxtzhRu+Y4eKkU6Vd/tH3COf9oh4ZU5DW8aTfjUcmyl1yJvzpdOqoVha9EwSRFiC+o+52g23LYTMqWnRE3dCoySjxTaSGKstEdhE9gpICOubsx0io0puLr2mh+hGnhh210D7jKeeuzY6Hi2qplRyTgdunxVXSPmoG16YB16WV9olRc74vCiawmoIGcaB+IkuSpRvVksIxeP5481GhmNt1ntJM/fYhIEYQshzqVZ0rCZe0tr/+rvaJWISoPGZ8IFSDZZFUBy5Sg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYCPR01MB8373.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(76116006)(5660300002)(66446008)(71200400001)(4744005)(52536014)(4326008)(8936002)(66946007)(2906002)(7696005)(9686003)(66556008)(66476007)(85182001)(6506007)(64756008)(8676002)(316002)(54906003)(122000001)(26005)(186003)(86362001)(83380400001)(99936003)(55016003)(38070700005)(82960400001)(508600001)(6916009)(38100700002)(33656002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-2022-jp?B?bThRSDBOL0ZkMTlxTFhUMDNYNzZQbXlzRkJ5Qm1DOTNsZzUrYWlUSmM2?= =?iso-2022-jp?B?YTZKcjVtRmZNZjhWSTBmWmhyNXZlV0JoMnhmV0F1L21xTUNDNm5XTEtO?= =?iso-2022-jp?B?Tmoxc1lOTTdmR3FOT2ZQT2x1VlozK1BFMkV5c1JvallzYm80ZGF4U3Ny?= =?iso-2022-jp?B?a0JiZWwzbDFkK3J1dmZsUlh1TU9GUXJKN0lCUVBLckxOS3ZrVWJ0SnhS?= =?iso-2022-jp?B?NmFNZTZPNjd2QmcvM00rUzdtUHVWNGk0UWlvVU0wUldkYi94ZkoxbHQz?= =?iso-2022-jp?B?b3dMS3VJS05XMldxSmFzcEoraDVKNncveHJRa3ZqZjRnSmRyS0FMdEJu?= =?iso-2022-jp?B?Umh4TjBiQnNXQkN0UG05MGdzY3VxcTJ1MmRhejlTMW9vSjFoRmFqMUJh?= =?iso-2022-jp?B?eGNyNW8zRlBxMFFOdWlqdUtTckdJUTBPbUpndUE5cjd4dWE1ZlZTSXR0?= =?iso-2022-jp?B?eW45dTJNb2s0b2xkRHd6S1lySE12NnJEcHJBS2lMRWdNNXdWUHplQmh5?= =?iso-2022-jp?B?d3dhL0tJa3ZHc25Ea0I0Rkg5MS9jZ01rMVBDNFVjSnlPQk1DQ2cyRGlo?= =?iso-2022-jp?B?Vm1YQVM3c1IzRUdyMUowRktRdVYzdVMrNmFmeWh0YldSUmxCb2llNFBH?= =?iso-2022-jp?B?YUUwcXhPb1FuaFhYWlhwcDIvRlpXdkw4dTBPbXhZSXhFNW9JU2RLUzND?= =?iso-2022-jp?B?RExsMlEySGNsVERvQkY0U3JNcmRybkJtT2pPaCtWUk1xRTBDTjRtdnU3?= =?iso-2022-jp?B?UzFlWnBjUkExSkI3ZmpNOEhpZno1SE0wSk1JQmtXRWV5YkNDQVI3SlVs?= =?iso-2022-jp?B?bXl5czVDK3hPc0h1QityVmMvbENpYmtTUjByUWt5bnlLRS9IVjRwNXlR?= =?iso-2022-jp?B?ZkhMcXFDeGlLaDRCTDNualZoaUpoNHk1QmFyVXNwZmZoT0lnSjFlWSti?= =?iso-2022-jp?B?a1dCRSttUVJHajlNZVRONGZTa1F6QWFSLzhtQVB5RzF4blpKMldSRXlN?= =?iso-2022-jp?B?MHFtMFRqcWJueVF3aHdEVWVwTlFwb1hPYURKUHhnQzdFYmZWYS80dXdU?= =?iso-2022-jp?B?dVdDMWlUNUxSeHpoczliaHFwOFZ5T0dlR2RSOUlMdXRnMHBQeGRvK2kw?= =?iso-2022-jp?B?M1l4eS9obUZQTTZwdWdWSjdaUi9tV05XV1hrbmxDYXo4ZzJ4clFBZXpJ?= =?iso-2022-jp?B?RGoxeU43SkEwdFV3bzhHVWxjcUlON1JDLzlnWDMzZXZOa3MydG1LZGVY?= =?iso-2022-jp?B?T3BqZWFqTjgvZ2hsTnk3dXloVGovczExZGxWdzVLNVBpQkZHdUkxVnph?= =?iso-2022-jp?B?YVpFRlJWNGVidExQTVJOMVdNSktXR0dvNFpETFNHS3hSUjN3Um5PdjBQ?= =?iso-2022-jp?B?YjNqdVJtcWVoZ3RWc1NoS1dFUkRpcTQvbHU2NHhNSzMxOUY3dlgrK2lD?= =?iso-2022-jp?B?cDc4ckJWd3BnQUxMdHFMdDI5NkVWYlQyMHpuaFNxZk9lZXR5Y3hWZDZr?= =?iso-2022-jp?B?ZUxndFgxUlNiemx1NHUxQnRRK01IUmxXRmZxTnJOb2xCNFZMajF0NWps?= =?iso-2022-jp?B?c2xadldLRFZCblRzeXNqYWFkSnZjQzV3VkZNemZ3Zjg1cG9jVFUrdnlF?= =?iso-2022-jp?B?ZlVDV09wNXdjL1VxUE80eFJlTkhZaHJIdmlKajZKYi84U1NzbUJBclgx?= =?iso-2022-jp?B?THlvZGJZdnBFR0VVZzhob2pJYW1TODMreHlIalIvQ1MybXJKVWdwV2hx?= =?iso-2022-jp?B?R2JFQXRpK01jWlViZ3RrNmNyVFlCRWpJejBPWDlFeDZSY0ljbFZYa1Zz?= =?iso-2022-jp?B?QkZMWnhsTDdRMzlTVmVxVllWeGZsK0NMay9XS2lSNmZvTzZmN0ZmbEt1?= =?iso-2022-jp?B?YTJ3SUJyWFpwRTk5ejFNeXZuMXBtb0w1WEthZTBNRFFZTHM1cERSZlF5?= =?iso-2022-jp?B?SlF0QkJULzF3M3NBb1dkTUdIcXdEK2w0UlYwb3RxNXN1Wk5ZRmJidjdS?= =?iso-2022-jp?B?U3pSK0J2VGJFK0g3RGNQdFpscXhqa3UvN3Z0SGJIcUYvMGRYWXdseENV?= =?iso-2022-jp?B?UVI0WW1yd25uV2lFUEdZUHYwVWVzVU9XbHBUUUZOTTdKSGdXdEdyQzB5?= =?iso-2022-jp?B?b29ZTjNLUUxsdlNtV3ZJT2U2WEFVQ1l0dlhzVDNnZmx1RjJJczBGb21p?= =?iso-2022-jp?B?YVVtZnlza0dxSmEzaXUvNXE1dTBueXVoMVFoVWhPcWloRmF5emVRd2VW?= =?iso-2022-jp?B?Ry9WQVhCZzhpMGRURGsyWmtsOUxOeitmRXhwaW5zRlhSUE9DNCtUeXhR?= =?iso-2022-jp?B?eWVzZXZTcmFQUU9hYkl2eThMWEU5aGpkcUNWSGNmVnVuOXFDZVpsaEtQ?= =?iso-2022-jp?B?bGEwLzZLQzFxTHE2c25wblI4NkdZRW1GanRYMkZydWRjbkFYR1ZNYXIz?= =?iso-2022-jp?B?cmhWcnpnPT0=?= Content-Type: multipart/mixed; boundary="_002_TYCPR01MB8373CCCEFF852F17E1C5D85EED359TYCPR01MB8373jpnp_" MIME-Version: 1.0 X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYCPR01MB8373.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1de2fc82-ae27-4239-963a-08d9f13e2583 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Feb 2022 11:19:06.8189 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a19f121d-81e1-4858-a9d8-736e267fd4c7 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: pyNIrioJWGk9m0F3eK2wILLQbkX5d6Y6totj4QmGn7RidN9znvETYJ5JtgsiehKog5Y/diB+iEqoEHVdIEt5Nn/r4Kx3KculgucZlEbLan4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWPR01MB9629 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_002_TYCPR01MB8373CCCEFF852F17E1C5D85EED359TYCPR01MB8373jpnp_ Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: quoted-printable On Tuesday, February 15, 2022 2:19 PM I wrote > On Monday, February 14, 2022 8:58 PM Amit Kapila > > 2. Can we move the code related to tablesync worker and its error > > handing (the code insider if (am_tablesync_worker())) to a separate > > function say > > LogicalRepHandleTableSync() or something like that. > > > > 3. Similarly, we can move apply-loop related code ("Run the main > > loop.") to a separate function say LogicalRepHandleApplyMessages(). > > > > If we do (2) and (3), I think the code in ApplyWorkerMain will look > > better. What do you think? > I agree with (2) and (3), since those contribute to better readability. >=20 > Attached a new patch v17 that addresses those refactorings. Hi, I noticed that one new tap test was added in the src/test/subscription/ and needed to increment the number of my test of this patch. Also, I conducted minor fixes of comments and function name. Kindly have a look at the attached v18. Best Regards, Takamichi Osumi --_002_TYCPR01MB8373CCCEFF852F17E1C5D85EED359TYCPR01MB8373jpnp_ Content-Type: application/octet-stream; name="v18-0001-Optionally-disable-subscriptions-on-error.patch" Content-Description: v18-0001-Optionally-disable-subscriptions-on-error.patch Content-Disposition: attachment; filename="v18-0001-Optionally-disable-subscriptions-on-error.patch"; size=52914; creation-date="Wed, 16 Feb 2022 11:16:58 GMT"; modification-date="Wed, 16 Feb 2022 11:16:58 GMT" Content-Transfer-Encoding: base64 RnJvbSA1YzNjNThlZjVlMmU3NzU0YTQxMWZiMjY1OTdlMDI3ZDM4NjQxYmU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYWthbWljaGkgT3N1bWkgPG9zdW1pLnRha2FtaWNoaUBmdWpp dHN1LmNvbT4KRGF0ZTogV2VkLCAxNiBGZWIgMjAyMiAxMDo0NDowOSArMDAwMApTdWJqZWN0OiBb UEFUQ0ggdjE4XSBPcHRpb25hbGx5IGRpc2FibGUgc3Vic2NyaXB0aW9ucyBvbiBlcnJvcgoKTG9n aWNhbCByZXBsaWNhdGlvbiBhcHBseSB3b3JrZXJzIGZvciBhIHN1YnNjcmlwdGlvbiBjYW4gZWFz aWx5IGdldApzdHVjayBpbiBhbiBpbmZpbml0ZSBsb29wIG9mIGF0dGVtcHRpbmcgdG8gYXBwbHkg YSBjaGFuZ2UsCnRyaWdnZXJpbmcgYW4gZXJyb3IgKHN1Y2ggYXMgYSBjb25zdHJhaW50IHZpb2xh dGlvbiksIGV4aXRpbmcgd2l0aAphbiBlcnJvciB3cml0dGVuIHRvIHRoZSBzdWJzY3JpcHRpb24g d29ya2VyIGxvZywgYW5kIHJlc3RhcnRpbmcuCgpUbyBwYXJ0aWFsbHkgcmVtZWR5IHRoZSBzaXR1 YXRpb24sIGFkZGluZyBhIG5ldwpzdWJzY3JpcHRpb25fcGFyYW1ldGVyIG5hbWVkICdkaXNhYmxl X29uX2Vycm9yJy4gVG8gYmUgY29uc2lzdGVudAp3aXRoIG9sZCBiZWhhdmlvciwgdGhlIHBhcmFt ZXRlciBkZWZhdWx0cyB0byBmYWxzZS4gV2hlbiB0cnVlLCBib3RoCnRoZSB0YWJsZSBzeW5jIHdv cmtlciBhbmQgYXBwbHkgd29ya2VyIGNhdGNoIGFueSBlcnJvcnMgdGhyb3duIGFuZApkaXNhYmxl IHRoZSBzdWJzY3JpcHRpb24gaW4gb3JkZXIgdG8gYnJlYWsgdGhlIGxvb3AuIFRoZSBlcnJvciBp cwpzdGlsbCBhbHNvIHdyaXR0ZW4gdG8gdGhlIGxvZ3MuCgpSZXF1aXJlIHRvIGJ1bXAgY2F0YWxv ZyB2ZXJzaW9uLgoKUHJvcG9zZWQgYW5kIHdyaXR0ZW4gb3JpZ2luYWxseSBieSBNYXJrIERpbGdl cgpUYWtlbiBvdmVyIGJ5IE9zdW1pIFRha2FtaWNoaSwgR3JlZyBOYW5jYXJyb3cKUmV2aWV3ZWQg YnkgR3JlZyBOYW5jYXJyb3csIFZpZ25lc2ggQywgQW1pdCBLYXBpbGEsIFdhbmcgd2VpLCBUYW5n IEhhaXlpbmcKRGlzY3Vzc2lvbiA6IGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL21lc3NhZ2Ut aWQvREIzNTQzOEYtOTM1Ni00ODQxLTg5QTAtNDEyNzA5RUJEM0FCJTQwZW50ZXJwcmlzZWRiLmNv bQotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICAgIHwg IDEwICsKIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwgICAgICAgIHwg ICA0ICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbCAgICAgICB8 ICAxMiArKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYyAgICAgICAgICAg fCAgIDEgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsICAgICAgICAgICAg fCAgIDMgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYyAgICAgICAg IHwgIDI3ICsrLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYyAgICAg ICAgfCAyNjQgKysrKysrKysrKysrKysrKysrLS0tLS0tCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5jICAgICAgICAgICAgICAgICAgICAgICB8ICAxNyArLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJl LmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKy0KIHNyYy9iaW4vcHNxbC90YWItY29t cGxldGUuYyAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3N1YnNjcmlwdGlvbi5oICAgICAgICAgICB8ICAgNiArCiBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgICAgICB8IDExOSArKysrKystLS0tLQogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbCAgICAgICAgICAgfCAgMTQgKysKIHNyYy90ZXN0 L3N1YnNjcmlwdGlvbi90LzAyOF9kaXNhYmxlX29uX2Vycm9yLnBsIHwgMTk2ICsrKysrKysrKysr KysrKysrKwogMTUgZmlsZXMgY2hhbmdlZCwgNTY4IGluc2VydGlvbnMoKyksIDEyMCBkZWxldGlv bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMjhfZGlz YWJsZV9vbl9lcnJvci5wbAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s IGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggNWExNjI3YS4uOWM3ZTgwZiAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Nh dGFsb2dzLnNnbWwKQEAgLTc3NjIsNiArNzc2MiwxNiBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNl YWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4m bAogCiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+ PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5zdWJk aXNhYmxlb25lcnI8L3N0cnVjdGZpZWxkPiA8dHlwZT5ib29sPC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgSWYgdHJ1ZSwgdGhlIHN1YnNjcmlwdGlvbiB3aWxsIGJl IGRpc2FibGVkIHdoZW4gc3Vic2NyaXB0aW9uCisgICAgICAgd29ya2VycyBkZXRlY3QgYW55IGVy cm9ycworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD5zdWJjb25uaW5mbzwvc3RydWN0Zmll bGQ+IDx0eXBlPnRleHQ8L3R5cGU+CiAgICAgICA8L3BhcmE+CiAgICAgICA8cGFyYT4KZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCmluZGV4IDBiMDI3Y2MuLjMxMDllZTkg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbApAQCAtMjAxLDggKzIw MSw4IEBAIEFMVEVSIFNVQlNDUklQVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8CiAgICAgICBpbmZvcm1hdGlvbi4gIFRoZSBw YXJhbWV0ZXJzIHRoYXQgY2FuIGJlIGFsdGVyZWQKICAgICAgIGFyZSA8bGl0ZXJhbD5zbG90X25h bWU8L2xpdGVyYWw+LAogICAgICAgPGxpdGVyYWw+c3luY2hyb25vdXNfY29tbWl0PC9saXRlcmFs PiwKLSAgICAgIDxsaXRlcmFsPmJpbmFyeTwvbGl0ZXJhbD4sIGFuZAotICAgICAgPGxpdGVyYWw+ c3RyZWFtaW5nPC9saXRlcmFsPi4KKyAgICAgIDxsaXRlcmFsPmJpbmFyeTwvbGl0ZXJhbD4sPGxp dGVyYWw+c3RyZWFtaW5nPC9saXRlcmFsPiwgYW5kCisgICAgICA8bGl0ZXJhbD5kaXNhYmxlX29u X2Vycm9yPC9saXRlcmFsPi4KICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zh cmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlw dGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9uLnNnbWwKaW5k ZXggOTkwYTQxZi4uOWNhMGJiOSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf c3Vic2NyaXB0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0 aW9uLnNnbWwKQEAgLTE0Miw2ICsxNDIsMTggQEAgQ1JFQVRFIFNVQlNDUklQVElPTiA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3Vic2NyaXB0aW9uX25hbWU8L3JlcGxhY2VhYmwKICAg ICAgICA8L3Zhcmxpc3RlbnRyeT4KIAogICAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgIDx0 ZXJtPjxsaXRlcmFsPmRpc2FibGVfb25fZXJyb3I8L2xpdGVyYWw+ICg8dHlwZT5ib29sZWFuPC90 eXBlPik8L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAg ICAgIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBzdWJzY3JpcHRpb24gc2hvdWxkIGJlIGF1dG9tYXRp Y2FsbHkgZGlzYWJsZWQKKyAgICAgICAgICBpZiBhbnkgZXJyb3JzIGFyZSBkZXRlY3RlZCBieSBz dWJzY3JpcHRpb24gd29ya2VycyBkdXJpbmcgZGF0YQorICAgICAgICAgIHJlcGxpY2F0aW9uIGZy b20gdGhlIHB1Ymxpc2hlci4gVGhlIGRlZmF1bHQgaXMKKyAgICAgICAgICA8bGl0ZXJhbD5mYWxz ZTwvbGl0ZXJhbD4uCisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAg ICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgICA8dmFybGlzdGVudHJ5PgogICAgICAgICA8dGVy bT48bGl0ZXJhbD5lbmFibGVkPC9saXRlcmFsPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pPC90ZXJt PgogICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICA8cGFyYT4KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3N1YnNjcmlwdGlvbi5jCmluZGV4IGNhNjVhOGIuLmQyYmVlYmMgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ19zdWJzY3JpcHRpb24uYwpAQCAtNjksNiArNjksNyBAQCBHZXRTdWJzY3JpcHRpb24oT2lk IHN1YmlkLCBib29sIG1pc3Npbmdfb2spCiAJc3ViLT5iaW5hcnkgPSBzdWJmb3JtLT5zdWJiaW5h cnk7CiAJc3ViLT5zdHJlYW0gPSBzdWJmb3JtLT5zdWJzdHJlYW07CiAJc3ViLT50d29waGFzZXN0 YXRlID0gc3ViZm9ybS0+c3VidHdvcGhhc2VzdGF0ZTsKKwlzdWItPmRpc2FibGVvbmVyciA9IHN1 YmZvcm0tPnN1YmRpc2FibGVvbmVycjsKIAogCS8qIEdldCBjb25uaW5mbyAqLwogCWRhdHVtID0g U3lzQ2FjaGVHZXRBdHRyKFNVQlNDUklQVElPTk9JRCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3Zp ZXdzLnNxbAppbmRleCAzY2I2OWIxLi40MzBhYzkwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j YXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1f dmlld3Muc3FsCkBAIC0xMjYxLDcgKzEyNjEsOCBAQCBSRVZPS0UgQUxMIE9OIHBnX3JlcGxpY2F0 aW9uX29yaWdpbl9zdGF0dXMgRlJPTSBwdWJsaWM7CiAtLSBBbGwgY29sdW1ucyBvZiBwZ19zdWJz Y3JpcHRpb24gZXhjZXB0IHN1YmNvbm5pbmZvIGFyZSBwdWJsaWNseSByZWFkYWJsZS4KIFJFVk9L RSBBTEwgT04gcGdfc3Vic2NyaXB0aW9uIEZST00gcHVibGljOwogR1JBTlQgU0VMRUNUIChvaWQs IHN1YmRiaWQsIHN1Ym5hbWUsIHN1Ym93bmVyLCBzdWJlbmFibGVkLCBzdWJiaW5hcnksCi0gICAg ICAgICAgICAgIHN1YnN0cmVhbSwgc3VidHdvcGhhc2VzdGF0ZSwgc3Vic2xvdG5hbWUsIHN1YnN5 bmNjb21taXQsIHN1YnB1YmxpY2F0aW9ucykKKyAgICAgICAgICAgICAgc3Vic3RyZWFtLCBzdWJ0 d29waGFzZXN0YXRlLCBzdWJkaXNhYmxlb25lcnIsIHN1YnNsb3RuYW1lLAorICAgICAgICAgICAg ICBzdWJzeW5jY29tbWl0LCBzdWJwdWJsaWNhdGlvbnMpCiAgICAgT04gcGdfc3Vic2NyaXB0aW9u IFRPIHB1YmxpYzsKIAogQ1JFQVRFIFZJRVcgcGdfc3RhdF9zdWJzY3JpcHRpb25fd29ya2VycyBB UwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCmluZGV4IDNlZjY2MDcuLjM5 MjI2NTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMu YworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKQEAgLTYxLDYg KzYxLDcgQEAKICNkZWZpbmUgU1VCT1BUX0JJTkFSWQkJCQkweDAwMDAwMDgwCiAjZGVmaW5lIFNV Qk9QVF9TVFJFQU1JTkcJCQkweDAwMDAwMTAwCiAjZGVmaW5lIFNVQk9QVF9UV09QSEFTRV9DT01N SVQJCTB4MDAwMDAyMDAKKyNkZWZpbmUgU1VCT1BUX0RJU0FCTEVfT05fRVJSCQkweDAwMDAwNDAw CiAKIC8qIGNoZWNrIGlmIHRoZSAndmFsJyBoYXMgJ2JpdHMnIHNldCAqLwogI2RlZmluZSBJc1Nl dCh2YWwsIGJpdHMpICAoKCh2YWwpICYgKGJpdHMpKSA9PSAoYml0cykpCkBAIC04Miw2ICs4Myw3 IEBAIHR5cGVkZWYgc3RydWN0IFN1Yk9wdHMKIAlib29sCQliaW5hcnk7CiAJYm9vbAkJc3RyZWFt aW5nOwogCWJvb2wJCXR3b3BoYXNlOworCWJvb2wJCWRpc2FibGVvbmVycjsKIH0gU3ViT3B0czsK IAogc3RhdGljIExpc3QgKmZldGNoX3RhYmxlX2xpc3QoV2FsUmVjZWl2ZXJDb25uICp3cmNvbm4s IExpc3QgKnB1YmxpY2F0aW9ucyk7CkBAIC0xMzAsNiArMTMyLDggQEAgcGFyc2Vfc3Vic2NyaXB0 aW9uX29wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpzdG10X29wdGlvbnMsCiAJCW9w dHMtPnN0cmVhbWluZyA9IGZhbHNlOwogCWlmIChJc1NldChzdXBwb3J0ZWRfb3B0cywgU1VCT1BU X1RXT1BIQVNFX0NPTU1JVCkpCiAJCW9wdHMtPnR3b3BoYXNlID0gZmFsc2U7CisJaWYgKElzU2V0 KHN1cHBvcnRlZF9vcHRzLCBTVUJPUFRfRElTQUJMRV9PTl9FUlIpKQorCQlvcHRzLT5kaXNhYmxl b25lcnIgPSBmYWxzZTsKIAogCS8qIFBhcnNlIG9wdGlvbnMgKi8KIAlmb3JlYWNoKGxjLCBzdG10 X29wdGlvbnMpCkBAIC0yNDksNiArMjUzLDE1IEBAIHBhcnNlX3N1YnNjcmlwdGlvbl9vcHRpb25z KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqc3RtdF9vcHRpb25zLAogCQkJb3B0cy0+c3BlY2lm aWVkX29wdHMgfD0gU1VCT1BUX1RXT1BIQVNFX0NPTU1JVDsKIAkJCW9wdHMtPnR3b3BoYXNlID0g ZGVmR2V0Qm9vbGVhbihkZWZlbCk7CiAJCX0KKwkJZWxzZSBpZiAoSXNTZXQoc3VwcG9ydGVkX29w dHMsIFNVQk9QVF9ESVNBQkxFX09OX0VSUikgJiYKKwkJCQkgc3RyY21wKGRlZmVsLT5kZWZuYW1l LCAiZGlzYWJsZV9vbl9lcnJvciIpID09IDApCisJCXsKKwkJCWlmIChJc1NldChvcHRzLT5zcGVj aWZpZWRfb3B0cywgU1VCT1BUX0RJU0FCTEVfT05fRVJSKSkKKwkJCQllcnJvckNvbmZsaWN0aW5n RGVmRWxlbShkZWZlbCwgcHN0YXRlKTsKKworCQkJb3B0cy0+c3BlY2lmaWVkX29wdHMgfD0gU1VC T1BUX0RJU0FCTEVfT05fRVJSOworCQkJb3B0cy0+ZGlzYWJsZW9uZXJyID0gZGVmR2V0Qm9vbGVh bihkZWZlbCk7CisJCX0KIAkJZWxzZQogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUo RVJSQ09ERV9TWU5UQVhfRVJST1IpLApAQCAtMzkwLDcgKzQwMyw4IEBAIENyZWF0ZVN1YnNjcmlw dGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJ c3VwcG9ydGVkX29wdHMgPSAoU1VCT1BUX0NPTk5FQ1QgfCBTVUJPUFRfRU5BQkxFRCB8IFNVQk9Q VF9DUkVBVEVfU0xPVCB8CiAJCQkJCSAgU1VCT1BUX1NMT1RfTkFNRSB8IFNVQk9QVF9DT1BZX0RB VEEgfAogCQkJCQkgIFNVQk9QVF9TWU5DSFJPTk9VU19DT01NSVQgfCBTVUJPUFRfQklOQVJZIHwK LQkJCQkJICBTVUJPUFRfU1RSRUFNSU5HIHwgU1VCT1BUX1RXT1BIQVNFX0NPTU1JVCk7CisJCQkJ CSAgU1VCT1BUX1NUUkVBTUlORyB8IFNVQk9QVF9UV09QSEFTRV9DT01NSVQgfAorCQkJCQkgIFNV Qk9QVF9ESVNBQkxFX09OX0VSUik7CiAJcGFyc2Vfc3Vic2NyaXB0aW9uX29wdGlvbnMocHN0YXRl LCBzdG10LT5vcHRpb25zLCBzdXBwb3J0ZWRfb3B0cywgJm9wdHMpOwogCiAJLyoKQEAgLTQ2NCw2 ICs0NzgsNyBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVT dWJzY3JpcHRpb25TdG10ICpzdG10LAogCQlDaGFyR2V0RGF0dW0ob3B0cy50d29waGFzZSA/CiAJ CQkJCSBMT0dJQ0FMUkVQX1RXT1BIQVNFX1NUQVRFX1BFTkRJTkcgOgogCQkJCQkgTE9HSUNBTFJF UF9UV09QSEFTRV9TVEFURV9ESVNBQkxFRCk7CisJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9u X3N1YmRpc2FibGVvbmVyciAtIDFdID0gQm9vbEdldERhdHVtKG9wdHMuZGlzYWJsZW9uZXJyKTsK IAl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29ubmluZm8gLSAxXSA9CiAJCUNTdHJp bmdHZXRUZXh0RGF0dW0oY29ubmluZm8pOwogCWlmIChvcHRzLnNsb3RfbmFtZSkKQEAgLTg2NCw3 ICs4NzksNyBAQCBBbHRlclN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vi c2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJCXsKIAkJCQlzdXBwb3J0ZWRfb3B0cyA9IChTVUJPUFRf U0xPVF9OQU1FIHwKIAkJCQkJCQkJICBTVUJPUFRfU1lOQ0hST05PVVNfQ09NTUlUIHwgU1VCT1BU X0JJTkFSWSB8Ci0JCQkJCQkJCSAgU1VCT1BUX1NUUkVBTUlORyk7CisJCQkJCQkJCSAgU1VCT1BU X1NUUkVBTUlORyB8IFNVQk9QVF9ESVNBQkxFX09OX0VSUik7CiAKIAkJCQlwYXJzZV9zdWJzY3Jp cHRpb25fb3B0aW9ucyhwc3RhdGUsIHN0bXQtPm9wdGlvbnMsCiAJCQkJCQkJCQkJICAgc3VwcG9y dGVkX29wdHMsICZvcHRzKTsKQEAgLTkxMyw2ICs5MjgsMTQgQEAgQWx0ZXJTdWJzY3JpcHRpb24o UGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCQkJCXJl cGxhY2VzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YnN0cmVhbSAtIDFdID0gdHJ1ZTsKIAkJCQl9 CiAKKwkJCQlpZiAoSXNTZXQob3B0cy5zcGVjaWZpZWRfb3B0cywgU1VCT1BUX0RJU0FCTEVfT05f RVJSKSkKKwkJCQl7CisJCQkJCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJkaXNhYmxl b25lcnIgLSAxXQorCQkJCQkJPSBCb29sR2V0RGF0dW0ob3B0cy5kaXNhYmxlb25lcnIpOworCQkJ CQlyZXBsYWNlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJkaXNhYmxlb25lcnIgLSAxXQorCQkJ CQkJPSB0cnVlOworCQkJCX0KKwogCQkJCXVwZGF0ZV90dXBsZSA9IHRydWU7CiAJCQkJYnJlYWs7 CiAJCQl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtl ci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYwppbmRleCBkNzdi YjMyLi41MzU1MDQ5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L3dvcmtlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMK QEAgLTEzNiw2ICsxMzYsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5jbHVkZSAi YWNjZXNzL3hsb2dfaW50ZXJuYWwuaCIKICNpbmNsdWRlICJjYXRhbG9nL2NhdGFsb2cuaCIKKyNp bmNsdWRlICJjYXRhbG9nL2luZGV4aW5nLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2Uu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BhcnRpdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf aW5oZXJpdHMuaCIKQEAgLTI4MDIsNiArMjgwMyw4OSBAQCBMb2dpY2FsUmVwQXBwbHlMb29wKFhM b2dSZWNQdHIgbGFzdF9yZWNlaXZlZCkKIH0KIAogLyoKKyAqIFdvcmtlciBlcnJvciByZWNvdmVy eSBwcm9jZXNzaW5nLCBpbiBwcmVwYXJhdGlvbiBmb3IgZGlzYWJsaW5nIHRoZQorICogc3Vic2Ny aXB0aW9uLgorICovCitzdGF0aWMgdm9pZAorV29ya2VyRXJyb3JSZWNvdmVyeSh2b2lkKQorewor CS8qIEVtaXQgdGhlIGVycm9yICovCisJRW1pdEVycm9yUmVwb3J0KCk7CisJLyogQWJvcnQgYW55 IGFjdGl2ZSB0cmFuc2FjdGlvbiAqLworCUFib3J0T3V0T2ZBbnlUcmFuc2FjdGlvbigpOworCS8q IFJlc2V0IHRoZSBFcnJvckNvbnRleHQgKi8KKwlGbHVzaEVycm9yU3RhdGUoKTsKK30KKworLyoK KyAqIERpc2FibGUgdGhlIGN1cnJlbnQgc3Vic2NyaXB0aW9uLgorICovCitzdGF0aWMgdm9pZAor RGlzYWJsZVN1YnNjcmlwdGlvbk9uRXJyb3Iodm9pZCkKK3sKKwlSZWxhdGlvbglyZWw7CisJYm9v bAkJbnVsbHNbTmF0dHNfcGdfc3Vic2NyaXB0aW9uXTsKKwlib29sCQlyZXBsYWNlc1tOYXR0c19w Z19zdWJzY3JpcHRpb25dOworCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfc3Vic2NyaXB0aW9uXTsK KwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdfc3Vic2NyaXB0aW9uIHN1YmZvcm07CisKKwkvKiBE aXNhYmxlIHRoZSBzdWJzY3JpcHRpb24gaW4gYSBmcmVzaCB0cmFuc2FjdGlvbiAqLworCVN0YXJ0 VHJhbnNhY3Rpb25Db21tYW5kKCk7CisKKwkvKiBMb29rIHVwIG91ciBzdWJzY3JpcHRpb24gaW4g dGhlIGNhdGFsb2dzICovCisJcmVsID0gdGFibGVfb3BlbihTdWJzY3JpcHRpb25SZWxhdGlvbklk LCBSb3dFeGNsdXNpdmVMb2NrKTsKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZUNvcHkyKFNVQlNDUklQ VElPTk5BTUUsIE15RGF0YWJhc2VJZCwKKwkJCQkJCQkgIENTdHJpbmdHZXREYXR1bShNeVN1YnNj cmlwdGlvbi0+bmFtZSkpOworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllcmVwb3J0 KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQllcnJt c2coInN1YnNjcmlwdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkgICBNeVN1YnNj cmlwdGlvbi0+bmFtZSkpOworCisJc3ViZm9ybSA9IChGb3JtX3BnX3N1YnNjcmlwdGlvbikgR0VU U1RSVUNUKHR1cCk7CisKKwkvKgorCSAqIFdlIHdvdWxkIG5vdCBiZSBoZXJlIHVubGVzcyB0aGlz IHN1YnNjcmlwdGlvbidzIGRpc2FibGVvbmVyciBmaWVsZCB3YXMKKwkgKiB0cnVlIHdoZW4gb3Vy IHdvcmtlciBiZWdhbiBhcHBseWluZyBjaGFuZ2VzLCBidXQgY2hlY2sgd2hldGhlciB0aGF0CisJ ICogZmllbGQgaGFzIGNoYW5nZWQgaW4gdGhlIGludGVyaW0uCisJICovCisJaWYgKCFzdWJmb3Jt LT5zdWJkaXNhYmxlb25lcnIpCisJeworCQloZWFwX2ZyZWV0dXBsZSh0dXApOworCQl0YWJsZV9j bG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworCQlDb21taXRUcmFuc2FjdGlvbkNvbW1hbmQo KTsKKwkJcmV0dXJuOworCX0KKworCS8qIE5vdGlmeSB0aGUgc3Vic2NyaXB0aW9uIHdpbGwgYmUg bm8gbG9uZ2VyIHZhbGlkICovCisJZXJlcG9ydChMT0csCisJCQllcnJtc2coImxvZ2ljYWwgcmVw bGljYXRpb24gc3Vic2NyaXB0aW9uIFwiJXNcIiB3aWxsIGJlIGRpc2FibGVkIGR1ZSB0byBhbiBl cnJvciIsCisJCQkJICAgTXlTdWJzY3JpcHRpb24tPm5hbWUpKTsKKworCUxvY2tTaGFyZWRPYmpl Y3QoU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViZm9ybS0+b2lkLCAwLCBBY2Nlc3NFeGNsdXNp dmVMb2NrKTsKKworCS8qIEZvcm0gYSBuZXcgdHVwbGUuICovCisJbWVtc2V0KHZhbHVlcywgMCwg c2l6ZW9mKHZhbHVlcykpOworCW1lbXNldChudWxscywgZmFsc2UsIHNpemVvZihudWxscykpOwor CW1lbXNldChyZXBsYWNlcywgZmFsc2UsIHNpemVvZihyZXBsYWNlcykpOworCisJLyogU2V0IHRo ZSBzdWJzY3JpcHRpb24gdG8gZGlzYWJsZWQuICovCisJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0 aW9uX3N1YmVuYWJsZWQgLSAxXSA9IEJvb2xHZXREYXR1bShmYWxzZSk7CisJcmVwbGFjZXNbQW51 bV9wZ19zdWJzY3JpcHRpb25fc3ViZW5hYmxlZCAtIDFdID0gdHJ1ZTsKKworCS8qIFVwZGF0ZSB0 aGUgY2F0YWxvZyAqLworCXR1cCA9IGhlYXBfbW9kaWZ5X3R1cGxlKHR1cCwgUmVsYXRpb25HZXRE ZXNjcihyZWwpLCB2YWx1ZXMsIG51bGxzLAorCQkJCQkJCXJlcGxhY2VzKTsKKwlDYXRhbG9nVHVw bGVVcGRhdGUocmVsLCAmdHVwLT50X3NlbGYsIHR1cCk7CisJaGVhcF9mcmVldHVwbGUodHVwKTsK KworCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwlDb21taXRUcmFuc2Fj dGlvbkNvbW1hbmQoKTsKK30KKworLyoKICAqIFNlbmQgYSBTdGFuZGJ5IFN0YXR1cyBVcGRhdGUg bWVzc2FnZSB0byBzZXJ2ZXIuCiAgKgogICogJ3JlY3Zwb3MnIGlzIHRoZSBsYXRlc3QgTFNOIHdl J3ZlIHJlY2VpdmVkIGRhdGEgdG8sIGZvcmNlIGlzIHNldCBpZiB3ZSBuZWVkCkBAIC0zMzc1LDYg KzM0NTksMTIyIEBAIFR3b1BoYXNlVHJhbnNhY3Rpb25HaWQoT2lkIHN1YmlkLCBUcmFuc2FjdGlv bklkIHhpZCwgY2hhciAqZ2lkLCBpbnQgc3pnaWQpCiAJc25wcmludGYoZ2lkLCBzemdpZCwgInBn X2dpZF8ldV8ldSIsIHN1YmlkLCB4aWQpOwogfQogCisvKgorICogRXhlY3V0ZSB0aGUgaW5pdGlh bCBzeW5jIHdpdGggZXJyb3IgaGFuZGxpbmcuIERpc2FibGUgdGhlIHN1YnNjcmlwdGlvbiwKKyAq IGlmIGl0J3MgcmVxdWlyZWQuCisgKi8KK3N0YXRpYyB2b2lkCitMb2dpY2FsUmVwSGFuZGxlVGFi bGVTeW5jKFhMb2dSZWNQdHIgKm9yaWdpbl9zdGFydHBvcywKKwkJCQkJCSAgY2hhciAqKm15c2xv dG5hbWUsIE1lbW9yeUNvbnRleHQgY2N0eCkKK3sKKwljaGFyCSAgICpzeW5jc2xvdG5hbWU7CisJ Ym9vbAkJZXJyb3JfcmVjb3ZlcnlfZG9uZSA9IGZhbHNlOworCisJUEdfVFJZKCk7CisJeworCQkv KiBUaGlzIGlzIHRhYmxlIHN5bmNocm9uaXphdGlvbiB3b3JrZXIsIGNhbGwgaW5pdGlhbCBzeW5j LiAqLworCQlzeW5jc2xvdG5hbWUgPSBMb2dpY2FsUmVwU3luY1RhYmxlU3RhcnQob3JpZ2luX3N0 YXJ0cG9zKTsKKwl9CisJUEdfQ0FUQ0goKTsKKwl7CisJCU1lbW9yeUNvbnRleHQgZWN4dCA9IE1l bW9yeUNvbnRleHRTd2l0Y2hUbyhjY3R4KTsKKwkJRXJyb3JEYXRhICAqZXJyZGF0YSA9IENvcHlF cnJvckRhdGEoKTsKKworCQkvKgorCQkgKiBSZXBvcnQgdGhlIHRhYmxlIHN5bmMgZXJyb3IuIFRo ZXJlIGlzIG5vIGNvcnJlc3BvbmRpbmcgbWVzc2FnZSB0eXBlCisJCSAqIGZvciB0YWJsZSBzeW5j aHJvbml6YXRpb24uCisJCSAqLworCQlwZ3N0YXRfcmVwb3J0X3N1Yndvcmtlcl9lcnJvcihNeUxv Z2ljYWxSZXBXb3JrZXItPnN1YmlkLAorCQkJCQkJCQkJICBNeUxvZ2ljYWxSZXBXb3JrZXItPnJl bGlkLAorCQkJCQkJCQkJICBNeUxvZ2ljYWxSZXBXb3JrZXItPnJlbGlkLAorCQkJCQkJCQkJICAw LAkvKiBtZXNzYWdlIHR5cGUgKi8KKwkJCQkJCQkJCSAgSW52YWxpZFRyYW5zYWN0aW9uSWQsCisJ CQkJCQkJCQkgIGVycmRhdGEtPm1lc3NhZ2UpOworCisJCWlmIChNeVN1YnNjcmlwdGlvbi0+ZGlz YWJsZW9uZXJyKQorCQl7CisJCQlXb3JrZXJFcnJvclJlY292ZXJ5KCk7CisJCQllcnJvcl9yZWNv dmVyeV9kb25lID0gdHJ1ZTsKKwkJfQorCQllbHNlCisJCXsKKwkJCU1lbW9yeUNvbnRleHRTd2l0 Y2hUbyhlY3h0KTsKKwkJCVBHX1JFX1RIUk9XKCk7CisJCX0KKwl9CisJUEdfRU5EX1RSWSgpOwor CisJLyogSWYgd2UgY2F1Z2h0IGFuIGVycm9yIGFib3ZlLCBkaXNhYmxlIHRoZSBzdWJzY3JpcHRp b24gKi8KKwlpZiAoZXJyb3JfcmVjb3ZlcnlfZG9uZSkKKwl7CisJCURpc2FibGVTdWJzY3JpcHRp b25PbkVycm9yKCk7CisJCXByb2NfZXhpdCgwKTsKKwl9CisJZWxzZQorCXsKKwkJLyogYWxsb2Nh dGUgc2xvdCBuYW1lIGluIGxvbmctbGl2ZWQgY29udGV4dCAqLworCQkqbXlzbG90bmFtZSA9IE1l bW9yeUNvbnRleHRTdHJkdXAoQXBwbHlDb250ZXh0LCBzeW5jc2xvdG5hbWUpOworCisJCXBmcmVl KHN5bmNzbG90bmFtZSk7CisJfQorfQorCisvKgorICogUnVuIHRoZSBhcHBseSBsb29wIHdpdGgg ZXJyb3IgaGFuZGxpbmcuIERpc2FibGUgdGhlIHN1YnNjcmlwdGlvbiwKKyAqIGlmIG5lY2Vzc2Fy eS4KKyAqLworc3RhdGljIHZvaWQKK0xvZ2ljYWxSZXBIYW5kbGVBcHBseU1lc3NhZ2VzKFhMb2dS ZWNQdHIgb3JpZ2luX3N0YXJ0cG9zLAorCQkJCQkJCSAgTWVtb3J5Q29udGV4dCBjY3R4KQorewor CWJvb2wJCWVycm9yX3JlY292ZXJ5X2RvbmUgPSBmYWxzZTsKKworCVBHX1RSWSgpOworCXsKKwkJ TG9naWNhbFJlcEFwcGx5TG9vcChvcmlnaW5fc3RhcnRwb3MpOworCX0KKwlQR19DQVRDSCgpOwor CXsKKwkJTWVtb3J5Q29udGV4dCBlY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGNjdHgpOwor CisJCS8qIHJlcG9ydCB0aGUgYXBwbHkgZXJyb3IgKi8KKwkJaWYgKGFwcGx5X2Vycm9yX2NhbGxi YWNrX2FyZy5jb21tYW5kICE9IDApCisJCXsKKwkJCUVycm9yRGF0YSAgKmVycmRhdGEgPSBDb3B5 RXJyb3JEYXRhKCk7CisKKwkJCXBnc3RhdF9yZXBvcnRfc3Vid29ya2VyX2Vycm9yKE15TG9naWNh bFJlcFdvcmtlci0+c3ViaWQsCisJCQkJCQkJCQkJICBNeUxvZ2ljYWxSZXBXb3JrZXItPnJlbGlk LAorCQkJCQkJCQkJCSAgYXBwbHlfZXJyb3JfY2FsbGJhY2tfYXJnLnJlbCAhPSBOVUxMCisJCQkJ CQkJCQkJICA/IGFwcGx5X2Vycm9yX2NhbGxiYWNrX2FyZy5yZWwtPmxvY2FscmVsb2lkCisJCQkJ CQkJCQkJICA6IEludmFsaWRPaWQsCisJCQkJCQkJCQkJICBhcHBseV9lcnJvcl9jYWxsYmFja19h cmcuY29tbWFuZCwKKwkJCQkJCQkJCQkgIGFwcGx5X2Vycm9yX2NhbGxiYWNrX2FyZy5yZW1vdGVf eGlkLAorCQkJCQkJCQkJCSAgZXJyZGF0YS0+bWVzc2FnZSk7CisKKwkJCWlmICghTXlTdWJzY3Jp cHRpb24tPmRpc2FibGVvbmVycikKKwkJCXsKKwkJCQkvKgorCQkJCSAqIFNvbWUgd29yayBpbiBl cnJvciByZWNvdmVyeSB3b3JrIGlzIGRvbmUuIFN3aXRjaCB0byB0aGUgb2xkCisJCQkJICogbWVt b3J5IGNvbnRleHQgYW5kIHJldGhyb3cuCisJCQkJICovCisJCQkJTWVtb3J5Q29udGV4dFN3aXRj aFRvKGVjeHQpOworCQkJCVBHX1JFX1RIUk9XKCk7CisJCQl9CisJCX0KKwkJZWxzZSBpZiAoIU15 U3Vic2NyaXB0aW9uLT5kaXNhYmxlb25lcnIpCisJCQlQR19SRV9USFJPVygpOworCisJCS8qIFBy ZXBhcmUgdG8gZGlzYWJsZSB0aGUgc3Vic2NyaXB0aW9uICovCisJCVdvcmtlckVycm9yUmVjb3Zl cnkoKTsKKwkJZXJyb3JfcmVjb3ZlcnlfZG9uZSA9IHRydWU7CisJfQorCVBHX0VORF9UUlkoKTsK KworCWlmIChlcnJvcl9yZWNvdmVyeV9kb25lKQorCQlEaXNhYmxlU3Vic2NyaXB0aW9uT25FcnJv cigpOworCit9CisKIC8qIExvZ2ljYWwgUmVwbGljYXRpb24gQXBwbHkgd29ya2VyIGVudHJ5IHBv aW50ICovCiB2b2lkCiBBcHBseVdvcmtlck1haW4oRGF0dW0gbWFpbl9hcmcpCkBAIC0zMzgzLDgg KzM1ODMsOCBAQCBBcHBseVdvcmtlck1haW4oRGF0dW0gbWFpbl9hcmcpCiAJTWVtb3J5Q29udGV4 dCBjY3R4ID0gQ3VycmVudE1lbW9yeUNvbnRleHQ7CiAJTWVtb3J5Q29udGV4dCBvbGRjdHg7CiAJ Y2hhcgkJb3JpZ2lubmFtZVtOQU1FREFUQUxFTl07Ci0JWExvZ1JlY1B0cglvcmlnaW5fc3RhcnRw b3M7Ci0JY2hhcgkgICAqbXlzbG90bmFtZTsKKwlYTG9nUmVjUHRyCW9yaWdpbl9zdGFydHBvcyA9 IEludmFsaWRYTG9nUmVjUHRyOworCWNoYXIJICAgKm15c2xvdG5hbWUgPSBOVUxMOwogCVdhbFJj dlN0cmVhbU9wdGlvbnMgb3B0aW9uczsKIAlpbnQJCQlzZXJ2ZXJfdmVyc2lvbjsKIApAQCAtMzQ3 OSwzNyArMzY3OSw4IEBAIEFwcGx5V29ya2VyTWFpbihEYXR1bSBtYWluX2FyZykKIAogCWlmIChh bV90YWJsZXN5bmNfd29ya2VyKCkpCiAJewotCQljaGFyCSAgICpzeW5jc2xvdG5hbWU7Ci0KLQkJ UEdfVFJZKCk7Ci0JCXsKLQkJCS8qIFRoaXMgaXMgdGFibGUgc3luY2hyb25pemF0aW9uIHdvcmtl ciwgY2FsbCBpbml0aWFsIHN5bmMuICovCi0JCQlzeW5jc2xvdG5hbWUgPSBMb2dpY2FsUmVwU3lu Y1RhYmxlU3RhcnQoJm9yaWdpbl9zdGFydHBvcyk7Ci0JCX0KLQkJUEdfQ0FUQ0goKTsKLQkJewot CQkJTWVtb3J5Q29udGV4dCBlY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGNjdHgpOwotCQkJ RXJyb3JEYXRhICAqZXJyZGF0YSA9IENvcHlFcnJvckRhdGEoKTsKLQotCQkJLyoKLQkJCSAqIFJl cG9ydCB0aGUgdGFibGUgc3luYyBlcnJvci4gVGhlcmUgaXMgbm8gY29ycmVzcG9uZGluZyBtZXNz YWdlCi0JCQkgKiB0eXBlIGZvciB0YWJsZSBzeW5jaHJvbml6YXRpb24uCi0JCQkgKi8KLQkJCXBn c3RhdF9yZXBvcnRfc3Vid29ya2VyX2Vycm9yKE15TG9naWNhbFJlcFdvcmtlci0+c3ViaWQsCi0J CQkJCQkJCQkJICBNeUxvZ2ljYWxSZXBXb3JrZXItPnJlbGlkLAotCQkJCQkJCQkJCSAgTXlMb2dp Y2FsUmVwV29ya2VyLT5yZWxpZCwKLQkJCQkJCQkJCQkgIDAsCS8qIG1lc3NhZ2UgdHlwZSAqLwot CQkJCQkJCQkJCSAgSW52YWxpZFRyYW5zYWN0aW9uSWQsCi0JCQkJCQkJCQkJICBlcnJkYXRhLT5t ZXNzYWdlKTsKLQkJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhlY3h0KTsKLQkJCVBHX1JFX1RIUk9X KCk7Ci0JCX0KLQkJUEdfRU5EX1RSWSgpOwotCi0JCS8qIGFsbG9jYXRlIHNsb3QgbmFtZSBpbiBs b25nLWxpdmVkIGNvbnRleHQgKi8KLQkJbXlzbG90bmFtZSA9IE1lbW9yeUNvbnRleHRTdHJkdXAo QXBwbHlDb250ZXh0LCBzeW5jc2xvdG5hbWUpOwotCi0JCXBmcmVlKHN5bmNzbG90bmFtZSk7CisJ CUxvZ2ljYWxSZXBIYW5kbGVUYWJsZVN5bmMoJm9yaWdpbl9zdGFydHBvcywKKwkJCQkJCQkJICAm bXlzbG90bmFtZSwgY2N0eCk7CiAJfQogCWVsc2UKIAl7CkBAIC0zNjIyLDMyICszNzkzLDcgQEAg QXBwbHlXb3JrZXJNYWluKERhdHVtIG1haW5fYXJnKQogCX0KIAogCS8qIFJ1biB0aGUgbWFpbiBs b29wLiAqLwotCVBHX1RSWSgpOwotCXsKLQkJTG9naWNhbFJlcEFwcGx5TG9vcChvcmlnaW5fc3Rh cnRwb3MpOwotCX0KLQlQR19DQVRDSCgpOwotCXsKLQkJLyogcmVwb3J0IHRoZSBhcHBseSBlcnJv ciAqLwotCQlpZiAoYXBwbHlfZXJyb3JfY2FsbGJhY2tfYXJnLmNvbW1hbmQgIT0gMCkKLQkJewot CQkJTWVtb3J5Q29udGV4dCBlY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGNjdHgpOwotCQkJ RXJyb3JEYXRhICAqZXJyZGF0YSA9IENvcHlFcnJvckRhdGEoKTsKLQotCQkJcGdzdGF0X3JlcG9y dF9zdWJ3b3JrZXJfZXJyb3IoTXlMb2dpY2FsUmVwV29ya2VyLT5zdWJpZCwKLQkJCQkJCQkJCQkg IE15TG9naWNhbFJlcFdvcmtlci0+cmVsaWQsCi0JCQkJCQkJCQkJICBhcHBseV9lcnJvcl9jYWxs YmFja19hcmcucmVsICE9IE5VTEwKLQkJCQkJCQkJCQkgID8gYXBwbHlfZXJyb3JfY2FsbGJhY2tf YXJnLnJlbC0+bG9jYWxyZWxvaWQKLQkJCQkJCQkJCQkgIDogSW52YWxpZE9pZCwKLQkJCQkJCQkJ CQkgIGFwcGx5X2Vycm9yX2NhbGxiYWNrX2FyZy5jb21tYW5kLAotCQkJCQkJCQkJCSAgYXBwbHlf ZXJyb3JfY2FsbGJhY2tfYXJnLnJlbW90ZV94aWQsCi0JCQkJCQkJCQkJICBlcnJkYXRhLT5tZXNz YWdlKTsKLQkJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhlY3h0KTsKLQkJfQotCi0JCVBHX1JFX1RI Uk9XKCk7Ci0JfQotCVBHX0VORF9UUlkoKTsKKwlMb2dpY2FsUmVwSGFuZGxlQXBwbHlNZXNzYWdl cyhvcmlnaW5fc3RhcnRwb3MsIGNjdHgpOwogCiAJcHJvY19leGl0KDApOwogfQpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMK aW5kZXggNDQ4NWVhOC4uOTkwMmMxNyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC00MjcxLDYgKzQyNzEsNyBA QCBnZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUgKmZvdXQpCiAJaW50CQkJaV9zdWJvd25lcjsKIAlp bnQJCQlpX3N1YnN0cmVhbTsKIAlpbnQJCQlpX3N1YnR3b3BoYXNlc3RhdGU7CisJaW50CQkJaV9z dWJkaXNhYmxlb25lcnI7CiAJaW50CQkJaV9zdWJjb25uaW5mbzsKIAlpbnQJCQlpX3N1YnNsb3Ru YW1lOwogCWludAkJCWlfc3Vic3luY2NvbW1pdDsKQEAgLTQzMTgsMTIgKzQzMTksMTggQEAgZ2V0 U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0KQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVy eSwgIiBmYWxzZSBBUyBzdWJzdHJlYW0sXG4iKTsKIAogCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9u ID49IDE1MDAwMCkKLQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgcy5zdWJ0d29waGFz ZXN0YXRlXG4iKTsKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgcy5zdWJ0d29waGFz ZXN0YXRlLFxuIik7CiAJZWxzZQogCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKLQkJCQkJCSAg IiAnJWMnIEFTIHN1YnR3b3BoYXNlc3RhdGVcbiIsCisJCQkJCQkgICIgJyVjJyBBUyBzdWJ0d29w aGFzZXN0YXRlLFxuIiwKIAkJCQkJCSAgTE9HSUNBTFJFUF9UV09QSEFTRV9TVEFURV9ESVNBQkxF RCk7CiAKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxNTAwMDApCisJCWFwcGVuZFBRRXhw QnVmZmVyKHF1ZXJ5LCAiIHMuc3ViZGlzYWJsZW9uZXJyXG4iKTsKKwllbHNlCisJCWFwcGVuZFBR RXhwQnVmZmVyKHF1ZXJ5LAorCQkJCQkJICAiIGZhbHNlIEFTIHN1YmRpc2FibGVvbmVyclxuIik7 CisKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKIAkJCQkJCSAiRlJPTSBwZ19zdWJzY3Jp cHRpb24gc1xuIgogCQkJCQkJICJXSEVSRSBzLnN1YmRiaWQgPSAoU0VMRUNUIG9pZCBGUk9NIHBn X2RhdGFiYXNlXG4iCkBAIC00MzQ0LDYgKzQzNTEsNyBAQCBnZXRTdWJzY3JpcHRpb25zKEFyY2hp dmUgKmZvdXQpCiAJaV9zdWJiaW5hcnkgPSBQUWZudW1iZXIocmVzLCAic3ViYmluYXJ5Iik7CiAJ aV9zdWJzdHJlYW0gPSBQUWZudW1iZXIocmVzLCAic3Vic3RyZWFtIik7CiAJaV9zdWJ0d29waGFz ZXN0YXRlID0gUFFmbnVtYmVyKHJlcywgInN1YnR3b3BoYXNlc3RhdGUiKTsKKwlpX3N1YmRpc2Fi bGVvbmVyciA9IFBRZm51bWJlcihyZXMsICJzdWJkaXNhYmxlb25lcnIiKTsKIAogCXN1YmluZm8g PSBwZ19tYWxsb2MobnR1cHMgKiBzaXplb2YoU3Vic2NyaXB0aW9uSW5mbykpOwogCkBAIC00Mzcx LDYgKzQzNzksOCBAQCBnZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUgKmZvdXQpCiAJCQlwZ19zdHJk dXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfc3Vic3RyZWFtKSk7CiAJCXN1YmluZm9baV0uc3VidHdv cGhhc2VzdGF0ZSA9CiAJCQlwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfc3VidHdvcGhh c2VzdGF0ZSkpOworCQlzdWJpbmZvW2ldLnN1YmRpc2FibGVvbmVyciA9CisJCQlwZ19zdHJkdXAo UFFnZXR2YWx1ZShyZXMsIGksIGlfc3ViZGlzYWJsZW9uZXJyKSk7CiAKIAkJLyogRGVjaWRlIHdo ZXRoZXIgd2Ugd2FudCB0byBkdW1wIGl0ICovCiAJCXNlbGVjdER1bXBhYmxlT2JqZWN0KCYoc3Vi aW5mb1tpXS5kb2JqKSwgZm91dCk7CkBAIC00NDQxLDYgKzQ0NTEsOSBAQCBkdW1wU3Vic2NyaXB0 aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFN1YnNjcmlwdGlvbkluZm8gKnN1YmluZm8pCiAJaWYg KHN0cmNtcChzdWJpbmZvLT5zdWJ0d29waGFzZXN0YXRlLCB0d29fcGhhc2VfZGlzYWJsZWQpICE9 IDApCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiLCB0d29fcGhhc2UgPSBvbiIpOwog CisJaWYgKHN0cmNtcChzdWJpbmZvLT5zdWJkaXNhYmxlb25lcnIsICJmIikgIT0gMCkKKwkJYXBw ZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIsIGRpc2FibGVfb25fZXJyb3IgPSBvbiIpOworCiAJ aWYgKHN0cmNtcChzdWJpbmZvLT5zdWJzeW5jY29tbWl0LCAib2ZmIikgIT0gMCkKIAkJYXBwZW5k UFFFeHBCdWZmZXIocXVlcnksICIsIHN5bmNocm9ub3VzX2NvbW1pdCA9ICVzIiwgZm10SWQoc3Vi aW5mby0+c3Vic3luY2NvbW1pdCkpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCA5OTY1YWMyLi5kNzYxNmQz IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmgKQEAgLTY1Niw2ICs2NTYsNyBAQCB0eXBlZGVmIHN0cnVjdCBfU3Vic2Ny aXB0aW9uSW5mbwogCWNoYXIJICAgKnN1YmJpbmFyeTsKIAljaGFyCSAgICpzdWJzdHJlYW07CiAJ Y2hhcgkgICAqc3VidHdvcGhhc2VzdGF0ZTsKKwljaGFyCSAgICpzdWJkaXNhYmxlb25lcnI7CiAJ Y2hhcgkgICAqc3Vic3luY2NvbW1pdDsKIAljaGFyCSAgICpzdWJwdWJsaWNhdGlvbnM7CiB9IFN1 YnNjcmlwdGlvbkluZm87CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDY1NGVmMmQuLjQwMDcxNGQgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBA IC02MDYyLDcgKzYwNjIsNyBAQCBkZXNjcmliZVN1YnNjcmlwdGlvbnMoY29uc3QgY2hhciAqcGF0 dGVybiwgYm9vbCB2ZXJib3NlKQogCVBHcmVzdWx0ICAgKnJlczsKIAlwcmludFF1ZXJ5T3B0IG15 b3B0ID0gcHNldC5wb3B0OwogCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10g PSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCi0JZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs c2UsIGZhbHNlfTsKKwlmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsK IAogCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTAwMDAwKQogCXsKQEAgLTYwOTYsMTEgKzYwOTYsMTMg QEAgZGVzY3JpYmVTdWJzY3JpcHRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9z ZSkKIAkJCQkJCQkgIGdldHRleHRfbm9vcCgiQmluYXJ5IiksCiAJCQkJCQkJICBnZXR0ZXh0X25v b3AoIlN0cmVhbWluZyIpKTsKIAotCQkvKiBUd29fcGhhc2UgaXMgb25seSBzdXBwb3J0ZWQgaW4g djE1IGFuZCBoaWdoZXIgKi8KKwkJLyogVHdvX3BoYXNlIGFuZCBkaXNhYmxlX29uX2Vycm9yIGlz IG9ubHkgc3VwcG9ydGVkIGluIHYxNSBhbmQgaGlnaGVyICovCiAJCWlmIChwc2V0LnN2ZXJzaW9u ID49IDE1MDAwMCkKIAkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCi0JCQkJCQkJICAiLCBzdWJ0 d29waGFzZXN0YXRlIEFTIFwiJXNcIlxuIiwKLQkJCQkJCQkgIGdldHRleHRfbm9vcCgiVHdvIHBo YXNlIGNvbW1pdCIpKTsKKwkJCQkJCQkgICIsIHN1YnR3b3BoYXNlc3RhdGUgQVMgXCIlc1wiXG4i CisJCQkJCQkJICAiLCBzdWJkaXNhYmxlb25lcnIgQVMgXCIlc1wiXG4iLAorCQkJCQkJCSAgZ2V0 dGV4dF9ub29wKCJUd28gcGhhc2UgY29tbWl0IiksCisJCQkJCQkJICBnZXR0ZXh0X25vb3AoIkRp c2FibGUgb24gZXJyb3IiKSk7CiAKIAkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKIAkJCQkJCSAg IiwgIHN1YnN5bmNjb21taXQgQVMgXCIlc1wiXG4iCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKaW5kZXggMDEwZWRi Ni4uZjdlMzViYSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCisrKyBi L3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwpAQCAtMTgyMCw3ICsxODIwLDcgQEAgcHNxbF9j b21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJQ09NUExF VEVfV0lUSCgiKCIsICJQVUJMSUNBVElPTiIpOwogCS8qIEFMVEVSIFNVQlNDUklQVElPTiA8bmFt ZT4gU0VUICggKi8KIAllbHNlIGlmIChIZWFkTWF0Y2hlcygiQUxURVIiLCAiU1VCU0NSSVBUSU9O IiwgTWF0Y2hBbnkpICYmIFRhaWxNYXRjaGVzKCJTRVQiLCAiKCIpKQotCQlDT01QTEVURV9XSVRI KCJiaW5hcnkiLCAic2xvdF9uYW1lIiwgInN0cmVhbWluZyIsICJzeW5jaHJvbm91c19jb21taXQi KTsKKwkJQ09NUExFVEVfV0lUSCgiYmluYXJ5IiwgInNsb3RfbmFtZSIsICJzdHJlYW1pbmciLCAi c3luY2hyb25vdXNfY29tbWl0IiwgImRpc2FibGVfb25fZXJyb3IiKTsKIAkvKiBBTFRFUiBTVUJT Q1JJUFRJT04gPG5hbWU+IFNFVCBQVUJMSUNBVElPTiAqLwogCWVsc2UgaWYgKEhlYWRNYXRjaGVz KCJBTFRFUiIsICJTVUJTQ1JJUFRJT04iLCBNYXRjaEFueSkgJiYgVGFpbE1hdGNoZXMoIlNFVCIs ICJQVUJMSUNBVElPTiIpKQogCXsKQEAgLTMwNzksNyArMzA3OSw3IEBAIHBzcWxfY29tcGxldGlv bihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJZWxzZSBpZiAoSGVhZE1h dGNoZXMoIkNSRUFURSIsICJTVUJTQ1JJUFRJT04iKSAmJiBUYWlsTWF0Y2hlcygiV0lUSCIsICIo IikpCiAJCUNPTVBMRVRFX1dJVEgoImJpbmFyeSIsICJjb25uZWN0IiwgImNvcHlfZGF0YSIsICJj cmVhdGVfc2xvdCIsCiAJCQkJCSAgImVuYWJsZWQiLCAic2xvdF9uYW1lIiwgInN0cmVhbWluZyIs Ci0JCQkJCSAgInN5bmNocm9ub3VzX2NvbW1pdCIsICJ0d29fcGhhc2UiKTsKKwkJCQkJICAic3lu Y2hyb25vdXNfY29tbWl0IiwgInR3b19waGFzZSIsICJkaXNhYmxlX29uX2Vycm9yIik7CiAKIC8q IENSRUFURSBUUklHR0VSIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1 c2UgVGFpbE1hdGNoZXMgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19z dWJzY3JpcHRpb24uaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgKaW5k ZXggMThjMjkxMi4uMWU5MmIxNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19z dWJzY3JpcHRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5o CkBAIC02Nyw2ICs2Nyw5IEBAIENBVEFMT0cocGdfc3Vic2NyaXB0aW9uLDYxMDAsU3Vic2NyaXB0 aW9uUmVsYXRpb25JZCkgQktJX1NIQVJFRF9SRUxBVElPTiBCS0lfUk9XCiAKIAljaGFyCQlzdWJ0 d29waGFzZXN0YXRlOwkvKiBTdHJlYW0gdHdvLXBoYXNlIHRyYW5zYWN0aW9ucyAqLwogCisJYm9v bAkJc3ViZGlzYWJsZW9uZXJyOwkvKiBUcnVlIGlmIG9jY3VycmVuY2Ugb2YgYXBwbHkgZXJyb3Jz CisJCQkJCQkJCQkgKiBzaG91bGQgZGlzYWJsZSB0aGUgc3Vic2NyaXB0aW9uICovCisKICNpZmRl ZiBDQVRBTE9HX1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAq LwogCS8qIENvbm5lY3Rpb24gc3RyaW5nIHRvIHRoZSBwdWJsaXNoZXIgKi8KIAl0ZXh0CQlzdWJj b25uaW5mbyBCS0lfRk9SQ0VfTk9UX05VTEw7CkBAIC0xMDMsNiArMTA2LDkgQEAgdHlwZWRlZiBz dHJ1Y3QgU3Vic2NyaXB0aW9uCiAJCQkJCQkJCSAqIGJpbmFyeSBmb3JtYXQgKi8KIAlib29sCQlz dHJlYW07CQkJLyogQWxsb3cgc3RyZWFtaW5nIGluLXByb2dyZXNzIHRyYW5zYWN0aW9ucy4gKi8K IAljaGFyCQl0d29waGFzZXN0YXRlOwkvKiBBbGxvdyBzdHJlYW1pbmcgdHdvLXBoYXNlIHRyYW5z YWN0aW9ucyAqLworCWJvb2wJCWRpc2FibGVvbmVycjsJLyogSW5kaWNhdGVzIGlmIHRoZSBzdWJz Y3JpcHRpb24gc2hvdWxkIGJlCisJCQkJCQkJCSAqIGF1dG9tYXRpY2FsbHkgZGlzYWJsZWQgd2hl biBzdWJzY3JpcHRpb24KKwkJCQkJCQkJICogd29ya2VycyBkZXRlY3QgYW55IGVycm9ycy4gKi8K IAljaGFyCSAgICpjb25uaW5mbzsJCS8qIENvbm5lY3Rpb24gc3RyaW5nIHRvIHRoZSBwdWJsaXNo ZXIgKi8KIAljaGFyCSAgICpzbG90bmFtZTsJCS8qIE5hbWUgb2YgdGhlIHJlcGxpY2F0aW9uIHNs b3QgKi8KIAljaGFyCSAgICpzeW5jY29tbWl0OwkJLyogU3luY2hyb25vdXMgY29tbWl0IHNldHRp bmcgZm9yIHdvcmtlciAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z dWJzY3JpcHRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24u b3V0CmluZGV4IDgwYWFlODMuLmFkODAwM2YgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3N1YnNjcmlwdGlvbi5vdXQKQEAgLTc2LDEwICs3NiwxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04g cmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2Zvb2Jhcic7CiBFUlJPUjogIGludmFsaWQgY29u bmVjdGlvbiBzdHJpbmcgc3ludGF4OiBtaXNzaW5nICI9IiBhZnRlciAiZm9vYmFyIiBpbiBjb25u ZWN0aW9uIGluZm8gc3RyaW5nCiAKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlw dGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5h YmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvIHBoYXNlIGNvbW1p dCB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICAKLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rl c3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAg IHwgZiAgICAgIHwgZiAgICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAg ICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25l ciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcg fCBUd28gcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IFN5bmNocm9ub3VzIGNvbW1p dCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0 c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8 IGYgICAgICB8IGYgICAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAg IHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0CiAoMSBy b3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIFBVQkxJQ0FUSU9O IHRlc3RwdWIyLCB0ZXN0cHViMyBXSVRIIChyZWZyZXNoID0gZmFsc2UpOwpAQCAtOTQsMTAgKzk0 LDEwIEBAIEVSUk9SOiAgc3Vic2NyaXB0aW9uICJyZWdyZXNzX2RvZXNub3RleGlzdCIgZG9lcyBu b3QgZXhpc3QKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChjcmVhdGVf c2xvdCA9IGZhbHNlKTsKIEVSUk9SOiAgdW5yZWNvZ25pemVkIHN1YnNjcmlwdGlvbiBwYXJhbWV0 ZXI6ICJjcmVhdGVfc2xvdCIKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2Ny aXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBF bmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3byBw aGFzZSBjb21taXQgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAg ICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBm ICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IGYgICAgICAgICB8IGQgICAg ICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwor ICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwg ICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3byBwaGFzZSBjb21t aXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwg cmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9 IHwgZiAgICAgIHwgZiAgICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg ICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyCiAo MSByb3cpCiAKIEJFR0lOOwpAQCAtMTI5LDEwICsxMjksMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfdGVzdHN1Yl9mb28gU0VUIChzeW5jaHJvbm91c19jb21taXQgPSBmb29iYXIpOwog RVJST1I6ICBpbnZhbGlkIHZhbHVlIGZvciBwYXJhbWV0ZXIgInN5bmNocm9ub3VzX2NvbW1pdCI6 ICJmb29iYXIiCiBISU5UOiAgQXZhaWxhYmxlIHZhbHVlczogbG9jYWwsIHJlbW90ZV93cml0ZSwg cmVtb3RlX2FwcGx5LCBvbiwgb2ZmLgogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHN1YnNjcmlwdGlvbnMKLSAgICAgICAgTmFtZSAgICAgICAgIHwgICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFt aW5nIHwgVHdvIHBoYXNlIGNvbW1pdCB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1Yl9mb28gfCByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAg fCBmICAgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgbG9jYWwgICAgICAgICAgICAgIHwgZGJu YW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgICBOYW1lICAgICAgICAgfCAgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBT dHJlYW1pbmcgfCBUd28gcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWJfZm9vIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNl ciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgZiAgICAgICAgIHwg ZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBsb2NhbCAgICAgICAgICAgICAg fCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyCiAoMSByb3cpCiAKIC0tIHJlbmFtZSBiYWNr IHRvIGtlZXAgdGhlIHJlc3Qgc2ltcGxlCkBAIC0xNjUsMTkgKzE2NSwxOSBAQCBFUlJPUjogIGJp bmFyeSByZXF1aXJlcyBhIEJvb2xlYW4gdmFsdWUKIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVz c190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElD QVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGJpbmFyeSA9IHRydWUpOwogV0FS TklORzogIHRhYmxlcyB3ZXJlIG5vdCBzdWJzY3JpYmVkLCB5b3Ugd2lsbCBoYXZlIHRvIHJ1biBB TFRFUiBTVUJTQ1JJUFRJT04gLi4uIFJFRlJFU0ggUFVCTElDQVRJT04gdG8gc3Vic2NyaWJlIHRo ZSB0YWJsZXMKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAg IE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1Ymxp Y2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvIHBoYXNlIGNvbW1pdCB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdy ZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgdCAgICAgIHwg ZiAgICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vi c2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAg fCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28gcGhhc2Ug Y29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAg IENvbm5pbmZvICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVz c19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IHQgICAgICB8IGYg ICAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAg ICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0CiAoMSByb3cpCiAKIEFMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChiaW5hcnkgPSBmYWxzZSk7CiBBTFRF UiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CiBc ZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAg IHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJp bmFyeSB8IFN0cmVhbWluZyB8IFR3byBwaGFzZSBjb21taXQgfCBTeW5jaHJvbm91cyBjb21taXQg fCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IGYgICAgICAgICB8 IGQgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19k b2Vzbm90ZXhpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMK KyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8 IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvIHBoYXNlIGNvbW1pdCB8IERp c2FibGUgb24gZXJyb3IgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBmICAgICAgICAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8 IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdAogKDEgcm93KQogCiBEUk9QIFNVQlNDUklQVElP TiByZWdyZXNzX3Rlc3RzdWI7CkBAIC0xODgsMTkgKzE4OCwxOSBAQCBFUlJPUjogIHN0cmVhbWlu ZyByZXF1aXJlcyBhIEJvb2xlYW4gdmFsdWUKIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190 ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJ T04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIHN0cmVhbWluZyA9IHRydWUpOwogV0FS TklORzogIHRhYmxlcyB3ZXJlIG5vdCBzdWJzY3JpYmVkLCB5b3Ugd2lsbCBoYXZlIHRvIHJ1biBB TFRFUiBTVUJTQ1JJUFRJT04gLi4uIFJFRlJFU0ggUFVCTElDQVRJT04gdG8gc3Vic2NyaWJlIHRo ZSB0YWJsZXMKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAg IE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1Ymxp Y2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvIHBoYXNlIGNvbW1pdCB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdy ZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwg dCAgICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vi c2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAg fCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28gcGhhc2Ug Y29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAg IENvbm5pbmZvICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVz c19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHQg ICAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAg ICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0CiAoMSByb3cpCiAKIEFMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzdHJlYW1pbmcgPSBmYWxzZSk7CiBB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7 CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAg ICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8 IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3byBwaGFzZSBjb21taXQgfCBTeW5jaHJvbm91cyBjb21t aXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJz Y3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IGYgICAgICAg ICB8IGQgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVz c19kb2Vzbm90ZXhpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlv bnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxl ZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvIHBoYXNlIGNvbW1pdCB8 IERpc2FibGUgb24gZXJyb3IgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5m byAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2Ny aXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBmICAgICAgICAg fCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAg ICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdAogKDEgcm93KQogCiAtLSBmYWlsIC0gcHVi bGljYXRpb24gYWxyZWFkeSBleGlzdHMKQEAgLTIxNSwxMCArMjE1LDEwIEBAIEFMVEVSIFNVQlND UklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQUREIFBVQkxJQ0FUSU9OIHRlc3RwdWIxLCB0ZXN0cHVi MiBXSVRIIChyZWZyCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIEFERCBQVUJM SUNBVElPTiB0ZXN0cHViMSwgdGVzdHB1YjIgV0lUSCAocmVmcmVzaCA9IGZhbHNlKTsKIEVSUk9S OiAgcHVibGljYXRpb24gInRlc3RwdWIxIiBpcyBhbHJlYWR5IGluIHN1YnNjcmlwdGlvbiAicmVn cmVzc190ZXN0c3ViIgogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3Jp cHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVu YWJsZWQgfCAgICAgICAgIFB1YmxpY2F0aW9uICAgICAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcg fCBUd28gcGhhc2UgY29tbWl0IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmlu Zm8gICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlw dGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViLHRlc3RwdWIxLHRlc3RwdWIyfSB8IGYgICAg ICB8IGYgICAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBk Ym5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25l ciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgICAgICBQdWJsaWNhdGlvbiAgICAgICAgIHwgQmlu YXJ5IHwgU3RyZWFtaW5nIHwgVHdvIHBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBT eW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViLHRlc3RwdWIxLHRlc3RwdWIyfSB8IGYgICAgICB8 IGYgICAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAg ICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0CiAoMSByb3cpCiAKIC0t IGZhaWwgLSBwdWJsaWNhdGlvbiB1c2VkIG1vcmUgdGhlbiBvbmNlCkBAIC0yMzMsMTAgKzIzMywx MCBAQCBFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViMyIgaXMgbm90IGluIHN1YnNjcmlwdGlv biAicmVncmVzc190ZXN0c3ViIgogLS0gb2sgLSBkZWxldGUgcHVibGljYXRpb25zCiBBTFRFUiBT VUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIERST1AgUFVCTElDQVRJT04gdGVzdHB1YjEsIHRl c3RwdWIyIFdJVEggKHJlZnJlc2ggPSBmYWxzZSk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3byBw aGFzZSBjb21taXQgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAg ICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0g cmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7 dGVzdHB1Yn0gICB8IGYgICAgICB8IGYgICAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBvZmYg ICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwg U3RyZWFtaW5nIHwgVHdvIHBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBTeW5jaHJv bm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJl Z3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rl c3RwdWJ9ICAgfCBmICAgICAgfCBmICAgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdAogKDEgcm93KQogCiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CkBAIC0y NzAsMTAgKzI3MCwxMCBAQCBFUlJPUjogIHR3b19waGFzZSByZXF1aXJlcyBhIEJvb2xlYW4gdmFs dWUKIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0 ID0gZmFsc2UsIHR3b19waGFzZSA9IHRydWUpOwogV0FSTklORzogIHRhYmxlcyB3ZXJlIG5vdCBz dWJzY3JpYmVkLCB5b3Ugd2lsbCBoYXZlIHRvIHJ1biBBTFRFUiBTVUJTQ1JJUFRJT04gLi4uIFJF RlJFU0ggUFVCTElDQVRJT04gdG8gc3Vic2NyaWJlIHRoZSB0YWJsZXMKIFxkUnMrCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFt aW5nIHwgVHdvIHBoYXNlIGNvbW1pdCB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwg ZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgZiAgICAgICAgIHwgcCAgICAgICAgICAg ICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24g fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28gcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYg ICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IGYgICAgICAgICB8IHAgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0CiAoMSByb3cpCiAKIC0tZmFpbCAtIGFsdGVyIG9mIHR3b19waGFzZSBv cHRpb24gbm90IHN1cHBvcnRlZC4KQEAgLTI4MiwxMCArMjgyLDEwIEBAIEVSUk9SOiAgdW5yZWNv Z25pemVkIHN1YnNjcmlwdGlvbiBwYXJhbWV0ZXI6ICJ0d29fcGhhc2UiCiAtLSBidXQgY2FuIGFs dGVyIHN0cmVhbWluZyB3aGVuIHR3b19waGFzZSBlbmFibGVkCiBBTFRFUiBTVUJTQ1JJUFRJT04g cmVncmVzc190ZXN0c3ViIFNFVCAoc3RyZWFtaW5nID0gdHJ1ZSk7CiBcZFJzKwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWlu ZyB8IFR3byBwaGFzZSBjb21taXQgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25u aW5mbyAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYg ICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHQgICAgICAgICB8IHAgICAgICAgICAgICAg ICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAg ICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwg QmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvIHBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3Ig fCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAg ICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCB0ICAgICAgICAgfCBwICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0 c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CkBAIC0yOTQsMTAgKzI5NCwzMyBAQCBEUk9QIFNV QlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CiBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FU SU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBzdHJlYW1pbmcgPSB0cnVlLCB0d29f cGhhc2UgPSB0cnVlKTsKIFdBUk5JTkc6ICB0YWJsZXMgd2VyZSBub3Qgc3Vic2NyaWJlZCwgeW91 IHdpbGwgaGF2ZSB0byBydW4gQUxURVIgU1VCU0NSSVBUSU9OIC4uLiBSRUZSRVNIIFBVQkxJQ0FU SU9OIHRvIHN1YnNjcmliZSB0aGUgdGFibGVzCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBz dWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3byBwaGFz ZSBjb21taXQgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAg ICAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gcmVn cmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1Yn0gICB8IGYgICAgICB8IHQgICAgICAgICB8IHAgICAgICAgICAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAg ICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3Ry ZWFtaW5nIHwgVHdvIHBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBTeW5jaHJvbm91 cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jl c3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3Rw dWJ9ICAgfCBmICAgICAgfCB0ICAgICAgICAgfCBwICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dAorKDEgcm93KQorCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xv dF9uYW1lID0gTk9ORSk7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CistLSBm YWlsIC0gZGlzYWJsZV9vbl9lcnJvciBtdXN0IGJlIGJvb2xlYW4KK0NSRUFURSBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGRpc2FibGVfb25f ZXJyb3IgPSBmb28pOworRVJST1I6ICBkaXNhYmxlX29uX2Vycm9yIHJlcXVpcmVzIGEgQm9vbGVh biB2YWx1ZQorLS0gbm93IGl0IHdvcmtzCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9O IHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBkaXNhYmxlX29uX2Vycm9yID0gZmFsc2Up OworV0FSTklORzogIHRhYmxlcyB3ZXJlIG5vdCBzdWJzY3JpYmVkLCB5b3Ugd2lsbCBoYXZlIHRv IHJ1biBBTFRFUiBTVUJTQ1JJUFRJT04gLi4uIFJFRlJFU0ggUFVCTElDQVRJT04gdG8gc3Vic2Ny aWJlIHRoZSB0YWJsZXMKK1xkUnMrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJz Y3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3byBwaGFzZSBj b21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAg Q29ubmluZm8gICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNz X3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgZiAg ICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAg ICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QKKygxIHJvdykKKworQUxURVIg U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKGRpc2FibGVfb25fZXJyb3IgPSB0cnVl KTsKK1xkUnMrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisg ICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQ dWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3byBwaGFzZSBjb21taXQgfCBEaXNh YmxlIG9uIGVycm9yIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgZiAgICAgICAgIHwgZCAg ICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBk Ym5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3N1YnNjcmlwdGlvbi5zcWwKaW5kZXggYmQwZjRhZi4uZGJhYzhlMiAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9zdWJzY3JpcHRpb24uc3FsCkBAIC0yMjgsNiArMjI4LDIwIEBAIENSRUFURSBTVUJTQ1JJ UFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCcgUFVCCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9u YW1lID0gTk9ORSk7CiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CiAKKy0tIGZh aWwgLSBkaXNhYmxlX29uX2Vycm9yIG11c3QgYmUgYm9vbGVhbgorQ1JFQVRFIFNVQlNDUklQVElP TiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0 JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgZGlzYWJsZV9vbl9l cnJvciA9IGZvbyk7CisKKy0tIG5vdyBpdCB3b3JrcworQ1JFQVRFIFNVQlNDUklQVElPTiByZWdy ZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJM SUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgZGlzYWJsZV9vbl9lcnJvciA9 IGZhbHNlKTsKKworXGRScysKKworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBT RVQgKGRpc2FibGVfb25fZXJyb3IgPSB0cnVlKTsKKworXGRScysKK0FMVEVSIFNVQlNDUklQVElP TiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RST1AgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1YjsKKwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwogRFJP UCBST0xFIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXI7CiBEUk9QIFJPTEUgcmVncmVzc19zdWJz Y3JpcHRpb25fdXNlcjI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMjhf ZGlzYWJsZV9vbl9lcnJvci5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAyOF9kaXNhYmxl X29uX2Vycm9yLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1ZWYwMzIK LS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMjhfZGlzYWJsZV9v bl9lcnJvci5wbApAQCAtMCwwICsxLDE5NiBAQAorCisjIENvcHlyaWdodCAoYykgMjAyMS0yMDIy LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCisjIFRlc3Qgb2YgbG9naWNh bCByZXBsaWNhdGlvbiBzdWJzY3JpcHRpb24gc2VsZi1kaXNhYmxpbmcgZmVhdHVyZQordXNlIHN0 cmljdDsKK3VzZSB3YXJuaW5nczsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNl IFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOwordXNlIFRlc3Q6Ok1vcmUgdGVzdHMgPT4gODsKKwor IyBXYWl0IGZvciB0aGUgbmFtZWQgc3Vic2NyaXB0aW9ucyB0byBjYXRjaCB1cCBvciB0byBiZSBk aXNhYmxlZC4KK3N1YiB3YWl0X2Zvcl9zdWJzY3JpcHRpb25zCit7CisJbXkgKCRub2RlX25hbWUs ICRkYm5hbWUsIEBzdWJzY3JpcHRpb25zKSA9IEBfOworCisJIyBVbmlxdWUtaWZ5IHRoZSBzdWJz Y3JpcHRpb25zIHBhc3NlZCBieSB0aGUgY2FsbGVyCisJbXkgJXVuaXF1ZSAgICAgICA9IG1hcCB7 ICRfID0+IDEgfSBAc3Vic2NyaXB0aW9uczsKKwlteSBAdW5pcXVlICAgICAgID0gc29ydCBrZXlz ICV1bmlxdWU7CisJbXkgJHVuaXF1ZV9jb3VudCA9IHNjYWxhcihAdW5pcXVlKTsKKworCSMgQ29u c3RydWN0IGEgU1FMIGxpc3QgZnJvbSB0aGUgdW5pcXVlIHN1YnNjcmlwdGlvbiBuYW1lcworCW15 ICRzdWJsaXN0ID0gam9pbignLCAnLCBtYXAgeyAiJyRfJyIgfSBAdW5pcXVlKTsKKworCW15ICRw b2xsaW5nX3NxbCA9IHFxKAorCQlTRUxFQ1QgQ09VTlQoMSkgPSAkdW5pcXVlX2NvdW50IEZST00K KwkJCShTRUxFQ1Qgcy5vaWQKKwkJCQlGUk9NIHBnX2NhdGFsb2cucGdfc3Vic2NyaXB0aW9uIHMK KwkJCQlMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19zdWJzY3JpcHRpb25fcmVsIHNyCisJCQkJT04g c3Iuc3JzdWJpZCA9IHMub2lkCisJCQkJV0hFUkUgc3Iuc3JzdWJzdGF0ZSBJTiAoJ3MnLCAncicp CisJCQkJICBBTkQgcy5zdWJuYW1lIElOICgkc3VibGlzdCkKKwkJCQkgIEFORCBzLnN1YmVuYWJs ZWQgSVMgVFJVRQorCQkJIFVOSU9OCisJCQkgU0VMRUNUIHMub2lkCisJCQkJRlJPTSBwZ19jYXRh bG9nLnBnX3N1YnNjcmlwdGlvbiBzCisJCQkJV0hFUkUgcy5zdWJuYW1lIElOICgkc3VibGlzdCkK KwkJCQkgIEFORCBzLnN1YmVuYWJsZWQgSVMgRkFMU0UKKwkJCSkgQVMgc3luY2VkX29yX2Rpc2Fi bGVkCisJCSk7CisJcmV0dXJuICRub2RlX25hbWUtPnBvbGxfcXVlcnlfdW50aWwoJGRibmFtZSwg JHBvbGxpbmdfc3FsKTsKK30KKworbXkgQHNjaGVtYXMgPSBxdyhzMSBzMik7CitteSAoJHNjaGVt YSwgJGNtZCk7CisKK215ICRub2RlX3B1Ymxpc2hlciA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0 ZXItPm5ldygncHVibGlzaGVyJyk7Ciskbm9kZV9wdWJsaXNoZXItPmluaXQoYWxsb3dzX3N0cmVh bWluZyA9PiAnbG9naWNhbCcpOworJG5vZGVfcHVibGlzaGVyLT5zdGFydDsKKworbXkgJG5vZGVf c3Vic2NyaWJlciA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vic2NyaWJlcicp OworJG5vZGVfc3Vic2NyaWJlci0+aW5pdDsKKyRub2RlX3N1YnNjcmliZXItPnN0YXJ0OworCisj IENyZWF0ZSBpZGVudGljYWwgc2NoZW1hLCB0YWJsZSBhbmQgaW5kZXggb24gYm90aCB0aGUgcHVi bGlzaGVyIGFuZAorIyBzdWJzY3JpYmVyCitmb3IgJHNjaGVtYSAoQHNjaGVtYXMpCit7CisJJGNt ZCA9IHFxKAorQ1JFQVRFIFNDSEVNQSAkc2NoZW1hOworQ1JFQVRFIFRBQkxFICRzY2hlbWEudGJs IChpIElOVCk7CitBTFRFUiBUQUJMRSAkc2NoZW1hLnRibCBSRVBMSUNBIElERU5USVRZIEZVTEw7 CitDUkVBVEUgSU5ERVggJHtzY2hlbWF9X3RibF9pZHggT04gJHNjaGVtYS50YmwoaSkpOworCSRu b2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICRjbWQpOworCSRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAkY21kKTsKK30KKworIyBDcmVhdGUgbm9uLXVu aXF1ZSBkYXRhIGluIGJvdGggc2NoZW1hcyBvbiB0aGUgcHVibGlzaGVyLgorZm9yICRzY2hlbWEg KEBzY2hlbWFzKQoreworCSRjbWQgPSBxcShJTlNFUlQgSU5UTyAkc2NoZW1hLnRibCAoaSkgVkFM VUVTICgxKSwgKDEpLCAoMSkpOworCSRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICRjbWQpOworfQorCisjIENyZWF0ZSBhbiBhZGRpdGlvbmFsIHVuaXF1ZSBpbmRleCBpbiBz Y2hlbWEgczEgb24gdGhlIHN1YnNjcmliZXIgb25seS4gIFdoZW4KKyMgd2UgY3JlYXRlIHN1YnNj cmlwdGlvbnMsIGJlbG93LCB0aGlzIHNob3VsZCBjYXVzZSBzdWJzY3JpcHRpb24gInMxIiBvbiB0 aGUKKyMgc3Vic2NyaWJlciB0byBmYWlsIGR1cmluZyBpbml0aWFsIHN5bmNocm9uaXphdGlvbiBh bmQgdG8gZ2V0IGF1dG9tYXRpY2FsbHkKKyMgZGlzYWJsZWQuCiskY21kID0gcXEoQ1JFQVRFIFVO SVFVRSBJTkRFWCBzMV90YmxfdW5pcXVlIE9OIHMxLnRibCAoaSkpOworJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICRjbWQpOworCisjIENyZWF0ZSBwdWJsaWNhdGlvbnMg YW5kIHN1YnNjcmlwdGlvbnMgbGlua2luZyB0aGUgc2NoZW1hcyBvbgorIyB0aGUgcHVibGlzaGVy IHdpdGggdGhvc2Ugb24gdGhlIHN1YnNjcmliZXIuICBUaGlzIHRlc3RzIHRoYXQgdGhlCisjIHVu aXF1ZW5lc3MgdmlvbGF0aW9ucyBjYXVzZSBzdWJzY3JpcHRpb24gInMxIiB0byBmYWlsIGR1cmlu ZworIyBpbml0aWFsIHN5bmNocm9uaXphdGlvbi4KK215ICRwdWJsaXNoZXJfY29ubnN0ciA9ICRu b2RlX3B1Ymxpc2hlci0+Y29ubnN0ciAuICcgZGJuYW1lPXBvc3RncmVzJzsKK2ZvciAkc2NoZW1h IChAc2NoZW1hcykKK3sKKwkjIENyZWF0ZSB0aGUgcHVibGljYXRpb24gZm9yIHRoaXMgdGFibGUK KwkkY21kID0gcXEoCitDUkVBVEUgUFVCTElDQVRJT04gJHNjaGVtYSBGT1IgVEFCTEUgJHNjaGVt YS50YmwpOworCSRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICRjbWQpOwor CisJIyBDcmVhdGUgdGhlIHN1YnNjcmlwdGlvbiBmb3IgdGhpcyB0YWJsZQorCSRjbWQgPSBxcSgK K0NSRUFURSBTVUJTQ1JJUFRJT04gJHNjaGVtYQorCUNPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29u bnN0cicKKwlQVUJMSUNBVElPTiAkc2NoZW1hCisJV0lUSCAoZGlzYWJsZV9vbl9lcnJvciA9IHRy dWUpKTsKKwkkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJGNtZCk7Cit9 CisKKyMgV2FpdCBmb3IgdGhlIGluaXRpYWwgc3Vic2NyaXB0aW9uIHN5bmNocm9uaXphdGlvbnMg dG8gZmluaXNoIG9yIGZhaWwuCit3YWl0X2Zvcl9zdWJzY3JpcHRpb25zKCRub2RlX3N1YnNjcmli ZXIsICdwb3N0Z3JlcycsIEBzY2hlbWFzKQorICBvciBkaWUgIlRpbWVkIG91dCB3aGlsZSB3YWl0 aW5nIGZvciBzdWJzY3JpYmVyIHRvIHN5bmNocm9uaXplIGRhdGEiOworCisjIFN1YnNjcmlwdGlv biAiczEiIHNob3VsZCBoYXZlIGRpc2FibGVkIGl0c2VsZiBkdWUgdG8gZXJyb3IuCiskY21kID0g cXEoCitTRUxFQ1Qgc3ViZW5hYmxlZCBGUk9NIHBnX2NhdGFsb2cucGdfc3Vic2NyaXB0aW9uIFdI RVJFIHN1Ym5hbWUgPSAnczEnKTsKK2lzKCRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAkY21kKSwKKwkiZiIsICJzdWJzY3JpcHRpb24gczEgbm8gbG9uZ2VyIGVuYWJsZWQi KTsKKworIyBTdWJzY3JpcHRpb24gInMyIiBzaG91bGQgaGF2ZSBjb3BpZWQgdGhlIGluaXRpYWwg ZGF0YSB3aXRob3V0IGluY2lkZW50LgorJGNtZCA9IHFxKAorU0VMRUNUIHN1YmVuYWJsZWQgRlJP TSBwZ19jYXRhbG9nLnBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3MyJyk7Citpcygk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJGNtZCksCisJInQiLCAic3Vi c2NyaXB0aW9uIHMyIHN0aWxsIGVuYWJsZWQiKTsKKyRjbWQgPSBxcShTRUxFQ1QgaSwgQ09VTlQo KikgRlJPTSBzMi50YmwgR1JPVVAgQlkgaSk7Citpcygkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgJGNtZCksCisJIjF8MyIsICJzdWJzY3JpcHRpb24gczIgcmVwbGljYXRl ZCBpbml0aWFsIGRhdGEiKTsKKworIyBFbnRlciB1bmlxdWUgZGF0YSBmb3IgYm90aCBzY2hlbWFz IG9uIHRoZSBwdWJsaXNoZXIuICBUaGlzIHNob3VsZCBzdWNjZWVkIG9uCisjIHRoZSBwdWJsaXNo ZXIgbm9kZSwgYW5kIG5vdCBjYXVzZSBhbnkgYWRkaXRpb25hbCBwcm9ibGVtcyBvbiB0aGUgc3Vi c2NyaWJlcgorIyBzaWRlIGVpdGhlciwgdGhvdWdoIGRpc2FibGVkIHN1YnNjcmlwdGlvbiAiczEi IHNob3VsZCBub3QgcmVwbGljYXRlIGFueXRoaW5nLgorZm9yICRzY2hlbWEgKEBzY2hlbWFzKQor eworCSRjbWQgPSBxcShJTlNFUlQgSU5UTyAkc2NoZW1hLnRibCAoaSkgVkFMVUVTICgyKSk7CisJ JG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJGNtZCk7Cit9CisKKyMgV2Fp dCBmb3IgdGhlIGRhdGEgdG8gcmVwbGljYXRlIGZvciB0aGUgc3Vic2NyaXB0aW9ucy4gIFRoaXMg dGVzdHMgdGhhdCB0aGUKKyMgcHJvYmxlbXMgZW5jb3VudGVyZWQgYnkgc3Vic2NyaXB0aW9uICJz MSIgZG8gbm90IGNhdXNlIHN1YnNjcmlwdGlvbiAiczIiIHRvCisjIGdldCBzdHVjay4gU3Vic2Ny aXB0aW9uICJzMSIgc2hvdWxkIHN0aWxsIGJlIGRpc2FibGVkLgorJGNtZCA9IHFxKAorU0VMRUNU IHN1YmVuYWJsZWQgRlJPTSBwZ19jYXRhbG9nLnBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1l ID0gJ3MxJyk7Citpcygkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJGNt ZCksCisJImYiLCAic3Vic2NyaXB0aW9uIHMxIHN0aWxsIGRpc2FibGVkIik7CisKKyMgU3Vic2Ny aXB0aW9uICJzMiIgc2hvdWxkIHN0aWxsIGJlIGVuYWJsZWQgYW5kIGhhdmUgcmVwbGljYXRlZCBh bGwgY2hhbmdlcworJGNtZCA9IHFxKAorU0VMRUNUIHN1YmVuYWJsZWQgRlJPTSBwZ19jYXRhbG9n LnBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3MyJyk7Citpcygkbm9kZV9zdWJzY3Jp YmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJGNtZCksCisJInQiLCAic3Vic2NyaXB0aW9uIHMy IHN0aWxsIGVuYWJsZWQiKTsKKyRjbWQgPSBxKFNFTEVDVCBDT1VOVCgxKSA9IDEgRlJPTSBzMi50 YmwgV0hFUkUgaSA9IDIpOworJG5vZGVfc3Vic2NyaWJlci0+cG9sbF9xdWVyeV91bnRpbCgncG9z dGdyZXMnLCAkY21kKQorICBvciBkaWUgIlRpbWVkIG91dCB3aGlsZSB3YWl0aW5nIGZvciBzdWJz Y3JpYmVyIHRvIGFwcGx5IGRhdGEiOworCisjIERyb3AgdGhlIHVuaXF1ZSBpbmRleCBvbiAiczEi IHdoaWNoIGNhdXNlZCB0aGUgc3Vic2NyaXB0aW9uIHRvIGJlIGRpc2FibGVkCiskY21kID0gcXEo RFJPUCBJTkRFWCBzMS5zMV90YmxfdW5pcXVlKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLCAkY21kKTsKKworIyBSZS1lbmFibGUgdGhlIHN1YnNjcmlwdGlvbiAiczEi CiskY21kID0gcShBTFRFUiBTVUJTQ1JJUFRJT04gczEgRU5BQkxFKTsKKyRub2RlX3N1YnNjcmli ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAkY21kKTsKKworIyBXYWl0IGZvciB0aGUgZGF0YSB0 byByZXBsaWNhdGUKK3dhaXRfZm9yX3N1YnNjcmlwdGlvbnMoJG5vZGVfc3Vic2NyaWJlciwgJ3Bv c3RncmVzJywgQHNjaGVtYXMpCisgIG9yIGRpZSAiVGltZWQgb3V0IHdoaWxlIHdhaXRpbmcgZm9y IHN1YnNjcmliZXIgdG8gc3luY2hyb25pemUgZGF0YSI7CisKKyMgQ2hlY2sgdGhhdCB3ZSBoYXZl IHRoZSBuZXcgZGF0YSBpbiBzMS50YmwKKyRjbWQgPSBxKFNFTEVDVCBNQVgoaSksIENPVU5UKCop IEZST00gczEudGJsKTsKK2lzKCRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAkY21kKSwKKwkiMnw0IiwgInN1YnNjcmlwdGlvbiBzMSByZXBsaWNhdGVkIGRhdGEiKTsKKwor IyBEZWxldGUgdGhlIGRhdGEgZnJvbSB0aGUgc3Vic2NyaWJlciBvbmx5LCBhbmQgcmVjcmVhdGUg dGhlIHVuaXF1ZSBpbmRleAorJGNtZCA9IHEoCitERUxFVEUgRlJPTSBzMS50Ymw7CitDUkVBVEUg VU5JUVVFIElOREVYIHMxX3RibF91bmlxdWUgT04gczEudGJsIChpKSk7Ciskbm9kZV9zdWJzY3Jp YmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJGNtZCk7CisKKyMgQWRkIG1vcmUgbm9uLXVuaXF1 ZSBkYXRhIHRvIHRoZSBwdWJsaXNoZXIKK2ZvciAkc2NoZW1hIChAc2NoZW1hcykKK3sKKwkkY21k ID0gcXEoSU5TRVJUIElOVE8gJHNjaGVtYS50YmwgKGkpIFZBTFVFUyAoMyksICgzKSwgKDMpKTsK Kwkkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAkY21kKTsKK30KKworIyBX YWl0IGZvciB0aGUgZGF0YSB0byByZXBsaWNhdGUgZm9yIHRoZSBzdWJzY3JpcHRpb25zLiAgVGhp cyB0ZXN0cyB0aGF0CisjIHVuaXF1ZW5lc3MgdmlvbGF0aW9ucyBlbmNvdW50ZXJlZCBkdXJpbmcg cmVwbGljYXRpb24gY2F1c2UgczEgdG8gYmUgZGlzYWJsZWQuCiskY21kID0gcXEoCitTRUxFQ1Qg Y291bnQoMSkgPSAxIEZST00gcGdfY2F0YWxvZy5wZ19zdWJzY3JpcHRpb24gcworV0hFUkUgcy5z dWJuYW1lID0gJ3MxJyBBTkQgcy5zdWJlbmFibGVkIElTIEZBTFNFCispOworJG5vZGVfc3Vic2Ny aWJlci0+cG9sbF9xdWVyeV91bnRpbCgncG9zdGdyZXMnLCAkY21kKQorICBvciBkaWUgIlRpbWVk IG91dCB3aGlsZSB3YWl0aW5nIGZvciBzdWJzY3JpcHRpb24gczEgdG8gYmUgZGlzYWJsZWQiOwor CisjIFN1YnNjcmlwdGlvbiAiczIiIHNob3VsZCBoYXZlIGNvcGllZCB0aGUgaW5pdGlhbCBkYXRh IHdpdGhvdXQgaW5jaWRlbnQuCiskY21kID0gcXEoCitTRUxFQ1Qgc3ViZW5hYmxlZCBGUk9NIHBn X2NhdGFsb2cucGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAnczInKTsKK2lzKCRub2Rl X3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAkY21kKSwKKwkidCIsICJzdWJzY3Jp cHRpb24gczIgc3RpbGwgZW5hYmxlZCIpOworJGNtZCA9IHFxKFNFTEVDVCBNQVgoaSksIENPVU5U KCopIEZST00gczIudGJsKTsKK2lzKCRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAkY21kKSwKKwkiM3w3IiwgInN1YnNjcmlwdGlvbiBzMiByZXBsaWNhdGVkIGFkZGl0aW9u YWwgZGF0YSIpOworCiskbm9kZV9zdWJzY3JpYmVyLT5zdG9wOworJG5vZGVfcHVibGlzaGVyLT5z dG9wOwotLSAKMS44LjMuMQoK --_002_TYCPR01MB8373CCCEFF852F17E1C5D85EED359TYCPR01MB8373jpnp_--