Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rSzXd-00HFX1-T4 for pgsql-hackers@arkaria.postgresql.org; Thu, 25 Jan 2024 13:13:15 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rSzWd-00GknP-U6 for pgsql-hackers@arkaria.postgresql.org; Thu, 25 Jan 2024 13:12:11 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rSzWc-00Gkm6-If for pgsql-hackers@lists.postgresql.org; Thu, 25 Jan 2024 13:12:11 +0000 Received: from esa17.fujitsucc.c3s2.iphmx.com ([216.71.158.34]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rSzWV-003J2A-Vv for pgsql-hackers@postgresql.org; Thu, 25 Jan 2024 13:12:09 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1706188324; x=1737724324; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=bfPETGCFBY7DUnK1QrW5cQ41h2G6xBFTL9Tw5cF3y8I=; b=ncxwVipP5CTQgqpFZMsiHFMKxZ49YH/GbzJb8FqqhCrmtrI7c7EZliMi boZU33ut6exOR1ZrCeSFJ8/DyJTSv+dzRG+asBM501KJZ3urDLbh0Fx8M GBObQXEoGjezPQATiEvxK6gOftmpUx2Sje6GAntEZyAiMS8gIUb2koDWT PfoJWeUlZufDCBDe95bR99bSzer+OanaUK01Xs+BOcV8Mo9yGAXMilmMJ CX7F8ywkmmoKv3jZ7iqbAO7242RAcz8Yfs9Za7CvQqFNzeDFV4art0XLo L4/57wobaBfym0a05uIjUe5865+07hAso3IqH9icd9EYFvDj6Bu7iuZZO g==; X-IronPort-AV: E=McAfee;i="6600,9927,10962"; a="109218523" X-IronPort-AV: E=Sophos;i="6.05,216,1701097200"; d="scan'208,223";a="109218523" Received: from mail-tycjpn01lp2169.outbound.protection.outlook.com (HELO JPN01-TYC-obe.outbound.protection.outlook.com) ([104.47.23.169]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Jan 2024 22:11:56 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Sn4LjtdBHl/XKxcfMDSfna1W4enVLKp/0Y5/6a8T3lc+cmQ2v17W3PUaFnyTpiU49mnejWw3xYqYyZIhMN+UubMCMIdaC/bfH4zp4f0TRbvcYVkQlPrli7VmFtKvxhK8KMUyejIbcLzs4cj684V6t1cv1c0f4pOTfgIeB/6wrA8DH54T9qeTxAcpo80FkCdnMlHyjwF0FtbRjXE69Xqfwn95M84cP25p4QndfugrCAnQs1ZSB5Fjiy9RuDwu8U2a8P2pEp3iet4FAlaaM/StEAvUCH9vXJF35kiD8Wp5u3PkEALCaJmFCSDxHHM/mwL9HQURlP3CoccOlcygppfgdg== 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=mBAX78JGFJOi8b8fLAKHl+GvIhudFCP/nqa/JHPKbdI=; b=HS7LNG4z0as15Zw4RKw6A+xn1VU5E5dAMki5fHNT3WYv1tAxBbN7hj3w+Qali/O3gEckDlgSWrsQF2HDhvyHbQqbW6yCRFW4JwcFdPnXaTWhlzvMe6LXLSWjNRN+vGNE8X6U7zbiDkK1fGUB+727C7MMd8EuFTLTrq/Lr/I3xtoOZSxfTZN6uUoAVQYO/Yaejs82XtN6RyUBJWj0SNjOo5AJPhFOia+61czS7V3AoOQMYAujjDwoVtNs45Zg4LNaY69Okn1xOV+01NmuTIJyBEzZ1mRhMv0+FgB5iOsLPXq8vnLHaGMstqfsPAbdZ7wvrUoKwIpWDLcmQH/WZYhSZw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=fujitsu.com; dmarc=pass action=none header.from=fujitsu.com; dkim=pass header.d=fujitsu.com; arc=none Received: from OS0PR01MB5716.jpnprd01.prod.outlook.com (2603:1096:604:bb::12) by TY3PR01MB9824.jpnprd01.prod.outlook.com (2603:1096:400:223::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7249.14; Thu, 25 Jan 2024 13:11:50 +0000 Received: from OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::638f:c5ac:dcaf:baa1]) by OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::638f:c5ac:dcaf:baa1%7]) with mapi id 15.20.7249.011; Thu, 25 Jan 2024 13:11:50 +0000 From: "Zhijie Hou (Fujitsu)" To: Amit Kapila , Bertrand Drouvot CC: shveta malik , Ajin Cherian , Masahiko Sawada , Dilip Kumar , Peter Smith , Nisha Moond , "Hayato Kuroda (Fujitsu)" , Bharath Rupireddy , Peter Eisentraut , Bruce Momjian , Ashutosh Sharma , Andres Freund , pgsql-hackers , Alvaro Herrera Subject: RE: Synchronizing slots from primary to standby Thread-Topic: Synchronizing slots from primary to standby Thread-Index: AQHaJE9sgJJNJUqALky3mvuBKJq3g7CYl8uAgAC/xgCAANHogIAAa3WAgAArgoCAAQCOgIAADoeAgAA1dgCAABjKgIAABtwAgAL+XYCABKJcAIAAQJWAgAK2zQCAABFoAIAAWssAgADokgCAAKIxAIABM9iAgAUcsHCAAOg8AIAAsL6AgAEHJgCAAGl7gIAAGzGAgAljCKCAABkPgIABJ9qAgABFKACAApdEgIAANHAAgAanVQCAAbfUMIAA/DsAgAATNYCAAJYZAIAA46aAgAB8dwCAABaPAIAEULaAgAHkvsCAACL0gIAC/nIAgAGlGQCAAAWMgIABP5kAgAR2lICAAAmYgIAAOC8AgAAk1ICAACYogIABa66AgAAOZoCAAzwGgIAEcG2AgAAhSACAAB6rAIABao4AgAAraQCAAX4kAIABEYpQgABVXwCAACmxgIAAKPWQ Date: Thu, 25 Jan 2024 13:11:50 +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: =?utf-8?B?TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5LTQyYWMtYWI0ZC0zYjBmNGZlY2Uw?= =?utf-8?B?NTBfQWN0aW9uSWQ9MzllY2EwMWEtM2Q2Zi00MTM3LTk3MTktOTJjYmFmNmQy?= =?utf-8?B?YjcyO01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?utf-8?B?ZWNlMDUwX0NvbnRlbnRCaXRzPTA7TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5?= =?utf-8?B?LTQyYWMtYWI0ZC0zYjBmNGZlY2UwNTBfRW5hYmxlZD10cnVlO01TSVBfTGFi?= =?utf-8?B?ZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRmZWNlMDUwX01ldGhv?= =?utf-8?B?ZD1TdGFuZGFyZDtNU0lQX0xhYmVsX2E3Mjk1Y2MxLWQyNzktNDJhYy1hYjRk?= =?utf-8?B?LTNiMGY0ZmVjZTA1MF9OYW1lPUZVSklUU1UtUkVTVFJJQ1RFROKAiztNU0lQ?= =?utf-8?B?X0xhYmVsX2E3Mjk1Y2MxLWQyNzktNDJhYy1hYjRkLTNiMGY0ZmVjZTA1MF9T?= =?utf-8?B?ZXREYXRlPTIwMjQtMDEtMjVUMTI6NTE6MjBaO01TSVBfTGFiZWxfYTcyOTVj?= =?utf-8?B?YzEtZDI3OS00MmFjLWFiNGQtM2IwZjRmZWNlMDUwX1NpdGVJZD1hMTlmMTIx?= =?utf-8?Q?d-81e1-4858-a9d8-736e267fd4c7;?= authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=fujitsu.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: OS0PR01MB5716:EE_|TY3PR01MB9824:EE_ x-ms-office365-filtering-correlation-id: ff4425ff-2e93-49c4-bd08-08dc1da73157 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: MKITCQ3GanHfO5TBtDRZ5iRvQknOhiMhyAjAHUT6FUftIUbSIbDg67kRndmOe+H+zLjSQVV0drOTyyaqwqidaFWSk1qjw50fs2cOcuZT/k9moCA9lM/N4Rk25fFcGKzTlJYBm8BNjNopxYoXn2LUDs/1EleqTXpFKJ0ZAOHr/8liAK1wtDGG2LhLHOdcudH751YaKqDk0LdjCRoqJE6+oCIYSZs3xbWdZ3/DAeaIsHYfmwmgZiw2kv93hekRM9O9q7L5HT89nt0anANqSlXR+6lgMy+l+H13LJyVDyy33y4LdA8AC3JEOdtAnOX+g88eEObIjzD/ohywSXr5NgA5lG/x7ZXfdLdMtl5izgUsXqRg00e7zOkezsN4ZrdCvExfvmh9RqiF08mnYvysRPPEZpiQxSZD4SblKSah2vXSlUSNVhbd4TkP91bCHoClwHgP/BjRrcQGMMPJSG00OJz7Au509UiufnLlCRF43sSOmurszuf3lHQ+h+XQMYloSF7/dpy9N10/wKDqSDQERGBUzt/yET4p31p/AU5iwBtMa1QfGkI/Pgb9xd+P1pTK4Bm3yNAXtz95Rm3YsKuV/oem5A== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS0PR01MB5716.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(396003)(136003)(346002)(39860400002)(376002)(230922051799003)(64100799003)(186009)(451199024)(1590799021)(1800799012)(8676002)(8936002)(4326008)(1580799018)(52536014)(122000001)(66446008)(66476007)(66556008)(64756008)(316002)(110136005)(76116006)(54906003)(66946007)(83380400001)(26005)(82960400001)(2906002)(41300700001)(33656002)(38070700009)(7416002)(5660300002)(966005)(55016003)(478600001)(38100700002)(9686003)(7696005)(6506007)(53546011)(99936003)(71200400001)(85182001)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dFZ4RDN3MmlRV0xuR2s2MHZWLy93dXl6SElzV3BXbS8zT2ovL1RZU2ZjOGt6?= =?utf-8?B?WFZ2ejBzRDdtcmV3TTQxempQdU53UGhacUw5T0duQjZENUNKVzVXeHNLMVpm?= =?utf-8?B?cXNxdUlYaDhrWlNWeXZ1UUpLaXkxQkxaQ0NycjhJOGxyVWQ5Y2ZwK3FyOUNx?= =?utf-8?B?andJbWErbWRCSjRwZ0F5Rno4SFhHRUNvMXMwV05Ib2FpektwUlgyTXppbWFl?= =?utf-8?B?clo1MXRGTDd3eTZUNW1pSlZtejQ3M09tWldJQUhMU1JCWmdWZzYrc2JJWVhp?= =?utf-8?B?T3NkaUlTenMxOE1wWGtiUzY1Rm9WNWovRzlhRVlmZHJQclpEWXV6Lzg2dktO?= =?utf-8?B?WlpaZU9iR2NYTnpKaWZvWkN4VWx6YUhUbVNjY3VxRGRRVE5wT0ExS0hWdXRx?= =?utf-8?B?ZjI2dWlCK0FZc3NWcUJSTlhMeVhoUzE1ZDBranB2amcyNUphWE85NWNjNUx4?= =?utf-8?B?VDhIWkVWU2NQbmlPN2crOWNoQnZPdXY4V3JYQng3b3FhVUNHQUZ0c3pQUURJ?= =?utf-8?B?Y2cyRlcvcEw4b2ZyMC9HZ0FyZ1haQmowRzhaMXpnZWxHaXRrZFdIYnY4dXJx?= =?utf-8?B?YlA2NDd2KzZ0a0pWcDlmMUpzT1puSFA0Q1VVaEZEN2pjSHB1TURuLzlMd0pD?= =?utf-8?B?ZS9vT0lZTWxZU042cUdWTzZJSGFkV2JMc0x2MXB6bjFQUzNUYkh1V2R0dlZM?= =?utf-8?B?dlFzSldTL0lxRkFrRkQ5U2dsZjc4cnoyTW5iWEdCZW1TcS9TZVBrMEVEaVNu?= =?utf-8?B?clViYzlsQmtMdXlkcVRTMnc5OFlIYk1ic0plckZtUjF0Y2lFSzVqTlhmMlNh?= =?utf-8?B?OXBsOFVGWkJXN0p6NTdhRklNM2NjM041V3UzSU44ZDV2a3B5V1dTY2U5M20z?= =?utf-8?B?a3JuQjc4djRnZkRBeHdrcWRZVWFXSGtrSlEydWY5L1F3UlpqRFhPRm9HWEds?= =?utf-8?B?T2ZPZWd3eWI1U003cjhSVnh0TU1maG81Sm1aYnFkbStkZEJ3TXVqaEN0R3Bt?= =?utf-8?B?YTZlK25zR3YzOVcxZWo5NUlPb3B3Y1dKV2lFOCs3MGdibU9jaERDWWNmQzhX?= =?utf-8?B?SVdVODM4TXRSSmpGUy9BTHNuZXgrQ0N2SzhlRXhRb1czZCtlSGpPai9KM2Vk?= =?utf-8?B?SUZ6VldZcmo5UVIrQzgxOHMyaDI4ZzJCZHZYRWZURFFZSk95bWRTNDBZUndF?= =?utf-8?B?eWJwRmF5bGZ0cjlWWDgySUg0dnppT1h0eUVzZHlScmNuMXZ0MHVaSWhwbzNN?= =?utf-8?B?OWV2ZTVMaXlHY0RCSWJiNENIeXRkUVRMekc5N205RytTaTRiSUZST2pXdVJu?= =?utf-8?B?cngydFR1UmRBM2owa0UwK0U4dlFkVUttNHRsZmszS3REemIzZXpUS1dua1Zi?= =?utf-8?B?bko4THlZSzZqbVd6UGorU3JGc2pJS3FqSjZ2NUVyeDZHWktiWk9ZM0QrSzdL?= =?utf-8?B?UWFyUHlmV1ZaY1RHd2ZTeTgxNjc2bEQwbTBYM2VNZGtQNjErcFJSQXQzRTVC?= =?utf-8?B?R241YTBOUGMwcXBkUFhpU3lLM3RzN2FXNjlmaXBURmtuOGVHNHpHcUJmcU5l?= =?utf-8?B?QVFqWDBGZDk5YXVUa0ZCcFhBOTlYYXdiUGpZRmFxT2VwWGtPamJEVGRNS2xw?= =?utf-8?B?M2p3STJicnVZWktKd3JXY1p3UzhHWmU2dVMxSDFQY1BMdDNPZ3NOZjBFaG9r?= =?utf-8?B?eFpsOFFnR3ZBb0xIREhFeVdyWFAydXdoZGNxUXVLRXBMVlloaG5oTkQ1SkpQ?= =?utf-8?B?L0xFbEdxbytBNDA2MG5GZHFEYTJOaVgybnJwcytQd2k5UFdIYlF1dG1oQUpC?= =?utf-8?B?K0IydkhGV0ZvcW14eU8yckZHZmc3eW1JMDlUdE1leis1OVVFQlF0NnpFWFdF?= =?utf-8?B?Q0tpR09DNll0Szlsek0zRFdEOGpNeTBVc0RYeXBvd3NraEVxRld1ZjhFanU0?= =?utf-8?B?eEluYUh5aTBFa2RJL3hiZkM1Z1hHVmpFMVZYQVl1Q0VLb2VnaEREeGJjTW9n?= =?utf-8?B?THV5c2pMaXN3cmF1NEM5ZGh3RTYrTENLeHcyZzNLby9kd3FvbHNhUkdndjl4?= =?utf-8?B?OXlkbWUrYVBZd1FjU294MWhQQWxHREhROWVWYm1VNHljcVJxeEc0eVdORnJ3?= =?utf-8?Q?7dcd4FdknIwIIDTgy2HJFEC2T?= Content-Type: multipart/mixed; boundary="_008_OS0PR01MB571623B1D01003F99A7BB983947A2OS0PR01MB5716jpnp_" MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: rC68wv8KXBU7EQemtLZoUqqbz4ixGuIKhxzXyCOs2Si+mXBsj3vmZEgLxtw4PgIO2YtQHTpnfpgbnzLbJV1Q42qhVnFUkPVmOZsmDgwAR2dD3cA3dXZM2O0TOIB/IWg9fRGGw4YOqOSl/5h5Gq5b4ESLSAyjaPmeRdBNAA90INZxFucJ4zcoV/kgBpslEO7Wpx1QjR7aSES3J25fd7GNwJCBR3A8IeMTaVLfx4TfbNyX+BBdKwsoiXt5eCdYVdjppqRBX5loB5pGyXZYnxMXuXlg8+Fa7GuqvdAc/TiSH/7AFMhJb3EXxioOBcChd5hEVuZj9WlPrh1jqdcGdVnluxUuiG1uSU4AF0+p4ZdNDUkf0pkSbs87TvM0G4+H8lVBOamDjR9Yi3YYV36pnC0zm3xYUXeFMf6dO5e6mzt6Ut7e8Mcz1sRhEJPwXq+bxKcQMbDajv7XhWm683UbciTfHYd1mqr6MRJEJbuGArlItkaGJUrBAx+WtYS5StlNyAF7SUwBo4tdYbi57jcIgg3f9K93Bkn2hwxxTKVDtbBeDfduzkrviY8A8ydi7VHvusg0HdhuwJDCapFRpR2Sit4HNS5FRW2bgGpRse1GyOOrNvgMoI+sWiJqo1krlr7w4g/4 X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: OS0PR01MB5716.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ff4425ff-2e93-49c4-bd08-08dc1da73157 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jan 2024 13:11:50.3973 (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: KzAOSpsCGkEavEGJ4tHGBjljYvFxnvAXXXlStB9VIGPDMLVdt9+KXZF7LY/P7mwV6mQRNeodViembxClXzZtDw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY3PR01MB9824 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_008_OS0PR01MB571623B1D01003F99A7BB983947A2OS0PR01MB5716jpnp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 T24gVGh1cnNkYXksIEphbnVhcnkgMjUsIDIwMjQgNjoyNSBQTSBBbWl0IEthcGlsYSA8YW1pdC5r YXBpbGExNkBnbWFpbC5jb20+IHdyb3RlOg0KPiANCj4gT24gVGh1LCBKYW4gMjUsIDIwMjQgYXQg MToyNeKAr1BNIEJlcnRyYW5kIERyb3V2b3QNCj4gPGJlcnRyYW5kZHJvdXZvdC5wZ0BnbWFpbC5j b20+IHdyb3RlOg0KPiA+DQo+ID4gT24gVGh1LCBKYW4gMjUsIDIwMjQgYXQgMDI6NTc6MzBBTSAr MDAwMCwgWmhpamllIEhvdSAoRnVqaXRzdSkgd3JvdGU6DQo+ID4gPg0KPiA+ID4gQWdyZWVkLiBJ IHNwbGl0IHRoZSBvcmlnaW5hbCAwMDAxIHBhdGNoIGludG8gMyBwYXRjaGVzIGFzIHN1Z2dlc3Rl ZC4NCj4gPiA+IEhlcmUgaXMgdGhlIFY2OCBwYXRjaCBzZXQuDQo+IA0KPiBUaGFua3MsIEkgaGF2 ZSBwdXNoZWQgMDAwMS4NCj4gDQo+ID4NCj4gPiBUaGFua3MhDQo+ID4NCj4gPiBTb21lIGNvbW1l bnRzLg0KPiA+DQo+ID4gTG9va2luZyBhdCAwMDAyOg0KPiA+DQo+ID4gMSA9PT0NCj4gPg0KPiA+ ICsgICAgICA8cGFyYT5UaGUgZm9sbG93aW5nIG9wdGlvbnMgYXJlIHN1cHBvcnRlZDo8L3BhcmE+ DQo+ID4NCj4gPiBXaGF0IGFib3V0ICJUaGUgZm9sbG93aW5nIG9wdGlvbiBpcyBzdXBwb3J0ZWQi PyAoYXMgY3VycmVudGx5IG9ubHkgdGhlDQo+ICJGQUlMT1ZFUiINCj4gPiBpcykNCj4gPg0KPiA+ IDIgPT09DQo+ID4NCj4gPiBXaGF0IGFib3V0IGFkZGluZyBzb21lIFRBUCB0ZXN0cyB0b28/IChJ IGNhbiBzZWUgdGhhdA0KPiA+IEFMVEVSX1JFUExJQ0FUSU9OX1NMT1QgdGVzdCBpcyBhZGRlZCBp biB2NjgtMDAwNCBidXQgSSB0aGluayBoYXZpbmcgc29tZQ0KPiBpbiAwMDAyIHdvdWxkIG1ha2Ug c2Vuc2UgdG9vKS4NCj4gPg0KPiANCj4gVGhlIHN1YnNjcmlwdGlvbiB0ZXN0cyBpbiB2NjgtMDAw MyB3aWxsIHRlc3QgdGhpcyBmdW5jdGlvbmFsaXR5LiBUaGUgb25lDQo+IGFkdmFudGFnZSBvZiBh ZGRpbmcgc2VwYXJhdGUgdGVzdHMgZm9yIHRoaXMgaXMgdGhhdCBpZiBpbiB0aGUgZnV0dXJlIHdl IGV4dGVuZCB0aGlzDQo+IHJlcGxpY2F0aW9uIGNvbW1hbmQsIGl0IGNvdWxkIGJlIGNvbnZlbmll bnQgdG8gdGVzdCB2YXJpb3VzIG9wdGlvbnMuIEhvd2V2ZXIsDQo+IHRoZSBzYW1lIGNvdWxkIGJl IHNhaWQgYWJvdXQgZXhpc3RpbmcgcmVwbGljYXRpb24gY29tbWFuZHMgYXMgd2VsbC4gQnV0IGlz IGl0DQo+IHdvcnRoIGhhdmluZyBleHRyYSB0ZXN0cyB3aGljaCB3aWxsIGJlIGFueXdheSBjb3Zl cmVkIGluIHRoZSBuZXh0IGNvbW1pdCBpbiBhDQo+IGZldyBkYXlzPw0KPiANCj4gSSB1bmRlcnN0 YW5kIHRoYXQgaXQgaXMgYSBnb29kIGlkZWEgYW5kIG1ha2VzIG9uZSBjb21mb3J0YWJsZSB0byBo YXZlIHRlc3RzIGZvcg0KPiBlYWNoIHNlcGFyYXRlIGNvbW1pdCBidXQgT1RPSCwgaW4gdGhlIGxv bmdlciB0ZXJtIGl0IHdpbGwganVzdCBiZSBhZGRpbmcgbW9yZQ0KPiB0ZXN0IHRpbWUgd2l0aG91 dCBhY2hpZXZpbmcgbXVjaCBiZW5lZml0LiBJIHRoaW5rIHdlIGNhbiB0ZWxsIGV4cGxpY2l0bHkg aW4gdGhlDQo+IGNvbW1pdCBtZXNzYWdlIG9mIHRoaXMgcGF0Y2ggdGhhdCB0aGUgc3Vic2VxdWVu dCBjb21taXQgd2lsbCBjb3ZlciB0aGUgdGVzdHMNCj4gZm9yIHRoaXMgZnVuY3Rpb25hbGl0eQ0K DQpBZ3JlZWQuDQoNCj4gDQo+IE9uZSBtaW5vciBjb21tZW50IG9uIDAwMDI6DQo+ICsgICAgICAg ICAgc28gdGhhdCBsb2dpY2FsIHJlcGxpY2F0aW9uIGNhbiBiZSByZXN1bWVkIGFmdGVyIGZhaWxv dmVyLg0KPiArICAgICAgICAgPC9wYXJhPg0KPiANCj4gQ2FuIHdlIG1vdmUgdGhpcyBhbmQgc2lt aWxhciBjb21tZW50cyBvciBkb2MgY2hhbmdlcyB0byB0aGUgbGF0ZXIgMDAwNCBwYXRjaA0KPiB3 aGVyZSB3ZSBhcmUgc3luY2luZyB0aGUgc2xvdHM/DQoNClRoYW5rcyBmb3IgdGhlIGNvbW1lbnQu DQoNCkhlcmUgaXMgdGhlIFY2OSBwYXRjaCBzZXQgd2hpY2ggaW5jbHVkZXMgdGhlIGZvbGxvd2lu ZyBjaGFuZ2VzLg0KDQpWNjktMDAwMSwgVjY5LTAwMDINCjEpIEFkZHJlc3NlZCBCZXJ0cmFuZCdz IGNvbW1lbnRzWzFdLg0KDQpWNjktMDAwMw0KMSkgQWRkcmVzc2VkIFBldGVyJ3MgY29tbWVudCBp biBbMl0sIFszXQ0KMikgQWRkcmVzc2VkIEFtaXQncyBjb21tZW50IGluIFs0XSBhbmQgYWJvdmUu DQozKSBGaXhlZCBvbmUgaXNzdWUgdGhhdCB0aGUgc3RhcnR1cCBwcm9jZXNzIG1heSByZXBvcnQg RVJST1IgaWYgaXQgdHJpZXMgdG8gZHJvcA0KdGhlIHNhbWUgc2xvdCB0aGF0IHRoZSBzbG90c3lu YyB3b3JrZXIgaXMgYWNxdWlyaW5nLiBOb3cgd2UgdGFrZSBzaGFyZWQgbG9jayBvbg0KZGIgaW4g c2xvdC1zeW5jIHdvcmtlciBiZWZvcmUgd2UgY3JlYXRlLCB1cGRhdGUgb3IgZHJvcCBhbnkgb2Yg aXRzIHNsb3RzLiBUaGlzDQppcyBkb25lIHRvIHByZXZlbnQgcG90ZW50aWFsIGNvbmZsaWN0IHdp dGggUmVwbGljYXRpb25TbG90c0Ryb3BEQlNsb3RzKCkgaW4NCmNhc2UgdGhhdCBkYXRhYmFzZSBp cyBkcm9wcGVkIGluIHBhcmFsbGVsLg0KDQpWNjktMDAwNA0KMSkgUmViYXNlZCBhbmQgZml4ZWQg b25lIENGYm90IGZhaWx1cmUuDQoNClY2OS0wMDA1LCBWNjktMDAwNiwgVjY5LTAwMDcNCjEpIFJl YmFzZWQuDQoNClRoYW5rcyBTaHZldGEgZm9yIHJlYmFzaW5nIGFuZCB3b3JraW5nIGZvciB0aGUg Y2hhbmdlcyBvbiAwMDAzfjAwMDcuDQoNClsxXSBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9t ZXNzYWdlLWlkL1piSVQ5S2ozZDhURkQ4aDYlNDBpcC0xMC05Ny0xLTM0LmV1LXdlc3QtMy5jb21w dXRlLmludGVybmFsDQpbMl06IGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL21lc3NhZ2UtaWQv Q0FIdXQlMkJQdDJvTGZ4dl8lM0RHTjIzZE9PZHVLSEJIZEFrQ3Z3U1ppd1NidFRKRkZiUW0tdyU0 MG1haWwuZ21haWwuY29tDQpbM106IGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL21lc3NhZ2Ut aWQvQ0FIdXQlMkJQdHNEWVBiZzdxTTFuR1d0SmNTUUJRNUpIJTNETG1neXF3cUJQTDlrJTJCejhm NUV3JTQwbWFpbC5nbWFpbC5jb20NCls0XTogaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvbWVz c2FnZS1pZC9DQUE0ZUsxJTJCNFBoTy1mNCUyQjJmRm9yRzZNT0VqM2pidGVlX1BZUHR3dGd3dyUz RG9uQzVEU1ElNDBtYWlsLmdtYWlsLmNvbQ0KDQpCZXN0IFJlZ2FyZHMsDQpIb3UgemoNCg== --_008_OS0PR01MB571623B1D01003F99A7BB983947A2OS0PR01MB5716jpnp_ Content-Type: application/octet-stream; name="v69-0006-Non-replication-connection-and-app_name-change.patch" Content-Description: v69-0006-Non-replication-connection-and-app_name-change.patch Content-Disposition: attachment; filename="v69-0006-Non-replication-connection-and-app_name-change.patch"; size=9942; creation-date="Thu, 25 Jan 2024 13:06:42 GMT"; modification-date="Thu, 25 Jan 2024 13:11:45 GMT" Content-Transfer-Encoding: base64 RnJvbSAyYWQ3YWJmZGZlM2VmZjZhMWUyYTYzMTAyNjdmZmM4ZGNkMDNmMTA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHZldGEgTWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMjMgSmFuIDIwMjQgMTU6NDg6NTMgKzA1MzAKU3ViamVjdDogW1BBVENIIHY2 OSA2LzddIE5vbiByZXBsaWNhdGlvbiBjb25uZWN0aW9uIGFuZCBhcHBfbmFtZSBjaGFuZ2UuCgpU aGlzIHBhdGNoIGhhcyBjb252ZXJ0ZWQgcmVwbGljYXRpb24gY29ubmVjdGlvbiB0byBub24tcmVw bGljYXRpb24Kb25lIGluIHRoZSBzbG90c3luYyB3b3JrZXIuCgpJdCBoYXMgYWxzbyBjaGFuZ2Vk IHRoZSBhcHBfbmFtZSB0byB7Y2x1c3Rlcl9uYW1lfV9zbG90c3luY3dvcmtlcgppbiB0aGUgc2xv dHN5bmMgd29ya2VyIGNvbm5lY3Rpb24uCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2Ny aXB0aW9uY21kcy5jICAgICAgIHwgMTIgKysrLS0KIC4uLi9saWJwcXdhbHJlY2VpdmVyL2xpYnBx d2FscmVjZWl2ZXIuYyAgICAgICB8IDQ0ICsrKysrKysrKysrKystLS0tLS0KIHNyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYyAgICB8IDE0ICsrKysrLQogc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYyAgIHwgIDIgKy0KIHNyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgICAgICB8ICA0ICstCiBzcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi93YWxyZWNlaXZlci5jICAgICAgICAgfCAgMyArLQogc3JjL2luY2x1ZGUvcmVw bGljYXRpb24vd2FscmVjZWl2ZXIuaCAgICAgICAgIHwgIDUgKystCiA3IGZpbGVzIGNoYW5nZWQs IDYwIGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1 YnNjcmlwdGlvbmNtZHMuYwppbmRleCAxNWJiMTBkYTU0Li5mMTdjNjY2ZWJjIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCkBAIC03NTMsNyArNzUzLDggQEAgQ3JlYXRl U3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAq c3RtdCwKIAogCQkvKiBUcnkgdG8gY29ubmVjdCB0byB0aGUgcHVibGlzaGVyLiAqLwogCQltdXN0 X3VzZV9wYXNzd29yZCA9ICFzdXBlcnVzZXJfYXJnKG93bmVyKSAmJiBvcHRzLnBhc3N3b3JkcmVx dWlyZWQ7Ci0JCXdyY29ubiA9IHdhbHJjdl9jb25uZWN0KGNvbm5pbmZvLCB0cnVlLCBtdXN0X3Vz ZV9wYXNzd29yZCwKKwkJd3Jjb25uID0gd2FscmN2X2Nvbm5lY3QoY29ubmluZm8sIHRydWUgLyog cmVwbGljYXRpb24gKi8gLAorCQkJCQkJCQl0cnVlLCBtdXN0X3VzZV9wYXNzd29yZCwKIAkJCQkJ CQkJc3RtdC0+c3VibmFtZSwgJmVycik7CiAJCWlmICghd3Jjb25uKQogCQkJZXJlcG9ydChFUlJP UiwKQEAgLTkwNCw3ICs5MDUsOCBAQCBBbHRlclN1YnNjcmlwdGlvbl9yZWZyZXNoKFN1YnNjcmlw dGlvbiAqc3ViLCBib29sIGNvcHlfZGF0YSwKIAogCS8qIFRyeSB0byBjb25uZWN0IHRvIHRoZSBw dWJsaXNoZXIuICovCiAJbXVzdF91c2VfcGFzc3dvcmQgPSBzdWItPnBhc3N3b3JkcmVxdWlyZWQg JiYgIXN1Yi0+b3duZXJzdXBlcnVzZXI7Ci0Jd3Jjb25uID0gd2FscmN2X2Nvbm5lY3Qoc3ViLT5j b25uaW5mbywgdHJ1ZSwgbXVzdF91c2VfcGFzc3dvcmQsCisJd3Jjb25uID0gd2FscmN2X2Nvbm5l Y3Qoc3ViLT5jb25uaW5mbywgdHJ1ZSAvKiByZXBsaWNhdGlvbiAqLyAsCisJCQkJCQkJdHJ1ZSwg bXVzdF91c2VfcGFzc3dvcmQsCiAJCQkJCQkJc3ViLT5uYW1lLCAmZXJyKTsKIAlpZiAoIXdyY29u bikKIAkJZXJlcG9ydChFUlJPUiwKQEAgLTE1MzEsNyArMTUzMyw4IEBAIEFsdGVyU3Vic2NyaXB0 aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCiAJ CS8qIFRyeSB0byBjb25uZWN0IHRvIHRoZSBwdWJsaXNoZXIuICovCiAJCW11c3RfdXNlX3Bhc3N3 b3JkID0gc3ViLT5wYXNzd29yZHJlcXVpcmVkICYmICFzdWItPm93bmVyc3VwZXJ1c2VyOwotCQl3 cmNvbm4gPSB3YWxyY3ZfY29ubmVjdChzdWItPmNvbm5pbmZvLCB0cnVlLCBtdXN0X3VzZV9wYXNz d29yZCwKKwkJd3Jjb25uID0gd2FscmN2X2Nvbm5lY3Qoc3ViLT5jb25uaW5mbywgdHJ1ZSAvKiBy ZXBsaWNhdGlvbiAqLyAsCisJCQkJCQkJCXRydWUsIG11c3RfdXNlX3Bhc3N3b3JkLAogCQkJCQkJ CQlzdWItPm5hbWUsICZlcnIpOwogCQlpZiAoIXdyY29ubikKIAkJCWVyZXBvcnQoRVJST1IsCkBA IC0xNzgyLDcgKzE3ODUsOCBAQCBEcm9wU3Vic2NyaXB0aW9uKERyb3BTdWJzY3JpcHRpb25TdG10 ICpzdG10LCBib29sIGlzVG9wTGV2ZWwpCiAJICovCiAJbG9hZF9maWxlKCJsaWJwcXdhbHJlY2Vp dmVyIiwgZmFsc2UpOwogCi0Jd3Jjb25uID0gd2FscmN2X2Nvbm5lY3QoY29ubmluZm8sIHRydWUs IG11c3RfdXNlX3Bhc3N3b3JkLAorCXdyY29ubiA9IHdhbHJjdl9jb25uZWN0KGNvbm5pbmZvLCB0 cnVlIC8qIHJlcGxpY2F0aW9uICovICwKKwkJCQkJCQl0cnVlLCBtdXN0X3VzZV9wYXNzd29yZCwK IAkJCQkJCQlzdWJuYW1lLCAmZXJyKTsKIAlpZiAod3Jjb25uID09IE5VTEwpCiAJewpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbGlicHF3YWxyZWNlaXZlci9saWJwcXdhbHJl Y2VpdmVyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBx d2FscmVjZWl2ZXIuYwppbmRleCBhZTc2YzA5OGIxLi4xM2E3ODdiOGJmIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2FscmVjZWl2ZXIu YworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2Fs cmVjZWl2ZXIuYwpAQCAtNiw2ICs2LDkgQEAKICAqIGxvYWRlZCBhcyBhIGR5bmFtaWMgbW9kdWxl IHRvIGF2b2lkIGxpbmtpbmcgdGhlIG1haW4gc2VydmVyIGJpbmFyeSB3aXRoCiAgKiBsaWJwcS4K ICAqCisgKiBBcGFydCBmcm9tIHdhbHJlY2VpdmVyLCB0aGUgbGlicHEtc3BlY2lmaWMgcm91dGlu ZXMgaGVyZSBhcmUgbm93IGJlaW5nIHVzZWQKKyAqIGJ5IGxvZ2ljYWwgcmVwbGljYXRpb24gd29y a2VycyBhbmQgc2xvdHN5bmMgd29ya2VyIGFzIHdlbGwuCisKICAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMjAxMC0yMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAogICoK ICAqCkBAIC00OSw3ICs1Miw4IEBAIHN0cnVjdCBXYWxSZWNlaXZlckNvbm4KIAogLyogUHJvdG90 eXBlcyBmb3IgaW50ZXJmYWNlIGZ1bmN0aW9ucyAqLwogc3RhdGljIFdhbFJlY2VpdmVyQ29ubiAq bGlicHFyY3ZfY29ubmVjdChjb25zdCBjaGFyICpjb25uaW5mbywKLQkJCQkJCQkJCQkgYm9vbCBs b2dpY2FsLCBib29sIG11c3RfdXNlX3Bhc3N3b3JkLAorCQkJCQkJCQkJCSBib29sIHJlcGxpY2F0 aW9uLCBib29sIGxvZ2ljYWwsCisJCQkJCQkJCQkJIGJvb2wgbXVzdF91c2VfcGFzc3dvcmQsCiAJ CQkJCQkJCQkJIGNvbnN0IGNoYXIgKmFwcG5hbWUsIGNoYXIgKiplcnIpOwogc3RhdGljIHZvaWQg bGlicHFyY3ZfY2hlY2tfY29ubmluZm8oY29uc3QgY2hhciAqY29ubmluZm8sCiAJCQkJCQkJCQli b29sIG11c3RfdXNlX3Bhc3N3b3JkKTsKQEAgLTEyNCw3ICsxMjgsMTIgQEAgX1BHX2luaXQodm9p ZCkKIH0KIAogLyoKLSAqIEVzdGFibGlzaCB0aGUgY29ubmVjdGlvbiB0byB0aGUgcHJpbWFyeSBz ZXJ2ZXIgZm9yIFhMT0cgc3RyZWFtaW5nCisgKiBFc3RhYmxpc2ggdGhlIGNvbm5lY3Rpb24gdG8g dGhlIHByaW1hcnkgc2VydmVyLgorICoKKyAqIFRoZSBjb25uZWN0aW9uIGVzdGFibGlzaGVkIGNv dWxkIGJlIGVpdGhlciBhIHJlcGxpY2F0aW9uIG9uZSBvcgorICogYSBub24tcmVwbGljYXRpb24g b25lIGJhc2VkIG9uIGlucHV0IGFyZ3VtZW50ICdyZXBsaWNhdGlvbicuIEFuZCBmdXJ0aGVyCisg KiBpZiBpdCBpcyBhIHJlcGxpY2F0aW9uIGNvbm5lY3Rpb24sIGl0IGNvdWxkIGJlIGVpdGhlciBs b2dpY2FsIG9yIHBoeXNpY2FsCisgKiBiYXNlZCBvbiBpbnB1dCBhcmd1bWVudCAnbG9naWNhbCcu CiAgKgogICogSWYgYW4gZXJyb3Igb2NjdXJzLCB0aGlzIGZ1bmN0aW9uIHdpbGwgbm9ybWFsbHkg cmV0dXJuIE5VTEwgYW5kIHNldCAqZXJyCiAgKiB0byBhIHBhbGxvYydlZCBlcnJvciBtZXNzYWdl LiBIb3dldmVyLCBpZiBtdXN0X3VzZV9wYXNzd29yZCBpcyB0cnVlIGFuZApAQCAtMTM1LDggKzE0 NCw4IEBAIF9QR19pbml0KHZvaWQpCiAgKiBjYXNlLgogICovCiBzdGF0aWMgV2FsUmVjZWl2ZXJD b25uICoKLWxpYnBxcmN2X2Nvbm5lY3QoY29uc3QgY2hhciAqY29ubmluZm8sIGJvb2wgbG9naWNh bCwgYm9vbCBtdXN0X3VzZV9wYXNzd29yZCwKLQkJCQkgY29uc3QgY2hhciAqYXBwbmFtZSwgY2hh ciAqKmVycikKK2xpYnBxcmN2X2Nvbm5lY3QoY29uc3QgY2hhciAqY29ubmluZm8sIGJvb2wgcmVw bGljYXRpb24sIGJvb2wgbG9naWNhbCwKKwkJCQkgYm9vbCBtdXN0X3VzZV9wYXNzd29yZCwgY29u c3QgY2hhciAqYXBwbmFtZSwgY2hhciAqKmVycikKIHsKIAlXYWxSZWNlaXZlckNvbm4gKmNvbm47 CiAJUG9zdGdyZXNQb2xsaW5nU3RhdHVzVHlwZSBzdGF0dXM7CkBAIC0xNTksMTcgKzE2OCwyNiBA QCBsaWJwcXJjdl9jb25uZWN0KGNvbnN0IGNoYXIgKmNvbm5pbmZvLCBib29sIGxvZ2ljYWwsIGJv b2wgbXVzdF91c2VfcGFzc3dvcmQsCiAJICovCiAJa2V5c1tpXSA9ICJkYm5hbWUiOwogCXZhbHNb aV0gPSBjb25uaW5mbzsKLQlrZXlzWysraV0gPSAicmVwbGljYXRpb24iOwotCXZhbHNbaV0gPSBs b2dpY2FsID8gImRhdGFiYXNlIiA6ICJ0cnVlIjsKLQlpZiAoIWxvZ2ljYWwpCisKKwkvKiBXZSBj YW4gbm90IGhhdmUgbG9naWNhbCB3aXRob3V0IHJlcGxpY2F0aW9uICovCisJaWYgKCFyZXBsaWNh dGlvbikKKwkJQXNzZXJ0KCFsb2dpY2FsKTsKKwllbHNlCiAJewotCQkvKgotCQkgKiBUaGUgZGF0 YWJhc2UgbmFtZSBpcyBpZ25vcmVkIGJ5IHRoZSBzZXJ2ZXIgaW4gcmVwbGljYXRpb24gbW9kZSwg YnV0Ci0JCSAqIHNwZWNpZnkgInJlcGxpY2F0aW9uIiBmb3IgLnBncGFzcyBsb29rdXAuCi0JCSAq LwotCQlrZXlzWysraV0gPSAiZGJuYW1lIjsKLQkJdmFsc1tpXSA9ICJyZXBsaWNhdGlvbiI7CisJ CWtleXNbKytpXSA9ICJyZXBsaWNhdGlvbiI7CisJCXZhbHNbaV0gPSBsb2dpY2FsID8gImRhdGFi YXNlIiA6ICJ0cnVlIjsKKworCQlpZiAoIWxvZ2ljYWwpCisJCXsKKwkJCS8qCisJCQkgKiBUaGUg ZGF0YWJhc2UgbmFtZSBpcyBpZ25vcmVkIGJ5IHRoZSBzZXJ2ZXIgaW4gcmVwbGljYXRpb24gbW9k ZSwKKwkJCSAqIGJ1dCBzcGVjaWZ5ICJyZXBsaWNhdGlvbiIgZm9yIC5wZ3Bhc3MgbG9va3VwLgor CQkJICovCisJCQlrZXlzWysraV0gPSAiZGJuYW1lIjsKKwkJCXZhbHNbaV0gPSAicmVwbGljYXRp b24iOworCQl9CiAJfQorCiAJa2V5c1srK2ldID0gImZhbGxiYWNrX2FwcGxpY2F0aW9uX25hbWUi OwogCXZhbHNbaV0gPSBhcHBuYW1lOwogCWlmIChsb2dpY2FsKQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90c3luYy5jIGIvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vbG9naWNhbC9zbG90c3luYy5jCmluZGV4IDY4YWQ4YmJjYmMuLjlhZmMyYTAzODEgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYworKysg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMKQEAgLTEwOTYsNiAr MTA5Niw3IEBAIFJlcGxTbG90U3luY1dvcmtlck1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkK IAlib29sCQlwcmltYXJ5X3Nsb3RfaW52YWxpZDsKIAljaGFyCSAgICplcnI7CiAJc2lnam1wX2J1 Zglsb2NhbF9zaWdqbXBfYnVmOworCVN0cmluZ0luZm9EYXRhIGFwcF9uYW1lOwogCiAJYW1fc2xv dHN5bmNfd29ya2VyID0gdHJ1ZTsKIApAQCAtMTIwNSwxMyArMTIwNiwyMiBAQCBSZXBsU2xvdFN5 bmNXb3JrZXJNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAKIAlTZXRQcm9jZXNzaW5nTW9k ZShOb3JtYWxQcm9jZXNzaW5nKTsKIAorCWluaXRTdHJpbmdJbmZvKCZhcHBfbmFtZSk7CisJaWYg KGNsdXN0ZXJfbmFtZVswXSkKKwkJYXBwZW5kU3RyaW5nSW5mbygmYXBwX25hbWUsICIlc18lcyIs IGNsdXN0ZXJfbmFtZSwgInNsb3RzeW5jd29ya2VyIik7CisJZWxzZQorCQlhcHBlbmRTdHJpbmdJ bmZvKCZhcHBfbmFtZSwgIiVzIiwgInNsb3RzeW5jd29ya2VyIik7CisKIAkvKgogCSAqIEVzdGFi bGlzaCB0aGUgY29ubmVjdGlvbiB0byB0aGUgcHJpbWFyeSBzZXJ2ZXIgZm9yIHNsb3RzCiAJICog c3luY2hyb25pemF0aW9uLgogCSAqLwotCXdyY29ubiA9IHdhbHJjdl9jb25uZWN0KFByaW1hcnlD b25uSW5mbywgdHJ1ZSwgZmFsc2UsCi0JCQkJCQkJY2x1c3Rlcl9uYW1lWzBdID8gY2x1c3Rlcl9u YW1lIDogInNsb3RzeW5jd29ya2VyIiwKKwl3cmNvbm4gPSB3YWxyY3ZfY29ubmVjdChQcmltYXJ5 Q29ubkluZm8sIGZhbHNlIC8qIHJlcGxpY2F0aW9uICovLAorCQkJCQkJCWZhbHNlLCBmYWxzZSwK KwkJCQkJCQlhcHBfbmFtZS5kYXRhLAogCQkJCQkJCSZlcnIpOworCXBmcmVlKGFwcF9uYW1lLmRh dGEpOworCiAJaWYgKCF3cmNvbm4pCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJZXJyY29kZShFUlJD T0RFX0NPTk5FQ1RJT05fRkFJTFVSRSksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9sb2dpY2FsL3RhYmxlc3luYy5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC90YWJsZXN5bmMuYwppbmRleCA1YWNhYjNmM2UyLi5jNWM2YWM0YmFjIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3RhYmxlc3luYy5jCisrKyBiL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMKQEAgLTEzMjksNyArMTMyOSw3IEBA IExvZ2ljYWxSZXBTeW5jVGFibGVTdGFydChYTG9nUmVjUHRyICpvcmlnaW5fc3RhcnRwb3MpCiAJ ICogc28gdGhhdCBzeW5jaHJvbm91cyByZXBsaWNhdGlvbiBjYW4gZGlzdGluZ3Vpc2ggdGhlbS4K IAkgKi8KIAlMb2dSZXBXb3JrZXJXYWxSY3ZDb25uID0KLQkJd2FscmN2X2Nvbm5lY3QoTXlTdWJz Y3JpcHRpb24tPmNvbm5pbmZvLCB0cnVlLAorCQl3YWxyY3ZfY29ubmVjdChNeVN1YnNjcmlwdGlv bi0+Y29ubmluZm8sIHRydWUgLyogcmVwbGljYXRpb24gKi8gLCB0cnVlLAogCQkJCQkgICBtdXN0 X3VzZV9wYXNzd29yZCwKIAkJCQkJICAgc2xvdG5hbWUsICZlcnIpOwogCWlmIChMb2dSZXBXb3Jr ZXJXYWxSY3ZDb25uID09IE5VTEwpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL3dvcmtlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3Jr ZXIuYwppbmRleCAzMmZmNGMwMzM2Li4wZDc5MWMxODhjIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvd29ya2VyLmMKQEAgLTQ1MTgsNyArNDUxOCw5IEBAIHJ1bl9hcHBseV93b3Jr ZXIoKQogCW11c3RfdXNlX3Bhc3N3b3JkID0gTXlTdWJzY3JpcHRpb24tPnBhc3N3b3JkcmVxdWly ZWQgJiYKIAkJIU15U3Vic2NyaXB0aW9uLT5vd25lcnN1cGVydXNlcjsKIAotCUxvZ1JlcFdvcmtl cldhbFJjdkNvbm4gPSB3YWxyY3ZfY29ubmVjdChNeVN1YnNjcmlwdGlvbi0+Y29ubmluZm8sIHRy dWUsCisJTG9nUmVwV29ya2VyV2FsUmN2Q29ubiA9IHdhbHJjdl9jb25uZWN0KE15U3Vic2NyaXB0 aW9uLT5jb25uaW5mbywKKwkJCQkJCQkJCQkJdHJ1ZSAvKiByZXBsaWNhdGlvbiAqLyAsCisJCQkJ CQkJCQkJCXRydWUsCiAJCQkJCQkJCQkJCW11c3RfdXNlX3Bhc3N3b3JkLAogCQkJCQkJCQkJCQlN eVN1YnNjcmlwdGlvbi0+bmFtZSwgJmVycik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNl aXZlci5jCmluZGV4IGUyOWE2MTk2YTMuLjg3MmNjY2I1NGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vd2FscmVjZWl2ZXIuYwpAQCAtMjk2LDcgKzI5Niw4IEBAIFdhbFJlY2VpdmVyTWFpbih2b2lk KQogCXNpZ3Byb2NtYXNrKFNJR19TRVRNQVNLLCAmVW5CbG9ja1NpZywgTlVMTCk7CiAKIAkvKiBF c3RhYmxpc2ggdGhlIGNvbm5lY3Rpb24gdG8gdGhlIHByaW1hcnkgZm9yIFhMT0cgc3RyZWFtaW5n ICovCi0Jd3Jjb25uID0gd2FscmN2X2Nvbm5lY3QoY29ubmluZm8sIGZhbHNlLCBmYWxzZSwKKwl3 cmNvbm4gPSB3YWxyY3ZfY29ubmVjdChjb25uaW5mbywgdHJ1ZSAvKiByZXBsaWNhdGlvbiAqLyAs CisJCQkJCQkJZmFsc2UsIGZhbHNlLAogCQkJCQkJCWNsdXN0ZXJfbmFtZVswXSA/IGNsdXN0ZXJf bmFtZSA6ICJ3YWxyZWNlaXZlciIsCiAJCQkJCQkJJmVycik7CiAJaWYgKCF3cmNvbm4pCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5oIGIvc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuaAppbmRleCA0OGRjODQ2ZTE5Li4xYjU2M2ExNmNk IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5oCisrKyBi L3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmgKQEAgLTIzNyw2ICsyMzcsNyBA QCB0eXBlZGVmIHN0cnVjdCBXYWxSY3ZFeGVjUmVzdWx0CiAgKiByZXR1cm5lZCB3aXRoICdlcnIn IGluY2x1ZGluZyB0aGUgZXJyb3IgZ2VuZXJhdGVkLgogICovCiB0eXBlZGVmIFdhbFJlY2VpdmVy Q29ubiAqKCp3YWxyY3ZfY29ubmVjdF9mbikgKGNvbnN0IGNoYXIgKmNvbm5pbmZvLAorCQkJCQkJ CQkJCQkgICBib29sIHJlcGxpY2F0aW9uLAogCQkJCQkJCQkJCQkgICBib29sIGxvZ2ljYWwsCiAJ CQkJCQkJCQkJCSAgIGJvb2wgbXVzdF91c2VfcGFzc3dvcmQsCiAJCQkJCQkJCQkJCSAgIGNvbnN0 IGNoYXIgKmFwcG5hbWUsCkBAIC00MjYsOCArNDI3LDggQEAgdHlwZWRlZiBzdHJ1Y3QgV2FsUmVj ZWl2ZXJGdW5jdGlvbnNUeXBlCiAKIGV4dGVybiBQR0RMTElNUE9SVCBXYWxSZWNlaXZlckZ1bmN0 aW9uc1R5cGUgKldhbFJlY2VpdmVyRnVuY3Rpb25zOwogCi0jZGVmaW5lIHdhbHJjdl9jb25uZWN0 KGNvbm5pbmZvLCBsb2dpY2FsLCBtdXN0X3VzZV9wYXNzd29yZCwgYXBwbmFtZSwgZXJyKSBcCi0J V2FsUmVjZWl2ZXJGdW5jdGlvbnMtPndhbHJjdl9jb25uZWN0KGNvbm5pbmZvLCBsb2dpY2FsLCBt dXN0X3VzZV9wYXNzd29yZCwgYXBwbmFtZSwgZXJyKQorI2RlZmluZSB3YWxyY3ZfY29ubmVjdChj b25uaW5mbywgcmVwbGljYXRpb24sIGxvZ2ljYWwsIG11c3RfdXNlX3Bhc3N3b3JkLCBhcHBuYW1l LCBlcnIpIFwKKwlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+d2FscmN2X2Nvbm5lY3QoY29ubmluZm8s IHJlcGxpY2F0aW9uLCBsb2dpY2FsLCBtdXN0X3VzZV9wYXNzd29yZCwgYXBwbmFtZSwgZXJyKQog I2RlZmluZSB3YWxyY3ZfY2hlY2tfY29ubmluZm8oY29ubmluZm8sIG11c3RfdXNlX3Bhc3N3b3Jk KSBcCiAJV2FsUmVjZWl2ZXJGdW5jdGlvbnMtPndhbHJjdl9jaGVja19jb25uaW5mbyhjb25uaW5m bywgbXVzdF91c2VfcGFzc3dvcmQpCiAjZGVmaW5lIHdhbHJjdl9nZXRfY29ubmluZm8oY29ubikg XAotLSAKMi4zMC4wLndpbmRvd3MuMgoK --_008_OS0PR01MB571623B1D01003F99A7BB983947A2OS0PR01MB5716jpnp_ Content-Type: application/octet-stream; name="v69-0007-Document-the-steps-to-check-if-the-standby-is-re.patch" Content-Description: v69-0007-Document-the-steps-to-check-if-the-standby-is-re.patch Content-Disposition: attachment; filename="v69-0007-Document-the-steps-to-check-if-the-standby-is-re.patch"; size=6752; creation-date="Thu, 25 Jan 2024 13:06:42 GMT"; modification-date="Thu, 25 Jan 2024 13:11:45 GMT" Content-Transfer-Encoding: base64 RnJvbSBkMjdjODM4ZGUzYjU3MTNkNDZkOTVjM2VhZmFhZGFhYzIyNmZmODBjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHZldGEgTWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTE6MDQ6MTYgKzA1MzAKU3ViamVjdDogW1BBVENIIHY2 OSA3LzddIERvY3VtZW50IHRoZSBzdGVwcyB0byBjaGVjayBpZiB0aGUgc3RhbmRieSBpcyByZWFk eQogZm9yIGZhaWxvdmVyCgotLS0KIGRvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21s ICAgfCAgIDkgKysKIGRvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwgfCAxMzAg KysrKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTM5IGluc2VydGlv bnMoKykKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvaGlnaC1hdmFpbGFiaWxpdHkuc2dtbCBi L2RvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21sCmluZGV4IDIzNmMwYWY2NWYuLjM2 MjE1YWE2OGMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21sCkBAIC0xNDg3LDYgKzE0 ODcsMTUgQEAgc3luY2hyb25vdXNfc3RhbmRieV9uYW1lcyA9ICdBTlkgMiAoczEsIHMyLCBzMykn CiAgICAgV3JpdHRlbiBhZG1pbmlzdHJhdGlvbiBwcm9jZWR1cmVzIGFyZSBhZHZpc2VkLgogICAg PC9wYXJhPgogCisgICA8cGFyYT4KKyAgICBJZiB5b3UgaGF2ZSBvcHRlZCBmb3Igc3luY2hyb25p emF0aW9uIG9mIGxvZ2ljYWwgc2xvdHMgKHNlZQorICAgIDx4cmVmIGxpbmtlbmQ9ImxvZ2ljYWxk ZWNvZGluZy1yZXBsaWNhdGlvbi1zbG90cy1zeW5jaHJvbml6YXRpb24iLz4pLAorICAgIHRoZW4g YmVmb3JlIHN3aXRjaGluZyB0byB0aGUgc3RhbmRieSBzZXJ2ZXIsIGl0IGlzIHJlY29tbWVuZGVk IHRvIGNoZWNrCisgICAgaWYgdGhlIGxvZ2ljYWwgc2xvdHMgc3luY2hyb25pemVkIG9uIHRoZSBz dGFuZGJ5IHNlcnZlciBhcmUgcmVhZHkKKyAgICBmb3IgZmFpbG92ZXIuIFRoaXMgY2FuIGJlIGRv bmUgYnkgZm9sbG93aW5nIHRoZSBzdGVwcyBkZXNjcmliZWQgaW4KKyAgICA8eHJlZiBsaW5rZW5k PSJsb2dpY2FsLXJlcGxpY2F0aW9uLWZhaWxvdmVyIi8+LgorICAgPC9wYXJhPgorCiAgICA8cGFy YT4KICAgICBUbyB0cmlnZ2VyIGZhaWxvdmVyIG9mIGEgbG9nLXNoaXBwaW5nIHN0YW5kYnkgc2Vy dmVyLCBydW4KICAgICA8Y29tbWFuZD5wZ19jdGwgcHJvbW90ZTwvY29tbWFuZD4gb3IgY2FsbCA8 ZnVuY3Rpb24+cGdfcHJvbW90ZSgpPC9mdW5jdGlvbj4uCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGlj YXRpb24uc2dtbAppbmRleCBlYzIxMzA2NjllLi45MjRlNGVhMDMzIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9sb2dp Y2FsLXJlcGxpY2F0aW9uLnNnbWwKQEAgLTY4Nyw2ICs2ODcsMTM2IEBAIEFMVEVSIFNVQlNDUklQ VElPTgogCiAgPC9zZWN0MT4KIAorIDxzZWN0MSBpZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1mYWls b3ZlciI+CisgIDx0aXRsZT5Mb2dpY2FsIFJlcGxpY2F0aW9uIEZhaWxvdmVyPC90aXRsZT4KKwor ICA8cGFyYT4KKyAgIFdoZW4gdGhlIHB1Ymxpc2hlciBzZXJ2ZXIgaXMgdGhlIHByaW1hcnkgc2Vy dmVyIG9mIGEgc3RyZWFtaW5nIHJlcGxpY2F0aW9uLAorICAgdGhlIGxvZ2ljYWwgc2xvdHMgb24g dGhhdCBwcmltYXJ5IHNlcnZlciBjYW4gYmUgc3luY2hyb25pemVkIHRvIHRoZSBzdGFuZGJ5Cisg ICBzZXJ2ZXIgYnkgc3BlY2lmeWluZyA8bGl0ZXJhbD5mYWlsb3ZlciA9IHRydWU8L2xpdGVyYWw+ IHdoZW4gY3JlYXRpbmcKKyAgIHN1YnNjcmlwdGlvbnMgZm9yIHRob3NlIHB1YmxpY2F0aW9ucy4g RW5hYmxpbmcgZmFpbG92ZXIgZW5zdXJlcyBhIHNlYW1sZXNzCisgICB0cmFuc2l0aW9uIG9mIHRo b3NlIHN1YnNjcmlwdGlvbnMgYWZ0ZXIgdGhlIHN0YW5kYnkgaXMgcHJvbW90ZWQuIFRoZXkgY2Fu CisgICBjb250aW51ZSBzdWJzY3JpYmluZyB0byBwdWJsaWNhdGlvbnMgbm93IG9uIHRoZSBuZXcg cHJpbWFyeSBzZXJ2ZXIgd2l0aG91dAorICAgYW55IGRhdGEgbG9zcy4KKyAgPC9wYXJhPgorCisg IDxwYXJhPgorICAgQmVjYXVzZSB0aGUgc2xvdCBzeW5jaHJvbml6YXRpb24gbG9naWMgY29waWVz IGFzeW5jaHJvbm91c2x5LCBpdCBpcworICAgbmVjZXNzYXJ5IHRvIGNvbmZpcm0gdGhhdCByZXBs aWNhdGlvbiBzbG90cyBoYXZlIGJlZW4gc3luY2VkIHRvIHRoZSBzdGFuZGJ5CisgICBzZXJ2ZXIg YmVmb3JlIHRoZSBmYWlsb3ZlciBoYXBwZW5zLiBGdXJ0aGVybW9yZSwgdG8gZW5zdXJlIGEgc3Vj Y2Vzc2Z1bAorICAgZmFpbG92ZXIsIHRoZSBzdGFuZGJ5IHNlcnZlciBtdXN0IG5vdCBiZSBsYWdn aW5nIGJlaGluZCB0aGUgc3Vic2NyaWJlci4gSXQKKyAgIGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0 byB1c2UKKyAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy1zdGFuZGJ5LXNsb3QtbmFtZXMiPjx2YXJuYW1l PnN0YW5kYnlfc2xvdF9uYW1lczwvdmFybmFtZT48L2xpbms+CisgICB0byBwcmV2ZW50IHRoZSBz dWJzY3JpYmVyIGZyb20gY29uc3VtaW5nIGNoYW5nZXMgZmFzdGVyIHRoYW4gdGhlIGhvdCBzdGFu ZGJ5LgorICAgVG8gY29uZmlybSB0aGF0IHRoZSBzdGFuZGJ5IHNlcnZlciBpcyBpbmRlZWQgcmVh ZHkgZm9yIGZhaWxvdmVyLCBmb2xsb3cKKyAgIHRoZXNlIDIgc3RlcHM6CisgIDwvcGFyYT4KKwor ICA8cHJvY2VkdXJlPgorICAgPHN0ZXAgcGVyZm9ybWFuY2U9InJlcXVpcmVkIj4KKyAgICA8cGFy YT4KKyAgICAgQ29uZmlybSB0aGF0IGFsbCB0aGUgbmVjZXNzYXJ5IGxvZ2ljYWwgcmVwbGljYXRp b24gc2xvdHMgaGF2ZSBiZWVuIHN5bmNlZCB0bworICAgICB0aGUgc3RhbmRieSBzZXJ2ZXIuCisg ICAgPC9wYXJhPgorICAgIDxzdWJzdGVwcz4KKyAgICAgPHN0ZXAgcGVyZm9ybWFuY2U9InJlcXVp cmVkIj4KKyAgICAgIDxwYXJhPgorICAgICAgIEZpcnN0bHksIG9uIHRoZSBzdWJzY3JpYmVyIG5v ZGUsIHVzZSB0aGUgZm9sbG93aW5nIFNRTCB0byBpZGVudGlmeQorICAgICAgIHdoaWNoIHNsb3Rz IHNob3VsZCBiZSBzeW5jZWQgdG8gdGhlIHN0YW5kYnkgdGhhdCB3ZSBwbGFuIHRvIHByb21vdGUu Cis8cHJvZ3JhbWxpc3Rpbmc+Cit0ZXN0X3N1Yj0jIFNFTEVDVAorICAgICAgICAgICAgICAgYXJy YXlfYWdnKHNsb3RuYW1lKSBBUyBzbG90cworICAgICAgICAgICBGUk9NCisgICAgICAgICAgICgo CisgICAgICAgICAgICAgICBTRUxFQ1Qgci5zcnN1YmlkIEFTIHN1YmlkLCBDT05DQVQoJ3BnXycg fHwgc3JzdWJpZCB8fCAnX3N5bmNfJyB8fCBzcnJlbGlkIHx8ICdfJyB8fCBjdGwuc3lzdGVtX2lk ZW50aWZpZXIpIEFTIHNsb3RuYW1lCisgICAgICAgICAgICAgICBGUk9NIHBnX2NvbnRyb2xfc3lz dGVtKCkgY3RsLCBwZ19zdWJzY3JpcHRpb25fcmVsIHIsIHBnX3N1YnNjcmlwdGlvbiBzCisgICAg ICAgICAgICAgICBXSEVSRSByLnNyc3Vic3RhdGUgPSAnZicgQU5EIHMub2lkID0gci5zcnN1Ymlk IEFORCBzLnN1YmZhaWxvdmVyCisgICAgICAgICAgICkgVU5JT04gKAorICAgICAgICAgICAgICAg U0VMRUNUIHMub2lkIEFTIHN1YmlkLCBzLnN1YnNsb3RuYW1lIGFzIHNsb3RuYW1lCisgICAgICAg ICAgICAgICBGUk9NIHBnX3N1YnNjcmlwdGlvbiBzCisgICAgICAgICAgICAgICBXSEVSRSBzLnN1 YmZhaWxvdmVyCisgICAgICAgICAgICkpOworIHNsb3RzCistLS0tLS0tCisge3N1YjEsc3ViMixz dWIzfQorKDEgcm93KQorPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisgICAgIDwvc3RlcD4KKyAg ICAgPHN0ZXAgcGVyZm9ybWFuY2U9InJlcXVpcmVkIj4KKyAgICAgIDxwYXJhPgorICAgICAgIE5l eHQsIGNoZWNrIHRoYXQgdGhlIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdHMgaWRlbnRpZmllZCBh Ym92ZSBleGlzdCBvbgorICAgICAgIHRoZSBzdGFuZGJ5IHNlcnZlciBhbmQgYXJlIHJlYWR5IGZv ciBmYWlsb3Zlci4KKzxwcm9ncmFtbGlzdGluZz4KK3Rlc3Rfc3RhbmRieT0jIFNFTEVDVCBzbG90 X25hbWUsIChzeW5jZWQgQU5EIE5PVCB0ZW1wb3JhcnkgQU5EIGNvbmZsaWN0X3JlYXNvbiBJUyBO VUxMKSBBUyBmYWlsb3Zlcl9yZWFkeQorICAgICAgICAgICAgICAgRlJPTSBwZ19yZXBsaWNhdGlv bl9zbG90cworICAgICAgICAgICAgICAgV0hFUkUgc2xvdF9uYW1lIElOICgnc3ViMScsJ3N1YjIn LCdzdWIzJyk7CisgIHNsb3RfbmFtZSAgfCBmYWlsb3Zlcl9yZWFkeQorLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tCisgIHN1YjEgICAgICAgfCB0CisgIHN1YjIgICAgICAgfCB0CisgIHN1 YjMgICAgICAgfCB0CisoMyByb3dzKQorPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisgICAgIDwv c3RlcD4KKyAgICA8L3N1YnN0ZXBzPgorICAgPC9zdGVwPgorCisgICA8c3RlcCBwZXJmb3JtYW5j ZT0icmVxdWlyZWQiPgorICAgIDxwYXJhPgorICAgICBDb25maXJtIHRoYXQgdGhlIHN0YW5kYnkg c2VydmVyIGlzIG5vdCBsYWdnaW5nIGJlaGluZCB0aGUgc3Vic2NyaWJlcnMuCisgICAgIFRoaXMg c3RlcCBjYW4gYmUgc2tpcHBlZCBpZgorICAgICA8bGluayBsaW5rZW5kPSJndWMtc3RhbmRieS1z bG90LW5hbWVzIj48dmFybmFtZT5zdGFuZGJ5X3Nsb3RfbmFtZXM8L3Zhcm5hbWU+PC9saW5rPgor ICAgICBoYXMgYmVlbiBjb3JyZWN0bHkgY29uZmlndXJlZC4KKyAgICA8L3BhcmE+CisgICAgIDxz dWJzdGVwcz4KKyAgICAgIDxzdGVwIHBlcmZvcm1hbmNlPSJyZXF1aXJlZCI+CisgICAgICAgPHBh cmE+CisgICAgICAgIEZpcnN0bHksIG9uIHRoZSBzdWJzY3JpYmVyIG5vZGUgY2hlY2sgdGhlIGxh c3QgcmVwbGF5ZWQgV0FMLgorPHByb2dyYW1saXN0aW5nPgordGVzdF9zdWI9IyBTRUxFQ1QKKyAg ICAgICAgICAgICAgIE1BWChyZW1vdGVfbHNuKSBBUyByZW1vdGVfbHNuX29uX3N1YnNjcmliZXIK KyAgICAgICAgICAgRlJPTQorICAgICAgICAgICAoKAorICAgICAgICAgICAgICAgU0VMRUNUIChD QVNFIFdIRU4gci5zcnN1YnN0YXRlID0gJ2YnIFRIRU4gcGdfcmVwbGljYXRpb25fb3JpZ2luX3By b2dyZXNzKENPTkNBVCgncGdfJyB8fCByLnNyc3ViaWQgfHwgJ18nIHx8IHIuc3JyZWxpZCksIGZh bHNlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgV0hFTiByLnNyc3Vic3RhdGUgSU4gKCdz JywgJ3InKSBUSEVOIHIuc3JzdWJsc24gRU5EKSBBUyByZW1vdGVfbHNuCisgICAgICAgICAgICAg ICBGUk9NIHBnX3N1YnNjcmlwdGlvbl9yZWwgciwgcGdfc3Vic2NyaXB0aW9uIHMKKyAgICAgICAg ICAgICAgIFdIRVJFIHIuc3JzdWJzdGF0ZSBJTiAoJ2YnLCAncycsICdyJykgQU5EIHMub2lkID0g ci5zcnN1YmlkIEFORCBzLnN1YmZhaWxvdmVyCisgICAgICAgICAgICkgVU5JT04gKAorICAgICAg ICAgICAgICAgU0VMRUNUIHBnX3JlcGxpY2F0aW9uX29yaWdpbl9wcm9ncmVzcyhDT05DQVQoJ3Bn XycgfHwgcy5vaWQpLCBmYWxzZSkgQVMgcmVtb3RlX2xzbgorICAgICAgICAgICAgICAgRlJPTSBw Z19zdWJzY3JpcHRpb24gcworICAgICAgICAgICAgICAgV0hFUkUgcy5zdWJmYWlsb3ZlcgorICAg ICAgICAgICApKTsKKyByZW1vdGVfbHNuX29uX3N1YnNjcmliZXIKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgMC8zMDAwMzg4Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKyAgICA8L3N0 ZXA+CisgICAgPHN0ZXAgcGVyZm9ybWFuY2U9InJlcXVpcmVkIj4KKyAgICAgPHBhcmE+CisgICAg ICBOZXh0LCBvbiB0aGUgc3RhbmRieSBzZXJ2ZXIgY2hlY2sgdGhhdCB0aGUgbGFzdC1yZWNlaXZl ZCBXQUwgbG9jYXRpb24KKyAgICAgIGlzIGFoZWFkIG9mIHRoZSByZXBsYXllZCBXQUwgbG9jYXRp b24gb24gdGhlIHN1YnNjcmliZXIgaWRlbnRpZmllZCBhYm92ZS4KKyAgICAgIElmIHRoZSBhYm92 ZSBTUUwgcmVzdWx0IHdhcyBOVUxMLCBpdCBtZWFucyB0aGUgc3Vic2NyaWJlciBoYXMgbm90IHll dAorICAgICAgcmVwbGF5ZWQgYW55IFdBTCwgc28gdGhlIHN0YW5kYnkgc2VydmVyIG11c3QgYmUg YWhlYWQgb2YgdGhlCisgICAgICBzdWJzY3JpYmVyLCBhbmQgdGhpcyBzdGVwIGNhbiBiZSBza2lw cGVkLgorPHByb2dyYW1saXN0aW5nPgordGVzdF9zdGFuZGJ5PSMgU0VMRUNUIHBnX2xhc3Rfd2Fs X3JlY2VpdmVfbHNuKCkgPj0gJzAvMzAwMDM4OCc6OnBnX2xzbiBBUyBmYWlsb3Zlcl9yZWFkeTsK KyBmYWlsb3Zlcl9yZWFkeQorLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKzwvcHJvZ3Jh bWxpc3Rpbmc+PC9wYXJhPgorICAgICA8L3N0ZXA+CisgICAgPC9zdWJzdGVwcz4KKyAgIDwvc3Rl cD4KKyAgPC9wcm9jZWR1cmU+CisKKyAgPHBhcmE+CisgICBJZiB0aGUgcmVzdWx0ICg8bGl0ZXJh bD5mYWlsb3Zlcl9yZWFkeTwvbGl0ZXJhbD4pIG9mIGJvdGggYWJvdmUgc3RlcHMgaXMKKyAgIHRy dWUsIGV4aXN0aW5nIHN1YnNjcmlwdGlvbnMgd2lsbCBiZSBhYmxlIHRvIGNvbnRpbnVlIHdpdGhv dXQgZGF0YSBsb3NzLgorICA8L3BhcmE+CisKKyA8L3NlY3QxPgorCiAgPHNlY3QxIGlkPSJsb2dp Y2FsLXJlcGxpY2F0aW9uLXJvdy1maWx0ZXIiPgogICA8dGl0bGU+Um93IEZpbHRlcnM8L3RpdGxl PgogCi0tIAoyLjMwLjAud2luZG93cy4yCgo= --_008_OS0PR01MB571623B1D01003F99A7BB983947A2OS0PR01MB5716jpnp_ Content-Type: application/octet-stream; name="v69-0003-Add-logical-slot-sync-capability-to-the-physical.patch" Content-Description: v69-0003-Add-logical-slot-sync-capability-to-the-physical.patch Content-Disposition: attachment; filename="v69-0003-Add-logical-slot-sync-capability-to-the-physical.patch"; size=93554; creation-date="Thu, 25 Jan 2024 13:06:42 GMT"; modification-date="Thu, 25 Jan 2024 13:11:46 GMT" Content-Transfer-Encoding: base64 RnJvbSA0NTQ2M2NhM2ViOWZkYjA5MDdhMTVlMTZhNjAwNjRlNWQ5NzZjMDM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIb3UgWmhpamllIDxob3V6ai5mbnN0QGNuLmZ1aml0c3UuY29t PgpEYXRlOiBUaHUsIDI1IEphbiAyMDI0IDIwOjI4OjMwICswODAwClN1YmplY3Q6IFtQQVRDSCB2 NjkgMy83XSBBZGQgbG9naWNhbCBzbG90IHN5bmMgY2FwYWJpbGl0eSB0byB0aGUgcGh5c2ljYWwK IHN0YW5kYnkKClRoaXMgcGF0Y2ggaW1wbGVtZW50cyBzeW5jaHJvbml6YXRpb24gb2YgbG9naWNh bCByZXBsaWNhdGlvbiBzbG90cwpmcm9tIHRoZSBwcmltYXJ5IHNlcnZlciB0byB0aGUgcGh5c2lj YWwgc3RhbmRieSBzbyB0aGF0IGxvZ2ljYWwKcmVwbGljYXRpb24gY2FuIGJlIHJlc3VtZWQgYWZ0 ZXIgZmFpbG92ZXIuCgpHVUMgJ2VuYWJsZV9zeW5jc2xvdCcgZW5hYmxlcyBhIHBoeXNpY2FsIHN0 YW5kYnkgdG8gc3luY2hyb25pemUgZmFpbG92ZXIKbG9naWNhbCByZXBsaWNhdGlvbiBzbG90cyBm cm9tIHRoZSBwcmltYXJ5IHNlcnZlci4KClRoZSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3RzIG9u IHRoZSBwcmltYXJ5IGNhbiBiZSBzeW5jaHJvbml6ZWQgdG8gdGhlIGhvdApzdGFuZGJ5IGJ5IGVu YWJsaW5nIHRoZSBmYWlsb3ZlciBvcHRpb24gZHVyaW5nIHNsb3QgY3JlYXRpb24gYW5kIHNldHRp bmcKJ2VuYWJsZV9zeW5jc2xvdCcgb24gdGhlIHN0YW5kYnkuIEZvciB0aGUgc3luY2hyb25pemF0 aW9uIHRvIHdvcmssIGl0IGlzCm1hbmRhdG9yeSB0byBoYXZlIGEgcGh5c2ljYWwgcmVwbGljYXRp b24gc2xvdCBiZXR3ZWVuIHRoZSBwcmltYXJ5IGFuZCB0aGUKc3RhbmRieSwgYW5kIGhvdF9zdGFu ZGJ5X2ZlZWRiYWNrIG11c3QgYmUgZW5hYmxlZCBvbiB0aGUgc3RhbmRieS4KCkFsbCB0aGUgZmFp bG92ZXIgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90cyBvbiB0aGUgcHJpbWFyeSAoYXNzdW1pbmcK Y29uZmlndXJhdGlvbnMgYXJlIGFwcHJvcHJpYXRlKSBhcmUgYXV0b21hdGljYWxseSBjcmVhdGVk IG9uIHRoZSBwaHlzaWNhbApzdGFuZGJ5cyBhbmQgYXJlIHN5bmNlZCBwZXJpb2RpY2FsbHkuIFNs b3Qtc3luYyB3b3JrZXIgb24gdGhlIHN0YW5kYnkgc2VydmVyCnBpbmcgdGhlIHByaW1hcnkgc2Vy dmVyIGF0IHJlZ3VsYXIgaW50ZXJ2YWxzIHRvIGdldCB0aGUgbmVjZXNzYXJ5CmZhaWxvdmVyIGxv Z2ljYWwgc2xvdHMgaW5mb3JtYXRpb24gYW5kIGNyZWF0ZS91cGRhdGUgdGhlIHNsb3RzIGxvY2Fs bHkuCgpUaGUgbmFwIHRpbWUgb2YgdGhlIHdvcmtlciBpcyB0dW5lZCBhY2NvcmRpbmcgdG8gdGhl IGFjdGl2aXR5IG9uIHRoZSBwcmltYXJ5LgpUaGUgd29ya2VyIHdhaXRzIGZvciBhIHBlcmlvZCBv ZiB0aW1lIGJlZm9yZSB0aGUgbmV4dCBzeW5jaHJvbml6YXRpb24sIHdpdGggdGhlCmR1cmF0aW9u IHZhcnlpbmcgYmFzZWQgb24gd2hldGhlciBhbnkgc2xvdHMgd2VyZSB1cGRhdGVkIGR1cmluZyB0 aGUgbGFzdApjeWNsZS4KClRoZSBsb2dpY2FsIHNsb3RzIGNyZWF0ZWQgYnkgc2xvdC1zeW5jIHdv cmtlciBvbiBwaHlzaWNhbCBzdGFuZGJ5cyBhcmUgbm90CmFsbG93ZWQgdG8gYmUgZHJvcHBlZCBv ciBjb25zdW1lZC4gQW55IGF0dGVtcHQgdG8gcGVyZm9ybSBsb2dpY2FsIGRlY29kaW5nIG9uCnN1 Y2ggc2xvdHMgd2lsbCByZXN1bHQgaW4gYW4gZXJyb3IuCgpJZiBhIGxvZ2ljYWwgc2xvdCBpcyBp bnZhbGlkYXRlZCBvbiB0aGUgcHJpbWFyeSwgdGhlbiB0aGF0IHNsb3Qgb24gdGhlIHN0YW5kYnkK aXMgYWxzbyBpbnZhbGlkYXRlZC4KCklmIGEgbG9naWNhbCBzbG90IG9uIHRoZSBwcmltYXJ5IGlz IHZhbGlkIGJ1dCBpcyBpbnZhbGlkYXRlZCBvbiB0aGUgc3RhbmRieSwKdGhlbiB0aGF0IHNsb3Qg aXMgZHJvcHBlZCBhbmQgcmVjcmVhdGVkIG9uIHRoZSBzdGFuZGJ5IGluIG5leHQgc3luYy1jeWNs ZQpwcm92aWRlZCB0aGUgc2xvdCBzdGlsbCBleGlzdHMgb24gdGhlIHByaW1hcnkgc2VydmVyLiBJ dCBpcyBva2F5IHRvIHJlY3JlYXRlCnN1Y2ggc2xvdHMgYXMgbG9uZyBhcyB0aGVzZSBhcmUgbm90 IGNvbnN1bWFibGUgb24gdGhlIHN0YW5kYnkgKHdoaWNoIGlzIHRoZQpjYXNlIGN1cnJlbnRseSku IFRoaXMgc2l0dWF0aW9uIG1heSBvY2N1ciBkdWUgdG8gdGhlIGZvbGxvd2luZyByZWFzb25zOgot IFRoZSBtYXhfc2xvdF93YWxfa2VlcF9zaXplIG9uIHRoZSBzdGFuZGJ5IGlzIGluc3VmZmljaWVu dCB0byByZXRhaW4gV0FMCiAgcmVjb3JkcyBmcm9tIHRoZSByZXN0YXJ0X2xzbiBvZiB0aGUgc2xv dC4KLSBwcmltYXJ5X3Nsb3RfbmFtZSBpcyB0ZW1wb3JhcmlseSByZXNldCB0byBudWxsIGFuZCB0 aGUgcGh5c2ljYWwgc2xvdCBpcwogIHJlbW92ZWQuCi0gVGhlIHByaW1hcnkgY2hhbmdlcyB3YWxf bGV2ZWwgdG8gYSBsZXZlbCBsb3dlciB0aGFuIGxvZ2ljYWwuCgpUaGUgc2xvdHMgc3luY2hyb25p emF0aW9uIHN0YXR1cyBvbiB0aGUgc3RhbmRieSBjYW4gYmUgbW9uaXRvcmVkIHVzaW5nCidzeW5j ZWQnIGNvbHVtbiBvZiBwZ19yZXBsaWNhdGlvbl9zbG90cyB2aWV3LgotLS0KIGRvYy9zcmMvc2dt bC9iZ3dvcmtlci5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAgNjUgKy0KIGRvYy9zcmMvc2dt bC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8ICAgMjcgKy0KIGRvYy9zcmMvc2dt bC9sb2dpY2FsZGVjb2Rpbmcuc2dtbCAgICAgICAgICAgICB8ICAgMzcgKwogZG9jL3NyYy9zZ21s L3Byb3RvY29sLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICAgNiArLQogZG9jL3NyYy9zZ21s L3N5c3RlbS12aWV3cy5zZ21sICAgICAgICAgICAgICAgIHwgICAyMiArLQogc3JjL2JhY2tlbmQv YWNjZXNzL3RyYW5zYW0veGxvZy5jICAgICAgICAgICAgIHwgICAgNSArLQogc3JjL2JhY2tlbmQv YWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMgICAgIHwgICAxNSArCiBzcmMvYmFja2VuZC9j YXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgICAgICAgICAgfCAgICAzICstCiBzcmMvYmFja2VuZC9w b3N0bWFzdGVyL2Jnd29ya2VyLmMgICAgICAgICAgICAgfCAgICA0ICsKIHNyYy9iYWNrZW5kL3Bv c3RtYXN0ZXIvcG9zdG1hc3Rlci5jICAgICAgICAgICB8ICAgMTAgKwogLi4uL2xpYnBxd2FscmVj ZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5jICAgICAgIHwgICA0MSArCiBzcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL01ha2VmaWxlICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jICAgICB8ICAgMTIgKwogc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vbG9naWNhbC9tZXNvbi5idWlsZCAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMgICAgfCAxMjIyICsrKysrKysrKysrKysrKysrCiBzcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMgICAgICAgICAgICAgICAgfCAgIDU5ICstCiBzcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYyAgICAgICAgICAgfCAgIDI2ICstCiBzcmMv YmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZlcmZ1bmNzLmMgICAgfCAgIDE2ICsKIHNyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jICAgICAgICAgICB8ICAgMTkgKy0KIHNyYy9i YWNrZW5kL3N0b3JhZ2UvaXBjL2lwY2kuYyAgICAgICAgICAgICAgICB8ICAgIDIgKwogc3JjL2Jh Y2tlbmQvdGNvcC9wb3N0Z3Jlcy5jICAgICAgICAgICAgICAgICAgIHwgICAxMSArCiAuLi4vdXRp bHMvYWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQgICAgICAgfCAgICAxICsKIHNyYy9iYWNr ZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jICAgICAgICAgICB8ICAgMTAgKwogc3JjL2JhY2tl bmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIHwgICAgMSArCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgICAgICAgfCAgICA2ICstCiBzcmMvaW5jbHVk ZS9wb3N0bWFzdGVyL2Jnd29ya2VyLmggICAgICAgICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRl L3JlcGxpY2F0aW9uL2xvZ2ljYWx3b3JrZXIuaCAgICAgICB8ICAgIDEgKwogc3JjL2luY2x1ZGUv cmVwbGljYXRpb24vc2xvdC5oICAgICAgICAgICAgICAgIHwgICAxNyArLQogc3JjL2luY2x1ZGUv cmVwbGljYXRpb24vd2FscmVjZWl2ZXIuaCAgICAgICAgIHwgICAxMSArCiBzcmMvaW5jbHVkZS9y ZXBsaWNhdGlvbi93YWxzZW5kZXIuaCAgICAgICAgICAgfCAgICAzICsKIHNyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oICAgICB8ICAgMTAgKwogLi4uL3QvMDUwX3N0YW5k YnlfZmFpbG92ZXJfc2xvdHNfc3luYy5wbCAgICAgIHwgIDE2NiArKy0KIHNyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAgICAgICB8ICAgIDUgKy0KIHNyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc3lzdmlld3Mub3V0ICAgICAgICB8ICAgIDMgKy0KIHNyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgIDIgKwogMzUgZmlsZXMgY2hhbmdl ZCwgMTc5MiBpbnNlcnRpb25zKCspLCA0OSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMKCmRpZmYgLS1naXQg YS9kb2Mvc3JjL3NnbWwvYmd3b3JrZXIuc2dtbCBiL2RvYy9zcmMvc2dtbC9iZ3dvcmtlci5zZ21s CmluZGV4IDJjMzkzMzg1YTkuLmE3Y2ZlNmM1OGMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9i Z3dvcmtlci5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9iZ3dvcmtlci5zZ21sCkBAIC0xMTQsMTgg KzExNCw1OSBAQCB0eXBlZGVmIHN0cnVjdCBCYWNrZ3JvdW5kV29ya2VyCiAKICAgPHBhcmE+CiAg ICA8c3RydWN0ZmllbGQ+Ymd3X3N0YXJ0X3RpbWU8L3N0cnVjdGZpZWxkPiBpcyB0aGUgc2VydmVy IHN0YXRlIGR1cmluZyB3aGljaAotICAgPGNvbW1hbmQ+cG9zdGdyZXM8L2NvbW1hbmQ+IHNob3Vs ZCBzdGFydCB0aGUgcHJvY2VzczsgaXQgY2FuIGJlIG9uZSBvZgotICAgPGxpdGVyYWw+QmdXb3Jr ZXJTdGFydF9Qb3N0bWFzdGVyU3RhcnQ8L2xpdGVyYWw+IChzdGFydCBhcyBzb29uIGFzCi0gICA8 Y29tbWFuZD5wb3N0Z3JlczwvY29tbWFuZD4gaXRzZWxmIGhhcyBmaW5pc2hlZCBpdHMgb3duIGlu aXRpYWxpemF0aW9uOyBwcm9jZXNzZXMKLSAgIHJlcXVlc3RpbmcgdGhpcyBhcmUgbm90IGVsaWdp YmxlIGZvciBkYXRhYmFzZSBjb25uZWN0aW9ucyksCi0gICA8bGl0ZXJhbD5CZ1dvcmtlclN0YXJ0 X0NvbnNpc3RlbnRTdGF0ZTwvbGl0ZXJhbD4gKHN0YXJ0IGFzIHNvb24gYXMgYSBjb25zaXN0ZW50 IHN0YXRlCi0gICBoYXMgYmVlbiByZWFjaGVkIGluIGEgaG90IHN0YW5kYnksIGFsbG93aW5nIHBy b2Nlc3NlcyB0byBjb25uZWN0IHRvCi0gICBkYXRhYmFzZXMgYW5kIHJ1biByZWFkLW9ubHkgcXVl cmllcyksIGFuZAotICAgPGxpdGVyYWw+QmdXb3JrZXJTdGFydF9SZWNvdmVyeUZpbmlzaGVkPC9s aXRlcmFsPiAoc3RhcnQgYXMgc29vbiBhcyB0aGUgc3lzdGVtIGhhcwotICAgZW50ZXJlZCBub3Jt YWwgcmVhZC13cml0ZSBzdGF0ZSkuICBOb3RlIHRoZSBsYXN0IHR3byB2YWx1ZXMgYXJlIGVxdWl2 YWxlbnQKLSAgIGluIGEgc2VydmVyIHRoYXQncyBub3QgYSBob3Qgc3RhbmRieS4gIE5vdGUgdGhh dCB0aGlzIHNldHRpbmcgb25seSBpbmRpY2F0ZXMKLSAgIHdoZW4gdGhlIHByb2Nlc3NlcyBhcmUg dG8gYmUgc3RhcnRlZDsgdGhleSBkbyBub3Qgc3RvcCB3aGVuIGEgZGlmZmVyZW50IHN0YXRlCi0g ICBpcyByZWFjaGVkLgorICAgPGNvbW1hbmQ+cG9zdGdyZXM8L2NvbW1hbmQ+IHNob3VsZCBzdGFy dCB0aGUgcHJvY2Vzcy4gTm90ZSB0aGF0IHRoaXMgc2V0dGluZworICAgb25seSBpbmRpY2F0ZXMg d2hlbiB0aGUgcHJvY2Vzc2VzIGFyZSB0byBiZSBzdGFydGVkOyB0aGV5IGRvIG5vdCBzdG9wIHdo ZW4KKyAgIGEgZGlmZmVyZW50IHN0YXRlIGlzIHJlYWNoZWQuIFBvc3NpYmxlIHZhbHVlcyBhcmU6 CisKKyAgIDx2YXJpYWJsZWxpc3Q+CisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxp dGVyYWw+QmdXb3JrZXJTdGFydF9Qb3N0bWFzdGVyU3RhcnQ8L2xpdGVyYWw+PC90ZXJtPgorICAg ICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkJn V29ya2VyU3RhcnRfUG9zdG1hc3RlclN0YXJ0PC9wcmltYXJ5PjwvaW5kZXh0ZXJtPgorICAgICAg IFN0YXJ0IGFzIHNvb24gYXMgcG9zdGdyZXMgaXRzZWxmIGhhcyBmaW5pc2hlZCBpdHMgb3duIGlu aXRpYWxpemF0aW9uOworICAgICAgIHByb2Nlc3NlcyByZXF1ZXN0aW5nIHRoaXMgYXJlIG5vdCBl bGlnaWJsZSBmb3IgZGF0YWJhc2UgY29ubmVjdGlvbnMuCisgICAgICA8L3BhcmE+CisgICAgIDwv bGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICA8dmFybGlzdGVudHJ5PgorICAg ICA8dGVybT48bGl0ZXJhbD5CZ1dvcmtlclN0YXJ0X0NvbnNpc3RlbnRTdGF0ZTwvbGl0ZXJhbD48 L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIDxpbmRleHRlcm0+ PHByaW1hcnk+QmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGU8L3ByaW1hcnk+PC9pbmRleHRl cm0+CisgICAgICAgU3RhcnQgYXMgc29vbiBhcyBhIGNvbnNpc3RlbnQgc3RhdGUgaGFzIGJlZW4g cmVhY2hlZCBpbiBhIGhvdC1zdGFuZGJ5LAorICAgICAgIGFsbG93aW5nIHByb2Nlc3NlcyB0byBj b25uZWN0IHRvIGRhdGFiYXNlcyBhbmQgcnVuIHJlYWQtb25seSBxdWVyaWVzLgorICAgICAgPC9w YXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZhcmxp c3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+QmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3Rh dGVfSG90U3RhbmRieTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxw YXJhPgorICAgICAgIDxpbmRleHRlcm0+PHByaW1hcnk+QmdXb3JrZXJTdGFydF9Db25zaXN0ZW50 U3RhdGVfSG90U3RhbmRieTwvcHJpbWFyeT48L2luZGV4dGVybT4KKyAgICAgICBTYW1lIG1lYW5p bmcgYXMgPGxpdGVyYWw+QmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGU8L2xpdGVyYWw+IGJ1 dAorICAgICAgIGl0IGlzIG1vcmUgc3RyaWN0IGluIHRlcm1zIG9mIHRoZSBzZXJ2ZXIgaS5lLiBz dGFydCB0aGUgd29ya2VyIG9ubHkKKyAgICAgICBpZiBpdCBpcyBob3Qtc3RhbmRieS4KKyAgICAg IDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgIDx2 YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxsaXRlcmFsPkJnV29ya2VyU3RhcnRfUmVjb3ZlcnlG aW5pc2hlZDwvbGl0ZXJhbD48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgor ICAgICAgIDxpbmRleHRlcm0+PHByaW1hcnk+QmdXb3JrZXJTdGFydF9SZWNvdmVyeUZpbmlzaGVk PC9wcmltYXJ5PjwvaW5kZXh0ZXJtPgorICAgICAgIFN0YXJ0IGFzIHNvb24gYXMgdGhlIHN5c3Rl bSBoYXMgZW50ZXJlZCBub3JtYWwgcmVhZC13cml0ZSBzdGF0ZS4gTm90ZQorICAgICAgIHRoYXQg dGhlIDxsaXRlcmFsPkJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0YXRlPC9saXRlcmFsPiBhbmQK KyAgICAgIDxsaXRlcmFsPkJnV29ya2VyU3RhcnRfUmVjb3ZlcnlGaW5pc2hlZDwvbGl0ZXJhbD4g YXJlIGVxdWl2YWxlbnQKKyAgICAgICBpbiBhIHNlcnZlciB0aGF0J3Mgbm90IGEgaG90IHN0YW5k YnkuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgIDwvdmFyaWFibGVsaXN0PgogICA8L3BhcmE+CiAKICAgPHBhcmE+CmRpZmYgLS1naXQg YS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5k ZXggNjEwMzg0NzJjNS4uYmQyZDJmODcxZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZp Zy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApAQCAtNDYxMiw4ICs0NjEyLDEz IEBAIEFOWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtX3N5bmM8L3JlcGxhY2Vh YmxlPiAoIDxyZXBsYWNlYWJsZSBjbGFzcz0iCiAgICAgICAgICAgPHZhcm5hbWU+cHJpbWFyeV9j b25uaW5mbzwvdmFybmFtZT4gc3RyaW5nLCBvciBpbiBhIHNlcGFyYXRlCiAgICAgICAgICAgPGZp bGVuYW1lPn4vLnBncGFzczwvZmlsZW5hbWU+IGZpbGUgb24gdGhlIHN0YW5kYnkgc2VydmVyICh1 c2UKICAgICAgICAgICA8bGl0ZXJhbD5yZXBsaWNhdGlvbjwvbGl0ZXJhbD4gYXMgdGhlIGRhdGFi YXNlIG5hbWUpLgotICAgICAgICAgIERvIG5vdCBzcGVjaWZ5IGEgZGF0YWJhc2UgbmFtZSBpbiB0 aGUKLSAgICAgICAgICA8dmFybmFtZT5wcmltYXJ5X2Nvbm5pbmZvPC92YXJuYW1lPiBzdHJpbmcu CisgICAgICAgICA8L3BhcmE+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBJZiBzbG90IHN5 bmNocm9uaXphdGlvbiBpcyBlbmFibGVkIChzZWUKKyAgICAgICAgICA8eHJlZiBsaW5rZW5kPSJn dWMtZW5hYmxlLXN5bmNzbG90Ii8+KSB0aGVuIGl0IGlzIGFsc28KKyAgICAgICAgICBuZWNlc3Nh cnkgdG8gc3BlY2lmeSA8bGl0ZXJhbD5kYm5hbWU8L2xpdGVyYWw+IGluIHRoZQorICAgICAgICAg IDx2YXJuYW1lPnByaW1hcnlfY29ubmluZm88L3Zhcm5hbWU+IHN0cmluZy4gVGhpcyB3aWxsIG9u bHkgYmUgdXNlZCBmb3IKKyAgICAgICAgICBzbG90IHN5bmNocm9uaXphdGlvbi4gSXQgaXMgaWdu b3JlZCBmb3Igc3RyZWFtaW5nLgogICAgICAgICAgPC9wYXJhPgogICAgICAgICAgPHBhcmE+CiAg ICAgICAgICAgVGhpcyBwYXJhbWV0ZXIgY2FuIG9ubHkgYmUgc2V0IGluIHRoZSA8ZmlsZW5hbWU+ cG9zdGdyZXNxbC5jb25mPC9maWxlbmFtZT4KQEAgLTQ5MzgsNiArNDk0MywyNCBAQCBBTlkgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bV9zeW5jPC9yZXBsYWNlYWJsZT4gKCA8cmVw bGFjZWFibGUgY2xhc3M9IgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+ CiAKKyAgICAgPHZhcmxpc3RlbnRyeSBpZD0iZ3VjLWVuYWJsZS1zeW5jc2xvdCIgeHJlZmxhYmVs PSJlbmFibGVfc3luY3Nsb3QiPgorICAgICAgPHRlcm0+PHZhcm5hbWU+ZW5hYmxlX3N5bmNzbG90 PC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJtPgorICAg ICAgIDxwcmltYXJ5Pjx2YXJuYW1lPmVuYWJsZV9zeW5jc2xvdDwvdmFybmFtZT4gY29uZmlndXJh dGlvbiBwYXJhbWV0ZXI8L3ByaW1hcnk+CisgICAgICA8L2luZGV4dGVybT4KKyAgICAgIDwvdGVy bT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgSXQgZW5hYmxlcyBh IHBoeXNpY2FsIHN0YW5kYnkgdG8gc3luY2hyb25pemUgbG9naWNhbCBmYWlsb3ZlciBzbG90cwor ICAgICAgICBmcm9tIHRoZSBwcmltYXJ5IHNlcnZlciBzbyB0aGF0IGxvZ2ljYWwgc3Vic2NyaWJl cnMgYXJlIG5vdCBibG9ja2VkCisgICAgICAgIGFmdGVyIGZhaWxvdmVyLgorICAgICAgIDwvcGFy YT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgSXQgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdC4gVGhp cyBwYXJhbWV0ZXIgY2FuIG9ubHkgYmUgc2V0IGluIHRoZQorICAgICAgICA8ZmlsZW5hbWU+cG9z dGdyZXNxbC5jb25mPC9maWxlbmFtZT4gZmlsZSBvciBvbiB0aGUgc2VydmVyIGNvbW1hbmQgbGlu ZS4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRy eT4KICAgICAgPC92YXJpYWJsZWxpc3Q+CiAgICAgPC9zZWN0Mj4KIApkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL2xvZ2ljYWxkZWNvZGluZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNv ZGluZy5zZ21sCmluZGV4IGNkMTUyZDRjZWQuLmVjMTRjZjczMjUgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbGRl Y29kaW5nLnNnbWwKQEAgLTM1OCw2ICszNTgsNDMgQEAgcG9zdGdyZXM9IyBzZWxlY3QgKiBmcm9t IHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygncmVncmVzc2lvbl9zbG90JywgTlVMTCwgTlUK ICAgICAgIFNvIGlmIGEgc2xvdCBpcyBubyBsb25nZXIgcmVxdWlyZWQgaXQgc2hvdWxkIGJlIGRy b3BwZWQuCiAgICAgIDwvcGFyYT4KICAgICA8L2NhdXRpb24+CisKKyAgIDwvc2VjdDI+CisKKyAg IDxzZWN0MiBpZD0ibG9naWNhbGRlY29kaW5nLXJlcGxpY2F0aW9uLXNsb3RzLXN5bmNocm9uaXph dGlvbiI+CisgICAgPHRpdGxlPlJlcGxpY2F0aW9uIFNsb3QgU3luY2hyb25pemF0aW9uPC90aXRs ZT4KKyAgICA8cGFyYT4KKyAgICAgQSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3Qgb24gdGhlIHBy aW1hcnkgY2FuIGJlIHN5bmNocm9uaXplZCB0byB0aGUgaG90CisgICAgIHN0YW5kYnkgYnkgZW5h YmxpbmcgdGhlIDxsaXRlcmFsPmZhaWxvdmVyPC9saXRlcmFsPiBvcHRpb24gZHVyaW5nIHNsb3QK KyAgICAgY3JlYXRpb24gYW5kIHNldHRpbmcKKyAgICAgPGxpbmsgbGlua2VuZD0iZ3VjLWVuYWJs ZS1zeW5jc2xvdCI+PHZhcm5hbWU+ZW5hYmxlX3N5bmNzbG90PC92YXJuYW1lPjwvbGluaz4KKyAg ICAgb24gdGhlIHN0YW5kYnkuIEZvciB0aGUgc3luY2hyb25pemF0aW9uCisgICAgIHRvIHdvcmss IGl0IGlzIG1hbmRhdG9yeSB0byBoYXZlIGEgcGh5c2ljYWwgcmVwbGljYXRpb24gc2xvdCBiZXR3 ZWVuIHRoZQorICAgICBwcmltYXJ5IGFuZCB0aGUgc3RhbmRieSwgYW5kCisgICAgIDxsaW5rIGxp bmtlbmQ9Imd1Yy1ob3Qtc3RhbmRieS1mZWVkYmFjayI+PHZhcm5hbWU+aG90X3N0YW5kYnlfZmVl ZGJhY2s8L3Zhcm5hbWU+PC9saW5rPgorICAgICBtdXN0IGJlIGVuYWJsZWQgb24gdGhlIHN0YW5k YnkuCisgICAgPC9wYXJhPgorCisgICAgPHBhcmE+CisgICAgIFRoZSBhYmlsaXR5IHRvIHJlc3Vt ZSBsb2dpY2FsIHJlcGxpY2F0aW9uIGFmdGVyIGZhaWxvdmVyIGRlcGVuZHMgdXBvbiB0aGUKKyAg ICAgPGxpbmsgbGlua2VuZD0idmlldy1wZy1yZXBsaWNhdGlvbi1zbG90cyI+cGdfcmVwbGljYXRp b25fc2xvdHM8L2xpbms+LjxzdHJ1Y3RmaWVsZD5zeW5jZWQ8L3N0cnVjdGZpZWxkPgorICAgICB2 YWx1ZSBmb3IgdGhlIHN5bmNocm9uaXplZCBzbG90cyBvbiB0aGUgc3RhbmRieSBhdCB0aGUgdGlt ZSBvZiBmYWlsb3Zlci4KKyAgICAgT25seSBwZXJzaXN0ZW50IHNsb3RzIHRoYXQgaGF2ZSBhdHRh aW5lZCBzeW5jZWQgc3RhdGUgYXMgdHJ1ZSBvbiB0aGUgc3RhbmRieQorICAgICBiZWZvcmUgZmFp bG92ZXIgY2FuIGJlIHVzZWQgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gYWZ0ZXIgZmFpbG92ZXIu CisgICAgIFRlbXBvcmFyeSBzbG90cyB3aWxsIGJlIGRyb3BwZWQsIHRoZXJlZm9yZSBsb2dpY2Fs IHJlcGxpY2F0aW9uIGZvciB0aG9zZQorICAgICBzbG90cyBjYW5ub3QgYmUgcmVzdW1lZC4gRm9y IGV4YW1wbGUsIGlmIHRoZSBzeW5jaHJvbml6ZWQgc2xvdCBjb3VsZCBub3QKKyAgICAgYmVjb21l IHBlcnNpc3RlbnQgb24gdGhlIHN0YW5kYnkgZHVlIHRvIGEgZGlzYWJsZWQgc3Vic2NyaXB0aW9u LCB0aGVuIHRoZQorICAgICBzdWJzY3JpcHRpb24gY2Fubm90IGJlIHJlc3VtZWQgYWZ0ZXIgZmFp bG92ZXIgZXZlbiB3aGVuIGl0IGlzIGVuYWJsZWQuCisgICAgPC9wYXJhPgorCisgICAgPHBhcmE+ CisgICAgIFRvIHJlc3VtZSBsb2dpY2FsIHJlcGxpY2F0aW9uIGFmdGVyIGZhaWxvdmVyIGZyb20g dGhlIHN5bmNlZCBsb2dpY2FsCisgICAgIHNsb3RzLCB0aGUgc3Vic2NyaXB0aW9uJ3MgJ2Nvbm5p bmZvJyBtdXN0IGJlIGFsdGVyZWQgdG8gcG9pbnQgdG8gdGhlCisgICAgIG5ldyBwcmltYXJ5IHNl cnZlci4gVGhpcyBpcyBkb25lIHVzaW5nCisgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1hbHRlcnN1 YnNjcmlwdGlvbi1wYXJhbXMtY29ubmVjdGlvbiI+PGNvbW1hbmQ+QUxURVIgU1VCU0NSSVBUSU9O IC4uLiBDT05ORUNUSU9OPC9jb21tYW5kPjwvbGluaz4uCisgICAgIEl0IGlzIHJlY29tbWVuZGVk IHRoYXQgc3Vic2NyaXB0aW9ucyBhcmUgZmlyc3QgZGlzYWJsZWQgYmVmb3JlIHByb21vdGluZwor ICAgICB0aGUgc3RhbmRieSBhbmQgYXJlIGVuYWJsZWQgYmFjayBhZnRlciBhbHRlcmluZyB0aGUg Y29ubmVjdGlvbiBzdHJpbmcuCisgICAgPC9wYXJhPgogICAgPC9zZWN0Mj4KIAogICAgPHNlY3Qy IGlkPSJsb2dpY2FsZGVjb2RpbmctZXhwbGFuYXRpb24tb3V0cHV0LXBsdWdpbnMiPgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcHJvdG9jb2wu c2dtbAppbmRleCBiYjRmZWYxZjUxLi5mOGVmMmFkMmFiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvcHJvdG9jb2wuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcHJvdG9jb2wuc2dtbApAQCAtMjA2 NSw3ICsyMDY1LDggQEAgcHNxbCAiZGJuYW1lPXBvc3RncmVzIHJlcGxpY2F0aW9uPWRhdGFiYXNl IiAtYyAiSURFTlRJRllfU1lTVEVNOyIKICAgICAgICAgPHRlcm0+PGxpdGVyYWw+RkFJTE9WRVIg WyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Ym9vbGVhbjwvcmVwbGFjZWFibGU+IF08 L2xpdGVyYWw+PC90ZXJtPgogICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICA8cGFyYT4KLSAg ICAgICAgICBJZiB0cnVlLCB0aGUgc2xvdCBpcyBlbmFibGVkIHRvIGJlIHN5bmNlZCB0byB0aGUg c3RhbmRieXMuCisgICAgICAgICAgSWYgdHJ1ZSwgdGhlIHNsb3QgaXMgZW5hYmxlZCB0byBiZSBz eW5jZWQgdG8gdGhlIHN0YW5kYnlzCisgICAgICAgICAgc28gdGhhdCBsb2dpY2FsIHJlcGxpY2F0 aW9uIGNhbiBiZSByZXN1bWVkIGFmdGVyIGZhaWxvdmVyLgogICAgICAgICAgIFRoZSBkZWZhdWx0 IGlzIGZhbHNlLgogICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVtPgpAQCAtMjE2 NSw3ICsyMTY2LDggQEAgcHNxbCAiZGJuYW1lPXBvc3RncmVzIHJlcGxpY2F0aW9uPWRhdGFiYXNl IiAtYyAiSURFTlRJRllfU1lTVEVNOyIKICAgICAgICAgPHRlcm0+PGxpdGVyYWw+RkFJTE9WRVIg WyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Ym9vbGVhbjwvcmVwbGFjZWFibGU+IF08 L2xpdGVyYWw+PC90ZXJtPgogICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgICA8cGFyYT4KLSAg ICAgICAgICBJZiB0cnVlLCB0aGUgc2xvdCBpcyBlbmFibGVkIHRvIGJlIHN5bmNlZCB0byB0aGUg c3RhbmRieXMuCisgICAgICAgICAgSWYgdHJ1ZSwgdGhlIHNsb3QgaXMgZW5hYmxlZCB0byBiZSBz eW5jZWQgdG8gdGhlIHN0YW5kYnlzCisgICAgICAgICAgc28gdGhhdCBsb2dpY2FsIHJlcGxpY2F0 aW9uIGNhbiBiZSByZXN1bWVkIGFmdGVyIGZhaWxvdmVyLgogICAgICAgICAgPC9wYXJhPgogICAg ICAgICA8L2xpc3RpdGVtPgogICAgICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21sIGIvZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5z Z21sCmluZGV4IGRkNDY4YjMxZWEuLjRlYTIxNzdiMzQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9zeXN0ZW0tdmlld3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwK QEAgLTI1NjEsMTAgKzI1NjEsMjggQEAgU0VMRUNUICogRlJPTSBwZ19sb2NrcyBwbCBMRUZUIEpP SU4gcGdfcHJlcGFyZWRfeGFjdHMgcHB4CiAgICAgICAgPHN0cnVjdGZpZWxkPmZhaWxvdmVyPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlwZT4KICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJh PgotICAgICAgIFRydWUgaWYgdGhpcyBpcyBhIGxvZ2ljYWwgc2xvdCBlbmFibGVkIHRvIGJlIHN5 bmNlZCB0byB0aGUgc3RhbmRieXMuCi0gICAgICAgQWx3YXlzIGZhbHNlIGZvciBwaHlzaWNhbCBz bG90cy4KKyAgICAgICBUcnVlIGlmIHRoaXMgaXMgYSBsb2dpY2FsIHNsb3QgZW5hYmxlZCB0byBi ZSBzeW5jZWQgdG8gdGhlIHN0YW5kYnlzCisgICAgICAgc28gdGhhdCBsb2dpY2FsIHJlcGxpY2F0 aW9uIGNhbiBiZSByZXN1bWVkIGZyb20gdGhlIG5ldyBwcmltYXJ5CisgICAgICAgYWZ0ZXIgZmFp bG92ZXIuIEFsd2F5cyBmYWxzZSBmb3IgcGh5c2ljYWwgc2xvdHMuCiAgICAgICA8L3BhcmE+PC9l bnRyeT4KICAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPnN5bmNlZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJvb2w8L3R5cGU+CisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgIFRydWUgaWYgdGhpcyBpcyBhIGxvZ2ljYWwg c2xvdCB0aGF0IHdhcyBzeW5jZWQgZnJvbSBhIHByaW1hcnkgc2VydmVyLgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgT24gYSBob3Qgc3RhbmRieSwgdGhlIHNsb3RzIHdpdGgg dGhlIHN5bmNlZCBjb2x1bW4gbWFya2VkIGFzIHRydWUgY2FuCisgICAgICAgbmVpdGhlciBiZSB1 c2VkIGZvciBsb2dpY2FsIGRlY29kaW5nIG5vciBkcm9wcGVkIGJ5IHRoZSB1c2VyLiBUaGUgdmFs dWUKKyAgICAgICBvZiB0aGlzIGNvbHVtbiBoYXMgbm8gbWVhbmluZyBvbiB0aGUgcHJpbWFyeSBz ZXJ2ZXI7IHRoZSBjb2x1bW4gdmFsdWUgb24KKyAgICAgICB0aGUgcHJpbWFyeSBpcyBkZWZhdWx0 IGZhbHNlIGZvciBhbGwgc2xvdHMgYnV0IG1heSAoaWYgbGVmdG92ZXIgZnJvbSBhCisgICAgICAg cHJvbW90ZWQgc3RhbmRieSkgYWxzbyBiZSB0cnVlLgorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCiAgICAgPC90Ym9keT4KICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL3RyYW5zYW0veGxvZy5jCmluZGV4IDQ3ODM3N2M0YTIuLjJkNjZkMGQ4NGIgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYworKysgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKQEAgLTM1OTYsNiArMzU5Niw5IEBAIFhMb2dHZXRMYXN0 UmVtb3ZlZFNlZ25vKHZvaWQpCiAvKgogICogUmV0dXJuIHRoZSBvbGRlc3QgV0FMIHNlZ21lbnQg b24gdGhlIGdpdmVuIFRMSSB0aGF0IHN0aWxsIGV4aXN0cyBpbgogICogWExPR0RJUiwgb3IgMCBp ZiBub25lLgorICoKKyAqIElmIHRoZSBnaXZlbiBUTEkgaXMgMCwgcmV0dXJuIHRoZSBvbGRlc3Qg V0FMIHNlZ21lbnQgYW1vbmcgYWxsIHRoZSBjdXJyZW50bHkKKyAqIGV4aXN0aW5nIFdBTCBzZWdt ZW50cy4KICAqLwogWExvZ1NlZ05vCiBYTG9nR2V0T2xkZXN0U2Vnbm8oVGltZUxpbmVJRCB0bGkp CkBAIC0zNjE5LDcgKzM2MjIsNyBAQCBYTG9nR2V0T2xkZXN0U2Vnbm8oVGltZUxpbmVJRCB0bGkp CiAJCQkJCQkgd2FsX3NlZ21lbnRfc2l6ZSk7CiAKIAkJLyogSWdub3JlIGFueXRoaW5nIHRoYXQn cyBub3QgZnJvbSB0aGUgVExJIG9mIGludGVyZXN0LiAqLwotCQlpZiAodGxpICE9IGZpbGVfdGxp KQorCQlpZiAodGxpICE9IDAgJiYgdGxpICE9IGZpbGVfdGxpKQogCQkJY29udGludWU7CiAKIAkJ LyogSWYgaXQncyB0aGUgb2xkZXN0IHNvIGZhciwgdXBkYXRlIG9sZGVzdF9zZWduby4gKi8KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMKaW5kZXggMGJiNDcyZGEyNy4u ODdiNDlkNTI0YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3Jl Y292ZXJ5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMK QEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJwb3N0bWFzdGVyL3N0YXJ0dXAuaCIKICNpbmNs dWRlICJyZXBsaWNhdGlvbi9zbG90LmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vd2FscmVjZWl2 ZXIuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCIKICNpbmNsdWRl ICJzdG9yYWdlL2ZkLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9pcGMuaCIKICNpbmNsdWRlICJzdG9y YWdlL2xhdGNoLmgiCkBAIC0xNDY3LDYgKzE0NjgsMjAgQEAgRmluaXNoV2FsUmVjb3Zlcnkodm9p ZCkKIAkgKi8KIAlYTG9nU2h1dGRvd25XYWxSY3YoKTsKIAorCS8qCisJICogU2h1dGRvd24gdGhl IHNsb3Qgc3luYyB3b3JrZXJzIHRvIHByZXZlbnQgcG90ZW50aWFsIGNvbmZsaWN0cyBiZXR3ZWVu CisJICogdXNlciBwcm9jZXNzZXMgYW5kIHNsb3RzeW5jIHdvcmtlcnMgYWZ0ZXIgYSBwcm9tb3Rp b24uCisJICoKKwkgKiBXZSBkbyBub3QgdXBkYXRlIHRoZSAnc3luY2VkJyBjb2x1bW4gZnJvbSB0 cnVlIHRvIGZhbHNlIGhlcmUsIGFzIGFueQorCSAqIGZhaWxlZCB1cGRhdGUgY291bGQgbGVhdmUg J3N5bmNlZCcgY29sdW1uIGZhbHNlIGZvciBzb21lIHNsb3RzLiBUaGlzCisJICogY291bGQgY2F1 c2UgaXNzdWVzIGR1cmluZyBzbG90IHN5bmMgYWZ0ZXIgcmVzdGFydGluZyB0aGUgc2VydmVyIGFz IGEKKwkgKiBzdGFuZGJ5LiBXaGlsZSB1cGRhdGluZyBhZnRlciBzd2l0Y2hpbmcgdG8gdGhlIG5l dyB0aW1lbGluZSBpcyBhbgorCSAqIG9wdGlvbiwgaXQgZG9lcyBub3Qgc2ltcGxpZnkgdGhlIGhh bmRsaW5nIGZvciAnc3luY2VkJyBjb2x1bW4uCisJICogVGhlcmVmb3JlLCB3ZSByZXRhaW4gdGhl ICdzeW5jZWQnIGNvbHVtbiBhcyB0cnVlIGFmdGVyIHByb21vdGlvbiBhcyBpdAorCSAqIG1heSBw cm92aWRlIHVzZWZ1bCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2xvdCBvcmlnaW4uCisJICovCisJ U2h1dERvd25TbG90U3luYygpOworCiAJLyoKIAkgKiBXZSBhcmUgbm93IGRvbmUgcmVhZGluZyB0 aGUgeGxvZyBmcm9tIHN0cmVhbS4gVHVybiBvZmYgc3RyZWFtaW5nCiAJICogcmVjb3ZlcnkgdG8g Zm9yY2UgZmV0Y2hpbmcgdGhlIGZpbGVzICh3aGljaCB3b3VsZCBiZSByZXF1aXJlZCBhdCBlbmQg b2YKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAppbmRleCA2ZmMzOTE2ODUwLi4yZThj ZTlkNTU0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwK KysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCkBAIC0xMDI0LDcgKzEw MjQsOCBAQCBDUkVBVEUgVklFVyBwZ19yZXBsaWNhdGlvbl9zbG90cyBBUwogICAgICAgICAgICAg TC5zYWZlX3dhbF9zaXplLAogICAgICAgICAgICAgTC50d29fcGhhc2UsCiAgICAgICAgICAgICBM LmNvbmZsaWN0X3JlYXNvbiwKLSAgICAgICAgICAgIEwuZmFpbG92ZXIKKyAgICAgICAgICAgIEwu ZmFpbG92ZXIsCisgICAgICAgICAgICBMLnN5bmNlZAogICAgIEZST00gcGdfZ2V0X3JlcGxpY2F0 aW9uX3Nsb3RzKCkgQVMgTAogICAgICAgICAgICAgTEVGVCBKT0lOIHBnX2RhdGFiYXNlIEQgT04g KEwuZGF0b2lkID0gRC5vaWQpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVy L2Jnd29ya2VyLmMgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2Jnd29ya2VyLmMKaW5kZXggNjdm OTJjMjRkYi4uNDY4MjhiOGE4OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9i Z3dvcmtlci5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuYwpAQCAtMjEs NiArMjEsNyBAQAogI2luY2x1ZGUgInBvc3RtYXN0ZXIvcG9zdG1hc3Rlci5oIgogI2luY2x1ZGUg InJlcGxpY2F0aW9uL2xvZ2ljYWxsYXVuY2hlci5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xv Z2ljYWx3b3JrZXIuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCIK ICNpbmNsdWRlICJzdG9yYWdlL2RzbS5oIgogI2luY2x1ZGUgInN0b3JhZ2UvaXBjLmgiCiAjaW5j bHVkZSAic3RvcmFnZS9sYXRjaC5oIgpAQCAtMTI5LDYgKzEzMCw5IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QKIAl7CiAJCSJBcHBseVdvcmtlck1haW4iLCBBcHBseVdvcmtlck1haW4KIAl9LAorCXsK KwkJIlJlcGxTbG90U3luY1dvcmtlck1haW4iLCBSZXBsU2xvdFN5bmNXb3JrZXJNYWluCisJfSwK IAl7CiAJCSJQYXJhbGxlbEFwcGx5V29ya2VyTWFpbiIsIFBhcmFsbGVsQXBwbHlXb3JrZXJNYWlu CiAJfSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jIGIv c3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMKaW5kZXggZmViNDcxZGQxZC4uZDkw ZDVkMTU3NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMK KysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMKQEAgLTExNiw2ICsxMTYs NyBAQAogI2luY2x1ZGUgInBvc3RtYXN0ZXIvd2Fsc3VtbWFyaXplci5oIgogI2luY2x1ZGUgInJl cGxpY2F0aW9uL2xvZ2ljYWxsYXVuY2hlci5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dhbHNl bmRlci5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oIgogI2luY2x1 ZGUgInN0b3JhZ2UvZmQuaCIKICNpbmNsdWRlICJzdG9yYWdlL2lwYy5oIgogI2luY2x1ZGUgInN0 b3JhZ2UvcGdfc2htZW0uaCIKQEAgLTEwMTAsNiArMTAxMSwxMiBAQCBQb3N0bWFzdGVyTWFpbihp bnQgYXJnYywgY2hhciAqYXJndltdKQogCSAqLwogCUFwcGx5TGF1bmNoZXJSZWdpc3RlcigpOwog CisJLyoKKwkgKiBSZWdpc3RlciB0aGUgc2xvdCBzeW5jIHdvcmtlciBoZXJlIHRvIGtpY2sgc3Rh cnQgc2xvdC1zeW5jIG9wZXJhdGlvbgorCSAqIHNvb25lciBvbiB0aGUgcGh5c2ljYWwgc3RhbmRi eS4KKwkgKi8KKwlTbG90U3luY1dvcmtlclJlZ2lzdGVyKCk7CisKIAkvKgogCSAqIHByb2Nlc3Mg YW55IGxpYnJhcmllcyB0aGF0IHNob3VsZCBiZSBwcmVsb2FkZWQgYXQgcG9zdG1hc3RlciBzdGFy dAogCSAqLwpAQCAtNTc5OSw2ICs1ODA2LDkgQEAgYmd3b3JrZXJfc2hvdWxkX3N0YXJ0X25vdyhC Z1dvcmtlclN0YXJ0VGltZSBzdGFydF90aW1lKQogCQljYXNlIFBNX0hPVF9TVEFOREJZOgogCQkJ aWYgKHN0YXJ0X3RpbWUgPT0gQmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGUpCiAJCQkJcmV0 dXJuIHRydWU7CisJCQlpZiAoc3RhcnRfdGltZSA9PSBCZ1dvcmtlclN0YXJ0X0NvbnNpc3RlbnRT dGF0ZV9Ib3RTdGFuZGJ5ICYmCisJCQkJCSBwbVN0YXRlICE9IFBNX1JVTikKKwkJCQlyZXR1cm4g dHJ1ZTsKIAkJCS8qIGZhbGwgdGhyb3VnaCAqLwogCiAJCWNhc2UgUE1fUkVDT1ZFUlk6CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2Fs cmVjZWl2ZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGli cHF3YWxyZWNlaXZlci5jCmluZGV4IDIwZDUxMjhjMGUuLmFlNzZjMDk4YjEgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZl ci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3 YWxyZWNlaXZlci5jCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMu aCIKICNpbmNsdWRlICJ1dGlscy9wZ19sc24uaCIKICNpbmNsdWRlICJ1dGlscy90dXBsZXN0b3Jl LmgiCisjaW5jbHVkZSAidXRpbHMvdmFybGVuYS5oIgogCiBQR19NT0RVTEVfTUFHSUM7CiAKQEAg LTU3LDYgKzU4LDcgQEAgc3RhdGljIHZvaWQgbGlicHFyY3ZfZ2V0X3NlbmRlcmluZm8oV2FsUmVj ZWl2ZXJDb25uICpjb25uLAogCQkJCQkJCQkJY2hhciAqKnNlbmRlcl9ob3N0LCBpbnQgKnNlbmRl cl9wb3J0KTsKIHN0YXRpYyBjaGFyICpsaWJwcXJjdl9pZGVudGlmeV9zeXN0ZW0oV2FsUmVjZWl2 ZXJDb25uICpjb25uLAogCQkJCQkJCQkJICBUaW1lTGluZUlEICpwcmltYXJ5X3RsaSk7CitzdGF0 aWMgY2hhciAqbGlicHFyY3ZfZ2V0X2RibmFtZV9mcm9tX2Nvbm5pbmZvKGNvbnN0IGNoYXIgKmNv bm5pbmZvKTsKIHN0YXRpYyBpbnQJbGlicHFyY3Zfc2VydmVyX3ZlcnNpb24oV2FsUmVjZWl2ZXJD b25uICpjb25uKTsKIHN0YXRpYyB2b2lkIGxpYnBxcmN2X3JlYWR0aW1lbGluZWhpc3RvcnlmaWxl KFdhbFJlY2VpdmVyQ29ubiAqY29ubiwKIAkJCQkJCQkJCQkJIFRpbWVMaW5lSUQgdGxpLCBjaGFy ICoqZmlsZW5hbWUsCkBAIC05OSw2ICsxMDEsNyBAQCBzdGF0aWMgV2FsUmVjZWl2ZXJGdW5jdGlv bnNUeXBlIFBRV2FsUmVjZWl2ZXJGdW5jdGlvbnMgPSB7CiAJLndhbHJjdl9zZW5kID0gbGlicHFy Y3Zfc2VuZCwKIAkud2FscmN2X2NyZWF0ZV9zbG90ID0gbGlicHFyY3ZfY3JlYXRlX3Nsb3QsCiAJ LndhbHJjdl9hbHRlcl9zbG90ID0gbGlicHFyY3ZfYWx0ZXJfc2xvdCwKKwkud2FscmN2X2dldF9k Ym5hbWVfZnJvbV9jb25uaW5mbyA9IGxpYnBxcmN2X2dldF9kYm5hbWVfZnJvbV9jb25uaW5mbywK IAkud2FscmN2X2dldF9iYWNrZW5kX3BpZCA9IGxpYnBxcmN2X2dldF9iYWNrZW5kX3BpZCwKIAku d2FscmN2X2V4ZWMgPSBsaWJwcXJjdl9leGVjLAogCS53YWxyY3ZfZGlzY29ubmVjdCA9IGxpYnBx cmN2X2Rpc2Nvbm5lY3QKQEAgLTQ3MSw2ICs0NzQsNDQgQEAgbGlicHFyY3Zfc2VydmVyX3ZlcnNp b24oV2FsUmVjZWl2ZXJDb25uICpjb25uKQogCXJldHVybiBQUXNlcnZlclZlcnNpb24oY29ubi0+ c3RyZWFtQ29ubik7CiB9CiAKKy8qCisgKiBHZXQgZGF0YWJhc2UgbmFtZSBmcm9tIHRoZSBwcmlt YXJ5IHNlcnZlcidzIGNvbm5pbmZvLgorICoKKyAqIElmIGRibmFtZSBpcyBub3QgZm91bmQgaW4g Y29ubkluZm8sIHJldHVybiBOVUxMIHZhbHVlLgorICovCitzdGF0aWMgY2hhciAqCitsaWJwcXJj dl9nZXRfZGJuYW1lX2Zyb21fY29ubmluZm8oY29uc3QgY2hhciAqY29ubkluZm8pCit7CisJUFFj b25uaW5mb09wdGlvbiAqb3B0czsKKwljaGFyCSAgICpkYm5hbWUgPSBOVUxMOworCWNoYXIJICAg KmVyciA9IE5VTEw7CisKKwlvcHRzID0gUFFjb25uaW5mb1BhcnNlKGNvbm5JbmZvLCAmZXJyKTsK KwlpZiAob3B0cyA9PSBOVUxMKQorCXsKKwkJLyogVGhlIGVycm9yIHN0cmluZyBpcyBtYWxsb2Mn ZCwgc28gd2UgbXVzdCBmcmVlIGl0IGV4cGxpY2l0bHkgKi8KKwkJY2hhcgkgICAqZXJyY29weSA9 IGVyciA/IHBzdHJkdXAoZXJyKSA6ICJvdXQgb2YgbWVtb3J5IjsKKworCQlQUWZyZWVtZW0oZXJy KTsKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiks CisJCQkJIGVycm1zZygiaW52YWxpZCBjb25uZWN0aW9uIHN0cmluZyBzeW50YXg6ICVzIiwgZXJy Y29weSkpKTsKKwl9CisKKwlmb3IgKFBRY29ubmluZm9PcHRpb24gKm9wdCA9IG9wdHM7IG9wdC0+ a2V5d29yZCAhPSBOVUxMOyArK29wdCkKKwl7CisJCS8qCisJCSAqIElmIG11bHRpcGxlIGRibmFt ZXMgYXJlIHNwZWNpZmllZCwgdGhlbiB0aGUgbGFzdCBvbmUgd2lsbCBiZQorCQkgKiByZXR1cm5l ZAorCQkgKi8KKwkJaWYgKHN0cmNtcChvcHQtPmtleXdvcmQsICJkYm5hbWUiKSA9PSAwICYmIG9w dC0+dmFsICYmCisJCQlvcHQtPnZhbFswXSAhPSAnXDAnKQorCQkJZGJuYW1lID0gcHN0cmR1cChv cHQtPnZhbCk7CisJfQorCisJcmV0dXJuIGRibmFtZTsKK30KKwogLyoKICAqIFN0YXJ0IHN0cmVh bWluZyBXQUwgZGF0YSBmcm9tIGdpdmVuIHN0cmVhbWluZyBvcHRpb25zLgogICoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvTWFrZWZpbGUgYi9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL01ha2VmaWxlCmluZGV4IDJkYzI1ZTM3YmIuLmJhMDNlZWZm MWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvTWFrZWZpbGUK KysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9NYWtlZmlsZQpAQCAtMjUsNiAr MjUsNyBAQCBPQkpTID0gXAogCXByb3RvLm8gXAogCXJlbGF0aW9uLm8gXAogCXJlb3JkZXJidWZm ZXIubyBcCisJc2xvdHN5bmMubyBcCiAJc25hcGJ1aWxkLm8gXAogCXRhYmxlc3luYy5vIFwKIAl3 b3JrZXIubwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dp Y2FsLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWwuYwppbmRleCBj YTA5YzY4M2YxLi41YWVmYjEwZWNiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL2xvZ2ljYWwuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L2xvZ2ljYWwuYwpAQCAtNTI0LDYgKzUyNCwxOCBAQCBDcmVhdGVEZWNvZGluZ0NvbnRleHQoWExv Z1JlY1B0ciBzdGFydF9sc24sCiAJCQkJIGVycm1zZygicmVwbGljYXRpb24gc2xvdCBcIiVzXCIg d2FzIG5vdCBjcmVhdGVkIGluIHRoaXMgZGF0YWJhc2UiLAogCQkJCQkJTmFtZVN0cihzbG90LT5k YXRhLm5hbWUpKSkpOwogCisJLyoKKwkgKiBEbyBub3QgYWxsb3cgY29uc3VtcHRpb24gb2YgYSAi c3luY2hyb25pemVkIiBzbG90IHVudGlsIHRoZSBzdGFuZGJ5CisJICogZ2V0cyBwcm9tb3RlZC4K KwkgKi8KKwlpZiAoUmVjb3ZlcnlJblByb2dyZXNzKCkgJiYgc2xvdC0+ZGF0YS5zeW5jZWQpCisJ CWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVR VUlTSVRFX1NUQVRFKSwKKwkJCQllcnJtc2coImNhbm5vdCB1c2UgcmVwbGljYXRpb24gc2xvdCBc IiVzXCIgZm9yIGxvZ2ljYWwiCisJCQkJCSAgICIgZGVjb2RpbmciLCBOYW1lU3RyKHNsb3QtPmRh dGEubmFtZSkpLAorCQkJCWVycmRldGFpbCgiVGhpcyBzbG90IGlzIGJlaW5nIHN5bmNlZCBmcm9t IHRoZSBwcmltYXJ5IHNlcnZlci4iKSwKKwkJCQllcnJoaW50KCJTcGVjaWZ5IGFub3RoZXIgcmVw bGljYXRpb24gc2xvdC4iKSk7CisKIAkvKgogCSAqIENoZWNrIGlmIHNsb3QgaGFzIGJlZW4gaW52 YWxpZGF0ZWQgZHVlIHRvIG1heF9zbG90X3dhbF9rZWVwX3NpemUuIEF2b2lkCiAJICogImNhbm5v dCBnZXQgY2hhbmdlcyIgd29yZGluZyBpbiB0aGlzIGVycm1zZyBiZWNhdXNlIHRoYXQnZCBiZQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9tZXNvbi5idWlsZCBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbWVzb24uYnVpbGQKaW5kZXggMTA1MGVi MmMwOS4uM2RlYzM2YTZkZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9n aWNhbC9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL21l c29uLmJ1aWxkCkBAIC0xMSw2ICsxMSw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAg J3Byb3RvLmMnLAogICAncmVsYXRpb24uYycsCiAgICdyZW9yZGVyYnVmZmVyLmMnLAorICAnc2xv dHN5bmMuYycsCiAgICdzbmFwYnVpbGQuYycsCiAgICd0YWJsZXN5bmMuYycsCiAgICd3b3JrZXIu YycsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5j LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNzUxZDAzZjViOQotLS0gL2Rldi9udWxsCisr KyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYwpAQCAtMCwwICsx LDEyMjIgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogc2xvdHN5bmMuYworICoJICAgUG9zdGdy ZVNRTCB3b3JrZXIgZm9yIHN5bmNocm9uaXppbmcgc2xvdHMgdG8gYSBzdGFuZGJ5IHNlcnZlciBm cm9tIHRoZQorICogICAgICAgICBwcmltYXJ5IHNlcnZlci4KKyAqCisgKiBDb3B5cmlnaHQgKGMp IDIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKgorICogSURFTlRJ RklDQVRJT04KKyAqCSAgc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90c3luYy5j CisgKgorICogVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBjb2RlIGZvciBzbG90IHN5bmMgd29ya2Vy IG9uIGEgcGh5c2ljYWwgc3RhbmRieQorICogdG8gZmV0Y2ggbG9naWNhbCBmYWlsb3ZlciBzbG90 cyBpbmZvcm1hdGlvbiBmcm9tIHRoZSBwcmltYXJ5IHNlcnZlciwKKyAqIGNyZWF0ZSB0aGUgc2xv dHMgb24gdGhlIHN0YW5kYnkgYW5kIHN5bmNocm9uaXplIHRoZW0gcGVyaW9kaWNhbGx5LgorICoK KyAqIFdoaWxlIGNyZWF0aW5nIHRoZSBzbG90IG9uIHBoeXNpY2FsIHN0YW5kYnksIGlmIHRoZSBs b2NhbCByZXN0YXJ0X2xzbiBhbmQvb3IKKyAqIGxvY2FsIGNhdGFsb2dfeG1pbiBpcyBhaGVhZCBv ZiB0aG9zZSBvbiB0aGUgcmVtb3RlIHRoZW4gdGhlIHdvcmtlciBjYW5ub3QKKyAqIGNyZWF0ZSB0 aGUgbG9jYWwgc2xvdCBpbiBzeW5jIHdpdGggdGhlIHByaW1hcnkgc2VydmVyIGJlY2F1c2UgdGhh dCB3b3VsZAorICogbWVhbiBtb3ZpbmcgdGhlIGxvY2FsIHNsb3QgYmFja3dhcmRzIGFuZCB0aGUg c3RhbmRieSBtaWdodCBub3QgaGF2ZSBXQUxzCisgKiByZXRhaW5lZCBmb3Igb2xkIExTTi4gSW4g dGhpcyBjYXNlLCB0aGUgd29ya2VyIHdpbGwgbWFyayB0aGUgc2xvdCBhcworICogUlNfVEVNUE9S QVJZLiBPbmNlIHRoZSBwcmltYXJ5IHNlcnZlciBjYXRjaGVzIHVwLCB0aGUgd29ya2VyIHdpbGwg bWFyayB0aGUKKyAqIHNsb3QgYXMgUlNfUEVSU0lTVEVOVCAod2hpY2ggbWVhbnMgc3luYy1yZWFk eSkgYW5kIHdpbGwgcGVyZm9ybSB0aGUgc3luYworICogcGVyaW9kaWNhbGx5LgorICoKKyAqIFRo ZSB3b3JrZXIgYWxzbyB0YWtlcyBjYXJlIG9mIGRyb3BwaW5nIHRoZSBzbG90cyB3aGljaCB3ZXJl IGNyZWF0ZWQgYnkgaXQKKyAqIGFuZCBhcmUgY3VycmVudGx5IG5vdCBuZWVkZWQgdG8gYmUgc3lu Y2hyb25pemVkLgorICoKKyAqIEl0IHdhaXRzIGZvciBhIHBlcmlvZCBvZiB0aW1lIGJlZm9yZSB0 aGUgbmV4dCBzeW5jaHJvbml6YXRpb24sIHdpdGggdGhlCisgKiBkdXJhdGlvbiB2YXJ5aW5nIGJh c2VkIG9uIHdoZXRoZXIgYW55IHNsb3RzIHdlcmUgdXBkYXRlZCBkdXJpbmcgdGhlIGxhc3QKKyAq IGN5Y2xlLiBSZWZlciB0byB0aGUgY29tbWVudHMgYWJvdmUgd2FpdF9mb3Jfc2xvdF9hY3Rpdml0 eSgpIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogU2xvdCBzeW5jaHJvbml6YXRpb24gaXMgY3Vy cmVudGx5IG5vdCBzdXBwb3J0ZWQgb24gdGhlIGNhc2NhZGluZyBzdGFuZGJ5LgorICotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAqLworCisjaW5jbHVkZSAicG9zdGdyZXMuaCIKKworI2luY2x1ZGUgImFj Y2Vzcy9nZW5hbS5oIgorI2luY2x1ZGUgImFjY2Vzcy90YWJsZS5oIgorI2luY2x1ZGUgImFjY2Vz cy94bG9nX2ludGVybmFsLmgiCisjaW5jbHVkZSAiYWNjZXNzL3hsb2dyZWNvdmVyeS5oIgorI2lu Y2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJhc2UuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1h bmRzLmgiCisjaW5jbHVkZSAicGdzdGF0LmgiCisjaW5jbHVkZSAicG9zdG1hc3Rlci9iZ3dvcmtl ci5oIgorI2luY2x1ZGUgInBvc3RtYXN0ZXIvaW50ZXJydXB0LmgiCisjaW5jbHVkZSAicmVwbGlj YXRpb24vbG9naWNhbC5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWxsYXVuY2hlci5o IgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWx3b3JrZXIuaCIKKyNpbmNsdWRlICJyZXBs aWNhdGlvbi93YWxyZWNlaXZlci5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dvcmtlcl9pbnRl cm5hbC5oIgorI2luY2x1ZGUgInN0b3JhZ2UvaXBjLmgiCisjaW5jbHVkZSAic3RvcmFnZS9sbWdy LmgiCisjaW5jbHVkZSAic3RvcmFnZS9wcm9jYXJyYXkuaCIKKyNpbmNsdWRlICJ0Y29wL3Rjb3Bw cm90LmgiCisjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9mbWdy b2lkcy5oIgorI2luY2x1ZGUgInV0aWxzL2d1Y19ob29rcy5oIgorI2luY2x1ZGUgInV0aWxzL3Bn X2xzbi5oIgorI2luY2x1ZGUgInV0aWxzL3ZhcmxlbmEuaCIKKworLyoKKyAqIFN0cnVjdHVyZSB0 byBob2xkIGluZm9ybWF0aW9uIGZldGNoZWQgZnJvbSB0aGUgcHJpbWFyeSBzZXJ2ZXIgYWJvdXQg YSBsb2dpY2FsCisgKiByZXBsaWNhdGlvbiBzbG90LgorICovCit0eXBlZGVmIHN0cnVjdCBSZW1v dGVTbG90Cit7CisJY2hhcgkgICAqbmFtZTsKKwljaGFyCSAgICpwbHVnaW47CisJY2hhcgkgICAq ZGF0YWJhc2U7CisJYm9vbAkJdHdvX3BoYXNlOworCWJvb2wJCWZhaWxvdmVyOworCVhMb2dSZWNQ dHIJcmVzdGFydF9sc247CisJWExvZ1JlY1B0cgljb25maXJtZWRfbHNuOworCVRyYW5zYWN0aW9u SWQgY2F0YWxvZ194bWluOworCisJLyogUlNfSU5WQUxfTk9ORSBpZiB2YWxpZCwgb3IgdGhlIHJl YXNvbiBvZiBpbnZhbGlkYXRpb24gKi8KKwlSZXBsaWNhdGlvblNsb3RJbnZhbGlkYXRpb25DYXVz ZSBpbnZhbGlkYXRlZDsKK30gUmVtb3RlU2xvdDsKKworLyoKKyAqIFN0cnVjdCBmb3Igc2hhcmlu ZyBpbmZvcm1hdGlvbiBiZXR3ZWVuIHN0YXJ0dXAgcHJvY2VzcyBhbmQgc2xvdAorICogc3luYyB3 b3JrZXIuCisgKgorICogU2xvdCBzeW5jIHdvcmtlcidzIHBpZCBpcyBuZWVkZWQgYnkgdGhlIHN0 YXJ0dXAgcHJvY2VzcyBpbiBvcmRlciB0bworICogc2h1dCBpdCBkb3duIGR1cmluZyBwcm9tb3Rp b24uIFN0YXJ0dXAgcHJvY2VzcyBzaHV0cyBkb3duIHRoZSBzbG90CisgKiBzeW5jIHdvcmtlciBh bmQgYWxzbyBzZXRzIHN0b3BTaWduYWxlZD10cnVlIHRvIGhhbmRsZSB0aGUgcmFjZSBjb25kaXRp b24KKyAqIHdoZW4gcG9zdG1hc3RlciBoYXMgbm90IG5vdGljZWQgdGhlIHByb21vdGlvbiB5ZXQg YW5kIHRodXMgbWF5IGVuZCB1cAorICogcmVzdGFydGluZyBzbG90IHN5bmMgd29ya2VyLiBJZiBz dG9wU2lnbmFsZWQgaXMgc2V0LCB0aGUgd29ya2VyIHdpbGwKKyAqIGV4aXQgaW4gc3VjaCBhIGNh c2UuCisgKi8KK3R5cGVkZWYgc3RydWN0IFNsb3RTeW5jV29ya2VyQ3R4U3RydWN0Cit7CisJcGlk X3QJCXBpZDsKKwlib29sCQlzdG9wU2lnbmFsZWQ7CisJc2xvY2tfdAkJbXV0ZXg7Cit9IFNsb3RT eW5jV29ya2VyQ3R4U3RydWN0OworCitTbG90U3luY1dvcmtlckN0eFN0cnVjdCAqU2xvdFN5bmNX b3JrZXIgPSBOVUxMOworCisvKiBHVUMgdmFyaWFibGUgKi8KK2Jvb2wJCWVuYWJsZV9zeW5jc2xv dCA9IGZhbHNlOworCisvKgorICogVGhlIHNsZWVwIHRpbWUgKG1zKSBiZXR3ZWVuIHNsb3Qtc3lu YyBjeWNsZXMgdmFyaWVzIGR5bmFtaWNhbGx5CisgKiAod2l0aGluIGEgTUlOL01BWCByYW5nZSkg YWNjb3JkaW5nIHRvIHNsb3QgYWN0aXZpdHkuIFNlZQorICogd2FpdF9mb3Jfc2xvdF9hY3Rpdml0 eSgpIGZvciBkZXRhaWxzLgorICovCisjZGVmaW5lIE1JTl9XT1JLRVJfTkFQVElNRV9NUyAgMjAw CisjZGVmaW5lIE1BWF9XT1JLRVJfTkFQVElNRV9NUyAgMzAwMDAJLyogMzBzICovCitzdGF0aWMg bG9uZyBzbGVlcF9tcyA9IE1JTl9XT1JLRVJfTkFQVElNRV9NUzsKKworc3RhdGljIHZvaWQgUHJv Y2Vzc1Nsb3RTeW5jSW50ZXJydXB0cyhXYWxSZWNlaXZlckNvbm4gKndyY29ubik7CisKKy8qCisg KiBJZiBuZWNlc3NhcnksIHVwZGF0ZSBsb2NhbCBzbG90IG1ldGFkYXRhIGJhc2VkIG9uIHRoZSBk YXRhIGZyb20gdGhlIHJlbW90ZQorICogc2xvdC4KKyAqCisgKiBJZiBubyB1cGRhdGUgd2FzIG5l ZWRlZCAodGhlIGRhdGEgb2YgdGhlIHJlbW90ZSBzbG90IGlzIHRoZSBzYW1lIGFzIHRoZQorICog bG9jYWwgc2xvdCkgcmV0dXJuIGZhbHNlLCBvdGhlcndpc2UgdHJ1ZS4KKyAqLworc3RhdGljIGJv b2wKK2xvY2FsX3Nsb3RfdXBkYXRlKFJlbW90ZVNsb3QgKnJlbW90ZV9zbG90LCBPaWQgcmVtb3Rl X2RiaWQpCit7CisJUmVwbGljYXRpb25TbG90ICpzbG90ID0gTXlSZXBsaWNhdGlvblNsb3Q7CisJ TmFtZURhdGEJcGx1Z2luX25hbWU7CisKKwlBc3NlcnQoc2xvdC0+ZGF0YS5pbnZhbGlkYXRlZCA9 PSBSU19JTlZBTF9OT05FKTsKKworCWlmIChzdHJjbXAocmVtb3RlX3Nsb3QtPnBsdWdpbiwgTmFt ZVN0cihzbG90LT5kYXRhLnBsdWdpbikpID09IDAgJiYKKwkJcmVtb3RlX2RiaWQgPT0gc2xvdC0+ ZGF0YS5kYXRhYmFzZSAmJgorCQlyZW1vdGVfc2xvdC0+cmVzdGFydF9sc24gPT0gc2xvdC0+ZGF0 YS5yZXN0YXJ0X2xzbiAmJgorCQlyZW1vdGVfc2xvdC0+Y2F0YWxvZ194bWluID09IHNsb3QtPmRh dGEuY2F0YWxvZ194bWluICYmCisJCXJlbW90ZV9zbG90LT50d29fcGhhc2UgPT0gc2xvdC0+ZGF0 YS50d29fcGhhc2UgJiYKKwkJcmVtb3RlX3Nsb3QtPmZhaWxvdmVyID09IHNsb3QtPmRhdGEuZmFp bG92ZXIgJiYKKwkJcmVtb3RlX3Nsb3QtPmNvbmZpcm1lZF9sc24gPT0gc2xvdC0+ZGF0YS5jb25m aXJtZWRfZmx1c2gpCisJCXJldHVybiBmYWxzZTsKKworCS8qIEF2b2lkIGV4cGVuc2l2ZSBvcGVy YXRpb25zIHdoaWxlIGhvbGRpbmcgYSBzcGlubG9jay4gKi8KKwluYW1lc3RyY3B5KCZwbHVnaW5f bmFtZSwgcmVtb3RlX3Nsb3QtPnBsdWdpbik7CisKKwlTcGluTG9ja0FjcXVpcmUoJnNsb3QtPm11 dGV4KTsKKwlzbG90LT5kYXRhLnBsdWdpbiA9IHBsdWdpbl9uYW1lOworCXNsb3QtPmRhdGEuZGF0 YWJhc2UgPSByZW1vdGVfZGJpZDsKKwlzbG90LT5kYXRhLnR3b19waGFzZSA9IHJlbW90ZV9zbG90 LT50d29fcGhhc2U7CisJc2xvdC0+ZGF0YS5mYWlsb3ZlciA9IHJlbW90ZV9zbG90LT5mYWlsb3Zl cjsKKwlzbG90LT5kYXRhLnJlc3RhcnRfbHNuID0gcmVtb3RlX3Nsb3QtPnJlc3RhcnRfbHNuOwor CXNsb3QtPmRhdGEuY29uZmlybWVkX2ZsdXNoID0gcmVtb3RlX3Nsb3QtPmNvbmZpcm1lZF9sc247 CisJc2xvdC0+ZGF0YS5jYXRhbG9nX3htaW4gPSByZW1vdGVfc2xvdC0+Y2F0YWxvZ194bWluOwor CXNsb3QtPmVmZmVjdGl2ZV9jYXRhbG9nX3htaW4gPSByZW1vdGVfc2xvdC0+Y2F0YWxvZ194bWlu OworCVNwaW5Mb2NrUmVsZWFzZSgmc2xvdC0+bXV0ZXgpOworCisJaWYgKHJlbW90ZV9zbG90LT5j YXRhbG9nX3htaW4gIT0gc2xvdC0+ZGF0YS5jYXRhbG9nX3htaW4pCisJCVJlcGxpY2F0aW9uU2xv dHNDb21wdXRlUmVxdWlyZWRYbWluKGZhbHNlKTsKKworCWlmIChyZW1vdGVfc2xvdC0+cmVzdGFy dF9sc24gIT0gc2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbikKKwkJUmVwbGljYXRpb25TbG90c0NvbXB1 dGVSZXF1aXJlZExTTigpOworCisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBHZXQgbGlzdCBv ZiBsb2NhbCBsb2dpY2FsIHNsb3RzIHdoaWNoIGFyZSBzeW5jaHJvbml6ZWQgZnJvbQorICogdGhl IHByaW1hcnkgc2VydmVyLgorICovCitzdGF0aWMgTGlzdCAqCitnZXRfbG9jYWxfc3luY2VkX3Ns b3RzKHZvaWQpCit7CisJTGlzdAkgICAqbG9jYWxfc2xvdHMgPSBOSUw7CisKKwlMV0xvY2tBY3F1 aXJlKFJlcGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrLCBMV19TSEFSRUQpOworCisJZm9yIChpbnQg aSA9IDA7IGkgPCBtYXhfcmVwbGljYXRpb25fc2xvdHM7IGkrKykKKwl7CisJCVJlcGxpY2F0aW9u U2xvdCAqcyA9ICZSZXBsaWNhdGlvblNsb3RDdGwtPnJlcGxpY2F0aW9uX3Nsb3RzW2ldOworCisJ CS8qIENoZWNrIGlmIGl0IGlzIGEgc3luY2hyb25pemVkIHNsb3QgKi8KKwkJaWYgKHMtPmluX3Vz ZSAmJiBzLT5kYXRhLnN5bmNlZCkKKwkJeworCQkJQXNzZXJ0KFNsb3RJc0xvZ2ljYWwocykpOwor CQkJbG9jYWxfc2xvdHMgPSBsYXBwZW5kKGxvY2FsX3Nsb3RzLCBzKTsKKwkJfQorCX0KKworCUxX TG9ja1JlbGVhc2UoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2spOworCisJcmV0dXJuIGxvY2Fs X3Nsb3RzOworfQorCisvKgorICogSGVscGVyIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIGxvY2FsX3Ns b3QgaXMgcHJlc2VudCBpbiByZW1vdGVfc2xvdHMgbGlzdC4KKyAqCisgKiBJdCBhbHNvIGNoZWNr cyBpZiB0aGUgc2xvdCBvbiB0aGUgc3RhbmRieSBzZXJ2ZXIgd2FzIGludmFsaWRhdGVkIHdoaWxl IHRoZQorICogY29ycmVzcG9uZGluZyByZW1vdGUgc2xvdCBpbiB0aGUgbGlzdCByZW1haW5lZCB2 YWxpZC4gSWYgZm91bmQgc28sIGl0IHNldHMKKyAqIHRoZSBsb2NhbGx5X2ludmFsaWRhdGVkIGZs YWcgdG8gdHJ1ZS4KKyAqLworc3RhdGljIGJvb2wKK2NoZWNrX3N5bmNfc2xvdF9vbl9yZW1vdGUo UmVwbGljYXRpb25TbG90ICpsb2NhbF9zbG90LCBMaXN0ICpyZW1vdGVfc2xvdHMsCisJCQkJCQkg IGJvb2wgKmxvY2FsbHlfaW52YWxpZGF0ZWQpCit7CisJZm9yZWFjaF9wdHIoUmVtb3RlU2xvdCwg cmVtb3RlX3Nsb3QsIHJlbW90ZV9zbG90cykKKwl7CisJCWlmIChzdHJjbXAocmVtb3RlX3Nsb3Qt Pm5hbWUsIE5hbWVTdHIobG9jYWxfc2xvdC0+ZGF0YS5uYW1lKSkgPT0gMCkKKwkJeworCQkJLyoK KwkJCSAqIElmIHJlbW90ZSBzbG90IGlzIG5vdCBpbnZhbGlkYXRlZCBidXQgbG9jYWwgc2xvdCBp cyBtYXJrZWQgYXMKKwkJCSAqIGludmFsaWRhdGVkLCB0aGVuIHNldCB0aGUgYm9vbC4KKwkJCSAq LworCQkJU3BpbkxvY2tBY3F1aXJlKCZsb2NhbF9zbG90LT5tdXRleCk7CisJCQkqbG9jYWxseV9p bnZhbGlkYXRlZCA9CisJCQkJKHJlbW90ZV9zbG90LT5pbnZhbGlkYXRlZCA9PSBSU19JTlZBTF9O T05FKSAmJgorCQkJCShsb2NhbF9zbG90LT5kYXRhLmludmFsaWRhdGVkICE9IFJTX0lOVkFMX05P TkUpOworCQkJU3BpbkxvY2tSZWxlYXNlKCZsb2NhbF9zbG90LT5tdXRleCk7CisKKwkJCXJldHVy biB0cnVlOworCQl9CisJfQorCisJcmV0dXJuIGZhbHNlOworfQorCisvKgorICogRHJvcCBvYnNv bGV0ZSBzbG90cworICoKKyAqIERyb3AgdGhlIHNsb3RzIHRoYXQgbm8gbG9uZ2VyIG5lZWQgdG8g YmUgc3luY2VkIGkuZS4gdGhlc2UgZWl0aGVyIGRvIG5vdAorICogZXhpc3Qgb24gdGhlIHByaW1h cnkgb3IgYXJlIG5vIGxvbmdlciBlbmFibGVkIGZvciBmYWlsb3Zlci4KKyAqCisgKiBBZGRpdGlv bmFsbHksIGl0IGRyb3BzIHNsb3RzIHRoYXQgYXJlIHZhbGlkIG9uIHRoZSBwcmltYXJ5IGJ1dCBn b3QKKyAqIGludmFsaWRhdGVkIG9uIHRoZSBzdGFuZGJ5LiBUaGlzIHNpdHVhdGlvbiBtYXkgb2Nj dXIgZHVlIHRvIHRoZSBmb2xsb3dpbmcKKyAqIHJlYXNvbnM6CisgKiAtIFRoZSBtYXhfc2xvdF93 YWxfa2VlcF9zaXplIG9uIHRoZSBzdGFuZGJ5IGlzIGluc3VmZmljaWVudCB0byByZXRhaW4gV0FM CisgKiAgIHJlY29yZHMgZnJvbSB0aGUgcmVzdGFydF9sc24gb2YgdGhlIHNsb3QuCisgKiAtIHBy aW1hcnlfc2xvdF9uYW1lIGlzIHRlbXBvcmFyaWx5IHJlc2V0IHRvIG51bGwgYW5kIHRoZSBwaHlz aWNhbCBzbG90IGlzCisgKiAgIHJlbW92ZWQuCisgKiAtIFRoZSBwcmltYXJ5IGNoYW5nZXMgd2Fs X2xldmVsIHRvIGEgbGV2ZWwgbG93ZXIgdGhhbiBsb2dpY2FsLgorICoKKyAqIFRoZSBhc3N1bXB0 aW9uIGlzIHRoYXQgdGhlc2UgZHJvcHBlZCBzbG90cyB3aWxsIGdldCByZWNyZWF0ZWQgaW4gbmV4 dAorICogc3luYy1jeWNsZSBhbmQgaXQgaXMgb2theSB0byBkcm9wIGFuZCByZWNyZWF0ZSBzdWNo IHNsb3RzIGFzIGxvbmcgYXMgdGhlc2UKKyAqIGFyZSBub3QgY29uc3VtYWJsZSBvbiB0aGUgc3Rh bmRieSAod2hpY2ggaXMgdGhlIGNhc2UgY3VycmVudGx5KS4KKyAqLworc3RhdGljIHZvaWQKK2Ry b3Bfb2Jzb2xldGVfc2xvdHMoTGlzdCAqcmVtb3RlX3Nsb3RfbGlzdCkKK3sKKwlMaXN0CSAgICps b2NhbF9zbG90cyA9IGdldF9sb2NhbF9zeW5jZWRfc2xvdHMoKTsKKworCWZvcmVhY2hfcHRyKFJl cGxpY2F0aW9uU2xvdCwgbG9jYWxfc2xvdCwgbG9jYWxfc2xvdHMpCisJeworCQlib29sCQlyZW1v dGVfZXhpc3RzID0gZmFsc2U7CisJCWJvb2wJCWxvY2FsbHlfaW52YWxpZGF0ZWQgPSBmYWxzZTsK KworCQlyZW1vdGVfZXhpc3RzID0gY2hlY2tfc3luY19zbG90X29uX3JlbW90ZShsb2NhbF9zbG90 LCByZW1vdGVfc2xvdF9saXN0LAorCQkJCQkJCQkJCQkJICAmbG9jYWxseV9pbnZhbGlkYXRlZCk7 CisKKwkJLyoKKwkJICogRHJvcCB0aGUgbG9jYWwgc2xvdCBlaXRoZXIgaWYgaXQgaXMgbm90IGlu IHRoZSByZW1vdGUgc2xvdHMgbGlzdCBvcgorCQkgKiBpcyBpbnZhbGlkYXRlZCB3aGlsZSByZW1v dGUgc2xvdCBpcyBzdGlsbCB2YWxpZC4KKwkJICovCisJCWlmICghcmVtb3RlX2V4aXN0cyB8fCBs b2NhbGx5X2ludmFsaWRhdGVkKQorCQl7CisJCQkvKgorCQkJICogVXNlIHNoYXJlZCBsb2NrIHRv IHByZXZlbnQgYSBjb25mbGljdCB3aXRoCisJCQkgKiBSZXBsaWNhdGlvblNsb3RzRHJvcERCU2xv dHMoKSwgdHJ5aW5nIHRvIGRyb3AgdGhlIHNhbWUgc2xvdAorCQkJICogd2hpbGUgZHJvcC1kYXRh YmFzZSBvcGVyYXRpb24uCisJCQkgKi8KKwkJCUxvY2tTaGFyZWRPYmplY3QoRGF0YWJhc2VSZWxh dGlvbklkLCBsb2NhbF9zbG90LT5kYXRhLmRhdGFiYXNlLAorCQkJCQkJCSAwLCBBY2Nlc3NTaGFy ZUxvY2spOworCisJCQlSZXBsaWNhdGlvblNsb3RBY3F1aXJlKE5hbWVTdHIobG9jYWxfc2xvdC0+ ZGF0YS5uYW1lKSwgdHJ1ZSk7CisJCQlBc3NlcnQoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEuc3lu Y2VkKTsKKwkJCVJlcGxpY2F0aW9uU2xvdERyb3BBY3F1aXJlZCgpOworCisJCQlVbmxvY2tTaGFy ZWRPYmplY3QoRGF0YWJhc2VSZWxhdGlvbklkLCBsb2NhbF9zbG90LT5kYXRhLmRhdGFiYXNlLAor CQkJCQkJCSAgIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwkJCWVyZXBvcnQoTE9HLAorCQkJCQll cnJtc2coImRyb3BwZWQgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIgb2YgZGJpZCAlZCIsCisJCQkJ CQkgICBOYW1lU3RyKGxvY2FsX3Nsb3QtPmRhdGEubmFtZSksCisJCQkJCQkgICBsb2NhbF9zbG90 LT5kYXRhLmRhdGFiYXNlKSk7CisJCX0KKwl9Cit9CisKKy8qCisgKiBSZXNlcnZlIFdBTCBmb3Ig dGhlIGN1cnJlbnRseSBhY3RpdmUgc2xvdCB1c2luZyB0aGUgc3BlY2lmaWVkIFdBTCBsb2NhdGlv bgorICogKHJlc3RhcnRfbHNuKS4KKyAqCisgKiBJZiB0aGUgZ2l2ZW4gV0FMIGxvY2F0aW9uIGhh cyBiZWVuIHJlbW92ZWQsIHJlc2VydmUgV0FMIHVzaW5nIHRoZSBvbGRlc3QKKyAqIGV4aXN0aW5n IFdBTCBzZWdtZW50LgorICovCitzdGF0aWMgdm9pZAorcmVzZXJ2ZV93YWxfZm9yX3Nsb3QoWExv Z1JlY1B0ciByZXN0YXJ0X2xzbikKK3sKKwlYTG9nU2VnTm8Jb2xkZXN0X3NlZ25vOworCVhMb2dT ZWdObwlzZWdubzsKKwlSZXBsaWNhdGlvblNsb3QgKnNsb3QgPSBNeVJlcGxpY2F0aW9uU2xvdDsK KworCUFzc2VydChzbG90ICE9IE5VTEwpOworCUFzc2VydChYTG9nUmVjUHRySXNJbnZhbGlkKHNs b3QtPmRhdGEucmVzdGFydF9sc24pKTsKKworCXdoaWxlICh0cnVlKQorCXsKKwkJU3BpbkxvY2tB Y3F1aXJlKCZzbG90LT5tdXRleCk7CisJCXNsb3QtPmRhdGEucmVzdGFydF9sc24gPSByZXN0YXJ0 X2xzbjsKKwkJU3BpbkxvY2tSZWxlYXNlKCZzbG90LT5tdXRleCk7CisKKwkJLyogUHJldmVudCBX QUwgcmVtb3ZhbCBhcyBmYXN0IGFzIHBvc3NpYmxlICovCisJCVJlcGxpY2F0aW9uU2xvdHNDb21w dXRlUmVxdWlyZWRMU04oKTsKKworCQlYTEJ5dGVUb1NlZyhzbG90LT5kYXRhLnJlc3RhcnRfbHNu LCBzZWdubywgd2FsX3NlZ21lbnRfc2l6ZSk7CisKKwkJLyoKKwkJICogRmluZCB0aGUgb2xkZXN0 IGV4aXN0aW5nIFdBTCBzZWdtZW50IGZpbGUuCisJCSAqCisJCSAqIE5vcm1hbGx5LCB3ZSBjYW4g ZGV0ZXJtaW5lIGl0IGJ5IHVzaW5nIHRoZSBsYXN0IHJlbW92ZWQgc2VnbWVudAorCQkgKiBudW1i ZXIuIEhvd2V2ZXIsIGlmIG5vIFdBTCBzZWdtZW50IGZpbGVzIGhhdmUgYmVlbiByZW1vdmVkIGJ5 IGEKKwkJICogY2hlY2twb2ludCBzaW5jZSBzdGFydHVwLCB3ZSBuZWVkIHRvIHNlYXJjaCBmb3Ig dGhlIG9sZGVzdCBzZWdtZW50CisJCSAqIGZpbGUgY3VycmVudGx5IGV4aXN0aW5nIGluIFhMT0dE SVIuCisJCSAqLworCQlvbGRlc3Rfc2Vnbm8gPSBYTG9nR2V0TGFzdFJlbW92ZWRTZWdubygpICsg MTsKKworCQlpZiAob2xkZXN0X3NlZ25vID09IDEpCisJCQlvbGRlc3Rfc2Vnbm8gPSBYTG9nR2V0 T2xkZXN0U2Vnbm8oMCk7CisKKwkJLyoKKwkJICogSWYgYWxsIHJlcXVpcmVkIFdBTCBpcyBzdGls bCB0aGVyZSwgZ3JlYXQsIG90aGVyd2lzZSByZXRyeS4gVGhlCisJCSAqIHNsb3Qgc2hvdWxkIHBy ZXZlbnQgZnVydGhlciByZW1vdmFsIG9mIFdBTCwgdW5sZXNzIHRoZXJlJ3MgYQorCQkgKiBjb25j dXJyZW50IFJlcGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWlyZWRMU04oKSBhZnRlciB3ZSd2ZSB3 cml0dGVuCisJCSAqIHRoZSBuZXcgcmVzdGFydF9sc24gYWJvdmUsIHNvIG5vcm1hbGx5IHdlIHNo b3VsZCBuZXZlciBuZWVkIHRvIGxvb3AKKwkJICogbW9yZSB0aGFuIHR3aWNlLgorCQkgKi8KKwkJ aWYgKHNlZ25vID49IG9sZGVzdF9zZWdubykKKwkJCWJyZWFrOworCisJCS8qIFJldHJ5IHVzaW5n IHRoZSBsb2NhdGlvbiBvZiB0aGUgb2xkZXN0IHdhbCBzZWdtZW50ICovCisJCVhMb2dTZWdOb09m ZnNldFRvUmVjUHRyKG9sZGVzdF9zZWdubywgMCwgd2FsX3NlZ21lbnRfc2l6ZSwgcmVzdGFydF9s c24pOworCX0KK30KKworLyoKKyAqIFVwZGF0ZSB0aGUgTFNOcyBhbmQgcGVyc2lzdCB0aGUgc2xv dCBmb3IgZnVydGhlciBzeW5jcyBpZiB0aGUgcmVtb3RlCisgKiByZXN0YXJ0X2xzbiBhbmQgY2F0 YWxvZ194bWluIGhhdmUgY2F1Z2h0IHVwIHdpdGggdGhlIGxvY2FsIG9uZXMsIG90aGVyd2lzZQor ICogZG8gbm90aGluZy4KKyAqCisgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgc2xvdCBpcyBtYXJrZWQg YXMgUlNfUEVSU0lTVEVOVCAoc3luYy1yZWFkeSksIG90aGVyd2lzZQorICogZmFsc2UuCisgKi8K K3N0YXRpYyBib29sCit1cGRhdGVfYW5kX3BlcnNpc3Rfc2xvdChSZW1vdGVTbG90ICpyZW1vdGVf c2xvdCwgT2lkIHJlbW90ZV9kYmlkKQoreworCVJlcGxpY2F0aW9uU2xvdCAqc2xvdCA9IE15UmVw bGljYXRpb25TbG90OworCisJLyoKKwkgKiBDaGVjayBpZiB0aGUgcHJpbWFyeSBzZXJ2ZXIgaGFz IGNhdWdodCB1cC4gUmVmZXIgdG8gdGhlIGNvbW1lbnQgYXRvcAorCSAqIHRoZSBmaWxlIGZvciBk ZXRhaWxzIG9uIHRoaXMgY2hlY2suCisJICoKKwkgKiBXZSBhbHNvIG5lZWQgdG8gY2hlY2sgaWYg cmVtb3RlX3Nsb3QncyBjb25maXJtZWRfbHNuIGJlY29tZXMgdmFsaWQuIEl0CisJICogaXMgcG9z c2libGUgdG8gZ2V0IG51bGwgdmFsdWVzIGZvciBjb25maXJtZWRfbHNuIGFuZCBjYXRhbG9nX3ht aW4gaWYgb24KKwkgKiB0aGUgcHJpbWFyeSBzZXJ2ZXIgdGhlIHNsb3QgaXMganVzdCBjcmVhdGVk IHdpdGggYSB2YWxpZCByZXN0YXJ0X2xzbgorCSAqIGFuZCBzbG90LXN5bmMgd29ya2VyIGhhcyBm ZXRjaGVkIHRoZSBzbG90IGJlZm9yZSB0aGUgcHJpbWFyeSBzZXJ2ZXIKKwkgKiBjb3VsZCBzZXQg dmFsaWQgY29uZmlybWVkX2xzbiBhbmQgY2F0YWxvZ194bWluLgorCSAqLworCWlmIChyZW1vdGVf c2xvdC0+cmVzdGFydF9sc24gPCBzbG90LT5kYXRhLnJlc3RhcnRfbHNuIHx8CisJCVhMb2dSZWNQ dHJJc0ludmFsaWQocmVtb3RlX3Nsb3QtPmNvbmZpcm1lZF9sc24pIHx8CisJCVRyYW5zYWN0aW9u SWRQcmVjZWRlcyhyZW1vdGVfc2xvdC0+Y2F0YWxvZ194bWluLAorCQkJCQkJCSAgc2xvdC0+ZGF0 YS5jYXRhbG9nX3htaW4pKQorCXsKKwkJLyoKKwkJICogVGhlIHJlbW90ZSBzbG90IGRpZG4ndCBj YXRjaCB1cCB0byBsb2NhbGx5IHJlc2VydmVkIHBvc2l0aW9uLgorCQkgKgorCQkgKiBXZSBkbyBu b3QgZHJvcCB0aGUgc2xvdCBiZWNhdXNlIHRoZSByZXN0YXJ0X2xzbiBjYW4gYmUgYWhlYWQgb2Yg dGhlCisJCSAqIGN1cnJlbnQgbG9jYXRpb24gd2hlbiByZWNyZWF0aW5nIHRoZSBzbG90IGluIHRo ZSBuZXh0IGN5Y2xlLiBJdCBtYXkKKwkJICogdGFrZSBtb3JlIHRpbWUgdG8gY3JlYXRlIHN1Y2gg YSBzbG90LiBUaGVyZWZvcmUsIHdlIGtlZXAgdGhpcyBzbG90CisJCSAqIGFuZCBhdHRlbXB0IHRo ZSB3YWl0IGFuZCBzeW5jaHJvbml6YXRpb24gaW4gdGhlIG5leHQgY3ljbGUuCisJCSAqLworCQly ZXR1cm4gZmFsc2U7CisJfQorCisJLyogRmlyc3QgdGltZSBzbG90IHVwZGF0ZSwgdGhlIGZ1bmN0 aW9uIG11c3QgcmV0dXJuIHRydWUgKi8KKwlpZiAoIWxvY2FsX3Nsb3RfdXBkYXRlKHJlbW90ZV9z bG90LCByZW1vdGVfZGJpZCkpCisJCWVsb2coRVJST1IsICJmYWlsZWQgdG8gdXBkYXRlIHNsb3Qi KTsKKworCVJlcGxpY2F0aW9uU2xvdFBlcnNpc3QoKTsKKworCWVyZXBvcnQoTE9HLAorCQkJZXJy bXNnKCJuZXdseSBjcmVhdGVkIHNsb3QgXCIlc1wiIGlzIHN5bmMtcmVhZHkgbm93IiwKKwkJCQkg ICByZW1vdGVfc2xvdC0+bmFtZSkpOworCisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBTeW5j aHJvbml6ZSBzaW5nbGUgc2xvdCB0byBnaXZlbiBwb3NpdGlvbi4KKyAqCisgKiBUaGlzIGNyZWF0 ZXMgYSBuZXcgc2xvdCBpZiB0aGVyZSBpcyBubyBleGlzdGluZyBvbmUgYW5kIHVwZGF0ZXMgdGhl CisgKiBtZXRhZGF0YSBvZiB0aGUgc2xvdCBhcyBwZXIgdGhlIGRhdGEgcmVjZWl2ZWQgZnJvbSB0 aGUgcHJpbWFyeSBzZXJ2ZXIuCisgKgorICogVGhlIHNsb3QgaXMgY3JlYXRlZCBhcyBhIHRlbXBv cmFyeSBzbG90IGFuZCBzdGF5cyBpbiB0aGUgc2FtZSBzdGF0ZSB1bnRpbCB0aGUKKyAqIHRoZSBy ZW1vdGVfc2xvdCBjYXRjaGVzIHVwIHdpdGggbG9jYWxseSByZXNlcnZlZCBwb3NpdGlvbiBhbmQg bG9jYWwgc2xvdCBpcworICogdXBkYXRlZC4gVGhlIHNsb3QgaXMgdGhlbiBwZXJzaXN0ZWQgYW5k IGlzIGNvbnNpZGVyZWQgYXMgc3luYy1yZWFkeSBmb3IKKyAqIHBlcmlvZGljIHN5bmNzLgorICoK KyAqIFJldHVybnMgVFJVRSBpZiB0aGUgbG9jYWwgc2xvdCBpcyB1cGRhdGVkLgorICovCitzdGF0 aWMgYm9vbAorc3luY2hyb25pemVfb25lX3Nsb3QoUmVtb3RlU2xvdCAqcmVtb3RlX3Nsb3QsIE9p ZCByZW1vdGVfZGJpZCkKK3sKKwlSZXBsaWNhdGlvblNsb3QgKnNsb3Q7CisJYm9vbAkJc2xvdF91 cGRhdGVkID0gZmFsc2U7CisJWExvZ1JlY1B0cglsYXRlc3RGbHVzaFB0cjsKKworCS8qCisJICog TWFrZSBzdXJlIHRoYXQgY29uY2VybmVkIFdBTCBpcyByZWNlaXZlZCBhbmQgZmx1c2hlZCBiZWZv cmUgc3luY2luZworCSAqIHNsb3QgdG8gdGFyZ2V0IGxzbiByZWNlaXZlZCBmcm9tIHRoZSBwcmlt YXJ5IHNlcnZlci4KKwkgKgorCSAqIFRoaXMgY2hlY2sgd2lsbCBuZXZlciBwYXNzIGlmIG9uIHRo ZSBwcmltYXJ5IHNlcnZlciwgdXNlciBoYXMKKwkgKiBjb25maWd1cmVkIHN0YW5kYnlfc2xvdF9u YW1lcyBHVUMgY29ycmVjdGx5LCBvdGhlcndpc2UgdGhpcyBjYW4gaGl0CisJICogZnJlcXVlbnRs eS4KKwkgKi8KKwlsYXRlc3RGbHVzaFB0ciA9IEdldFN0YW5kYnlGbHVzaFJlY1B0cihOVUxMKTsK KwlpZiAocmVtb3RlX3Nsb3QtPmNvbmZpcm1lZF9sc24gPiBsYXRlc3RGbHVzaFB0cikKKwl7CisJ CWVyZXBvcnQoTE9HLAorCQkJCWVycm1zZygic2tpcHBpbmcgc2xvdCBzeW5jaHJvbml6YXRpb24g YXMgdGhlIHJlY2VpdmVkIHNsb3Qgc3luYyIKKwkJCQkJICAgIiBMU04gJVgvJVggZm9yIHNsb3Qg XCIlc1wiIGlzIGFoZWFkIG9mIHRoZSBzdGFuZGJ5IHBvc2l0aW9uICVYLyVYIiwKKwkJCQkJICAg TFNOX0ZPUk1BVF9BUkdTKHJlbW90ZV9zbG90LT5jb25maXJtZWRfbHNuKSwKKwkJCQkJICAgcmVt b3RlX3Nsb3QtPm5hbWUsCisJCQkJCSAgIExTTl9GT1JNQVRfQVJHUyhsYXRlc3RGbHVzaFB0cikp KTsKKworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJLyogU2VhcmNoIGZvciB0aGUgbmFtZWQgc2xv dCAqLworCWlmICgoc2xvdCA9IFNlYXJjaE5hbWVkUmVwbGljYXRpb25TbG90KHJlbW90ZV9zbG90 LT5uYW1lLCB0cnVlKSkpCisJeworCQlib29sCQlzeW5jZWQ7CisKKwkJU3BpbkxvY2tBY3F1aXJl KCZzbG90LT5tdXRleCk7CisJCXN5bmNlZCA9IHNsb3QtPmRhdGEuc3luY2VkOworCQlTcGluTG9j a1JlbGVhc2UoJnNsb3QtPm11dGV4KTsKKworCQkvKiBVc2VyIGNyZWF0ZWQgc2xvdCB3aXRoIHRo ZSBzYW1lIG5hbWUgZXhpc3RzLCByYWlzZSBFUlJPUi4gKi8KKwkJaWYgKCFzeW5jZWQpCisJCQll cmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFV SVNJVEVfU1RBVEUpLAorCQkJCQllcnJtc2coImV4aXRpbmcgZnJvbSBzbG90IHN5bmNocm9uaXph dGlvbiBiZWNhdXNlIHNhbWUiCisJCQkJCQkgICAiIG5hbWUgc2xvdCBcIiVzXCIgYWxyZWFkeSBl eGlzdHMgb24gdGhlIHN0YW5kYnkiLAorCQkJCQkJICAgcmVtb3RlX3Nsb3QtPm5hbWUpKTsKKwor CQkvKgorCQkgKiBTbG90IGNyZWF0ZWQgYnkgdGhlIHNsb3Qgc3luYyB3b3JrZXIgZXhpc3RzLCBz eW5jIGl0LgorCQkgKgorCQkgKiBJdCBpcyBpbXBvcnRhbnQgdG8gYWNxdWlyZSB0aGUgc2xvdCBo ZXJlIGJlZm9yZSBjaGVja2luZworCQkgKiBpbnZhbGlkYXRpb24uIElmIHdlIGRvbid0IGFjcXVp cmUgdGhlIHNsb3QgZmlyc3QsIHRoZXJlIGNvdWxkIGJlIGEKKwkJICogcmFjZSBjb25kaXRpb24g dGhhdCB0aGUgbG9jYWwgc2xvdCBjb3VsZCBiZSBpbnZhbGlkYXRlZCBqdXN0IGFmdGVyCisJCSAq IGNoZWNraW5nIHRoZSAnaW52YWxpZGF0ZWQnIGZsYWcgaGVyZSBhbmQgd2UgY291bGQgZW5kIHVw CisJCSAqIG92ZXJ3cml0aW5nICdpbnZhbGlkYXRlZCcgZmxhZyB0byByZW1vdGVfc2xvdCdzIHZh bHVlLiBTZWUKKwkJICogSW52YWxpZGF0ZVBvc3NpYmx5T2Jzb2xldGVTbG90KCkgd2hlcmUgaXQg aW52YWxpZGF0ZXMgc2xvdCBkaXJlY3RseQorCQkgKiBpZiB0aGUgc2xvdCBpcyBub3QgYWNxdWly ZWQgYnkgb3RoZXIgcHJvY2Vzc2VzLgorCQkgKi8KKwkJUmVwbGljYXRpb25TbG90QWNxdWlyZShy ZW1vdGVfc2xvdC0+bmFtZSwgdHJ1ZSk7CisKKwkJQXNzZXJ0KHNsb3QgPT0gTXlSZXBsaWNhdGlv blNsb3QpOworCisJCS8qCisJCSAqIENvcHkgdGhlIGludmFsaWRhdGlvbiBjYXVzZSBmcm9tIHJl bW90ZSBvbmx5IGlmIGxvY2FsIHNsb3QgaXMgbm90CisJCSAqIGludmFsaWRhdGVkIGxvY2FsbHks IHdlIGRvbid0IHdhbnQgdG8gb3ZlcndyaXRlIGV4aXN0aW5nIG9uZS4KKwkJICovCisJCWlmIChz bG90LT5kYXRhLmludmFsaWRhdGVkID09IFJTX0lOVkFMX05PTkUpCisJCXsKKwkJCVNwaW5Mb2Nr QWNxdWlyZSgmc2xvdC0+bXV0ZXgpOworCQkJc2xvdC0+ZGF0YS5pbnZhbGlkYXRlZCA9IHJlbW90 ZV9zbG90LT5pbnZhbGlkYXRlZDsKKwkJCVNwaW5Mb2NrUmVsZWFzZSgmc2xvdC0+bXV0ZXgpOwor CisJCQkvKiBNYWtlIHN1cmUgdGhlIGludmFsaWRhdGVkIHN0YXRlIHBlcnNpc3RzIGFjcm9zcyBz ZXJ2ZXIgcmVzdGFydCAqLworCQkJUmVwbGljYXRpb25TbG90TWFya0RpcnR5KCk7CisJCQlSZXBs aWNhdGlvblNsb3RTYXZlKCk7CisJCQlzbG90X3VwZGF0ZWQgPSB0cnVlOworCQl9CisKKwkJLyog U2tpcCB0aGUgc3luYyBvZiBhbiBpbnZhbGlkYXRlZCBzbG90ICovCisJCWlmIChzbG90LT5kYXRh LmludmFsaWRhdGVkICE9IFJTX0lOVkFMX05PTkUpCisJCXsKKwkJCVJlcGxpY2F0aW9uU2xvdFJl bGVhc2UoKTsKKwkJCXJldHVybiBzbG90X3VwZGF0ZWQ7CisJCX0KKworCQkvKiBTbG90IG5vdCBy ZWFkeSB5ZXQsIGxldCdzIGF0dGVtcHQgdG8gbWFrZSBpdCBzeW5jLXJlYWR5IG5vdy4gKi8KKwkJ aWYgKHNsb3QtPmRhdGEucGVyc2lzdGVuY3kgPT0gUlNfVEVNUE9SQVJZKQorCQl7CisJCQlzbG90 X3VwZGF0ZWQgPSB1cGRhdGVfYW5kX3BlcnNpc3Rfc2xvdChyZW1vdGVfc2xvdCwgcmVtb3RlX2Ri aWQpOworCQl9CisKKwkJLyogU2xvdCByZWFkeSBmb3Igc3luYywgc28gc3luYyBpdC4gKi8KKwkJ ZWxzZQorCQl7CisJCQkvKgorCQkJICogU2FuaXR5IGNoZWNrOiBBcyBsb25nIGFzIHRoZSBpbnZh bGlkYXRpb25zIGFyZSBoYW5kbGVkCisJCQkgKiBhcHByb3ByaWF0ZWx5IGFzIGFib3ZlLCB0aGlz IHNob3VsZCBuZXZlciBoYXBwZW4uCisJCQkgKi8KKwkJCWlmIChyZW1vdGVfc2xvdC0+cmVzdGFy dF9sc24gPCBzbG90LT5kYXRhLnJlc3RhcnRfbHNuKQorCQkJCWVsb2coRVJST1IsCisJCQkJCSAi Y2Fubm90IHN5bmNocm9uaXplIGxvY2FsIHNsb3QgXCIlc1wiIExTTiglWC8lWCkiCisJCQkJCSAi IHRvIHJlbW90ZSBzbG90J3MgTFNOKCVYLyVYKSBhcyBzeW5jaHJvbml6YXRpb24iCisJCQkJCSAi IHdvdWxkIG1vdmUgaXQgYmFja3dhcmRzIiwgcmVtb3RlX3Nsb3QtPm5hbWUsCisJCQkJCSBMU05f Rk9STUFUX0FSR1Moc2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbiksCisJCQkJCSBMU05fRk9STUFUX0FS R1MocmVtb3RlX3Nsb3QtPnJlc3RhcnRfbHNuKSk7CisKKwkJCS8qIE1ha2Ugc3VyZSB0aGUgc2xv dCBjaGFuZ2VzIHBlcnNpc3QgYWNyb3NzIHNlcnZlciByZXN0YXJ0ICovCisJCQlpZiAobG9jYWxf c2xvdF91cGRhdGUocmVtb3RlX3Nsb3QsIHJlbW90ZV9kYmlkKSkKKwkJCXsKKwkJCQlzbG90X3Vw ZGF0ZWQgPSB0cnVlOworCQkJCVJlcGxpY2F0aW9uU2xvdE1hcmtEaXJ0eSgpOworCQkJCVJlcGxp Y2F0aW9uU2xvdFNhdmUoKTsKKwkJCX0KKwkJfQorCX0KKwkvKiBPdGhlcndpc2UgY3JlYXRlIHRo ZSBzbG90IGZpcnN0LiAqLworCWVsc2UKKwl7CisJCU5hbWVEYXRhCXBsdWdpbl9uYW1lOworCQlU cmFuc2FjdGlvbklkIHhtaW5faG9yaXpvbiA9IEludmFsaWRUcmFuc2FjdGlvbklkOworCisJCS8q IFNraXAgY3JlYXRpbmcgdGhlIGxvY2FsIHNsb3QgaWYgcmVtb3RlX3Nsb3QgaXMgaW52YWxpZGF0 ZWQgYWxyZWFkeSAqLworCQlpZiAocmVtb3RlX3Nsb3QtPmludmFsaWRhdGVkICE9IFJTX0lOVkFM X05PTkUpCisJCQlyZXR1cm4gZmFsc2U7CisKKwkJUmVwbGljYXRpb25TbG90Q3JlYXRlKHJlbW90 ZV9zbG90LT5uYW1lLCB0cnVlLCBSU19URU1QT1JBUlksCisJCQkJCQkJICByZW1vdGVfc2xvdC0+ dHdvX3BoYXNlLAorCQkJCQkJCSAgcmVtb3RlX3Nsb3QtPmZhaWxvdmVyLAorCQkJCQkJCSAgdHJ1 ZSAvKiBzeW5jZWQgKi8gKTsKKworCQkvKiBGb3Igc2hvcnRlciBsaW5lcy4gKi8KKwkJc2xvdCA9 IE15UmVwbGljYXRpb25TbG90OworCisJCS8qIEF2b2lkIGV4cGVuc2l2ZSBvcGVyYXRpb25zIHdo aWxlIGhvbGRpbmcgYSBzcGlubG9jay4gKi8KKwkJbmFtZXN0cmNweSgmcGx1Z2luX25hbWUsIHJl bW90ZV9zbG90LT5wbHVnaW4pOworCisJCVNwaW5Mb2NrQWNxdWlyZSgmc2xvdC0+bXV0ZXgpOwor CQlzbG90LT5kYXRhLmRhdGFiYXNlID0gcmVtb3RlX2RiaWQ7CisJCXNsb3QtPmRhdGEucGx1Z2lu ID0gcGx1Z2luX25hbWU7CisJCVNwaW5Mb2NrUmVsZWFzZSgmc2xvdC0+bXV0ZXgpOworCisJCXJl c2VydmVfd2FsX2Zvcl9zbG90KHJlbW90ZV9zbG90LT5yZXN0YXJ0X2xzbik7CisKKwkJTFdMb2Nr QWNxdWlyZShQcm9jQXJyYXlMb2NrLCBMV19FWENMVVNJVkUpOworCQl4bWluX2hvcml6b24gPSBH ZXRPbGRlc3RTYWZlRGVjb2RpbmdUcmFuc2FjdGlvbklkKHRydWUpOworCQlTcGluTG9ja0FjcXVp cmUoJnNsb3QtPm11dGV4KTsKKwkJc2xvdC0+ZWZmZWN0aXZlX2NhdGFsb2dfeG1pbiA9IHhtaW5f aG9yaXpvbjsKKwkJc2xvdC0+ZGF0YS5jYXRhbG9nX3htaW4gPSB4bWluX2hvcml6b247CisJCVNw aW5Mb2NrUmVsZWFzZSgmc2xvdC0+bXV0ZXgpOworCQlSZXBsaWNhdGlvblNsb3RzQ29tcHV0ZVJl cXVpcmVkWG1pbih0cnVlKTsKKwkJTFdMb2NrUmVsZWFzZShQcm9jQXJyYXlMb2NrKTsKKworCQko dm9pZCkgdXBkYXRlX2FuZF9wZXJzaXN0X3Nsb3QocmVtb3RlX3Nsb3QsIHJlbW90ZV9kYmlkKTsK KwkJc2xvdF91cGRhdGVkID0gdHJ1ZTsKKwl9CisKKwlSZXBsaWNhdGlvblNsb3RSZWxlYXNlKCk7 CisKKwlyZXR1cm4gc2xvdF91cGRhdGVkOworfQorCisvKgorICogTWFwcyB0aGUgcGdfcmVwbGlj YXRpb25fc2xvdHMuY29uZmxpY3RfcmVhc29uIHRleHQgdmFsdWUgdG8KKyAqIFJlcGxpY2F0aW9u U2xvdEludmFsaWRhdGlvbkNhdXNlIGVudW0gdmFsdWUKKyAqLworc3RhdGljIFJlcGxpY2F0aW9u U2xvdEludmFsaWRhdGlvbkNhdXNlCitnZXRfc2xvdF9pbnZhbGlkYXRpb25fY2F1c2UoY2hhciAq Y29uZmxpY3RfcmVhc29uKQoreworCUFzc2VydChjb25mbGljdF9yZWFzb24pOworCisJaWYgKHN0 cmNtcChjb25mbGljdF9yZWFzb24sIFNMT1RfSU5WQUxfV0FMX1JFTU9WRURfVEVYVCkgPT0gMCkK KwkJcmV0dXJuIFJTX0lOVkFMX1dBTF9SRU1PVkVEOworCWVsc2UgaWYgKHN0cmNtcChjb25mbGlj dF9yZWFzb24sIFNMT1RfSU5WQUxfSE9SSVpPTl9URVhUKSA9PSAwKQorCQlyZXR1cm4gUlNfSU5W QUxfSE9SSVpPTjsKKwllbHNlIGlmIChzdHJjbXAoY29uZmxpY3RfcmVhc29uLCBTTE9UX0lOVkFM X1dBTF9MRVZFTF9URVhUKSA9PSAwKQorCQlyZXR1cm4gUlNfSU5WQUxfV0FMX0xFVkVMOworCWVs c2UKKwkJQXNzZXJ0KDApOworCisJLyogS2VlcCBjb21waWxlciBxdWlldCAqLworCXJldHVybiBS U19JTlZBTF9OT05FOworfQorCisvKgorICogU3luY2hyb25pemUgc2xvdHMuCisgKgorICogR2V0 cyB0aGUgZmFpbG92ZXIgbG9naWNhbCBzbG90cyBpbmZvIGZyb20gdGhlIHByaW1hcnkgc2VydmVy IGFuZCB1cGRhdGVzCisgKiB0aGUgc2xvdHMgbG9jYWxseS4gQ3JlYXRlcyB0aGUgc2xvdHMgaWYg bm90IHByZXNlbnQgb24gdGhlIHN0YW5kYnkuCisgKgorICogUmV0dXJucyBUUlVFIGlmIGFueSBv ZiB0aGUgc2xvdHMgZ2V0cyB1cGRhdGVkIGluIHRoaXMgc3luYy1jeWNsZS4KKyAqLworc3RhdGlj IGJvb2wKK3N5bmNocm9uaXplX3Nsb3RzKFdhbFJlY2VpdmVyQ29ubiAqd3Jjb25uKQoreworI2Rl ZmluZSBTTE9UU1lOQ19DT0xVTU5fQ09VTlQgOQorCU9pZAkJCXNsb3RSb3dbU0xPVFNZTkNfQ09M VU1OX0NPVU5UXSA9IHtURVhUT0lELCBURVhUT0lELCBMU05PSUQsCisJTFNOT0lELCBYSURPSUQs IEJPT0xPSUQsIEJPT0xPSUQsIFRFWFRPSUQsIFRFWFRPSUR9OworCisJV2FsUmN2RXhlY1Jlc3Vs dCAqcmVzOworCVR1cGxlVGFibGVTbG90ICp0dXBzbG90OworCVN0cmluZ0luZm9EYXRhIHM7CisJ TGlzdAkgICAqcmVtb3RlX3Nsb3RfbGlzdCA9IE5JTDsKKwlib29sCQlzb21lX3Nsb3RfdXBkYXRl ZCA9IGZhbHNlOworCVhMb2dSZWNQdHIJbGF0ZXN0V2FsRW5kOworCisJLyoKKwkgKiBUaGUgcHJp bWFyeV9zbG90X25hbWUgaXMgbm90IHNldCB5ZXQgb3IgV0FMcyBub3QgcmVjZWl2ZWQgeWV0Lgor CSAqIFN5bmNocm9uaXphdGlvbiBpcyBub3QgcG9zc2libGUgaWYgdGhlIHdhbHJlY2VpdmVyIGlz IG5vdCBzdGFydGVkLgorCSAqLworCWxhdGVzdFdhbEVuZCA9IEdldFdhbFJjdkxhdGVzdFdhbEVu ZCgpOworCVNwaW5Mb2NrQWNxdWlyZSgmV2FsUmN2LT5tdXRleCk7CisJaWYgKChXYWxSY3YtPnNs b3RuYW1lWzBdID09ICdcMCcpIHx8CisJCVhMb2dSZWNQdHJJc0ludmFsaWQobGF0ZXN0V2FsRW5k KSkKKwl7CisJCVNwaW5Mb2NrUmVsZWFzZSgmV2FsUmN2LT5tdXRleCk7CisJCXJldHVybiBmYWxz ZTsKKwl9CisJU3BpbkxvY2tSZWxlYXNlKCZXYWxSY3YtPm11dGV4KTsKKworCS8qIFRoZSBzeXNj YWNoZSBhY2Nlc3MgaW4gd2FscmN2X2V4ZWMoKSBuZWVkcyBhIHRyYW5zYWN0aW9uIGVudi4gKi8K KwlTdGFydFRyYW5zYWN0aW9uQ29tbWFuZCgpOworCisJaW5pdFN0cmluZ0luZm8oJnMpOworCisJ LyogQ29uc3RydWN0IHF1ZXJ5IHRvIGZldGNoIHNsb3RzIHdpdGggZmFpbG92ZXIgZW5hYmxlZC4g Ki8KKwlhcHBlbmRTdHJpbmdJbmZvKCZzLAorCQkJCQkgIlNFTEVDVCBzbG90X25hbWUsIHBsdWdp biwgY29uZmlybWVkX2ZsdXNoX2xzbiwiCisJCQkJCSAiIHJlc3RhcnRfbHNuLCBjYXRhbG9nX3ht aW4sIHR3b19waGFzZSwgZmFpbG92ZXIsIgorCQkJCQkgIiBkYXRhYmFzZSwgY29uZmxpY3RfcmVh c29uIgorCQkJCQkgIiBGUk9NIHBnX2NhdGFsb2cucGdfcmVwbGljYXRpb25fc2xvdHMiCisJCQkJ CSAiIFdIRVJFIGZhaWxvdmVyIGFuZCBOT1QgdGVtcG9yYXJ5Iik7CisKKwkvKiBFeGVjdXRlIHRo ZSBxdWVyeSAqLworCXJlcyA9IHdhbHJjdl9leGVjKHdyY29ubiwgcy5kYXRhLCBTTE9UU1lOQ19D T0xVTU5fQ09VTlQsIHNsb3RSb3cpOworCXBmcmVlKHMuZGF0YSk7CisKKwlpZiAocmVzLT5zdGF0 dXMgIT0gV0FMUkNWX09LX1RVUExFUykKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJtc2coImNv dWxkIG5vdCBmZXRjaCBmYWlsb3ZlciBsb2dpY2FsIHNsb3RzIGluZm8gZnJvbSB0aGUgcHJpbWFy eSBzZXJ2ZXI6ICVzIiwKKwkJCQkJICAgcmVzLT5lcnIpKTsKKworCS8qIENvbnN0cnVjdCB0aGUg cmVtb3RlX3Nsb3QgdHVwbGUgYW5kIHN5bmNocm9uaXplIGVhY2ggc2xvdCBsb2NhbGx5ICovCisJ dHVwc2xvdCA9IE1ha2VTaW5nbGVUdXBsZVRhYmxlU2xvdChyZXMtPnR1cGxlZGVzYywgJlRUU09w c01pbmltYWxUdXBsZSk7CisJd2hpbGUgKHR1cGxlc3RvcmVfZ2V0dHVwbGVzbG90KHJlcy0+dHVw bGVzdG9yZSwgdHJ1ZSwgZmFsc2UsIHR1cHNsb3QpKQorCXsKKwkJYm9vbAkJaXNudWxsOworCQlS ZW1vdGVTbG90ICpyZW1vdGVfc2xvdCA9IHBhbGxvYzAoc2l6ZW9mKFJlbW90ZVNsb3QpKTsKKwkJ RGF0dW0JCWQ7CisJCWludAkJCWNvbCA9IDA7CisKKwkJcmVtb3RlX3Nsb3QtPm5hbWUgPSBUZXh0 RGF0dW1HZXRDU3RyaW5nKHNsb3RfZ2V0YXR0cih0dXBzbG90LCArK2NvbCwKKwkJCQkJCQkJCQkJ CQkJCSAmaXNudWxsKSk7CisJCUFzc2VydCghaXNudWxsKTsKKworCQlyZW1vdGVfc2xvdC0+cGx1 Z2luID0gVGV4dERhdHVtR2V0Q1N0cmluZyhzbG90X2dldGF0dHIodHVwc2xvdCwgKytjb2wsCisJ CQkJCQkJCQkJCQkJCQkgICAmaXNudWxsKSk7CisJCUFzc2VydCghaXNudWxsKTsKKworCQkvKgor CQkgKiBJdCBpcyBwb3NzaWJsZSB0byBnZXQgbnVsbCB2YWx1ZXMgZm9yIExTTiBhbmQgWG1pbiBp ZiBzbG90IGlzCisJCSAqIGludmFsaWRhdGVkIG9uIHRoZSBwcmltYXJ5IHNlcnZlciwgc28gaGFu ZGxlIGFjY29yZGluZ2x5LgorCQkgKi8KKwkJZCA9IHNsb3RfZ2V0YXR0cih0dXBzbG90LCArK2Nv bCwgJmlzbnVsbCk7CisJCXJlbW90ZV9zbG90LT5jb25maXJtZWRfbHNuID0gaXNudWxsID8gSW52 YWxpZFhMb2dSZWNQdHIgOgorCQkJRGF0dW1HZXRMU04oZCk7CisKKwkJZCA9IHNsb3RfZ2V0YXR0 cih0dXBzbG90LCArK2NvbCwgJmlzbnVsbCk7CisJCXJlbW90ZV9zbG90LT5yZXN0YXJ0X2xzbiA9 IGlzbnVsbCA/IEludmFsaWRYTG9nUmVjUHRyIDogRGF0dW1HZXRMU04oZCk7CisKKwkJZCA9IHNs b3RfZ2V0YXR0cih0dXBzbG90LCArK2NvbCwgJmlzbnVsbCk7CisJCXJlbW90ZV9zbG90LT5jYXRh bG9nX3htaW4gPSBpc251bGwgPyBJbnZhbGlkVHJhbnNhY3Rpb25JZCA6CisJCQlEYXR1bUdldFRy YW5zYWN0aW9uSWQoZCk7CisKKwkJcmVtb3RlX3Nsb3QtPnR3b19waGFzZSA9IERhdHVtR2V0Qm9v bChzbG90X2dldGF0dHIodHVwc2xvdCwgKytjb2wsCisJCQkJCQkJCQkJCQkJCSAgICZpc251bGwp KTsKKwkJQXNzZXJ0KCFpc251bGwpOworCisJCXJlbW90ZV9zbG90LT5mYWlsb3ZlciA9IERhdHVt R2V0Qm9vbChzbG90X2dldGF0dHIodHVwc2xvdCwgKytjb2wsCisJCQkJCQkJCQkJCQkJCSAgJmlz bnVsbCkpOworCQlBc3NlcnQoIWlzbnVsbCk7CisKKwkJcmVtb3RlX3Nsb3QtPmRhdGFiYXNlID0g VGV4dERhdHVtR2V0Q1N0cmluZyhzbG90X2dldGF0dHIodHVwc2xvdCwKKwkJCQkJCQkJCQkJCQkJ CQkgKytjb2wsICZpc251bGwpKTsKKwkJQXNzZXJ0KCFpc251bGwpOworCisJCWQgPSBzbG90X2dl dGF0dHIodHVwc2xvdCwgKytjb2wsICZpc251bGwpOworCQlyZW1vdGVfc2xvdC0+aW52YWxpZGF0 ZWQgPSBpc251bGwgPyBSU19JTlZBTF9OT05FIDoKKwkJCWdldF9zbG90X2ludmFsaWRhdGlvbl9j YXVzZShUZXh0RGF0dW1HZXRDU3RyaW5nKGQpKTsKKworCQkvKiBTYW5pdHkgY2hlY2sgKi8KKwkJ QXNzZXJ0KGNvbCA9PSBTTE9UU1lOQ19DT0xVTU5fQ09VTlQpOworCisJCS8qIENyZWF0ZSBsaXN0 IG9mIHJlbW90ZSBzbG90cyAqLworCQlyZW1vdGVfc2xvdF9saXN0ID0gbGFwcGVuZChyZW1vdGVf c2xvdF9saXN0LCByZW1vdGVfc2xvdCk7CisKKwkJRXhlY0NsZWFyVHVwbGUodHVwc2xvdCk7CisJ fQorCisJLyogRHJvcCBsb2NhbCBzbG90cyB0aGF0IG5vIGxvbmdlciBuZWVkIHRvIGJlIHN5bmNl ZC4gKi8KKwlkcm9wX29ic29sZXRlX3Nsb3RzKHJlbW90ZV9zbG90X2xpc3QpOworCisJLyogTm93 IHN5bmMgdGhlIHNsb3RzIGxvY2FsbHkgKi8KKwlmb3JlYWNoX3B0cihSZW1vdGVTbG90LCByZW1v dGVfc2xvdCwgcmVtb3RlX3Nsb3RfbGlzdCkKKwl7CisJCU9pZAkJCXJlbW90ZV9kYmlkID0gZ2V0 X2RhdGFiYXNlX29pZChyZW1vdGVfc2xvdC0+ZGF0YWJhc2UsIGZhbHNlKTsKKworCQkvKgorCQkg KiBVc2Ugc2hhcmVkIGxvY2sgdG8gcHJldmVudCBhIGNvbmZsaWN0IHdpdGgKKwkJICogUmVwbGlj YXRpb25TbG90c0Ryb3BEQlNsb3RzKCksIHRyeWluZyB0byBkcm9wIHRoZSBzYW1lIHNsb3Qgd2hp bGUKKwkJICogZHJvcC1kYXRhYmFzZSBvcGVyYXRpb24uCisJCSAqLworCQlMb2NrU2hhcmVkT2Jq ZWN0KERhdGFiYXNlUmVsYXRpb25JZCwgcmVtb3RlX2RiaWQsIDAsIEFjY2Vzc1NoYXJlTG9jayk7 CisKKwkJc29tZV9zbG90X3VwZGF0ZWQgfD0gc3luY2hyb25pemVfb25lX3Nsb3QocmVtb3RlX3Ns b3QsIHJlbW90ZV9kYmlkKTsKKworCQlVbmxvY2tTaGFyZWRPYmplY3QoRGF0YWJhc2VSZWxhdGlv bklkLCByZW1vdGVfZGJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKwl9CisKKwkvKiBXZSBhcmUg ZG9uZSwgZnJlZSByZW1vdGVfc2xvdF9saXN0IGVsZW1lbnRzICovCisJbGlzdF9mcmVlX2RlZXAo cmVtb3RlX3Nsb3RfbGlzdCk7CisKKwl3YWxyY3ZfY2xlYXJfcmVzdWx0KHJlcyk7CisKKwlDb21t aXRUcmFuc2FjdGlvbkNvbW1hbmQoKTsKKworCXJldHVybiBzb21lX3Nsb3RfdXBkYXRlZDsKK30K KworLyoKKyAqIENoZWNrcyB0aGUgcHJpbWFyeSBzZXJ2ZXIgaW5mby4KKyAqCisgKiBVc2luZyB0 aGUgc3BlY2lmaWVkIHByaW1hcnkgc2VydmVyIGNvbm5lY3Rpb24sIGNoZWNrIHdoZXRoZXIgd2Ug YXJlIGEKKyAqIGNhc2NhZGluZyBzdGFuZGJ5LiBJdCBhbHNvIHZhbGlkYXRlcyBwcmltYXJ5X3Ns b3RfbmFtZSBmb3Igbm9uLWNhc2NhZGluZworICogc3RhbmRieXMuCisgKi8KK3N0YXRpYyB2b2lk CitjaGVja19wcmltYXJ5X2luZm8oV2FsUmVjZWl2ZXJDb25uICp3cmNvbm4sIGJvb2wgKmFtX2Nh c2NhZGluZ19zdGFuZGJ5KQoreworI2RlZmluZSBQUklNQVJZX0lORk9fT1VUUFVUX0NPTF9DT1VO VCAyCisJV2FsUmN2RXhlY1Jlc3VsdCAqcmVzOworCU9pZAkJCXNsb3RSb3dbUFJJTUFSWV9JTkZP X09VVFBVVF9DT0xfQ09VTlRdID0ge0JPT0xPSUQsIEJPT0xPSUR9OworCVN0cmluZ0luZm9EYXRh IGNtZDsKKwlib29sCQlpc251bGw7CisJVHVwbGVUYWJsZVNsb3QgKnR1cHNsb3Q7CisJYm9vbAkJ dmFsaWQ7CisJYm9vbAkJcmVtb3RlX2luX3JlY292ZXJ5OworCisJLyogVGhlIHN5c2NhY2hlIGFj Y2VzcyBpbiB3YWxyY3ZfZXhlYygpIG5lZWRzIGEgdHJhbnNhY3Rpb24gZW52LiAqLworCVN0YXJ0 VHJhbnNhY3Rpb25Db21tYW5kKCk7CisKKwlBc3NlcnQoYW1fY2FzY2FkaW5nX3N0YW5kYnkgIT0g TlVMTCk7CisKKwkqYW1fY2FzY2FkaW5nX3N0YW5kYnkgPSBmYWxzZTsJLyogb3ZlcndyaXR0ZW4g bGF0ZXIgaWYgY2FzY2FkaW5nICovCisKKwlpbml0U3RyaW5nSW5mbygmY21kKTsKKwlhcHBlbmRT dHJpbmdJbmZvKCZjbWQsCisJCQkJCSAiU0VMRUNUIHBnX2lzX2luX3JlY292ZXJ5KCksIGNvdW50 KCopID0gMSIKKwkJCQkJICIgRlJPTSBwZ19yZXBsaWNhdGlvbl9zbG90cyIKKwkJCQkJICIgV0hF UkUgc2xvdF90eXBlPSdwaHlzaWNhbCcgQU5EIHNsb3RfbmFtZT0lcyIsCisJCQkJCSBxdW90ZV9s aXRlcmFsX2NzdHIoUHJpbWFyeVNsb3ROYW1lKSk7CisKKwlyZXMgPSB3YWxyY3ZfZXhlYyh3cmNv bm4sIGNtZC5kYXRhLCBQUklNQVJZX0lORk9fT1VUUFVUX0NPTF9DT1VOVCwgc2xvdFJvdyk7CisJ cGZyZWUoY21kLmRhdGEpOworCisJaWYgKHJlcy0+c3RhdHVzICE9IFdBTFJDVl9PS19UVVBMRVMp CisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJybXNnKCJjb3VsZCBub3QgZmV0Y2ggcHJpbWFyeV9z bG90X25hbWUgXCIlc1wiIGluZm8gZnJvbSB0aGUgcHJpbWFyeSBzZXJ2ZXI6ICVzIiwKKwkJCQkJ ICAgUHJpbWFyeVNsb3ROYW1lLCByZXMtPmVyciksCisJCQkJZXJyaGludCgiQ2hlY2sgaWYgXCJw cmltYXJ5X3Nsb3RfbmFtZVwiIGlzIGNvbmZpZ3VyZWQgY29ycmVjdGx5LiIpKTsKKworCXR1cHNs b3QgPSBNYWtlU2luZ2xlVHVwbGVUYWJsZVNsb3QocmVzLT50dXBsZWRlc2MsICZUVFNPcHNNaW5p bWFsVHVwbGUpOworCWlmICghdHVwbGVzdG9yZV9nZXR0dXBsZXNsb3QocmVzLT50dXBsZXN0b3Jl LCB0cnVlLCBmYWxzZSwgdHVwc2xvdCkpCisJCWVsb2coRVJST1IsCisJCQkgImZhaWxlZCB0byBm ZXRjaCB0dXBsZSBmb3IgdGhlIHByaW1hcnkgc2VydmVyIHNsb3Qgc3BlY2lmaWVkIGJ5IFwicHJp bWFyeV9zbG90X25hbWVcIiIpOworCisJcmVtb3RlX2luX3JlY292ZXJ5ID0gRGF0dW1HZXRCb29s KHNsb3RfZ2V0YXR0cih0dXBzbG90LCAxLCAmaXNudWxsKSk7CisJQXNzZXJ0KCFpc251bGwpOwor CisJaWYgKHJlbW90ZV9pbl9yZWNvdmVyeSkKKwl7CisJCS8qIE5vIG5lZWQgdG8gY2hlY2sgZnVy dGhlciwganVzdCBzZXQgYW1fY2FzY2FkaW5nX3N0YW5kYnkgdG8gdHJ1ZSAqLworCQkqYW1fY2Fz Y2FkaW5nX3N0YW5kYnkgPSB0cnVlOworCX0KKwllbHNlCisJeworCQkvKiBXZSBhcmUgYSBub3Jt YWwgc3RhbmRieSAqLworCQl2YWxpZCA9IERhdHVtR2V0Qm9vbChzbG90X2dldGF0dHIodHVwc2xv dCwgMiwgJmlzbnVsbCkpOworCQlBc3NlcnQoIWlzbnVsbCk7CisKKwkJaWYgKCF2YWxpZCkKKwkJ CWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9W QUxVRSksCisJCQkJCWVycm1zZygiZXhpdGluZyBmcm9tIHNsb3Qgc3luY2hyb25pemF0aW9uIGR1 ZSB0byBiYWQgY29uZmlndXJhdGlvbiIpLAorCQkJLyogdHJhbnNsYXRvcjogc2Vjb25kICVzIGlz IGEgR1VDIHZhcmlhYmxlIG5hbWUgKi8KKwkJCQkJZXJyZGV0YWlsKCJUaGUgcHJpbWFyeSBzZXJ2 ZXIgc2xvdCBcIiVzXCIgc3BlY2lmaWVkIGJ5IgorCQkJCQkJCSAgIiBcIiVzXCIgaXMgbm90IHZh bGlkLiIsCisJCQkJCQkJICBQcmltYXJ5U2xvdE5hbWUsICJwcmltYXJ5X3Nsb3RfbmFtZSIpKTsK Kwl9CisKKwlFeGVjQ2xlYXJUdXBsZSh0dXBzbG90KTsKKwl3YWxyY3ZfY2xlYXJfcmVzdWx0KHJl cyk7CisJQ29tbWl0VHJhbnNhY3Rpb25Db21tYW5kKCk7Cit9CisKKy8qCisgKiBDaGVjayB0aGF0 IGFsbCBuZWNlc3NhcnkgR1VDcyBmb3Igc2xvdCBzeW5jaHJvbml6YXRpb24gYXJlIHNldAorICog YXBwcm9wcmlhdGVseS4gSWYgbm90LCByYWlzZSBhbiBFUlJPUi4KKyAqCisgKiBJZiBhbGwgY2hl Y2tzIHBhc3MsIGV4dHJhY3RzIHRoZSBkYm5hbWUgZnJvbSB0aGUgcHJpbWFyeV9jb25uaW5mbyBH VUMgYW5kCisgKiByZXR1cm5zIGl0LgorICovCitzdGF0aWMgY2hhciAqCit2YWxpZGF0ZV9wYXJh bWV0ZXJzX2FuZF9nZXRfZGJuYW1lKHZvaWQpCit7CisJY2hhcgkgICAqZGJuYW1lOworCisJLyog U2FuaXR5IGNoZWNrLiAqLworCUFzc2VydChlbmFibGVfc3luY3Nsb3QpOworCisJLyoKKwkgKiBB IHBoeXNpY2FsIHJlcGxpY2F0aW9uIHNsb3QocHJpbWFyeV9zbG90X25hbWUpIGlzIHJlcXVpcmVk IG9uIHRoZQorCSAqIHByaW1hcnkgdG8gZW5zdXJlIHRoYXQgdGhlIHJvd3MgbmVlZGVkIGJ5IHRo ZSBzdGFuZGJ5IGFyZSBub3QgcmVtb3ZlZAorCSAqIGFmdGVyIHJlc3RhcnRpbmcsIHNvIHRoYXQg dGhlIHN5bmNocm9uaXplZCBzbG90IG9uIHRoZSBzdGFuZGJ5IHdpbGwgbm90CisJICogYmUgaW52 YWxpZGF0ZWQuCisJICovCisJaWYgKFByaW1hcnlTbG90TmFtZSA9PSBOVUxMIHx8IHN0cmNtcChQ cmltYXJ5U2xvdE5hbWUsICIiKSA9PSAwKQorCQllcmVwb3J0KEVSUk9SLAorCQkvKiB0cmFuc2xh dG9yOiAlcyBpcyBhIEdVQyB2YXJpYWJsZSBuYW1lICovCisJCQkJZXJyY29kZShFUlJDT0RFX0lO VkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQllcnJtc2coImV4aXRpbmcgZnJvbSBzbG90IHN5 bmNocm9uaXphdGlvbiBkdWUgdG8gYmFkIGNvbmZpZ3VyYXRpb24iKSwKKwkJCQllcnJoaW50KCJc IiVzXCIgbXVzdCBiZSBkZWZpbmVkLiIsICJwcmltYXJ5X3Nsb3RfbmFtZSIpKTsKKworCS8qCisJ ICogaG90X3N0YW5kYnlfZmVlZGJhY2sgbXVzdCBiZSBlbmFibGVkIHRvIGNvb3BlcmF0ZSB3aXRo IHRoZSBwaHlzaWNhbAorCSAqIHJlcGxpY2F0aW9uIHNsb3QsIHdoaWNoIGFsbG93cyBpbmZvcm1p bmcgdGhlIHByaW1hcnkgYWJvdXQgdGhlIHhtaW4gYW5kCisJICogY2F0YWxvZ194bWluIHZhbHVl cyBvbiB0aGUgc3RhbmRieS4KKwkgKi8KKwlpZiAoIWhvdF9zdGFuZGJ5X2ZlZWRiYWNrKQorCQll cmVwb3J0KEVSUk9SLAorCQkvKiB0cmFuc2xhdG9yOiAlcyBpcyBhIEdVQyB2YXJpYWJsZSBuYW1l ICovCisJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQll cnJtc2coImV4aXRpbmcgZnJvbSBzbG90IHN5bmNocm9uaXphdGlvbiBkdWUgdG8gYmFkIGNvbmZp Z3VyYXRpb24iKSwKKwkJCQllcnJoaW50KCJcIiVzXCIgbXVzdCBiZSBlbmFibGVkLiIsICJob3Rf c3RhbmRieV9mZWVkYmFjayIpKTsKKworCS8qCisJICogTG9naWNhbCBkZWNvZGluZyByZXF1aXJl cyB3YWxfbGV2ZWwgPj0gbG9naWNhbCBhbmQgd2UgY3VycmVudGx5IG9ubHkKKwkgKiBzeW5jaHJv bml6ZSBsb2dpY2FsIHNsb3RzLgorCSAqLworCWlmICh3YWxfbGV2ZWwgPCBXQUxfTEVWRUxfTE9H SUNBTCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJLyogdHJhbnNsYXRvcjogJXMgaXMgYSBHVUMgdmFy aWFibGUgbmFtZSAqLworCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxV RSksCisJCQkJZXJybXNnKCJleGl0aW5nIGZyb20gc2xvdCBzeW5jaHJvbml6YXRpb24gZHVlIHRv IGJhZCBjb25maWd1cmF0aW9uIiksCisJCQkJZXJyaGludCgiXCJ3YWxfbGV2ZWxcIiBtdXN0IGJl ID49IGxvZ2ljYWwuIikpOworCisJLyoKKwkgKiBUaGUgcHJpbWFyeV9jb25uaW5mbyBpcyByZXF1 aXJlZCB0byBtYWtlIGNvbm5lY3Rpb24gdG8gcHJpbWFyeSBmb3IKKwkgKiBnZXR0aW5nIHNsb3Rz IGluZm9ybWF0aW9uLgorCSAqLworCWlmIChQcmltYXJ5Q29ubkluZm8gPT0gTlVMTCB8fCBzdHJj bXAoUHJpbWFyeUNvbm5JbmZvLCAiIikgPT0gMCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJLyogdHJh bnNsYXRvcjogJXMgaXMgYSBHVUMgdmFyaWFibGUgbmFtZSAqLworCQkJCWVycmNvZGUoRVJSQ09E RV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJZXJybXNnKCJleGl0aW5nIGZyb20gc2xv dCBzeW5jaHJvbml6YXRpb24gZHVlIHRvIGJhZCBjb25maWd1cmF0aW9uIiksCisJCQkJZXJyaGlu dCgiXCIlc1wiIG11c3QgYmUgZGVmaW5lZC4iLCAicHJpbWFyeV9jb25uaW5mbyIpKTsKKworCS8q CisJICogVGhlIHNsb3Qgc3luYyB3b3JrZXIgbmVlZHMgYSBkYXRhYmFzZSBjb25uZWN0aW9uIGZv ciB3YWxyY3ZfZXhlYyB0bworCSAqIHdvcmsuCisJICovCisJZGJuYW1lID0gd2FscmN2X2dldF9k Ym5hbWVfZnJvbV9jb25uaW5mbyhQcmltYXJ5Q29ubkluZm8pOworCWlmIChkYm5hbWUgPT0gTlVM TCkKKwkJZXJlcG9ydChFUlJPUiwKKworCQkvKgorCQkgKiB0cmFuc2xhdG9yOiAnZGJuYW1lJyBp cyBhIHNwZWNpZmljIG9wdGlvbjsgJXMgaXMgYSBHVUMgdmFyaWFibGUKKwkJICogbmFtZQorCQkg Ki8KKwkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCWVy cm1zZygiZXhpdGluZyBmcm9tIHNsb3Qgc3luY2hyb25pemF0aW9uIGR1ZSB0byBiYWQgY29uZmln dXJhdGlvbiIpLAorCQkJCWVycmhpbnQoIidkYm5hbWUnIG11c3QgYmUgc3BlY2lmaWVkIGluIFwi JXNcIi4iLCAicHJpbWFyeV9jb25uaW5mbyIpKTsKKworCXJldHVybiBkYm5hbWU7Cit9CisKKy8q CisgKiBSZS1yZWFkIHRoZSBjb25maWcgZmlsZS4KKyAqCisgKiBJZiBhbnkgb2YgdGhlIHNsb3Qg c3luYyBHVUNzIGhhdmUgY2hhbmdlZCwgZXhpdCB0aGUgd29ya2VyIGFuZAorICogbGV0IGl0IGdl dCByZXN0YXJ0ZWQgYnkgdGhlIHBvc3RtYXN0ZXIuCisgKi8KK3N0YXRpYyB2b2lkCitzbG90c3lu Y19yZXJlYWRfY29uZmlnKHZvaWQpCit7CisJY2hhcgkgICAqb2xkX3ByaW1hcnlfY29ubmluZm8g PSBwc3RyZHVwKFByaW1hcnlDb25uSW5mbyk7CisJY2hhcgkgICAqb2xkX3ByaW1hcnlfc2xvdG5h bWUgPSBwc3RyZHVwKFByaW1hcnlTbG90TmFtZSk7CisJYm9vbAkJb2xkX2hvdF9zdGFuZGJ5X2Zl ZWRiYWNrID0gaG90X3N0YW5kYnlfZmVlZGJhY2s7CisJYm9vbAkJY29ubmluZm9fY2hhbmdlZDsK Kwlib29sCQlwcmltYXJ5X3Nsb3RuYW1lX2NoYW5nZWQ7CisKKwlDb25maWdSZWxvYWRQZW5kaW5n ID0gZmFsc2U7CisJUHJvY2Vzc0NvbmZpZ0ZpbGUoUEdDX1NJR0hVUCk7CisKKwljb25uaW5mb19j aGFuZ2VkID0gc3RyY21wKG9sZF9wcmltYXJ5X2Nvbm5pbmZvLCBQcmltYXJ5Q29ubkluZm8pICE9 IDA7CisJcHJpbWFyeV9zbG90bmFtZV9jaGFuZ2VkID0gc3RyY21wKG9sZF9wcmltYXJ5X3Nsb3Ru YW1lLCBQcmltYXJ5U2xvdE5hbWUpICE9IDA7CisKKwlpZiAoY29ubmluZm9fY2hhbmdlZCB8fAor CQlwcmltYXJ5X3Nsb3RuYW1lX2NoYW5nZWQgfHwKKwkJKG9sZF9ob3Rfc3RhbmRieV9mZWVkYmFj ayAhPSBob3Rfc3RhbmRieV9mZWVkYmFjaykpCisJeworCQllcmVwb3J0KExPRywKKwkJCQllcnJt c2coInNsb3Qgc3luYyB3b3JrZXIgd2lsbCByZXN0YXJ0IGJlY2F1c2Ugb2YgYSBwYXJhbWV0ZXIg Y2hhbmdlIikpOworCisJCS8qIFRoZSBleGl0IGNvZGUgMSB3aWxsIG1ha2UgcG9zdG1hc3RlciBy ZXN0YXJ0IHRoaXMgd29ya2VyICovCisJCXByb2NfZXhpdCgxKTsKKwl9CisKKwlwZnJlZShvbGRf cHJpbWFyeV9jb25uaW5mbyk7CisJcGZyZWUob2xkX3ByaW1hcnlfc2xvdG5hbWUpOworfQorCisv KgorICogSW50ZXJydXB0IGhhbmRsZXIgZm9yIG1haW4gbG9vcCBvZiBzbG90IHN5bmMgd29ya2Vy LgorICovCitzdGF0aWMgdm9pZAorUHJvY2Vzc1Nsb3RTeW5jSW50ZXJydXB0cyhXYWxSZWNlaXZl ckNvbm4gKndyY29ubikKK3sKKwlDSEVDS19GT1JfSU5URVJSVVBUUygpOworCisJaWYgKFNodXRk b3duUmVxdWVzdFBlbmRpbmcpCisJeworCQl3YWxyY3ZfZGlzY29ubmVjdCh3cmNvbm4pOworCQll cmVwb3J0KExPRywKKwkJCQllcnJtc2coInJlcGxpY2F0aW9uIHNsb3Qgc3luYyB3b3JrZXIgaXMg c2h1dHRpbmcgZG93biBvbiByZWNlaXZpbmcgU0lHSU5UIikpOworCQlwcm9jX2V4aXQoMCk7CisJ fQorCisJaWYgKENvbmZpZ1JlbG9hZFBlbmRpbmcpCisJCXNsb3RzeW5jX3JlcmVhZF9jb25maWco KTsKK30KKworLyoKKyAqIENsZWFudXAgZnVuY3Rpb24gZm9yIHNsb3RzeW5jIHdvcmtlci4KKyAq CisgKiBDYWxsZWQgb24gc2xvdHN5bmMgd29ya2VyIGV4aXQuCisgKi8KK3N0YXRpYyB2b2lkCitz bG90c3luY193b3JrZXJfb25leGl0KGludCBjb2RlLCBEYXR1bSBhcmcpCit7CisJU3BpbkxvY2tB Y3F1aXJlKCZTbG90U3luY1dvcmtlci0+bXV0ZXgpOworCVNsb3RTeW5jV29ya2VyLT5waWQgPSBJ bnZhbGlkUGlkOworCVNwaW5Mb2NrUmVsZWFzZSgmU2xvdFN5bmNXb3JrZXItPm11dGV4KTsKK30K KworLyoKKyAqIFNsZWVwIGZvciBsb25nIGVub3VnaCB0aGF0IHdlIGJlbGlldmUgaXQncyBsaWtl bHkgdGhhdCB0aGUgc2xvdHMgb24gcHJpbWFyeQorICogZ2V0IHVwZGF0ZWQuCisgKgorICogSWYg dGhlcmUgaXMgbm8gc2xvdCBhY3Rpdml0eSB0aGUgd2FpdCB0aW1lIGJldHdlZW4gc3luYy1jeWNs ZXMgd2lsbCBkb3VibGUKKyAqICh0byBhIG1heGltdW0gb2YgMzBzKS4gSWYgdGhlcmUgaXMgc29t ZSBzbG90IGFjdGl2aXR5IHRoZSB3YWl0IHRpbWUgYmV0d2VlbgorICogc3luYy1jeWNsZXMgaXMg cmVzZXQgdG8gdGhlIG1pbmltdW0gKDIwMG1zKS4KKyAqLworc3RhdGljIHZvaWQKK3dhaXRfZm9y X3Nsb3RfYWN0aXZpdHkoYm9vbCBzb21lX3Nsb3RfdXBkYXRlZCwgYm9vbCBhbV9jYXNjYWRpbmdf c3RhbmRieSkKK3sKKwlpbnQJCQlyYzsKKworCWlmIChhbV9jYXNjYWRpbmdfc3RhbmRieSkKKwl7 CisJCS8qCisJCSAqIFNsb3Qgc3luY2hyb25pemF0aW9uIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9y dGVkIG9uIGNhc2NhZGluZworCQkgKiBzdGFuZGJ5LiBTbyBpZiB3ZSBhcmUgb24gdGhlIGNhc2Nh ZGluZyBzdGFuZGJ5LCB3ZSB3aWxsIHNraXAgdGhlCisJCSAqIHN5bmMgYW5kIHRha2UgYSBsb25n ZXIgbmFwIGJlZm9yZSB3ZSBjaGVjayBhZ2FpbiB3aGV0aGVyIHdlIGFyZQorCQkgKiBzdGlsbCBj YXNjYWRpbmcgc3RhbmRieSBvciBub3QuCisJCSAqLworCQlzbGVlcF9tcyA9IE1BWF9XT1JLRVJf TkFQVElNRV9NUzsKKwl9CisJZWxzZSBpZiAoIXNvbWVfc2xvdF91cGRhdGVkKQorCXsKKwkJLyoK KwkJICogTm8gc2xvdHMgd2VyZSB1cGRhdGVkLCBzbyBkb3VibGUgdGhlIHNsZWVwIHRpbWUsIGJ1 dCBub3QgYmV5b25kIHRoZQorCQkgKiBtYXhpbXVtIGFsbG93YWJsZSB2YWx1ZS4KKwkJICovCisJ CXNsZWVwX21zID0gTWluKHNsZWVwX21zICogMiwgTUFYX1dPUktFUl9OQVBUSU1FX01TKTsKKwl9 CisJZWxzZQorCXsKKwkJLyoKKwkJICogU29tZSBzbG90cyB3ZXJlIHVwZGF0ZWQgc2luY2UgdGhl IGxhc3Qgc2xlZXAsIHNvIHJlc2V0IHRoZSBzbGVlcAorCQkgKiB0aW1lLgorCQkgKi8KKwkJc2xl ZXBfbXMgPSBNSU5fV09SS0VSX05BUFRJTUVfTVM7CisJfQorCisJcmMgPSBXYWl0TGF0Y2goTXlM YXRjaCwKKwkJCQkgICBXTF9MQVRDSF9TRVQgfCBXTF9USU1FT1VUIHwgV0xfRVhJVF9PTl9QTV9E RUFUSCwKKwkJCQkgICBzbGVlcF9tcywKKwkJCQkgICBXQUlUX0VWRU5UX1JFUExfU0xPVFNZTkNf TUFJTik7CisKKwlpZiAocmMgJiBXTF9MQVRDSF9TRVQpCisJCVJlc2V0TGF0Y2goTXlMYXRjaCk7 Cit9CisKKy8qCisgKiBUaGUgbWFpbiBsb29wIG9mIG91ciB3b3JrZXIgcHJvY2Vzcy4KKyAqCisg KiBJdCBjb25uZWN0cyB0byB0aGUgcHJpbWFyeSBzZXJ2ZXIsIGZldGNoZXMgbG9naWNhbCBmYWls b3ZlciBzbG90cworICogaW5mb3JtYXRpb24gcGVyaW9kaWNhbGx5IGluIG9yZGVyIHRvIGNyZWF0 ZSBhbmQgc3luYyB0aGUgc2xvdHMuCisgKi8KK3ZvaWQKK1JlcGxTbG90U3luY1dvcmtlck1haW4o RGF0dW0gbWFpbl9hcmcpCit7CisJV2FsUmVjZWl2ZXJDb25uICp3cmNvbm4gPSBOVUxMOworCWNo YXIJICAgKmRibmFtZTsKKwlib29sCQlhbV9jYXNjYWRpbmdfc3RhbmRieTsKKwljaGFyCSAgICpl cnI7CisKKwllcmVwb3J0KExPRywgZXJybXNnKCJyZXBsaWNhdGlvbiBzbG90IHN5bmMgd29ya2Vy IHN0YXJ0ZWQiKSk7CisKKwlvbl9zaG1lbV9leGl0KHNsb3RzeW5jX3dvcmtlcl9vbmV4aXQsIChE YXR1bSkgMCk7CisKKwlTcGluTG9ja0FjcXVpcmUoJlNsb3RTeW5jV29ya2VyLT5tdXRleCk7CisK KwlBc3NlcnQoU2xvdFN5bmNXb3JrZXItPnBpZCA9PSBJbnZhbGlkUGlkKTsKKworCS8qCisJICog U3RhcnR1cCBwcm9jZXNzIHNpZ25hbGVkIHRoZSBzbG90IHN5bmMgd29ya2VyIHRvIHN0b3AsIHNv IGlmIG1lYW53aGlsZQorCSAqIHBvc3RtYXN0ZXIgZW5kZWQgdXAgc3RhcnRpbmcgdGhlIHdvcmtl ciBhZ2FpbiwgZXhpdC4KKwkgKi8KKwlpZiAoU2xvdFN5bmNXb3JrZXItPnN0b3BTaWduYWxlZCkK Kwl7CisJCVNwaW5Mb2NrUmVsZWFzZSgmU2xvdFN5bmNXb3JrZXItPm11dGV4KTsKKwkJcHJvY19l eGl0KDApOworCX0KKworCS8qIEFkdmVydGlzZSBvdXIgUElEIHNvIHRoYXQgdGhlIHN0YXJ0dXAg cHJvY2VzcyBjYW4ga2lsbCB1cyBvbiBwcm9tb3Rpb24gKi8KKwlTbG90U3luY1dvcmtlci0+cGlk ID0gTXlQcm9jUGlkOworCisJU3BpbkxvY2tSZWxlYXNlKCZTbG90U3luY1dvcmtlci0+bXV0ZXgp OworCisJLyogU2V0dXAgc2lnbmFsIGhhbmRsaW5nICovCisJcHFzaWduYWwoU0lHSFVQLCBTaWdu YWxIYW5kbGVyRm9yQ29uZmlnUmVsb2FkKTsKKwlwcXNpZ25hbChTSUdJTlQsIFNpZ25hbEhhbmRs ZXJGb3JTaHV0ZG93blJlcXVlc3QpOworCXBxc2lnbmFsKFNJR1RFUk0sIGRpZSk7CisJQmFja2dy b3VuZFdvcmtlclVuYmxvY2tTaWduYWxzKCk7CisKKwkvKiBMb2FkIHRoZSBsaWJwcS1zcGVjaWZp YyBmdW5jdGlvbnMgKi8KKwlsb2FkX2ZpbGUoImxpYnBxd2FscmVjZWl2ZXIiLCBmYWxzZSk7CisK KwlkYm5hbWUgPSB2YWxpZGF0ZV9wYXJhbWV0ZXJzX2FuZF9nZXRfZGJuYW1lKCk7CisKKwkvKgor CSAqIENvbm5lY3QgdG8gdGhlIGRhdGFiYXNlIHNwZWNpZmllZCBieSB1c2VyIGluIHByaW1hcnlf Y29ubmluZm8uIFdlIG5lZWQKKwkgKiBhIGRhdGFiYXNlIGNvbm5lY3Rpb24gZm9yIHdhbHJjdl9l eGVjIHRvIHdvcmsuIFBsZWFzZSBzZWUgY29tbWVudHMgYXRvcAorCSAqIGxpYnBxcmN2X2V4ZWMu CisJICovCisJQmFja2dyb3VuZFdvcmtlckluaXRpYWxpemVDb25uZWN0aW9uKGRibmFtZSwgTlVM TCwgMCk7CisKKwkvKgorCSAqIEVzdGFibGlzaCB0aGUgY29ubmVjdGlvbiB0byB0aGUgcHJpbWFy eSBzZXJ2ZXIgZm9yIHNsb3RzCisJICogc3luY2hyb25pemF0aW9uLgorCSAqLworCXdyY29ubiA9 IHdhbHJjdl9jb25uZWN0KFByaW1hcnlDb25uSW5mbywgdHJ1ZSwgZmFsc2UsCisJCQkJCQkJY2x1 c3Rlcl9uYW1lWzBdID8gY2x1c3Rlcl9uYW1lIDogInNsb3RzeW5jd29ya2VyIiwKKwkJCQkJCQkm ZXJyKTsKKwlpZiAoIXdyY29ubikKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNP REVfQ09OTkVDVElPTl9GQUlMVVJFKSwKKwkJCQllcnJtc2coImNvdWxkIG5vdCBjb25uZWN0IHRv IHRoZSBwcmltYXJ5IHNlcnZlcjogJXMiLCBlcnIpKTsKKworCS8qCisJICogVXNpbmcgdGhlIHNw ZWNpZmllZCBwcmltYXJ5IHNlcnZlciBjb25uZWN0aW9uLCBjaGVjayB3aGV0aGVyIHdlIGFyZQor CSAqIGNhc2NhZGluZyBzdGFuZGJ5IGFuZCB2YWxpZGF0ZXMgcHJpbWFyeV9zbG90X25hbWUgZm9y CisJICogbm9uLWNhc2NhZGluZy1zdGFuZGJ5cy4KKwkgKi8KKwljaGVja19wcmltYXJ5X2luZm8o d3Jjb25uLCAmYW1fY2FzY2FkaW5nX3N0YW5kYnkpOworCisJLyogTWFpbiB3YWl0IGxvb3AgKi8K Kwlmb3IgKDs7KQorCXsKKwkJYm9vbAkJc29tZV9zbG90X3VwZGF0ZWQgPSBmYWxzZTsKKworCQlQ cm9jZXNzU2xvdFN5bmNJbnRlcnJ1cHRzKHdyY29ubik7CisKKwkJaWYgKCFhbV9jYXNjYWRpbmdf c3RhbmRieSkKKwkJCXNvbWVfc2xvdF91cGRhdGVkID0gc3luY2hyb25pemVfc2xvdHMod3Jjb25u KTsKKworCQl3YWl0X2Zvcl9zbG90X2FjdGl2aXR5KHNvbWVfc2xvdF91cGRhdGVkLCBhbV9jYXNj YWRpbmdfc3RhbmRieSk7CisKKwkJLyoKKwkJICogSWYgdGhlIHN0YW5kYnkgd2FzIHByb21vdGVk IHRoZW4gd2hhdCB3YXMgcHJldmlvdXNseSBhIGNhc2NhZGluZworCQkgKiBzdGFuZGJ5IG1pZ2h0 IG5vIGxvbmdlciBiZSBvbmUsIHNvIHJlY2hlY2sgZWFjaCB0aW1lLgorCQkgKi8KKwkJaWYgKGFt X2Nhc2NhZGluZ19zdGFuZGJ5KQorCQkJY2hlY2tfcHJpbWFyeV9pbmZvKHdyY29ubiwgJmFtX2Nh c2NhZGluZ19zdGFuZGJ5KTsKKwl9CisKKwkvKgorCSAqIFRoZSBzbG90IHN5bmMgd29ya2VyIGNh biBub3QgZ2V0IGhlcmUgYmVjYXVzZSBpdCB3aWxsIG9ubHkgc3RvcCB3aGVuIGl0CisJICogcmVj ZWl2ZXMgYSBTSUdJTlQgZnJvbSB0aGUgc3RhcnR1cCBwcm9jZXNzLCBvciB3aGVuIHRoZXJlIGlz IGFuIGVycm9yLgorCSAqLworCUFzc2VydChmYWxzZSk7Cit9CisKKy8qCisgKiBJcyBjdXJyZW50 IHByb2Nlc3MgdGhlIHNsb3Qgc3luYyB3b3JrZXI/CisgKi8KK2Jvb2wKK0lzTG9naWNhbFNsb3RT eW5jV29ya2VyKHZvaWQpCit7CisJcmV0dXJuIFNsb3RTeW5jV29ya2VyLT5waWQgPT0gTXlQcm9j UGlkOworfQorCisvKgorICogU2h1dCBkb3duIHRoZSBzbG90IHN5bmMgd29ya2VyLgorICovCit2 b2lkCitTaHV0RG93blNsb3RTeW5jKHZvaWQpCit7CisJU3BpbkxvY2tBY3F1aXJlKCZTbG90U3lu Y1dvcmtlci0+bXV0ZXgpOworCisJU2xvdFN5bmNXb3JrZXItPnN0b3BTaWduYWxlZCA9IHRydWU7 CisKKwlpZiAoU2xvdFN5bmNXb3JrZXItPnBpZCA9PSBJbnZhbGlkUGlkKQorCXsKKwkJU3Bpbkxv Y2tSZWxlYXNlKCZTbG90U3luY1dvcmtlci0+bXV0ZXgpOworCQlyZXR1cm47CisJfQorCVNwaW5M b2NrUmVsZWFzZSgmU2xvdFN5bmNXb3JrZXItPm11dGV4KTsKKworCWtpbGwoU2xvdFN5bmNXb3Jr ZXItPnBpZCwgU0lHSU5UKTsKKworCS8qIFdhaXQgZm9yIGl0IHRvIGRpZSAqLworCWZvciAoOzsp CisJeworCQlpbnQJCQlyYzsKKworCQkvKiBXYWl0IGEgYml0LCB3ZSBkb24ndCBleHBlY3QgdG8g aGF2ZSB0byB3YWl0IGxvbmcgKi8KKwkJcmMgPSBXYWl0TGF0Y2goTXlMYXRjaCwKKwkJCQkJICAg V0xfTEFUQ0hfU0VUIHwgV0xfVElNRU9VVCB8IFdMX0VYSVRfT05fUE1fREVBVEgsCisJCQkJCSAg IDEwTCwgV0FJVF9FVkVOVF9CR1dPUktFUl9TSFVURE9XTik7CisKKwkJaWYgKHJjICYgV0xfTEFU Q0hfU0VUKQorCQl7CisJCQlSZXNldExhdGNoKE15TGF0Y2gpOworCQkJQ0hFQ0tfRk9SX0lOVEVS UlVQVFMoKTsKKwkJfQorCisJCVNwaW5Mb2NrQWNxdWlyZSgmU2xvdFN5bmNXb3JrZXItPm11dGV4 KTsKKworCQkvKiBJcyBpdCBnb25lPyAqLworCQlpZiAoU2xvdFN5bmNXb3JrZXItPnBpZCA9PSBJ bnZhbGlkUGlkKQorCQkJYnJlYWs7CisKKwkJU3BpbkxvY2tSZWxlYXNlKCZTbG90U3luY1dvcmtl ci0+bXV0ZXgpOworCX0KKworCVNwaW5Mb2NrUmVsZWFzZSgmU2xvdFN5bmNXb3JrZXItPm11dGV4 KTsKK30KKworLyoKKyAqIEFsbG9jYXRlIGFuZCBpbml0aWFsaXplIHNsb3Qgc3luYyB3b3JrZXIg c2hhcmVkIG1lbW9yeQorICovCit2b2lkCitTbG90U3luY1dvcmtlclNobWVtSW5pdCh2b2lkKQor eworCVNpemUJCXNpemU7CisJYm9vbAkJZm91bmQ7CisKKwlzaXplID0gc2l6ZW9mKFNsb3RTeW5j V29ya2VyQ3R4U3RydWN0KTsKKwlzaXplID0gTUFYQUxJR04oc2l6ZSk7CisKKwlTbG90U3luY1dv cmtlciA9IChTbG90U3luY1dvcmtlckN0eFN0cnVjdCAqKQorCQlTaG1lbUluaXRTdHJ1Y3QoIlNs b3QgU3luYyBXb3JrZXIgRGF0YSIsIHNpemUsICZmb3VuZCk7CisKKwlpZiAoIWZvdW5kKQorCXsK KwkJbWVtc2V0KFNsb3RTeW5jV29ya2VyLCAwLCBzaXplKTsKKwkJU2xvdFN5bmNXb3JrZXItPnBp ZCA9IEludmFsaWRQaWQ7CisJCVNwaW5Mb2NrSW5pdCgmU2xvdFN5bmNXb3JrZXItPm11dGV4KTsK Kwl9Cit9CisKKy8qCisgKiBSZWdpc3RlciB0aGUgYmFja2dyb3VuZCB3b3JrZXIgZm9yIHNsb3Rz IHN5bmNocm9uaXphdGlvbiBwcm92aWRlZAorICogZW5hYmxlX3N5bmNzbG90IGlzIE9OLgorICov Cit2b2lkCitTbG90U3luY1dvcmtlclJlZ2lzdGVyKHZvaWQpCit7CisJQmFja2dyb3VuZFdvcmtl ciBiZ3c7CisKKwlpZiAoIWVuYWJsZV9zeW5jc2xvdCkKKwl7CisJCWVyZXBvcnQoTE9HLAorCQkJ CWVycm1zZygic2tpcHBpbmcgc2xvdCBzeW5jaHJvbml6YXRpb24iKSwKKwkJCQllcnJkZXRhaWwo IlwiZW5hYmxlX3N5bmNzbG90XCIgaXMgZGlzYWJsZWQuIikpOworCQlyZXR1cm47CisJfQorCisJ bWVtc2V0KCZiZ3csIDAsIHNpemVvZihiZ3cpKTsKKworCS8qIFdlIG5lZWQgZGF0YWJhc2UgY29u bmVjdGlvbiB3aGljaCBuZWVkcyBzaGFyZWQtbWVtb3J5IGFjY2VzcyBhcyB3ZWxsICovCisJYmd3 LmJnd19mbGFncyA9IEJHV09SS0VSX1NITUVNX0FDQ0VTUyB8CisJCUJHV09SS0VSX0JBQ0tFTkRf REFUQUJBU0VfQ09OTkVDVElPTjsKKworCS8qIFN0YXJ0IGFzIHNvb24gYXMgYSBjb25zaXN0ZW50 IHN0YXRlIGhhcyBiZWVuIHJlYWNoZWQgaW4gYSBob3Qgc3RhbmRieSAqLworCWJndy5iZ3dfc3Rh cnRfdGltZSA9IEJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0YXRlX0hvdFN0YW5kYnk7CisKKwlz bnByaW50ZihiZ3cuYmd3X2xpYnJhcnlfbmFtZSwgTUFYUEdQQVRILCAicG9zdGdyZXMiKTsKKwlz bnByaW50ZihiZ3cuYmd3X2Z1bmN0aW9uX25hbWUsIEJHV19NQVhMRU4sICJSZXBsU2xvdFN5bmNX b3JrZXJNYWluIik7CisJc25wcmludGYoYmd3LmJnd19uYW1lLCBCR1dfTUFYTEVOLAorCQkJICJy ZXBsaWNhdGlvbiBzbG90IHN5bmMgd29ya2VyIik7CisJc25wcmludGYoYmd3LmJnd190eXBlLCBC R1dfTUFYTEVOLAorCQkJICJzbG90IHN5bmMgd29ya2VyIik7CisKKwliZ3cuYmd3X3Jlc3RhcnRf dGltZSA9IEJHV19ERUZBVUxUX1JFU1RBUlRfSU5URVJWQUw7CisJYmd3LmJnd19ub3RpZnlfcGlk ID0gMDsKKwliZ3cuYmd3X21haW5fYXJnID0gKERhdHVtKSAwOworCisJUmVnaXN0ZXJCYWNrZ3Jv dW5kV29ya2VyKCZiZ3cpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v c2xvdC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCmluZGV4IGYyNzgxZDA0NTUu LjhjYWE2YTllMDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwor KysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKQEAgLTQ2LDcgKzQ2LDkgQEAKICNp bmNsdWRlICJjb21tb24vc3RyaW5nLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVk ZSAicGdzdGF0LmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNhbHdvcmtlci5oIgogI2lu Y2x1ZGUgInJlcGxpY2F0aW9uL3Nsb3QuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi93YWxzZW5k ZXIuaCIKICNpbmNsdWRlICJzdG9yYWdlL2ZkLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9pcGMuaCIK ICNpbmNsdWRlICJzdG9yYWdlL3Byb2MuaCIKQEAgLTEwMyw3ICsxMDUsNiBAQCBpbnQJCQltYXhf cmVwbGljYXRpb25fc2xvdHMgPSAxMDsgLyogdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcGxpY2F0 aW9uCiAJCQkJCQkJCQkJICogc2xvdHMgKi8KIAogc3RhdGljIHZvaWQgUmVwbGljYXRpb25TbG90 U2htZW1FeGl0KGludCBjb2RlLCBEYXR1bSBhcmcpOwotc3RhdGljIHZvaWQgUmVwbGljYXRpb25T bG90RHJvcEFjcXVpcmVkKHZvaWQpOwogc3RhdGljIHZvaWQgUmVwbGljYXRpb25TbG90RHJvcFB0 cihSZXBsaWNhdGlvblNsb3QgKnNsb3QpOwogCiAvKiBpbnRlcm5hbCBwZXJzaXN0ZW5jeSBmdW5j dGlvbnMgKi8KQEAgLTI1MCwxMSArMjUxLDEyIEBAIFJlcGxpY2F0aW9uU2xvdFZhbGlkYXRlTmFt ZShjb25zdCBjaGFyICpuYW1lLCBpbnQgZWxldmVsKQogICogICAgIHVzZXIgd2lsbCBvbmx5IGdl dCBjb21taXQgcHJlcGFyZWQuCiAgKiBmYWlsb3ZlcjogSWYgZW5hYmxlZCwgYWxsb3dzIHRoZSBz bG90IHRvIGJlIHN5bmNlZCB0byBzdGFuZGJ5cyBzbwogICogICAgIHRoYXQgbG9naWNhbCByZXBs aWNhdGlvbiBjYW4gYmUgcmVzdW1lZCBhZnRlciBmYWlsb3Zlci4KKyAqIHN5bmNlZDogVHJ1ZSBp ZiB0aGUgc2xvdCBpcyBjcmVhdGVkIGJ5IGEgc2xvdHN5bmMgd29ya2VyLgogICovCiB2b2lkCiBS ZXBsaWNhdGlvblNsb3RDcmVhdGUoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBkYl9zcGVjaWZpYywK IAkJCQkJICBSZXBsaWNhdGlvblNsb3RQZXJzaXN0ZW5jeSBwZXJzaXN0ZW5jeSwKLQkJCQkJICBi b29sIHR3b19waGFzZSwgYm9vbCBmYWlsb3ZlcikKKwkJCQkJICBib29sIHR3b19waGFzZSwgYm9v bCBmYWlsb3ZlciwgYm9vbCBzeW5jZWQpCiB7CiAJUmVwbGljYXRpb25TbG90ICpzbG90ID0gTlVM TDsKIAlpbnQJCQlpOwpAQCAtMjYzLDYgKzI2NSwxOSBAQCBSZXBsaWNhdGlvblNsb3RDcmVhdGUo Y29uc3QgY2hhciAqbmFtZSwgYm9vbCBkYl9zcGVjaWZpYywKIAogCVJlcGxpY2F0aW9uU2xvdFZh bGlkYXRlTmFtZShuYW1lLCBFUlJPUik7CiAKKwkvKgorCSAqIERvIG5vdCBhbGxvdyB1c2VycyB0 byBjcmVhdGUgdGhlIHNsb3RzIHdpdGggZmFpbG92ZXIgZW5hYmxlZCBvbiB0aGUKKwkgKiBzdGFu ZGJ5IGFzIHdlIGRvIG5vdCBzdXBwb3J0IHN5bmMgdG8gdGhlIGNhc2NhZGluZyBzdGFuZGJ5Lgor CSAqCisJICogU2xvdCBzeW5jIHdvcmtlciBjYW4gc3RpbGwgY3JlYXRlIHNsb3RzIHdpdGggZmFp bG92ZXIgZW5hYmxlZCwgYXMgaXQKKwkgKiBuZWVkcyB0byBtYWludGFpbiB0aGlzIHZhbHVlIGlu IHN5bmMgd2l0aCB0aGUgcmVtb3RlIHNsb3RzLgorCSAqLworCWlmIChmYWlsb3ZlciAmJiBSZWNv dmVyeUluUHJvZ3Jlc3MoKSAmJiAhSXNMb2dpY2FsU2xvdFN5bmNXb3JrZXIoKSkKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJ CQllcnJtc2coImNhbm5vdCBlbmFibGUgZmFpbG92ZXIgZm9yIGEgcmVwbGljYXRpb24gc2xvdCIK KwkJCQkJICAgIiBjcmVhdGVkIG9uIHRoZSBzdGFuZGJ5IikpOworCiAJLyoKIAkgKiBJZiBzb21l IG90aGVyIGJhY2tlbmQgcmFuIHRoaXMgY29kZSBjb25jdXJyZW50bHkgd2l0aCB1cywgd2UnZCBs aWtlbHkKIAkgKiBib3RoIGFsbG9jYXRlIHRoZSBzYW1lIHNsb3QsIGFuZCB0aGF0IHdvdWxkIGJl IGJhZC4gIFdlJ2QgYWxzbyBiZSBhdApAQCAtMzE1LDYgKzMzMCw3IEBAIFJlcGxpY2F0aW9uU2xv dENyZWF0ZShjb25zdCBjaGFyICpuYW1lLCBib29sIGRiX3NwZWNpZmljLAogCXNsb3QtPmRhdGEu dHdvX3BoYXNlID0gdHdvX3BoYXNlOwogCXNsb3QtPmRhdGEudHdvX3BoYXNlX2F0ID0gSW52YWxp ZFhMb2dSZWNQdHI7CiAJc2xvdC0+ZGF0YS5mYWlsb3ZlciA9IGZhaWxvdmVyOworCXNsb3QtPmRh dGEuc3luY2VkID0gc3luY2VkOwogCiAJLyogYW5kIHRoZW4gZGF0YSBvbmx5IHByZXNlbnQgaW4g c2hhcmVkIG1lbW9yeSAqLwogCXNsb3QtPmp1c3RfZGlydGllZCA9IGZhbHNlOwpAQCAtNjgwLDYg KzY5NiwxNiBAQCBSZXBsaWNhdGlvblNsb3REcm9wKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgbm93 YWl0KQogCiAJUmVwbGljYXRpb25TbG90QWNxdWlyZShuYW1lLCBub3dhaXQpOwogCisJLyoKKwkg KiBEbyBub3QgYWxsb3cgdXNlcnMgdG8gZHJvcCB0aGUgc2xvdHMgd2hpY2ggYXJlIGN1cnJlbnRs eSBiZWluZyBzeW5jZWQKKwkgKiBmcm9tIHRoZSBwcmltYXJ5IHRvIHRoZSBzdGFuZGJ5LgorCSAq LworCWlmIChSZWNvdmVyeUluUHJvZ3Jlc3MoKSAmJiBNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5z eW5jZWQpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1Rf SU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJCQllcnJtc2coImNhbm5vdCBkcm9wIHJlcGxpY2F0 aW9uIHNsb3QgXCIlc1wiIiwgbmFtZSksCisJCQkJZXJyZGV0YWlsKCJUaGlzIHNsb3QgaXMgYmVp bmcgc3luY2VkIGZyb20gdGhlIHByaW1hcnkgc2VydmVyLiIpKTsKKwogCVJlcGxpY2F0aW9uU2xv dERyb3BBY3F1aXJlZCgpOwogfQogCkBAIC02OTksNiArNzI1LDI5IEBAIFJlcGxpY2F0aW9uU2xv dEFsdGVyKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgZmFpbG92ZXIpCiAJCQkJZXJybXNnKCJjYW5u b3QgdXNlICVzIHdpdGggYSBwaHlzaWNhbCByZXBsaWNhdGlvbiBzbG90IiwKIAkJCQkJICAgIkFM VEVSX1JFUExJQ0FUSU9OX1NMT1QiKSk7CiAKKwlpZiAoUmVjb3ZlcnlJblByb2dyZXNzKCkpCisJ eworCQkvKgorCQkgKiBEbyBub3QgYWxsb3cgdXNlcnMgdG8gYWx0ZXIgdGhlIHNsb3RzIHdoaWNo IGFyZSBjdXJyZW50bHkgYmVpbmcKKwkJICogc3luY2VkIGZyb20gdGhlIHByaW1hcnkgdG8gdGhl IHN0YW5kYnkuCisJCSAqLworCQlpZiAoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEuc3luY2VkKQor CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJF UkVRVUlTSVRFX1NUQVRFKSwKKwkJCQkJZXJybXNnKCJjYW5ub3QgYWx0ZXIgcmVwbGljYXRpb24g c2xvdCBcIiVzXCIiLCBuYW1lKSwKKwkJCQkJZXJyZGV0YWlsKCJUaGlzIHNsb3QgaXMgYmVpbmcg c3luY2VkIGZyb20gdGhlIHByaW1hcnkgc2VydmVyLiIpKTsKKworCQkvKgorCQkgKiBEbyBub3Qg YWxsb3cgdXNlcnMgdG8gYWx0ZXIgc2xvdHMgdG8gZW5hYmxlIGZhaWxvdmVyIG9uIHRoZSBzdGFu ZGJ5CisJCSAqIGFzIHdlIGRvIG5vdCBzdXBwb3J0IHN5bmMgdG8gdGhlIGNhc2NhZGluZyBzdGFu ZGJ5LgorCQkgKi8KKwkJaWYgKGZhaWxvdmVyKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJy Y29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCWVycm1zZygiY2Fubm90 IGVuYWJsZSBmYWlsb3ZlciBmb3IgYSByZXBsaWNhdGlvbiBzbG90IgorCQkJCQkJICAgIiBvbiB0 aGUgc3RhbmRieSIpKTsKKwl9CisKIAlTcGluTG9ja0FjcXVpcmUoJk15UmVwbGljYXRpb25TbG90 LT5tdXRleCk7CiAJTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEuZmFpbG92ZXIgPSBmYWlsb3ZlcjsK IAlTcGluTG9ja1JlbGVhc2UoJk15UmVwbGljYXRpb25TbG90LT5tdXRleCk7CkBAIC03MTEsNyAr NzYwLDcgQEAgUmVwbGljYXRpb25TbG90QWx0ZXIoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBmYWls b3ZlcikKIC8qCiAgKiBQZXJtYW5lbnRseSBkcm9wIHRoZSBjdXJyZW50bHkgYWNxdWlyZWQgcmVw bGljYXRpb24gc2xvdC4KICAqLwotc3RhdGljIHZvaWQKK3ZvaWQKIFJlcGxpY2F0aW9uU2xvdERy b3BBY3F1aXJlZCh2b2lkKQogewogCVJlcGxpY2F0aW9uU2xvdCAqc2xvdCA9IE15UmVwbGljYXRp b25TbG90OwpAQCAtODY3LDggKzkxNiw4IEBAIFJlcGxpY2F0aW9uU2xvdE1hcmtEaXJ0eSh2b2lk KQogfQogCiAvKgotICogQ29udmVydCBhIHNsb3QgdGhhdCdzIG1hcmtlZCBhcyBSU19FUEhFTUVS QUwgdG8gYSBSU19QRVJTSVNURU5UIHNsb3QsCi0gKiBndWFyYW50ZWVpbmcgaXQgd2lsbCBiZSB0 aGVyZSBhZnRlciBhbiBldmVudHVhbCBjcmFzaC4KKyAqIENvbnZlcnQgYSBzbG90IHRoYXQncyBt YXJrZWQgYXMgUlNfRVBIRU1FUkFMIG9yIFJTX1RFTVBPUkFSWSB0byBhCisgKiBSU19QRVJTSVNU RU5UIHNsb3QsIGd1YXJhbnRlZWluZyBpdCB3aWxsIGJlIHRoZXJlIGFmdGVyIGFuIGV2ZW50dWFs IGNyYXNoLgogICovCiB2b2lkCiBSZXBsaWNhdGlvblNsb3RQZXJzaXN0KHZvaWQpCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL3Nsb3RmdW5jcy5jCmluZGV4IGViNjg1MDg5YjMuLjg0M2FlOGNkNjggMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jCisrKyBiL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jCkBAIC00Myw3ICs0Myw3IEBAIGNyZWF0ZV9waHlz aWNhbF9yZXBsaWNhdGlvbl9zbG90KGNoYXIgKm5hbWUsIGJvb2wgaW1tZWRpYXRlbHlfcmVzZXJ2 ZSwKIAkvKiBhY3F1aXJlIHJlcGxpY2F0aW9uIHNsb3QsIHRoaXMgd2lsbCBjaGVjayBmb3IgY29u ZmxpY3RpbmcgbmFtZXMgKi8KIAlSZXBsaWNhdGlvblNsb3RDcmVhdGUobmFtZSwgZmFsc2UsCiAJ CQkJCQkgIHRlbXBvcmFyeSA/IFJTX1RFTVBPUkFSWSA6IFJTX1BFUlNJU1RFTlQsIGZhbHNlLAot CQkJCQkJICBmYWxzZSk7CisJCQkJCQkgIGZhbHNlLCBmYWxzZSAvKiBzeW5jZWQgKi8gKTsKIAog CWlmIChpbW1lZGlhdGVseV9yZXNlcnZlKQogCXsKQEAgLTEzNiw3ICsxMzYsNyBAQCBjcmVhdGVf bG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KGNoYXIgKm5hbWUsIGNoYXIgKnBsdWdpbiwKIAkgKi8K IAlSZXBsaWNhdGlvblNsb3RDcmVhdGUobmFtZSwgdHJ1ZSwKIAkJCQkJCSAgdGVtcG9yYXJ5ID8g UlNfVEVNUE9SQVJZIDogUlNfRVBIRU1FUkFMLCB0d29fcGhhc2UsCi0JCQkJCQkgIGZhaWxvdmVy KTsKKwkJCQkJCSAgZmFpbG92ZXIsIGZhbHNlIC8qIHN5bmNlZCAqLyApOwogCiAJLyoKIAkgKiBD cmVhdGUgbG9naWNhbCBkZWNvZGluZyBjb250ZXh0IHRvIGZpbmQgc3RhcnQgcG9pbnQgb3IsIGlm IHdlIGRvbid0CkBAIC0yMzcsNyArMjM3LDcgQEAgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KFBH X0ZVTkNUSU9OX0FSR1MpCiBEYXR1bQogcGdfZ2V0X3JlcGxpY2F0aW9uX3Nsb3RzKFBHX0ZVTkNU SU9OX0FSR1MpCiB7Ci0jZGVmaW5lIFBHX0dFVF9SRVBMSUNBVElPTl9TTE9UU19DT0xTIDE2Cisj ZGVmaW5lIFBHX0dFVF9SRVBMSUNBVElPTl9TTE9UU19DT0xTIDE3CiAJUmV0dXJuU2V0SW5mbyAq cnNpbmZvID0gKFJldHVyblNldEluZm8gKikgZmNpbmZvLT5yZXN1bHRpbmZvOwogCVhMb2dSZWNQ dHIJY3VycmxzbjsKIAlpbnQJCQlzbG90bm87CkBAIC00MTgsMjEgKzQxOCwyMyBAQCBwZ19nZXRf cmVwbGljYXRpb25fc2xvdHMoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkJYnJlYWs7CiAKIAkJCQlj YXNlIFJTX0lOVkFMX1dBTF9SRU1PVkVEOgotCQkJCQl2YWx1ZXNbaSsrXSA9IENTdHJpbmdHZXRU ZXh0RGF0dW0oIndhbF9yZW1vdmVkIik7CisJCQkJCXZhbHVlc1tpKytdID0gQ1N0cmluZ0dldFRl eHREYXR1bShTTE9UX0lOVkFMX1dBTF9SRU1PVkVEX1RFWFQpOwogCQkJCQlicmVhazsKIAogCQkJ CWNhc2UgUlNfSU5WQUxfSE9SSVpPTjoKLQkJCQkJdmFsdWVzW2krK10gPSBDU3RyaW5nR2V0VGV4 dERhdHVtKCJyb3dzX3JlbW92ZWQiKTsKKwkJCQkJdmFsdWVzW2krK10gPSBDU3RyaW5nR2V0VGV4 dERhdHVtKFNMT1RfSU5WQUxfSE9SSVpPTl9URVhUKTsKIAkJCQkJYnJlYWs7CiAKIAkJCQljYXNl IFJTX0lOVkFMX1dBTF9MRVZFTDoKLQkJCQkJdmFsdWVzW2krK10gPSBDU3RyaW5nR2V0VGV4dERh dHVtKCJ3YWxfbGV2ZWxfaW5zdWZmaWNpZW50Iik7CisJCQkJCXZhbHVlc1tpKytdID0gQ1N0cmlu Z0dldFRleHREYXR1bShTTE9UX0lOVkFMX1dBTF9MRVZFTF9URVhUKTsKIAkJCQkJYnJlYWs7CiAJ CQl9CiAJCX0KIAogCQl2YWx1ZXNbaSsrXSA9IEJvb2xHZXREYXR1bShzbG90X2NvbnRlbnRzLmRh dGEuZmFpbG92ZXIpOwogCisJCXZhbHVlc1tpKytdID0gQm9vbEdldERhdHVtKHNsb3RfY29udGVu dHMuZGF0YS5zeW5jZWQpOworCiAJCUFzc2VydChpID09IFBHX0dFVF9SRVBMSUNBVElPTl9TTE9U U19DT0xTKTsKIAogCQl0dXBsZXN0b3JlX3B1dHZhbHVlcyhyc2luZm8tPnNldFJlc3VsdCwgcnNp bmZvLT5zZXREZXNjLApAQCAtNzAwLDcgKzcwMiw2IEBAIGNvcHlfcmVwbGljYXRpb25fc2xvdChG dW5jdGlvbkNhbGxJbmZvIGZjaW5mbywgYm9vbCBsb2dpY2FsX3Nsb3QpCiAJWExvZ1JlY1B0cglz cmNfcmVzdGFydF9sc247CiAJYm9vbAkJc3JjX2lzbG9naWNhbDsKIAlib29sCQl0ZW1wb3Jhcnk7 Ci0JYm9vbAkJZmFpbG92ZXI7CiAJY2hhcgkgICAqcGx1Z2luOwogCURhdHVtCQl2YWx1ZXNbMl07 CiAJYm9vbAkJbnVsbHNbMl07CkBAIC03NTYsNyArNzU3LDYgQEAgY29weV9yZXBsaWNhdGlvbl9z bG90KEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLCBib29sIGxvZ2ljYWxfc2xvdCkKIAlzcmNfaXNs b2dpY2FsID0gU2xvdElzTG9naWNhbCgmZmlyc3Rfc2xvdF9jb250ZW50cyk7CiAJc3JjX3Jlc3Rh cnRfbHNuID0gZmlyc3Rfc2xvdF9jb250ZW50cy5kYXRhLnJlc3RhcnRfbHNuOwogCXRlbXBvcmFy eSA9IChmaXJzdF9zbG90X2NvbnRlbnRzLmRhdGEucGVyc2lzdGVuY3kgPT0gUlNfVEVNUE9SQVJZ KTsKLQlmYWlsb3ZlciA9IGZpcnN0X3Nsb3RfY29udGVudHMuZGF0YS5mYWlsb3ZlcjsKIAlwbHVn aW4gPSBsb2dpY2FsX3Nsb3QgPyBOYW1lU3RyKGZpcnN0X3Nsb3RfY29udGVudHMuZGF0YS5wbHVn aW4pIDogTlVMTDsKIAogCS8qIENoZWNrIHR5cGUgb2YgcmVwbGljYXRpb24gc2xvdCAqLwpAQCAt NzkxLDEyICs3OTEsMjAgQEAgY29weV9yZXBsaWNhdGlvbl9zbG90KEZ1bmN0aW9uQ2FsbEluZm8g ZmNpbmZvLCBib29sIGxvZ2ljYWxfc2xvdCkKIAkJICogV2UgbXVzdCBub3QgdHJ5IHRvIHJlYWQg V0FMLCBzaW5jZSB3ZSBoYXZlbid0IHJlc2VydmVkIGl0IHlldCAtLQogCQkgKiBoZW5jZSBwYXNz IGZpbmRfc3RhcnRwb2ludCBmYWxzZS4gIGNvbmZpcm1lZF9mbHVzaCB3aWxsIGJlIHNldAogCQkg KiBiZWxvdywgYnkgY29weWluZyBmcm9tIHRoZSBzb3VyY2Ugc2xvdC4KKwkJICoKKwkJICogVG8g YXZvaWQgcG90ZW50aWFsIGlzc3VlcyB3aXRoIHRoZSBzbG90c3luYyB3b3JrZXIgd2hlbiB0aGUK KwkJICogcmVzdGFydF9sc24gb2YgYSByZXBsaWNhdGlvbiBzbG90IGdvZXMgYmFja3dhcmRzLCB3 ZSBzZXQgdGhlCisJCSAqIGZhaWxvdmVyIG9wdGlvbiB0byBmYWxzZSBoZXJlLiBUaGlzIHNpdHVh dGlvbiBvY2N1cnMgd2hlbiBhIHNsb3Qgb24KKwkJICogdGhlIHByaW1hcnkgc2VydmVyIGlzIGRy b3BwZWQgYW5kIGltbWVkaWF0ZWx5IHJlcGxhY2VkIHdpdGggYSBuZXcKKwkJICogc2xvdCBvZiB0 aGUgc2FtZSBuYW1lLCBjcmVhdGVkIGJ5IGNvcHlpbmcgZnJvbSBhbm90aGVyIGV4aXN0aW5nCisJ CSAqIHNsb3QuIEhvd2V2ZXIsIHRoZSBzbG90c3luYyB3b3JrZXIgd2lsbCBvbmx5IG9ic2VydmUg dGhlIHJlc3RhcnRfbHNuCisJCSAqIG9mIHRoZSBzYW1lIHNsb3QgZ29pbmcgYmFja3dhcmRzLgog CQkgKi8KIAkJY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdChOYW1lU3RyKCpkc3RfbmFt ZSksCiAJCQkJCQkJCQkJcGx1Z2luLAogCQkJCQkJCQkJCXRlbXBvcmFyeSwKIAkJCQkJCQkJCQlm YWxzZSwKLQkJCQkJCQkJCQlmYWlsb3ZlciwKKwkJCQkJCQkJCQlmYWxzZSwKIAkJCQkJCQkJCQlz cmNfcmVzdGFydF9sc24sCiAJCQkJCQkJCQkJZmFsc2UpOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL3dhbHJlY2VpdmVyZnVuY3MuYwppbmRleCA3M2E3ZDhmOTZjLi5kNDIwYTgzM2NkIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZlcmZ1bmNzLmMKKysr IGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXJmdW5jcy5jCkBAIC0zNDUsNiAr MzQ1LDIyIEBAIEdldFdhbFJjdkZsdXNoUmVjUHRyKFhMb2dSZWNQdHIgKmxhdGVzdENodW5rU3Rh cnQsIFRpbWVMaW5lSUQgKnJlY2VpdmVUTEkpCiAJcmV0dXJuIHJlY3B0cjsKIH0KIAorLyoKKyAq IFJldHVybnMgdGhlIGxhdGVzdCByZXBvcnRlZCBlbmQgb2YgV0FMIG9uIHRoZSBzZW5kZXIKKyAq LworWExvZ1JlY1B0cgorR2V0V2FsUmN2TGF0ZXN0V2FsRW5kKCkKK3sKKwlXYWxSY3ZEYXRhICp3 YWxyY3YgPSBXYWxSY3Y7CisJWExvZ1JlY1B0cglyZWNwdHI7CisKKwlTcGluTG9ja0FjcXVpcmUo JndhbHJjdi0+bXV0ZXgpOworCXJlY3B0ciA9IHdhbHJjdi0+bGF0ZXN0V2FsRW5kOworCVNwaW5M b2NrUmVsZWFzZSgmd2FscmN2LT5tdXRleCk7CisKKwlyZXR1cm4gcmVjcHRyOworfQorCiAvKgog ICogUmV0dXJucyB0aGUgbGFzdCsxIGJ5dGUgcG9zaXRpb24gdGhhdCB3YWxyZWNlaXZlciBoYXMg d3JpdHRlbi4KICAqIFRoaXMgcmV0dXJucyBhIHJlY2VudGx5IHdyaXR0ZW4gdmFsdWUgd2l0aG91 dCB0YWtpbmcgYSBsb2NrLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fs c2VuZGVyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYwppbmRleCA3N2M4 YmFhMzJhLi5mNzUzYWVkMzQ1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93 YWxzZW5kZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYwpAQCAt NzIsNiArNzIsNyBAQAogI2luY2x1ZGUgInBvc3RtYXN0ZXIvaW50ZXJydXB0LmgiCiAjaW5jbHVk ZSAicmVwbGljYXRpb24vZGVjb2RlLmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNhbC5o IgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWx3b3JrZXIuaCIKICNpbmNsdWRlICJyZXBs aWNhdGlvbi9zbG90LmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vc25hcGJ1aWxkLmgiCiAjaW5j bHVkZSAicmVwbGljYXRpb24vc3luY3JlcC5oIgpAQCAtMjQzLDcgKzI0NCw2IEBAIHN0YXRpYyB2 b2lkIFdhbFNuZFNodXRkb3duKHZvaWQpIHBnX2F0dHJpYnV0ZV9ub3JldHVybigpOwogc3RhdGlj IHZvaWQgWExvZ1NlbmRQaHlzaWNhbCh2b2lkKTsKIHN0YXRpYyB2b2lkIFhMb2dTZW5kTG9naWNh bCh2b2lkKTsKIHN0YXRpYyB2b2lkIFdhbFNuZERvbmUoV2FsU25kU2VuZERhdGFDYWxsYmFjayBz ZW5kX2RhdGEpOwotc3RhdGljIFhMb2dSZWNQdHIgR2V0U3RhbmRieUZsdXNoUmVjUHRyKFRpbWVM aW5lSUQgKnRsaSk7CiBzdGF0aWMgdm9pZCBJZGVudGlmeVN5c3RlbSh2b2lkKTsKIHN0YXRpYyB2 b2lkIFVwbG9hZE1hbmlmZXN0KHZvaWQpOwogc3RhdGljIGJvb2wgSGFuZGxlVXBsb2FkTWFuaWZl c3RQYWNrZXQoU3RyaW5nSW5mbyBidWYsIG9mZl90ICpvZmZzZXQsCkBAIC0xMjI0LDcgKzEyMjQs NyBAQCBDcmVhdGVSZXBsaWNhdGlvblNsb3QoQ3JlYXRlUmVwbGljYXRpb25TbG90Q21kICpjbWQp CiAJewogCQlSZXBsaWNhdGlvblNsb3RDcmVhdGUoY21kLT5zbG90bmFtZSwgZmFsc2UsCiAJCQkJ CQkJICBjbWQtPnRlbXBvcmFyeSA/IFJTX1RFTVBPUkFSWSA6IFJTX1BFUlNJU1RFTlQsCi0JCQkJ CQkJICBmYWxzZSwgZmFsc2UpOworCQkJCQkJCSAgZmFsc2UsIGZhbHNlLCBmYWxzZSAvKiBzeW5j ZWQgKi8gKTsKIAogCQlpZiAocmVzZXJ2ZV93YWwpCiAJCXsKQEAgLTEyNTUsNyArMTI1NSw3IEBA IENyZWF0ZVJlcGxpY2F0aW9uU2xvdChDcmVhdGVSZXBsaWNhdGlvblNsb3RDbWQgKmNtZCkKIAkJ ICovCiAJCVJlcGxpY2F0aW9uU2xvdENyZWF0ZShjbWQtPnNsb3RuYW1lLCB0cnVlLAogCQkJCQkJ CSAgY21kLT50ZW1wb3JhcnkgPyBSU19URU1QT1JBUlkgOiBSU19FUEhFTUVSQUwsCi0JCQkJCQkJ ICB0d29fcGhhc2UsIGZhaWxvdmVyKTsKKwkJCQkJCQkgIHR3b19waGFzZSwgZmFpbG92ZXIsIGZh bHNlIC8qIHN5bmNlZCAqLyApOwogCiAJCS8qCiAJCSAqIERvIG9wdGlvbnMgY2hlY2sgZWFybHkg c28gdGhhdCB3ZSBjYW4gYmFpbCBiZWZvcmUgY2FsbGluZyB0aGUKQEAgLTMzNzUsMTQgKzMzNzUs MTcgQEAgV2FsU25kRG9uZShXYWxTbmRTZW5kRGF0YUNhbGxiYWNrIHNlbmRfZGF0YSkKIH0KIAog LyoKLSAqIFJldHVybnMgdGhlIGxhdGVzdCBwb2ludCBpbiBXQUwgdGhhdCBoYXMgYmVlbiBzYWZl bHkgZmx1c2hlZCB0byBkaXNrLCBhbmQKLSAqIGNhbiBiZSBzZW50IHRvIHRoZSBzdGFuZGJ5LiBU aGlzIHNob3VsZCBvbmx5IGJlIGNhbGxlZCB3aGVuIGluIHJlY292ZXJ5LAotICogaWUuIHdlJ3Jl IHN0cmVhbWluZyB0byBhIGNhc2NhZGVkIHN0YW5kYnkuCisgKiBSZXR1cm5zIHRoZSBsYXRlc3Qg cG9pbnQgaW4gV0FMIHRoYXQgaGFzIGJlZW4gc2FmZWx5IGZsdXNoZWQgdG8gZGlzay4KKyAqIFRo aXMgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIHdoZW4gaW4gcmVjb3ZlcnkuCisgKgorICogVGhpcyBp cyBjYWxsZWQgZWl0aGVyIGJ5IGNhc2NhZGluZyB3YWxzZW5kZXIgdG8gZmluZCBXQUwgcG9zdGlv biB0bworICogYmUgc2VudCB0byBhIGNhc2NhZGVkIHN0YW5kYnkgb3IgYnkgYSBzbG90IHN5bmMg d29ya2VyIHRvIHZhbGlkYXRlCisgKiByZW1vdGUgc2xvdCdzIGxzbiBiZWZvcmUgc3luY2luZyBp dCBsb2NhbGx5LgogICoKICAqIEFzIGEgc2lkZS1lZmZlY3QsICp0bGkgaXMgdXBkYXRlZCB0byB0 aGUgVExJIG9mIHRoZSBsYXN0CiAgKiByZXBsYXllZCBXQUwgcmVjb3JkLgogICovCi1zdGF0aWMg WExvZ1JlY1B0cgorWExvZ1JlY1B0cgogR2V0U3RhbmRieUZsdXNoUmVjUHRyKFRpbWVMaW5lSUQg KnRsaSkKIHsKIAlYTG9nUmVjUHRyCXJlcGxheVB0cjsKQEAgLTMzOTEsNiArMzM5NCw4IEBAIEdl dFN0YW5kYnlGbHVzaFJlY1B0cihUaW1lTGluZUlEICp0bGkpCiAJVGltZUxpbmVJRAlyZWNlaXZl VExJOwogCVhMb2dSZWNQdHIJcmVzdWx0OwogCisJQXNzZXJ0KGFtX2Nhc2NhZGluZ193YWxzZW5k ZXIgfHwgSXNMb2dpY2FsU2xvdFN5bmNXb3JrZXIoKSk7CisKIAkvKgogCSAqIFdlIGNhbiBzYWZl bHkgc2VuZCB3aGF0J3MgYWxyZWFkeSBiZWVuIHJlcGxheWVkLiBBbHNvLCBpZiB3YWxyZWNlaXZl cgogCSAqIGlzIHN0cmVhbWluZyBXQUwgZnJvbSB0aGUgc2FtZSB0aW1lbGluZSwgd2UgY2FuIHNl bmQgYW55dGhpbmcgdGhhdCBpdApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMv aXBjaS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvaXBjaS5jCmluZGV4IDcwODRlMTg4NjEu LjkyNWFjNmM5NDIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2lwY2kuYwor KysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9pcGNpLmMKQEAgLTM4LDYgKzM4LDcgQEAKICNp bmNsdWRlICJyZXBsaWNhdGlvbi9zbG90LmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vd2FscmVj ZWl2ZXIuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi93YWxzZW5kZXIuaCIKKyNpbmNsdWRlICJy ZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCIKICNpbmNsdWRlICJzdG9yYWdlL2J1Zm1nci5o IgogI2luY2x1ZGUgInN0b3JhZ2UvZHNtLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9kc21fcmVnaXN0 cnkuaCIKQEAgLTM0Nyw2ICszNDgsNyBAQCBDcmVhdGVPckF0dGFjaFNobWVtU3RydWN0cyh2b2lk KQogCVdhbFN1bW1hcml6ZXJTaG1lbUluaXQoKTsKIAlQZ0FyY2hTaG1lbUluaXQoKTsKIAlBcHBs eUxhdW5jaGVyU2htZW1Jbml0KCk7CisJU2xvdFN5bmNXb3JrZXJTaG1lbUluaXQoKTsKIAogCS8q CiAJICogU2V0IHVwIG90aGVyIG1vZHVsZXMgdGhhdCBuZWVkIHNvbWUgc2hhcmVkIG1lbW9yeSBz cGFjZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jIGIvc3JjL2JhY2tl bmQvdGNvcC9wb3N0Z3Jlcy5jCmluZGV4IDFhMzRiZDM3MTUuLmU4YzUzMGFjZDkgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3Bv c3RncmVzLmMKQEAgLTMyODYsNiArMzI4NiwxNyBAQCBQcm9jZXNzSW50ZXJydXB0cyh2b2lkKQog CQkJICovCiAJCQlwcm9jX2V4aXQoMSk7CiAJCX0KKwkJZWxzZSBpZiAoSXNMb2dpY2FsU2xvdFN5 bmNXb3JrZXIoKSkKKwkJeworCQkJZWxvZyhERUJVRzEsCisJCQkJICJyZXBsaWNhdGlvbiBzbG90 IHN5bmMgd29ya2VyIGlzIHNodXR0aW5nIGRvd24gZHVlIHRvIGFkbWluaXN0cmF0b3IgY29tbWFu ZCIpOworCisJCQkvKgorCQkJICogU2xvdCBzeW5jIHdvcmtlciBjYW4gYmUgc3RvcHBlZCBhdCBh bnkgdGltZS4gVXNlIGV4aXQgc3RhdHVzIDEKKwkJCSAqIHNvIHRoZSBiYWNrZ3JvdW5kIHdvcmtl ciBpcyByZXN0YXJ0ZWQuCisJCQkgKi8KKwkJCXByb2NfZXhpdCgxKTsKKwkJfQogCQllbHNlIGlm IChJc0JhY2tncm91bmRXb3JrZXIpCiAJCQllcmVwb3J0KEZBVEFMLAogCQkJCQkoZXJyY29kZShF UlJDT0RFX0FETUlOX1NIVVRET1dOKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fj dGl2aXR5L3dhaXRfZXZlbnRfbmFtZXMudHh0IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkv d2FpdF9ldmVudF9uYW1lcy50eHQKaW5kZXggYTVkZjgzNWRkNC4uM2U2MjAzMzIyYSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQKQEAgLTUz LDYgKzUzLDcgQEAgTE9HSUNBTF9BUFBMWV9NQUlOCSJXYWl0aW5nIGluIG1haW4gbG9vcCBvZiBs b2dpY2FsIHJlcGxpY2F0aW9uIGFwcGx5IHByb2Nlc3MuIgogTE9HSUNBTF9MQVVOQ0hFUl9NQUlO CSJXYWl0aW5nIGluIG1haW4gbG9vcCBvZiBsb2dpY2FsIHJlcGxpY2F0aW9uIGxhdW5jaGVyIHBy b2Nlc3MuIgogTE9HSUNBTF9QQVJBTExFTF9BUFBMWV9NQUlOCSJXYWl0aW5nIGluIG1haW4gbG9v cCBvZiBsb2dpY2FsIHJlcGxpY2F0aW9uIHBhcmFsbGVsIGFwcGx5IHByb2Nlc3MuIgogUkVDT1ZF UllfV0FMX1NUUkVBTQkiV2FpdGluZyBpbiBtYWluIGxvb3Agb2Ygc3RhcnR1cCBwcm9jZXNzIGZv ciBXQUwgdG8gYXJyaXZlLCBkdXJpbmcgc3RyZWFtaW5nIHJlY292ZXJ5LiIKK1JFUExfU0xPVFNZ TkNfTUFJTgkiV2FpdGluZyBpbiBtYWluIGxvb3Agb2Ygc2xvdCBzeW5jIHdvcmtlci4iCiBTWVNM T0dHRVJfTUFJTgkiV2FpdGluZyBpbiBtYWluIGxvb3Agb2Ygc3lzbG9nZ2VyIHByb2Nlc3MuIgog V0FMX1JFQ0VJVkVSX01BSU4JIldhaXRpbmcgaW4gbWFpbiBsb29wIG9mIFdBTCByZWNlaXZlciBw cm9jZXNzLiIKIFdBTF9TRU5ERVJfTUFJTgkiV2FpdGluZyBpbiBtYWluIGxvb3Agb2YgV0FMIHNl bmRlciBwcm9jZXNzLiIKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3Rh Ymxlcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKaW5kZXggN2ZlNTg1 MThkNy4uZmUwNDRjMTZkZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNf dGFibGVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTY4 LDYgKzY4LDcgQEAKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dpY2FsbGF1bmNoZXIuaCIKICNp bmNsdWRlICJyZXBsaWNhdGlvbi9zbG90LmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vc3luY3Jl cC5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oIgogI2luY2x1ZGUg InN0b3JhZ2UvYnVmbWdyLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sYXJnZV9vYmplY3QuaCIKICNp bmNsdWRlICJzdG9yYWdlL3BnX3NobWVtLmgiCkBAIC0yMDU0LDYgKzIwNTUsMTUgQEAgc3RydWN0 IGNvbmZpZ19ib29sIENvbmZpZ3VyZU5hbWVzQm9vbFtdID0KIAkJTlVMTCwgTlVMTCwgTlVMTAog CX0sCiAKKwl7CisJCXsiZW5hYmxlX3N5bmNzbG90IiwgUEdDX1BPU1RNQVNURVIsIFJFUExJQ0FU SU9OX1NUQU5EQlksCisJCQlnZXR0ZXh0X25vb3AoIkVuYWJsZXMgYSBwaHlzaWNhbCBzdGFuZGJ5 IHRvIHN5bmNocm9uaXplIGxvZ2ljYWwgZmFpbG92ZXIgc2xvdHMgZnJvbSB0aGUgcHJpbWFyeSBz ZXJ2ZXIuIiksCisJCX0sCisJCSZlbmFibGVfc3luY3Nsb3QsCisJCWZhbHNlLAorCQlOVUxMLCBO VUxMLCBOVUxMCisJfSwKKwogCS8qIEVuZC1vZi1saXN0IG1hcmtlciAqLwogCXsKIAkJe05VTEws IDAsIDAsIE5VTEwsIE5VTEx9LCBOVUxMLCBmYWxzZSwgTlVMTCwgTlVMTCwgTlVMTApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIGIvc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCmluZGV4IGRhMTBiNDNk YWMuLjM4Njg2OTRkM2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdy ZXNxbC5jb25mLnNhbXBsZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwu Y29uZi5zYW1wbGUKQEAgLTM2MSw2ICszNjEsNyBAQAogI3dhbF9yZXRyaWV2ZV9yZXRyeV9pbnRl cnZhbCA9IDVzCSMgdGltZSB0byB3YWl0IGJlZm9yZSByZXRyeWluZyB0bwogCQkJCQkjIHJldHJp ZXZlIFdBTCBhZnRlciBhIGZhaWxlZCBhdHRlbXB0CiAjcmVjb3ZlcnlfbWluX2FwcGx5X2RlbGF5 ID0gMAkJIyBtaW5pbXVtIGRlbGF5IGZvciBhcHBseWluZyBjaGFuZ2VzIGR1cmluZyByZWNvdmVy eQorI2VuYWJsZV9zeW5jc2xvdCA9IG9mZgkJCSMgZW5hYmxlcyBzbG90IHN5bmNocm9uaXphdGlv biBvbiB0aGUgcGh5c2ljYWwgc3RhbmRieSBmcm9tIHRoZSBwcmltYXJ5CiAKICMgLSBTdWJzY3Jp YmVycyAtCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDI5YWY0Y2U2NWQuLjk5NGUzM2Y1 OWIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMTExMjcsOSArMTExMjcsOSBAQAogICBw cm9uYW1lID0+ICdwZ19nZXRfcmVwbGljYXRpb25fc2xvdHMnLCBwcm9yb3dzID0+ICcxMCcsIHBy b2lzc3RyaWN0ID0+ICdmJywKICAgcHJvcmV0c2V0ID0+ICd0JywgcHJvdm9sYXRpbGUgPT4gJ3Mn LCBwcm9yZXR0eXBlID0+ICdyZWNvcmQnLAogICBwcm9hcmd0eXBlcyA9PiAnJywKLSAgcHJvYWxs YXJndHlwZXMgPT4gJ3tuYW1lLG5hbWUsdGV4dCxvaWQsYm9vbCxib29sLGludDQseGlkLHhpZCxw Z19sc24scGdfbHNuLHRleHQsaW50OCxib29sLHRleHQsYm9vbH0nLAotICBwcm9hcmdtb2RlcyA9 PiAne28sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG99JywKLSAgcHJvYXJnbmFtZXMgPT4g J3tzbG90X25hbWUscGx1Z2luLHNsb3RfdHlwZSxkYXRvaWQsdGVtcG9yYXJ5LGFjdGl2ZSxhY3Rp dmVfcGlkLHhtaW4sY2F0YWxvZ194bWluLHJlc3RhcnRfbHNuLGNvbmZpcm1lZF9mbHVzaF9sc24s d2FsX3N0YXR1cyxzYWZlX3dhbF9zaXplLHR3b19waGFzZSxjb25mbGljdF9yZWFzb24sZmFpbG92 ZXJ9JywKKyAgcHJvYWxsYXJndHlwZXMgPT4gJ3tuYW1lLG5hbWUsdGV4dCxvaWQsYm9vbCxib29s LGludDQseGlkLHhpZCxwZ19sc24scGdfbHNuLHRleHQsaW50OCxib29sLHRleHQsYm9vbCxib29s fScsCisgIHByb2FyZ21vZGVzID0+ICd7byxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxv fScsCisgIHByb2FyZ25hbWVzID0+ICd7c2xvdF9uYW1lLHBsdWdpbixzbG90X3R5cGUsZGF0b2lk LHRlbXBvcmFyeSxhY3RpdmUsYWN0aXZlX3BpZCx4bWluLGNhdGFsb2dfeG1pbixyZXN0YXJ0X2xz bixjb25maXJtZWRfZmx1c2hfbHNuLHdhbF9zdGF0dXMsc2FmZV93YWxfc2l6ZSx0d29fcGhhc2Us Y29uZmxpY3RfcmVhc29uLGZhaWxvdmVyLHN5bmNlZH0nLAogICBwcm9zcmMgPT4gJ3BnX2dldF9y ZXBsaWNhdGlvbl9zbG90cycgfSwKIHsgb2lkID0+ICczNzg2JywgZGVzY3IgPT4gJ3NldCB1cCBh IGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCcsCiAgIHByb25hbWUgPT4gJ3BnX2NyZWF0ZV9sb2dp Y2FsX3JlcGxpY2F0aW9uX3Nsb3QnLCBwcm92b2xhdGlsZSA9PiAndicsCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9wb3N0bWFzdGVyL2Jnd29ya2VyLmggYi9zcmMvaW5jbHVkZS9wb3N0bWFzdGVy L2Jnd29ya2VyLmgKaW5kZXggMjJmYzQ5ZWMyNy4uNzA5MmZjNzJjNiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvcG9zdG1hc3Rlci9iZ3dvcmtlci5oCisrKyBiL3NyYy9pbmNsdWRlL3Bvc3RtYXN0 ZXIvYmd3b3JrZXIuaApAQCAtNzksNiArNzksNyBAQCB0eXBlZGVmIGVudW0KIAlCZ1dvcmtlclN0 YXJ0X1Bvc3RtYXN0ZXJTdGFydCwKIAlCZ1dvcmtlclN0YXJ0X0NvbnNpc3RlbnRTdGF0ZSwKIAlC Z1dvcmtlclN0YXJ0X1JlY292ZXJ5RmluaXNoZWQsCisJQmdXb3JrZXJTdGFydF9Db25zaXN0ZW50 U3RhdGVfSG90U3RhbmRieSwKIH0gQmdXb3JrZXJTdGFydFRpbWU7CiAKICNkZWZpbmUgQkdXX0RF RkFVTFRfUkVTVEFSVF9JTlRFUlZBTAk2MApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGlj YXRpb24vbG9naWNhbHdvcmtlci5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vbG9naWNhbHdv cmtlci5oCmluZGV4IGExOGQ3OWQxYjIuLmJiZTA0MjI2ZGIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3JlcGxpY2F0aW9uL2xvZ2ljYWx3b3JrZXIuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNh dGlvbi9sb2dpY2Fsd29ya2VyLmgKQEAgLTIyLDYgKzIyLDcgQEAgZXh0ZXJuIHZvaWQgVGFibGVz eW5jV29ya2VyTWFpbihEYXR1bSBtYWluX2FyZyk7CiAKIGV4dGVybiBib29sIElzTG9naWNhbFdv cmtlcih2b2lkKTsKIGV4dGVybiBib29sIElzTG9naWNhbFBhcmFsbGVsQXBwbHlXb3JrZXIodm9p ZCk7CitleHRlcm4gYm9vbCBJc0xvZ2ljYWxTbG90U3luY1dvcmtlcih2b2lkKTsKIAogZXh0ZXJu IHZvaWQgSGFuZGxlUGFyYWxsZWxBcHBseU1lc3NhZ2VJbnRlcnJ1cHQodm9pZCk7CiBleHRlcm4g dm9pZCBIYW5kbGVQYXJhbGxlbEFwcGx5TWVzc2FnZXModm9pZCk7CmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90 LmgKaW5kZXggZGE0Yzc3NjQ5Mi4uMWY0NDQ2YWEzYSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv cmVwbGljYXRpb24vc2xvdC5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaApA QCAtNTIsNiArNTIsMTQgQEAgdHlwZWRlZiBlbnVtIFJlcGxpY2F0aW9uU2xvdEludmFsaWRhdGlv bkNhdXNlCiAJUlNfSU5WQUxfV0FMX0xFVkVMLAogfSBSZXBsaWNhdGlvblNsb3RJbnZhbGlkYXRp b25DYXVzZTsKIAorLyoKKyAqIFRoZSBwb3NzaWJsZSB2YWx1ZXMgZm9yICdjb25mbGljdF9yZWFz b24nIHJldHVybmVkIGluCisgKiBwZ19nZXRfcmVwbGljYXRpb25fc2xvdHMuCisgKi8KKyNkZWZp bmUgU0xPVF9JTlZBTF9XQUxfUkVNT1ZFRF9URVhUICJ3YWxfcmVtb3ZlZCIKKyNkZWZpbmUgU0xP VF9JTlZBTF9IT1JJWk9OX1RFWFQgICAgICJyb3dzX3JlbW92ZWQiCisjZGVmaW5lIFNMT1RfSU5W QUxfV0FMX0xFVkVMX1RFWFQgICAid2FsX2xldmVsX2luc3VmZmljaWVudCIKKwogLyoKICAqIE9u LURpc2sgZGF0YSBvZiBhIHJlcGxpY2F0aW9uIHNsb3QsIHByZXNlcnZlZCBhY3Jvc3MgcmVzdGFy dHMuCiAgKi8KQEAgLTExMiw2ICsxMjAsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgUmVwbGljYXRpb25T bG90UGVyc2lzdGVudERhdGEKIAkvKiBwbHVnaW4gbmFtZSAqLwogCU5hbWVEYXRhCXBsdWdpbjsK IAorCS8qCisJICogV2FzIHRoaXMgc2xvdCBzeW5jaHJvbml6ZWQgZnJvbSB0aGUgcHJpbWFyeSBz ZXJ2ZXI/CisJICovCisJY2hhcgkJc3luY2VkOworCiAJLyoKIAkgKiBJcyB0aGlzIGEgZmFpbG92 ZXIgc2xvdCAoc3luYyBjYW5kaWRhdGUgZm9yIHN0YW5kYnlzKT8gT25seSByZWxldmFudAogCSAq IGZvciBsb2dpY2FsIHNsb3RzIG9uIHRoZSBwcmltYXJ5IHNlcnZlci4KQEAgLTIyNCw5ICsyMzcs MTEgQEAgZXh0ZXJuIHZvaWQgUmVwbGljYXRpb25TbG90c1NobWVtSW5pdCh2b2lkKTsKIC8qIG1h bmFnZW1lbnQgb2YgaW5kaXZpZHVhbCBzbG90cyAqLwogZXh0ZXJuIHZvaWQgUmVwbGljYXRpb25T bG90Q3JlYXRlKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgZGJfc3BlY2lmaWMsCiAJCQkJCQkJCSAg UmVwbGljYXRpb25TbG90UGVyc2lzdGVuY3kgcGVyc2lzdGVuY3ksCi0JCQkJCQkJCSAgYm9vbCB0 d29fcGhhc2UsIGJvb2wgZmFpbG92ZXIpOworCQkJCQkJCQkgIGJvb2wgdHdvX3BoYXNlLCBib29s IGZhaWxvdmVyLAorCQkJCQkJCQkgIGJvb2wgc3luY2VkKTsKIGV4dGVybiB2b2lkIFJlcGxpY2F0 aW9uU2xvdFBlcnNpc3Qodm9pZCk7CiBleHRlcm4gdm9pZCBSZXBsaWNhdGlvblNsb3REcm9wKGNv bnN0IGNoYXIgKm5hbWUsIGJvb2wgbm93YWl0KTsKK2V4dGVybiB2b2lkIFJlcGxpY2F0aW9uU2xv dERyb3BBY3F1aXJlZCh2b2lkKTsKIGV4dGVybiB2b2lkIFJlcGxpY2F0aW9uU2xvdEFsdGVyKGNv bnN0IGNoYXIgKm5hbWUsIGJvb2wgZmFpbG92ZXIpOwogCiBleHRlcm4gdm9pZCBSZXBsaWNhdGlv blNsb3RBY3F1aXJlKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgbm93YWl0KTsKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmggYi9zcmMvaW5jbHVkZS9yZXBs aWNhdGlvbi93YWxyZWNlaXZlci5oCmluZGV4IGY1NjZhOTliYTEuLjQ4ZGM4NDZlMTkgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmgKKysrIGIvc3JjL2lu Y2x1ZGUvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuaApAQCAtMjc5LDYgKzI3OSwxMyBAQCB0eXBl ZGVmIHZvaWQgKCp3YWxyY3ZfZ2V0X3NlbmRlcmluZm9fZm4pIChXYWxSZWNlaXZlckNvbm4gKmNv bm4sCiB0eXBlZGVmIGNoYXIgKigqd2FscmN2X2lkZW50aWZ5X3N5c3RlbV9mbikgKFdhbFJlY2Vp dmVyQ29ubiAqY29ubiwKIAkJCQkJCQkJCQkJVGltZUxpbmVJRCAqcHJpbWFyeV90bGkpOwogCisv KgorICogd2FscmN2X2dldF9kYm5hbWVfZnJvbV9jb25uaW5mb19mbgorICoKKyAqIFJldHVybnMg dGhlIGRiaWQgZnJvbSB0aGUgcHJpbWFyeV9jb25uaW5mbworICovCit0eXBlZGVmIGNoYXIgKigq d2FscmN2X2dldF9kYm5hbWVfZnJvbV9jb25uaW5mb19mbikgKGNvbnN0IGNoYXIgKmNvbm5pbmZv KTsKKwogLyoKICAqIHdhbHJjdl9zZXJ2ZXJfdmVyc2lvbl9mbgogICoKQEAgLTQwMyw2ICs0MTAs NyBAQCB0eXBlZGVmIHN0cnVjdCBXYWxSZWNlaXZlckZ1bmN0aW9uc1R5cGUKIAl3YWxyY3ZfZ2V0 X2Nvbm5pbmZvX2ZuIHdhbHJjdl9nZXRfY29ubmluZm87CiAJd2FscmN2X2dldF9zZW5kZXJpbmZv X2ZuIHdhbHJjdl9nZXRfc2VuZGVyaW5mbzsKIAl3YWxyY3ZfaWRlbnRpZnlfc3lzdGVtX2ZuIHdh bHJjdl9pZGVudGlmeV9zeXN0ZW07CisJd2FscmN2X2dldF9kYm5hbWVfZnJvbV9jb25uaW5mb19m biB3YWxyY3ZfZ2V0X2RibmFtZV9mcm9tX2Nvbm5pbmZvOwogCXdhbHJjdl9zZXJ2ZXJfdmVyc2lv bl9mbiB3YWxyY3Zfc2VydmVyX3ZlcnNpb247CiAJd2FscmN2X3JlYWR0aW1lbGluZWhpc3Rvcnlm aWxlX2ZuIHdhbHJjdl9yZWFkdGltZWxpbmVoaXN0b3J5ZmlsZTsKIAl3YWxyY3Zfc3RhcnRzdHJl YW1pbmdfZm4gd2FscmN2X3N0YXJ0c3RyZWFtaW5nOwpAQCAtNDI4LDYgKzQzNiw4IEBAIGV4dGVy biBQR0RMTElNUE9SVCBXYWxSZWNlaXZlckZ1bmN0aW9uc1R5cGUgKldhbFJlY2VpdmVyRnVuY3Rp b25zOwogCVdhbFJlY2VpdmVyRnVuY3Rpb25zLT53YWxyY3ZfZ2V0X3NlbmRlcmluZm8oY29ubiwg c2VuZGVyX2hvc3QsIHNlbmRlcl9wb3J0KQogI2RlZmluZSB3YWxyY3ZfaWRlbnRpZnlfc3lzdGVt KGNvbm4sIHByaW1hcnlfdGxpKSBcCiAJV2FsUmVjZWl2ZXJGdW5jdGlvbnMtPndhbHJjdl9pZGVu dGlmeV9zeXN0ZW0oY29ubiwgcHJpbWFyeV90bGkpCisjZGVmaW5lIHdhbHJjdl9nZXRfZGJuYW1l X2Zyb21fY29ubmluZm8oY29ubmluZm8pIFwKKwlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+d2FscmN2 X2dldF9kYm5hbWVfZnJvbV9jb25uaW5mbyhjb25uaW5mbykKICNkZWZpbmUgd2FscmN2X3NlcnZl cl92ZXJzaW9uKGNvbm4pIFwKIAlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+d2FscmN2X3NlcnZlcl92 ZXJzaW9uKGNvbm4pCiAjZGVmaW5lIHdhbHJjdl9yZWFkdGltZWxpbmVoaXN0b3J5ZmlsZShjb25u LCB0bGksIGZpbGVuYW1lLCBjb250ZW50LCBzaXplKSBcCkBAIC00ODUsNiArNDk1LDcgQEAgZXh0 ZXJuIHZvaWQgUmVxdWVzdFhMb2dTdHJlYW1pbmcoVGltZUxpbmVJRCB0bGksIFhMb2dSZWNQdHIg cmVjcHRyLAogCQkJCQkJCQkgYm9vbCBjcmVhdGVfdGVtcF9zbG90KTsKIGV4dGVybiBYTG9nUmVj UHRyIEdldFdhbFJjdkZsdXNoUmVjUHRyKFhMb2dSZWNQdHIgKmxhdGVzdENodW5rU3RhcnQsIFRp bWVMaW5lSUQgKnJlY2VpdmVUTEkpOwogZXh0ZXJuIFhMb2dSZWNQdHIgR2V0V2FsUmN2V3JpdGVS ZWNQdHIodm9pZCk7CitleHRlcm4gWExvZ1JlY1B0ciBHZXRXYWxSY3ZMYXRlc3RXYWxFbmQodm9p ZCk7CiBleHRlcm4gaW50CUdldFJlcGxpY2F0aW9uQXBwbHlEZWxheSh2b2lkKTsKIGV4dGVybiBp bnQJR2V0UmVwbGljYXRpb25UcmFuc2ZlckxhdGVuY3kodm9pZCk7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRp b24vd2Fsc2VuZGVyLmgKaW5kZXggMWI1OGQ1MGIzYi4uMjc2ZDg5MTNhYSAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVw bGljYXRpb24vd2Fsc2VuZGVyLmgKQEAgLTEyLDYgKzEyLDggQEAKICNpZm5kZWYgX1dBTFNFTkRF Ul9ICiAjZGVmaW5lIF9XQUxTRU5ERVJfSAogCisjaW5jbHVkZSAiYWNjZXNzL3hsb2dkZWZzLmgi CisKIC8qCiAgKiBXaGF0IHRvIGRvIHdpdGggYSBzbmFwc2hvdCBpbiBjcmVhdGUgcmVwbGljYXRp b24gc2xvdCBjb21tYW5kLgogICovCkBAIC00NSw2ICs0Nyw3IEBAIGV4dGVybiB2b2lkIFdhbFNu ZEluaXRTdG9wcGluZyh2b2lkKTsKIGV4dGVybiB2b2lkIFdhbFNuZFdhaXRTdG9wcGluZyh2b2lk KTsKIGV4dGVybiB2b2lkIEhhbmRsZVdhbFNuZEluaXRTdG9wcGluZyh2b2lkKTsKIGV4dGVybiB2 b2lkIFdhbFNuZFJxc3RGaWxlUmVsb2FkKHZvaWQpOworZXh0ZXJuIFhMb2dSZWNQdHIgR2V0U3Rh bmRieUZsdXNoUmVjUHRyKFRpbWVMaW5lSUQgKnRsaSk7CiAKIC8qCiAgKiBSZW1lbWJlciB0aGF0 IHdlIHdhbnQgdG8gd2FrZXVwIHdhbHNlbmRlcnMgbGF0ZXIKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRp b24vd29ya2VyX2ludGVybmFsLmgKaW5kZXggNTE1YWVmZDUxOS4uMjE2NzcyMDk3MSAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmgKKysrIGIvc3Jj L2luY2x1ZGUvcmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmgKQEAgLTIzNyw2ICsyMzcsMTEg QEAgZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgaW5fcmVtb3RlX3RyYW5zYWN0aW9uOwogCiBleHRl cm4gUEdETExJTVBPUlQgYm9vbCBJbml0aWFsaXppbmdBcHBseVdvcmtlcjsKIAorLyogU2xvdCBz eW5jIHdvcmtlciBvYmplY3RzICovCitleHRlcm4gUEdETExJTVBPUlQgY2hhciAqUHJpbWFyeUNv bm5JbmZvOworZXh0ZXJuIFBHRExMSU1QT1JUIGNoYXIgKlByaW1hcnlTbG90TmFtZTsKK2V4dGVy biBQR0RMTElNUE9SVCBib29sIGVuYWJsZV9zeW5jc2xvdDsKKwogZXh0ZXJuIHZvaWQgbG9naWNh bHJlcF93b3JrZXJfYXR0YWNoKGludCBzbG90KTsKIGV4dGVybiBMb2dpY2FsUmVwV29ya2VyICps b2dpY2FscmVwX3dvcmtlcl9maW5kKE9pZCBzdWJpZCwgT2lkIHJlbGlkLAogCQkJCQkJCQkJCQkJ Ym9vbCBvbmx5X3J1bm5pbmcpOwpAQCAtMzI1LDYgKzMzMCwxMSBAQCBleHRlcm4gdm9pZCBwYV9k ZWNyX2FuZF93YWl0X3N0cmVhbV9ibG9jayh2b2lkKTsKIGV4dGVybiB2b2lkIHBhX3hhY3RfZmlu aXNoKFBhcmFsbGVsQXBwbHlXb3JrZXJJbmZvICp3aW5mbywKIAkJCQkJCSAgIFhMb2dSZWNQdHIg cmVtb3RlX2xzbik7CiAKK2V4dGVybiB2b2lkIFJlcGxTbG90U3luY1dvcmtlck1haW4oRGF0dW0g bWFpbl9hcmcpOworZXh0ZXJuIHZvaWQgU2xvdFN5bmNXb3JrZXJSZWdpc3Rlcih2b2lkKTsKK2V4 dGVybiB2b2lkIFNodXREb3duU2xvdFN5bmModm9pZCk7CitleHRlcm4gdm9pZCBTbG90U3luY1dv cmtlclNobWVtSW5pdCh2b2lkKTsKKwogI2RlZmluZSBpc1BhcmFsbGVsQXBwbHlXb3JrZXIod29y a2VyKSAoKHdvcmtlciktPmluX3VzZSAmJiBcCiAJCQkJCQkJCQkgICAod29ya2VyKS0+dHlwZSA9 PSBXT1JLRVJUWVBFX1BBUkFMTEVMX0FQUExZKQogI2RlZmluZSBpc1RhYmxlc3luY1dvcmtlcih3 b3JrZXIpICgod29ya2VyKS0+aW5fdXNlICYmIFwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292 ZXJ5L3QvMDUwX3N0YW5kYnlfZmFpbG92ZXJfc2xvdHNfc3luYy5wbCBiL3NyYy90ZXN0L3JlY292 ZXJ5L3QvMDUwX3N0YW5kYnlfZmFpbG92ZXJfc2xvdHNfc3luYy5wbAppbmRleCA2NDYyOTNjMzll Li4xMDU1NTczY2RlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWNvdmVyeS90LzA1MF9zdGFuZGJ5 X2ZhaWxvdmVyX3Nsb3RzX3N5bmMucGwKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTBfc3Rh bmRieV9mYWlsb3Zlcl9zbG90c19zeW5jLnBsCkBAIC04NCw2ICs4NCwxNzAgQEAgaXMoICRwdWJs aXNoZXItPnNhZmVfcHNxbCgKIAkidCIsCiAJJ2xvZ2ljYWwgc2xvdCBoYXMgZmFpbG92ZXIgdHJ1 ZSBvbiB0aGUgcHVibGlzaGVyJyk7CiAKLSRzdWJzY3JpYmVyMS0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICJEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX215c3ViMSIpOworJHN1YnNjcmliZXIxLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgIkFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX215c3ViMSBF TkFCTEUiKTsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKyMgVGVzdCBsb2dpY2FsIGZhaWxvdmVyIHNsb3RzIG9uIHRoZSBzdGFuZGJ5CisjIENv bmZpZ3VyZSBzdGFuZGJ5MSB0byByZXBsaWNhdGUgYW5kIHN5bmNocm9uaXplIGxvZ2ljYWwgc2xv dHMgY29uZmlndXJlZAorIyBmb3IgZmFpbG92ZXIgb24gdGhlIHByaW1hcnkKKyMKKyMgICAgICAg ICAgICAgIGZhaWxvdmVyIHNsb3QgbHN1YjFfc2xvdC0+fCAtLS0tPiBzdWJzY3JpYmVyMSAoY29u bmVjdGVkIHZpYSBsb2dpY2FsIHJlcGxpY2F0aW9uKQorIyBwcmltYXJ5IC0tLT4gICAgICAgICAg ICAgICAgICAgICAgICAgICB8CisjICAgICAgICAgICAgICBwaHlzaWNhbCBzbG90IHNiMV9zbG90 LS0tPnwgLS0tLT4gc3RhbmRieTEgKGNvbm5lY3RlZCB2aWEgc3RyZWFtaW5nIHJlcGxpY2F0aW9u KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICBsc3ViMV9zbG90KHN5bmNlZF9zbG90KQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworbXkgJHByaW1hcnkgPSAkcHVibGlzaGVyOworbXkg JGJhY2t1cF9uYW1lID0gJ2JhY2t1cCc7CiskcHJpbWFyeS0+YmFja3VwKCRiYWNrdXBfbmFtZSk7 CisKKyMgQ3JlYXRlIGEgc3RhbmRieQorbXkgJHN0YW5kYnkxID0gUG9zdGdyZVNRTDo6VGVzdDo6 Q2x1c3Rlci0+bmV3KCdzdGFuZGJ5MScpOworJHN0YW5kYnkxLT5pbml0X2Zyb21fYmFja3VwKAor CSRwcmltYXJ5LCAkYmFja3VwX25hbWUsCisJaGFzX3N0cmVhbWluZyA9PiAxLAorCWhhc19yZXN0 b3JpbmcgPT4gMSk7CisKK215ICRjb25uc3RyXzEgPSAkcHJpbWFyeS0+Y29ubnN0cjsKKyRzdGFu ZGJ5MS0+YXBwZW5kX2NvbmYoCisJJ3Bvc3RncmVzcWwuY29uZicsIHFxKAorZW5hYmxlX3N5bmNz bG90ID0gdHJ1ZQoraG90X3N0YW5kYnlfZmVlZGJhY2sgPSBvbgorcHJpbWFyeV9zbG90X25hbWUg PSAnc2IxX3Nsb3QnCitwcmltYXJ5X2Nvbm5pbmZvID0gJyRjb25uc3RyXzEgZGJuYW1lPXBvc3Rn cmVzJworKSk7CisKKyRwcmltYXJ5LT5wc3FsKCdwb3N0Z3JlcycsCisJcXtTRUxFQ1QgcGdfY3Jl YXRlX3BoeXNpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ3NiMV9zbG90Jyk7fSk7CisKK215ICRzdGFu ZGJ5MV9jb25uaW5mbyA9ICRzdGFuZGJ5MS0+Y29ubnN0ciAuICcgZGJuYW1lPXBvc3RncmVzJzsK K215ICRvZmZzZXQgPSAtcyAkc3RhbmRieTEtPmxvZ2ZpbGU7CisKKyMgU3RhcnQgdGhlIHN0YW5k Ynkgc28gdGhhdCBzbG90IHN5bmNpbmcgY2FuIGJlZ2luCiskc3RhbmRieTEtPnN0YXJ0OworCisj IEdlbmVyYXRlIGEgbG9nIHRvIHRyaWdnZXIgdGhlIHdhbHNlbmRlciB0byBzZW5kIG1lc3NhZ2Vz IHRvIHRoZSB3YWxyZWNlaXZlcgorIyB3aGljaCB3aWxsIHVwZGF0ZSBXYWxSY3YtPmxhdGVzdFdh bEVuZCB0byBhIHZhbGlkIG51bWJlci4KKyRwcmltYXJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg IlNFTEVDVCBwZ19sb2dfc3RhbmRieV9zbmFwc2hvdCgpOyIpOworCisjIFdhaXQgZm9yIHRoZSBz dGFuZGJ5IHRvIGZpbmlzaCBzeW5jCiskc3RhbmRieTEtPndhaXRfZm9yX2xvZygKKwlxci9MT0c6 ICggW0EtWjAtOV0rOik/IG5ld2x5IGNyZWF0ZWQgc2xvdCBcImxzdWIxX3Nsb3RcIiBpcyBzeW5j LXJlYWR5IG5vdy8sCisJJG9mZnNldCk7CisKKyMgQ29uZmlybSB0aGF0IHRoZSBsb2dpY2FsIGZh aWxvdmVyIHNsb3QgaXMgY3JlYXRlZCBvbiB0aGUgc3RhbmRieSBhbmQgaXMKKyMgZmxhZ2dlZCBh cyAnc3luY2VkJworaXMoJHN0YW5kYnkxLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwlxe1NFTEVD VCBzeW5jZWQgRlJPTSBwZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAnbHN1 YjFfc2xvdCc7fSksCisJInQiLAorCSdsb2dpY2FsIHNsb3QgaGFzIHN5bmNlZCBhcyB0cnVlIG9u IHN0YW5kYnknKTsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKyMgVGVzdCB0byBjb25maXJtIHRoYXQgcmVzdGFydF9sc24gYW5kIGNvbmZpcm1l ZF9mbHVzaF9sc24gb2YgdGhlIGxvZ2ljYWwgc2xvdAorIyBvbiB0aGUgcHJpbWFyeSBpcyBzeW5j ZWQgdG8gdGhlIHN0YW5kYnkKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisKKyMgSW5zZXJ0IGRhdGEgb24gdGhlIHByaW1hcnkKKyRwcmltYXJ5LT5z YWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXFbCisJQ1JFQVRFIFRBQkxFIHRhYl9pbnQgKGEgaW50 IFBSSU1BUlkgS0VZKTsKKwlJTlNFUlQgSU5UTyB0YWJfaW50IFNFTEVDVCBnZW5lcmF0ZV9zZXJp ZXMoMSwgMTApOworXSk7CisKKyMgU3Vic2NyaWJlIHRvIHRoZSBuZXcgdGFibGUgZGF0YSBhbmQg d2FpdCBmb3IgaXQgdG8gYXJyaXZlCiskc3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgKKwkncG9zdGdy ZXMnLCBxcVsKKwlDUkVBVEUgVEFCTEUgdGFiX2ludCAoYSBpbnQgUFJJTUFSWSBLRVkpOworCUFM VEVSIFNVQlNDUklQVElPTiByZWdyZXNzX215c3ViMSBSRUZSRVNIIFBVQkxJQ0FUSU9OOworXSk7 CisKKyRzdWJzY3JpYmVyMS0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmM7CisKKyMgRG8gbm90 IGFsbG93IGFueSBmdXJ0aGVyIGFkdmFuY2VtZW50IG9mIHRoZSByZXN0YXJ0X2xzbiBhbmQKKyMg Y29uZmlybWVkX2ZsdXNoX2xzbiBmb3IgdGhlIGxzdWIxX3Nsb3QuCiskc3Vic2NyaWJlcjEtPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAiQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfbXlzdWIxIERJ U0FCTEUiKTsKKworIyBXYWl0IGZvciB0aGUgcmVwbGljYXRpb24gc2xvdCB0byBiZWNvbWUgaW5h Y3RpdmUgb24gdGhlIHB1Ymxpc2hlcgorJHByaW1hcnktPnBvbGxfcXVlcnlfdW50aWwoCisJJ3Bv c3RncmVzJywKKwkiU0VMRUNUIENPVU5UKCopIEZST00gcGdfY2F0YWxvZy5wZ19yZXBsaWNhdGlv bl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAnbHN1YjFfc2xvdCcgQU5EIGFjdGl2ZT0nZiciLAor CTEpOworCisjIEdldCB0aGUgcmVzdGFydF9sc24gZm9yIHRoZSBsb2dpY2FsIHNsb3QgbHN1YjFf c2xvdCBvbiB0aGUgcHJpbWFyeQorbXkgJHByaW1hcnlfcmVzdGFydF9sc24gPSAkcHJpbWFyeS0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCByZXN0YXJ0X2xzbiBmcm9tIHBnX3JlcGxp Y2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9ICdsc3ViMV9zbG90JzsiKTsKKworIyBHZXQg dGhlIGNvbmZpcm1lZF9mbHVzaF9sc24gZm9yIHRoZSBsb2dpY2FsIHNsb3QgbHN1YjFfc2xvdCBv biB0aGUgcHJpbWFyeQorbXkgJHByaW1hcnlfZmx1c2hfbHNuID0gJHByaW1hcnktPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY29uZmlybWVkX2ZsdXNoX2xzbiBmcm9tIHBnX3JlcGxp Y2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9ICdsc3ViMV9zbG90JzsiKTsKKworIyBDb25m aXJtIHRoYXQgcmVzdGFydF9sc24gYW5kIG9mIGNvbmZpcm1lZF9mbHVzaF9sc24gbHN1YjFfc2xv dCBzbG90IGFyZSBzeW5jZWQKKyMgdG8gdGhlIHN0YW5kYnkKK29rKCAkc3RhbmRieTEtPnBvbGxf cXVlcnlfdW50aWwoCisJCSdwb3N0Z3JlcycsCisJCSJTRUxFQ1QgJyRwcmltYXJ5X3Jlc3RhcnRf bHNuJyA9IHJlc3RhcnRfbHNuIEFORCAnJHByaW1hcnlfZmx1c2hfbHNuJyA9IGNvbmZpcm1lZF9m bHVzaF9sc24gZnJvbSBwZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAnbHN1 YjFfc2xvdCc7IiksCisJJ3Jlc3RhcnRfbHNuIGFuZCBjb25maXJtZWRfZmx1c2hfbHNuIG9mIHNs b3QgbHN1YjFfc2xvdCBzeW5jZWQgdG8gc3RhbmRieScpOworCisjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBUZXN0IHRoYXQgYSBzeW5jaHJvbml6 ZWQgc2xvdCBjYW4gbm90IGJlIGRlY29kZWQsIGFsdGVyZWQgb3IgZHJvcHBlZCBieSB0aGUgdXNl cgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKwor IyBEaXNhYmxlIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIHRlbXBvcmFyaWx5IHRvIHN0b3Agc2xvdCBz eW5jIHdvcmtlciBvdGhlcndpc2UKKyMgdGhlIGNvbmNlcm5lZCB0ZXN0aW5nIHNjZW5hcmlvcyBo ZXJlIG1heSBiZSBpbnRlcnJ1cHRlZCBieSBkaWZmZXJlbnQgZXJyb3I6CisjICdFUlJPUjogIHJl cGxpY2F0aW9uIHNsb3QgaXMgYWN0aXZlIGZvciBQSUQgLi4nCiskc3RhbmRieTEtPnNhZmVfcHNx bCgncG9zdGdyZXMnLCAnQUxURVIgU1lTVEVNIFNFVCBob3Rfc3RhbmRieV9mZWVkYmFjayA9IG9m ZjsnKTsKKyRzdGFuZGJ5MS0+cmVzdGFydDsKKworIyBBdHRlbXB0aW5nIHRvIHBlcmZvcm0gbG9n aWNhbCBkZWNvZGluZyBvbiBhIHN5bmNlZCBzbG90IHNob3VsZCByZXN1bHQgaW4gYW4gZXJyb3IK K215ICgkcmVzdWx0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRzdGFuZGJ5MS0+cHNxbCgncG9zdGdy ZXMnLAorCSJzZWxlY3QgKiBmcm9tIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygnbHN1YjFf c2xvdCcsTlVMTCxOVUxMKTsiKTsKK29rKCRzdGRlcnIgPX4gL0VSUk9SOiAgY2Fubm90IHVzZSBy ZXBsaWNhdGlvbiBzbG90ICJsc3ViMV9zbG90IiBmb3IgbG9naWNhbCBkZWNvZGluZy8sCisJImxv Z2ljYWwgZGVjb2RpbmcgaXMgbm90IGFsbG93ZWQgb24gc3luY2VkIHNsb3QiKTsKKworIyBBdHRl bXB0aW5nIHRvIGFsdGVyIGEgc3luY2VkIHNsb3Qgc2hvdWxkIHJlc3VsdCBpbiBhbiBlcnJvcgor KCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJHN0YW5kYnkxLT5wc3FsKAorICAgICdwb3N0 Z3JlcycsCisgICAgcXFbQUxURVJfUkVQTElDQVRJT05fU0xPVCBsc3ViMV9zbG90IChmYWlsb3Zl cik7XSwKKyAgICByZXBsaWNhdGlvbiA9PiAnZGF0YWJhc2UnKTsKK29rKCRzdGRlcnIgPX4gL0VS Uk9SOiAgY2Fubm90IGFsdGVyIHJlcGxpY2F0aW9uIHNsb3QgImxzdWIxX3Nsb3QiLywKKwkic3lu Y2VkIHNsb3Qgb24gc3RhbmRieSBjYW5ub3QgYmUgYWx0ZXJlZCIpOworCisjIEF0dGVtcHRpbmcg dG8gZHJvcCBhIHN5bmNlZCBzbG90IHNob3VsZCByZXN1bHQgaW4gYW4gZXJyb3IKKygkcmVzdWx0 LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRzdGFuZGJ5MS0+cHNxbCgncG9zdGdyZXMnLAorCSJTRUxF Q1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdsc3ViMV9zbG90Jyk7Iik7Citvaygkc3RkZXJy ID1+IC9FUlJPUjogIGNhbm5vdCBkcm9wIHJlcGxpY2F0aW9uIHNsb3QgImxzdWIxX3Nsb3QiLywK Kwkic3luY2VkIHNsb3Qgb24gc3RhbmRieSBjYW5ub3QgYmUgZHJvcHBlZCIpOworCisjIEVuYWJs ZSBob3Rfc3RhbmRieV9mZWVkYmFjayBhbmQgcmVzdGFydCBzdGFuZGJ5Ciskc3RhbmRieTEtPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAnQUxURVIgU1lTVEVNIFNFVCBob3Rfc3RhbmRieV9mZWVkYmFj ayA9IG9uOycpOworJHN0YW5kYnkxLT5yZXN0YXJ0OworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBQcm9tb3RlIHRoZSBzdGFuZGJ5MSB0byBw cmltYXJ5LiBDb25maXJtIHRoYXQ6CisjIGEpIHRoZSBzbG90ICdsc3ViMV9zbG90JyBpcyByZXRh aW5lZCBvbiB0aGUgbmV3IHByaW1hcnkKKyMgYikgbG9naWNhbCByZXBsaWNhdGlvbiBmb3IgcmVn cmVzc19teXN1YjEgaXMgcmVzdW1lZCBzdWNjZXNzZnVsbHkgYWZ0ZXIgZmFpbG92ZXIKKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiskc3RhbmRieTEt PnByb21vdGU7CisKKyMgVXBkYXRlIHN1YnNjcmlwdGlvbiB3aXRoIHRoZSBuZXcgcHJpbWFyeSdz IGNvbm5lY3Rpb24gaW5mbworJHN1YnNjcmliZXIxLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwki QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfbXlzdWIxIENPTk5FQ1RJT04gJyRzdGFuZGJ5MV9j b25uaW5mbyc7CisJIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX215c3ViMSBFTkFCTEU7ICIp OworCisjIENvbmZpcm0gdGhlIHN5bmNlZCBzbG90ICdsc3ViMV9zbG90JyBpcyByZXRhaW5lZCBv biB0aGUgbmV3IHByaW1hcnkKK2lzKCRzdGFuZGJ5MS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ cXtTRUxFQ1Qgc2xvdF9uYW1lIEZST00gcGdfcmVwbGljYXRpb25fc2xvdHMgV0hFUkUgc2xvdF9u YW1lID0gJ2xzdWIxX3Nsb3QnO30pLAorCSdsc3ViMV9zbG90JywKKwknc3luY2VkIHNsb3QgcmV0 YWluZWQgb24gdGhlIG5ldyBwcmltYXJ5Jyk7CisKKyMgSW5zZXJ0IGRhdGEgb24gdGhlIG5ldyBw cmltYXJ5Ciskc3RhbmRieTEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0 YWJfaW50IFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMTEsIDIwKTsiKTsKKyRzdGFuZGJ5MS0+d2Fp dF9mb3JfY2F0Y2h1cCgncmVncmVzc19teXN1YjEnKTsKKworIyBDb25maXJtIHRoYXQgZGF0YSBp biB0YWJfaW50IHJlcGxpY2F0ZWQgb24gdGhlIHN1YnNjcmliZXIKK2lzKCAkc3Vic2NyaWJlcjEt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBjb3VudCgqKSBGUk9NIHRhYl9pbnQ7fSks CisJIjIwIiwKKwknZGF0YSByZXBsaWNhdGVkIGZyb20gdGhlIG5ldyBwcmltYXJ5Jyk7CiAKIGRv bmVfdGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxl cy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAppbmRleCBhYmM5NDRl OGI4Li5iNzQ4OGQ3NjBlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1 bGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dApAQCAtMTQ3 NCw4ICsxNDc0LDkgQEAgcGdfcmVwbGljYXRpb25fc2xvdHN8IFNFTEVDVCBsLnNsb3RfbmFtZSwK ICAgICBsLnNhZmVfd2FsX3NpemUsCiAgICAgbC50d29fcGhhc2UsCiAgICAgbC5jb25mbGljdF9y ZWFzb24sCi0gICAgbC5mYWlsb3ZlcgotICAgRlJPTSAocGdfZ2V0X3JlcGxpY2F0aW9uX3Nsb3Rz KCkgbChzbG90X25hbWUsIHBsdWdpbiwgc2xvdF90eXBlLCBkYXRvaWQsIHRlbXBvcmFyeSwgYWN0 aXZlLCBhY3RpdmVfcGlkLCB4bWluLCBjYXRhbG9nX3htaW4sIHJlc3RhcnRfbHNuLCBjb25maXJt ZWRfZmx1c2hfbHNuLCB3YWxfc3RhdHVzLCBzYWZlX3dhbF9zaXplLCB0d29fcGhhc2UsIGNvbmZs aWN0X3JlYXNvbiwgZmFpbG92ZXIpCisgICAgbC5mYWlsb3ZlciwKKyAgICBsLnN5bmNlZAorICAg RlJPTSAocGdfZ2V0X3JlcGxpY2F0aW9uX3Nsb3RzKCkgbChzbG90X25hbWUsIHBsdWdpbiwgc2xv dF90eXBlLCBkYXRvaWQsIHRlbXBvcmFyeSwgYWN0aXZlLCBhY3RpdmVfcGlkLCB4bWluLCBjYXRh bG9nX3htaW4sIHJlc3RhcnRfbHNuLCBjb25maXJtZWRfZmx1c2hfbHNuLCB3YWxfc3RhdHVzLCBz YWZlX3dhbF9zaXplLCB0d29fcGhhc2UsIGNvbmZsaWN0X3JlYXNvbiwgZmFpbG92ZXIsIHN5bmNl ZCkKICAgICAgTEVGVCBKT0lOIHBnX2RhdGFiYXNlIGQgT04gKChsLmRhdG9pZCA9IGQub2lkKSkp OwogcGdfcm9sZXN8IFNFTEVDVCBwZ19hdXRoaWQucm9sbmFtZSwKICAgICBwZ19hdXRoaWQucm9s c3VwZXIsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N5c3ZpZXdzLm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3lzdmlld3Mub3V0CmluZGV4IDliZTdhY2Ey YjguLmZhZTA1OWQzODkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3lz dmlld3Mub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3lzdmlld3Mub3V0CkBA IC0xMzMsOCArMTMzLDkgQEAgc2VsZWN0IG5hbWUsIHNldHRpbmcgZnJvbSBwZ19zZXR0aW5ncyB3 aGVyZSBuYW1lIGxpa2UgJ2VuYWJsZSUnOwogIGVuYWJsZV9zZWxmX2pvaW5fcmVtb3ZhbCAgICAg ICB8IG9uCiAgZW5hYmxlX3NlcXNjYW4gICAgICAgICAgICAgICAgIHwgb24KICBlbmFibGVfc29y dCAgICAgICAgICAgICAgICAgICAgfCBvbgorIGVuYWJsZV9zeW5jc2xvdCAgICAgICAgICAgICAg ICB8IG9mZgogIGVuYWJsZV90aWRzY2FuICAgICAgICAgICAgICAgICB8IG9uCi0oMjMgcm93cykK KygyNCByb3dzKQogCiAtLSBUaGVyZSBhcmUgYWx3YXlzIHdhaXQgZXZlbnQgZGVzY3JpcHRpb25z IGZvciB2YXJpb3VzIHR5cGVzLgogc2VsZWN0IHR5cGUsIGNvdW50KCopID4gMCBhcyBvayBGUk9N IHBnX3dhaXRfZXZlbnRzCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMu bGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IDUxM2M3NzAyZmYu LmQ1MjdiZjkxOGIgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0 CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0yMzI1LDYgKzIzMjUs NyBAQCBSZWxvY2F0aW9uQnVmZmVySW5mbwogUmVscHRyRnJlZVBhZ2VCdHJlZQogUmVscHRyRnJl ZVBhZ2VNYW5hZ2VyCiBSZWxwdHJGcmVlUGFnZVNwYW5MZWFkZXIKK1JlbW90ZVNsb3QKIFJlbmFt ZVN0bXQKIFJlb3BlblB0clR5cGUKIFJlb3JkZXJCdWZmZXIKQEAgLTI1ODUsNiArMjU4Niw3IEBA IFNsYWJCbG9jawogU2xhYkNvbnRleHQKIFNsYWJTbG90CiBTbG90TnVtYmVyCitTbG90U3luY1dv cmtlckN0eFN0cnVjdAogU2xydUN0bAogU2xydUN0bERhdGEKIFNscnVFcnJvckNhdXNlCi0tIAoy LjMwLjAud2luZG93cy4yCgo= --_008_OS0PR01MB571623B1D01003F99A7BB983947A2OS0PR01MB5716jpnp_ Content-Type: application/octet-stream; name="v69-0004-Slot-sync-worker-as-a-special-process.patch" Content-Description: v69-0004-Slot-sync-worker-as-a-special-process.patch Content-Disposition: attachment; filename="v69-0004-Slot-sync-worker-as-a-special-process.patch"; size=39317; creation-date="Thu, 25 Jan 2024 13:06:42 GMT"; modification-date="Thu, 25 Jan 2024 13:11:47 GMT" Content-Transfer-Encoding: base64 RnJvbSBhOGU3ZWNhMjczYzQxMmE2NWY2MWVhYWY5NzY1NTc0NDA5MWZhZTUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHZldGEgTWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ CkRhdGU6IFRodSwgMjUgSmFuIDIwMjQgMTI6NTQ6MDkgKzA1MzAKU3ViamVjdDogW1BBVENIIHY2 OSA0LzddIFNsb3Qtc3luYyB3b3JrZXIgYXMgYSBzcGVjaWFsIHByb2Nlc3MKClRoaXMgcGF0Y2gg YXR0ZW1wdHMgdG8gc3RhcnQgc2xvdC1zeW5jIHdvcmtlciBhcyBhIHNwZWNpYWwgcHJvY2Vzcwp3 aGljaCBpcyBuZWl0aGVyIGEgYmd3b3JrZXIgbm9yIGFuIEF1eGlsaWFyeSBwcm9jZXNzLiBUaGUg YmVuZWZpdAp3ZSBnZXQgaGVyZSBpcyB3ZSBjYW4gY29udHJvbCB0aGUgc3RhcnQtY29uZGl0aW9u cyBvZiB0aGUgd29ya2VyIHdoaWNoCmZ1cnRoZXIgYWxsb3dzIHVzIHRvIGRlZmluZSAnZW5hYmxl X3N5bmNzbG90JyBhcyBQR0NfU0lHSFVQIHdoaWNoIHdhcwpvdGhlcndpc2UgYSBQR0NfUE9TVE1B U1RFUiBHVUMgd2hlbiBzbG90c3luYyB3b3JrZXIgd2FzIHJlZ2lzdGVyZWQgYXMKYmd3b3JrZXIu Ci0tLQogZG9jL3NyYy9zZ21sL2Jnd29ya2VyLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDY1 ICstLS0KIHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuYyAgICAgICAgICAgICB8ICAg MyAtCiBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYyAgICAgICAgICAgfCAgODYg KysrLS0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYyAgICB8IDM1 OSArKysrKysrKysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcm9jLmMgICAg ICAgICAgICAgICB8ICAxMyArLQogc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jICAgICAgICAg ICAgICAgICAgIHwgIDExIC0KIHNyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9pby5j ICAgICAgICB8ICAgMSArCiAuLi4vdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQg ICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9taXNjaW5pdC5jICAgICAgICAg ICAgIHwgICA5ICstCiBzcmMvYmFja2VuZC91dGlscy9pbml0L3Bvc3Rpbml0LmMgICAgICAgICAg ICAgfCAgIDggKy0KIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jICAgICAgICAg ICB8ICAgMiArLQogc3JjL2luY2x1ZGUvbWlzY2FkbWluLmggICAgICAgICAgICAgICAgICAgICAg IHwgICAxICsKIHNyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuaCAgICAgICAgICAgICB8 ICAgMSAtCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCAgICAgfCAg IDggKy0KIDE0IGZpbGVzIGNoYW5nZWQsIDM4NyBpbnNlcnRpb25zKCspLCAxODEgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Jnd29ya2VyLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvYmd3b3JrZXIuc2dtbAppbmRleCBhN2NmZTZjNThjLi4yYzM5MzM4NWE5IDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvYmd3b3JrZXIuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvYmd3b3JrZXIu c2dtbApAQCAtMTE0LDU5ICsxMTQsMTggQEAgdHlwZWRlZiBzdHJ1Y3QgQmFja2dyb3VuZFdvcmtl cgogCiAgIDxwYXJhPgogICAgPHN0cnVjdGZpZWxkPmJnd19zdGFydF90aW1lPC9zdHJ1Y3RmaWVs ZD4gaXMgdGhlIHNlcnZlciBzdGF0ZSBkdXJpbmcgd2hpY2gKLSAgIDxjb21tYW5kPnBvc3RncmVz PC9jb21tYW5kPiBzaG91bGQgc3RhcnQgdGhlIHByb2Nlc3MuIE5vdGUgdGhhdCB0aGlzIHNldHRp bmcKLSAgIG9ubHkgaW5kaWNhdGVzIHdoZW4gdGhlIHByb2Nlc3NlcyBhcmUgdG8gYmUgc3RhcnRl ZDsgdGhleSBkbyBub3Qgc3RvcCB3aGVuCi0gICBhIGRpZmZlcmVudCBzdGF0ZSBpcyByZWFjaGVk LiBQb3NzaWJsZSB2YWx1ZXMgYXJlOgotCi0gICA8dmFyaWFibGVsaXN0PgotICAgIDx2YXJsaXN0 ZW50cnk+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPkJnV29ya2VyU3RhcnRfUG9zdG1hc3RlclN0YXJ0 PC9saXRlcmFsPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBhcmE+Ci0gICAgICAg PGluZGV4dGVybT48cHJpbWFyeT5CZ1dvcmtlclN0YXJ0X1Bvc3RtYXN0ZXJTdGFydDwvcHJpbWFy eT48L2luZGV4dGVybT4KLSAgICAgICBTdGFydCBhcyBzb29uIGFzIHBvc3RncmVzIGl0c2VsZiBo YXMgZmluaXNoZWQgaXRzIG93biBpbml0aWFsaXphdGlvbjsKLSAgICAgICBwcm9jZXNzZXMgcmVx dWVzdGluZyB0aGlzIGFyZSBub3QgZWxpZ2libGUgZm9yIGRhdGFiYXNlIGNvbm5lY3Rpb25zLgot ICAgICAgPC9wYXJhPgotICAgICA8L2xpc3RpdGVtPgotICAgIDwvdmFybGlzdGVudHJ5PgotCi0g ICAgPHZhcmxpc3RlbnRyeT4KLSAgICAgPHRlcm0+PGxpdGVyYWw+QmdXb3JrZXJTdGFydF9Db25z aXN0ZW50U3RhdGU8L2xpdGVyYWw+PC90ZXJtPgotICAgICA8bGlzdGl0ZW0+Ci0gICAgICA8cGFy YT4KLSAgICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0 YXRlPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPgotICAgICAgIFN0YXJ0IGFzIHNvb24gYXMgYSBjb25z aXN0ZW50IHN0YXRlIGhhcyBiZWVuIHJlYWNoZWQgaW4gYSBob3Qtc3RhbmRieSwKLSAgICAgICBh bGxvd2luZyBwcm9jZXNzZXMgdG8gY29ubmVjdCB0byBkYXRhYmFzZXMgYW5kIHJ1biByZWFkLW9u bHkgcXVlcmllcy4KLSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8L3Zhcmxp c3RlbnRyeT4KLQotICAgIDx2YXJsaXN0ZW50cnk+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPkJnV29y a2VyU3RhcnRfQ29uc2lzdGVudFN0YXRlX0hvdFN0YW5kYnk8L2xpdGVyYWw+PC90ZXJtPgotICAg ICA8bGlzdGl0ZW0+Ci0gICAgICA8cGFyYT4KLSAgICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkJn V29ya2VyU3RhcnRfQ29uc2lzdGVudFN0YXRlX0hvdFN0YW5kYnk8L3ByaW1hcnk+PC9pbmRleHRl cm0+Ci0gICAgICAgU2FtZSBtZWFuaW5nIGFzIDxsaXRlcmFsPkJnV29ya2VyU3RhcnRfQ29uc2lz dGVudFN0YXRlPC9saXRlcmFsPiBidXQKLSAgICAgICBpdCBpcyBtb3JlIHN0cmljdCBpbiB0ZXJt cyBvZiB0aGUgc2VydmVyIGkuZS4gc3RhcnQgdGhlIHdvcmtlciBvbmx5Ci0gICAgICAgaWYgaXQg aXMgaG90LXN0YW5kYnkuCi0gICAgICA8L3BhcmE+Ci0gICAgIDwvbGlzdGl0ZW0+Ci0gICAgPC92 YXJsaXN0ZW50cnk+Ci0KLSAgICA8dmFybGlzdGVudHJ5PgotICAgICA8dGVybT48bGl0ZXJhbD5C Z1dvcmtlclN0YXJ0X1JlY292ZXJ5RmluaXNoZWQ8L2xpdGVyYWw+PC90ZXJtPgotICAgICA8bGlz dGl0ZW0+Ci0gICAgICA8cGFyYT4KLSAgICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkJnV29ya2Vy U3RhcnRfUmVjb3ZlcnlGaW5pc2hlZDwvcHJpbWFyeT48L2luZGV4dGVybT4KLSAgICAgICBTdGFy dCBhcyBzb29uIGFzIHRoZSBzeXN0ZW0gaGFzIGVudGVyZWQgbm9ybWFsIHJlYWQtd3JpdGUgc3Rh dGUuIE5vdGUKLSAgICAgICB0aGF0IHRoZSA8bGl0ZXJhbD5CZ1dvcmtlclN0YXJ0X0NvbnNpc3Rl bnRTdGF0ZTwvbGl0ZXJhbD4gYW5kCi0gICAgICA8bGl0ZXJhbD5CZ1dvcmtlclN0YXJ0X1JlY292 ZXJ5RmluaXNoZWQ8L2xpdGVyYWw+IGFyZSBlcXVpdmFsZW50Ci0gICAgICAgaW4gYSBzZXJ2ZXIg dGhhdCdzIG5vdCBhIGhvdCBzdGFuZGJ5LgotICAgICAgPC9wYXJhPgotICAgICA8L2xpc3RpdGVt PgotICAgIDwvdmFybGlzdGVudHJ5PgotCi0gICA8L3ZhcmlhYmxlbGlzdD4KKyAgIDxjb21tYW5k PnBvc3RncmVzPC9jb21tYW5kPiBzaG91bGQgc3RhcnQgdGhlIHByb2Nlc3M7IGl0IGNhbiBiZSBv bmUgb2YKKyAgIDxsaXRlcmFsPkJnV29ya2VyU3RhcnRfUG9zdG1hc3RlclN0YXJ0PC9saXRlcmFs PiAoc3RhcnQgYXMgc29vbiBhcworICAgPGNvbW1hbmQ+cG9zdGdyZXM8L2NvbW1hbmQ+IGl0c2Vs ZiBoYXMgZmluaXNoZWQgaXRzIG93biBpbml0aWFsaXphdGlvbjsgcHJvY2Vzc2VzCisgICByZXF1 ZXN0aW5nIHRoaXMgYXJlIG5vdCBlbGlnaWJsZSBmb3IgZGF0YWJhc2UgY29ubmVjdGlvbnMpLAor ICAgPGxpdGVyYWw+QmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGU8L2xpdGVyYWw+IChzdGFy dCBhcyBzb29uIGFzIGEgY29uc2lzdGVudCBzdGF0ZQorICAgaGFzIGJlZW4gcmVhY2hlZCBpbiBh IGhvdCBzdGFuZGJ5LCBhbGxvd2luZyBwcm9jZXNzZXMgdG8gY29ubmVjdCB0bworICAgZGF0YWJh c2VzIGFuZCBydW4gcmVhZC1vbmx5IHF1ZXJpZXMpLCBhbmQKKyAgIDxsaXRlcmFsPkJnV29ya2Vy U3RhcnRfUmVjb3ZlcnlGaW5pc2hlZDwvbGl0ZXJhbD4gKHN0YXJ0IGFzIHNvb24gYXMgdGhlIHN5 c3RlbSBoYXMKKyAgIGVudGVyZWQgbm9ybWFsIHJlYWQtd3JpdGUgc3RhdGUpLiAgTm90ZSB0aGUg bGFzdCB0d28gdmFsdWVzIGFyZSBlcXVpdmFsZW50CisgICBpbiBhIHNlcnZlciB0aGF0J3Mgbm90 IGEgaG90IHN0YW5kYnkuICBOb3RlIHRoYXQgdGhpcyBzZXR0aW5nIG9ubHkgaW5kaWNhdGVzCisg ICB3aGVuIHRoZSBwcm9jZXNzZXMgYXJlIHRvIGJlIHN0YXJ0ZWQ7IHRoZXkgZG8gbm90IHN0b3Ag d2hlbiBhIGRpZmZlcmVudCBzdGF0ZQorICAgaXMgcmVhY2hlZC4KICAgPC9wYXJhPgogCiAgIDxw YXJhPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9iZ3dvcmtlci5jIGIvc3Jj L2JhY2tlbmQvcG9zdG1hc3Rlci9iZ3dvcmtlci5jCmluZGV4IDQ2ODI4YjhhODkuLjFhZGQ0NDlm N2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuYworKysgYi9z cmMvYmFja2VuZC9wb3N0bWFzdGVyL2Jnd29ya2VyLmMKQEAgLTEzMCw5ICsxMzAsNiBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0CiAJewogCQkiQXBwbHlXb3JrZXJNYWluIiwgQXBwbHlXb3JrZXJNYWlu CiAJfSwKLQl7Ci0JCSJSZXBsU2xvdFN5bmNXb3JrZXJNYWluIiwgUmVwbFNsb3RTeW5jV29ya2Vy TWFpbgotCX0sCiAJewogCQkiUGFyYWxsZWxBcHBseVdvcmtlck1haW4iLCBQYXJhbGxlbEFwcGx5 V29ya2VyTWFpbgogCX0sCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3Rt YXN0ZXIuYyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCmluZGV4IGQ5MGQ1 ZDE1NzYuLmFkZmFmNzVjZjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9z dG1hc3Rlci5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCkBAIC0x NjgsMTEgKzE2OCwxMSBAQAogICogdGhleSB3aWxsIG5ldmVyIGJlY29tZSBsaXZlIGJhY2tlbmRz LiAgZGVhZF9lbmQgY2hpbGRyZW4gYXJlIG5vdCBhc3NpZ25lZCBhCiAgKiBQTUNoaWxkU2xvdC4g IGRlYWRfZW5kIGNoaWxkcmVuIGhhdmUgYmtlbmRfdHlwZSBOT1JNQUwuCiAgKgotICogIlNwZWNp YWwiIGNoaWxkcmVuIHN1Y2ggYXMgdGhlIHN0YXJ0dXAsIGJnd3JpdGVyIGFuZCBhdXRvdmFjdXVt IGxhdW5jaGVyCi0gKiB0YXNrcyBhcmUgbm90IGluIHRoaXMgbGlzdC4gIFRoZXkgYXJlIHRyYWNr ZWQgdmlhIFN0YXJ0dXBQSUQgYW5kIG90aGVyCi0gKiBwaWRfdCB2YXJpYWJsZXMgYmVsb3cuICAo VGh1cywgdGhlcmUgY2FuJ3QgYmUgbW9yZSB0aGFuIG9uZSBvZiBhbnkgZ2l2ZW4KLSAqICJzcGVj aWFsIiBjaGlsZCBwcm9jZXNzIHR5cGUuICBXZSB1c2UgQmFja2VuZExpc3QgZW50cmllcyBmb3Ig YW55IGNoaWxkCi0gKiBwcm9jZXNzIHRoZXJlIGNhbiBiZSBtb3JlIHRoYW4gb25lIG9mLikKKyAq ICJTcGVjaWFsIiBjaGlsZHJlbiBzdWNoIGFzIHRoZSBzdGFydHVwLCBiZ3dyaXRlciwgYXV0b3Zh Y3V1bSBsYXVuY2hlciBhbmQKKyAqIHNsb3Qgc3luYyB3b3JrZXIgdGFza3MgYXJlIG5vdCBpbiB0 aGlzIGxpc3QuICBUaGV5IGFyZSB0cmFja2VkIHZpYSBTdGFydHVwUElECisgKiBhbmQgb3RoZXIg cGlkX3QgdmFyaWFibGVzIGJlbG93LiAgKFRodXMsIHRoZXJlIGNhbid0IGJlIG1vcmUgdGhhbiBv bmUgb2YgYW55CisgKiBnaXZlbiAic3BlY2lhbCIgY2hpbGQgcHJvY2VzcyB0eXBlLiAgV2UgdXNl IEJhY2tlbmRMaXN0IGVudHJpZXMgZm9yIGFueQorICogY2hpbGQgcHJvY2VzcyB0aGVyZSBjYW4g YmUgbW9yZSB0aGFuIG9uZSBvZi4pCiAgKi8KIHR5cGVkZWYgc3RydWN0IGJrZW5kCiB7CkBAIC0y NTUsNyArMjU1LDggQEAgc3RhdGljIHBpZF90IFN0YXJ0dXBQSUQgPSAwLAogCQkJV2FsU3VtbWFy aXplclBJRCA9IDAsCiAJCQlBdXRvVmFjUElEID0gMCwKIAkJCVBnQXJjaFBJRCA9IDAsCi0JCQlT eXNMb2dnZXJQSUQgPSAwOworCQkJU3lzTG9nZ2VyUElEID0gMCwKKwkJCVNsb3RTeW5jV29ya2Vy UElEID0gMDsKIAogLyogU3RhcnR1cCBwcm9jZXNzJ3Mgc3RhdHVzICovCiB0eXBlZGVmIGVudW0K QEAgLTQ1OSw2ICs0NjAsMTAgQEAgc3RhdGljIHZvaWQgSW5pdFBvc3RtYXN0ZXJEZWF0aFdhdGNo SGFuZGxlKHZvaWQpOwogCSAgIChwbVN0YXRlID09IFBNX1JFQ09WRVJZIHx8IHBtU3RhdGUgPT0g UE1fSE9UX1NUQU5EQlkpKSkgJiYgXAogCSBQZ0FyY2hDYW5SZXN0YXJ0KCkpCiAKKyNkZWZpbmUg U2xvdFN5bmNXb3JrZXJBbGxvd2VkKCkJXAorCShlbmFibGVfc3luY3Nsb3QgJiYgcG1TdGF0ZSA9 PSBQTV9IT1RfU1RBTkRCWSAmJiBcCisJIFNsb3RTeW5jV29ya2VyQ2FuUmVzdGFydCgpKQorCiAj aWZkZWYgRVhFQ19CQUNLRU5ECiAKICNpZmRlZiBXSU4zMgpAQCAtMTAxMSwxMiArMTAxNiw2IEBA IFBvc3RtYXN0ZXJNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJICovCiAJQXBwbHlMYXVu Y2hlclJlZ2lzdGVyKCk7CiAKLQkvKgotCSAqIFJlZ2lzdGVyIHRoZSBzbG90IHN5bmMgd29ya2Vy IGhlcmUgdG8ga2ljayBzdGFydCBzbG90LXN5bmMgb3BlcmF0aW9uCi0JICogc29vbmVyIG9uIHRo ZSBwaHlzaWNhbCBzdGFuZGJ5LgotCSAqLwotCVNsb3RTeW5jV29ya2VyUmVnaXN0ZXIoKTsKLQog CS8qCiAJICogcHJvY2VzcyBhbnkgbGlicmFyaWVzIHRoYXQgc2hvdWxkIGJlIHByZWxvYWRlZCBh dCBwb3N0bWFzdGVyIHN0YXJ0CiAJICovCkBAIC0xODM3LDYgKzE4MzYsMTAgQEAgU2VydmVyTG9v cCh2b2lkKQogCQlpZiAoUGdBcmNoUElEID09IDAgJiYgUGdBcmNoU3RhcnR1cEFsbG93ZWQoKSkK IAkJCVBnQXJjaFBJRCA9IFN0YXJ0QXJjaGl2ZXIoKTsKIAorCQkvKiBJZiB3ZSBuZWVkIHRvIHN0 YXJ0IGEgc2xvdCBzeW5jIHdvcmtlciwgdHJ5IHRvIGRvIHRoYXQgbm93ICovCisJCWlmIChTbG90 U3luY1dvcmtlclBJRCA9PSAwICYmIFNsb3RTeW5jV29ya2VyQWxsb3dlZCgpKQorCQkJU2xvdFN5 bmNXb3JrZXJQSUQgPSBTdGFydFNsb3RTeW5jV29ya2VyKCk7CisKIAkJLyogSWYgd2UgbmVlZCB0 byBzaWduYWwgdGhlIGF1dG92YWN1dW0gbGF1bmNoZXIsIGRvIHNvIG5vdyAqLwogCQlpZiAoYXZs YXVuY2hlcl9uZWVkc19zaWduYWwpCiAJCXsKQEAgLTI2ODQsNiArMjY4Nyw4IEBAIHByb2Nlc3Nf cG1fcmVsb2FkX3JlcXVlc3Qodm9pZCkKIAkJCXNpZ25hbF9jaGlsZChQZ0FyY2hQSUQsIFNJR0hV UCk7CiAJCWlmIChTeXNMb2dnZXJQSUQgIT0gMCkKIAkJCXNpZ25hbF9jaGlsZChTeXNMb2dnZXJQ SUQsIFNJR0hVUCk7CisJCWlmIChTbG90U3luY1dvcmtlclBJRCAhPSAwKQorCQkJc2lnbmFsX2No aWxkKFNsb3RTeW5jV29ya2VyUElELCBTSUdIVVApOwogCiAJCS8qIFJlbG9hZCBhdXRoZW50aWNh dGlvbiBjb25maWcgZmlsZXMgdG9vICovCiAJCWlmICghbG9hZF9oYmEoKSkKQEAgLTMwNDEsNiAr MzA0Niw4IEBAIHByb2Nlc3NfcG1fY2hpbGRfZXhpdCh2b2lkKQogCQkJCUF1dG9WYWNQSUQgPSBT dGFydEF1dG9WYWNMYXVuY2hlcigpOwogCQkJaWYgKFBnQXJjaFN0YXJ0dXBBbGxvd2VkKCkgJiYg UGdBcmNoUElEID09IDApCiAJCQkJUGdBcmNoUElEID0gU3RhcnRBcmNoaXZlcigpOworCQkJaWYg KFNsb3RTeW5jV29ya2VyQWxsb3dlZCgpICYmIFNsb3RTeW5jV29ya2VyUElEID09IDApCisJCQkJ U2xvdFN5bmNXb3JrZXJQSUQgPSBTdGFydFNsb3RTeW5jV29ya2VyKCk7CiAKIAkJCS8qIHdvcmtl cnMgbWF5IGJlIHNjaGVkdWxlZCB0byBzdGFydCBub3cgKi8KIAkJCW1heWJlX3N0YXJ0X2Jnd29y a2VycygpOwpAQCAtMzIxMSw2ICszMjE4LDIyIEBAIHByb2Nlc3NfcG1fY2hpbGRfZXhpdCh2b2lk KQogCQkJY29udGludWU7CiAJCX0KIAorCQkvKgorCQkgKiBXYXMgaXQgdGhlIHNsb3Qgc3luYyB3 b3JrZXI/IE5vcm1hbCBleGl0IG9yIEZBVEFMIGV4aXQgY2FuIGJlCisJCSAqIGlnbm9yZWQgKEZB VEFMIGNhbiBiZSBjYXVzZWQgYnkgbGlicHF3YWxyZWNlaXZlciBvbiByZWNlaXZpbmcKKwkJICog c2h1dGRvd24gcmVxdWVzdCBieSB0aGUgc3RhcnR1cCBwcm9jZXNzIGR1cmluZyBwcm9tb3Rpb24p OyB3ZSdsbAorCQkgKiBzdGFydCBhIG5ldyBvbmUgYXQgdGhlIG5leHQgaXRlcmF0aW9uIG9mIHRo ZSBwb3N0bWFzdGVyJ3MgbWFpbgorCQkgKiBsb29wLCBpZiBuZWNlc3NhcnkuIEFueSBvdGhlciBl eGl0IGNvbmRpdGlvbiBpcyB0cmVhdGVkIGFzIGEgY3Jhc2guCisJCSAqLworCQlpZiAocGlkID09 IFNsb3RTeW5jV29ya2VyUElEKQorCQl7CisJCQlTbG90U3luY1dvcmtlclBJRCA9IDA7CisJCQlp ZiAoIUVYSVRfU1RBVFVTXzAoZXhpdHN0YXR1cykgJiYgIUVYSVRfU1RBVFVTXzEoZXhpdHN0YXR1 cykpCisJCQkJSGFuZGxlQ2hpbGRDcmFzaChwaWQsIGV4aXRzdGF0dXMsCisJCQkJCQkJCSBfKCJz bG90IHN5bmMgd29ya2VyIHByb2Nlc3MiKSk7CisJCQljb250aW51ZTsKKwkJfQorCiAJCS8qIFdh cyBpdCBvbmUgb2Ygb3VyIGJhY2tncm91bmQgd29ya2Vycz8gKi8KIAkJaWYgKENsZWFudXBCYWNr Z3JvdW5kV29ya2VyKHBpZCwgZXhpdHN0YXR1cykpCiAJCXsKQEAgLTM1NzcsNiArMzYwMCwxMiBA QCBIYW5kbGVDaGlsZENyYXNoKGludCBwaWQsIGludCBleGl0c3RhdHVzLCBjb25zdCBjaGFyICpw cm9jbmFtZSkKIAllbHNlIGlmIChQZ0FyY2hQSUQgIT0gMCAmJiB0YWtlX2FjdGlvbikKIAkJc2ln cXVpdF9jaGlsZChQZ0FyY2hQSUQpOwogCisJLyogVGFrZSBjYXJlIG9mIHRoZSBzbG90IHN5bmMg d29ya2VyIHRvbyAqLworCWlmIChwaWQgPT0gU2xvdFN5bmNXb3JrZXJQSUQpCisJCVNsb3RTeW5j V29ya2VyUElEID0gMDsKKwllbHNlIGlmIChTbG90U3luY1dvcmtlclBJRCAhPSAwICYmIHRha2Vf YWN0aW9uKQorCQlzaWdxdWl0X2NoaWxkKFNsb3RTeW5jV29ya2VyUElEKTsKKwogCS8qIFdlIGRv IE5PVCByZXN0YXJ0IHRoZSBzeXNsb2dnZXIgKi8KIAogCWlmIChTaHV0ZG93biAhPSBJbW1lZGlh dGVTaHV0ZG93bikKQEAgLTM3MTcsNiArMzc0Niw4IEBAIFBvc3RtYXN0ZXJTdGF0ZU1hY2hpbmUo dm9pZCkKIAkJCXNpZ25hbF9jaGlsZChXYWxSZWNlaXZlclBJRCwgU0lHVEVSTSk7CiAJCWlmIChX YWxTdW1tYXJpemVyUElEICE9IDApCiAJCQlzaWduYWxfY2hpbGQoV2FsU3VtbWFyaXplclBJRCwg U0lHVEVSTSk7CisJCWlmIChTbG90U3luY1dvcmtlclBJRCAhPSAwKQorCQkJc2lnbmFsX2NoaWxk KFNsb3RTeW5jV29ya2VyUElELCBTSUdURVJNKTsKIAkJLyogY2hlY2twb2ludGVyLCBhcmNoaXZl ciwgc3RhdHMsIGFuZCBzeXNsb2dnZXIgbWF5IGNvbnRpbnVlIGZvciBub3cgKi8KIAogCQkvKiBO b3cgdHJhbnNpdGlvbiB0byBQTV9XQUlUX0JBQ0tFTkRTIHN0YXRlIHRvIHdhaXQgZm9yIHRoZW0g dG8gZGllICovCkBAIC0zNzMyLDEzICszNzYzLDEzIEBAIFBvc3RtYXN0ZXJTdGF0ZU1hY2hpbmUo dm9pZCkKIAkJLyoKIAkJICogUE1fV0FJVF9CQUNLRU5EUyBzdGF0ZSBlbmRzIHdoZW4gd2UgaGF2 ZSBubyByZWd1bGFyIGJhY2tlbmRzCiAJCSAqIChpbmNsdWRpbmcgYXV0b3ZhYyB3b3JrZXJzKSwg bm8gYmd3b3JrZXJzIChpbmNsdWRpbmcgdW5jb25uZWN0ZWQKLQkJICogb25lcyksIGFuZCBubyB3 YWx3cml0ZXIsIGF1dG92YWMgbGF1bmNoZXIgb3IgYmd3cml0ZXIuICBJZiB3ZSBhcmUKLQkJICog ZG9pbmcgY3Jhc2ggcmVjb3Zlcnkgb3IgYW4gaW1tZWRpYXRlIHNodXRkb3duIHRoZW4gd2UgZXhw ZWN0IHRoZQotCQkgKiBjaGVja3BvaW50ZXIgdG8gZXhpdCBhcyB3ZWxsLCBvdGhlcndpc2Ugbm90 LiBUaGUgc3RhdHMgYW5kCi0JCSAqIHN5c2xvZ2dlciBwcm9jZXNzZXMgYXJlIGRpc3JlZ2FyZGVk IHNpbmNlIHRoZXkgYXJlIG5vdCBjb25uZWN0ZWQgdG8KLQkJICogc2hhcmVkIG1lbW9yeTsgd2Ug YWxzbyBkaXNyZWdhcmQgZGVhZF9lbmQgY2hpbGRyZW4gaGVyZS4gV2Fsc2VuZGVycwotCQkgKiBh bmQgYXJjaGl2ZXIgYXJlIGFsc28gZGlzcmVnYXJkZWQsIHRoZXkgd2lsbCBiZSB0ZXJtaW5hdGVk IGxhdGVyCi0JCSAqIGFmdGVyIHdyaXRpbmcgdGhlIGNoZWNrcG9pbnQgcmVjb3JkLgorCQkgKiBv bmVzKSwgYW5kIG5vIHdhbHdyaXRlciwgYXV0b3ZhYyBsYXVuY2hlciwgYmd3cml0ZXIgb3Igc2xv dCBzeW5jCisJCSAqIHdvcmtlci4gIElmIHdlIGFyZSBkb2luZyBjcmFzaCByZWNvdmVyeSBvciBh biBpbW1lZGlhdGUgc2h1dGRvd24KKwkJICogdGhlbiB3ZSBleHBlY3QgdGhlIGNoZWNrcG9pbnRl ciB0byBleGl0IGFzIHdlbGwsIG90aGVyd2lzZSBub3QuIFRoZQorCQkgKiBzdGF0cyBhbmQgc3lz bG9nZ2VyIHByb2Nlc3NlcyBhcmUgZGlzcmVnYXJkZWQgc2luY2UgdGhleSBhcmUgbm90CisJCSAq IGNvbm5lY3RlZCB0byBzaGFyZWQgbWVtb3J5OyB3ZSBhbHNvIGRpc3JlZ2FyZCBkZWFkX2VuZCBj aGlsZHJlbgorCQkgKiBoZXJlLiBXYWxzZW5kZXJzIGFuZCBhcmNoaXZlciBhcmUgYWxzbyBkaXNy ZWdhcmRlZCwgdGhleSB3aWxsIGJlCisJCSAqIHRlcm1pbmF0ZWQgbGF0ZXIgYWZ0ZXIgd3JpdGlu ZyB0aGUgY2hlY2twb2ludCByZWNvcmQuCiAJCSAqLwogCQlpZiAoQ291bnRDaGlsZHJlbihCQUNL RU5EX1RZUEVfQUxMIC0gQkFDS0VORF9UWVBFX1dBTFNORCkgPT0gMCAmJgogCQkJU3RhcnR1cFBJ RCA9PSAwICYmCkBAIC0zNzQ4LDcgKzM3NzksOCBAQCBQb3N0bWFzdGVyU3RhdGVNYWNoaW5lKHZv aWQpCiAJCQkoQ2hlY2twb2ludGVyUElEID09IDAgfHwKIAkJCSAoIUZhdGFsRXJyb3IgJiYgU2h1 dGRvd24gPCBJbW1lZGlhdGVTaHV0ZG93bikpICYmCiAJCQlXYWxXcml0ZXJQSUQgPT0gMCAmJgot CQkJQXV0b1ZhY1BJRCA9PSAwKQorCQkJQXV0b1ZhY1BJRCA9PSAwICYmCisJCQlTbG90U3luY1dv cmtlclBJRCA9PSAwKQogCQl7CiAJCQlpZiAoU2h1dGRvd24gPj0gSW1tZWRpYXRlU2h1dGRvd24g fHwgRmF0YWxFcnJvcikKIAkJCXsKQEAgLTM4NDYsNiArMzg3OCw3IEBAIFBvc3RtYXN0ZXJTdGF0 ZU1hY2hpbmUodm9pZCkKIAkJCUFzc2VydChDaGVja3BvaW50ZXJQSUQgPT0gMCk7CiAJCQlBc3Nl cnQoV2FsV3JpdGVyUElEID09IDApOwogCQkJQXNzZXJ0KEF1dG9WYWNQSUQgPT0gMCk7CisJCQlB c3NlcnQoU2xvdFN5bmNXb3JrZXJQSUQgPT0gMCk7CiAJCQkvKiBzeXNsb2dnZXIgaXMgbm90IGNv bnNpZGVyZWQgaGVyZSAqLwogCQkJcG1TdGF0ZSA9IFBNX05PX0NISUxEUkVOOwogCQl9CkBAIC00 MDY5LDYgKzQxMDIsOCBAQCBUZXJtaW5hdGVDaGlsZHJlbihpbnQgc2lnbmFsKQogCQlzaWduYWxf Y2hpbGQoQXV0b1ZhY1BJRCwgc2lnbmFsKTsKIAlpZiAoUGdBcmNoUElEICE9IDApCiAJCXNpZ25h bF9jaGlsZChQZ0FyY2hQSUQsIHNpZ25hbCk7CisJaWYgKFNsb3RTeW5jV29ya2VyUElEICE9IDAp CisJCXNpZ25hbF9jaGlsZChTbG90U3luY1dvcmtlclBJRCwgc2lnbmFsKTsKIH0KIAogLyoKQEAg LTQ4ODEsNiArNDkxNiw3IEBAIFN1YlBvc3RtYXN0ZXJNYWluKGludCBhcmdjLCBjaGFyICphcmd2 W10pCiAJICovCiAJaWYgKHN0cmNtcChhcmd2WzFdLCAiLS1mb3JrYmFja2VuZCIpID09IDAgfHwK IAkJc3RyY21wKGFyZ3ZbMV0sICItLWZvcmthdmxhdW5jaGVyIikgPT0gMCB8fAorCQlzdHJjbXAo YXJndlsxXSwgIi0tZm9ya3Nzd29ya2VyIikgPT0gMCB8fAogCQlzdHJjbXAoYXJndlsxXSwgIi0t Zm9ya2F2d29ya2VyIikgPT0gMCB8fAogCQlzdHJjbXAoYXJndlsxXSwgIi0tZm9ya2F1eCIpID09 IDAgfHwKIAkJc3RyY21wKGFyZ3ZbMV0sICItLWZvcmtiZ3dvcmtlciIpID09IDApCkBAIC00OTg0 LDYgKzUwMjAsMTMgQEAgU3ViUG9zdG1hc3Rlck1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkK IAogCQlBdXRvVmFjV29ya2VyTWFpbihhcmdjIC0gMiwgYXJndiArIDIpOwkvKiBkb2VzIG5vdCBy ZXR1cm4gKi8KIAl9CisJaWYgKHN0cmNtcChhcmd2WzFdLCAiLS1mb3Jrc3N3b3JrZXIiKSA9PSAw KQorCXsKKwkJLyogUmVzdG9yZSBiYXNpYyBzaGFyZWQgbWVtb3J5IHBvaW50ZXJzICovCisJCUlu aXRTaG1lbUFjY2VzcyhVc2VkU2htZW1TZWdBZGRyKTsKKworCQlSZXBsU2xvdFN5bmNXb3JrZXJN YWluKGFyZ2MgLSAyLCBhcmd2ICsgMik7IC8qIGRvZXMgbm90IHJldHVybiAqLworCX0KIAlpZiAo c3RyY21wKGFyZ3ZbMV0sICItLWZvcmtiZ3dvcmtlciIpID09IDApCiAJewogCQkvKiBkbyB0aGlz IGFzIGVhcmx5IGFzIHBvc3NpYmxlOyBpbiBwYXJ0aWN1bGFyLCBiZWZvcmUgSW5pdFByb2Nlc3Mo KSAqLwpAQCAtNTgwNiw5ICs1ODQ5LDYgQEAgYmd3b3JrZXJfc2hvdWxkX3N0YXJ0X25vdyhCZ1dv cmtlclN0YXJ0VGltZSBzdGFydF90aW1lKQogCQljYXNlIFBNX0hPVF9TVEFOREJZOgogCQkJaWYg KHN0YXJ0X3RpbWUgPT0gQmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGUpCiAJCQkJcmV0dXJu IHRydWU7Ci0JCQlpZiAoc3RhcnRfdGltZSA9PSBCZ1dvcmtlclN0YXJ0X0NvbnNpc3RlbnRTdGF0 ZV9Ib3RTdGFuZGJ5ICYmCi0JCQkJCSBwbVN0YXRlICE9IFBNX1JVTikKLQkJCQlyZXR1cm4gdHJ1 ZTsKIAkJCS8qIGZhbGwgdGhyb3VnaCAqLwogCiAJCWNhc2UgUE1fUkVDT1ZFUlk6CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMgYi9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMKaW5kZXggNzUxZDAzZjViOS4uOTRj YTkzZjg4NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90 c3luYy5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYwpA QCAtMzQsMTUgKzM0LDIwIEBACiAKICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCisjaW5jbHVkZSA8 dGltZS5oPgorCiAjaW5jbHVkZSAiYWNjZXNzL2dlbmFtLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3Rh YmxlLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3hsb2dfaW50ZXJuYWwuaCIKICNpbmNsdWRlICJhY2Nl c3MveGxvZ3JlY292ZXJ5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kYXRhYmFzZS5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKKyNpbmNsdWRlICJsaWJwcS9wcXNpZ25hbC5o IgogI2luY2x1ZGUgInBnc3RhdC5oIgogI2luY2x1ZGUgInBvc3RtYXN0ZXIvYmd3b3JrZXIuaCIK KyNpbmNsdWRlICJwb3N0bWFzdGVyL2ZvcmtfcHJvY2Vzcy5oIgogI2luY2x1ZGUgInBvc3RtYXN0 ZXIvaW50ZXJydXB0LmgiCisjaW5jbHVkZSAicG9zdG1hc3Rlci9wb3N0bWFzdGVyLmgiCiAjaW5j bHVkZSAicmVwbGljYXRpb24vbG9naWNhbC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2lj YWxsYXVuY2hlci5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWx3b3JrZXIuaCIKQEAg LTU2LDYgKzYxLDggQEAKICNpbmNsdWRlICJ1dGlscy9mbWdyb2lkcy5oIgogI2luY2x1ZGUgInV0 aWxzL2d1Y19ob29rcy5oIgogI2luY2x1ZGUgInV0aWxzL3BnX2xzbi5oIgorI2luY2x1ZGUgInV0 aWxzL3BzX3N0YXR1cy5oIgorI2luY2x1ZGUgInV0aWxzL3RpbWVvdXQuaCIKICNpbmNsdWRlICJ1 dGlscy92YXJsZW5hLmgiCiAKIC8qCkBAIC0xMDksOCArMTE2LDE2IEBAIGJvb2wJCWVuYWJsZV9z eW5jc2xvdCA9IGZhbHNlOwogI2RlZmluZSBNQVhfV09SS0VSX05BUFRJTUVfTVMgIDMwMDAwCS8q IDMwcyAqLwogc3RhdGljIGxvbmcgc2xlZXBfbXMgPSBNSU5fV09SS0VSX05BUFRJTUVfTVM7CiAK Ky8qIEZsYWcgdG8gdGVsbCBpZiB3ZSBhcmUgaW4gYSBzbG90IHN5bmMgd29ya2VyIHByb2Nlc3Mg Ki8KK3N0YXRpYyBib29sIGFtX3Nsb3RzeW5jX3dvcmtlciA9IGZhbHNlOworCiBzdGF0aWMgdm9p ZCBQcm9jZXNzU2xvdFN5bmNJbnRlcnJ1cHRzKFdhbFJlY2VpdmVyQ29ubiAqd3Jjb25uKTsKIAor I2lmZGVmIEVYRUNfQkFDS0VORAorc3RhdGljIHBpZF90IHNsb3RzeW5jd29ya2VyX2ZvcmtleGVj KHZvaWQpOworI2VuZGlmCitOT05fRVhFQ19TVEFUSUMgdm9pZCBSZXBsU2xvdFN5bmNXb3JrZXJN YWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHBnX2F0dHJpYnV0ZV9ub3JldHVybigpOworCiAv KgogICogSWYgbmVjZXNzYXJ5LCB1cGRhdGUgbG9jYWwgc2xvdCBtZXRhZGF0YSBiYXNlZCBvbiB0 aGUgZGF0YSBmcm9tIHRoZSByZW1vdGUKICAqIHNsb3QuCkBAIC03MzQsNyArNzQ5LDggQEAgc3lu Y2hyb25pemVfc2xvdHMoV2FsUmVjZWl2ZXJDb25uICp3cmNvbm4pCiAgKiBzdGFuZGJ5cy4KICAq Lwogc3RhdGljIHZvaWQKLWNoZWNrX3ByaW1hcnlfaW5mbyhXYWxSZWNlaXZlckNvbm4gKndyY29u biwgYm9vbCAqYW1fY2FzY2FkaW5nX3N0YW5kYnkpCitjaGVja19wcmltYXJ5X2luZm8oV2FsUmVj ZWl2ZXJDb25uICp3cmNvbm4sIGJvb2wgKmFtX2Nhc2NhZGluZ19zdGFuZGJ5LAorCQkJCSAgIGJv b2wgKnByaW1hcnlfc2xvdF9pbnZhbGlkKQogewogI2RlZmluZSBQUklNQVJZX0lORk9fT1VUUFVU X0NPTF9DT1VOVCAyCiAJV2FsUmN2RXhlY1Jlc3VsdCAqcmVzOwpAQCAtNzQ5LDggKzc2NSwxMCBA QCBjaGVja19wcmltYXJ5X2luZm8oV2FsUmVjZWl2ZXJDb25uICp3cmNvbm4sIGJvb2wgKmFtX2Nh c2NhZGluZ19zdGFuZGJ5KQogCVN0YXJ0VHJhbnNhY3Rpb25Db21tYW5kKCk7CiAKIAlBc3NlcnQo YW1fY2FzY2FkaW5nX3N0YW5kYnkgIT0gTlVMTCk7CisJQXNzZXJ0KHByaW1hcnlfc2xvdF9pbnZh bGlkICE9IE5VTEwpOwogCiAJKmFtX2Nhc2NhZGluZ19zdGFuZGJ5ID0gZmFsc2U7CS8qIG92ZXJ3 cml0dGVuIGxhdGVyIGlmIGNhc2NhZGluZyAqLworCSpwcmltYXJ5X3Nsb3RfaW52YWxpZCA9IGZh bHNlOwkvKiBvdmVyd3JpdHRlbiBsYXRlciBpZiBpbnZhbGlkICovCiAKIAlpbml0U3RyaW5nSW5m bygmY21kKTsKIAlhcHBlbmRTdHJpbmdJbmZvKCZjbWQsCkBAIC03ODgsMTMgKzgwNiwxNiBAQCBj aGVja19wcmltYXJ5X2luZm8oV2FsUmVjZWl2ZXJDb25uICp3cmNvbm4sIGJvb2wgKmFtX2Nhc2Nh ZGluZ19zdGFuZGJ5KQogCQlBc3NlcnQoIWlzbnVsbCk7CiAKIAkJaWYgKCF2YWxpZCkKLQkJCWVy ZXBvcnQoRVJST1IsCisJCXsKKwkJCSpwcmltYXJ5X3Nsb3RfaW52YWxpZCA9IHRydWU7CisJCQll cmVwb3J0KExPRywKIAkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVF KSwKLQkJCQkJZXJybXNnKCJleGl0aW5nIGZyb20gc2xvdCBzeW5jaHJvbml6YXRpb24gZHVlIHRv IGJhZCBjb25maWd1cmF0aW9uIiksCisJCQkJCWVycm1zZygiYmFkIGNvbmZpZ3VyYXRpb24gZm9y IHNsb3Qgc3luY2hyb25pemF0aW9uIiksCiAJCQkvKiB0cmFuc2xhdG9yOiBzZWNvbmQgJXMgaXMg YSBHVUMgdmFyaWFibGUgbmFtZSAqLwogCQkJCQllcnJkZXRhaWwoIlRoZSBwcmltYXJ5IHNlcnZl ciBzbG90IFwiJXNcIiBzcGVjaWZpZWQgYnkiCiAJCQkJCQkJICAiIFwiJXNcIiBpcyBub3QgdmFs aWQuIiwKIAkJCQkJCQkgIFByaW1hcnlTbG90TmFtZSwgInByaW1hcnlfc2xvdF9uYW1lIikpOwor CQl9CiAJfQogCiAJRXhlY0NsZWFyVHVwbGUodHVwc2xvdCk7CkBAIC04MDMsMjAgKzgyNCwxNSBA QCBjaGVja19wcmltYXJ5X2luZm8oV2FsUmVjZWl2ZXJDb25uICp3cmNvbm4sIGJvb2wgKmFtX2Nh c2NhZGluZ19zdGFuZGJ5KQogfQogCiAvKgotICogQ2hlY2sgdGhhdCBhbGwgbmVjZXNzYXJ5IEdV Q3MgZm9yIHNsb3Qgc3luY2hyb25pemF0aW9uIGFyZSBzZXQKLSAqIGFwcHJvcHJpYXRlbHkuIElm IG5vdCwgcmFpc2UgYW4gRVJST1IuCisgKiBSZXR1cm5zIHRydWUgaWYgYWxsIG5lY2Vzc2FyeSBH VUNzIGZvciBzbG90IHN5bmNocm9uaXphdGlvbiBhcmUgc2V0CisgKiBhcHByb3ByaWF0ZWx5LCBv dGhlcndpc2UgcmV0dXJucyBmYWxzZS4KICAqCiAgKiBJZiBhbGwgY2hlY2tzIHBhc3MsIGV4dHJh Y3RzIHRoZSBkYm5hbWUgZnJvbSB0aGUgcHJpbWFyeV9jb25uaW5mbyBHVUMgYW5kCi0gKiByZXR1 cm5zIGl0LgorICogYW5kIHJldHVybiBpdCBpbiBvdXRwdXQgZGJuYW1lIGFyZy4KICAqLwotc3Rh dGljIGNoYXIgKgotdmFsaWRhdGVfcGFyYW1ldGVyc19hbmRfZ2V0X2RibmFtZSh2b2lkKQorc3Rh dGljIGJvb2wKK3ZhbGlkYXRlX3BhcmFtZXRlcnNfYW5kX2dldF9kYm5hbWUoY2hhciAqKmRibmFt ZSkKIHsKLQljaGFyCSAgICpkYm5hbWU7Ci0KLQkvKiBTYW5pdHkgY2hlY2suICovCi0JQXNzZXJ0 KGVuYWJsZV9zeW5jc2xvdCk7Ci0KIAkvKgogCSAqIEEgcGh5c2ljYWwgcmVwbGljYXRpb24gc2xv dChwcmltYXJ5X3Nsb3RfbmFtZSkgaXMgcmVxdWlyZWQgb24gdGhlCiAJICogcHJpbWFyeSB0byBl bnN1cmUgdGhhdCB0aGUgcm93cyBuZWVkZWQgYnkgdGhlIHN0YW5kYnkgYXJlIG5vdCByZW1vdmVk CkBAIC04MjQsMTEgKzg0MCwxNCBAQCB2YWxpZGF0ZV9wYXJhbWV0ZXJzX2FuZF9nZXRfZGJuYW1l KHZvaWQpCiAJICogYmUgaW52YWxpZGF0ZWQuCiAJICovCiAJaWYgKFByaW1hcnlTbG90TmFtZSA9 PSBOVUxMIHx8IHN0cmNtcChQcmltYXJ5U2xvdE5hbWUsICIiKSA9PSAwKQotCQllcmVwb3J0KEVS Uk9SLAorCXsKKwkJZXJlcG9ydChMT0csCiAJCS8qIHRyYW5zbGF0b3I6ICVzIGlzIGEgR1VDIHZh cmlhYmxlIG5hbWUgKi8KIAkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFM VUUpLAotCQkJCWVycm1zZygiZXhpdGluZyBmcm9tIHNsb3Qgc3luY2hyb25pemF0aW9uIGR1ZSB0 byBiYWQgY29uZmlndXJhdGlvbiIpLAorCQkJCWVycm1zZygiYmFkIGNvbmZpZ3VyYXRpb24gZm9y IHNsb3Qgc3luY2hyb25pemF0aW9uIiksCiAJCQkJZXJyaGludCgiXCIlc1wiIG11c3QgYmUgZGVm aW5lZC4iLCAicHJpbWFyeV9zbG90X25hbWUiKSk7CisJCXJldHVybiBmYWxzZTsKKwl9CiAKIAkv KgogCSAqIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIG11c3QgYmUgZW5hYmxlZCB0byBjb29wZXJhdGUg d2l0aCB0aGUgcGh5c2ljYWwKQEAgLTgzNiw0OSArODU1LDk4IEBAIHZhbGlkYXRlX3BhcmFtZXRl cnNfYW5kX2dldF9kYm5hbWUodm9pZCkKIAkgKiBjYXRhbG9nX3htaW4gdmFsdWVzIG9uIHRoZSBz dGFuZGJ5LgogCSAqLwogCWlmICghaG90X3N0YW5kYnlfZmVlZGJhY2spCi0JCWVyZXBvcnQoRVJS T1IsCisJeworCQllcmVwb3J0KExPRywKIAkJLyogdHJhbnNsYXRvcjogJXMgaXMgYSBHVUMgdmFy aWFibGUgbmFtZSAqLwogCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxV RSksCi0JCQkJZXJybXNnKCJleGl0aW5nIGZyb20gc2xvdCBzeW5jaHJvbml6YXRpb24gZHVlIHRv IGJhZCBjb25maWd1cmF0aW9uIiksCisJCQkJZXJybXNnKCJiYWQgY29uZmlndXJhdGlvbiBmb3Ig c2xvdCBzeW5jaHJvbml6YXRpb24iKSwKIAkJCQllcnJoaW50KCJcIiVzXCIgbXVzdCBiZSBlbmFi bGVkLiIsICJob3Rfc3RhbmRieV9mZWVkYmFjayIpKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KIAog CS8qCiAJICogTG9naWNhbCBkZWNvZGluZyByZXF1aXJlcyB3YWxfbGV2ZWwgPj0gbG9naWNhbCBh bmQgd2UgY3VycmVudGx5IG9ubHkKIAkgKiBzeW5jaHJvbml6ZSBsb2dpY2FsIHNsb3RzLgogCSAq LwogCWlmICh3YWxfbGV2ZWwgPCBXQUxfTEVWRUxfTE9HSUNBTCkKLQkJZXJlcG9ydChFUlJPUiwK LQkJLyogdHJhbnNsYXRvcjogJXMgaXMgYSBHVUMgdmFyaWFibGUgbmFtZSAqLworCXsKKwkJZXJl cG9ydChMT0csCiAJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwK LQkJCQllcnJtc2coImV4aXRpbmcgZnJvbSBzbG90IHN5bmNocm9uaXphdGlvbiBkdWUgdG8gYmFk IGNvbmZpZ3VyYXRpb24iKSwKKwkJCQllcnJtc2coImJhZCBjb25maWd1cmF0aW9uIGZvciBzbG90 IHN5bmNocm9uaXphdGlvbiIpLAogCQkJCWVycmhpbnQoIlwid2FsX2xldmVsXCIgbXVzdCBiZSA+ PSBsb2dpY2FsLiIpKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KIAogCS8qCiAJICogVGhlIHByaW1h cnlfY29ubmluZm8gaXMgcmVxdWlyZWQgdG8gbWFrZSBjb25uZWN0aW9uIHRvIHByaW1hcnkgZm9y CiAJICogZ2V0dGluZyBzbG90cyBpbmZvcm1hdGlvbi4KIAkgKi8KIAlpZiAoUHJpbWFyeUNvbm5J bmZvID09IE5VTEwgfHwgc3RyY21wKFByaW1hcnlDb25uSW5mbywgIiIpID09IDApCi0JCWVyZXBv cnQoRVJST1IsCisJeworCQllcmVwb3J0KExPRywKIAkJLyogdHJhbnNsYXRvcjogJXMgaXMgYSBH VUMgdmFyaWFibGUgbmFtZSAqLwogCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRF Ul9WQUxVRSksCi0JCQkJZXJybXNnKCJleGl0aW5nIGZyb20gc2xvdCBzeW5jaHJvbml6YXRpb24g ZHVlIHRvIGJhZCBjb25maWd1cmF0aW9uIiksCisJCQkJZXJybXNnKCJiYWQgY29uZmlndXJhdGlv biBmb3Igc2xvdCBzeW5jaHJvbml6YXRpb24iKSwKIAkJCQllcnJoaW50KCJcIiVzXCIgbXVzdCBi ZSBkZWZpbmVkLiIsICJwcmltYXJ5X2Nvbm5pbmZvIikpOworCQlyZXR1cm4gZmFsc2U7CisJfQog CiAJLyoKIAkgKiBUaGUgc2xvdCBzeW5jIHdvcmtlciBuZWVkcyBhIGRhdGFiYXNlIGNvbm5lY3Rp b24gZm9yIHdhbHJjdl9leGVjIHRvCiAJICogd29yay4KIAkgKi8KLQlkYm5hbWUgPSB3YWxyY3Zf Z2V0X2RibmFtZV9mcm9tX2Nvbm5pbmZvKFByaW1hcnlDb25uSW5mbyk7Ci0JaWYgKGRibmFtZSA9 PSBOVUxMKQotCQllcmVwb3J0KEVSUk9SLAorCSpkYm5hbWUgPSB3YWxyY3ZfZ2V0X2RibmFtZV9m cm9tX2Nvbm5pbmZvKFByaW1hcnlDb25uSW5mbyk7CisJaWYgKCpkYm5hbWUgPT0gTlVMTCkKKwl7 CisJCWVyZXBvcnQoTE9HLAogCiAJCS8qCiAJCSAqIHRyYW5zbGF0b3I6ICdkYm5hbWUnIGlzIGEg c3BlY2lmaWMgb3B0aW9uOyAlcyBpcyBhIEdVQyB2YXJpYWJsZQogCQkgKiBuYW1lCiAJCSAqLwog CQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCi0JCQkJZXJybXNn KCJleGl0aW5nIGZyb20gc2xvdCBzeW5jaHJvbml6YXRpb24gZHVlIHRvIGJhZCBjb25maWd1cmF0 aW9uIiksCisJCQkJZXJybXNnKCJiYWQgY29uZmlndXJhdGlvbiBmb3Igc2xvdCBzeW5jaHJvbml6 YXRpb24iKSwKIAkJCQllcnJoaW50KCInZGJuYW1lJyBtdXN0IGJlIHNwZWNpZmllZCBpbiBcIiVz XCIuIiwgInByaW1hcnlfY29ubmluZm8iKSk7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwlyZXR1 cm4gdHJ1ZTsKK30KKworLyoKKyAqIENoZWNrIHRoYXQgYWxsIG5lY2Vzc2FyeSBHVUNzIGZvciBz bG90IHN5bmNocm9uaXphdGlvbiBhcmUgc2V0CisgKiBhcHByb3ByaWF0ZWx5LiBJZiBub3QsIHNs ZWVwIGZvciBNQVhfV09SS0VSX05BUFRJTUVfTVMgYW5kIGNoZWNrIGFnYWluLgorICogVGhlIGlk ZWEgaXMgdG8gYmVjb21lIG5vLW9wIHVudGlsIHdlIGdldCB2YWxpZCBHVUNzIHZhbHVlcy4KKyAq CisgKiBJZiBhbGwgY2hlY2tzIHBhc3MsIGV4dHJhY3RzIHRoZSBkYm5hbWUgZnJvbSB0aGUgcHJp bWFyeV9jb25uaW5mbyBHVUMgYW5kCisgKiByZXR1cm5zIGl0LgorICovCitzdGF0aWMgY2hhciAq Cit3YWl0X2Zvcl92YWxpZF9wYXJhbXNfYW5kX2dldF9kYm5hbWUodm9pZCkKK3sKKwljaGFyCSAg ICpkYm5hbWU7CisJaW50CQkJcmM7CisKKwkvKiBTYW5pdHkgY2hlY2suICovCisJQXNzZXJ0KGVu YWJsZV9zeW5jc2xvdCk7CisKKwlmb3IgKDs7KQorCXsKKwkJaWYgKHZhbGlkYXRlX3BhcmFtZXRl cnNfYW5kX2dldF9kYm5hbWUoJmRibmFtZSkpCisJCQlicmVhazsKKworCQllcmVwb3J0KExPRywg ZXJybXNnKCJza2lwcGluZyBzbG90IHN5bmNocm9uaXphdGlvbiIpKTsKKworCQlQcm9jZXNzU2xv dFN5bmNJbnRlcnJ1cHRzKE5VTEwpOworCisJCXJjID0gV2FpdExhdGNoKE15TGF0Y2gsCisJCQkJ CSAgIFdMX0xBVENIX1NFVCB8IFdMX1RJTUVPVVQgfCBXTF9FWElUX09OX1BNX0RFQVRILAorCQkJ CQkgICBNQVhfV09SS0VSX05BUFRJTUVfTVMsCisJCQkJCSAgIFdBSVRfRVZFTlRfUkVQTF9TTE9U U1lOQ19NQUlOKTsKKworCQlpZiAocmMgJiBXTF9MQVRDSF9TRVQpCisJCQlSZXNldExhdGNoKE15 TGF0Y2gpOworCX0KIAogCXJldHVybiBkYm5hbWU7CiB9CkBAIC04OTQsMTYgKzk2MiwyOCBAQCBz bG90c3luY19yZXJlYWRfY29uZmlnKHZvaWQpCiB7CiAJY2hhcgkgICAqb2xkX3ByaW1hcnlfY29u bmluZm8gPSBwc3RyZHVwKFByaW1hcnlDb25uSW5mbyk7CiAJY2hhcgkgICAqb2xkX3ByaW1hcnlf c2xvdG5hbWUgPSBwc3RyZHVwKFByaW1hcnlTbG90TmFtZSk7CisJYm9vbAkJb2xkX2VuYWJsZV9z eW5jc2xvdCA9IGVuYWJsZV9zeW5jc2xvdDsKIAlib29sCQlvbGRfaG90X3N0YW5kYnlfZmVlZGJh Y2sgPSBob3Rfc3RhbmRieV9mZWVkYmFjazsKIAlib29sCQljb25uaW5mb19jaGFuZ2VkOwogCWJv b2wJCXByaW1hcnlfc2xvdG5hbWVfY2hhbmdlZDsKIAorCUFzc2VydChlbmFibGVfc3luY3Nsb3Qp OworCiAJQ29uZmlnUmVsb2FkUGVuZGluZyA9IGZhbHNlOwogCVByb2Nlc3NDb25maWdGaWxlKFBH Q19TSUdIVVApOwogCiAJY29ubmluZm9fY2hhbmdlZCA9IHN0cmNtcChvbGRfcHJpbWFyeV9jb25u aW5mbywgUHJpbWFyeUNvbm5JbmZvKSAhPSAwOwogCXByaW1hcnlfc2xvdG5hbWVfY2hhbmdlZCA9 IHN0cmNtcChvbGRfcHJpbWFyeV9zbG90bmFtZSwgUHJpbWFyeVNsb3ROYW1lKSAhPSAwOwogCisJ aWYgKG9sZF9lbmFibGVfc3luY3Nsb3QgIT0gZW5hYmxlX3N5bmNzbG90KQorCXsKKwkJZXJlcG9y dChMT0csCisJCS8qIHRyYW5zbGF0b3I6ICVzIGlzIGEgR1VDIHZhcmlhYmxlIG5hbWUgKi8KKwkJ CQllcnJtc2coInNsb3Qgc3luYyB3b3JrZXIgd2lsbCBzaHV0ZG93biBiZWNhdXNlIgorCQkJCQkg ICAiICVzIGlzIGRpc2FibGVkIiwgImVuYWJsZV9zeW5jc2xvdCIpKTsKKwkJcHJvY19leGl0KDAp OworCX0KKwogCWlmIChjb25uaW5mb19jaGFuZ2VkIHx8CiAJCXByaW1hcnlfc2xvdG5hbWVfY2hh bmdlZCB8fAogCQkob2xkX2hvdF9zdGFuZGJ5X2ZlZWRiYWNrICE9IGhvdF9zdGFuZGJ5X2ZlZWRi YWNrKSkKQEAgLTkxMSw4ICs5OTEsNyBAQCBzbG90c3luY19yZXJlYWRfY29uZmlnKHZvaWQpCiAJ CWVyZXBvcnQoTE9HLAogCQkJCWVycm1zZygic2xvdCBzeW5jIHdvcmtlciB3aWxsIHJlc3RhcnQg YmVjYXVzZSBvZiBhIHBhcmFtZXRlciBjaGFuZ2UiKSk7CiAKLQkJLyogVGhlIGV4aXQgY29kZSAx IHdpbGwgbWFrZSBwb3N0bWFzdGVyIHJlc3RhcnQgdGhpcyB3b3JrZXIgKi8KLQkJcHJvY19leGl0 KDEpOworCQlwcm9jX2V4aXQoMCk7CiAJfQogCiAJcGZyZWUob2xkX3ByaW1hcnlfY29ubmluZm8p OwpAQCAtOTI5LDcgKzEwMDgsOCBAQCBQcm9jZXNzU2xvdFN5bmNJbnRlcnJ1cHRzKFdhbFJlY2Vp dmVyQ29ubiAqd3Jjb25uKQogCiAJaWYgKFNodXRkb3duUmVxdWVzdFBlbmRpbmcpCiAJewotCQl3 YWxyY3ZfZGlzY29ubmVjdCh3cmNvbm4pOworCQlpZiAod3Jjb25uKQorCQkJd2FscmN2X2Rpc2Nv bm5lY3Qod3Jjb25uKTsKIAkJZXJlcG9ydChMT0csCiAJCQkJZXJybXNnKCJyZXBsaWNhdGlvbiBz bG90IHN5bmMgd29ya2VyIGlzIHNodXR0aW5nIGRvd24gb24gcmVjZWl2aW5nIFNJR0lOVCIpKTsK IAkJcHJvY19leGl0KDApOwpAQCAtOTYxLDE3ICsxMDQxLDE2IEBAIHNsb3RzeW5jX3dvcmtlcl9v bmV4aXQoaW50IGNvZGUsIERhdHVtIGFyZykKICAqIHN5bmMtY3ljbGVzIGlzIHJlc2V0IHRvIHRo ZSBtaW5pbXVtICgyMDBtcykuCiAgKi8KIHN0YXRpYyB2b2lkCi13YWl0X2Zvcl9zbG90X2FjdGl2 aXR5KGJvb2wgc29tZV9zbG90X3VwZGF0ZWQsIGJvb2wgYW1fY2FzY2FkaW5nX3N0YW5kYnkpCit3 YWl0X2Zvcl9zbG90X2FjdGl2aXR5KGJvb2wgc29tZV9zbG90X3VwZGF0ZWQsIGJvb2wgcmVjaGVj a19wcmltYXJ5X2luZm8pCiB7CiAJaW50CQkJcmM7CiAKLQlpZiAoYW1fY2FzY2FkaW5nX3N0YW5k YnkpCisJaWYgKHJlY2hlY2tfcHJpbWFyeV9pbmZvKQogCXsKIAkJLyoKLQkJICogU2xvdCBzeW5j aHJvbml6YXRpb24gaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgb24gY2FzY2FkaW5nCi0JCSAq IHN0YW5kYnkuIFNvIGlmIHdlIGFyZSBvbiB0aGUgY2FzY2FkaW5nIHN0YW5kYnksIHdlIHdpbGwg c2tpcCB0aGUKLQkJICogc3luYyBhbmQgdGFrZSBhIGxvbmdlciBuYXAgYmVmb3JlIHdlIGNoZWNr IGFnYWluIHdoZXRoZXIgd2UgYXJlCi0JCSAqIHN0aWxsIGNhc2NhZGluZyBzdGFuZGJ5IG9yIG5v dC4KKwkJICogSWYgd2UgYXJlIG9uIHRoZSBjYXNjYWRpbmcgc3RhbmRieSBvciBwcmltYXJ5X3Ns b3RfbmFtZSBjb25maWd1cmVkCisJCSAqIGlzIG5vdCB2YWxpZCwgdGhlbiB3ZSB3aWxsIHNraXAg dGhlIHN5bmMgYW5kIHRha2UgYSBsb25nZXIgbmFwCisJCSAqIGJlZm9yZSB3ZSBjYW4gZG8gY2hl Y2tfcHJpbWFyeV9pbmZvKCkgYWdhaW4uCiAJCSAqLwogCQlzbGVlcF9tcyA9IE1BWF9XT1JLRVJf TkFQVElNRV9NUzsKIAl9CkBAIC0xMDA3LDIwICsxMDg2LDM4IEBAIHdhaXRfZm9yX3Nsb3RfYWN0 aXZpdHkoYm9vbCBzb21lX3Nsb3RfdXBkYXRlZCwgYm9vbCBhbV9jYXNjYWRpbmdfc3RhbmRieSkK ICAqIEl0IGNvbm5lY3RzIHRvIHRoZSBwcmltYXJ5IHNlcnZlciwgZmV0Y2hlcyBsb2dpY2FsIGZh aWxvdmVyIHNsb3RzCiAgKiBpbmZvcm1hdGlvbiBwZXJpb2RpY2FsbHkgaW4gb3JkZXIgdG8gY3Jl YXRlIGFuZCBzeW5jIHRoZSBzbG90cy4KICAqLwotdm9pZAotUmVwbFNsb3RTeW5jV29ya2VyTWFp bihEYXR1bSBtYWluX2FyZykKK05PTl9FWEVDX1NUQVRJQyB2b2lkCitSZXBsU2xvdFN5bmNXb3Jr ZXJNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7CiAJV2FsUmVjZWl2ZXJDb25uICp3cmNv bm4gPSBOVUxMOwogCWNoYXIJICAgKmRibmFtZTsKIAlib29sCQlhbV9jYXNjYWRpbmdfc3RhbmRi eTsKKwlib29sCQlwcmltYXJ5X3Nsb3RfaW52YWxpZDsKIAljaGFyCSAgICplcnI7CisJc2lnam1w X2J1Zglsb2NhbF9zaWdqbXBfYnVmOwogCi0JZXJlcG9ydChMT0csIGVycm1zZygicmVwbGljYXRp b24gc2xvdCBzeW5jIHdvcmtlciBzdGFydGVkIikpOworCWFtX3Nsb3RzeW5jX3dvcmtlciA9IHRy dWU7CiAKLQlvbl9zaG1lbV9leGl0KHNsb3RzeW5jX3dvcmtlcl9vbmV4aXQsIChEYXR1bSkgMCk7 CisJTXlCYWNrZW5kVHlwZSA9IEJfU0xPVFNZTkNfV09SS0VSOwogCi0JU3BpbkxvY2tBY3F1aXJl KCZTbG90U3luY1dvcmtlci0+bXV0ZXgpOworCWluaXRfcHNfZGlzcGxheShOVUxMKTsKKworCVNl dFByb2Nlc3NpbmdNb2RlKEluaXRQcm9jZXNzaW5nKTsKIAorCS8qCisJICogQ3JlYXRlIGEgcGVy LWJhY2tlbmQgUEdQUk9DIHN0cnVjdCBpbiBzaGFyZWQgbWVtb3J5LiAgV2UgbXVzdCBkbyB0aGlz CisJICogYmVmb3JlIHdlIGFjY2VzcyBhbnkgc2hhcmVkIG1lbW9yeS4KKwkgKi8KKwlJbml0UHJv Y2VzcygpOworCisJLyoKKwkgKiBFYXJseSBpbml0aWFsaXphdGlvbi4KKwkgKi8KKwlCYXNlSW5p dCgpOworCisJQXNzZXJ0KFNsb3RTeW5jV29ya2VyICE9IE5VTEwpOworCisJU3BpbkxvY2tBY3F1 aXJlKCZTbG90U3luY1dvcmtlci0+bXV0ZXgpOwogCUFzc2VydChTbG90U3luY1dvcmtlci0+cGlk ID09IEludmFsaWRQaWQpOwogCiAJLyoKQEAgLTEwMzUsMjYgKzExMzIsNzcgQEAgUmVwbFNsb3RT eW5jV29ya2VyTWFpbihEYXR1bSBtYWluX2FyZykKIAogCS8qIEFkdmVydGlzZSBvdXIgUElEIHNv IHRoYXQgdGhlIHN0YXJ0dXAgcHJvY2VzcyBjYW4ga2lsbCB1cyBvbiBwcm9tb3Rpb24gKi8KIAlT bG90U3luY1dvcmtlci0+cGlkID0gTXlQcm9jUGlkOwotCiAJU3BpbkxvY2tSZWxlYXNlKCZTbG90 U3luY1dvcmtlci0+bXV0ZXgpOwogCisJZXJlcG9ydChMT0csIGVycm1zZygicmVwbGljYXRpb24g c2xvdCBzeW5jIHdvcmtlciBzdGFydGVkIikpOworCisJb25fc2htZW1fZXhpdChzbG90c3luY193 b3JrZXJfb25leGl0LCAoRGF0dW0pIDApOworCiAJLyogU2V0dXAgc2lnbmFsIGhhbmRsaW5nICov CiAJcHFzaWduYWwoU0lHSFVQLCBTaWduYWxIYW5kbGVyRm9yQ29uZmlnUmVsb2FkKTsKIAlwcXNp Z25hbChTSUdJTlQsIFNpZ25hbEhhbmRsZXJGb3JTaHV0ZG93blJlcXVlc3QpOwogCXBxc2lnbmFs KFNJR1RFUk0sIGRpZSk7Ci0JQmFja2dyb3VuZFdvcmtlclVuYmxvY2tTaWduYWxzKCk7CisJcHFz aWduYWwoU0lHRlBFLCBGbG9hdEV4Y2VwdGlvbkhhbmRsZXIpOworCXBxc2lnbmFsKFNJR1VTUjEs IHByb2NzaWduYWxfc2lndXNyMV9oYW5kbGVyKTsKKwlwcXNpZ25hbChTSUdVU1IyLCBTSUdfSUdO KTsKKwlwcXNpZ25hbChTSUdQSVBFLCBTSUdfSUdOKTsKKwlwcXNpZ25hbChTSUdDSExELCBTSUdf REZMKTsKKworCS8qCisJICogRXN0YWJsaXNoZXMgU0lHQUxSTSBoYW5kbGVyIGFuZCBpbml0aWFs aXplIHRpbWVvdXQgbW9kdWxlLiBJdCBpcyBuZWVkZWQKKwkgKiBieSBJbml0UG9zdGdyZXMgdG8g cmVnaXN0ZXIgZGlmZmVyZW50IHRpbWVvdXRzLgorCSAqLworCUluaXRpYWxpemVUaW1lb3V0cygp OwogCiAJLyogTG9hZCB0aGUgbGlicHEtc3BlY2lmaWMgZnVuY3Rpb25zICovCiAJbG9hZF9maWxl KCJsaWJwcXdhbHJlY2VpdmVyIiwgZmFsc2UpOwogCi0JZGJuYW1lID0gdmFsaWRhdGVfcGFyYW1l dGVyc19hbmRfZ2V0X2RibmFtZSgpOworCS8qCisJICogSWYgYW4gZXhjZXB0aW9uIGlzIGVuY291 bnRlcmVkLCBwcm9jZXNzaW5nIHJlc3VtZXMgaGVyZS4KKwkgKgorCSAqIFdlIGp1c3QgbmVlZCB0 byBjbGVhbiB1cCwgcmVwb3J0IHRoZSBlcnJvciwgYW5kIGdvIGF3YXkuCisJICoKKwkgKiBJZiB3 ZSBkbyBub3QgaGF2ZSB0aGlzIGhhbmRsaW5nIGhlcmUsIHRoZW4gc2luY2UgdGhpcyB3b3JrZXIg cHJvY2VzcworCSAqIG9wZXJhdGVzIGF0IHRoZSBib3R0b20gb2YgdGhlIGV4Y2VwdGlvbiBzdGFj aywgRVJST1JzIHR1cm4gaW50byBGQVRBTHMuCisJICogVGhlcmVmb3JlLCB3ZSBjcmVhdGUgb3Vy IG93biBleGNlcHRpb24gaGFuZGxlciB0byBjYXRjaCBFUlJPUnMuCisJICovCisJaWYgKHNpZ3Nl dGptcChsb2NhbF9zaWdqbXBfYnVmLCAxKSAhPSAwKQorCXsKKwkJLyogc2luY2Ugbm90IHVzaW5n IFBHX1RSWSwgbXVzdCByZXNldCBlcnJvciBzdGFjayBieSBoYW5kICovCisJCWVycm9yX2NvbnRl eHRfc3RhY2sgPSBOVUxMOworCisJCS8qIFByZXZlbnRzIGludGVycnVwdHMgd2hpbGUgY2xlYW5p bmcgdXAgKi8KKwkJSE9MRF9JTlRFUlJVUFRTKCk7CisKKwkJLyogUmVwb3J0IHRoZSBlcnJvciB0 byB0aGUgc2VydmVyIGxvZyAqLworCQlFbWl0RXJyb3JSZXBvcnQoKTsKKworCQkvKgorCQkgKiBX ZSBjYW4gbm93IGdvIGF3YXkuICBOb3RlIHRoYXQgYmVjYXVzZSB3ZSBjYWxsZWQgSW5pdFByb2Nl c3MsIGEKKwkJICogY2FsbGJhY2sgd2FzIHJlZ2lzdGVyZWQgdG8gZG8gUHJvY0tpbGwsIHdoaWNo IHdpbGwgY2xlYW4gdXAKKwkJICogbmVjZXNzYXJ5IHN0YXRlLgorCQkgKi8KKwkJcHJvY19leGl0 KDApOworCX0KKworCS8qIFdlIGNhbiBub3cgaGFuZGxlIGVyZXBvcnQoRVJST1IpICovCisJUEdf ZXhjZXB0aW9uX3N0YWNrID0gJmxvY2FsX3NpZ2ptcF9idWY7CisKKwkvKgorCSAqIFVuYmxvY2sg c2lnbmFscyAodGhleSB3ZXJlIGJsb2NrZWQgd2hlbiB0aGUgcG9zdG1hc3RlciBmb3JrZWQgdXMp CisJICovCisJc2lncHJvY21hc2soU0lHX1NFVE1BU0ssICZVbkJsb2NrU2lnLCBOVUxMKTsKKwor CWRibmFtZSA9IHdhaXRfZm9yX3ZhbGlkX3BhcmFtc19hbmRfZ2V0X2RibmFtZSgpOwogCiAJLyoK IAkgKiBDb25uZWN0IHRvIHRoZSBkYXRhYmFzZSBzcGVjaWZpZWQgYnkgdXNlciBpbiBwcmltYXJ5 X2Nvbm5pbmZvLiBXZSBuZWVkCiAJICogYSBkYXRhYmFzZSBjb25uZWN0aW9uIGZvciB3YWxyY3Zf ZXhlYyB0byB3b3JrLiBQbGVhc2Ugc2VlIGNvbW1lbnRzIGF0b3AKIAkgKiBsaWJwcXJjdl9leGVj LgogCSAqLwotCUJhY2tncm91bmRXb3JrZXJJbml0aWFsaXplQ29ubmVjdGlvbihkYm5hbWUsIE5V TEwsIDApOworCUluaXRQb3N0Z3JlcyhkYm5hbWUsIEludmFsaWRPaWQsIE5VTEwsIEludmFsaWRP aWQsIDAsIE5VTEwpOworCisJU2V0UHJvY2Vzc2luZ01vZGUoTm9ybWFsUHJvY2Vzc2luZyk7CiAK IAkvKgogCSAqIEVzdGFibGlzaCB0aGUgY29ubmVjdGlvbiB0byB0aGUgcHJpbWFyeSBzZXJ2ZXIg Zm9yIHNsb3RzCkBAIC0xMDczLDI2ICsxMjIxLDI5IEBAIFJlcGxTbG90U3luY1dvcmtlck1haW4o RGF0dW0gbWFpbl9hcmcpCiAJICogY2FzY2FkaW5nIHN0YW5kYnkgYW5kIHZhbGlkYXRlcyBwcmlt YXJ5X3Nsb3RfbmFtZSBmb3IKIAkgKiBub24tY2FzY2FkaW5nLXN0YW5kYnlzLgogCSAqLwotCWNo ZWNrX3ByaW1hcnlfaW5mbyh3cmNvbm4sICZhbV9jYXNjYWRpbmdfc3RhbmRieSk7CisJY2hlY2tf cHJpbWFyeV9pbmZvKHdyY29ubiwgJmFtX2Nhc2NhZGluZ19zdGFuZGJ5LCAmcHJpbWFyeV9zbG90 X2ludmFsaWQpOwogCiAJLyogTWFpbiB3YWl0IGxvb3AgKi8KIAlmb3IgKDs7KQogCXsKIAkJYm9v bAkJc29tZV9zbG90X3VwZGF0ZWQgPSBmYWxzZTsKKwkJYm9vbAkJcmVjaGVja19wcmltYXJ5X2lu Zm8gPSBhbV9jYXNjYWRpbmdfc3RhbmRieSB8fCBwcmltYXJ5X3Nsb3RfaW52YWxpZDsKIAogCQlQ cm9jZXNzU2xvdFN5bmNJbnRlcnJ1cHRzKHdyY29ubik7CiAKLQkJaWYgKCFhbV9jYXNjYWRpbmdf c3RhbmRieSkKKwkJaWYgKCFyZWNoZWNrX3ByaW1hcnlfaW5mbykKIAkJCXNvbWVfc2xvdF91cGRh dGVkID0gc3luY2hyb25pemVfc2xvdHMod3Jjb25uKTsKKwkJZWxzZSBpZiAocHJpbWFyeV9zbG90 X2ludmFsaWQpCisJCQllcmVwb3J0KExPRywgZXJybXNnKCJza2lwcGluZyBzbG90IHN5bmNocm9u aXphdGlvbiIpKTsKIAotCQl3YWl0X2Zvcl9zbG90X2FjdGl2aXR5KHNvbWVfc2xvdF91cGRhdGVk LCBhbV9jYXNjYWRpbmdfc3RhbmRieSk7CisJCXdhaXRfZm9yX3Nsb3RfYWN0aXZpdHkoc29tZV9z bG90X3VwZGF0ZWQsIHJlY2hlY2tfcHJpbWFyeV9pbmZvKTsKIAogCQkvKgogCQkgKiBJZiB0aGUg c3RhbmRieSB3YXMgcHJvbW90ZWQgdGhlbiB3aGF0IHdhcyBwcmV2aW91c2x5IGEgY2FzY2FkaW5n CiAJCSAqIHN0YW5kYnkgbWlnaHQgbm8gbG9uZ2VyIGJlIG9uZSwgc28gcmVjaGVjayBlYWNoIHRp bWUuCiAJCSAqLwotCQlpZiAoYW1fY2FzY2FkaW5nX3N0YW5kYnkpCi0JCQljaGVja19wcmltYXJ5 X2luZm8od3Jjb25uLCAmYW1fY2FzY2FkaW5nX3N0YW5kYnkpOworCQlpZiAocmVjaGVja19wcmlt YXJ5X2luZm8pCisJCQljaGVja19wcmltYXJ5X2luZm8od3Jjb25uLCAmYW1fY2FzY2FkaW5nX3N0 YW5kYnksICZwcmltYXJ5X3Nsb3RfaW52YWxpZCk7CiAJfQogCiAJLyoKQEAgLTExMDgsNyArMTI1 OSw3IEBAIFJlcGxTbG90U3luY1dvcmtlck1haW4oRGF0dW0gbWFpbl9hcmcpCiBib29sCiBJc0xv Z2ljYWxTbG90U3luY1dvcmtlcih2b2lkKQogewotCXJldHVybiBTbG90U3luY1dvcmtlci0+cGlk ID09IE15UHJvY1BpZDsKKwlyZXR1cm4gYW1fc2xvdHN5bmNfd29ya2VyOwogfQogCiAvKgpAQCAt MTEzOCw3ICsxMjg5LDcgQEAgU2h1dERvd25TbG90U3luYyh2b2lkKQogCQkvKiBXYWl0IGEgYml0 LCB3ZSBkb24ndCBleHBlY3QgdG8gaGF2ZSB0byB3YWl0IGxvbmcgKi8KIAkJcmMgPSBXYWl0TGF0 Y2goTXlMYXRjaCwKIAkJCQkJICAgV0xfTEFUQ0hfU0VUIHwgV0xfVElNRU9VVCB8IFdMX0VYSVRf T05fUE1fREVBVEgsCi0JCQkJCSAgIDEwTCwgV0FJVF9FVkVOVF9CR1dPUktFUl9TSFVURE9XTik7 CisJCQkJCSAgIDEwTCwgV0FJVF9FVkVOVF9SRVBMX1NMT1RTWU5DX1NIVVRET1dOKTsKIAogCQlp ZiAocmMgJiBXTF9MQVRDSF9TRVQpCiAJCXsKQEAgLTExODEsNDIgKzEzMzIsOTIgQEAgU2xvdFN5 bmNXb3JrZXJTaG1lbUluaXQodm9pZCkKIAl9CiB9CiAKKyNpZmRlZiBFWEVDX0JBQ0tFTkQKIC8q Ci0gKiBSZWdpc3RlciB0aGUgYmFja2dyb3VuZCB3b3JrZXIgZm9yIHNsb3RzIHN5bmNocm9uaXph dGlvbiBwcm92aWRlZAotICogZW5hYmxlX3N5bmNzbG90IGlzIE9OLgorICogVGhlIGZvcmtleGVj IHJvdXRpbmUgZm9yIHRoZSBzbG90IHN5bmMgd29ya2VyIHByb2Nlc3MuCisgKgorICogRm9ybWF0 IHVwIHRoZSBhcmdsaXN0LCB0aGVuIGZvcmsgYW5kIGV4ZWMuCiAgKi8KLXZvaWQKLVNsb3RTeW5j V29ya2VyUmVnaXN0ZXIodm9pZCkKK3N0YXRpYyBwaWRfdAorc2xvdHN5bmN3b3JrZXJfZm9ya2V4 ZWModm9pZCkKIHsKLQlCYWNrZ3JvdW5kV29ya2VyIGJndzsKKwljaGFyCSAgICphdlsxMF07CisJ aW50CQkJYWMgPSAwOwogCi0JaWYgKCFlbmFibGVfc3luY3Nsb3QpCi0JewotCQllcmVwb3J0KExP RywKLQkJCQllcnJtc2coInNraXBwaW5nIHNsb3Qgc3luY2hyb25pemF0aW9uIiksCi0JCQkJZXJy ZGV0YWlsKCJcImVuYWJsZV9zeW5jc2xvdFwiIGlzIGRpc2FibGVkLiIpKTsKLQkJcmV0dXJuOwot CX0KKwlhdlthYysrXSA9ICJwb3N0Z3JlcyI7CisJYXZbYWMrK10gPSAiLS1mb3Jrc3N3b3JrZXIi OworCWF2W2FjKytdID0gTlVMTDsJCQkvKiBmaWxsZWQgaW4gYnkgcG9zdG1hc3Rlcl9mb3JrZXhl YyAqLworCWF2W2FjXSA9IE5VTEw7CiAKLQltZW1zZXQoJmJndywgMCwgc2l6ZW9mKGJndykpOwor CUFzc2VydChhYyA8IGxlbmd0aG9mKGF2KSk7CiAKLQkvKiBXZSBuZWVkIGRhdGFiYXNlIGNvbm5l Y3Rpb24gd2hpY2ggbmVlZHMgc2hhcmVkLW1lbW9yeSBhY2Nlc3MgYXMgd2VsbCAqLwotCWJndy5i Z3dfZmxhZ3MgPSBCR1dPUktFUl9TSE1FTV9BQ0NFU1MgfAotCQlCR1dPUktFUl9CQUNLRU5EX0RB VEFCQVNFX0NPTk5FQ1RJT047CisJcmV0dXJuIHBvc3RtYXN0ZXJfZm9ya2V4ZWMoYWMsIGF2KTsK K30KKyNlbmRpZgogCi0JLyogU3RhcnQgYXMgc29vbiBhcyBhIGNvbnNpc3RlbnQgc3RhdGUgaGFz IGJlZW4gcmVhY2hlZCBpbiBhIGhvdCBzdGFuZGJ5ICovCi0JYmd3LmJnd19zdGFydF90aW1lID0g QmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGVfSG90U3RhbmRieTsKKy8qCisgKiBTbG90U3lu Y1dvcmtlckNhblJlc3RhcnQKKyAqCisgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHdvcmtlciBpcyBh bGxvd2VkIHRvIHJlc3RhcnQgaWYgZW5vdWdoIHRpbWUgaGFzCisgKiBwYXNzZWQgKFNMT1RTWU5D X1JFU1RBUlRfSU5URVJWQUxfU0VDKSBzaW5jZSBpdCB3YXMgbGF1bmNoZWQgbGFzdC4KKyAqIE90 aGVyd2lzZSByZXR1cm5zIGZhbHNlLgorICoKKyAqIFRoaXMgaXMgYSBzYWZldHkgdmFsdmUgdG8g cHJvdGVjdCBhZ2FpbnN0IGNvbnRpbnVvdXMgcmVzcGF3biBhdHRlbXB0cyBpZiB0aGUKKyAqIHdv cmtlciBpcyBkeWluZyBpbW1lZGlhdGVseSBhdCBsYXVuY2guIE5vdGUgdGhhdCBzaW5jZSB3ZSB3 aWxsIHJldHJ5IHRvCisgKiBsYXVuY2ggdGhlIHdvcmtlciBmcm9tIHRoZSBwb3N0bWFzdGVyIG1h aW4gbG9vcCwgd2Ugd2lsbCBnZXQgYW5vdGhlcgorICogY2hhbmNlIGxhdGVyLgorICovCitib29s CitTbG90U3luY1dvcmtlckNhblJlc3RhcnQodm9pZCkKK3sKKyNkZWZpbmUgU0xPVFNZTkNfUkVT VEFSVF9JTlRFUlZBTF9TRUMgMTAKIAotCXNucHJpbnRmKGJndy5iZ3dfbGlicmFyeV9uYW1lLCBN QVhQR1BBVEgsICJwb3N0Z3JlcyIpOwotCXNucHJpbnRmKGJndy5iZ3dfZnVuY3Rpb25fbmFtZSwg QkdXX01BWExFTiwgIlJlcGxTbG90U3luY1dvcmtlck1haW4iKTsKLQlzbnByaW50ZihiZ3cuYmd3 X25hbWUsIEJHV19NQVhMRU4sCi0JCQkgInJlcGxpY2F0aW9uIHNsb3Qgc3luYyB3b3JrZXIiKTsK LQlzbnByaW50ZihiZ3cuYmd3X3R5cGUsIEJHV19NQVhMRU4sCi0JCQkgInNsb3Qgc3luYyB3b3Jr ZXIiKTsKKwlzdGF0aWMgdGltZV90IGxhc3Rfc2xvdHN5bmNfc3RhcnRfdGltZSA9IDA7CisJdGlt ZV90CQljdXJ0aW1lID0gdGltZShOVUxMKTsKIAotCWJndy5iZ3dfcmVzdGFydF90aW1lID0gQkdX X0RFRkFVTFRfUkVTVEFSVF9JTlRFUlZBTDsKLQliZ3cuYmd3X25vdGlmeV9waWQgPSAwOwotCWJn dy5iZ3dfbWFpbl9hcmcgPSAoRGF0dW0pIDA7CisJLyogUmV0dXJuIGZhbHNlIGlmIHRvbyBzb29u IHNpbmNlIGxhc3Qgc3RhcnQuICovCisJaWYgKCh1bnNpZ25lZCBpbnQpIChjdXJ0aW1lIC0gbGFz dF9zbG90c3luY19zdGFydF90aW1lKSA8CisJCSh1bnNpZ25lZCBpbnQpIFNMT1RTWU5DX1JFU1RB UlRfSU5URVJWQUxfU0VDKQorCQlyZXR1cm4gZmFsc2U7CisKKwlsYXN0X3Nsb3RzeW5jX3N0YXJ0 X3RpbWUgPSBjdXJ0aW1lOworCXJldHVybiB0cnVlOworfQorCisvKgorICogTWFpbiBlbnRyeSBw b2ludCBmb3Igc2xvdCBzeW5jIHdvcmtlciBwcm9jZXNzLCB0byBiZSBjYWxsZWQgZnJvbSB0aGUK KyAqIHBvc3RtYXN0ZXIuCisgKi8KK2ludAorU3RhcnRTbG90U3luY1dvcmtlcih2b2lkKQorewor CXBpZF90CQlwaWQ7CisKKyNpZmRlZiBFWEVDX0JBQ0tFTkQKKwlzd2l0Y2ggKChwaWQgPSBzbG90 c3luY3dvcmtlcl9mb3JrZXhlYygpKSkKKwl7CisjZWxzZQorCXN3aXRjaCAoKHBpZCA9IGZvcmtf cHJvY2VzcygpKSkKKwl7CisJCWNhc2UgMDoKKwkJCS8qIGluIHBvc3RtYXN0ZXIgY2hpbGQgLi4u ICovCisJCQlJbml0UG9zdG1hc3RlckNoaWxkKCk7CisKKwkJCS8qIENsb3NlIHRoZSBwb3N0bWFz dGVyJ3Mgc29ja2V0cyAqLworCQkJQ2xvc2VQb3N0bWFzdGVyUG9ydHMoZmFsc2UpOworCisJCQlS ZXBsU2xvdFN5bmNXb3JrZXJNYWluKDAsIE5VTEwpOworCQkJYnJlYWs7CisjZW5kaWYKKwkJY2Fz ZSAtMToKKwkJCWVyZXBvcnQoTE9HLAorCQkJCQkoZXJybXNnKCJjb3VsZCBub3QgZm9yayBzbG90 IHN5bmMgd29ya2VyIHByb2Nlc3M6ICVtIikpKTsKKwkJCXJldHVybiAwOworCisJCWRlZmF1bHQ6 CisJCQlyZXR1cm4gKGludCkgcGlkOworCX0KIAotCVJlZ2lzdGVyQmFja2dyb3VuZFdvcmtlcigm Ymd3KTsKKwkvKiBzaG91bGRuJ3QgZ2V0IGhlcmUgKi8KKwlyZXR1cm4gMDsKIH0KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcm9jLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdl L2xtZ3IvcHJvYy5jCmluZGV4IDRhZDk2YmViODcuLmFhNTNhNTcwNzcgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcm9jLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9s bWdyL3Byb2MuYwpAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3Nsb3Qu aCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9zeW5jcmVwLmgiCiAjaW5jbHVkZSAicmVwbGljYXRp b24vd2Fsc2VuZGVyLmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNhbHdvcmtlci5oIgog I2luY2x1ZGUgInN0b3JhZ2UvY29uZGl0aW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAic3RvcmFn ZS9pcGMuaCIKICNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKQEAgLTM2NCw4ICszNjUsMTIgQEAg SW5pdFByb2Nlc3Modm9pZCkKIAkgKiBjaGlsZDsgdGhpcyBpcyBzbyB0aGF0IHRoZSBwb3N0bWFz dGVyIGNhbiBkZXRlY3QgaXQgaWYgd2UgZXhpdCB3aXRob3V0CiAJICogY2xlYW5pbmcgdXAuICAo WFhYIGF1dG92YWMgbGF1bmNoZXIgY3VycmVudGx5IGRvZXNuJ3QgcGFydGljaXBhdGUgaW4KIAkg KiB0aGlzOyBpdCBwcm9iYWJseSBzaG91bGQuKQorCSAqCisJICogU2xvdCBzeW5jIHdvcmtlciBh bHNvIGRvZXMgbm90IHBhcnRpY2lwYXRlIGluIGl0LCBzZWUgY29tbWVudHMgYXRvcAorCSAqICdz dHJ1Y3QgYmtlbmQnIGluIHBvc3RtYXN0ZXIuYy4KIAkgKi8KLQlpZiAoSXNVbmRlclBvc3RtYXN0 ZXIgJiYgIUlzQXV0b1ZhY3V1bUxhdW5jaGVyUHJvY2VzcygpKQorCWlmIChJc1VuZGVyUG9zdG1h c3RlciAmJiAhSXNBdXRvVmFjdXVtTGF1bmNoZXJQcm9jZXNzKCkgJiYKKwkJIUlzTG9naWNhbFNs b3RTeW5jV29ya2VyKCkpCiAJCU1hcmtQb3N0bWFzdGVyQ2hpbGRBY3RpdmUoKTsKIAogCS8qCkBA IC05MzQsOCArOTM5LDEyIEBAIFByb2NLaWxsKGludCBjb2RlLCBEYXR1bSBhcmcpCiAJICogVGhp cyBwcm9jZXNzIGlzIG5vIGxvbmdlciBwcmVzZW50IGluIHNoYXJlZCBtZW1vcnkgaW4gYW55IG1l YW5pbmdmdWwKIAkgKiB3YXksIHNvIHRlbGwgdGhlIHBvc3RtYXN0ZXIgd2UndmUgY2xlYW5lZCB1 cCBhY2NlcHRhYmx5IHdlbGwuIChYWFgKIAkgKiBhdXRvdmFjIGxhdW5jaGVyIHNob3VsZCBiZSBp bmNsdWRlZCBoZXJlIHNvbWVkYXkpCisJICoKKwkgKiBTbG90IHN5bmMgd29ya2VyIGlzIGFsc28g bm90IGEgcG9zdG1hc3RlciBjaGlsZCwgc28gc2tpcCB0aGlzIHNoYXJlZAorCSAqIG1lbW9yeSBy ZWxhdGVkIHByb2Nlc3NpbmcgaGVyZS4KIAkgKi8KLQlpZiAoSXNVbmRlclBvc3RtYXN0ZXIgJiYg IUlzQXV0b1ZhY3V1bUxhdW5jaGVyUHJvY2VzcygpKQorCWlmIChJc1VuZGVyUG9zdG1hc3RlciAm JiAhSXNBdXRvVmFjdXVtTGF1bmNoZXJQcm9jZXNzKCkgJiYKKwkJIUlzTG9naWNhbFNsb3RTeW5j V29ya2VyKCkpCiAJCU1hcmtQb3N0bWFzdGVyQ2hpbGRJbmFjdGl2ZSgpOwogCiAJLyogd2FrZSBh dXRvdmFjIGxhdW5jaGVyIGlmIG5lZWRlZCAtLSBzZWUgY29tbWVudHMgaW4gRnJlZVdvcmtlcklu Zm8gKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyBiL3NyYy9iYWNr ZW5kL3Rjb3AvcG9zdGdyZXMuYwppbmRleCBlOGM1MzBhY2Q5Li4xYTM0YmQzNzE1IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC9w b3N0Z3Jlcy5jCkBAIC0zMjg2LDE3ICszMjg2LDYgQEAgUHJvY2Vzc0ludGVycnVwdHModm9pZCkK IAkJCSAqLwogCQkJcHJvY19leGl0KDEpOwogCQl9Ci0JCWVsc2UgaWYgKElzTG9naWNhbFNsb3RT eW5jV29ya2VyKCkpCi0JCXsKLQkJCWVsb2coREVCVUcxLAotCQkJCSAicmVwbGljYXRpb24gc2xv dCBzeW5jIHdvcmtlciBpcyBzaHV0dGluZyBkb3duIGR1ZSB0byBhZG1pbmlzdHJhdG9yIGNvbW1h bmQiKTsKLQotCQkJLyoKLQkJCSAqIFNsb3Qgc3luYyB3b3JrZXIgY2FuIGJlIHN0b3BwZWQgYXQg YW55IHRpbWUuIFVzZSBleGl0IHN0YXR1cyAxCi0JCQkgKiBzbyB0aGUgYmFja2dyb3VuZCB3b3Jr ZXIgaXMgcmVzdGFydGVkLgotCQkJICovCi0JCQlwcm9jX2V4aXQoMSk7Ci0JCX0KIAkJZWxzZSBp ZiAoSXNCYWNrZ3JvdW5kV29ya2VyKQogCQkJZXJlcG9ydChGQVRBTCwKIAkJCQkJKGVycmNvZGUo RVJSQ09ERV9BRE1JTl9TSFVURE9XTiksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9h Y3Rpdml0eS9wZ3N0YXRfaW8uYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9p by5jCmluZGV4IDQzYzM5M2Q2ZmUuLjlkNmUwNjczODIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9pby5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2 aXR5L3Bnc3RhdF9pby5jCkBAIC0zMzgsNiArMzM4LDcgQEAgcGdzdGF0X3RyYWNrc19pb19ia3R5 cGUoQmFja2VuZFR5cGUgYmt0eXBlKQogCQljYXNlIEJfQkdfV09SS0VSOgogCQljYXNlIEJfQkdf V1JJVEVSOgogCQljYXNlIEJfQ0hFQ0tQT0lOVEVSOgorCQljYXNlIEJfU0xPVFNZTkNfV09SS0VS OgogCQljYXNlIEJfU1RBTkRBTE9ORV9CQUNLRU5EOgogCQljYXNlIEJfU1RBUlRVUDoKIAkJY2Fz ZSBCX1dBTF9TRU5ERVI6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93 YWl0X2V2ZW50X25hbWVzLnR4dCBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dhaXRfZXZl bnRfbmFtZXMudHh0CmluZGV4IDNlNjIwMzMyMmEuLjRjMGVlMmRkMjkgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnRfbmFtZXMudHh0CisrKyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnRfbmFtZXMudHh0CkBAIC01NCw2ICs1NCw3 IEBAIExPR0lDQUxfTEFVTkNIRVJfTUFJTgkiV2FpdGluZyBpbiBtYWluIGxvb3Agb2YgbG9naWNh bCByZXBsaWNhdGlvbiBsYXVuY2hlciBwcm9jCiBMT0dJQ0FMX1BBUkFMTEVMX0FQUExZX01BSU4J IldhaXRpbmcgaW4gbWFpbiBsb29wIG9mIGxvZ2ljYWwgcmVwbGljYXRpb24gcGFyYWxsZWwgYXBw bHkgcHJvY2Vzcy4iCiBSRUNPVkVSWV9XQUxfU1RSRUFNCSJXYWl0aW5nIGluIG1haW4gbG9vcCBv ZiBzdGFydHVwIHByb2Nlc3MgZm9yIFdBTCB0byBhcnJpdmUsIGR1cmluZyBzdHJlYW1pbmcgcmVj b3ZlcnkuIgogUkVQTF9TTE9UU1lOQ19NQUlOCSJXYWl0aW5nIGluIG1haW4gbG9vcCBvZiBzbG90 IHN5bmMgd29ya2VyLiIKK1JFUExfU0xPVFNZTkNfU0hVVERPV04JIldhaXRpbmcgZm9yIHNsb3Qg c3luYyB3b3JrZXIgdG8gc2h1dCBkb3duLiIKIFNZU0xPR0dFUl9NQUlOCSJXYWl0aW5nIGluIG1h aW4gbG9vcCBvZiBzeXNsb2dnZXIgcHJvY2Vzcy4iCiBXQUxfUkVDRUlWRVJfTUFJTgkiV2FpdGlu ZyBpbiBtYWluIGxvb3Agb2YgV0FMIHJlY2VpdmVyIHByb2Nlc3MuIgogV0FMX1NFTkRFUl9NQUlO CSJXYWl0aW5nIGluIG1haW4gbG9vcCBvZiBXQUwgc2VuZGVyIHByb2Nlc3MuIgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9taXNjaW5pdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv aW5pdC9taXNjaW5pdC5jCmluZGV4IDIzZjc3YTU5ZTUuLjMwOWFhMzNhNjIgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvbWlzY2luaXQuYworKysgYi9zcmMvYmFja2VuZC91dGls cy9pbml0L21pc2Npbml0LmMKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJwb3N0bWFzdGVy L2ludGVycnVwdC5oIgogI2luY2x1ZGUgInBvc3RtYXN0ZXIvcGdhcmNoLmgiCiAjaW5jbHVkZSAi cG9zdG1hc3Rlci9wb3N0bWFzdGVyLmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNhbHdv cmtlci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvZmQuaCIKICNpbmNsdWRlICJzdG9yYWdlL2lwYy5o IgogI2luY2x1ZGUgInN0b3JhZ2UvbGF0Y2guaCIKQEAgLTI5Myw2ICsyOTQsOSBAQCBHZXRCYWNr ZW5kVHlwZURlc2MoQmFja2VuZFR5cGUgYmFja2VuZFR5cGUpCiAJCWNhc2UgQl9MT0dHRVI6CiAJ CQliYWNrZW5kRGVzYyA9ICJsb2dnZXIiOwogCQkJYnJlYWs7CisJCWNhc2UgQl9TTE9UU1lOQ19X T1JLRVI6CisJCQliYWNrZW5kRGVzYyA9ICJzbG90c3luY3dvcmtlciI7CisJCQlicmVhazsKIAkJ Y2FzZSBCX1NUQU5EQUxPTkVfQkFDS0VORDoKIAkJCWJhY2tlbmREZXNjID0gInN0YW5kYWxvbmUg YmFja2VuZCI7CiAJCQlicmVhazsKQEAgLTgzNSw5ICs4MzksMTAgQEAgSW5pdGlhbGl6ZVNlc3Np b25Vc2VySWRTdGFuZGFsb25lKHZvaWQpCiB7CiAJLyoKIAkgKiBUaGlzIGZ1bmN0aW9uIHNob3Vs ZCBvbmx5IGJlIGNhbGxlZCBpbiBzaW5nbGUtdXNlciBtb2RlLCBpbiBhdXRvdmFjdXVtCi0JICog d29ya2VycywgYW5kIGluIGJhY2tncm91bmQgd29ya2Vycy4KKwkgKiB3b3JrZXJzLCBpbiBzbG90 IHN5bmMgd29ya2VyIGFuZCBpbiBiYWNrZ3JvdW5kIHdvcmtlcnMuCiAJICovCi0JQXNzZXJ0KCFJ c1VuZGVyUG9zdG1hc3RlciB8fCBJc0F1dG9WYWN1dW1Xb3JrZXJQcm9jZXNzKCkgfHwgSXNCYWNr Z3JvdW5kV29ya2VyKTsKKwlBc3NlcnQoIUlzVW5kZXJQb3N0bWFzdGVyIHx8IElzQXV0b1ZhY3V1 bVdvcmtlclByb2Nlc3MoKSB8fAorCQkgICBJc0xvZ2ljYWxTbG90U3luY1dvcmtlcigpIHx8IElz QmFja2dyb3VuZFdvcmtlcik7CiAKIAkvKiBjYWxsIG9ubHkgb25jZSAqLwogCUFzc2VydCghT2lk SXNWYWxpZChBdXRoZW50aWNhdGVkVXNlcklkKSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9pbml0L3Bvc3Rpbml0LmMgYi9zcmMvYmFja2VuZC91dGlscy9pbml0L3Bvc3Rpbml0LmMK aW5kZXggMWFkMzM2NzE1OS4uYTVhZjBmNDEwYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRp bHMvaW5pdC9wb3N0aW5pdC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvcG9zdGluaXQu YwpAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgInBvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5oIgog I2luY2x1ZGUgInBvc3RtYXN0ZXIvcG9zdG1hc3Rlci5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9u L3Nsb3QuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dpY2Fsd29ya2VyLmgiCiAjaW5jbHVk ZSAicmVwbGljYXRpb24vd2Fsc2VuZGVyLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9idWZtZ3IuaCIK ICNpbmNsdWRlICJzdG9yYWdlL2ZkLmgiCkBAIC04NzQsMTAgKzg3NSwxMSBAQCBJbml0UG9zdGdy ZXMoY29uc3QgY2hhciAqaW5fZGJuYW1lLCBPaWQgZGJvaWQsCiAJICogUGVyZm9ybSBjbGllbnQg YXV0aGVudGljYXRpb24gaWYgbmVjZXNzYXJ5LCB0aGVuIGZpZ3VyZSBvdXQgb3VyCiAJICogcG9z dGdyZXMgdXNlciBJRCwgYW5kIHNlZSBpZiB3ZSBhcmUgYSBzdXBlcnVzZXIuCiAJICoKLQkgKiBJ biBzdGFuZGFsb25lIG1vZGUgYW5kIGluIGF1dG92YWN1dW0gd29ya2VyIHByb2Nlc3Nlcywgd2Ug dXNlIGEgZml4ZWQKLQkgKiBJRCwgb3RoZXJ3aXNlIHdlIGZpZ3VyZSBpdCBvdXQgZnJvbSB0aGUg YXV0aGVudGljYXRlZCB1c2VyIG5hbWUuCisJICogSW4gc3RhbmRhbG9uZSBtb2RlLCBhdXRvdmFj dXVtIHdvcmtlciBwcm9jZXNzZXMgYW5kIHNsb3Qgc3luYyB3b3JrZXIKKwkgKiBwcm9jZXNzLCB3 ZSB1c2UgYSBmaXhlZCBJRCwgb3RoZXJ3aXNlIHdlIGZpZ3VyZSBpdCBvdXQgZnJvbSB0aGUKKwkg KiBhdXRoZW50aWNhdGVkIHVzZXIgbmFtZS4KIAkgKi8KLQlpZiAoYm9vdHN0cmFwIHx8IElzQXV0 b1ZhY3V1bVdvcmtlclByb2Nlc3MoKSkKKwlpZiAoYm9vdHN0cmFwIHx8IElzQXV0b1ZhY3V1bVdv cmtlclByb2Nlc3MoKSB8fCBJc0xvZ2ljYWxTbG90U3luY1dvcmtlcigpKQogCXsKIAkJSW5pdGlh bGl6ZVNlc3Npb25Vc2VySWRTdGFuZGFsb25lKCk7CiAJCWFtX3N1cGVydXNlciA9IHRydWU7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCmluZGV4IGZlMDQ0YzE2ZGUuLjNhZjExYjJiODAg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCkBAIC0yMDU2LDcgKzIwNTYsNyBAQCBz dHJ1Y3QgY29uZmlnX2Jvb2wgQ29uZmlndXJlTmFtZXNCb29sW10gPQogCX0sCiAKIAl7Ci0JCXsi ZW5hYmxlX3N5bmNzbG90IiwgUEdDX1BPU1RNQVNURVIsIFJFUExJQ0FUSU9OX1NUQU5EQlksCisJ CXsiZW5hYmxlX3N5bmNzbG90IiwgUEdDX1NJR0hVUCwgUkVQTElDQVRJT05fU1RBTkRCWSwKIAkJ CWdldHRleHRfbm9vcCgiRW5hYmxlcyBhIHBoeXNpY2FsIHN0YW5kYnkgdG8gc3luY2hyb25pemUg bG9naWNhbCBmYWlsb3ZlciBzbG90cyBmcm9tIHRoZSBwcmltYXJ5IHNlcnZlci4iKSwKIAkJfSwK IAkJJmVuYWJsZV9zeW5jc2xvdCwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL21pc2NhZG1pbi5o IGIvc3JjL2luY2x1ZGUvbWlzY2FkbWluLmgKaW5kZXggMGIwMWMxZjA5My4uNjU4MTljYjdhNyAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbWlzY2FkbWluLmgKKysrIGIvc3JjL2luY2x1ZGUvbWlz Y2FkbWluLmgKQEAgLTMzMiw2ICszMzIsNyBAQCB0eXBlZGVmIGVudW0gQmFja2VuZFR5cGUKIAlC X0JHX1dSSVRFUiwKIAlCX0NIRUNLUE9JTlRFUiwKIAlCX0xPR0dFUiwKKwlCX1NMT1RTWU5DX1dP UktFUiwKIAlCX1NUQU5EQUxPTkVfQkFDS0VORCwKIAlCX1NUQVJUVVAsCiAJQl9XQUxfUkVDRUlW RVIsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wb3N0bWFzdGVyL2Jnd29ya2VyLmggYi9zcmMv aW5jbHVkZS9wb3N0bWFzdGVyL2Jnd29ya2VyLmgKaW5kZXggNzA5MmZjNzJjNi4uMjJmYzQ5ZWMy NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcG9zdG1hc3Rlci9iZ3dvcmtlci5oCisrKyBiL3Ny Yy9pbmNsdWRlL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuaApAQCAtNzksNyArNzksNiBAQCB0eXBlZGVm IGVudW0KIAlCZ1dvcmtlclN0YXJ0X1Bvc3RtYXN0ZXJTdGFydCwKIAlCZ1dvcmtlclN0YXJ0X0Nv bnNpc3RlbnRTdGF0ZSwKIAlCZ1dvcmtlclN0YXJ0X1JlY292ZXJ5RmluaXNoZWQsCi0JQmdXb3Jr ZXJTdGFydF9Db25zaXN0ZW50U3RhdGVfSG90U3RhbmRieSwKIH0gQmdXb3JrZXJTdGFydFRpbWU7 CiAKICNkZWZpbmUgQkdXX0RFRkFVTFRfUkVTVEFSVF9JTlRFUlZBTAk2MApkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmggYi9zcmMvaW5jbHVkZS9y ZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaAppbmRleCAyMTY3NzIwOTcxLi5hYTAxZjYzNjQ4 IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaAor KysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaApAQCAtMzI5LDkg KzMyOSwxMSBAQCBleHRlcm4gdm9pZCBwYV9kZWNyX2FuZF93YWl0X3N0cmVhbV9ibG9jayh2b2lk KTsKIAogZXh0ZXJuIHZvaWQgcGFfeGFjdF9maW5pc2goUGFyYWxsZWxBcHBseVdvcmtlckluZm8g KndpbmZvLAogCQkJCQkJICAgWExvZ1JlY1B0ciByZW1vdGVfbHNuKTsKLQotZXh0ZXJuIHZvaWQg UmVwbFNsb3RTeW5jV29ya2VyTWFpbihEYXR1bSBtYWluX2FyZyk7Ci1leHRlcm4gdm9pZCBTbG90 U3luY1dvcmtlclJlZ2lzdGVyKHZvaWQpOworI2lmZGVmIEVYRUNfQkFDS0VORAorZXh0ZXJuIHZv aWQgUmVwbFNsb3RTeW5jV29ya2VyTWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKSBwZ19hdHRy aWJ1dGVfbm9yZXR1cm4oKTsKKyNlbmRpZgorZXh0ZXJuIGludCBTdGFydFNsb3RTeW5jV29ya2Vy KHZvaWQpOworZXh0ZXJuIGJvb2wgU2xvdFN5bmNXb3JrZXJDYW5SZXN0YXJ0KHZvaWQpOwogZXh0 ZXJuIHZvaWQgU2h1dERvd25TbG90U3luYyh2b2lkKTsKIGV4dGVybiB2b2lkIFNsb3RTeW5jV29y a2VyU2htZW1Jbml0KHZvaWQpOwogCi0tIAoyLjMwLjAud2luZG93cy4yCgo= --_008_OS0PR01MB571623B1D01003F99A7BB983947A2OS0PR01MB5716jpnp_ Content-Type: application/octet-stream; name="v69-0005-Allow-logical-walsenders-to-wait-for-the-physica.patch" Content-Description: v69-0005-Allow-logical-walsenders-to-wait-for-the-physica.patch Content-Disposition: attachment; filename="v69-0005-Allow-logical-walsenders-to-wait-for-the-physica.patch"; size=42240; creation-date="Thu, 25 Jan 2024 13:06:42 GMT"; modification-date="Thu, 25 Jan 2024 13:11:47 GMT" Content-Transfer-Encoding: base64 RnJvbSBhY2YwMzAwZDI0MWI4MzQ3OTA2NjE0NDliMmI4ZGQxNDk5ZmFiYTgzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHZldGEgTWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ CkRhdGU6IFRodSwgMjUgSmFuIDIwMjQgMTQ6Mjg6NDIgKzA1MzAKU3ViamVjdDogW1BBVENIIHY2 OSA1LzddIEFsbG93IGxvZ2ljYWwgd2Fsc2VuZGVycyB0byB3YWl0IGZvciB0aGUgcGh5c2ljYWwK ClRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIG1lY2hhbmlzbSB0byBlbnN1cmUgdGhhdCBwaHlzaWNh bCBzdGFuZGJ5IHNlcnZlcnMsCndoaWNoIGFyZSBwb3RlbnRpYWwgZmFpbG92ZXIgY2FuZGlkYXRl cywgaGF2ZSByZWNlaXZlZCBhbmQgZmx1c2hlZCBjaGFuZ2VzCmJlZm9yZSBtYWtpbmcgdGhlbSB2 aXNpYmxlIHRvIHN1YnNjcmliZXJzLiBCeSBkb2luZyBzbywgaXQgZ3VhcmFudGVlcyB0aGF0CnRo ZSBwcm9tb3RlZCBzdGFuZGJ5IHNlcnZlciBpcyBub3QgbGFnZ2luZyBiZWhpbmQgdGhlIHN1YnNj cmliZXJzIHdoZW4gYQpmYWlsb3ZlciBpcyBuZWNlc3NhcnkuCgpBIG5ldyBwYXJhbWV0ZXIgbmFt ZWQgc3RhbmRieV9zbG90X25hbWVzIGlzIGludHJvZHVjZWQuIFRoZSBsb2dpY2FsCndhbHNlbmRl ciBub3cgZ3VhcmFudGVlcyB0aGF0IGFsbCBsb2NhbCBjaGFuZ2VzIGFyZSBzZW50IGFuZCBmbHVz aGVkIHRvCnRoZSBzdGFuZGJ5IHNlcnZlcnMgY29ycmVzcG9uZGluZyB0byB0aGUgcmVwbGljYXRp b24gc2xvdHMgc3BlY2lmaWVkIGluCnN0YW5kYnlfc2xvdF9uYW1lcyBiZWZvcmUgc2VuZGluZyB0 aG9zZSBjaGFuZ2VzIHRvIHRoZSBzdWJzY3JpYmVyLgoKQWRkaXRpb25hbGx5LCBUaGUgU1FMIGZ1 bmN0aW9ucyBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMgYW5kCnBnX3JlcGxpY2F0aW9uX3Ns b3RfYWR2YW5jZSBhcmUgbW9kaWZpZWQgdG8gd2FpdCBmb3IgdGhlIHJlcGxpY2F0aW9uIHNsb3Rz Cm1lbnRpb25lZCBpbiBzdGFuZGJ5X3Nsb3RfbmFtZXMgdG8gY2F0Y2ggdXAgYmVmb3JlIHJldHVy bmluZyB0aGUgY2hhbmdlcwp0byB0aGUgdXNlci4KLS0tCiBkb2Mvc3JjL3NnbWwvY29uZmlnLnNn bWwgICAgICAgICAgICAgICAgICAgICAgfCAgMjQgKysKIGRvYy9zcmMvc2dtbC9sb2dpY2FsZGVj b2Rpbmcuc2dtbCAgICAgICAgICAgICB8ICAgOSArLQogLi4uL3JlcGxpY2F0aW9uL2xvZ2ljYWwv bG9naWNhbGZ1bmNzLmMgICAgICAgIHwgIDEzICsKIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xv Z2ljYWwvc2xvdHN5bmMuYyAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90 LmMgICAgICAgICAgICAgICAgfCAzNDIgKysrKysrKysrKysrKysrKystCiBzcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9zbG90ZnVuY3MuYyAgICAgICAgICAgfCAgIDkgKwogc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vd2Fsc2VuZGVyLmMgICAgICAgICAgIHwgMTExICsrKysrLQogLi4uL3V0aWxzL2Fj dGl2aXR5L3dhaXRfZXZlbnRfbmFtZXMudHh0ICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL3V0 aWxzL21pc2MvZ3VjX3RhYmxlcy5jICAgICAgICAgICB8ICAxNCArCiBzcmMvYmFja2VuZC91dGls cy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgfCAgIDIgKwogc3JjL2luY2x1ZGUvcmVwbGlj YXRpb24vc2xvdC5oICAgICAgICAgICAgICAgIHwgICA3ICsKIHNyYy9pbmNsdWRlL3JlcGxpY2F0 aW9uL3dhbHNlbmRlci5oICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlv bi93YWxzZW5kZXJfcHJpdmF0ZS5oICAgfCAgIDcgKwogc3JjL2luY2x1ZGUvdXRpbHMvZ3VjX2hv b2tzLmggICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy90ZXN0L3JlY292ZXJ5L21lc29uLmJ1 aWxkICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9yZWNvdmVyeS90LzAwNl9sb2dp Y2FsX2RlY29kaW5nLnBsICAgfCAgIDMgKy0KIC4uLi90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Ns b3RzX3N5bmMucGwgICAgICB8IDIzMiArKysrKysrKysrLS0KIDE3IGZpbGVzIGNoYW5nZWQsIDcz OSBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvY29uZmlnLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggYmQyZDJmODcx ZS4uNzYzNDVlNDMzYyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApAQCAtNDQyMCw2ICs0NDIwLDMwIEBAIHJlc3RvcmVf Y29tbWFuZCA9ICdjb3B5ICJDOlxcc2VydmVyXFxhcmNoaXZlZGlyXFwlZiIgIiVwIicgICMgV2lu ZG93cwogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZh cmxpc3RlbnRyeSBpZD0iZ3VjLXN0YW5kYnktc2xvdC1uYW1lcyIgeHJlZmxhYmVsPSJzdGFuZGJ5 X3Nsb3RfbmFtZXMiPgorICAgICAgPHRlcm0+PHZhcm5hbWU+c3RhbmRieV9zbG90X25hbWVzPC92 YXJuYW1lPiAoPHR5cGU+c3RyaW5nPC90eXBlPikKKyAgICAgIDxpbmRleHRlcm0+CisgICAgICAg PHByaW1hcnk+PHZhcm5hbWU+c3RhbmRieV9zbG90X25hbWVzPC92YXJuYW1lPiBjb25maWd1cmF0 aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgPC90ZXJt PgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBMaXN0IG9mIHBoeXNp Y2FsIHNsb3RzIGd1YXJhbnRlZXMgdGhhdCBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3RzIHdpdGgK KyAgICAgICAgZmFpbG92ZXIgZW5hYmxlZCBkbyBub3QgY29uc3VtZSBjaGFuZ2VzIHVudGlsIHRo b3NlIGNoYW5nZXMgYXJlIHJlY2VpdmVkCisgICAgICAgIGFuZCBmbHVzaGVkIHRvIGNvcnJlc3Bv bmRpbmcgcGh5c2ljYWwgc3RhbmRieXMuIElmIGEgbG9naWNhbCByZXBsaWNhdGlvbgorICAgICAg ICBjb25uZWN0aW9uIGlzIG1lYW50IHRvIHN3aXRjaCB0byBhIHBoeXNpY2FsIHN0YW5kYnkgYWZ0 ZXIgdGhlIHN0YW5kYnkgaXMKKyAgICAgICAgcHJvbW90ZWQsIHRoZSBwaHlzaWNhbCByZXBsaWNh dGlvbiBzbG90IGZvciB0aGUgc3RhbmRieSBzaG91bGQgYmUgbGlzdGVkCisgICAgICAgIGhlcmUu CisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgc3RhbmRieXMgY29y cmVzcG9uZGluZyB0byB0aGUgcGh5c2ljYWwgcmVwbGljYXRpb24gc2xvdHMgaW4KKyAgICAgICAg PHZhcm5hbWU+c3RhbmRieV9zbG90X25hbWVzPC92YXJuYW1lPiBtdXN0IGNvbmZpZ3VyZQorICAg ICAgICA8bGl0ZXJhbD5lbmFibGVfc3luY3Nsb3QgPSB0cnVlPC9saXRlcmFsPiBzbyB0aGV5IGNh biByZWNlaXZlCisgICAgICAgIGZhaWxvdmVyIGxvZ2ljYWwgc2xvdHMgY2hhbmdlcyBmcm9tIHRo ZSBwcmltYXJ5LgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFy bGlzdGVudHJ5PgorCiAgICAgIDwvdmFyaWFibGVsaXN0PgogICAgIDwvc2VjdDI+CiAKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbCBiL2RvYy9zcmMvc2dtbC9s b2dpY2FsZGVjb2Rpbmcuc2dtbAppbmRleCBlYzE0Y2Y3MzI1Li45NjVlZTcxNmUyIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvbG9naWNhbGRlY29kaW5nLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L2xvZ2ljYWxkZWNvZGluZy5zZ21sCkBAIC0zNzIsNyArMzcyLDE0IEBAIHBvc3RncmVzPSMgc2Vs ZWN0ICogZnJvbSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJ3JlZ3Jlc3Npb25fc2xvdCcs IE5VTEwsIE5VCiAgICAgIHRvIHdvcmssIGl0IGlzIG1hbmRhdG9yeSB0byBoYXZlIGEgcGh5c2lj YWwgcmVwbGljYXRpb24gc2xvdCBiZXR3ZWVuIHRoZQogICAgICBwcmltYXJ5IGFuZCB0aGUgc3Rh bmRieSwgYW5kCiAgICAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy1ob3Qtc3RhbmRieS1mZWVkYmFjayI+ PHZhcm5hbWU+aG90X3N0YW5kYnlfZmVlZGJhY2s8L3Zhcm5hbWU+PC9saW5rPgotICAgICBtdXN0 IGJlIGVuYWJsZWQgb24gdGhlIHN0YW5kYnkuCisgICAgIG11c3QgYmUgZW5hYmxlZCBvbiB0aGUg c3RhbmRieS4gSXQncyBhbHNvIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHRoZSBzYWlkCisgICAg IHBoeXNpY2FsIHJlcGxpY2F0aW9uIHNsb3QgaXMgbmFtZWQgaW4KKyAgICAgPGxpbmsgbGlua2Vu ZD0iZ3VjLXN0YW5kYnktc2xvdC1uYW1lcyI+PHZhcm5hbWU+c3RhbmRieV9zbG90X25hbWVzPC92 YXJuYW1lPjwvbGluaz4KKyAgICAgbGlzdCBvbiB0aGUgcHJpbWFyeSwgdG8gcHJldmVudCB0aGUg c3Vic2NyaWJlciBmcm9tIGNvbnN1bWluZyBjaGFuZ2VzCisgICAgIGZhc3RlciB0aGFuIHRoZSBo b3Qgc3RhbmRieS4gQnV0IG9uY2Ugd2UgY29uZmlndXJlIGl0LCB0aGVuIGNlcnRhaW4gbGF0ZW5j eQorICAgICBpcyBleHBlY3RlZCBpbiBzZW5kaW5nIGNoYW5nZXMgdG8gbG9naWNhbCBzdWJzY3Jp YmVycyBkdWUgdG8gd2FpdCBvbgorICAgICBwaHlzaWNhbCByZXBsaWNhdGlvbiBzbG90cyBpbgor ICAgICA8bGluayBsaW5rZW5kPSJndWMtc3RhbmRieS1zbG90LW5hbWVzIj48dmFybmFtZT5zdGFu ZGJ5X3Nsb3RfbmFtZXM8L3Zhcm5hbWU+PC9saW5rPgogICAgIDwvcGFyYT4KIAogICAgIDxwYXJh PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsZnVu Y3MuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbGZ1bmNzLmMKaW5k ZXggYjAwODFkM2NlNS4uNWZmNzYxZGQ2NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vbG9naWNhbC9sb2dpY2FsZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL2xvZ2ljYWxmdW5jcy5jCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAicmVw bGljYXRpb24vZGVjb2RlLmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNhbC5oIgogI2lu Y2x1ZGUgInJlcGxpY2F0aW9uL21lc3NhZ2UuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi93YWxz ZW5kZXIuaCIKICNpbmNsdWRlICJzdG9yYWdlL2ZkLmgiCiAjaW5jbHVkZSAidXRpbHMvYXJyYXku aCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgpAQCAtMTA5LDYgKzExMCw3IEBAIHBnX2xv Z2ljYWxfc2xvdF9nZXRfY2hhbmdlc19ndXRzKEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLCBib29s IGNvbmZpcm0sIGJvb2wgYmluCiAJTWVtb3J5Q29udGV4dCBwZXJfcXVlcnlfY3R4OwogCU1lbW9y eUNvbnRleHQgb2xkY29udGV4dDsKIAlYTG9nUmVjUHRyCWVuZF9vZl93YWw7CisJWExvZ1JlY1B0 cgl3YWl0X2Zvcl93YWxfbHNuOwogCUxvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eDsKIAlSZXNv dXJjZU93bmVyIG9sZF9yZXNvd25lciA9IEN1cnJlbnRSZXNvdXJjZU93bmVyOwogCUFycmF5VHlw ZSAgKmFycjsKQEAgLTIyOCw2ICsyMzAsMTcgQEAgcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2Vz X2d1dHMoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIGJvb2wgY29uZmlybSwgYm9vbCBiaW4KIAkJ CQkJCQlOYW1lU3RyKE15UmVwbGljYXRpb25TbG90LT5kYXRhLnBsdWdpbiksCiAJCQkJCQkJZm9y bWF0X3Byb2NlZHVyZShmY2luZm8tPmZsaW5mby0+Zm5fb2lkKSkpKTsKIAorCQlpZiAoWExvZ1Jl Y1B0cklzSW52YWxpZCh1cHRvX2xzbikpCisJCQl3YWl0X2Zvcl93YWxfbHNuID0gZW5kX29mX3dh bDsKKwkJZWxzZQorCQkJd2FpdF9mb3Jfd2FsX2xzbiA9IE1pbih1cHRvX2xzbiwgZW5kX29mX3dh bCk7CisKKwkJLyoKKwkJICogV2FpdCBmb3Igc3BlY2lmaWVkIHN0cmVhbWluZyByZXBsaWNhdGlv biBzdGFuZGJ5IHNlcnZlcnMgKGlmIGFueSkKKwkJICogdG8gY29uZmlybSByZWNlaXB0IG9mIFdB TCB1cCB0byB3YWl0X2Zvcl93YWxfbHNuLgorCQkgKi8KKwkJV2FpdEZvclN0YW5kYnlDb25maXJt YXRpb24od2FpdF9mb3Jfd2FsX2xzbik7CisKIAkJY3R4LT5vdXRwdXRfd3JpdGVyX3ByaXZhdGUg PSBwOwogCiAJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L3Nsb3RzeW5jLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMK aW5kZXggOTRjYTkzZjg4Ni4uNjhhZDhiYmNiYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vbG9naWNhbC9zbG90c3luYy5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvc2xvdHN5bmMuYwpAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgImNvbW1hbmRz L2RiY29tbWFuZHMuaCIKICNpbmNsdWRlICJsaWJwcS9wcXNpZ25hbC5oIgogI2luY2x1ZGUgInBn c3RhdC5oIgorI2luY2x1ZGUgInBvc3RtYXN0ZXIvaW50ZXJydXB0LmgiCiAjaW5jbHVkZSAicG9z dG1hc3Rlci9iZ3dvcmtlci5oIgogI2luY2x1ZGUgInBvc3RtYXN0ZXIvZm9ya19wcm9jZXNzLmgi CiAjaW5jbHVkZSAicG9zdG1hc3Rlci9pbnRlcnJ1cHQuaCIKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwpp bmRleCA4Y2FhNmE5ZTA5Li44ZGMyYmM3Yzk1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9zbG90LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCkBAIC00 NiwxNCArNDYsMTkgQEAKICNpbmNsdWRlICJjb21tb24vc3RyaW5nLmgiCiAjaW5jbHVkZSAibWlz Y2FkbWluLmgiCiAjaW5jbHVkZSAicGdzdGF0LmgiCisjaW5jbHVkZSAicG9zdG1hc3Rlci9pbnRl cnJ1cHQuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dpY2Fsd29ya2VyLmgiCiAjaW5jbHVk ZSAicmVwbGljYXRpb24vc2xvdC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dhbHNlbmRlci5o IgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dhbHNlbmRlcl9wcml2YXRlLmgiCiAjaW5jbHVkZSAi c3RvcmFnZS9mZC5oIgogI2luY2x1ZGUgInN0b3JhZ2UvaXBjLmgiCiAjaW5jbHVkZSAic3RvcmFn ZS9wcm9jLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wcm9jYXJyYXkuaCIKICNpbmNsdWRlICJ1dGls cy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2d1Y19ob29rcy5oIgorI2luY2x1ZGUgInV0 aWxzL21lbXV0aWxzLmgiCisjaW5jbHVkZSAidXRpbHMvdmFybGVuYS5oIgogCiAvKgogICogUmVw bGljYXRpb24gc2xvdCBvbi1kaXNrIGRhdGEgc3RydWN0dXJlLgpAQCAtMTAwLDEwICsxMDUsMTkg QEAgUmVwbGljYXRpb25TbG90Q3RsRGF0YSAqUmVwbGljYXRpb25TbG90Q3RsID0gTlVMTDsKIC8q IE15IGJhY2tlbmQncyByZXBsaWNhdGlvbiBzbG90IGluIHRoZSBzaGFyZWQgbWVtb3J5IGFycmF5 ICovCiBSZXBsaWNhdGlvblNsb3QgKk15UmVwbGljYXRpb25TbG90ID0gTlVMTDsKIAotLyogR1VD IHZhcmlhYmxlICovCisvKiBHVUMgdmFyaWFibGVzICovCiBpbnQJCQltYXhfcmVwbGljYXRpb25f c2xvdHMgPSAxMDsgLyogdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcGxpY2F0aW9uCiAJCQkJCQkJ CQkJICogc2xvdHMgKi8KIAorLyoKKyAqIFRoaXMgR1VDIGxpc3RzIHN0cmVhbWluZyByZXBsaWNh dGlvbiBzdGFuZGJ5IHNlcnZlciBzbG90IG5hbWVzIHRoYXQKKyAqIGxvZ2ljYWwgV0FMIHNlbmRl ciBwcm9jZXNzZXMgd2lsbCB3YWl0IGZvci4KKyAqLworY2hhcgkgICAqc3RhbmRieV9zbG90X25h bWVzOworCisvKiBUaGlzIGlzIHBhcnNlZCBhbmQgY2FjaGVkIGxpc3QgZm9yIHJhdyBzdGFuZGJ5 X3Nsb3RfbmFtZXMuICovCitzdGF0aWMgTGlzdCAqc3RhbmRieV9zbG90X25hbWVzX2xpc3QgPSBO SUw7CisKIHN0YXRpYyB2b2lkIFJlcGxpY2F0aW9uU2xvdFNobWVtRXhpdChpbnQgY29kZSwgRGF0 dW0gYXJnKTsKIHN0YXRpYyB2b2lkIFJlcGxpY2F0aW9uU2xvdERyb3BQdHIoUmVwbGljYXRpb25T bG90ICpzbG90KTsKIApAQCAtMjIzNywzICsyMjUxLDMyOSBAQCBSZXN0b3JlU2xvdEZyb21EaXNr KGNvbnN0IGNoYXIgKm5hbWUpCiAJCQkJKGVycm1zZygidG9vIG1hbnkgcmVwbGljYXRpb24gc2xv dHMgYWN0aXZlIGJlZm9yZSBzaHV0ZG93biIpLAogCQkJCSBlcnJoaW50KCJJbmNyZWFzZSBtYXhf cmVwbGljYXRpb25fc2xvdHMgYW5kIHRyeSBhZ2Fpbi4iKSkpOwogfQorCisvKgorICogQSBoZWxw ZXIgZnVuY3Rpb24gdG8gdmFsaWRhdGUgc2xvdHMgc3BlY2lmaWVkIGluIEdVQyBzdGFuZGJ5X3Ns b3RfbmFtZXMuCisgKi8KK3N0YXRpYyBib29sCit2YWxpZGF0ZV9zdGFuZGJ5X3Nsb3RzKGNoYXIg KipuZXd2YWwpCit7CisJY2hhcgkgICAqcmF3bmFtZTsKKwlMaXN0CSAgICplbGVtbGlzdDsKKwlM aXN0Q2VsbCAgICpsYzsKKwlib29sCQlvazsKKworCS8qIE5lZWQgYSBtb2RpZmlhYmxlIGNvcHkg b2Ygc3RyaW5nICovCisJcmF3bmFtZSA9IHBzdHJkdXAoKm5ld3ZhbCk7CisKKwkvKiBWZXJpZnkg c3ludGF4IGFuZCBwYXJzZSBzdHJpbmcgaW50byBhIGxpc3Qgb2YgaWRlbnRpZmllcnMgKi8KKwlv ayA9IFNwbGl0SWRlbnRpZmllclN0cmluZyhyYXduYW1lLCAnLCcsICZlbGVtbGlzdCk7CisKKwlp ZiAoIW9rKQorCQlHVUNfY2hlY2tfZXJyZGV0YWlsKCJMaXN0IHN5bnRheCBpcyBpbnZhbGlkLiIp OworCisJLyoKKwkgKiBJZiB0aGVyZSBpcyBhIHN5bnRheCBlcnJvciBpbiB0aGUgbmFtZSBvciBp ZiB0aGUgcmVwbGljYXRpb24gc2xvdHMnCisJICogZGF0YSBpcyBub3QgaW5pdGlhbGl6ZWQgeWV0 IChpLmUuLCB3ZSBhcmUgaW4gdGhlIHN0YXJ0dXAgcHJvY2VzcyksIHNraXAKKwkgKiB0aGUgc2xv dCB2ZXJpZmljYXRpb24uCisJICovCisJaWYgKCFvayB8fCAhUmVwbGljYXRpb25TbG90Q3RsKQor CXsKKwkJcGZyZWUocmF3bmFtZSk7CisJCWxpc3RfZnJlZShlbGVtbGlzdCk7CisJCXJldHVybiBv azsKKwl9CisKKwlmb3JlYWNoKGxjLCBlbGVtbGlzdCkKKwl7CisJCWNoYXIJICAgKm5hbWUgPSBs Zmlyc3QobGMpOworCQlSZXBsaWNhdGlvblNsb3QgKnNsb3Q7CisKKwkJc2xvdCA9IFNlYXJjaE5h bWVkUmVwbGljYXRpb25TbG90KG5hbWUsIHRydWUpOworCisJCWlmICghc2xvdCkKKwkJeworCQkJ R1VDX2NoZWNrX2VycmRldGFpbCgicmVwbGljYXRpb24gc2xvdCBcIiVzXCIgZG9lcyBub3QgZXhp c3QiLAorCQkJCQkJCQluYW1lKTsKKwkJCW9rID0gZmFsc2U7CisJCQlicmVhazsKKwkJfQorCisJ CWlmICghU2xvdElzUGh5c2ljYWwoc2xvdCkpCisJCXsKKwkJCUdVQ19jaGVja19lcnJkZXRhaWwo IlwiJXNcIiBpcyBub3QgYSBwaHlzaWNhbCByZXBsaWNhdGlvbiBzbG90IiwKKwkJCQkJCQkJbmFt ZSk7CisJCQlvayA9IGZhbHNlOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlwZnJlZShyYXduYW1l KTsKKwlsaXN0X2ZyZWUoZWxlbWxpc3QpOworCXJldHVybiBvazsKK30KKworLyoKKyAqIEdVQyBj aGVja19ob29rIGZvciBzdGFuZGJ5X3Nsb3RfbmFtZXMKKyAqLworYm9vbAorY2hlY2tfc3RhbmRi eV9zbG90X25hbWVzKGNoYXIgKipuZXd2YWwsIHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJj ZSkKK3sKKwlpZiAoc3RyY21wKCpuZXd2YWwsICIiKSA9PSAwKQorCQlyZXR1cm4gdHJ1ZTsKKwor CS8qCisJICogIioiIGlzIG5vdCBhY2NlcHRlZCBhcyBpbiB0aGF0IGNhc2UgcHJpbWFyeSB3aWxs IG5vdCBiZSBhYmxlIHRvIGtub3cKKwkgKiBmb3Igd2hpY2ggYWxsIHN0YW5kYnlzIHRvIHdhaXQg Zm9yLiBFdmVuIGlmIHdlIGhhdmUgcGh5c2ljYWwtc2xvdHMKKwkgKiBpbmZvLCB0aGVyZSBpcyBu byB3YXkgdG8gY29uZmlybSB3aGV0aGVyIHRoZXJlIGlzIGFueSBzdGFuZGJ5CisJICogY29uZmln dXJlZCBmb3IgdGhlIGtub3duIHBoeXNpY2FsIHNsb3RzLgorCSAqLworCWlmIChzdHJjbXAoKm5l d3ZhbCwgIioiKSA9PSAwKQorCXsKKwkJR1VDX2NoZWNrX2VycmRldGFpbCgiXCIlc1wiIGlzIG5v dCBhY2NlcHRlZCBmb3Igc3RhbmRieV9zbG90X25hbWVzIiwKKwkJCQkJCQkqbmV3dmFsKTsKKwkJ cmV0dXJuIGZhbHNlOworCX0KKworCS8qIE5vdyB2ZXJpZnkgaWYgdGhlIHNwZWNpZmllZCBzbG90 cyByZWFsbHkgZXhpc3QgYW5kIGhhdmUgY29ycmVjdCB0eXBlICovCisJaWYgKCF2YWxpZGF0ZV9z dGFuZGJ5X3Nsb3RzKG5ld3ZhbCkpCisJCXJldHVybiBmYWxzZTsKKworCSpleHRyYSA9IGd1Y19z dHJkdXAoRVJST1IsICpuZXd2YWwpOworCisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBHVUMg YXNzaWduX2hvb2sgZm9yIHN0YW5kYnlfc2xvdF9uYW1lcworICovCit2b2lkCithc3NpZ25fc3Rh bmRieV9zbG90X25hbWVzKGNvbnN0IGNoYXIgKm5ld3ZhbCwgdm9pZCAqZXh0cmEpCit7CisJTGlz dAkgICAqc3RhbmRieV9zbG90czsKKwlNZW1vcnlDb250ZXh0IG9sZGN4dDsKKwljaGFyCSAgICpz dGFuZGJ5X3Nsb3RfbmFtZXNfY3B5ID0gZXh0cmE7CisKKwlsaXN0X2ZyZWUoc3RhbmRieV9zbG90 X25hbWVzX2xpc3QpOworCXN0YW5kYnlfc2xvdF9uYW1lc19saXN0ID0gTklMOworCisJLyogTm8g dmFsdWUgaXMgc3BlY2lmaWVkIGZvciBzdGFuZGJ5X3Nsb3RfbmFtZXMuICovCisJaWYgKHN0YW5k Ynlfc2xvdF9uYW1lc19jcHkgPT0gTlVMTCkKKwkJcmV0dXJuOworCisJaWYgKCFTcGxpdElkZW50 aWZpZXJTdHJpbmcoc3RhbmRieV9zbG90X25hbWVzX2NweSwgJywnLCAmc3RhbmRieV9zbG90cykp CisJeworCQkvKiBUaGlzIHNob3VsZCBub3QgaGFwcGVuIGlmIEdVQyBjaGVja2VkIGNoZWNrX3N0 YW5kYnlfc2xvdF9uYW1lcy4gKi8KKwkJZWxvZyhFUlJPUiwgImludmFsaWQgbGlzdCBzeW50YXgi KTsKKwl9CisKKwkvKgorCSAqIFN3aXRjaCB0byB0aGUgc2FtZSBtZW1vcnkgY29udGV4dCB1bmRl ciB3aGljaCBHVUMgdmFyaWFibGVzIGFyZQorCSAqIGFsbG9jYXRlZCAoR1VDTWVtb3J5Q29udGV4 dCkuCisJICovCisJb2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKEdldE1lbW9yeUNodW5r Q29udGV4dChzdGFuZGJ5X3Nsb3RfbmFtZXNfY3B5KSk7CisJc3RhbmRieV9zbG90X25hbWVzX2xp c3QgPSBsaXN0X2NvcHkoc3RhbmRieV9zbG90cyk7CisJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9s ZGN4dCk7Cit9CisKKy8qCisgKiBSZXR1cm4gYSBjb3B5IG9mIHN0YW5kYnlfc2xvdF9uYW1lc19s aXN0IGlmIHRoZSBjb3B5IGZsYWcgaXMgc2V0IHRvIHRydWUsCisgKiBvdGhlcndpc2UgcmV0dXJu IHRoZSBvcmlnaW5hbCBsaXN0LgorICovCitMaXN0ICoKK0dldFN0YW5kYnlTbG90TGlzdChib29s IGNvcHkpCit7CisJLyoKKwkgKiBTaW5jZSB3ZSBkbyBub3Qgc3VwcG9ydCBzeW5jaW5nIHNsb3Rz IHRvIGNhc2NhZGluZyBzdGFuZGJ5cywgd2UgcmV0dXJuCisJICogTklMIGhlcmUgaWYgd2UgYXJl IHJ1bm5pbmcgaW4gYSBzdGFuZGJ5IHRvIGluZGljYXRlIHRoYXQgbm8gc3RhbmRieQorCSAqIHNs b3RzIG5lZWQgdG8gYmUgd2FpdGVkIGZvci4KKwkgKi8KKwlpZiAoUmVjb3ZlcnlJblByb2dyZXNz KCkpCisJCXJldHVybiBOSUw7CisKKwlpZiAoY29weSkKKwkJcmV0dXJuIGxpc3RfY29weShzdGFu ZGJ5X3Nsb3RfbmFtZXNfbGlzdCk7CisJZWxzZQorCQlyZXR1cm4gc3RhbmRieV9zbG90X25hbWVz X2xpc3Q7Cit9CisKKy8qCisgKiBSZWxvYWQgdGhlIGNvbmZpZyBmaWxlIGFuZCByZWluaXRpYWxp emUgdGhlIHN0YW5kYnkgc2xvdCBsaXN0IGlmIHRoZSBHVUMKKyAqIHN0YW5kYnlfc2xvdF9uYW1l cyBoYXMgY2hhbmdlZC4KKyAqLwordm9pZAorUmVyZWFkQ29uZmlnQW5kUmVJbml0U2xvdExpc3Qo TGlzdCAqKnN0YW5kYnlfc2xvdHMpCit7CisJY2hhcgkgICAqcHJlX3N0YW5kYnlfc2xvdF9uYW1l czsKKworCS8qCisJICogSWYgd2UgYXJlIHJ1bm5pbmcgb24gYSBzdGFuZGJ5LCB0aGVyZSBpcyBu byBuZWVkIHRvIHJlbG9hZAorCSAqIHN0YW5kYnlfc2xvdF9uYW1lcyBzaW5jZSB3ZSBkbyBub3Qg c3VwcG9ydCBzeW5jaW5nIHNsb3RzIHRvIGNhc2NhZGluZworCSAqIHN0YW5kYnlzLgorCSAqLwor CWlmIChSZWNvdmVyeUluUHJvZ3Jlc3MoKSkKKwl7CisJCVByb2Nlc3NDb25maWdGaWxlKFBHQ19T SUdIVVApOworCQlyZXR1cm47CisJfQorCisJcHJlX3N0YW5kYnlfc2xvdF9uYW1lcyA9IHBzdHJk dXAoc3RhbmRieV9zbG90X25hbWVzKTsKKworCVByb2Nlc3NDb25maWdGaWxlKFBHQ19TSUdIVVAp OworCisJaWYgKHN0cmNtcChwcmVfc3RhbmRieV9zbG90X25hbWVzLCBzdGFuZGJ5X3Nsb3RfbmFt ZXMpICE9IDApCisJeworCQlsaXN0X2ZyZWUoKnN0YW5kYnlfc2xvdHMpOworCQkqc3RhbmRieV9z bG90cyA9IEdldFN0YW5kYnlTbG90TGlzdCh0cnVlKTsKKwl9CisKKwlwZnJlZShwcmVfc3RhbmRi eV9zbG90X25hbWVzKTsKK30KKworLyoKKyAqIEZpbHRlciB0aGUgc3RhbmRieSBzbG90cyBiYXNl ZCBvbiB0aGUgc3BlY2lmaWVkIGxvZyBzZXF1ZW5jZSBudW1iZXIKKyAqICh3YWl0X2Zvcl9sc24p LgorICoKKyAqIFRoaXMgZnVuY3Rpb24gdXBkYXRlcyB0aGUgcGFzc2VkIHN0YW5kYnlfc2xvdHMg bGlzdCwgcmVtb3ZpbmcgYW55IHNsb3RzIHRoYXQKKyAqIGhhdmUgYWxyZWFkeSBjYXVnaHQgdXAg dG8gb3Igc3VycGFzc2VkIHRoZSBnaXZlbiB3YWl0X2Zvcl9sc24uIEFkZGl0aW9uYWxseSwKKyAq IGl0IHJlbW92ZXMgc2xvdHMgdGhhdCBoYXZlIGJlZW4gaW52YWxpZGF0ZWQsIGRyb3BwZWQsIG9y IGNvbnZlcnRlZCB0bworICogbG9naWNhbCBzbG90cy4KKyAqLwordm9pZAorRmlsdGVyU3RhbmRi eVNsb3RzKFhMb2dSZWNQdHIgd2FpdF9mb3JfbHNuLCBMaXN0ICoqc3RhbmRieV9zbG90cykKK3sK KwlMaXN0Q2VsbCAgICpsYzsKKwlMaXN0CSAgICpzdGFuZGJ5X3Nsb3RzX2NweSA9ICpzdGFuZGJ5 X3Nsb3RzOworCisJZm9yZWFjaChsYywgc3RhbmRieV9zbG90c19jcHkpCisJeworCQljaGFyCSAg ICpuYW1lID0gbGZpcnN0KGxjKTsKKwkJY2hhcgkgICAqd2FybmluZ2ZtdCA9IE5VTEw7CisJCVJl cGxpY2F0aW9uU2xvdCAqc2xvdDsKKworCQlzbG90ID0gU2VhcmNoTmFtZWRSZXBsaWNhdGlvblNs b3QobmFtZSwgdHJ1ZSk7CisKKwkJaWYgKCFzbG90KQorCQl7CisJCQkvKgorCQkJICogSXQgbWF5 IGhhcHBlbiB0aGF0IHRoZSBzbG90IHNwZWNpZmllZCBpbiBzdGFuZGJ5X3Nsb3RfbmFtZXMgR1VD CisJCQkgKiB2YWx1ZSBpcyBkcm9wcGVkLCBzbyBsZXQncyBza2lwIG92ZXIgaXQuCisJCQkgKi8K KwkJCXdhcm5pbmdmbXQgPSBfKCJyZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBzcGVjaWZpZWQgaW4g cGFyYW1ldGVyIFwiJXNcIiBkb2VzIG5vdCBleGlzdCwgaWdub3JpbmciKTsKKwkJfQorCQllbHNl IGlmIChTbG90SXNMb2dpY2FsKHNsb3QpKQorCQl7CisJCQkvKgorCQkJICogSWYgYSBsb2dpY2Fs IHNsb3QgbmFtZSBpcyBwcm92aWRlZCBpbiBzdGFuZGJ5X3Nsb3RfbmFtZXMsIGlzc3VlCisJCQkg KiBhIFdBUk5JTkcgYW5kIHNraXAgaXQuIEFsdGhvdWdoIGxvZ2ljYWwgc2xvdHMgYXJlIGRpc2Fs bG93ZWQgaW4KKwkJCSAqIHRoZSBHVUMgY2hlY2tfaG9vayh2YWxpZGF0ZV9zdGFuZGJ5X3Nsb3Rz KSwgaXQgaXMgc3RpbGwKKwkJCSAqIHBvc3NpYmxlIGZvciBhIHVzZXIgdG8gZHJvcCBhbiBleGlz dGluZyBwaHlzaWNhbCBzbG90IGFuZAorCQkJICogcmVjcmVhdGUgYSBsb2dpY2FsIHNsb3Qgd2l0 aCB0aGUgc2FtZSBuYW1lLiBTaW5jZSBpdCBpcworCQkJICogaGFybWxlc3MsIGEgV0FSTklORyBz aG91bGQgYmUgZW5vdWdoLCBubyBuZWVkIHRvIGVycm9yLW91dC4KKwkJCSAqLworCQkJd2Fybmlu Z2ZtdCA9IF8oImNhbm5vdCBoYXZlIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIgaW4g cGFyYW1ldGVyIFwiJXNcIiwgaWdub3JpbmciKTsKKwkJfQorCQllbHNlCisJCXsKKwkJCVNwaW5M b2NrQWNxdWlyZSgmc2xvdC0+bXV0ZXgpOworCisJCQlpZiAoc2xvdC0+ZGF0YS5pbnZhbGlkYXRl ZCAhPSBSU19JTlZBTF9OT05FKQorCQkJeworCQkJCS8qCisJCQkJICogU3BlY2lmaWVkIHBoeXNp Y2FsIHNsb3QgaGF2ZSBiZWVuIGludmFsaWRhdGVkLCBzbyBubyBwb2ludAorCQkJCSAqIGluIHdh aXRpbmcgZm9yIGl0LgorCQkJCSAqLworCQkJCXdhcm5pbmdmbXQgPSBfKCJwaHlzaWNhbCBzbG90 IFwiJXNcIiBzcGVjaWZpZWQgaW4gcGFyYW1ldGVyIFwiJXNcIiBoYXMgYmVlbiBpbnZhbGlkYXRl ZCwgaWdub3JpbmciKTsKKwkJCX0KKwkJCWVsc2UgaWYgKFhMb2dSZWNQdHJJc0ludmFsaWQoc2xv dC0+ZGF0YS5yZXN0YXJ0X2xzbikgfHwKKwkJCQkJIHNsb3QtPmRhdGEucmVzdGFydF9sc24gPCB3 YWl0X2Zvcl9sc24pCisJCQl7CisJCQkJYm9vbAlpbmFjdGl2ZSA9IChzbG90LT5hY3RpdmVfcGlk ID09IDApOworCisJCQkJU3BpbkxvY2tSZWxlYXNlKCZzbG90LT5tdXRleCk7CisKKwkJCQkvKiBM b2cgd2FybmluZyBpZiBubyBhY3RpdmVfcGlkIGZvciB0aGlzIHBoeXNpY2FsIHNsb3QgKi8KKwkJ CQlpZiAoaW5hY3RpdmUpCisJCQkJCWVyZXBvcnQoV0FSTklORywKKwkJCQkJCQllcnJtc2coInJl cGxpY2F0aW9uIHNsb3QgXCIlc1wiIHNwZWNpZmllZCBpbiBwYXJhbWV0ZXIgXCIlc1wiIGRvZXMg bm90IGhhdmUgYWN0aXZlX3BpZCIsCisJCQkJCQkJCSAgIG5hbWUsICJzdGFuZGJ5X3Nsb3RfbmFt ZXMiKSwKKwkJCQkJCQllcnJkZXRhaWwoIkxvZ2ljYWwgcmVwbGljYXRpb24gaXMgd2FpdGluZyBv biB0aGUgIgorCQkJCQkJCQkJICAic3RhbmRieSBhc3NvY2lhdGVkIHdpdGggXCIlc1wiLiIsIG5h bWUpLAorCQkJCQkJCWVycmhpbnQoIkNvbnNpZGVyIHN0YXJ0aW5nIHN0YW5kYnkgYXNzb2NpYXRl ZCB3aXRoICIKKwkJCQkJCQkJCSJcIiVzXCIgb3IgYW1lbmQgc3RhbmRieV9zbG90X25hbWVzLiIs IG5hbWUpKTsKKworCQkJCS8qIENvbnRpbnVlIGlmIHRoZSBjdXJyZW50IHNsb3QgaGFzbid0IGNh dWdodCB1cC4gKi8KKwkJCQljb250aW51ZTsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlBc3Nl cnQoc2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbiA+PSB3YWl0X2Zvcl9sc24pOworCQkJfQorCisJCQlT cGluTG9ja1JlbGVhc2UoJnNsb3QtPm11dGV4KTsKKwkJfQorCisJCS8qCisJCSAqIFJlYWNoaW5n IGhlcmUgaW5kaWNhdGVzIHRoYXQgZWl0aGVyIHRoZSBzbG90IGhhcyBwYXNzZWQgdGhlCisJCSAq IHdhaXRfZm9yX2xzbiBvciB0aGVyZSBpcyBhbiBpc3N1ZSB3aXRoIHRoZSBzbG90IHRoYXQgcmVx dWlyZXMgYQorCQkgKiB3YXJuaW5nIHRvIGJlIHJlcG9ydGVkLgorCQkgKi8KKwkJaWYgKHdhcm5p bmdmbXQpCisJCQllcmVwb3J0KFdBUk5JTkcsIGVycm1zZyh3YXJuaW5nZm10LCBuYW1lLCAic3Rh bmRieV9zbG90X25hbWVzIikpOworCisJCXN0YW5kYnlfc2xvdHNfY3B5ID0gZm9yZWFjaF9kZWxl dGVfY3VycmVudChzdGFuZGJ5X3Nsb3RzX2NweSwgbGMpOworCX0KKworCSpzdGFuZGJ5X3Nsb3Rz ID0gc3RhbmRieV9zbG90c19jcHk7Cit9CisKKy8qCisgKiBXYWl0IGZvciBwaHlzaWNhbCBzdGFu ZGJ5IHRvIGNvbmZpcm0gcmVjZWl2aW5nIHRoZSBnaXZlbiBsc24uCisgKgorICogVXNlZCBieSBs b2dpY2FsIGRlY29kaW5nIFNRTCBmdW5jdGlvbnMgdGhhdCBhY3F1aXJlZCBzbG90IHdpdGggZmFp bG92ZXIKKyAqIGVuYWJsZWQuIEl0IHdhaXRzIGZvciBwaHlzaWNhbCBzdGFuZGJ5cyBjb3JyZXNw b25kaW5nIHRvIHRoZSBwaHlzaWNhbCBzbG90cworICogc3BlY2lmaWVkIGluIHRoZSBzdGFuZGJ5 X3Nsb3RfbmFtZXMgR1VDLgorICovCit2b2lkCitXYWl0Rm9yU3RhbmRieUNvbmZpcm1hdGlvbihY TG9nUmVjUHRyIHdhaXRfZm9yX2xzbikKK3sKKwlMaXN0CSAgICpzdGFuZGJ5X3Nsb3RzOworCisJ aWYgKCFNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5mYWlsb3ZlcikKKwkJcmV0dXJuOworCisJc3Rh bmRieV9zbG90cyA9IEdldFN0YW5kYnlTbG90TGlzdCh0cnVlKTsKKworCWlmIChzdGFuZGJ5X3Ns b3RzID09IE5JTCkKKwkJcmV0dXJuOworCisJQ29uZGl0aW9uVmFyaWFibGVQcmVwYXJlVG9TbGVl cCgmV2FsU25kQ3RsLT53YWxfY29uZmlybV9yY3ZfY3YpOworCisJZm9yICg7OykKKwl7CisJCUNI RUNLX0ZPUl9JTlRFUlJVUFRTKCk7CisKKwkJaWYgKENvbmZpZ1JlbG9hZFBlbmRpbmcpCisJCXsK KwkJCUNvbmZpZ1JlbG9hZFBlbmRpbmcgPSBmYWxzZTsKKwkJCVJlcmVhZENvbmZpZ0FuZFJlSW5p dFNsb3RMaXN0KCZzdGFuZGJ5X3Nsb3RzKTsKKwkJfQorCisJCUZpbHRlclN0YW5kYnlTbG90cyh3 YWl0X2Zvcl9sc24sICZzdGFuZGJ5X3Nsb3RzKTsKKworCQkvKiBFeGl0IGlmIGRvbmUgd2FpdGlu ZyBmb3IgZXZlcnkgc2xvdC4gKi8KKwkJaWYgKHN0YW5kYnlfc2xvdHMgPT0gTklMKQorCQkJYnJl YWs7CisKKwkJLyoKKwkJICogV2Ugd2FpdCBmb3IgdGhlIHNsb3RzIGluIHRoZSBzdGFuZGJ5X3Ns b3RfbmFtZXMgdG8gY2F0Y2ggdXAsIGJ1dCB3ZQorCQkgKiB1c2UgYSB0aW1lb3V0IHNvIHdlIGNh biBhbHNvIGNoZWNrIHRoZSBpZiB0aGUgc3RhbmRieV9zbG90X25hbWVzIGhhcworCQkgKiBiZWVu IGNoYW5nZWQuCisJCSAqLworCQlDb25kaXRpb25WYXJpYWJsZVRpbWVkU2xlZXAoJldhbFNuZEN0 bC0+d2FsX2NvbmZpcm1fcmN2X2N2LCAxMDAwLAorCQkJCQkJCQkJV0FJVF9FVkVOVF9XQUlUX0ZP Ul9TVEFOREJZX0NPTkZJUk1BVElPTik7CisJfQorCisJQ29uZGl0aW9uVmFyaWFibGVDYW5jZWxT bGVlcCgpOworCWxpc3RfZnJlZShzdGFuZGJ5X3Nsb3RzKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v c2xvdGZ1bmNzLmMKaW5kZXggODQzYWU4Y2Q2OC4uMGEwOWI2YzUwOCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vc2xvdGZ1bmNzLmMKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJyZXBsaWNhdGlv bi9kZWNvZGUuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dpY2FsLmgiCiAjaW5jbHVkZSAi cmVwbGljYXRpb24vc2xvdC5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dhbHNlbmRlci5oIgog I2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvaW52YWwuaCIKICNp bmNsdWRlICJ1dGlscy9wZ19sc24uaCIKQEAgLTQ3NCw2ICs0NzUsOCBAQCBwZ19waHlzaWNhbF9y ZXBsaWNhdGlvbl9zbG90X2FkdmFuY2UoWExvZ1JlY1B0ciBtb3ZldG8pCiAJCSAqIGNyYXNoLCBi dXQgdGhpcyBtYWtlcyB0aGUgZGF0YSBjb25zaXN0ZW50IGFmdGVyIGEgY2xlYW4gc2h1dGRvd24u CiAJCSAqLwogCQlSZXBsaWNhdGlvblNsb3RNYXJrRGlydHkoKTsKKworCQlQaHlzaWNhbFdha2V1 cExvZ2ljYWxXYWxTbmQoKTsKIAl9CiAKIAlyZXR1cm4gcmV0bHNuOwpAQCAtNTE0LDYgKzUxNywx MiBAQCBwZ19sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3RfYWR2YW5jZShYTG9nUmVjUHRyIG1vdmV0 bykKIAkJCQkJCQkJCQkJICAgLnNlZ21lbnRfY2xvc2UgPSB3YWxfc2VnbWVudF9jbG9zZSksCiAJ CQkJCQkJCQlOVUxMLCBOVUxMLCBOVUxMKTsKIAorCQkvKgorCQkgKiBXYWl0IGZvciBzcGVjaWZp ZWQgc3RyZWFtaW5nIHJlcGxpY2F0aW9uIHN0YW5kYnkgc2VydmVycyAoaWYgYW55KQorCQkgKiB0 byBjb25maXJtIHJlY2VpcHQgb2YgV0FMIHVwIHRvIG1vdmV0byBsc24uCisJCSAqLworCQlXYWl0 Rm9yU3RhbmRieUNvbmZpcm1hdGlvbihtb3ZldG8pOworCiAJCS8qCiAJCSAqIFN0YXJ0IHJlYWRp bmcgYXQgdGhlIHNsb3QncyByZXN0YXJ0X2xzbiwgd2hpY2ggd2Uga25vdyB0byBwb2ludCB0bwog CQkgKiBhIHZhbGlkIHJlY29yZC4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3dhbHNlbmRlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKaW5kZXgg Zjc1M2FlZDM0NS4uNzE5MzNmNGJmMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vd2Fsc2VuZGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMK QEAgLTEyMTksNyArMTIxOSw2IEBAIENyZWF0ZVJlcGxpY2F0aW9uU2xvdChDcmVhdGVSZXBsaWNh dGlvblNsb3RDbWQgKmNtZCkKIAogCXBhcnNlQ3JlYXRlUmVwbFNsb3RPcHRpb25zKGNtZCwgJnJl c2VydmVfd2FsLCAmc25hcHNob3RfYWN0aW9uLCAmdHdvX3BoYXNlLAogCQkJCQkJCSAgICZmYWls b3Zlcik7Ci0KIAlpZiAoY21kLT5raW5kID09IFJFUExJQ0FUSU9OX0tJTkRfUEhZU0lDQUwpCiAJ ewogCQlSZXBsaWNhdGlvblNsb3RDcmVhdGUoY21kLT5zbG90bmFtZSwgZmFsc2UsCkBAIC0xNzI4 LDI3ICsxNzI3LDc4IEBAIFdhbFNuZFVwZGF0ZVByb2dyZXNzKExvZ2ljYWxEZWNvZGluZ0NvbnRl eHQgKmN0eCwgWExvZ1JlY1B0ciBsc24sIFRyYW5zYWN0aW9uSWQKIAkJUHJvY2Vzc1BlbmRpbmdX cml0ZXMoKTsKIH0KIAorLyoKKyAqIFdha2UgdXAgdGhlIGxvZ2ljYWwgd2Fsc2VuZGVyIHByb2Nl c3NlcyB3aXRoIGZhaWxvdmVyLWVuYWJsZWQgc2xvdHMgaWYgdGhlCisgKiBjdXJyZW50bHkgYWNx dWlyZWQgcGh5c2ljYWwgc2xvdCBpcyBzcGVjaWZpZWQgaW4gc3RhbmRieV9zbG90X25hbWVzCisg KiBHVUMuCisgKi8KK3ZvaWQKK1BoeXNpY2FsV2FrZXVwTG9naWNhbFdhbFNuZCh2b2lkKQorewor CUxpc3RDZWxsICAgKmxjOworCUxpc3QJICAgKnN0YW5kYnlfc2xvdHM7CisKKwlBc3NlcnQoTXlS ZXBsaWNhdGlvblNsb3QgJiYgU2xvdElzUGh5c2ljYWwoTXlSZXBsaWNhdGlvblNsb3QpKTsKKwor CXN0YW5kYnlfc2xvdHMgPSBHZXRTdGFuZGJ5U2xvdExpc3QoZmFsc2UpOworCisJZm9yZWFjaChs Yywgc3RhbmRieV9zbG90cykKKwl7CisJCWNoYXIJICAgKm5hbWUgPSBsZmlyc3QobGMpOworCisJ CWlmIChzdHJjbXAobmFtZSwgTmFtZVN0cihNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5uYW1lKSkg PT0gMCkKKwkJeworCQkJQ29uZGl0aW9uVmFyaWFibGVCcm9hZGNhc3QoJldhbFNuZEN0bC0+d2Fs X2NvbmZpcm1fcmN2X2N2KTsKKwkJCXJldHVybjsKKwkJfQorCX0KK30KKwogLyoKICAqIFdhaXQg dGlsbCBXQUwgPCBsb2MgaXMgZmx1c2hlZCB0byBkaXNrIHNvIGl0IGNhbiBiZSBzYWZlbHkgc2Vu dCB0byBjbGllbnQuCiAgKgotICogUmV0dXJucyBlbmQgTFNOIG9mIGZsdXNoZWQgV0FMLiAgTm9y bWFsbHkgdGhpcyB3aWxsIGJlID49IGxvYywgYnV0Ci0gKiBpZiB3ZSBkZXRlY3QgYSBzaHV0ZG93 biByZXF1ZXN0IChlaXRoZXIgZnJvbSBwb3N0bWFzdGVyIG9yIGNsaWVudCkKLSAqIHdlIHdpbGwg cmV0dXJuIGVhcmx5LCBzbyBjYWxsZXIgbXVzdCBhbHdheXMgY2hlY2suCisgKiBJZiB0aGUgd2Fs c2VuZGVyIGhvbGRzIGEgbG9naWNhbCBzbG90IHRoYXQgaGFzIGVuYWJsZWQgZmFpbG92ZXIsIHdl IGFsc28KKyAqIHdhaXQgZm9yIGFsbCB0aGUgc3BlY2lmaWVkIHN0cmVhbWluZyByZXBsaWNhdGlv biBzdGFuZGJ5IHNlcnZlcnMgdG8KKyAqIGNvbmZpcm0gcmVjZWlwdCBvZiBXQUwgdXAgdG8gUmVj ZW50Rmx1c2hQdHIuCisgKgorICogUmV0dXJucyBlbmQgTFNOIG9mIGZsdXNoZWQgV0FMLiAgTm9y bWFsbHkgdGhpcyB3aWxsIGJlID49IGxvYywgYnV0IGlmIHdlCisgKiBkZXRlY3QgYSBzaHV0ZG93 biByZXF1ZXN0IChlaXRoZXIgZnJvbSBwb3N0bWFzdGVyIG9yIGNsaWVudCkgd2Ugd2lsbCByZXR1 cm4KKyAqIGVhcmx5LCBzbyBjYWxsZXIgbXVzdCBhbHdheXMgY2hlY2suCiAgKi8KIHN0YXRpYyBY TG9nUmVjUHRyCiBXYWxTbmRXYWl0Rm9yV2FsKFhMb2dSZWNQdHIgbG9jKQogewogCWludAkJCXdh a2VFdmVudHM7CisJYm9vbAkJd2FpdF9mb3Jfc3RhbmRieSA9IGZhbHNlOworCXVpbnQzMgkJd2Fp dF9ldmVudDsKKwlMaXN0CSAgICpzdGFuZGJ5X3Nsb3RzID0gTklMOwogCXN0YXRpYyBYTG9nUmVj UHRyIFJlY2VudEZsdXNoUHRyID0gSW52YWxpZFhMb2dSZWNQdHI7CiAKKwlpZiAoTXlSZXBsaWNh dGlvblNsb3QtPmRhdGEuZmFpbG92ZXIgJiYgcmVwbGljYXRpb25fYWN0aXZlKQorCQlzdGFuZGJ5 X3Nsb3RzID0gR2V0U3RhbmRieVNsb3RMaXN0KHRydWUpOworCiAJLyoKLQkgKiBGYXN0IHBhdGgg dG8gYXZvaWQgYWNxdWlyaW5nIHRoZSBzcGlubG9jayBpbiBjYXNlIHdlIGFscmVhZHkga25vdyB3 ZQotCSAqIGhhdmUgZW5vdWdoIFdBTCBhdmFpbGFibGUuIFRoaXMgaXMgcGFydGljdWxhcmx5IGlu dGVyZXN0aW5nIGlmIHdlJ3JlCi0JICogZmFyIGJlaGluZC4KKwkgKiBDaGVjayBpZiBhbGwgdGhl IHN0YW5kYnkgc2VydmVycyBoYXZlIGNvbmZpcm1lZCByZWNlaXB0IG9mIFdBTCB1cCB0bworCSAq IFJlY2VudEZsdXNoUHRyIGV2ZW4gd2hlbiB3ZSBhbHJlYWR5IGtub3cgd2UgaGF2ZSBlbm91Z2gg V0FMIGF2YWlsYWJsZS4KKwkgKgorCSAqIE5vdGUgdGhhdCB3ZSBjYW5ub3QgZGlyZWN0bHkgcmV0 dXJuIHdpdGhvdXQgY2hlY2tpbmcgdGhlIHN0YXR1cyBvZgorCSAqIHN0YW5kYnkgc2VydmVycyBi ZWNhdXNlIHRoZSBzdGFuZGJ5X3Nsb3RfbmFtZXMgbWF5IGhhdmUgY2hhbmdlZCwgd2hpY2gKKwkg KiBtZWFucyB0aGVyZSBjb3VsZCBiZSBuZXcgc3RhbmRieSBzbG90cyBpbiB0aGUgbGlzdCB0aGF0 IGhhdmUgbm90IHlldAorCSAqIGNhdWdodCB1cCB0byB0aGUgUmVjZW50Rmx1c2hQdHIuCiAJICov Ci0JaWYgKFJlY2VudEZsdXNoUHRyICE9IEludmFsaWRYTG9nUmVjUHRyICYmCi0JCWxvYyA8PSBS ZWNlbnRGbHVzaFB0cikKLQkJcmV0dXJuIFJlY2VudEZsdXNoUHRyOworCWlmICghWExvZ1JlY1B0 cklzSW52YWxpZChSZWNlbnRGbHVzaFB0cikgJiYgbG9jIDw9IFJlY2VudEZsdXNoUHRyKQorCXsK KwkJRmlsdGVyU3RhbmRieVNsb3RzKFJlY2VudEZsdXNoUHRyLCAmc3RhbmRieV9zbG90cyk7CisK KwkJLyoKKwkJICogRmFzdCBwYXRoIHRvIGF2b2lkIGFjcXVpcmluZyB0aGUgc3BpbmxvY2sgaW4g Y2FzZSB3ZSBhbHJlYWR5IGtub3cKKwkJICogd2UgaGF2ZSBlbm91Z2ggV0FMIGF2YWlsYWJsZSBh bmQgYWxsIHRoZSBzdGFuZGJ5IHNlcnZlcnMgaGF2ZQorCQkgKiBjb25maXJtZWQgcmVjZWlwdCBv ZiBXQUwgdXAgdG8gUmVjZW50Rmx1c2hQdHIuIFRoaXMgaXMgcGFydGljdWxhcmx5CisJCSAqIGlu dGVyZXN0aW5nIGlmIHdlJ3JlIGZhciBiZWhpbmQuCisJCSAqLworCQlpZiAoc3RhbmRieV9zbG90 cyA9PSBOSUwpCisJCQlyZXR1cm4gUmVjZW50Rmx1c2hQdHI7CisJfQogCiAJLyogR2V0IGEgbW9y ZSByZWNlbnQgZmx1c2ggcG9pbnRlci4gKi8KIAlpZiAoIVJlY292ZXJ5SW5Qcm9ncmVzcygpKQpA QCAtMTc2OSw3ICsxODE5LDcgQEAgV2FsU25kV2FpdEZvcldhbChYTG9nUmVjUHRyIGxvYykKIAkJ aWYgKENvbmZpZ1JlbG9hZFBlbmRpbmcpCiAJCXsKIAkJCUNvbmZpZ1JlbG9hZFBlbmRpbmcgPSBm YWxzZTsKLQkJCVByb2Nlc3NDb25maWdGaWxlKFBHQ19TSUdIVVApOworCQkJUmVyZWFkQ29uZmln QW5kUmVJbml0U2xvdExpc3QoJnN0YW5kYnlfc2xvdHMpOwogCQkJU3luY1JlcEluaXRDb25maWco KTsKIAkJfQogCkBAIC0xNzg0LDggKzE4MzQsMTggQEAgV2FsU25kV2FpdEZvcldhbChYTG9nUmVj UHRyIGxvYykKIAkJaWYgKGdvdF9TVE9QUElORykKIAkJCVhMb2dCYWNrZ3JvdW5kRmx1c2goKTsK IAorCQkvKgorCQkgKiBVcGRhdGUgdGhlIHN0YW5kYnkgc2xvdHMgdGhhdCBoYXZlIG5vdCB5ZXQg Y2F1Z2h0IHVwIHRvIHRoZSBmbHVzaGVkCisJCSAqIHBvc2l0aW9uLiBJdCBpcyBnb29kIHRvIHdh aXQgdXAgdG8gUmVjZW50Rmx1c2hQdHIgYW5kIHRoZW4gbGV0IGl0CisJCSAqIHNlbmQgdGhlIGNo YW5nZXMgdG8gbG9naWNhbCBzdWJzY3JpYmVycyBvbmUgYnkgb25lIHdoaWNoIGFyZQorCQkgKiBh bHJlYWR5IGNvdmVyZWQgaW4gUmVjZW50Rmx1c2hQdHIgd2l0aG91dCBuZWVkaW5nIHRvIHdhaXQg b24gZXZlcnkKKwkJICogY2hhbmdlIGZvciBzdGFuZGJ5IGNvbmZpcm1hdGlvbi4KKwkJICovCisJ CWlmICh3YWl0X2Zvcl9zdGFuZGJ5KQorCQkJRmlsdGVyU3RhbmRieVNsb3RzKFJlY2VudEZsdXNo UHRyLCAmc3RhbmRieV9zbG90cyk7CisKIAkJLyogVXBkYXRlIG91ciBpZGVhIG9mIHRoZSBjdXJy ZW50bHkgZmx1c2hlZCBwb3NpdGlvbi4gKi8KLQkJaWYgKCFSZWNvdmVyeUluUHJvZ3Jlc3MoKSkK KwkJZWxzZSBpZiAoIVJlY292ZXJ5SW5Qcm9ncmVzcygpKQogCQkJUmVjZW50Rmx1c2hQdHIgPSBH ZXRGbHVzaFJlY1B0cihOVUxMKTsKIAkJZWxzZQogCQkJUmVjZW50Rmx1c2hQdHIgPSBHZXRYTG9n UmVwbGF5UmVjUHRyKE5VTEwpOwpAQCAtMTgxMyw5ICsxODczLDE4IEBAIFdhbFNuZFdhaXRGb3JX YWwoWExvZ1JlY1B0ciBsb2MpCiAJCQkhd2FpdGluZ19mb3JfcGluZ19yZXNwb25zZSkKIAkJCVdh bFNuZEtlZXBhbGl2ZShmYWxzZSwgSW52YWxpZFhMb2dSZWNQdHIpOwogCi0JCS8qIGNoZWNrIHdo ZXRoZXIgd2UncmUgZG9uZSAqLwotCQlpZiAobG9jIDw9IFJlY2VudEZsdXNoUHRyKQorCQlpZiAo bG9jID4gUmVjZW50Rmx1c2hQdHIpCisJCQl3YWl0X2V2ZW50ID0gV0FJVF9FVkVOVF9XQUxfU0VO REVSX1dBSVRfRk9SX1dBTDsKKwkJZWxzZSBpZiAoc3RhbmRieV9zbG90cykKKwkJeworCQkJd2Fp dF9ldmVudCA9IFdBSVRfRVZFTlRfV0FJVF9GT1JfU1RBTkRCWV9DT05GSVJNQVRJT047CisJCQl3 YWl0X2Zvcl9zdGFuZGJ5ID0gdHJ1ZTsKKwkJfQorCQllbHNlCisJCXsKKwkJCS8qIEFscmVhZHkg Y2F1Z2h0IHVwIGFuZCBkb2Vzbid0IG5lZWQgdG8gd2FpdCBmb3Igc3RhbmRieV9zbG90cy4gKi8K IAkJCWJyZWFrOworCQl9CiAKIAkJLyogV2FpdGluZyBmb3IgbmV3IFdBTC4gU2luY2Ugd2UgbmVl ZCB0byB3YWl0LCB3ZSdyZSBub3cgY2F1Z2h0IHVwLiAqLwogCQlXYWxTbmRDYXVnaHRVcCA9IHRy dWU7CkBAIC0xODU1LDkgKzE5MjQsMTEgQEAgV2FsU25kV2FpdEZvcldhbChYTG9nUmVjUHRyIGxv YykKIAkJaWYgKHBxX2lzX3NlbmRfcGVuZGluZygpKQogCQkJd2FrZUV2ZW50cyB8PSBXTF9TT0NL RVRfV1JJVEVBQkxFOwogCi0JCVdhbFNuZFdhaXQod2FrZUV2ZW50cywgc2xlZXB0aW1lLCBXQUlU X0VWRU5UX1dBTF9TRU5ERVJfV0FJVF9GT1JfV0FMKTsKKwkJV2FsU25kV2FpdCh3YWtlRXZlbnRz LCBzbGVlcHRpbWUsIHdhaXRfZXZlbnQpOwogCX0KIAorCWxpc3RfZnJlZShzdGFuZGJ5X3Nsb3Rz KTsKKwogCS8qIHJlYWN0aXZhdGUgbGF0Y2ggc28gV2FsU25kTG9vcCBrbm93cyB0byBjb250aW51 ZSAqLwogCVNldExhdGNoKE15TGF0Y2gpOwogCXJldHVybiBSZWNlbnRGbHVzaFB0cjsKQEAgLTIy NjUsNiArMjMzNiw3IEBAIFBoeXNpY2FsQ29uZmlybVJlY2VpdmVkTG9jYXRpb24oWExvZ1JlY1B0 ciBsc24pCiAJewogCQlSZXBsaWNhdGlvblNsb3RNYXJrRGlydHkoKTsKIAkJUmVwbGljYXRpb25T bG90c0NvbXB1dGVSZXF1aXJlZExTTigpOworCQlQaHlzaWNhbFdha2V1cExvZ2ljYWxXYWxTbmQo KTsKIAl9CiAKIAkvKgpAQCAtMzUzMiw2ICszNjA0LDcgQEAgV2FsU25kU2htZW1Jbml0KHZvaWQp CiAKIAkJQ29uZGl0aW9uVmFyaWFibGVJbml0KCZXYWxTbmRDdGwtPndhbF9mbHVzaF9jdik7CiAJ CUNvbmRpdGlvblZhcmlhYmxlSW5pdCgmV2FsU25kQ3RsLT53YWxfcmVwbGF5X2N2KTsKKwkJQ29u ZGl0aW9uVmFyaWFibGVJbml0KCZXYWxTbmRDdGwtPndhbF9jb25maXJtX3Jjdl9jdik7CiAJfQog fQogCkBAIC0zNjAxLDggKzM2NzQsMTQgQEAgV2FsU25kV2FpdCh1aW50MzIgc29ja2V0X2V2ZW50 cywgbG9uZyB0aW1lb3V0LCB1aW50MzIgd2FpdF9ldmVudCkKIAkgKgogCSAqIEFuZCwgd2UgdXNl IHNlcGFyYXRlIHNoYXJlZCBtZW1vcnkgQ1ZzIGZvciBwaHlzaWNhbCBhbmQgbG9naWNhbAogCSAq IHdhbHNlbmRlcnMgZm9yIHNlbGVjdGl2ZSB3YWtlIHVwcywgc2VlIFdhbFNuZFdha2V1cCgpIGZv ciBtb3JlIGRldGFpbHMuCisJICoKKwkgKiBJZiB0aGUgd2FpdCBldmVudCBpcyBXQUlUX0ZPUl9T VEFOREJZX0NPTkZJUk1BVElPTiwgd2FpdCBvbiBhbm90aGVyIENWCisJICogdW50aWwgYXdha2Vu ZWQgYnkgcGh5c2ljYWwgd2Fsc2VuZGVycyBhZnRlciB0aGUgd2FscmVjZWl2ZXIgY29uZmlybXMg dGhlCisJICogcmVjZWlwdCBvZiB0aGUgTFNOLgogCSAqLwotCWlmIChNeVdhbFNuZC0+a2luZCA9 PSBSRVBMSUNBVElPTl9LSU5EX1BIWVNJQ0FMKQorCWlmICh3YWl0X2V2ZW50ID09IFdBSVRfRVZF TlRfV0FJVF9GT1JfU1RBTkRCWV9DT05GSVJNQVRJT04pCisJCUNvbmRpdGlvblZhcmlhYmxlUHJl cGFyZVRvU2xlZXAoJldhbFNuZEN0bC0+d2FsX2NvbmZpcm1fcmN2X2N2KTsKKwllbHNlIGlmIChN eVdhbFNuZC0+a2luZCA9PSBSRVBMSUNBVElPTl9LSU5EX1BIWVNJQ0FMKQogCQlDb25kaXRpb25W YXJpYWJsZVByZXBhcmVUb1NsZWVwKCZXYWxTbmRDdGwtPndhbF9mbHVzaF9jdik7CiAJZWxzZSBp ZiAoTXlXYWxTbmQtPmtpbmQgPT0gUkVQTElDQVRJT05fS0lORF9MT0dJQ0FMKQogCQlDb25kaXRp b25WYXJpYWJsZVByZXBhcmVUb1NsZWVwKCZXYWxTbmRDdGwtPndhbF9yZXBsYXlfY3YpOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQg Yi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50X25hbWVzLnR4dAppbmRleCA0 YzBlZTJkZDI5Li45OTczZWY0MWI5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hY3Rp dml0eS93YWl0X2V2ZW50X25hbWVzLnR4dAorKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0 eS93YWl0X2V2ZW50X25hbWVzLnR4dApAQCAtNzgsNiArNzgsNyBAQCBHU1NfT1BFTl9TRVJWRVIJ IldhaXRpbmcgdG8gcmVhZCBkYXRhIGZyb20gdGhlIGNsaWVudCB3aGlsZSBlc3RhYmxpc2hpbmcg YSBHU1NBUAogTElCUFFXQUxSRUNFSVZFUl9DT05ORUNUCSJXYWl0aW5nIGluIFdBTCByZWNlaXZl ciB0byBlc3RhYmxpc2ggY29ubmVjdGlvbiB0byByZW1vdGUgc2VydmVyLiIKIExJQlBRV0FMUkVD RUlWRVJfUkVDRUlWRQkiV2FpdGluZyBpbiBXQUwgcmVjZWl2ZXIgdG8gcmVjZWl2ZSBkYXRhIGZy b20gcmVtb3RlIHNlcnZlci4iCiBTU0xfT1BFTl9TRVJWRVIJIldhaXRpbmcgZm9yIFNTTCB3aGls ZSBhdHRlbXB0aW5nIGNvbm5lY3Rpb24uIgorV0FJVF9GT1JfU1RBTkRCWV9DT05GSVJNQVRJT04J IldhaXRpbmcgZm9yIHRoZSBXQUwgdG8gYmUgcmVjZWl2ZWQgYnkgcGh5c2ljYWwgc3RhbmRieS4i CiBXQUxfU0VOREVSX1dBSVRfRk9SX1dBTAkiV2FpdGluZyBmb3IgV0FMIHRvIGJlIGZsdXNoZWQg aW4gV0FMIHNlbmRlciBwcm9jZXNzLiIKIFdBTF9TRU5ERVJfV1JJVEVfREFUQQkiV2FpdGluZyBm b3IgYW55IGFjdGl2aXR5IHdoZW4gcHJvY2Vzc2luZyByZXBsaWVzIGZyb20gV0FMIHJlY2VpdmVy IGluIFdBTCBzZW5kZXIgcHJvY2Vzcy4iCiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L21pc2MvZ3VjX3RhYmxlcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMK aW5kZXggM2FmMTFiMmI4MC4uYTgyNjE4YzNkNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9ndWNfdGFibGVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFi bGVzLmMKQEAgLTQ2MjgsNiArNDYyOCwyMCBAQCBzdHJ1Y3QgY29uZmlnX3N0cmluZyBDb25maWd1 cmVOYW1lc1N0cmluZ1tdID0KIAkJY2hlY2tfZGVidWdfaW9fZGlyZWN0LCBhc3NpZ25fZGVidWdf aW9fZGlyZWN0LCBOVUxMCiAJfSwKIAorCXsKKwkJeyJzdGFuZGJ5X3Nsb3RfbmFtZXMiLCBQR0Nf U0lHSFVQLCBSRVBMSUNBVElPTl9QUklNQVJZLAorCQkJZ2V0dGV4dF9ub29wKCJMaXN0cyBzdHJl YW1pbmcgcmVwbGljYXRpb24gc3RhbmRieSBzZXJ2ZXIgc2xvdCAiCisJCQkJCQkgIm5hbWVzIHRo YXQgbG9naWNhbCBXQUwgc2VuZGVyIHByb2Nlc3NlcyB3aWxsIHdhaXQgZm9yLiIpLAorCQkJZ2V0 dGV4dF9ub29wKCJEZWNvZGVkIGNoYW5nZXMgYXJlIHNlbnQgb3V0IHRvIHBsdWdpbnMgYnkgbG9n aWNhbCAiCisJCQkJCQkgIldBTCBzZW5kZXIgcHJvY2Vzc2VzIG9ubHkgYWZ0ZXIgc3BlY2lmaWVk ICIKKwkJCQkJCSAicmVwbGljYXRpb24gc2xvdHMgY29uZmlybSByZWNlaXZpbmcgV0FMLiIpLAor CQkJR1VDX0xJU1RfSU5QVVQgfCBHVUNfTElTVF9RVU9URQorCQl9LAorCQkmc3RhbmRieV9zbG90 X25hbWVzLAorCQkiIiwKKwkJY2hlY2tfc3RhbmRieV9zbG90X25hbWVzLCBhc3NpZ25fc3RhbmRi eV9zbG90X25hbWVzLCBOVUxMCisJfSwKKwogCS8qIEVuZC1vZi1saXN0IG1hcmtlciAqLwogCXsK IAkJe05VTEwsIDAsIDAsIE5VTEwsIE5VTEx9LCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxM CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1w bGUgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKaW5kZXgg Mzg2ODY5NGQzZi4uZGI0YWZhZjM1NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlz Yy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9z dGdyZXNxbC5jb25mLnNhbXBsZQpAQCAtMzM0LDYgKzMzNCw4IEBACiAJCQkJIyBtZXRob2QgdG8g Y2hvb3NlIHN5bmMgc3RhbmRieXMsIG51bWJlciBvZiBzeW5jIHN0YW5kYnlzLAogCQkJCSMgYW5k IGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGFwcGxpY2F0aW9uX25hbWUKIAkJCQkjIGZyb20gc3Rh bmRieShzKTsgJyonID0gYWxsCisjc3RhbmRieV9zbG90X25hbWVzID0gJycgIyBzdHJlYW1pbmcg cmVwbGljYXRpb24gc3RhbmRieSBzZXJ2ZXIgc2xvdCBuYW1lcyB0aGF0CisJCQkJIyBsb2dpY2Fs IHdhbHNlbmRlciBwcm9jZXNzZXMgd2lsbCB3YWl0IGZvcgogCiAjIC0gU3RhbmRieSBTZXJ2ZXJz IC0KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oIGIvc3JjL2lu Y2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oCmluZGV4IDFmNDQ0NmFhM2EuLjEwNTQ5MTBjYWMgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaAorKysgYi9zcmMvaW5jbHVk ZS9yZXBsaWNhdGlvbi9zbG90LmgKQEAgLTIyOSw2ICsyMjksNyBAQCBleHRlcm4gUEdETExJTVBP UlQgUmVwbGljYXRpb25TbG90ICpNeVJlcGxpY2F0aW9uU2xvdDsKIAogLyogR1VDcyAqLwogZXh0 ZXJuIFBHRExMSU1QT1JUIGludCBtYXhfcmVwbGljYXRpb25fc2xvdHM7CitleHRlcm4gUEdETExJ TVBPUlQgY2hhciAqc3RhbmRieV9zbG90X25hbWVzOwogCiAvKiBzaG1lbSBpbml0aWFsaXphdGlv biBmdW5jdGlvbnMgKi8KIGV4dGVybiBTaXplIFJlcGxpY2F0aW9uU2xvdHNTaG1lbVNpemUodm9p ZCk7CkBAIC0yNzUsNCArMjc2LDEwIEBAIGV4dGVybiB2b2lkIENoZWNrUG9pbnRSZXBsaWNhdGlv blNsb3RzKGJvb2wgaXNfc2h1dGRvd24pOwogZXh0ZXJuIHZvaWQgQ2hlY2tTbG90UmVxdWlyZW1l bnRzKHZvaWQpOwogZXh0ZXJuIHZvaWQgQ2hlY2tTbG90UGVybWlzc2lvbnModm9pZCk7CiAKK2V4 dGVybiBMaXN0ICpHZXRTdGFuZGJ5U2xvdExpc3QoYm9vbCBjb3B5KTsKK2V4dGVybiB2b2lkIFdh aXRGb3JTdGFuZGJ5Q29uZmlybWF0aW9uKFhMb2dSZWNQdHIgd2FpdF9mb3JfbHNuKTsKK2V4dGVy biB2b2lkIEZpbHRlclN0YW5kYnlTbG90cyhYTG9nUmVjUHRyIHdhaXRfZm9yX2xzbiwKKwkJCQkJ CQkJCSBMaXN0ICoqc3RhbmRieV9zbG90cyk7CitleHRlcm4gdm9pZCBSZXJlYWRDb25maWdBbmRS ZUluaXRTbG90TGlzdChMaXN0ICoqc3RhbmRieV9zbG90cyk7CisKICNlbmRpZgkJCQkJCQkvKiBT TE9UX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5o IGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmgKaW5kZXggMjc2ZDg5MTNhYS4u ZjlhNTU5ZjgzMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVy LmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmgKQEAgLTQ3LDYgKzQ3 LDcgQEAgZXh0ZXJuIHZvaWQgV2FsU25kSW5pdFN0b3BwaW5nKHZvaWQpOwogZXh0ZXJuIHZvaWQg V2FsU25kV2FpdFN0b3BwaW5nKHZvaWQpOwogZXh0ZXJuIHZvaWQgSGFuZGxlV2FsU25kSW5pdFN0 b3BwaW5nKHZvaWQpOwogZXh0ZXJuIHZvaWQgV2FsU25kUnFzdEZpbGVSZWxvYWQodm9pZCk7Citl eHRlcm4gdm9pZCBQaHlzaWNhbFdha2V1cExvZ2ljYWxXYWxTbmQodm9pZCk7CiBleHRlcm4gWExv Z1JlY1B0ciBHZXRTdGFuZGJ5Rmx1c2hSZWNQdHIoVGltZUxpbmVJRCAqdGxpKTsKIAogLyoKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRlcl9wcml2YXRlLmggYi9z cmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxzZW5kZXJfcHJpdmF0ZS5oCmluZGV4IDMxMTNlOWVh NDcuLjBmOTYyYjBjNzIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNl bmRlcl9wcml2YXRlLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyX3By aXZhdGUuaApAQCAtMTEzLDYgKzExMywxMyBAQCB0eXBlZGVmIHN0cnVjdAogCUNvbmRpdGlvblZh cmlhYmxlIHdhbF9mbHVzaF9jdjsKIAlDb25kaXRpb25WYXJpYWJsZSB3YWxfcmVwbGF5X2N2Owog CisJLyoKKwkgKiBVc2VkIGJ5IHBoeXNpY2FsIHdhbHNlbmRlcnMgaG9sZGluZyBzbG90cyBzcGVj aWZpZWQgaW4KKwkgKiBzdGFuZGJ5X3Nsb3RfbmFtZXMgdG8gd2FrZSB1cCBsb2dpY2FsIHdhbHNl bmRlcnMgaG9sZGluZworCSAqIGZhaWxvdmVyLWVuYWJsZWQgc2xvdHMgd2hlbiBhIHdhbHJlY2Vp dmVyIGNvbmZpcm1zIHRoZSByZWNlaXB0IG9mIExTTi4KKwkgKi8KKwlDb25kaXRpb25WYXJpYWJs ZSB3YWxfY29uZmlybV9yY3ZfY3Y7CisKIAlXYWxTbmQJCXdhbHNuZHNbRkxFWElCTEVfQVJSQVlf TUVNQkVSXTsKIH0gV2FsU25kQ3RsRGF0YTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRp bHMvZ3VjX2hvb2tzLmggYi9zcmMvaW5jbHVkZS91dGlscy9ndWNfaG9va3MuaAppbmRleCA1MzAw YzQ0ZjNiLi40NjQ5OTZiNGYwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9ndWNfaG9v a3MuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9ndWNfaG9va3MuaApAQCAtMTYyLDUgKzE2Miw4 IEBAIGV4dGVybiBib29sIGNoZWNrX3dhbF9jb25zaXN0ZW5jeV9jaGVja2luZyhjaGFyICoqbmV3 dmFsLCB2b2lkICoqZXh0cmEsCiBleHRlcm4gdm9pZCBhc3NpZ25fd2FsX2NvbnNpc3RlbmN5X2No ZWNraW5nKGNvbnN0IGNoYXIgKm5ld3ZhbCwgdm9pZCAqZXh0cmEpOwogZXh0ZXJuIGJvb2wgY2hl Y2tfd2FsX3NlZ21lbnRfc2l6ZShpbnQgKm5ld3ZhbCwgdm9pZCAqKmV4dHJhLCBHdWNTb3VyY2Ug c291cmNlKTsKIGV4dGVybiB2b2lkIGFzc2lnbl93YWxfc3luY19tZXRob2QoaW50IG5ld193YWxf c3luY19tZXRob2QsIHZvaWQgKmV4dHJhKTsKK2V4dGVybiBib29sIGNoZWNrX3N0YW5kYnlfc2xv dF9uYW1lcyhjaGFyICoqbmV3dmFsLCB2b2lkICoqZXh0cmEsCisJCQkJCQkJCQkgR3VjU291cmNl IHNvdXJjZSk7CitleHRlcm4gdm9pZCBhc3NpZ25fc3RhbmRieV9zbG90X25hbWVzKGNvbnN0IGNo YXIgKm5ld3ZhbCwgdm9pZCAqZXh0cmEpOwogCiAjZW5kaWYJCQkJCQkJLyogR1VDX0hPT0tTX0gg Ki8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L21lc29uLmJ1aWxkIGIvc3JjL3Rlc3Qv cmVjb3ZlcnkvbWVzb24uYnVpbGQKaW5kZXggODhmYjAzMDZmNS4uNDE1MmMwNzMxOCAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVjb3ZlcnkvbWVzb24uYnVpbGQKKysrIGIvc3JjL3Rlc3QvcmVjb3Zl cnkvbWVzb24uYnVpbGQKQEAgLTQ1LDYgKzQ1LDcgQEAgdGVzdHMgKz0gewogICAgICAgJ3QvMDM3 X2ludmFsaWRfZGF0YWJhc2UucGwnLAogICAgICAgJ3QvMDM4X3NhdmVfbG9naWNhbF9zbG90c19z aHV0ZG93bi5wbCcsCiAgICAgICAndC8wMzlfZW5kX29mX3dhbC5wbCcsCisgICAgICAndC8wNTBf c3RhbmRieV9mYWlsb3Zlcl9zbG90c19zeW5jLnBsJywKICAgICBdLAogICB9LAogfQpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMDZfbG9naWNhbF9kZWNvZGluZy5wbCBiL3NyYy90 ZXN0L3JlY292ZXJ5L3QvMDA2X2xvZ2ljYWxfZGVjb2RpbmcucGwKaW5kZXggNWM3YjRjYTVlMy4u ODVmMDE5Nzc0YyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMDZfbG9naWNhbF9k ZWNvZGluZy5wbAorKysgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAwNl9sb2dpY2FsX2RlY29kaW5n LnBsCkBAIC0xNzIsOSArMTcyLDEwIEBAIGlzKCRub2RlX3ByaW1hcnktPnNsb3QoJ290aGVyZGJf c2xvdCcpLT57J3Nsb3RfbmFtZSd9LAogCXVuZGVmLCAnbG9naWNhbCBzbG90IHdhcyBhY3R1YWxs eSBkcm9wcGVkIHdpdGggREInKTsKIAogIyBUZXN0IGxvZ2ljYWwgc2xvdCBhZHZhbmNpbmcgYW5k IGl0cyBkdXJhYmlsaXR5LgorIyBQYXNzIGZhaWxvdmVyPXRydWUgKGxhc3QtYXJnKSwgaXQgc2hv dWxkIG5vdCBoYXZlIGFueSBpbXBhY3Qgb24gYWR2YW5jaW5nLgogbXkgJGxvZ2ljYWxfc2xvdCA9 ICdsb2dpY2FsX3Nsb3QnOwogJG5vZGVfcHJpbWFyeS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCi0J IlNFTEVDVCBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KCckbG9naWNhbF9zbG90 JywgJ3Rlc3RfZGVjb2RpbmcnLCBmYWxzZSk7IgorCSJTRUxFQ1QgcGdfY3JlYXRlX2xvZ2ljYWxf cmVwbGljYXRpb25fc2xvdCgnJGxvZ2ljYWxfc2xvdCcsICd0ZXN0X2RlY29kaW5nJywgZmFsc2Us IGZhbHNlLCB0cnVlKTsiCiApOwogJG5vZGVfcHJpbWFyeS0+cHNxbCgKIAkncG9zdGdyZXMnLCAi CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Ns b3RzX3N5bmMucGwgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Ns b3RzX3N5bmMucGwKaW5kZXggMTA1NTU3M2NkZS4uMDZhNGFkYTk0MSAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVjb3ZlcnkvdC8wNTBfc3RhbmRieV9mYWlsb3Zlcl9zbG90c19zeW5jLnBsCisrKyBi L3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUwX3N0YW5kYnlfZmFpbG92ZXJfc2xvdHNfc3luYy5wbApA QCAtODcsMTcgKzg3LDMwIEBAIGlzKCAkcHVibGlzaGVyLT5zYWZlX3BzcWwoCiAkc3Vic2NyaWJl cjEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfbXlz dWIxIEVOQUJMRSIpOwogCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIwotIyBUZXN0IGxvZ2ljYWwgZmFpbG92ZXIgc2xvdHMgb24gdGhlIHN0YW5kYnkK LSMgQ29uZmlndXJlIHN0YW5kYnkxIHRvIHJlcGxpY2F0ZSBhbmQgc3luY2hyb25pemUgbG9naWNh bCBzbG90cyBjb25maWd1cmVkCi0jIGZvciBmYWlsb3ZlciBvbiB0aGUgcHJpbWFyeQorIyBUZXN0 IHByaW1hcnkgZGlzYWxsb3dpbmcgc3BlY2lmaWVkIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdHMg Z2V0dGluZyBhaGVhZCBvZgorIyBzcGVjaWZpZWQgcGh5c2ljYWwgcmVwbGljYXRpb24gc2xvdHMu IEl0IHVzZXMgdGhlIGZvbGxvd2luZyBzZXQgdXA6CiAjCi0jICAgICAgICAgICAgICBmYWlsb3Zl ciBzbG90IGxzdWIxX3Nsb3QtPnwgLS0tLT4gc3Vic2NyaWJlcjEgKGNvbm5lY3RlZCB2aWEgbG9n aWNhbCByZXBsaWNhdGlvbikKLSMgcHJpbWFyeSAtLS0+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgfAotIyAgICAgICAgICAgICAgcGh5c2ljYWwgc2xvdCBzYjFfc2xvdC0tLT58IC0tLS0+IHN0 YW5kYnkxIChjb25uZWN0ZWQgdmlhIHN0cmVhbWluZyByZXBsaWNhdGlvbikKLSMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgbHN1YjFfc2xv dChzeW5jZWRfc2xvdCkKKyMJCQkJfCAtLS0tPiBzdGFuZGJ5MSAocHJpbWFyeV9zbG90X25hbWUg PSBzYjFfc2xvdCkKKyMJCQkJfCAtLS0tPiBzdGFuZGJ5MiAocHJpbWFyeV9zbG90X25hbWUgPSBz YjJfc2xvdCkKKyMgcHJpbWFyeSAtLS0tLQl8CisjCQkJCXwgLS0tLT4gc3Vic2NyaWJlcjEgKGZh aWxvdmVyID0gdHJ1ZSkKKyMJCQkJfCAtLS0tPiBzdWJzY3JpYmVyMiAoZmFpbG92ZXIgPSBmYWxz ZSkKKyMKKyMgc3RhbmRieV9zbG90X25hbWVzID0gJ3NiMV9zbG90JworIworIyBTZXQgdXAgaXMg Y29uZmlndXJlZCBpbiBzdWNoIGEgd2F5IHRoYXQgdGhlIGxvZ2ljYWwgc2xvdCBvZiBzdWJzY3Jp YmVyMSBpcworIyBlbmFibGVkIGZhaWxvdmVyLCB0aHVzIGl0IHdpbGwgd2FpdCBmb3IgdGhlIHBo eXNpY2FsIHNsb3Qgb2YKKyMgc3RhbmRieTEoc2IxX3Nsb3QpIHRvIGNhdGNoIHVwIGJlZm9yZSBz ZW5kaW5nIGRlY29kZWQgY2hhbmdlcyB0byBzdWJzY3JpYmVyMS4KICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKKyMgQ3JlYXRlIHByaW1hcnkKIG15 ICRwcmltYXJ5ID0gJHB1Ymxpc2hlcjsKKworJHByaW1hcnktPnBzcWwoJ3Bvc3RncmVzJywKKwlx e1NFTEVDVCBwZ19jcmVhdGVfcGh5c2ljYWxfcmVwbGljYXRpb25fc2xvdCgnc2IxX3Nsb3QnKTt9 KTsKKyRwcmltYXJ5LT5wc3FsKCdwb3N0Z3JlcycsCisJcXtTRUxFQ1QgcGdfY3JlYXRlX3BoeXNp Y2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ3NiMl9zbG90Jyk7fSk7CisKIG15ICRiYWNrdXBfbmFtZSA9 ICdiYWNrdXAnOwogJHByaW1hcnktPmJhY2t1cCgkYmFja3VwX25hbWUpOwogCkBAIC0xMDcsMjEg KzEyMCwyMDEgQEAgJHN0YW5kYnkxLT5pbml0X2Zyb21fYmFja3VwKAogCSRwcmltYXJ5LCAkYmFj a3VwX25hbWUsCiAJaGFzX3N0cmVhbWluZyA9PiAxLAogCWhhc19yZXN0b3JpbmcgPT4gMSk7Cisk c3RhbmRieTEtPmFwcGVuZF9jb25mKAorCSdwb3N0Z3Jlc3FsLmNvbmYnLCBxcSgKK3ByaW1hcnlf c2xvdF9uYW1lID0gJ3NiMV9zbG90JworKSk7Ciskc3RhbmRieTEtPnN0YXJ0OworJHByaW1hcnkt PndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRzdGFuZGJ5MSk7CisKKyMgQ3JlYXRlIGFub3RoZXIg c3RhbmRieQorbXkgJHN0YW5kYnkyID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdz dGFuZGJ5MicpOworJHN0YW5kYnkyLT5pbml0X2Zyb21fYmFja3VwKAorCSRwcmltYXJ5LCAkYmFj a3VwX25hbWUsCisJaGFzX3N0cmVhbWluZyA9PiAxLAorCWhhc19yZXN0b3JpbmcgPT4gMSk7Cisk c3RhbmRieTItPmFwcGVuZF9jb25mKAorCSdwb3N0Z3Jlc3FsLmNvbmYnLCBxcSgKK3ByaW1hcnlf c2xvdF9uYW1lID0gJ3NiMl9zbG90JworKSk7Ciskc3RhbmRieTItPnN0YXJ0OworJHByaW1hcnkt PndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRzdGFuZGJ5Mik7CisKKyMgQ29uZmlndXJlIHByaW1h cnkgdG8gZGlzYWxsb3cgYW55IGxvZ2ljYWwgc2xvdHMgdGhhdCBlbmFibGVkIGZhaWxvdmVyIGZy b20KKyMgZ2V0dGluZyBhaGVhZCBvZiBzcGVjaWZpZWQgcGh5c2ljYWwgcmVwbGljYXRpb24gc2xv dCAoc2IxX3Nsb3QpLgorJHByaW1hcnktPmFwcGVuZF9jb25mKAorCSdwb3N0Z3Jlc3FsLmNvbmYn LCBxcSgKK3N0YW5kYnlfc2xvdF9uYW1lcyA9ICdzYjFfc2xvdCcKKykpOworJHByaW1hcnktPnJl bG9hZDsKKworJHByaW1hcnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFRBQkxFIHRh Yl9pbnQgKGEgaW50IFBSSU1BUlkgS0VZKTsiKTsKKworIyBDcmVhdGUgYSB0YWJsZSBhbmQgcmVm cmVzaCB0aGUgcHVibGljYXRpb24KKyRzdWJzY3JpYmVyMS0+c2FmZV9wc3FsKAorCSdwb3N0Z3Jl cycsIHFxWworCUNSRUFURSBUQUJMRSB0YWJfaW50IChhIGludCBQUklNQVJZIEtFWSk7CisJQUxU RVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfbXlzdWIxIFJFRlJFU0ggUFVCTElDQVRJT04gV0lUSCAo Y29weV9kYXRhID0gZmFsc2UpOworXSk7CisKKyMgQ3JlYXRlIGFub3RoZXIgc3Vic2NyaWJlciBu b2RlIHdpdGhvdXQgZW5hYmxpbmcgZmFpbG92ZXIsIHdhaXQgZm9yIHN5bmMgdG8KKyMgY29tcGxl dGUKK215ICRzdWJzY3JpYmVyMiA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vi c2NyaWJlcjInKTsKKyRzdWJzY3JpYmVyMi0+aW5pdDsKKyRzdWJzY3JpYmVyMi0+c3RhcnQ7Cisk c3Vic2NyaWJlcjItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcVsKKwlDUkVBVEUgVEFCTEUg dGFiX2ludCAoYSBpbnQgUFJJTUFSWSBLRVkpOworCUNSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVz c19teXN1YjIgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElPTiByZWdy ZXNzX215cHViIFdJVEggKHNsb3RfbmFtZSA9IGxzdWIyX3Nsb3QsIGNvcHlfZGF0YSA9IGZhbHNl KTsKK10pOwogCisjIFN0b3AgdGhlIHN0YW5kYnkgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZp ZWQgcGh5c2ljYWwgcmVwbGljYXRpb24gc2xvdCBzbworIyB0aGF0IHRoZSBsb2dpY2FsIHJlcGxp Y2F0aW9uIHNsb3Qgd29uJ3QgcmVjZWl2ZSBjaGFuZ2VzIHVudGlsIHRoZSBzdGFuZGJ5CisjIGNv bWVzIHVwLgorJHN0YW5kYnkxLT5zdG9wOworCisjIENyZWF0ZSBzb21lIGRhdGEgb24gdGhlIHBy aW1hcnkKK215ICRwcmltYXJ5X3Jvd19jb3VudCA9IDEwOworJHByaW1hcnktPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0YWJfaW50IFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMo MSwgJHByaW1hcnlfcm93X2NvdW50KTsiKTsKKworIyBXYWl0IGZvciB0aGUgc3RhbmRieSB0aGF0 J3MgdXAgYW5kIHJ1bm5pbmcgZ2V0cyB0aGUgZGF0YSBmcm9tIHByaW1hcnkKKyRwcmltYXJ5LT53 YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1cCgkc3RhbmRieTIpOworbXkgJHJlc3VsdCA9ICRzdGFuZGJ5 Mi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSA9ICRwcmltYXJ5X3Jv d19jb3VudCBGUk9NIHRhYl9pbnQ7Iik7CitpcygkcmVzdWx0LCAndCcsICJzdGFuZGJ5MiBnZXRz IGRhdGEgZnJvbSBwcmltYXJ5Iik7CisKKyMgV2FpdCBmb3IgdGhlIHN1YnNjcmlwdGlvbiB0aGF0 J3MgdXAgYW5kIHJ1bm5pbmcgYW5kIGlzIG5vdCBlbmFibGVkIGZvciBmYWlsb3Zlci4KKyMgSXQg Z2V0cyB0aGUgZGF0YSBmcm9tIHByaW1hcnkgd2l0aG91dCB3YWl0aW5nIGZvciBhbnkgc3RhbmRi eXMuCiskcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdyZWdyZXNzX215c3ViMicpOworJHJl c3VsdCA9ICRzdWJzY3JpYmVyMi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3Vu dCgqKSA9ICRwcmltYXJ5X3Jvd19jb3VudCBGUk9NIHRhYl9pbnQ7Iik7CitpcygkcmVzdWx0LCAn dCcsICJzdWJzY3JpYmVyMiBnZXRzIGRhdGEgZnJvbSBwcmltYXJ5Iik7CisKKyMgVGhlIHN1YnNj cmlwdGlvbiB0aGF0J3MgdXAgYW5kIHJ1bm5pbmcgYW5kIGlzIGVuYWJsZWQgZm9yIGZhaWxvdmVy CisjIGRvZXNuJ3QgZ2V0IHRoZSBkYXRhIGZyb20gcHJpbWFyeSBhbmQga2VlcHMgd2FpdGluZyBm b3IgdGhlCisjIHN0YW5kYnkgc3BlY2lmaWVkIGluIHN0YW5kYnlfc2xvdF9uYW1lcy4KKyRyZXN1 bHQgPQorICAkc3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50 KCopID0gMCBGUk9NIHRhYl9pbnQ7Iik7CitpcygkcmVzdWx0LCAndCcsCisJInN1YnNjcmliZXIx IGRvZXNuJ3QgZ2V0IGRhdGEgZnJvbSBwcmltYXJ5IHVudGlsIHN0YW5kYnkxIGFja25vd2xlZGdl cyBjaGFuZ2VzIgorKTsKKworIyBTdGFydCB0aGUgc3RhbmRieSBzcGVjaWZpZWQgaW4gc3RhbmRi eV9zbG90X25hbWVzIGFuZCB3YWl0IGZvciBpdCB0byBjYXRjaAorIyB1cCB3aXRoIHRoZSBwcmlt YXJ5LgorJHN0YW5kYnkxLT5zdGFydDsKKyRwcmltYXJ5LT53YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1 cCgkc3RhbmRieTEpOworJHJlc3VsdCA9ICRzdGFuZGJ5MS0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs CisJIlNFTEVDVCBjb3VudCgqKSA9ICRwcmltYXJ5X3Jvd19jb3VudCBGUk9NIHRhYl9pbnQ7Iik7 CitpcygkcmVzdWx0LCAndCcsICJzdGFuZGJ5MSBnZXRzIGRhdGEgZnJvbSBwcmltYXJ5Iik7CisK KyMgTm93IHRoYXQgdGhlIHN0YW5kYnkgc3BlY2lmaWVkIGluIHN0YW5kYnlfc2xvdF9uYW1lcyBp cyB1cCBhbmQgcnVubmluZywKKyMgcHJpbWFyeSBtdXN0IHNlbmQgdGhlIGRlY29kZWQgY2hhbmdl cyB0byBzdWJzY3JpcHRpb24gZW5hYmxlZCBmb3IgZmFpbG92ZXIKKyMgV2hpbGUgdGhlIHN0YW5k Ynkgd2FzIGRvd24sIHRoaXMgc3Vic2NyaWJlciBkaWRuJ3QgcmVjZWl2ZSBhbnkgZGF0YSBmcm9t CisjIHByaW1hcnkgaS5lLiB0aGUgcHJpbWFyeSBkaWRuJ3QgYWxsb3cgaXQgdG8gZ28gYWhlYWQg b2Ygc3RhbmRieS4KKyRwdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3JlZ3Jlc3NfbXlzdWIx Jyk7CiskcmVzdWx0ID0gJHN1YnNjcmliZXIxLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VM RUNUIGNvdW50KCopID0gJHByaW1hcnlfcm93X2NvdW50IEZST00gdGFiX2ludDsiKTsKK2lzKCRy ZXN1bHQsICd0JywKKwkic3Vic2NyaWJlcjEgZ2V0cyBkYXRhIGZyb20gcHJpbWFyeSBhZnRlciBz dGFuZGJ5MSBhY2tub3dsZWRnZXMgY2hhbmdlcyIpOworCisjIFN0b3AgdGhlIHN0YW5kYnkgYXNz b2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgcGh5c2ljYWwgcmVwbGljYXRpb24gc2xvdCBzbwor IyB0aGF0IHRoZSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3Qgd29uJ3QgcmVjZWl2ZSBjaGFuZ2Vz IHVudGlsIHRoZSBzdGFuZGJ5CisjIHNsb3QncyByZXN0YXJ0X2xzbiBpcyBhZHZhbmNlZCBvciB0 aGUgc2xvdCBpcyByZW1vdmVkIGZyb20gdGhlCisjIHN0YW5kYnlfc2xvdF9uYW1lcyBsaXN0Lgor JHB1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJUUlVOQ0FURSB0YWJfaW50OyIpOwor JHB1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgncmVncmVzc19teXN1YjEnKTsKKyRzdGFuZGJ5 MS0+c3RvcDsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKyMgVmVyaWZ5IHRoYXQgd2hlbiB1c2luZyBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5n ZXMgdG8gY29uc3VtZSBjaGFuZ2VzIGZyb20gYQorIyBsb2dpY2FsIHNsb3Qgd2l0aCBmYWlsb3Zl ciBlbmFibGVkLCBpdCB3aWxsIGFsc28gd2FpdCBmb3IgdGhlIHNsb3RzIHNwZWNpZmllZAorIyBp biBzdGFuZGJ5X3Nsb3RfbmFtZXMgdG8gY2F0Y2ggdXAuCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIENyZWF0ZSBhIGxvZ2ljYWwgJ3Rlc3Rf ZGVjb2RpbmcnIHJlcGxpY2F0aW9uIHNsb3Qgd2l0aCBmYWlsb3ZlciBlbmFibGVkCiskcHVibGlz aGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIHBnX2NyZWF0ZV9sb2dpY2FsX3Jl cGxpY2F0aW9uX3Nsb3QoJ3Rlc3Rfc2xvdCcsICd0ZXN0X2RlY29kaW5nJywgZmFsc2UsIGZhbHNl LCB0cnVlKTsiCispOworCitteSAkYmFja19xID0gJHByaW1hcnktPmJhY2tncm91bmRfcHNxbCgn cG9zdGdyZXMnLCBvbl9lcnJvcl9zdG9wID0+IDApOworbXkgJHBpZCA9ICRiYWNrX3EtPnF1ZXJ5 KCdTRUxFQ1QgcGdfYmFja2VuZF9waWQoKScpOworCisjIFRyeSBhbmQgZ2V0IGNoYW5nZXMgZnJv bSB0aGUgbG9naWNhbCBzbG90IHdpdGggZmFpbG92ZXIgZW5hYmxlZC4KK215ICRvZmZzZXQgPSAt cyAkcHJpbWFyeS0+bG9nZmlsZTsKKyRiYWNrX3EtPnF1ZXJ5X3VudGlsKHFyLy8sCisJIlNFTEVD VCBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJ3Rlc3Rfc2xvdCcsIE5VTEwsIE5VTEwpO1xu Iik7CisKKyMgV2FpdCB1bnRpbCB0aGUgcHJpbWFyeSBzZXJ2ZXIgbG9ncyBhIHdhcm5pbmcgaW5k aWNhdGluZyB0aGF0IGl0IGlzIHdhaXRpbmcKKyMgZm9yIHRoZSBzYjFfc2xvdCB0byBjYXRjaCB1 cC4KKyRwcmltYXJ5LT53YWl0X2Zvcl9sb2coCisJcXIvV0FSTklORzogKCBbQS1aMC05XSs6KT8g cmVwbGljYXRpb24gc2xvdCBcInNiMV9zbG90XCIgc3BlY2lmaWVkIGluIHBhcmFtZXRlciBcInN0 YW5kYnlfc2xvdF9uYW1lc1wiIGRvZXMgbm90IGhhdmUgYWN0aXZlX3BpZC8sCisJJG9mZnNldCk7 CisKK29rKCRwcmltYXJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBwZ19jYW5jZWxf YmFja2VuZCgkcGlkKSIpLAorCSJjYW5jZWxsaW5nIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdl cyBjb21tYW5kIik7CisKKyRiYWNrX3EtPnF1aXQ7CisKKyRwdWJsaXNoZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAorCSJTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCd0ZXN0X3Nsb3Qn KTsiCispOworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworIyBUZXN0IHRoYXQgbG9naWNhbCByZXBsaWNhdGlvbiB3aWxsIHdhaXQgZm9yIHRoZSB1 c2VyLWNyZWF0ZWQgaW5hY3RpdmUKKyMgcGh5c2ljYWwgc2xvdCB0byBjYXRjaCB1cCB1bnRpbCB3 ZSByZW1vdmUgdGhlIHNsb3QgZnJvbSBzdGFuZGJ5X3Nsb3RfbmFtZXMuCisjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIENyZWF0ZSBzb21lIGRh dGEgb24gdGhlIHByaW1hcnkKKyRwcmltYXJ5X3Jvd19jb3VudCA9IDEwOworJHByaW1hcnktPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0YWJfaW50IFNFTEVDVCBnZW5lcmF0 ZV9zZXJpZXMoMSwgJHByaW1hcnlfcm93X2NvdW50KTsiKTsKKworJHJlc3VsdCA9CisgICRzdWJz Y3JpYmVyMS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgY291bnQoKikgPSAwIEZST00g dGFiX2ludDsiKTsKK2lzKCRyZXN1bHQsICd0JywKKwkic3Vic2NyaWJlcjEgZG9lc24ndCBnZXQg ZGF0YSBhcyB0aGUgc2IxX3Nsb3QgZG9lc24ndCBjYXRjaCB1cCIpOworCisjIFJlbW92ZSB0aGUg c3RhbmRieSBmcm9tIHRoZSBzdGFuZGJ5X3Nsb3RfbmFtZXMgbGlzdCBhbmQgcmVsb2FkIHRoZQor IyBjb25maWd1cmF0aW9uLgorJHByaW1hcnktPmFkanVzdF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYn LCAnc3RhbmRieV9zbG90X25hbWVzJywgIicnIik7CiskcHJpbWFyeS0+cmVsb2FkOworCisjIFNp bmNlIHRoZXJlIGFyZSBubyBzbG90cyBpbiBzdGFuZGJ5X3Nsb3RfbmFtZXMsIHRoZSBwcmltYXJ5 IHNlcnZlciBzaG91bGQgbm93CisjIHNlbmQgdGhlIGRlY29kZWQgY2hhbmdlcyB0byB0aGUgc3Vi c2NyaXB0aW9uLgorJHB1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgncmVncmVzc19teXN1YjEn KTsKKyRyZXN1bHQgPSAkc3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxF Q1QgY291bnQoKikgPSAkcHJpbWFyeV9yb3dfY291bnQgRlJPTSB0YWJfaW50OyIpOworaXMoJHJl c3VsdCwgJ3QnLAorCSJzdWJzY3JpYmVyMSBnZXRzIGRhdGEgZnJvbSBwcmltYXJ5IGFmdGVyIHN0 YW5kYnkxIGlzIHJlbW92ZWQgZnJvbSB0aGUgc3RhbmRieV9zbG90X25hbWVzIGxpc3QiCispOwor CisjIFB1dCB0aGUgc3RhbmRieSBiYWNrIG9uIHRoZSBwcmltYXJ5X3Nsb3RfbmFtZSBmb3IgdGhl IHJlc3Qgb2YgdGhlIHRlc3RzCiskcHJpbWFyeS0+YWRqdXN0X2NvbmYoJ3Bvc3RncmVzcWwuY29u ZicsICdzdGFuZGJ5X3Nsb3RfbmFtZXMnLCAnc2IxX3Nsb3QnKTsKKyRwcmltYXJ5LT5yZWxvYWQ7 CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisj IFRlc3QgbG9naWNhbCBmYWlsb3ZlciBzbG90cyBvbiB0aGUgc3RhbmRieQorIyBDb25maWd1cmUg c3RhbmRieTEgdG8gcmVwbGljYXRlIGFuZCBzeW5jaHJvbml6ZSBsb2dpY2FsIHNsb3RzIGNvbmZp Z3VyZWQKKyMgZm9yIGZhaWxvdmVyIG9uIHRoZSBwcmltYXJ5CisjCisjICAgICAgICAgICAgICBm YWlsb3ZlciBzbG90IGxzdWIxX3Nsb3QtPnwgLS0tLT4gc3Vic2NyaWJlcjEgKGNvbm5lY3RlZCB2 aWEgbG9naWNhbCByZXBsaWNhdGlvbikKKyMgcHJpbWFyeSAtLS0+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgfAorIyAgICAgICAgICAgICAgcGh5c2ljYWwgc2xvdCBzYjFfc2xvdC0tLT58IC0t LS0+IHN0YW5kYnkxIChjb25uZWN0ZWQgdmlhIHN0cmVhbWluZyByZXBsaWNhdGlvbikKKyMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgbHN1 YjFfc2xvdChzeW5jZWRfc2xvdCkKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCisKKyMgQ3JlYXRlIGEgc3RhbmRieQogbXkgJGNvbm5zdHJfMSA9ICRw cmltYXJ5LT5jb25uc3RyOwogJHN0YW5kYnkxLT5hcHBlbmRfY29uZigKIAkncG9zdGdyZXNxbC5j b25mJywgcXEoCiBlbmFibGVfc3luY3Nsb3QgPSB0cnVlCiBob3Rfc3RhbmRieV9mZWVkYmFjayA9 IG9uCi1wcmltYXJ5X3Nsb3RfbmFtZSA9ICdzYjFfc2xvdCcKIHByaW1hcnlfY29ubmluZm8gPSAn JGNvbm5zdHJfMSBkYm5hbWU9cG9zdGdyZXMnCiApKTsKIAotJHByaW1hcnktPnBzcWwoJ3Bvc3Rn cmVzJywKLQlxe1NFTEVDVCBwZ19jcmVhdGVfcGh5c2ljYWxfcmVwbGljYXRpb25fc2xvdCgnc2Ix X3Nsb3QnKTt9KTsKLQogbXkgJHN0YW5kYnkxX2Nvbm5pbmZvID0gJHN0YW5kYnkxLT5jb25uc3Ry IC4gJyBkYm5hbWU9cG9zdGdyZXMnOwotbXkgJG9mZnNldCA9IC1zICRzdGFuZGJ5MS0+bG9nZmls ZTsKKyRvZmZzZXQgPSAtcyAkc3RhbmRieTEtPmxvZ2ZpbGU7CiAKICMgU3RhcnQgdGhlIHN0YW5k Ynkgc28gdGhhdCBzbG90IHN5bmNpbmcgY2FuIGJlZ2luCiAkc3RhbmRieTEtPnN0YXJ0OwpAQCAt MTUwLDE4ICszNDMsMTEgQEAgaXMoJHN0YW5kYnkxLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKICMg SW5zZXJ0IGRhdGEgb24gdGhlIHByaW1hcnkKICRwcmltYXJ5LT5zYWZlX3BzcWwoCiAJJ3Bvc3Rn cmVzJywgcXFbCi0JQ1JFQVRFIFRBQkxFIHRhYl9pbnQgKGEgaW50IFBSSU1BUlkgS0VZKTsKKwlU UlVOQ0FURSBUQUJMRSB0YWJfaW50OwogCUlOU0VSVCBJTlRPIHRhYl9pbnQgU0VMRUNUIGdlbmVy YXRlX3NlcmllcygxLCAxMCk7CiBdKTsKIAotIyBTdWJzY3JpYmUgdG8gdGhlIG5ldyB0YWJsZSBk YXRhIGFuZCB3YWl0IGZvciBpdCB0byBhcnJpdmUKLSRzdWJzY3JpYmVyMS0+c2FmZV9wc3FsKAot CSdwb3N0Z3JlcycsIHFxWwotCUNSRUFURSBUQUJMRSB0YWJfaW50IChhIGludCBQUklNQVJZIEtF WSk7Ci0JQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfbXlzdWIxIFJFRlJFU0ggUFVCTElDQVRJ T047Ci1dKTsKLQotJHN1YnNjcmliZXIxLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYzsKKyRw cmltYXJ5LT53YWl0X2Zvcl9jYXRjaHVwKCdyZWdyZXNzX215c3ViMScpOwogCiAjIERvIG5vdCBh bGxvdyBhbnkgZnVydGhlciBhZHZhbmNlbWVudCBvZiB0aGUgcmVzdGFydF9sc24gYW5kCiAjIGNv bmZpcm1lZF9mbHVzaF9sc24gZm9yIHRoZSBsc3ViMV9zbG90LgpAQCAtMTk5LDcgKzM4NSw5IEBA ICRzdGFuZGJ5MS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdBTFRFUiBTWVNURU0gU0VUIGhvdF9z dGFuZGJ5X2ZlZWRiYWNrID0gb2ZmOycpCiAkc3RhbmRieTEtPnJlc3RhcnQ7CiAKICMgQXR0ZW1w dGluZyB0byBwZXJmb3JtIGxvZ2ljYWwgZGVjb2Rpbmcgb24gYSBzeW5jZWQgc2xvdCBzaG91bGQg cmVzdWx0IGluIGFuIGVycm9yCi1teSAoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkc3Rh bmRieTEtPnBzcWwoJ3Bvc3RncmVzJywKK215ICgkc3Rkb3V0LCAkc3RkZXJyKTsKKworKCRyZXN1 bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJHN0YW5kYnkxLT5wc3FsKCdwb3N0Z3JlcycsCiAJInNl bGVjdCAqIGZyb20gcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdsc3ViMV9zbG90JyxOVUxM LE5VTEwpOyIpOwogb2soJHN0ZGVyciA9fiAvRVJST1I6ICBjYW5ub3QgdXNlIHJlcGxpY2F0aW9u IHNsb3QgImxzdWIxX3Nsb3QiIGZvciBsb2dpY2FsIGRlY29kaW5nLywKIAkibG9naWNhbCBkZWNv ZGluZyBpcyBub3QgYWxsb3dlZCBvbiBzeW5jZWQgc2xvdCIpOwotLSAKMi4zMC4wLndpbmRvd3Mu MgoK --_008_OS0PR01MB571623B1D01003F99A7BB983947A2OS0PR01MB5716jpnp_ Content-Type: application/octet-stream; name="v69-0002-Add-a-failover-option-to-subscriptions.patch" Content-Description: v69-0002-Add-a-failover-option-to-subscriptions.patch Content-Disposition: attachment; filename="v69-0002-Add-a-failover-option-to-subscriptions.patch"; size=65355; creation-date="Thu, 25 Jan 2024 13:06:42 GMT"; modification-date="Thu, 25 Jan 2024 13:11:48 GMT" Content-Transfer-Encoding: base64 RnJvbSA5ZTkyMDhmMGMwZmE2MjUxNjZkZDU1ODAyNTRiZDY0NGFlNjM2ZmFiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIb3UgWmhpamllIDxob3V6ai5mbnN0QGNuLmZ1aml0c3UuY29t PgpEYXRlOiBXZWQsIDI0IEphbiAyMDI0IDIwOjUxOjM5ICswODAwClN1YmplY3Q6IFtQQVRDSCB2 NjkgMi83XSBBZGQgYSBmYWlsb3ZlciBvcHRpb24gdG8gc3Vic2NyaXB0aW9ucy4KClRoaXMgY29t bWl0IGludHJvZHVjZXMgYSBuZXcgc3Vic2NyaXB0aW9uIG9wdGlvbiBuYW1lZCAnZmFpbG92ZXIn LCB3aGljaApwcm92aWRlcyB1c2VycyB3aXRoIHRoZSBhYmlsaXR5IHRvIHNldCB0aGUgZmFpbG92 ZXIgcHJvcGVydHkgb2YgdGhlIHJlcGxpY2F0aW9uCnNsb3Qgb24gdGhlIHB1Ymxpc2hlciB3aGVu IGNyZWF0aW5nIG9yIGFsdGVyaW5nIGEgc3Vic2NyaXB0aW9uLgotLS0KIGRvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAxMSArKwogZG9jL3NyYy9zZ21sL3Jl Zi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbCAgICAgIHwgIDE3ICstCiBkb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbCAgICAgfCAgMTIgKysKIHNyYy9iYWNrZW5kL2NhdGFs b2cvcGdfc3Vic2NyaXB0aW9uLmMgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jYXRhbG9n L3N5c3RlbV92aWV3cy5zcWwgICAgICAgICAgfCAgIDMgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRz L3N1YnNjcmlwdGlvbmNtZHMuYyAgICAgICB8IDEwNiArKysrKysrKysrLQogc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYyAgIHwgICAyICstCiBzcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jICAgICAgfCAgIDcgKwogc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgIDE4ICstCiBzcmMvYmluL3BnX2R1bXAv cGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2Jpbi9wZ191cGdyYWRl L3QvMDAzX2xvZ2ljYWxfc2xvdHMucGwgICAgIHwgICA2ICstCiBzcmMvYmluL3BzcWwvZGVzY3Jp YmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKy0KIHNyYy9iaW4vcHNxbC90YWItY29t cGxldGUuYyAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19zdWJzY3JpcHRpb24uaCAgICAgICAgIHwgICA5ICsKIC4uLi90LzA1MF9zdGFuZGJ5X2ZhaWxv dmVyX3Nsb3RzX3N5bmMucGwgICAgICB8ICA4OSArKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgICAgfCAxNjUgKysrKysrKysrKy0tLS0tLS0tCiBz cmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsICAgICAgICAgfCAgIDggKwogMTcg ZmlsZXMgY2hhbmdlZCwgMzc2IGluc2VydGlvbnMoKyksIDkxIGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlY292ZXJ5L3QvMDUwX3N0YW5kYnlfZmFpbG92ZXJfc2xv dHNfc3luYy5wbAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9j L3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggMTZiOTQ0NjFiMi4uODgwZjcxN2IxMCAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Nh dGFsb2dzLnNnbWwKQEAgLTgwMDAsNiArODAwMCwxNyBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNl YWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4m bAogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5zdWJmYWlsb3Zlcjwvc3RydWN0ZmllbGQ+ IDx0eXBlPmJvb2w8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBJ ZiB0cnVlLCB0aGUgYXNzb2NpYXRlZCByZXBsaWNhdGlvbiBzbG90cyAoaS5lLiB0aGUgbWFpbiBz bG90IGFuZCB0aGUKKyAgICAgICB0YWJsZSBzeW5jIHNsb3RzKSBpbiB0aGUgdXBzdHJlYW0gZGF0 YWJhc2UgYXJlIGVuYWJsZWQgdG8gYmUKKyAgICAgICBzeW5jaHJvbml6ZWQgdG8gdGhlIHN0YW5k YnlzCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CiAgICAgICAgPHN0cnVjdGZpZWxkPnN1YmNvbm5pbmZvPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+dGV4dDwvdHlwZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf c3Vic2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5z Z21sCmluZGV4IDZkMzZmZjBkYzkuLjBjMzRhYjkwMTcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRl cl9zdWJzY3JpcHRpb24uc2dtbApAQCAtMjI2LDEwICsyMjYsMjMgQEAgQUxURVIgU1VCU0NSSVBU SU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVO QU1FIFRPIDwKICAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFy YW1zLXdpdGgtc3RyZWFtaW5nIj48bGl0ZXJhbD5zdHJlYW1pbmc8L2xpdGVyYWw+PC9saW5rPiwK ICAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgt ZGlzYWJsZS1vbi1lcnJvciI+PGxpdGVyYWw+ZGlzYWJsZV9vbl9lcnJvcjwvbGl0ZXJhbD48L2xp bms+LAogICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMt d2l0aC1wYXNzd29yZC1yZXF1aXJlZCI+PGxpdGVyYWw+cGFzc3dvcmRfcmVxdWlyZWQ8L2xpdGVy YWw+PC9saW5rPiwKLSAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24t cGFyYW1zLXdpdGgtcnVuLWFzLW93bmVyIj48bGl0ZXJhbD5ydW5fYXNfb3duZXI8L2xpdGVyYWw+ PC9saW5rPiwgYW5kCi0gICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9u LXBhcmFtcy13aXRoLW9yaWdpbiI+PGxpdGVyYWw+b3JpZ2luPC9saXRlcmFsPjwvbGluaz4uCisg ICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLXJ1 bi1hcy1vd25lciI+PGxpdGVyYWw+cnVuX2FzX293bmVyPC9saXRlcmFsPjwvbGluaz4sCisgICAg ICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLW9yaWdp biI+PGxpdGVyYWw+b3JpZ2luPC9saXRlcmFsPjwvbGluaz4sIGFuZAorICAgICAgPGxpbmsgbGlu a2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1mYWlsb3ZlciI+PGxpdGVy YWw+ZmFpbG92ZXI8L2xpdGVyYWw+PC9saW5rPi4KICAgICAgIE9ubHkgYSBzdXBlcnVzZXIgY2Fu IHNldCA8bGl0ZXJhbD5wYXNzd29yZF9yZXF1aXJlZCA9IGZhbHNlPC9saXRlcmFsPi4KICAgICAg PC9wYXJhPgorCisgICAgIDxwYXJhPgorICAgICAgV2hlbiBhbHRlcmluZyB0aGUKKyAgICAgIDxs aW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtc2xvdC1uYW1l Ij48bGl0ZXJhbD5zbG90X25hbWU8L2xpdGVyYWw+PC9saW5rPiwKKyAgICAgIHRoZSA8bGl0ZXJh bD5mYWlsb3ZlcjwvbGl0ZXJhbD4gcHJvcGVydHkgdmFsdWUgb2YgdGhlIG5hbWVkIHNsb3QgbWF5 IGRpZmZlciBmcm9tIHRoZQorICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlw dGlvbi1wYXJhbXMtd2l0aC1mYWlsb3ZlciI+PGxpdGVyYWw+ZmFpbG92ZXI8L2xpdGVyYWw+PC9s aW5rPgorICAgICAgcGFyYW1ldGVyIHNwZWNpZmllZCBpbiB0aGUgc3Vic2NyaXB0aW9uLiBXaGVu IGNyZWF0aW5nIHRoZSBzbG90LAorICAgICAgZW5zdXJlIHRoZSBzbG90IDxsaXRlcmFsPmZhaWxv dmVyPC9saXRlcmFsPiBwcm9wZXJ0eSBtYXRjaGVzIHRoZQorICAgICAgPGxpbmsgbGlua2VuZD0i c3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1mYWlsb3ZlciI+PGxpdGVyYWw+ZmFp bG92ZXI8L2xpdGVyYWw+PC9saW5rPgorICAgICAgcGFyYW1ldGVyIHZhbHVlIG9mIHRoZSBzdWJz Y3JpcHRpb24uIE90aGVyd2lzZSwgdGhlIHNsb3Qgb24gdGhlIHB1Ymxpc2hlciBtYXkKKyAgICAg IG5vdCBiZSBlbmFibGVkIHRvIGJlIHN5bmNlZCB0byBzdGFuZGJ5cy4KKyAgICAgPC9wYXJhPgog ICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIApkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZV9zdWJzY3JpcHRpb24uc2dtbAppbmRleCBjN2FjZTkyMmY5Li41OWE5NTU0YmYwIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbAorKysgYi9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbApAQCAtNDAwLDYgKzQwMCwx OCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5z dWJzY3JpcHRpb25fbmFtZTwvcmVwbGFjZWFibAogICAgICAgICAgPC9wYXJhPgogICAgICAgICA8 L2xpc3RpdGVtPgogICAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICAgPHZhcmxpc3RlbnRy eSBpZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1mYWlsb3ZlciI+CisgICAg ICAgIDx0ZXJtPjxsaXRlcmFsPmZhaWxvdmVyPC9saXRlcmFsPiAoPHR5cGU+Ym9vbGVhbjwvdHlw ZT4pPC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAg ICBTcGVjaWZpZXMgd2hldGhlciB0aGUgcmVwbGljYXRpb24gc2xvdHMgYXNzb2NpYXRlZCB3aXRo IHRoZSBzdWJzY3JpcHRpb24KKyAgICAgICAgICBhcmUgZW5hYmxlZCB0byBiZSBzeW5jZWQgdG8g dGhlIHN0YW5kYnlzIHNvIHRoYXQgbG9naWNhbAorICAgICAgICAgIHJlcGxpY2F0aW9uIGNhbiBi ZSByZXN1bWVkIGZyb20gdGhlIG5ldyBwcmltYXJ5IGFmdGVyIGZhaWxvdmVyLgorICAgICAgICAg IFRoZSBkZWZhdWx0IGlzIDxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPi4KKyAgICAgICAgIDwvcGFy YT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICA8L3Zhcmxpc3RlbnRyeT4KICAgICAgIDwv dmFyaWFibGVsaXN0PjwvcGFyYT4KIAogICAgIDwvbGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z19zdWJzY3JpcHRpb24uYwppbmRleCBjNTE2YzI1YWM3Li40MDZhM2MyZGQxIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5k L2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMKQEAgLTczLDYgKzczLDcgQEAgR2V0U3Vic2NyaXB0 aW9uKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29rKQogCXN1Yi0+ZGlzYWJsZW9uZXJyID0gc3Vi Zm9ybS0+c3ViZGlzYWJsZW9uZXJyOwogCXN1Yi0+cGFzc3dvcmRyZXF1aXJlZCA9IHN1YmZvcm0t PnN1YnBhc3N3b3JkcmVxdWlyZWQ7CiAJc3ViLT5ydW5hc293bmVyID0gc3ViZm9ybS0+c3VicnVu YXNvd25lcjsKKwlzdWItPmZhaWxvdmVyID0gc3ViZm9ybS0+c3ViZmFpbG92ZXI7CiAKIAkvKiBH ZXQgY29ubmluZm8gKi8KIAlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoU1VCU0NSSVBU SU9OT0lELApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3Fs IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IGM2MmFhMDA3NGEu LjZmYzM5MTY4NTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdz LnNxbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKQEAgLTEzNTks NyArMTM1OSw4IEBAIFJFVk9LRSBBTEwgT04gcGdfc3Vic2NyaXB0aW9uIEZST00gcHVibGljOwog R1JBTlQgU0VMRUNUIChvaWQsIHN1YmRiaWQsIHN1YnNraXBsc24sIHN1Ym5hbWUsIHN1Ym93bmVy LCBzdWJlbmFibGVkLAogICAgICAgICAgICAgICBzdWJiaW5hcnksIHN1YnN0cmVhbSwgc3VidHdv cGhhc2VzdGF0ZSwgc3ViZGlzYWJsZW9uZXJyLAogCQkJICBzdWJwYXNzd29yZHJlcXVpcmVkLCBz dWJydW5hc293bmVyLAotICAgICAgICAgICAgICBzdWJzbG90bmFtZSwgc3Vic3luY2NvbW1pdCwg c3VicHVibGljYXRpb25zLCBzdWJvcmlnaW4pCisgICAgICAgICAgICAgIHN1YnNsb3RuYW1lLCBz dWJzeW5jY29tbWl0LCBzdWJwdWJsaWNhdGlvbnMsIHN1Ym9yaWdpbiwKKyAgICAgICAgICAgICAg c3ViZmFpbG92ZXIpCiAgICAgT04gcGdfc3Vic2NyaXB0aW9uIFRPIHB1YmxpYzsKIAogQ1JFQVRF IFZJRVcgcGdfc3RhdF9zdWJzY3JpcHRpb25fc3RhdHMgQVMKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1 YnNjcmlwdGlvbmNtZHMuYwppbmRleCBlYWYyZWMzYjM2Li4xNWJiMTBkYTU0IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCkBAIC03MSw2ICs3MSw3IEBACiAjZGVmaW5l IFNVQk9QVF9SVU5fQVNfT1dORVIJCQkweDAwMDAxMDAwCiAjZGVmaW5lIFNVQk9QVF9MU04JCQkJ CTB4MDAwMDIwMDAKICNkZWZpbmUgU1VCT1BUX09SSUdJTgkJCQkweDAwMDA0MDAwCisjZGVmaW5l IFNVQk9QVF9GQUlMT1ZFUgkJCQkweDAwMDA4MDAwCiAKIC8qIGNoZWNrIGlmIHRoZSAndmFsJyBo YXMgJ2JpdHMnIHNldCAqLwogI2RlZmluZSBJc1NldCh2YWwsIGJpdHMpICAoKCh2YWwpICYgKGJp dHMpKSA9PSAoYml0cykpCkBAIC05Niw2ICs5Nyw3IEBAIHR5cGVkZWYgc3RydWN0IFN1Yk9wdHMK IAlib29sCQlwYXNzd29yZHJlcXVpcmVkOwogCWJvb2wJCXJ1bmFzb3duZXI7CiAJY2hhcgkgICAq b3JpZ2luOworCWJvb2wJCWZhaWxvdmVyOwogCVhMb2dSZWNQdHIJbHNuOwogfSBTdWJPcHRzOwog CkBAIC0xNTcsNiArMTU5LDggQEAgcGFyc2Vfc3Vic2NyaXB0aW9uX29wdGlvbnMoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBMaXN0ICpzdG10X29wdGlvbnMsCiAJCW9wdHMtPnJ1bmFzb3duZXIgPSBmYWxz ZTsKIAlpZiAoSXNTZXQoc3VwcG9ydGVkX29wdHMsIFNVQk9QVF9PUklHSU4pKQogCQlvcHRzLT5v cmlnaW4gPSBwc3RyZHVwKExPR0lDQUxSRVBfT1JJR0lOX0FOWSk7CisJaWYgKElzU2V0KHN1cHBv cnRlZF9vcHRzLCBTVUJPUFRfRkFJTE9WRVIpKQorCQlvcHRzLT5mYWlsb3ZlciA9IGZhbHNlOwog CiAJLyogUGFyc2Ugb3B0aW9ucyAqLwogCWZvcmVhY2gobGMsIHN0bXRfb3B0aW9ucykKQEAgLTMy Niw2ICszMzAsMTUgQEAgcGFyc2Vfc3Vic2NyaXB0aW9uX29wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBMaXN0ICpzdG10X29wdGlvbnMsCiAJCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9Q QVJBTUVURVJfVkFMVUUpLAogCQkJCQkJZXJybXNnKCJ1bnJlY29nbml6ZWQgb3JpZ2luIHZhbHVl OiBcIiVzXCIiLCBvcHRzLT5vcmlnaW4pKTsKIAkJfQorCQllbHNlIGlmIChJc1NldChzdXBwb3J0 ZWRfb3B0cywgU1VCT1BUX0ZBSUxPVkVSKSAmJgorCQkJCSBzdHJjbXAoZGVmZWwtPmRlZm5hbWUs ICJmYWlsb3ZlciIpID09IDApCisJCXsKKwkJCWlmIChJc1NldChvcHRzLT5zcGVjaWZpZWRfb3B0 cywgU1VCT1BUX0ZBSUxPVkVSKSkKKwkJCQllcnJvckNvbmZsaWN0aW5nRGVmRWxlbShkZWZlbCwg cHN0YXRlKTsKKworCQkJb3B0cy0+c3BlY2lmaWVkX29wdHMgfD0gU1VCT1BUX0ZBSUxPVkVSOwor CQkJb3B0cy0+ZmFpbG92ZXIgPSBkZWZHZXRCb29sZWFuKGRlZmVsKTsKKwkJfQogCQllbHNlIGlm IChJc1NldChzdXBwb3J0ZWRfb3B0cywgU1VCT1BUX0xTTikgJiYKIAkJCQkgc3RyY21wKGRlZmVs LT5kZWZuYW1lLCAibHNuIikgPT0gMCkKIAkJewpAQCAtNTkxLDcgKzYwNCw4IEBAIENyZWF0ZVN1 YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0 bXQsCiAJCQkJCSAgU1VCT1BUX1NZTkNIUk9OT1VTX0NPTU1JVCB8IFNVQk9QVF9CSU5BUlkgfAog CQkJCQkgIFNVQk9QVF9TVFJFQU1JTkcgfCBTVUJPUFRfVFdPUEhBU0VfQ09NTUlUIHwKIAkJCQkJ ICBTVUJPUFRfRElTQUJMRV9PTl9FUlIgfCBTVUJPUFRfUEFTU1dPUkRfUkVRVUlSRUQgfAotCQkJ CQkgIFNVQk9QVF9SVU5fQVNfT1dORVIgfCBTVUJPUFRfT1JJR0lOKTsKKwkJCQkJICBTVUJPUFRf UlVOX0FTX09XTkVSIHwgU1VCT1BUX09SSUdJTiB8CisJCQkJCSAgU1VCT1BUX0ZBSUxPVkVSKTsK IAlwYXJzZV9zdWJzY3JpcHRpb25fb3B0aW9ucyhwc3RhdGUsIHN0bXQtPm9wdGlvbnMsIHN1cHBv cnRlZF9vcHRzLCAmb3B0cyk7CiAKIAkvKgpAQCAtNzEwLDYgKzcyNCw4IEBAIENyZWF0ZVN1YnNj cmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQs CiAJCXB1YmxpY2F0aW9uTGlzdFRvQXJyYXkocHVibGljYXRpb25zKTsKIAl2YWx1ZXNbQW51bV9w Z19zdWJzY3JpcHRpb25fc3Vib3JpZ2luIC0gMV0gPQogCQlDU3RyaW5nR2V0VGV4dERhdHVtKG9w dHMub3JpZ2luKTsKKwl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViZmFpbG92ZXIgLSAx XSA9CisJCUJvb2xHZXREYXR1bShvcHRzLmZhaWxvdmVyKTsKIAogCXR1cCA9IGhlYXBfZm9ybV90 dXBsZShSZWxhdGlvbkdldERlc2NyKHJlbCksIHZhbHVlcywgbnVsbHMpOwogCkBAIC04MDcsNyAr ODIzLDcgQEAgQ3JlYXRlU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vi c2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJCQkJdHdvcGhhc2VfZW5hYmxlZCA9IHRydWU7CiAKIAkJ CQl3YWxyY3ZfY3JlYXRlX3Nsb3Qod3Jjb25uLCBvcHRzLnNsb3RfbmFtZSwgZmFsc2UsIHR3b3Bo YXNlX2VuYWJsZWQsCi0JCQkJCQkJCSAgIGZhbHNlLCBDUlNfTk9FWFBPUlRfU05BUFNIT1QsIE5V TEwpOworCQkJCQkJCQkgICBvcHRzLmZhaWxvdmVyLCBDUlNfTk9FWFBPUlRfU05BUFNIT1QsIE5V TEwpOwogCiAJCQkJaWYgKHR3b3BoYXNlX2VuYWJsZWQpCiAJCQkJCVVwZGF0ZVR3b1BoYXNlU3Rh dGUoc3ViaWQsIExPR0lDQUxSRVBfVFdPUEhBU0VfU1RBVEVfRU5BQkxFRCk7CkBAIC04MTYsNiAr ODMyLDI0IEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1 YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCQkJCQkoZXJybXNnKCJjcmVhdGVkIHJlcGxpY2F0aW9u IHNsb3QgXCIlc1wiIG9uIHB1Ymxpc2hlciIsCiAJCQkJCQkJCW9wdHMuc2xvdF9uYW1lKSkpOwog CQkJfQorCisJCQkvKgorCQkJICogSWYgdGhlIHNsb3RfbmFtZSBpcyBzcGVjaWZpZWQgd2l0aG91 dCB0aGUgY3JlYXRlX3Nsb3Qgb3B0aW9uLAorCQkJICogaXQgaXMgcG9zc2libGUgdGhhdCB0aGUg dXNlciBpbnRlbmRzIHRvIHVzZSBhbiBleGlzdGluZyBzbG90IG9uCisJCQkgKiB0aGUgcHVibGlz aGVyLCBzbyBoZXJlIHdlIGFsdGVyIHRoZSBmYWlsb3ZlciBwcm9wZXJ0eSBvZiB0aGUKKwkJCSAq IHNsb3QgdG8gbWF0Y2ggdGhlIGZhaWxvdmVyIHZhbHVlIGluIHN1YnNjcmlwdGlvbi4KKwkJCSAq CisJCQkgKiBXZSBkbyBub3QgbmVlZCB0byBjaGFuZ2UgdGhlIGZhaWxvdmVyIHRvIGZhbHNlIGlm IHRoZSBzZXJ2ZXIKKwkJCSAqIGRvZXMgbm90IHN1cHBvcnQgZmFpbG92ZXIgKGUuZy4gcHJlLVBH MTcpLgorCQkJICovCisJCQllbHNlIGlmIChvcHRzLnNsb3RfbmFtZSAmJgorCQkJCQkgKG9wdHMu ZmFpbG92ZXIgfHwgd2FscmN2X3NlcnZlcl92ZXJzaW9uKHdyY29ubikgPj0gMTcwMDAwKSkKKwkJ CXsKKwkJCQl3YWxyY3ZfYWx0ZXJfc2xvdCh3cmNvbm4sIG9wdHMuc2xvdF9uYW1lLCBvcHRzLmZh aWxvdmVyKTsKKwkJCQllcmVwb3J0KE5PVElDRSwKKwkJCQkJCShlcnJtc2coImNoYW5nZWQgdGhl IGZhaWxvdmVyIHN0YXRlIG9mIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIG9uIHB1Ymxpc2hlciB0 byAlcyIsCisJCQkJCQkJCW9wdHMuc2xvdF9uYW1lLCBvcHRzLmZhaWxvdmVyID8gInRydWUiIDog ImZhbHNlIikpKTsKKwkJCX0KIAkJfQogCQlQR19GSU5BTExZKCk7CiAJCXsKQEAgLTExMzIsNyAr MTE2Niw4IEBAIEFsdGVyU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJz Y3JpcHRpb25TdG10ICpzdG10LAogCQkJCQkJCQkgIFNVQk9QVF9TWU5DSFJPTk9VU19DT01NSVQg fCBTVUJPUFRfQklOQVJZIHwKIAkJCQkJCQkJICBTVUJPUFRfU1RSRUFNSU5HIHwgU1VCT1BUX0RJ U0FCTEVfT05fRVJSIHwKIAkJCQkJCQkJICBTVUJPUFRfUEFTU1dPUkRfUkVRVUlSRUQgfAotCQkJ CQkJCQkgIFNVQk9QVF9SVU5fQVNfT1dORVIgfCBTVUJPUFRfT1JJR0lOKTsKKwkJCQkJCQkJICBT VUJPUFRfUlVOX0FTX09XTkVSIHwgU1VCT1BUX09SSUdJTiB8CisJCQkJCQkJCSAgU1VCT1BUX0ZB SUxPVkVSKTsKIAogCQkJCXBhcnNlX3N1YnNjcmlwdGlvbl9vcHRpb25zKHBzdGF0ZSwgc3RtdC0+ b3B0aW9ucywKIAkJCQkJCQkJCQkgICBzdXBwb3J0ZWRfb3B0cywgJm9wdHMpOwpAQCAtMTIxOCw2 ICsxMjUzLDMxIEBAIEFsdGVyU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJT dWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJCQlyZXBsYWNlc1tBbnVtX3BnX3N1YnNjcmlwdGlv bl9zdWJvcmlnaW4gLSAxXSA9IHRydWU7CiAJCQkJfQogCisJCQkJaWYgKElzU2V0KG9wdHMuc3Bl Y2lmaWVkX29wdHMsIFNVQk9QVF9GQUlMT1ZFUikpCisJCQkJeworCQkJCQlpZiAoIXN1Yi0+c2xv dG5hbWUpCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX09C SkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJCQkJCQkJIGVycm1zZygiY2Fubm90 IHNldCAlcyBmb3IgYSBzdWJzY3JpcHRpb24gdGhhdCBkb2VzIG5vdCBoYXZlIGEgc2xvdCBuYW1l IiwKKwkJCQkJCQkJCQkiZmFpbG92ZXIiKSkpOworCisJCQkJCS8qCisJCQkJCSAqIERvIG5vdCBh bGxvdyBjaGFuZ2luZyB0aGUgZmFpbG92ZXIgc3RhdGUgaWYgdGhlCisJCQkJCSAqIHN1YnNjcmlw dGlvbiBpcyBlbmFibGVkLiBUaGlzIGlzIGJlY2F1c2UgdGhlIGZhaWxvdmVyCisJCQkJCSAqIHN0 YXRlIG9mIHRoZSBzbG90IG9uIHRoZSBwdWJsaXNoZXIgY2Fubm90IGJlIG1vZGlmaWVkCisJCQkJ CSAqIGlmIHRoZSBzbG90IGlzIGN1cnJlbnRseSBhY3F1aXJlZCBieSB0aGUgYXBwbHkgd29ya2Vy LgorCQkJCQkgKi8KKwkJCQkJaWYgKHN1Yi0+ZW5hYmxlZCkKKwkJCQkJCWVyZXBvcnQoRVJST1Is CisJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RB VEUpLAorCQkJCQkJCQkgZXJybXNnKCJjYW5ub3Qgc2V0ICVzIGZvciBlbmFibGVkIHN1YnNjcmlw dGlvbiIsCisJCQkJCQkJCQkJImZhaWxvdmVyIikpKTsKKworCQkJCQl2YWx1ZXNbQW51bV9wZ19z dWJzY3JpcHRpb25fc3ViZmFpbG92ZXIgLSAxXSA9CisJCQkJCQlCb29sR2V0RGF0dW0ob3B0cy5m YWlsb3Zlcik7CisJCQkJCXJlcGxhY2VzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmZhaWxvdmVy IC0gMV0gPSB0cnVlOworCQkJCX0KKwogCQkJCXVwZGF0ZV90dXBsZSA9IHRydWU7CiAJCQkJYnJl YWs7CiAJCQl9CkBAIC0xNDUzLDYgKzE1MTMsNDYgQEAgQWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VT dGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCWhlYXBfZnJlZXR1 cGxlKHR1cCk7CiAJfQogCisJLyoKKwkgKiBUcnkgdG8gYWNxdWlyZSB0aGUgY29ubmVjdGlvbiBu ZWNlc3NhcnkgZm9yIGFsdGVyaW5nIHNsb3QuCisJICoKKwkgKiBUaGlzIGhhcyB0byBiZSBhdCB0 aGUgZW5kIGJlY2F1c2Ugb3RoZXJ3aXNlIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoaWxlCisJICog ZG9pbmcgdGhlIGRhdGFiYXNlIG9wZXJhdGlvbnMgd2Ugd29uJ3QgYmUgYWJsZSB0byByb2xsYmFj ayBhbHRlcmVkCisJICogc2xvdC4KKwkgKi8KKwlpZiAocmVwbGFjZXNbQW51bV9wZ19zdWJzY3Jp cHRpb25fc3ViZmFpbG92ZXIgLSAxXSkKKwl7CisJCWJvb2wJCW11c3RfdXNlX3Bhc3N3b3JkOwor CQljaGFyCSAgICplcnI7CisJCVdhbFJlY2VpdmVyQ29ubiAqd3Jjb25uOworCisJCS8qIExvYWQg dGhlIGxpYnJhcnkgcHJvdmlkaW5nIHVzIGxpYnBxIGNhbGxzLiAqLworCQlsb2FkX2ZpbGUoImxp YnBxd2FscmVjZWl2ZXIiLCBmYWxzZSk7CisKKwkJLyogVHJ5IHRvIGNvbm5lY3QgdG8gdGhlIHB1 Ymxpc2hlci4gKi8KKwkJbXVzdF91c2VfcGFzc3dvcmQgPSBzdWItPnBhc3N3b3JkcmVxdWlyZWQg JiYgIXN1Yi0+b3duZXJzdXBlcnVzZXI7CisJCXdyY29ubiA9IHdhbHJjdl9jb25uZWN0KHN1Yi0+ Y29ubmluZm8sIHRydWUsIG11c3RfdXNlX3Bhc3N3b3JkLAorCQkJCQkJCQlzdWItPm5hbWUsICZl cnIpOworCQlpZiAoIXdyY29ubikKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVS UkNPREVfQ09OTkVDVElPTl9GQUlMVVJFKSwKKwkJCQkJIGVycm1zZygiY291bGQgbm90IGNvbm5l Y3QgdG8gdGhlIHB1Ymxpc2hlcjogJXMiLCBlcnIpKSk7CisKKwkJUEdfVFJZKCk7CisJCXsKKwkJ CXdhbHJjdl9hbHRlcl9zbG90KHdyY29ubiwgc3ViLT5zbG90bmFtZSwgb3B0cy5mYWlsb3Zlcik7 CisKKwkJCWVyZXBvcnQoTk9USUNFLAorCQkJCQkoZXJybXNnKCJjaGFuZ2VkIHRoZSBmYWlsb3Zl ciBzdGF0ZSBvZiByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBvbiBwdWJsaXNoZXIgdG8gJXMiLAor CQkJCQkJCXN1Yi0+c2xvdG5hbWUsIG9wdHMuZmFpbG92ZXIgPyAidHJ1ZSIgOiAiZmFsc2UiKSkp OworCQl9CisJCVBHX0ZJTkFMTFkoKTsKKwkJeworCQkJd2FscmN2X2Rpc2Nvbm5lY3Qod3Jjb25u KTsKKwkJfQorCQlQR19FTkRfVFJZKCk7CisJfQorCiAJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNs dXNpdmVMb2NrKTsKIAogCU9iamVjdEFkZHJlc3NTZXQobXlzZWxmLCBTdWJzY3JpcHRpb25SZWxh dGlvbklkLCBzdWJpZCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dp Y2FsL3RhYmxlc3luYy5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5 bmMuYwppbmRleCA0MjA3YjkzNTZjLi41YWNhYjNmM2UyIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3RhYmxlc3luYy5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMKQEAgLTE0MzAsNyArMTQzMCw3IEBAIExvZ2ljYWxS ZXBTeW5jVGFibGVTdGFydChYTG9nUmVjUHRyICpvcmlnaW5fc3RhcnRwb3MpCiAJICovCiAJd2Fs cmN2X2NyZWF0ZV9zbG90KExvZ1JlcFdvcmtlcldhbFJjdkNvbm4sCiAJCQkJCSAgIHNsb3RuYW1l LCBmYWxzZSAvKiBwZXJtYW5lbnQgKi8gLCBmYWxzZSAvKiB0d29fcGhhc2UgKi8gLAotCQkJCQkg ICBmYWxzZSwKKwkJCQkJICAgTXlTdWJzY3JpcHRpb24tPmZhaWxvdmVyLAogCQkJCQkgICBDUlNf VVNFX1NOQVBTSE9ULCBvcmlnaW5fc3RhcnRwb3MpOwogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9sb2dpY2FsL3dvcmtlci5jCmluZGV4IDliNTk4Y2FmM2MuLjMyZmY0YzAzMzYgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMKKysrIGIvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYwpAQCAtMTMyLDYgKzEzMiwxMyBA QAogICogYXZvaWQgc3VjaCBkZWFkbG9ja3MsIHdlIGdlbmVyYXRlIGEgdW5pcXVlIEdJRCAoY29u c2lzdGluZyBvZiB0aGUKICAqIHN1YnNjcmlwdGlvbiBvaWQgYW5kIHRoZSB4aWQgb2YgdGhlIHBy ZXBhcmVkIHRyYW5zYWN0aW9uKSBmb3IgZWFjaCBwcmVwYXJlCiAgKiB0cmFuc2FjdGlvbiBvbiB0 aGUgc3Vic2NyaWJlci4KKyAqCisgKiBGQUlMT1ZFUgorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICogVGhlIGxvZ2ljYWwgc2xvdCBvbiB0aGUgcHJpbWFyeSBjYW4gYmUgc3luY2VkIHRvIHRo ZSBzdGFuZGJ5IGJ5IHNwZWNpZnlpbmcKKyAqIGZhaWxvdmVyID0gdHJ1ZSB3aGVuIGNyZWF0aW5n IHRoZSBzdWJzY3JpcHRpb24uIEVuYWJsaW5nIGZhaWxvdmVyIGFsbG93cyB1cworICogdG8gc21v b3RobHkgdHJhbnNpdGlvbiB0byB0aGUgcHJvbW90ZWQgc3RhbmRieSwgZW5zdXJpbmcgdGhhdCB3 ZSBjYW4KKyAqIHN1YnNjcmliZSB0byB0aGUgbmV3IHByaW1hcnkgd2l0aG91dCBsb3NpbmcgYW55 IGRhdGEuCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCBhMTk0NDNi ZWNkLi4xOWEzODY1Njk5IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisr KyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTQ2NDEsNiArNDY0MSw3IEBAIGdldFN1 YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCkKIAlpbnQJCQlpX3N1Ym9yaWdpbjsKIAlpbnQJCQlp X3N1Ym9yaWdpbnJlbW90ZWxzbjsKIAlpbnQJCQlpX3N1YmVuYWJsZWQ7CisJaW50CQkJaV9zdWJm YWlsb3ZlcjsKIAlpbnQJCQlpLAogCQkJCW50dXBzOwogCkBAIC00NzA2LDEwICs0NzA3LDE3IEBA IGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCkKIAogCWlmIChkb3B0LT5iaW5hcnlfdXBn cmFkZSAmJiBmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE3MDAwMCkKIAkJYXBwZW5kUFFFeHBCdWZm ZXJTdHIocXVlcnksICIgby5yZW1vdGVfbHNuIEFTIHN1Ym9yaWdpbnJlbW90ZWxzbixcbiIKLQkJ CQkJCQkgIiBzLnN1YmVuYWJsZWRcbiIpOworCQkJCQkJCSAiIHMuc3ViZW5hYmxlZCxcbiIpOwog CWVsc2UKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgTlVMTCBBUyBzdWJvcmlnaW5y ZW1vdGVsc24sXG4iCi0JCQkJCQkJICIgZmFsc2UgQVMgc3ViZW5hYmxlZFxuIik7CisJCQkJCQkJ ICIgZmFsc2UgQVMgc3ViZW5hYmxlZCxcbiIpOworCisJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24g Pj0gMTcwMDAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKKwkJCQkJCQkgIiBzLnN1 YmZhaWxvdmVyXG4iKTsKKwllbHNlCisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LAorCQkJCQkJ ICAiIGZhbHNlIEFTIHN1YmZhaWxvdmVyXG4iKTsKIAogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1 ZXJ5LAogCQkJCQkJICJGUk9NIHBnX3N1YnNjcmlwdGlvbiBzXG4iKTsKQEAgLTQ3NDgsNiArNDc1 Niw3IEBAIGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCkKIAlpX3N1Ym9yaWdpbiA9IFBR Zm51bWJlcihyZXMsICJzdWJvcmlnaW4iKTsKIAlpX3N1Ym9yaWdpbnJlbW90ZWxzbiA9IFBRZm51 bWJlcihyZXMsICJzdWJvcmlnaW5yZW1vdGVsc24iKTsKIAlpX3N1YmVuYWJsZWQgPSBQUWZudW1i ZXIocmVzLCAic3ViZW5hYmxlZCIpOworCWlfc3ViZmFpbG92ZXIgPSBQUWZudW1iZXIocmVzLCAi c3ViZmFpbG92ZXIiKTsKIAogCXN1YmluZm8gPSBwZ19tYWxsb2MobnR1cHMgKiBzaXplb2YoU3Vi c2NyaXB0aW9uSW5mbykpOwogCkBAIC00NzkyLDYgKzQ4MDEsOCBAQCBnZXRTdWJzY3JpcHRpb25z KEFyY2hpdmUgKmZvdXQpCiAJCQkJcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3N1Ym9y aWdpbnJlbW90ZWxzbikpOwogCQlzdWJpbmZvW2ldLnN1YmVuYWJsZWQgPQogCQkJcGdfc3RyZHVw KFBRZ2V0dmFsdWUocmVzLCBpLCBpX3N1YmVuYWJsZWQpKTsKKwkJc3ViaW5mb1tpXS5zdWJmYWls b3ZlciA9CisJCQlwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfc3ViZmFpbG92ZXIpKTsK IAogCQkvKiBEZWNpZGUgd2hldGhlciB3ZSB3YW50IHRvIGR1bXAgaXQgKi8KIAkJc2VsZWN0RHVt cGFibGVPYmplY3QoJihzdWJpbmZvW2ldLmRvYmopLCBmb3V0KTsKQEAgLTUwMjAsNiArNTAzMSw5 IEBAIGR1bXBTdWJzY3JpcHRpb24oQXJjaGl2ZSAqZm91dCwgY29uc3QgU3Vic2NyaXB0aW9uSW5m byAqc3ViaW5mbykKIAlpZiAoc3RyY21wKHN1YmluZm8tPnN1YnR3b3BoYXNlc3RhdGUsIHR3b19w aGFzZV9kaXNhYmxlZCkgIT0gMCkKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIsIHR3 b19waGFzZSA9IG9uIik7CiAKKwlpZiAoc3RyY21wKHN1YmluZm8tPnN1YmZhaWxvdmVyLCAidCIp ID09IDApCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiLCBmYWlsb3ZlciA9IHRydWUi KTsKKwogCWlmIChzdHJjbXAoc3ViaW5mby0+c3ViZGlzYWJsZW9uZXJyLCAidCIpID09IDApCiAJ CWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiLCBkaXNhYmxlX29uX2Vycm9yID0gdHJ1ZSIp OwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuaAppbmRleCA5M2Q5N2E0MDkwLi43N2RiNDJlMzU0IDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgK QEAgLTY2Nyw2ICs2NjcsNyBAQCB0eXBlZGVmIHN0cnVjdCBfU3Vic2NyaXB0aW9uSW5mbwogCWNo YXIJICAgKnN1YnB1YmxpY2F0aW9uczsKIAljaGFyCSAgICpzdWJvcmlnaW47CiAJY2hhcgkgICAq c3Vib3JpZ2lucmVtb3RlbHNuOworCWNoYXIJICAgKnN1YmZhaWxvdmVyOwogfSBTdWJzY3JpcHRp b25JbmZvOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDAzX2xvZ2lj YWxfc2xvdHMucGwgYi9zcmMvYmluL3BnX3VwZ3JhZGUvdC8wMDNfbG9naWNhbF9zbG90cy5wbApp bmRleCAwYWIzNjgyNDdiLi44M2Q3MWMzMDg0IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3Jh ZGUvdC8wMDNfbG9naWNhbF9zbG90cy5wbAorKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvdC8wMDNf bG9naWNhbF9zbG90cy5wbApAQCAtMTcyLDcgKzE3Miw3IEBAICRzdWItPnN0YXJ0OwogJHN1Yi0+ c2FmZV9wc3FsKAogCSdwb3N0Z3JlcycsIHFxWwogCUNSRUFURSBUQUJMRSB0YmwgKGEgaW50KTsK LQlDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nfc3ViIENPTk5FQ1RJT04gJyRvbGRfY29ubnN0 cicgUFVCTElDQVRJT04gcmVncmVzc19wdWIgV0lUSCAodHdvX3BoYXNlID0gJ3RydWUnKQorCUNS RUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19zdWIgQ09OTkVDVElPTiAnJG9sZF9jb25uc3RyJyBQ VUJMSUNBVElPTiByZWdyZXNzX3B1YiBXSVRIICh0d29fcGhhc2UgPSAndHJ1ZScsIGZhaWxvdmVy ID0gJ3RydWUnKQogXSk7CiAkc3ViLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkb2xkcHVi LCAncmVncmVzc19zdWInKTsKIApAQCAtMTkyLDggKzE5Miw4IEBAIGNvbW1hbmRfb2soW0BwZ191 cGdyYWRlX2NtZF0sICdydW4gb2YgcGdfdXBncmFkZSBvZiBvbGQgY2x1c3RlcicpOwogIyBDaGVj ayB0aGF0IHRoZSBzbG90ICdyZWdyZXNzX3N1YicgaGFzIG1pZ3JhdGVkIHRvIHRoZSBuZXcgY2x1 c3RlcgogJG5ld3B1Yi0+c3RhcnQ7CiBteSAkcmVzdWx0ID0gJG5ld3B1Yi0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCi0JIlNFTEVDVCBzbG90X25hbWUsIHR3b19waGFzZSBGUk9NIHBnX3JlcGxpY2F0 aW9uX3Nsb3RzIik7Ci1pcygkcmVzdWx0LCBxcShyZWdyZXNzX3N1Ynx0KSwgJ2NoZWNrIHRoZSBz bG90IGV4aXN0cyBvbiBuZXcgY2x1c3RlcicpOworCSJTRUxFQ1Qgc2xvdF9uYW1lLCB0d29fcGhh c2UsIGZhaWxvdmVyIEZST00gcGdfcmVwbGljYXRpb25fc2xvdHMiKTsKK2lzKCRyZXN1bHQsIHFx KHJlZ3Jlc3Nfc3VifHR8dCksICdjaGVjayB0aGUgc2xvdCBleGlzdHMgb24gbmV3IGNsdXN0ZXIn KTsKIAogIyBVcGRhdGUgdGhlIGNvbm5lY3Rpb24KIG15ICRuZXdfY29ubnN0ciA9ICRuZXdwdWIt PmNvbm5zdHIgLiAnIGRibmFtZT1wb3N0Z3Jlcyc7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDljZDg3ODMzMjUuLmI2 YTRlYjFkNTYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9i aW4vcHNxbC9kZXNjcmliZS5jCkBAIC02NTcxLDcgKzY1NzEsOCBAQCBkZXNjcmliZVN1YnNjcmlw dGlvbnMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCVBHcmVzdWx0ICAgKnJl czsKIAlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OwogCXN0YXRpYyBjb25zdCBib29s IHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCi0JZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZSwgZmFsc2V9OworCQlmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKwlmYWxzZX07CiAKIAlpZiAocHNldC5zdmVyc2lv biA8IDEwMDAwMCkKIAl7CkBAIC02NjM1LDYgKzY2MzYsMTEgQEAgZGVzY3JpYmVTdWJzY3JpcHRp b25zKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJCQkgIGdldHRleHRf bm9vcCgiUGFzc3dvcmQgcmVxdWlyZWQiKSwKIAkJCQkJCQkgIGdldHRleHRfbm9vcCgiUnVuIGFz IG93bmVyPyIpKTsKIAorCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNzAwMDApCisJCQlhcHBlbmRQ UUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJCSAgIiwgc3ViZmFpbG92ZXIgQVMgXCIlc1wiXG4iLAor CQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJGYWlsb3ZlciIpKTsKKwogCQlhcHBlbmRQUUV4cEJ1ZmZl cigmYnVmLAogCQkJCQkJICAiLCAgc3Vic3luY2NvbW1pdCBBUyBcIiVzXCJcbiIKIAkJCQkJCSAg IiwgIHN1YmNvbm5pbmZvIEFTIFwiJXNcIlxuIiwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwppbmRleCBhZGE3MTFk MDJmLi4xNTFhNTIxMWVlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMK KysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBAIC0xOTQzLDcgKzE5NDMsNyBAQCBw c3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQlD T01QTEVURV9XSVRIKCIoIiwgIlBVQkxJQ0FUSU9OIik7CiAJLyogQUxURVIgU1VCU0NSSVBUSU9O IDxuYW1lPiBTRVQgKCAqLwogCWVsc2UgaWYgKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJTVUJTQ1JJ UFRJT04iLCBNYXRjaEFueSkgJiYgVGFpbE1hdGNoZXMoIlNFVCIsICIoIikpCi0JCUNPTVBMRVRF X1dJVEgoImJpbmFyeSIsICJkaXNhYmxlX29uX2Vycm9yIiwgIm9yaWdpbiIsCisJCUNPTVBMRVRF X1dJVEgoImJpbmFyeSIsICJkaXNhYmxlX29uX2Vycm9yIiwgImZhaWxvdmVyIiwgIm9yaWdpbiIs CiAJCQkJCSAgInBhc3N3b3JkX3JlcXVpcmVkIiwgInJ1bl9hc19vd25lciIsICJzbG90X25hbWUi LAogCQkJCQkgICJzdHJlYW1pbmciLCAic3luY2hyb25vdXNfY29tbWl0Iik7CiAJLyogQUxURVIg U1VCU0NSSVBUSU9OIDxuYW1lPiBTS0lQICggKi8KQEAgLTMzNDAsNyArMzM0MCw3IEBAIHBzcWxf Y29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJLyogQ29t cGxldGUgIkNSRUFURSBTVUJTQ1JJUFRJT04gPG5hbWU+IC4uLiAgV0lUSCAoIDxvcHQ+IiAqLwog CWVsc2UgaWYgKEhlYWRNYXRjaGVzKCJDUkVBVEUiLCAiU1VCU0NSSVBUSU9OIikgJiYgVGFpbE1h dGNoZXMoIldJVEgiLCAiKCIpKQogCQlDT01QTEVURV9XSVRIKCJiaW5hcnkiLCAiY29ubmVjdCIs ICJjb3B5X2RhdGEiLCAiY3JlYXRlX3Nsb3QiLAotCQkJCQkgICJkaXNhYmxlX29uX2Vycm9yIiwg ImVuYWJsZWQiLCAib3JpZ2luIiwKKwkJCQkJICAiZGlzYWJsZV9vbl9lcnJvciIsICJlbmFibGVk IiwgImZhaWxvdmVyIiwgIm9yaWdpbiIsCiAJCQkJCSAgInBhc3N3b3JkX3JlcXVpcmVkIiwgInJ1 bl9hc19vd25lciIsICJzbG90X25hbWUiLAogCQkJCQkgICJzdHJlYW1pbmciLCAic3luY2hyb25v dXNfY29tbWl0IiwgInR3b19waGFzZSIpOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3N1YnNjcmlwdGlvbi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRp b24uaAppbmRleCBhYjIwNmJhZDdkLi40ZDBlMzY0NjI0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf c3Vic2NyaXB0aW9uLmgKQEAgLTkzLDYgKzkzLDExIEBAIENBVEFMT0cocGdfc3Vic2NyaXB0aW9u LDYxMDAsU3Vic2NyaXB0aW9uUmVsYXRpb25JZCkgQktJX1NIQVJFRF9SRUxBVElPTiBCS0lfUk9X CiAJYm9vbAkJc3VicnVuYXNvd25lcjsJLyogVHJ1ZSBpZiByZXBsaWNhdGlvbiBzaG91bGQgZXhl Y3V0ZSBhcyB0aGUKIAkJCQkJCQkJICogc3Vic2NyaXB0aW9uIG93bmVyICovCiAKKwlib29sCQlz dWJmYWlsb3ZlcjsJLyogVHJ1ZSBpZiB0aGUgYXNzb2NpYXRlZCByZXBsaWNhdGlvbiBzbG90cwor CQkJCQkJCQkgKiAoaS5lLiB0aGUgbWFpbiBzbG90IGFuZCB0aGUgdGFibGUgc3luYworCQkJCQkJ CQkgKiBzbG90cykgaW4gdGhlIHVwc3RyZWFtIGRhdGFiYXNlIGFyZSBlbmFibGVkCisJCQkJCQkJ CSAqIHRvIGJlIHN5bmNocm9uaXplZCB0byB0aGUgc3RhbmRieXMuICovCisKICNpZmRlZiBDQVRB TE9HX1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwogCS8q IENvbm5lY3Rpb24gc3RyaW5nIHRvIHRoZSBwdWJsaXNoZXIgKi8KIAl0ZXh0CQlzdWJjb25uaW5m byBCS0lfRk9SQ0VfTk9UX05VTEw7CkBAIC0xNDgsNiArMTUzLDEwIEBAIHR5cGVkZWYgc3RydWN0 IFN1YnNjcmlwdGlvbgogCUxpc3QJICAgKnB1YmxpY2F0aW9uczsJLyogTGlzdCBvZiBwdWJsaWNh dGlvbiBuYW1lcyB0byBzdWJzY3JpYmUgdG8gKi8KIAljaGFyCSAgICpvcmlnaW47CQkJLyogT25s eSBwdWJsaXNoIGRhdGEgb3JpZ2luYXRpbmcgZnJvbSB0aGUKIAkJCQkJCQkJICogc3BlY2lmaWVk IG9yaWdpbiAqLworCWJvb2wJCWZhaWxvdmVyOwkJLyogVHJ1ZSBpZiB0aGUgYXNzb2NpYXRlZCBy ZXBsaWNhdGlvbiBzbG90cworCQkJCQkJCQkgKiAoaS5lLiB0aGUgbWFpbiBzbG90IGFuZCB0aGUg dGFibGUgc3luYworCQkJCQkJCQkgKiBzbG90cykgaW4gdGhlIHVwc3RyZWFtIGRhdGFiYXNlIGFy ZSBlbmFibGVkCisJCQkJCQkJCSAqIHRvIGJlIHN5bmNocm9uaXplZCB0byB0aGUgc3RhbmRieXMu ICovCiB9IFN1YnNjcmlwdGlvbjsKIAogLyogRGlzYWxsb3cgc3RyZWFtaW5nIGluLXByb2dyZXNz IHRyYW5zYWN0aW9ucy4gKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUwX3N0 YW5kYnlfZmFpbG92ZXJfc2xvdHNfc3luYy5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUwX3N0 YW5kYnlfZmFpbG92ZXJfc2xvdHNfc3luYy5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwLi42NDYyOTNjMzllCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVjb3Zl cnkvdC8wNTBfc3RhbmRieV9mYWlsb3Zlcl9zbG90c19zeW5jLnBsCkBAIC0wLDAgKzEsODkgQEAK KworIyBDb3B5cmlnaHQgKGMpIDIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdy b3VwCisKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3M7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6 Q2x1c3RlcjsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczsKK3VzZSBUZXN0OjpNb3JlOwor CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBU ZXN0IHRoYXQgd2hlbiBhIHN1YnNjcmlwdGlvbiB3aXRoIGZhaWxvdmVyIGVuYWJsZWQgaXMgY3Jl YXRlZCwgaXQgd2lsbCBhbHRlcgorIyB0aGUgZmFpbG92ZXIgcHJvcGVydHkgb2YgdGhlIGNvcnJl c3BvbmRpbmcgc2xvdCBvbiB0aGUgcHVibGlzaGVyLgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBDcmVhdGUgcHVibGlzaGVyCitteSAkcHVi bGlzaGVyID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdwdWJsaXNoZXInKTsKKyRw dWJsaXNoZXItPmluaXQoYWxsb3dzX3N0cmVhbWluZyA9PiAnbG9naWNhbCcpOworJHB1Ymxpc2hl ci0+c3RhcnQ7CisKKyRwdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUg UFVCTElDQVRJT04gcmVncmVzc19teXB1YiBGT1IgQUxMIFRBQkxFUzsiCispOworCitteSAkcHVi bGlzaGVyX2Nvbm5zdHIgPSAkcHVibGlzaGVyLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMn OworCisjIENyZWF0ZSBhIHN1YnNjcmliZXIgbm9kZSwgd2FpdCBmb3Igc3luYyB0byBjb21wbGV0 ZQorbXkgJHN1YnNjcmliZXIxID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdzdWJz Y3JpYmVyMScpOworJHN1YnNjcmliZXIxLT5pbml0OworJHN1YnNjcmliZXIxLT5zdGFydDsKKwor IyBDcmVhdGUgYSBzbG90IG9uIHRoZSBwdWJsaXNoZXIgd2l0aCBmYWlsb3ZlciBkaXNhYmxlZAor JHB1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCAnaW5pdCcgRlJPTSBw Z19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KCdsc3ViMV9zbG90JywgJ3Bnb3V0cHV0 JywgZmFsc2UsIGZhbHNlLCBmYWxzZSk7IgorKTsKKworIyBDb25maXJtIHRoYXQgdGhlIGZhaWxv dmVyIGZsYWcgb24gdGhlIHNsb3QgaXMgdHVybmVkIG9mZgoraXMoICRwdWJsaXNoZXItPnNhZmVf cHNxbCgKKwkJJ3Bvc3RncmVzJywKKwkJcXtTRUxFQ1QgZmFpbG92ZXIgZnJvbSBwZ19yZXBsaWNh dGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAnbHN1YjFfc2xvdCc7fQorCSksCisJImYiLAor CSdsb2dpY2FsIHNsb3QgaGFzIGZhaWxvdmVyIGZhbHNlIG9uIHRoZSBwdWJsaXNoZXInKTsKKwor IyBDcmVhdGUgYSBzdWJzY3JpcHRpb24gKHVzaW5nIHRoZSBzYW1lIHNsb3QgY3JlYXRlZCBhYm92 ZSkgdGhhdCBlbmFibGVzCisjIGZhaWxvdmVyLgorJHN1YnNjcmliZXIxLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX215c3ViMSBDT05ORUNUSU9O ICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfbXlwdWIgV0lUSCAoc2xv dF9uYW1lID0gbHN1YjFfc2xvdCwgY29weV9kYXRhPWZhbHNlLCBmYWlsb3ZlciA9IHRydWUsIGNy ZWF0ZV9zbG90ID0gZmFsc2UsIGVuYWJsZWQgPSBmYWxzZSk7IgorKTsKKworIyBDb25maXJtIHRo YXQgdGhlIGZhaWxvdmVyIGZsYWcgb24gdGhlIHNsb3QgaGFzIG5vdyBiZWVuIHR1cm5lZCBvbgor aXMoICRwdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkJJ3Bvc3RncmVzJywKKwkJcXtTRUxFQ1QgZmFp bG92ZXIgZnJvbSBwZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAnbHN1YjFf c2xvdCc7fQorCSksCisJInQiLAorCSdsb2dpY2FsIHNsb3QgaGFzIGZhaWxvdmVyIHRydWUgb24g dGhlIHB1Ymxpc2hlcicpOworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIyBUZXN0IHRoYXQgY2hhbmdpbmcgdGhlIGZhaWxvdmVyIHByb3BlcnR5 IG9mIGEgc3Vic2NyaXB0aW9uIHVwZGF0ZXMgdGhlCisjIGNvcnJlc3BvbmRpbmcgZmFpbG92ZXIg cHJvcGVydHkgb2YgdGhlIHNsb3QuCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworCisjIERpc2FibGUgZmFpbG92ZXIKKyRzdWJzY3JpYmVyMS0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX215c3ViMSBT RVQgKGZhaWxvdmVyID0gZmFsc2UpIik7CisKKyMgQ29uZmlybSB0aGF0IHRoZSBmYWlsb3ZlciBm bGFnIG9uIHRoZSBzbG90IGhhcyBub3cgYmVlbiB0dXJuZWQgb2ZmCitpcyggJHB1Ymxpc2hlci0+ c2FmZV9wc3FsKAorCQkncG9zdGdyZXMnLAorCQlxe1NFTEVDVCBmYWlsb3ZlciBmcm9tIHBnX3Jl cGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9ICdsc3ViMV9zbG90Jzt9CisJKSwKKwki ZiIsCisJJ2xvZ2ljYWwgc2xvdCBoYXMgZmFpbG92ZXIgZmFsc2Ugb24gdGhlIHB1Ymxpc2hlcicp OworCisjIEVuYWJsZSBmYWlsb3ZlcgorJHN1YnNjcmliZXIxLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfbXlzdWIxIFNFVCAoZmFpbG92ZXIgPSB0 cnVlKSIpOworCisjIENvbmZpcm0gdGhhdCB0aGUgZmFpbG92ZXIgZmxhZyBvbiB0aGUgc2xvdCBo YXMgbm93IGJlZW4gdHVybmVkIG9uCitpcyggJHB1Ymxpc2hlci0+c2FmZV9wc3FsKAorCQkncG9z dGdyZXMnLAorCQlxe1NFTEVDVCBmYWlsb3ZlciBmcm9tIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdI RVJFIHNsb3RfbmFtZSA9ICdsc3ViMV9zbG90Jzt9CisJKSwKKwkidCIsCisJJ2xvZ2ljYWwgc2xv dCBoYXMgZmFpbG92ZXIgdHJ1ZSBvbiB0aGUgcHVibGlzaGVyJyk7CisKKyRzdWJzY3JpYmVyMS0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX215c3ViMSIp OworCitkb25lX3Rlc3RpbmcoKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc3Vic2NyaXB0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0 aW9uLm91dAppbmRleCBiMTVlZGRiZmYzLi41ZmEyMzBhODk1IDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CkBAIC0xMTYsMTggKzExNiwxOCBAQCBDUkVBVEUg U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjQgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0JyBQVQogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0 IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11 c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNj cmlwdGlvbiwgYW5kIHJlZnJlc2ggdGhlIHN1YnNjcmlwdGlvbi4KIFxkUnMrIHJlZ3Jlc3NfdGVz dHN1YjQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25l ciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcg fCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3Jk IHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAg IENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3Rz dWI0IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8 IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAg IHwgbm9uZSAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgb2ZmICAgICAg ICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vi c2NyaXB0aW9ucworICAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAg IHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNl IGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8 IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAg IENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJl Z3Jlc3NfdGVzdHN1YjQgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0 ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgICAgfCBub25lICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg fCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi NCBTRVQgKG9yaWdpbiA9IGFueSk7CiBcZFJzKyByZWdyZXNzX3Rlc3RzdWI0Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0 aW9ucwotICAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5h YmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1p dCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBh cyBvd25lcj8gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAg ICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViNCB8IHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAg ICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAg ICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJs aWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxl IG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwg RmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAg ICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWI0IHwg cmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAg ICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55 ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBvZmYg ICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJv dykKIAogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViMzsKQEAgLTE0NSwxMCArMTQ1 LDEwIEBAIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZm9v YmFyJzsKIEVSUk9SOiAgaW52YWxpZCBjb25uZWN0aW9uIHN0cmluZyBzeW50YXg6IG1pc3Npbmcg Ij0iIGFmdGVyICJmb29iYXIiIGluIGNvbm5lY3Rpb24gaW5mbyBzdHJpbmcKIAogXGRScysKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBz dWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFz ZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQg fCBSdW4gYXMgb3duZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8g ICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVz c19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9m ZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwg dCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwg ZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisg ICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQ dWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNh YmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/ IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAg ICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8 IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAg ICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFu eSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgb2Zm ICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSBy b3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIFBVQkxJQ0FUSU9O IHRlc3RwdWIyLCB0ZXN0cHViMyBXSVRIIChyZWZyZXNoID0gZmFsc2UpOwpAQCAtMTU3LDEwICsx NTcsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFt ZSA9ICduZXduYW1lJyk7CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAo cGFzc3dvcmRfcmVxdWlyZWQgPSBmYWxzZSk7CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190 ZXN0c3ViIFNFVCAocnVuX2FzX293bmVyID0gdHJ1ZSk7CiBcZFJzKwotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRp b25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJs ZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNl IGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8 IFJ1biBhcyBvd25lcj8gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8g ICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3Vi IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1 YjN9IHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBhbnkgICAgfCBmICAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgfCBvZmYg ICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8wCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIg ICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJl YW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBh c3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMg Y29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgb2Zm ICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCBm ICAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAg ICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAwLzAKICgxIHJvdykKIAog QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHBhc3N3b3JkX3JlcXVpcmVk ID0gdHJ1ZSk7CkBAIC0xNzYsMTAgKzE3NiwxMCBAQCBFUlJPUjogIHVucmVjb2duaXplZCBzdWJz Y3JpcHRpb24gcGFyYW1ldGVyOiAiY3JlYXRlX3Nsb3QiCiAtLSBvawogQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1YiBTS0lQIChsc24gPSAnMC8xMjM0NScpOwogXGRScysKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg c3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8 IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQg cmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAg IENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jl c3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3Rw dWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAg ICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8 IDAvMTIzNDUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8 IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9y IHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIg fCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tp cCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30g fCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAg ICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAg IHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IDAv MTIzNDUKICgxIHJvdykKIAogLS0gb2sgLSB3aXRoIGxzbiA9IE5PTkUKQEAgLTE4OCwxMCArMTg4 LDEwIEBAIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0tJUCAobHNuID0gTk9O RSk7CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNLSVAgKGxzbiA9ICcwLzAn KTsKIEVSUk9SOiAgaW52YWxpZCBXQUwgbG9jYXRpb24gKExTTik6IDAvMAogXGRScysKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg c3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8 IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQg cmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAg IENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jl c3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3Rw dWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAg ICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8 IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmlu YXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBP cmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5 bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExT TiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jl c3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYg ICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwg YW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBv ZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8wCiAo MSByb3cpCiAKIEJFR0lOOwpAQCAtMjIzLDEwICsyMjMsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfdGVzdHN1Yl9mb28gU0VUIChzeW5jaHJvbm91c19jb21taXQgPSBmb29iYXIpOwog RVJST1I6ICBpbnZhbGlkIHZhbHVlIGZvciBwYXJhbWV0ZXIgInN5bmNocm9ub3VzX2NvbW1pdCI6 ICJmb29iYXIiCiBISU5UOiAgQXZhaWxhYmxlIHZhbHVlczogbG9jYWwsIHJlbW90ZV93cml0ZSwg cmVtb3RlX2FwcGx5LCBvbiwgb2ZmLgogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAg ICAgIE5hbWUgICAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwg ICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21t aXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4g YXMgb3duZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAg ICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWJf Zm9vIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVz dHB1YjN9IHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBs b2NhbCAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8wCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgICBOYW1lICAgICAgICAgfCAgICAgICAg ICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5h cnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9y aWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3lu Y2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNO IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1Yl9mb28g fCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHVi M30gfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAg ICAgIHwgbG9jYWwgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8 IDAvMAogKDEgcm93KQogCiAtLSByZW5hbWUgYmFjayB0byBrZWVwIHRoZSByZXN0IHNpbXBsZQpA QCAtMjU1LDE5ICsyNTUsMTkgQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIg Q09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBz dWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8g aW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGlj YXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCByZWZyZXNoIHRoZSBzdWJz Y3JpcHRpb24uCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwg U3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4g fCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5jaHJvbm91cyBjb21taXQg fCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdy ZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0 cHVifSAgIHwgdCAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBv ZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdv LXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1 aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAg ICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t CisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAg fCB7dGVzdHB1Yn0gICB8IHQgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAg ICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YiBTRVQgKGJpbmFyeSA9IGZhbHNlKTsKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rl c3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAg ICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVi bGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJs ZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8 IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAg TFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3Vz ZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2Rv ZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8 ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5h cnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9y aWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3lu Y2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04g CistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlw dGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwg ZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8 IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBEUk9QIFNVQlND UklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CkBAIC0yNzksMjcgKzI3OSwyNyBAQCBDUkVBVEUgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlz IG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3Qg bWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlw dGlvbiwgYW5kIHJlZnJlc2ggdGhlIHN1YnNjcmlwdGlvbi4KIFxkUnMrCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9u cwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVk IHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwg RGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93 bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8 IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdy ZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24g fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVy IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tp cCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAg ICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAg ICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRF UiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc3RyZWFtaW5nID0gcGFyYWxsZWwp OwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWlu ZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dv cmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAg ICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0 c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8 IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAg IHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgb2ZmICAgICAg ICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJz Y3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBj b21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBS dW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jl c3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3Rw dWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYg ICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0 IHwgMC8wCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VU IChzdHJlYW1pbmcgPSBmYWxzZSk7CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi IFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5h bWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0 aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5j aHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAK LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwg ZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAg ICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwg U3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4g fCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25f dXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogLS0gZmFpbCAtIHB1Ymxp Y2F0aW9uIGFscmVhZHkgZXhpc3RzCkBAIC0zMTQsMTAgKzMxNCwxMCBAQCBBTFRFUiBTVUJTQ1JJ UFRJT04gcmVncmVzc190ZXN0c3ViIEFERCBQVUJMSUNBVElPTiB0ZXN0cHViMSwgdGVzdHB1YjIg V0lUSCAocmVmcgogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBBREQgUFVCTElD QVRJT04gdGVzdHB1YjEsIHRlc3RwdWIyIFdJVEggKHJlZnJlc2ggPSBmYWxzZSk7CiBFUlJPUjog IHB1YmxpY2F0aW9uICJ0ZXN0cHViMSIgaXMgYWxyZWFkeSBpbiBzdWJzY3JpcHRpb24gInJlZ3Jl c3NfdGVzdHN1YiIKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAg ICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgICAgIFB1Ymxp Y2F0aW9uICAgICAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwg RGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93 bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8 IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViLHRlc3RwdWIxLHRl c3RwdWIyfSB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg b2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICAgICAgUHVibGljYXRpb24gICAgICAgICB8 IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9y IHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIg fCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lw IExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3Rz dWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViLHRlc3Rw dWIxLHRlc3RwdWIyfSB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAg ICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogLS0gZmFpbCAtIHB1YmxpY2F0aW9uIHVzZWQgbW9y ZSB0aGFuIG9uY2UKQEAgLTMzMiwxMCArMzMyLDEwIEBAIEVSUk9SOiAgcHVibGljYXRpb24gInRl c3RwdWIzIiBpcyBub3QgaW4gc3Vic2NyaXB0aW9uICJyZWdyZXNzX3Rlc3RzdWIiCiAtLSBvayAt IGRlbGV0ZSBwdWJsaWNhdGlvbnMKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIg RFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViMSwgdGVzdHB1YjIgV0lUSCAocmVmcmVzaCA9IGZhbHNl KTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBP d25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1p bmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3 b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAg ICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVz dHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAg fCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAg ICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IG9mZiAgICAg ICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vi c2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAg fCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2Ug Y29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwg UnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAg Q29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdy ZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0 cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBm ICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCB8IDAvMAogKDEgcm93KQogCiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CkBA IC0zNzEsMTAgKzM3MSwxMCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBD T05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1 YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBp bml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNh dGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIHJlZnJlc2ggdGhlIHN1YnNj cmlwdGlvbi4KIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBT dHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8 IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8 ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jl c3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3Rw dWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBwICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IG9m ZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28t cGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVp cmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAg ICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K KyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8 IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgcCAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCB8IDAvMAogKDEgcm93KQogCiAtLWZhaWwgLSBhbHRlciBvZiB0d29fcGhhc2Ugb3B0 aW9uIG5vdCBzdXBwb3J0ZWQuCkBAIC0zODMsMTAgKzM4MywxMCBAQCBFUlJPUjogIHVucmVjb2du aXplZCBzdWJzY3JpcHRpb24gcGFyYW1ldGVyOiAidHdvX3BoYXNlIgogLS0gYnV0IGNhbiBhbHRl ciBzdHJlYW1pbmcgd2hlbiB0d29fcGhhc2UgZW5hYmxlZAogQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YiBTRVQgKHN0cmVhbWluZyA9IHRydWUpOwogXGRScysKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRp b25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJs ZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQg fCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMg b3duZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAg IHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9uICAgICAgICB8 IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1l ICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlv biB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVy cm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92 ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBT a2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAg ICAgICAgfCBwICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQg ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAg ICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIEFM VEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsK QEAgLTM5NiwxMCArMzk2LDEwIEBAIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi IENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCCiBXQVJOSU5HOiAg c3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRv IGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxp Y2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgcmVmcmVzaCB0aGUgc3Vi c2NyaXB0aW9uLgogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAg ICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8 IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2lu IHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgU3luY2hyb25vdXMgY29tbWl0 IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVn cmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1Yn0gICB8IGYgICAgICB8IG9uICAgICAgICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg b2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3 by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVx dWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAg ICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAg IHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBwICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rl c3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKQEAgLTQxMiwxOCArNDEyLDMxIEBAIENSRUFU RSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBi dXQgaXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3Ug bXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vi c2NyaXB0aW9uLCBhbmQgcmVmcmVzaCB0aGUgc3Vic2NyaXB0aW9uLgogXGRScysKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3Jp cHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVu YWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21t aXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4g YXMgb3duZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAg ICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJz Y3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAg ICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1l PXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBO YW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNh dGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9u IGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFp bG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAg fCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jl c3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBv ZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8 IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAg ICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAK IEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChkaXNhYmxlX29uX2Vycm9y ID0gdHJ1ZSk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwg U3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4g fCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5jaHJvbm91cyBjb21taXQg fCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdy ZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0 cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IHQgICAgICAg ICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBv ZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdv LXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1 aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAg ICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t CisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAg fCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCB0 ICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAg ICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QgfCAwLzAKKygxIHJvdykKKworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190 ZXN0c3ViOworLS0gdGVzdCBmYWlsb3ZlciBvcHRpb24KK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVn cmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVC TElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGZhaWxvdmVyID0gdHJ1ZSk7 CitXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3Rl ZAorSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVh dGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgcmVm cmVzaCB0aGUgc3Vic2NyaXB0aW9uLgorXGRScysKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAg IE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1Ymxp Y2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBG YWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAg ICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8 IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykK IAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5P TkUpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbCBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwKaW5kZXggNDQ0ZTU2M2ZmMy4u ZTQ2MDExNThiMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9u LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsCkBAIC0yOTAs NiArMjkwLDE0IEBAIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChkaXNh YmxlX29uX2Vycm9yID0gdHJ1ZSk7CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi IFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWI7CiAKKy0tIHRlc3QgZmFpbG92ZXIgb3B0aW9uCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJ Q0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBmYWlsb3ZlciA9IHRydWUpOwor CitcZFJzKworCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9u YW1lID0gTk9ORSk7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CisKIC0tIGxl dCdzIGRvIHNvbWUgdGVzdHMgd2l0aCBwZ19jcmVhdGVfc3Vic2NyaXB0aW9uIHJhdGhlciB0aGFu IHN1cGVydXNlcgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyMzsKIAotLSAKMi4zMC4wLndpbmRvd3MuMgoK --_008_OS0PR01MB571623B1D01003F99A7BB983947A2OS0PR01MB5716jpnp_ Content-Type: application/octet-stream; name="v69-0001-Allow-setting-failover-property-in-the-replicati.patch" Content-Description: v69-0001-Allow-setting-failover-property-in-the-replicati.patch Content-Disposition: attachment; filename="v69-0001-Allow-setting-failover-property-in-the-replicati.patch"; size=19991; creation-date="Thu, 25 Jan 2024 13:06:42 GMT"; modification-date="Thu, 25 Jan 2024 13:11:49 GMT" Content-Transfer-Encoding: base64 RnJvbSA4ZmI0MTA1NGJmZTliMDRkZDQyNDQ3MzRiY2Y3OWRiMjljNWY3MTgwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIb3UgWmhpamllIDxob3V6ai5mbnN0QGNuLmZ1aml0c3UuY29t PgpEYXRlOiBXZWQsIDI0IEphbiAyMDI0IDIwOjA0OjE4ICswODAwClN1YmplY3Q6IFtQQVRDSCB2 NjkgMS83XSBBbGxvdyBzZXR0aW5nIGZhaWxvdmVyIHByb3BlcnR5IGluIHRoZSByZXBsaWNhdGlv bgogY29tbWFuZC4KClRoaXMgY29tbWl0IGltcGxlbWVudHMgYSBuZXcgcmVwbGljYXRpb24gY29t bWFuZCBjYWxsZWQgQUxURVJfUkVQTElDQVRJT05fU0xPVAphbmQgYSBjb3JyZXNwb25kaW5nIHdh bHJlY2VpdmVyIEFQSSBmdW5jdGlvbiBuYW1lZCB3YWxyY3ZfYWx0ZXJfc2xvdC4KQWRkaXRpb25h bGx5LCB0aGUgQ1JFQVRFX1JFUExJQ0FUSU9OX1NMT1QgY29tbWFuZCBoYXMgYmVlbiBleHRlbmRl ZCB0byBzdXBwb3J0CnRoZSBmYWlsb3ZlciBvcHRpb24uCgpUaGVzZSBuZXcgYWRkaXRpb25zIGFs bG93IHRoZSBtb2RpZmljYXRpb24gb2YgdGhlIGZhaWxvdmVyIHByb3BlcnR5IG9mIGEKcmVwbGlj YXRpb24gc2xvdCBvbiB0aGUgcHVibGlzaGVyLiBBIHN1YnNlcXVlbnQgY29tbWl0IHdpbGwgbWFr ZSB1c2Ugb2YgdGhlc2UKY29tbWFuZHMgaW4gc3Vic2NyaXB0aW9uIGNvbW1hbmRzLgotLS0KIGRv Yy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sICAgICAgICAgICAgICAgICAgICB8IDUwICsrKysrKysr KysrKysrKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jICAgICAgIHwg IDIgKy0KIC4uLi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2FscmVjZWl2ZXIuYyAgICAgICB8IDM4 ICsrKysrKysrKysrLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMu YyAgIHwgIDEgKwogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcmVwbF9ncmFtLnkgICAgICAgICAg IHwgMjAgKysrKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9yZXBsX3NjYW5uZXIubCAgICAg ICAgfCAgMiArCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMgICAgICAgICAgICAgICAg fCAyNSArKysrKysrKwogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuYyAgICAg ICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jICAgICAgICAg ICB8IDYyICsrKysrKysrKysrKysrKysrKy0KIHNyYy9pbmNsdWRlL25vZGVzL3JlcGxub2Rlcy5o ICAgICAgICAgICAgICAgICB8IDEyICsrKysKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3Qu aCAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHJlY2Vp dmVyLmggICAgICAgICB8IDE4ICsrKysrLQogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxp c3QgICAgICAgICAgICAgIHwgIDIgKwogMTMgZmlsZXMgY2hhbmdlZCwgMjIzIGluc2VydGlvbnMo KyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9wcm90b2NvbC5z Z21sIGIvZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwKaW5kZXggNmMzZThhNjMxZC4uYmI0ZmVm MWY1MSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL3Byb3RvY29sLnNnbWwKQEAgLTIwNjAsNiArMjA2MCwxNiBAQCBwc3FsICJkYm5hbWU9 cG9zdGdyZXMgcmVwbGljYXRpb249ZGF0YWJhc2UiIC1jICJJREVOVElGWV9TWVNURU07IgogICAg ICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgIDwvdmFybGlzdGVudHJ5 PgorCisgICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgPHRlcm0+PGxpdGVyYWw+RkFJTE9W RVIgWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Ym9vbGVhbjwvcmVwbGFjZWFibGU+ IF08L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFyYT4K KyAgICAgICAgICBJZiB0cnVlLCB0aGUgc2xvdCBpcyBlbmFibGVkIHRvIGJlIHN5bmNlZCB0byB0 aGUgc3RhbmRieXMuCisgICAgICAgICAgVGhlIGRlZmF1bHQgaXMgZmFsc2UuCisgICAgICAgICA8 L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+CiAgICAg ICA8L3ZhcmlhYmxlbGlzdD4KIAogICAgICAgPHBhcmE+CkBAIC0yMTI0LDYgKzIxMzQsNDYgQEAg cHNxbCAiZGJuYW1lPXBvc3RncmVzIHJlcGxpY2F0aW9uPWRhdGFiYXNlIiAtYyAiSURFTlRJRllf U1lTVEVNOyIKICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgIDx2 YXJsaXN0ZW50cnkgaWQ9InByb3RvY29sLXJlcGxpY2F0aW9uLWFsdGVyLXJlcGxpY2F0aW9uLXNs b3QiIHhyZWZsYWJlbD0iQUxURVJfUkVQTElDQVRJT05fU0xPVCI+CisgICAgIDx0ZXJtPjxsaXRl cmFsPkFMVEVSX1JFUExJQ0FUSU9OX1NMT1Q8L2xpdGVyYWw+IDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5zbG90X25hbWU8L3JlcGxhY2VhYmxlPiAoIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5vcHRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkKKyAgICAgIDxpbmRleHRl cm0+PHByaW1hcnk+QUxURVJfUkVQTElDQVRJT05fU0xPVDwvcHJpbWFyeT48L2luZGV4dGVybT4K KyAgICAgPC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBDaGFu Z2UgdGhlIGRlZmluaXRpb24gb2YgYSByZXBsaWNhdGlvbiBzbG90LgorICAgICAgIFNlZSA8eHJl ZiBsaW5rZW5kPSJzdHJlYW1pbmctcmVwbGljYXRpb24tc2xvdHMiLz4gZm9yIG1vcmUgYWJvdXQK KyAgICAgICByZXBsaWNhdGlvbiBzbG90cy4gVGhpcyBjb21tYW5kIGlzIGN1cnJlbnRseSBvbmx5 IHN1cHBvcnRlZCBmb3IgbG9naWNhbAorICAgICAgIHJlcGxpY2F0aW9uIHNsb3RzLgorICAgICAg PC9wYXJhPgorCisgICAgICA8dmFyaWFibGVsaXN0PgorICAgICAgIDx2YXJsaXN0ZW50cnk+Cisg ICAgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zbG90X25hbWU8L3Jl cGxhY2VhYmxlPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+Cisg ICAgICAgICAgVGhlIG5hbWUgb2YgdGhlIHNsb3QgdG8gYWx0ZXIuIE11c3QgYmUgYSB2YWxpZCBy ZXBsaWNhdGlvbiBzbG90CisgICAgICAgICAgbmFtZSAoc2VlIDx4cmVmIGxpbmtlbmQ9InN0cmVh bWluZy1yZXBsaWNhdGlvbi1zbG90cy1tYW5pcHVsYXRpb24iLz4pLgorICAgICAgICAgPC9wYXJh PgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAgPC92 YXJpYWJsZWxpc3Q+CisKKyAgICAgIDxwYXJhPlRoZSBmb2xsb3dpbmcgb3B0aW9uIGlzIHN1cHBv cnRlZDo8L3BhcmE+CisKKyAgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgICAgPHZhcmxpc3RlbnRy eT4KKyAgICAgICAgPHRlcm0+PGxpdGVyYWw+RkFJTE9WRVIgWyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+Ym9vbGVhbjwvcmVwbGFjZWFibGU+IF08L2xpdGVyYWw+PC90ZXJtPgorICAg ICAgICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBJZiB0cnVlLCB0aGUg c2xvdCBpcyBlbmFibGVkIHRvIGJlIHN5bmNlZCB0byB0aGUgc3RhbmRieXMuCisgICAgICAgICA8 L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAg ICA8L3ZhcmlhYmxlbGlzdD4KKworICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5 PgorCiAgICAgPHZhcmxpc3RlbnRyeSBpZD0icHJvdG9jb2wtcmVwbGljYXRpb24tcmVhZC1yZXBs aWNhdGlvbi1zbG90Ij4KICAgICAgPHRlcm0+PGxpdGVyYWw+UkVBRF9SRVBMSUNBVElPTl9TTE9U PC9saXRlcmFsPiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2xvdF9uYW1lPC9yZXBs YWNlYWJsZT4KICAgICAgIDxpbmRleHRlcm0+PHByaW1hcnk+UkVBRF9SRVBMSUNBVElPTl9TTE9U PC9wcmltYXJ5PjwvaW5kZXh0ZXJtPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c3Vic2NyaXB0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21k cy5jCmluZGV4IDc1ZTZjZDhhZTMuLmVhZjJlYzNiMzYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9z dWJzY3JpcHRpb25jbWRzLmMKQEAgLTgwNyw3ICs4MDcsNyBAQCBDcmVhdGVTdWJzY3JpcHRpb24o UGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJCQl0 d29waGFzZV9lbmFibGVkID0gdHJ1ZTsKIAogCQkJCXdhbHJjdl9jcmVhdGVfc2xvdCh3cmNvbm4s IG9wdHMuc2xvdF9uYW1lLCBmYWxzZSwgdHdvcGhhc2VfZW5hYmxlZCwKLQkJCQkJCQkJICAgQ1JT X05PRVhQT1JUX1NOQVBTSE9ULCBOVUxMKTsKKwkJCQkJCQkJICAgZmFsc2UsIENSU19OT0VYUE9S VF9TTkFQU0hPVCwgTlVMTCk7CiAKIAkJCQlpZiAodHdvcGhhc2VfZW5hYmxlZCkKIAkJCQkJVXBk YXRlVHdvUGhhc2VTdGF0ZShzdWJpZCwgTE9HSUNBTFJFUF9UV09QSEFTRV9TVEFURV9FTkFCTEVE KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIv bGlicHF3YWxyZWNlaXZlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbGlicHF3YWxyZWNl aXZlci9saWJwcXdhbHJlY2VpdmVyLmMKaW5kZXggNzc2NjkwNzRlOC4uMjBkNTEyOGMwZSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbGlicHF3YWxyZWNlaXZlci9saWJwcXdh bHJlY2VpdmVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbGlicHF3YWxyZWNlaXZl ci9saWJwcXdhbHJlY2VpdmVyLmMKQEAgLTczLDggKzczLDExIEBAIHN0YXRpYyBjaGFyICpsaWJw cXJjdl9jcmVhdGVfc2xvdChXYWxSZWNlaXZlckNvbm4gKmNvbm4sCiAJCQkJCQkJCSAgY29uc3Qg Y2hhciAqc2xvdG5hbWUsCiAJCQkJCQkJCSAgYm9vbCB0ZW1wb3JhcnksCiAJCQkJCQkJCSAgYm9v bCB0d29fcGhhc2UsCisJCQkJCQkJCSAgYm9vbCBmYWlsb3ZlciwKIAkJCQkJCQkJICBDUlNTbmFw c2hvdEFjdGlvbiBzbmFwc2hvdF9hY3Rpb24sCiAJCQkJCQkJCSAgWExvZ1JlY1B0ciAqbHNuKTsK K3N0YXRpYyB2b2lkIGxpYnBxcmN2X2FsdGVyX3Nsb3QoV2FsUmVjZWl2ZXJDb25uICpjb25uLCBj b25zdCBjaGFyICpzbG90bmFtZSwKKwkJCQkJCQkJYm9vbCBmYWlsb3Zlcik7CiBzdGF0aWMgcGlk X3QgbGlicHFyY3ZfZ2V0X2JhY2tlbmRfcGlkKFdhbFJlY2VpdmVyQ29ubiAqY29ubik7CiBzdGF0 aWMgV2FsUmN2RXhlY1Jlc3VsdCAqbGlicHFyY3ZfZXhlYyhXYWxSZWNlaXZlckNvbm4gKmNvbm4s CiAJCQkJCQkJCQkgICBjb25zdCBjaGFyICpxdWVyeSwKQEAgLTk1LDYgKzk4LDcgQEAgc3RhdGlj IFdhbFJlY2VpdmVyRnVuY3Rpb25zVHlwZSBQUVdhbFJlY2VpdmVyRnVuY3Rpb25zID0gewogCS53 YWxyY3ZfcmVjZWl2ZSA9IGxpYnBxcmN2X3JlY2VpdmUsCiAJLndhbHJjdl9zZW5kID0gbGlicHFy Y3Zfc2VuZCwKIAkud2FscmN2X2NyZWF0ZV9zbG90ID0gbGlicHFyY3ZfY3JlYXRlX3Nsb3QsCisJ LndhbHJjdl9hbHRlcl9zbG90ID0gbGlicHFyY3ZfYWx0ZXJfc2xvdCwKIAkud2FscmN2X2dldF9i YWNrZW5kX3BpZCA9IGxpYnBxcmN2X2dldF9iYWNrZW5kX3BpZCwKIAkud2FscmN2X2V4ZWMgPSBs aWJwcXJjdl9leGVjLAogCS53YWxyY3ZfZGlzY29ubmVjdCA9IGxpYnBxcmN2X2Rpc2Nvbm5lY3QK QEAgLTkzOCw4ICs5NDIsOCBAQCBsaWJwcXJjdl9zZW5kKFdhbFJlY2VpdmVyQ29ubiAqY29ubiwg Y29uc3QgY2hhciAqYnVmZmVyLCBpbnQgbmJ5dGVzKQogICovCiBzdGF0aWMgY2hhciAqCiBsaWJw cXJjdl9jcmVhdGVfc2xvdChXYWxSZWNlaXZlckNvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnNsb3Ru YW1lLAotCQkJCQkgYm9vbCB0ZW1wb3JhcnksIGJvb2wgdHdvX3BoYXNlLCBDUlNTbmFwc2hvdEFj dGlvbiBzbmFwc2hvdF9hY3Rpb24sCi0JCQkJCSBYTG9nUmVjUHRyICpsc24pCisJCQkJCSBib29s IHRlbXBvcmFyeSwgYm9vbCB0d29fcGhhc2UsIGJvb2wgZmFpbG92ZXIsCisJCQkJCSBDUlNTbmFw c2hvdEFjdGlvbiBzbmFwc2hvdF9hY3Rpb24sIFhMb2dSZWNQdHIgKmxzbikKIHsKIAlQR3Jlc3Vs dCAgICpyZXM7CiAJU3RyaW5nSW5mb0RhdGEgY21kOwpAQCAtOTY4LDcgKzk3Miw4IEBAIGxpYnBx cmN2X2NyZWF0ZV9zbG90KFdhbFJlY2VpdmVyQ29ubiAqY29ubiwgY29uc3QgY2hhciAqc2xvdG5h bWUsCiAJCQllbHNlCiAJCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoJmNtZCwgJyAnKTsKIAkJfQot CisJCWlmIChmYWlsb3ZlcikKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmNtZCwgIkZBSUxP VkVSLCAiKTsKIAkJaWYgKHVzZV9uZXdfb3B0aW9uc19zeW50YXgpCiAJCXsKIAkJCXN3aXRjaCAo c25hcHNob3RfYWN0aW9uKQpAQCAtMTAzNyw2ICsxMDQyLDMzIEBAIGxpYnBxcmN2X2NyZWF0ZV9z bG90KFdhbFJlY2VpdmVyQ29ubiAqY29ubiwgY29uc3QgY2hhciAqc2xvdG5hbWUsCiAJcmV0dXJu IHNuYXBzaG90OwogfQogCisvKgorICogQ2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIHRoZSByZXBs aWNhdGlvbiBzbG90LgorICovCitzdGF0aWMgdm9pZAorbGlicHFyY3ZfYWx0ZXJfc2xvdChXYWxS ZWNlaXZlckNvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnNsb3RuYW1lLAorCQkJCQlib29sIGZhaWxv dmVyKQoreworCVN0cmluZ0luZm9EYXRhIGNtZDsKKwlQR3Jlc3VsdCAgICpyZXM7CisKKwlpbml0 U3RyaW5nSW5mbygmY21kKTsKKwlhcHBlbmRTdHJpbmdJbmZvKCZjbWQsICJBTFRFUl9SRVBMSUNB VElPTl9TTE9UICVzICggRkFJTE9WRVIgJXMgKSIsCisJCQkJCSBxdW90ZV9pZGVudGlmaWVyKHNs b3RuYW1lKSwKKwkJCQkJIGZhaWxvdmVyID8gInRydWUiIDogImZhbHNlIik7CisKKwlyZXMgPSBs aWJwcXJjdl9QUWV4ZWMoY29ubi0+c3RyZWFtQ29ubiwgY21kLmRhdGEpOworCXBmcmVlKGNtZC5k YXRhKTsKKworCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJ CWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9QUk9UT0NPTF9WSU9MQVRJT04p LAorCQkJCSBlcnJtc2coImNvdWxkIG5vdCBhbHRlciByZXBsaWNhdGlvbiBzbG90IFwiJXNcIjog JXMiLAorCQkJCQkJc2xvdG5hbWUsIHBjaG9tcChQUWVycm9yTWVzc2FnZShjb25uLT5zdHJlYW1D b25uKSkpKSk7CisKKwlQUWNsZWFyKHJlcyk7Cit9CisKIC8qCiAgKiBSZXR1cm4gUElEIG9mIHJl bW90ZSBiYWNrZW5kIHByb2Nlc3MuCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dp Y2FsL3RhYmxlc3luYy5jCmluZGV4IDA2ZDViM2RmMzMuLjQyMDdiOTM1NmMgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMKKysrIGIvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYwpAQCAtMTQzMCw2ICsxNDMwLDcg QEAgTG9naWNhbFJlcFN5bmNUYWJsZVN0YXJ0KFhMb2dSZWNQdHIgKm9yaWdpbl9zdGFydHBvcykK IAkgKi8KIAl3YWxyY3ZfY3JlYXRlX3Nsb3QoTG9nUmVwV29ya2VyV2FsUmN2Q29ubiwKIAkJCQkJ ICAgc2xvdG5hbWUsIGZhbHNlIC8qIHBlcm1hbmVudCAqLyAsIGZhbHNlIC8qIHR3b19waGFzZSAq LyAsCisJCQkJCSAgIGZhbHNlLAogCQkJCQkgICBDUlNfVVNFX1NOQVBTSE9ULCBvcmlnaW5fc3Rh cnRwb3MpOwogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3JlcGxf Z3JhbS55IGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcmVwbF9ncmFtLnkKaW5kZXggOTVlMTI2 ZWI0ZC4uZmYzODA5ZTAyZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcmVw bF9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcmVwbF9ncmFtLnkKQEAgLTY0 LDYgKzY0LDcgQEAgTm9kZSAqcmVwbGljYXRpb25fcGFyc2VfcmVzdWx0OwogJXRva2VuIEtfU1RB UlRfUkVQTElDQVRJT04KICV0b2tlbiBLX0NSRUFURV9SRVBMSUNBVElPTl9TTE9UCiAldG9rZW4g S19EUk9QX1JFUExJQ0FUSU9OX1NMT1QKKyV0b2tlbiBLX0FMVEVSX1JFUExJQ0FUSU9OX1NMT1QK ICV0b2tlbiBLX1RJTUVMSU5FX0hJU1RPUlkKICV0b2tlbiBLX1dBSVQKICV0b2tlbiBLX1RJTUVM SU5FCkBAIC04MCw4ICs4MSw5IEBAIE5vZGUgKnJlcGxpY2F0aW9uX3BhcnNlX3Jlc3VsdDsKIAog JXR5cGUgPG5vZGU+CWNvbW1hbmQKICV0eXBlIDxub2RlPgliYXNlX2JhY2t1cCBzdGFydF9yZXBs aWNhdGlvbiBzdGFydF9sb2dpY2FsX3JlcGxpY2F0aW9uCi0JCQkJY3JlYXRlX3JlcGxpY2F0aW9u X3Nsb3QgZHJvcF9yZXBsaWNhdGlvbl9zbG90IGlkZW50aWZ5X3N5c3RlbQotCQkJCXJlYWRfcmVw bGljYXRpb25fc2xvdCB0aW1lbGluZV9oaXN0b3J5IHNob3cgdXBsb2FkX21hbmlmZXN0CisJCQkJ Y3JlYXRlX3JlcGxpY2F0aW9uX3Nsb3QgZHJvcF9yZXBsaWNhdGlvbl9zbG90CisJCQkJYWx0ZXJf cmVwbGljYXRpb25fc2xvdCBpZGVudGlmeV9zeXN0ZW0gcmVhZF9yZXBsaWNhdGlvbl9zbG90CisJ CQkJdGltZWxpbmVfaGlzdG9yeSBzaG93IHVwbG9hZF9tYW5pZmVzdAogJXR5cGUgPGxpc3Q+CWdl bmVyaWNfb3B0aW9uX2xpc3QKICV0eXBlIDxkZWZlbHQ+CWdlbmVyaWNfb3B0aW9uCiAldHlwZSA8 dWludHZhbD4Jb3B0X3RpbWVsaW5lCkBAIC0xMTIsNiArMTE0LDcgQEAgY29tbWFuZDoKIAkJCXwg c3RhcnRfbG9naWNhbF9yZXBsaWNhdGlvbgogCQkJfCBjcmVhdGVfcmVwbGljYXRpb25fc2xvdAog CQkJfCBkcm9wX3JlcGxpY2F0aW9uX3Nsb3QKKwkJCXwgYWx0ZXJfcmVwbGljYXRpb25fc2xvdAog CQkJfCByZWFkX3JlcGxpY2F0aW9uX3Nsb3QKIAkJCXwgdGltZWxpbmVfaGlzdG9yeQogCQkJfCBz aG93CkBAIC0yNTksNiArMjYyLDE4IEBAIGRyb3BfcmVwbGljYXRpb25fc2xvdDoKIAkJCQl9CiAJ CQk7CiAKKy8qIEFMVEVSX1JFUExJQ0FUSU9OX1NMT1Qgc2xvdCAqLworYWx0ZXJfcmVwbGljYXRp b25fc2xvdDoKKwkJCUtfQUxURVJfUkVQTElDQVRJT05fU0xPVCBJREVOVCAnKCcgZ2VuZXJpY19v cHRpb25fbGlzdCAnKScKKwkJCQl7CisJCQkJCUFsdGVyUmVwbGljYXRpb25TbG90Q21kICpjbWQ7 CisJCQkJCWNtZCA9IG1ha2VOb2RlKEFsdGVyUmVwbGljYXRpb25TbG90Q21kKTsKKwkJCQkJY21k LT5zbG90bmFtZSA9ICQyOworCQkJCQljbWQtPm9wdGlvbnMgPSAkNDsKKwkJCQkJJCQgPSAoTm9k ZSAqKSBjbWQ7CisJCQkJfQorCQkJOworCiAvKgogICogU1RBUlRfUkVQTElDQVRJT04gW1NMT1Qg c2xvdF0gW1BIWVNJQ0FMXSAlWC8lWCBbVElNRUxJTkUgJWRdCiAgKi8KQEAgLTQxMCw2ICs0MjUs NyBAQCBpZGVudF9vcl9rZXl3b3JkOgogCQkJfCBLX1NUQVJUX1JFUExJQ0FUSU9OCQkJeyAkJCA9 ICJzdGFydF9yZXBsaWNhdGlvbiI7IH0KIAkJCXwgS19DUkVBVEVfUkVQTElDQVRJT05fU0xPVAl7 ICQkID0gImNyZWF0ZV9yZXBsaWNhdGlvbl9zbG90IjsgfQogCQkJfCBLX0RST1BfUkVQTElDQVRJ T05fU0xPVAkJeyAkJCA9ICJkcm9wX3JlcGxpY2F0aW9uX3Nsb3QiOyB9CisJCQl8IEtfQUxURVJf UkVQTElDQVRJT05fU0xPVAkJeyAkJCA9ICJhbHRlcl9yZXBsaWNhdGlvbl9zbG90IjsgfQogCQkJ fCBLX1RJTUVMSU5FX0hJU1RPUlkJCQl7ICQkID0gInRpbWVsaW5lX2hpc3RvcnkiOyB9CiAJCQl8 IEtfV0FJVAkJCQkJCXsgJCQgPSAid2FpdCI7IH0KIAkJCXwgS19USU1FTElORQkJCQkJeyAkJCA9 ICJ0aW1lbGluZSI7IH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3JlcGxf c2Nhbm5lci5sIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcmVwbF9zY2FubmVyLmwKaW5kZXgg NmZhNjI1NjE3Yi4uZTdkZWY4MDA2NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vcmVwbF9zY2FubmVyLmwKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcmVwbF9zY2Fu bmVyLmwKQEAgLTEyNSw2ICsxMjUsNyBAQCBUSU1FTElORQkJCXsgcmV0dXJuIEtfVElNRUxJTkU7 IH0KIFNUQVJUX1JFUExJQ0FUSU9OCXsgcmV0dXJuIEtfU1RBUlRfUkVQTElDQVRJT047IH0KIENS RUFURV9SRVBMSUNBVElPTl9TTE9UCQl7IHJldHVybiBLX0NSRUFURV9SRVBMSUNBVElPTl9TTE9U OyB9CiBEUk9QX1JFUExJQ0FUSU9OX1NMT1QJCXsgcmV0dXJuIEtfRFJPUF9SRVBMSUNBVElPTl9T TE9UOyB9CitBTFRFUl9SRVBMSUNBVElPTl9TTE9UCQl7IHJldHVybiBLX0FMVEVSX1JFUExJQ0FU SU9OX1NMT1Q7IH0KIFRJTUVMSU5FX0hJU1RPUlkJeyByZXR1cm4gS19USU1FTElORV9ISVNUT1JZ OyB9CiBQSFlTSUNBTAkJCXsgcmV0dXJuIEtfUEhZU0lDQUw7IH0KIFJFU0VSVkVfV0FMCQkJeyBy ZXR1cm4gS19SRVNFUlZFX1dBTDsgfQpAQCAtMzAyLDYgKzMwMyw3IEBAIHJlcGxpY2F0aW9uX3Nj YW5uZXJfaXNfcmVwbGljYXRpb25fY29tbWFuZCh2b2lkKQogCQljYXNlIEtfU1RBUlRfUkVQTElD QVRJT046CiAJCWNhc2UgS19DUkVBVEVfUkVQTElDQVRJT05fU0xPVDoKIAkJY2FzZSBLX0RST1Bf UkVQTElDQVRJT05fU0xPVDoKKwkJY2FzZSBLX0FMVEVSX1JFUExJQ0FUSU9OX1NMT1Q6CiAJCWNh c2UgS19SRUFEX1JFUExJQ0FUSU9OX1NMT1Q6CiAJCWNhc2UgS19USU1FTElORV9ISVNUT1JZOgog CQljYXNlIEtfVVBMT0FEX01BTklGRVNUOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vc2xvdC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCmluZGV4IDAyYTE0 ZWMyMTAuLmYyNzgxZDA0NTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Ns b3QuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKQEAgLTY4Myw2ICs2ODMs MzEgQEAgUmVwbGljYXRpb25TbG90RHJvcChjb25zdCBjaGFyICpuYW1lLCBib29sIG5vd2FpdCkK IAlSZXBsaWNhdGlvblNsb3REcm9wQWNxdWlyZWQoKTsKIH0KIAorLyoKKyAqIENoYW5nZSB0aGUg ZGVmaW5pdGlvbiBvZiB0aGUgc2xvdCBpZGVudGlmaWVkIGJ5IHRoZSBzcGVjaWZpZWQgbmFtZS4K KyAqLwordm9pZAorUmVwbGljYXRpb25TbG90QWx0ZXIoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBm YWlsb3ZlcikKK3sKKwlBc3NlcnQoTXlSZXBsaWNhdGlvblNsb3QgPT0gTlVMTCk7CisKKwlSZXBs aWNhdGlvblNsb3RBY3F1aXJlKG5hbWUsIGZhbHNlKTsKKworCWlmIChTbG90SXNQaHlzaWNhbChN eVJlcGxpY2F0aW9uU2xvdCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RF X0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJZXJybXNnKCJjYW5ub3QgdXNlICVzIHdpdGgg YSBwaHlzaWNhbCByZXBsaWNhdGlvbiBzbG90IiwKKwkJCQkJICAgIkFMVEVSX1JFUExJQ0FUSU9O X1NMT1QiKSk7CisKKwlTcGluTG9ja0FjcXVpcmUoJk15UmVwbGljYXRpb25TbG90LT5tdXRleCk7 CisJTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEuZmFpbG92ZXIgPSBmYWlsb3ZlcjsKKwlTcGluTG9j a1JlbGVhc2UoJk15UmVwbGljYXRpb25TbG90LT5tdXRleCk7CisKKwlSZXBsaWNhdGlvblNsb3RN YXJrRGlydHkoKTsKKwlSZXBsaWNhdGlvblNsb3RTYXZlKCk7CisJUmVwbGljYXRpb25TbG90UmVs ZWFzZSgpOworfQorCiAvKgogICogUGVybWFuZW50bHkgZHJvcCB0aGUgY3VycmVudGx5IGFjcXVp cmVkIHJlcGxpY2F0aW9uIHNsb3QuCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL3dhbHJlY2VpdmVyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZl ci5jCmluZGV4IDcyODA1OTUxOGUuLmUyOWE2MTk2YTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v d2FscmVjZWl2ZXIuYwpAQCAtMzg3LDcgKzM4Nyw3IEBAIFdhbFJlY2VpdmVyTWFpbih2b2lkKQog CQkJCQkgInBnX3dhbHJlY2VpdmVyXyVsbGQiLAogCQkJCQkgKGxvbmcgbG9uZyBpbnQpIHdhbHJj dl9nZXRfYmFja2VuZF9waWQod3Jjb25uKSk7CiAKLQkJCXdhbHJjdl9jcmVhdGVfc2xvdCh3cmNv bm4sIHNsb3RuYW1lLCB0cnVlLCBmYWxzZSwgMCwgTlVMTCk7CisJCQl3YWxyY3ZfY3JlYXRlX3Ns b3Qod3Jjb25uLCBzbG90bmFtZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCAwLCBOVUxMKTsKIAogCQkJ U3BpbkxvY2tBY3F1aXJlKCZ3YWxyY3YtPm11dGV4KTsKIAkJCXN0cmxjcHkod2FscmN2LT5zbG90 bmFtZSwgc2xvdG5hbWUsIE5BTUVEQVRBTEVOKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL3dhbHNlbmRlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVy LmMKaW5kZXggYWE4MGYzZGUyMC4uNzdjOGJhYTMyYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fs c2VuZGVyLmMKQEAgLTExMjYsMTIgKzExMjYsMTMgQEAgc3RhdGljIHZvaWQKIHBhcnNlQ3JlYXRl UmVwbFNsb3RPcHRpb25zKENyZWF0ZVJlcGxpY2F0aW9uU2xvdENtZCAqY21kLAogCQkJCQkJICAg Ym9vbCAqcmVzZXJ2ZV93YWwsCiAJCQkJCQkgICBDUlNTbmFwc2hvdEFjdGlvbiAqc25hcHNob3Rf YWN0aW9uLAotCQkJCQkJICAgYm9vbCAqdHdvX3BoYXNlKQorCQkJCQkJICAgYm9vbCAqdHdvX3Bo YXNlLCBib29sICpmYWlsb3ZlcikKIHsKIAlMaXN0Q2VsbCAgICpsYzsKIAlib29sCQlzbmFwc2hv dF9hY3Rpb25fZ2l2ZW4gPSBmYWxzZTsKIAlib29sCQlyZXNlcnZlX3dhbF9naXZlbiA9IGZhbHNl OwogCWJvb2wJCXR3b19waGFzZV9naXZlbiA9IGZhbHNlOworCWJvb2wJCWZhaWxvdmVyX2dpdmVu ID0gZmFsc2U7CiAKIAkvKiBQYXJzZSBvcHRpb25zICovCiAJZm9yZWFjaChsYywgY21kLT5vcHRp b25zKQpAQCAtMTE4MSw2ICsxMTgyLDE1IEBAIHBhcnNlQ3JlYXRlUmVwbFNsb3RPcHRpb25zKENy ZWF0ZVJlcGxpY2F0aW9uU2xvdENtZCAqY21kLAogCQkJdHdvX3BoYXNlX2dpdmVuID0gdHJ1ZTsK IAkJCSp0d29fcGhhc2UgPSBkZWZHZXRCb29sZWFuKGRlZmVsKTsKIAkJfQorCQllbHNlIGlmIChz dHJjbXAoZGVmZWwtPmRlZm5hbWUsICJmYWlsb3ZlciIpID09IDApCisJCXsKKwkJCWlmIChmYWls b3Zlcl9naXZlbiB8fCBjbWQtPmtpbmQgIT0gUkVQTElDQVRJT05fS0lORF9MT0dJQ0FMKQorCQkJ CWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJ CQkJCQkgZXJybXNnKCJjb25mbGljdGluZyBvciByZWR1bmRhbnQgb3B0aW9ucyIpKSk7CisJCQlm YWlsb3Zlcl9naXZlbiA9IHRydWU7CisJCQkqZmFpbG92ZXIgPSBkZWZHZXRCb29sZWFuKGRlZmVs KTsKKwkJfQogCQllbHNlCiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9wdGlvbjogJXMi LCBkZWZlbC0+ZGVmbmFtZSk7CiAJfQpAQCAtMTE5Nyw2ICsxMjA3LDcgQEAgQ3JlYXRlUmVwbGlj YXRpb25TbG90KENyZWF0ZVJlcGxpY2F0aW9uU2xvdENtZCAqY21kKQogCWNoYXIJICAgKnNsb3Rf bmFtZTsKIAlib29sCQlyZXNlcnZlX3dhbCA9IGZhbHNlOwogCWJvb2wJCXR3b19waGFzZSA9IGZh bHNlOworCWJvb2wJCWZhaWxvdmVyID0gZmFsc2U7CiAJQ1JTU25hcHNob3RBY3Rpb24gc25hcHNo b3RfYWN0aW9uID0gQ1JTX0VYUE9SVF9TTkFQU0hPVDsKIAlEZXN0UmVjZWl2ZXIgKmRlc3Q7CiAJ VHVwT3V0cHV0U3RhdGUgKnRzdGF0ZTsKQEAgLTEyMDYsNyArMTIxNyw4IEBAIENyZWF0ZVJlcGxp Y2F0aW9uU2xvdChDcmVhdGVSZXBsaWNhdGlvblNsb3RDbWQgKmNtZCkKIAogCUFzc2VydCghTXlS ZXBsaWNhdGlvblNsb3QpOwogCi0JcGFyc2VDcmVhdGVSZXBsU2xvdE9wdGlvbnMoY21kLCAmcmVz ZXJ2ZV93YWwsICZzbmFwc2hvdF9hY3Rpb24sICZ0d29fcGhhc2UpOworCXBhcnNlQ3JlYXRlUmVw bFNsb3RPcHRpb25zKGNtZCwgJnJlc2VydmVfd2FsLCAmc25hcHNob3RfYWN0aW9uLCAmdHdvX3Bo YXNlLAorCQkJCQkJCSAgICZmYWlsb3Zlcik7CiAKIAlpZiAoY21kLT5raW5kID09IFJFUExJQ0FU SU9OX0tJTkRfUEhZU0lDQUwpCiAJewpAQCAtMTI0Myw3ICsxMjU1LDcgQEAgQ3JlYXRlUmVwbGlj YXRpb25TbG90KENyZWF0ZVJlcGxpY2F0aW9uU2xvdENtZCAqY21kKQogCQkgKi8KIAkJUmVwbGlj YXRpb25TbG90Q3JlYXRlKGNtZC0+c2xvdG5hbWUsIHRydWUsCiAJCQkJCQkJICBjbWQtPnRlbXBv cmFyeSA/IFJTX1RFTVBPUkFSWSA6IFJTX0VQSEVNRVJBTCwKLQkJCQkJCQkgIHR3b19waGFzZSwg ZmFsc2UpOworCQkJCQkJCSAgdHdvX3BoYXNlLCBmYWlsb3Zlcik7CiAKIAkJLyoKIAkJICogRG8g b3B0aW9ucyBjaGVjayBlYXJseSBzbyB0aGF0IHdlIGNhbiBiYWlsIGJlZm9yZSBjYWxsaW5nIHRo ZQpAQCAtMTM5OCw2ICsxNDEwLDQzIEBAIERyb3BSZXBsaWNhdGlvblNsb3QoRHJvcFJlcGxpY2F0 aW9uU2xvdENtZCAqY21kKQogCVJlcGxpY2F0aW9uU2xvdERyb3AoY21kLT5zbG90bmFtZSwgIWNt ZC0+d2FpdCk7CiB9CiAKKy8qCisgKiBQcm9jZXNzIGV4dHJhIG9wdGlvbnMgZ2l2ZW4gdG8gQUxU RVJfUkVQTElDQVRJT05fU0xPVC4KKyAqLworc3RhdGljIHZvaWQKK1BhcnNlQWx0ZXJSZXBsU2xv dE9wdGlvbnMoQWx0ZXJSZXBsaWNhdGlvblNsb3RDbWQgKmNtZCwgYm9vbCAqZmFpbG92ZXIpCit7 CisJYm9vbAkJZmFpbG92ZXJfZ2l2ZW4gPSBmYWxzZTsKKworCS8qIFBhcnNlIG9wdGlvbnMgKi8K Kwlmb3JlYWNoX3B0cihEZWZFbGVtLCBkZWZlbCwgY21kLT5vcHRpb25zKQorCXsKKwkJaWYgKHN0 cmNtcChkZWZlbC0+ZGVmbmFtZSwgImZhaWxvdmVyIikgPT0gMCkKKwkJeworCQkJaWYgKGZhaWxv dmVyX2dpdmVuKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZ TlRBWF9FUlJPUiksCisJCQkJCQkgZXJybXNnKCJjb25mbGljdGluZyBvciByZWR1bmRhbnQgb3B0 aW9ucyIpKSk7CisJCQlmYWlsb3Zlcl9naXZlbiA9IHRydWU7CisJCQkqZmFpbG92ZXIgPSBkZWZH ZXRCb29sZWFuKGRlZmVsKTsKKwkJfQorCQllbHNlCisJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25p emVkIG9wdGlvbjogJXMiLCBkZWZlbC0+ZGVmbmFtZSk7CisJfQorfQorCisvKgorICogQ2hhbmdl IHRoZSBkZWZpbml0aW9uIG9mIGEgcmVwbGljYXRpb24gc2xvdC4KKyAqLworc3RhdGljIHZvaWQK K0FsdGVyUmVwbGljYXRpb25TbG90KEFsdGVyUmVwbGljYXRpb25TbG90Q21kICpjbWQpCit7CisJ Ym9vbAkJZmFpbG92ZXIgPSBmYWxzZTsKKworCVBhcnNlQWx0ZXJSZXBsU2xvdE9wdGlvbnMoY21k LCAmZmFpbG92ZXIpOworCVJlcGxpY2F0aW9uU2xvdEFsdGVyKGNtZC0+c2xvdG5hbWUsIGZhaWxv dmVyKTsKK30KKwogLyoKICAqIExvYWQgcHJldmlvdXNseSBpbml0aWF0ZWQgbG9naWNhbCBzbG90 IGFuZCBwcmVwYXJlIGZvciBzZW5kaW5nIGRhdGEgKHZpYQogICogV2FsU25kTG9vcCkuCkBAIC0x OTcxLDYgKzIwMjAsMTMgQEAgZXhlY19yZXBsaWNhdGlvbl9jb21tYW5kKGNvbnN0IGNoYXIgKmNt ZF9zdHJpbmcpCiAJCQlFbmRSZXBsaWNhdGlvbkNvbW1hbmQoY21kdGFnKTsKIAkJCWJyZWFrOwog CisJCWNhc2UgVF9BbHRlclJlcGxpY2F0aW9uU2xvdENtZDoKKwkJCWNtZHRhZyA9ICJBTFRFUl9S RVBMSUNBVElPTl9TTE9UIjsKKwkJCXNldF9wc19kaXNwbGF5KGNtZHRhZyk7CisJCQlBbHRlclJl cGxpY2F0aW9uU2xvdCgoQWx0ZXJSZXBsaWNhdGlvblNsb3RDbWQgKikgY21kX25vZGUpOworCQkJ RW5kUmVwbGljYXRpb25Db21tYW5kKGNtZHRhZyk7CisJCQlicmVhazsKKwogCQljYXNlIFRfU3Rh cnRSZXBsaWNhdGlvbkNtZDoKIAkJCXsKIAkJCQlTdGFydFJlcGxpY2F0aW9uQ21kICpjbWQgPSAo U3RhcnRSZXBsaWNhdGlvbkNtZCAqKSBjbWRfbm9kZTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L25vZGVzL3JlcGxub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcmVwbG5vZGVzLmgKaW5kZXgg YWYwYTMzM2YxYS4uZWQyMzMzM2U5MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcmVw bG5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcmVwbG5vZGVzLmgKQEAgLTcyLDYgKzcy LDE4IEBAIHR5cGVkZWYgc3RydWN0IERyb3BSZXBsaWNhdGlvblNsb3RDbWQKIH0gRHJvcFJlcGxp Y2F0aW9uU2xvdENtZDsKIAogCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgkJQUxURVJf UkVQTElDQVRJT05fU0xPVCBjb21tYW5kCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8K K3R5cGVkZWYgc3RydWN0IEFsdGVyUmVwbGljYXRpb25TbG90Q21kCit7CisJTm9kZVRhZwkJdHlw ZTsKKwljaGFyCSAgICpzbG90bmFtZTsKKwlMaXN0CSAgICpvcHRpb25zOworfSBBbHRlclJlcGxp Y2F0aW9uU2xvdENtZDsKKworCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgkJU1RBUlRf UkVQTElDQVRJT04gY29tbWFuZAogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRp b24vc2xvdC5oCmluZGV4IGRiOWJiMjIyNjYuLmRhNGM3NzY0OTIgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9z bG90LmgKQEAgLTIyNyw2ICsyMjcsNyBAQCBleHRlcm4gdm9pZCBSZXBsaWNhdGlvblNsb3RDcmVh dGUoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBkYl9zcGVjaWZpYywKIAkJCQkJCQkJICBib29sIHR3 b19waGFzZSwgYm9vbCBmYWlsb3Zlcik7CiBleHRlcm4gdm9pZCBSZXBsaWNhdGlvblNsb3RQZXJz aXN0KHZvaWQpOwogZXh0ZXJuIHZvaWQgUmVwbGljYXRpb25TbG90RHJvcChjb25zdCBjaGFyICpu YW1lLCBib29sIG5vd2FpdCk7CitleHRlcm4gdm9pZCBSZXBsaWNhdGlvblNsb3RBbHRlcihjb25z dCBjaGFyICpuYW1lLCBib29sIGZhaWxvdmVyKTsKIAogZXh0ZXJuIHZvaWQgUmVwbGljYXRpb25T bG90QWNxdWlyZShjb25zdCBjaGFyICpuYW1lLCBib29sIG5vd2FpdCk7CiBleHRlcm4gdm9pZCBS ZXBsaWNhdGlvblNsb3RSZWxlYXNlKHZvaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVw bGljYXRpb24vd2FscmVjZWl2ZXIuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHJlY2Vp dmVyLmgKaW5kZXggMDg5OTg5MWNkYi4uZjU2NmE5OWJhMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlv bi93YWxyZWNlaXZlci5oCkBAIC0zNTUsOSArMzU1LDIwIEBAIHR5cGVkZWYgY2hhciAqKCp3YWxy Y3ZfY3JlYXRlX3Nsb3RfZm4pIChXYWxSZWNlaXZlckNvbm4gKmNvbm4sCiAJCQkJCQkJCQkJY29u c3QgY2hhciAqc2xvdG5hbWUsCiAJCQkJCQkJCQkJYm9vbCB0ZW1wb3JhcnksCiAJCQkJCQkJCQkJ Ym9vbCB0d29fcGhhc2UsCisJCQkJCQkJCQkJYm9vbCBmYWlsb3ZlciwKIAkJCQkJCQkJCQlDUlNT bmFwc2hvdEFjdGlvbiBzbmFwc2hvdF9hY3Rpb24sCiAJCQkJCQkJCQkJWExvZ1JlY1B0ciAqbHNu KTsKIAorLyoKKyAqIHdhbHJjdl9hbHRlcl9zbG90X2ZuCisgKgorICogQ2hhbmdlIHRoZSBkZWZp bml0aW9uIG9mIGEgcmVwbGljYXRpb24gc2xvdC4gQ3VycmVudGx5LCBpdCBvbmx5IHN1cHBvcnRz CisgKiBjaGFuZ2luZyB0aGUgZmFpbG92ZXIgcHJvcGVydHkgb2YgdGhlIHNsb3QuCisgKi8KK3R5 cGVkZWYgdm9pZCAoKndhbHJjdl9hbHRlcl9zbG90X2ZuKSAoV2FsUmVjZWl2ZXJDb25uICpjb25u LAorCQkJCQkJCQkJICBjb25zdCBjaGFyICpzbG90bmFtZSwKKwkJCQkJCQkJCSAgYm9vbCBmYWls b3Zlcik7CisKIC8qCiAgKiB3YWxyY3ZfZ2V0X2JhY2tlbmRfcGlkX2ZuCiAgKgpAQCAtMzk5LDYg KzQxMCw3IEBAIHR5cGVkZWYgc3RydWN0IFdhbFJlY2VpdmVyRnVuY3Rpb25zVHlwZQogCXdhbHJj dl9yZWNlaXZlX2ZuIHdhbHJjdl9yZWNlaXZlOwogCXdhbHJjdl9zZW5kX2ZuIHdhbHJjdl9zZW5k OwogCXdhbHJjdl9jcmVhdGVfc2xvdF9mbiB3YWxyY3ZfY3JlYXRlX3Nsb3Q7CisJd2FscmN2X2Fs dGVyX3Nsb3RfZm4gd2FscmN2X2FsdGVyX3Nsb3Q7CiAJd2FscmN2X2dldF9iYWNrZW5kX3BpZF9m biB3YWxyY3ZfZ2V0X2JhY2tlbmRfcGlkOwogCXdhbHJjdl9leGVjX2ZuIHdhbHJjdl9leGVjOwog CXdhbHJjdl9kaXNjb25uZWN0X2ZuIHdhbHJjdl9kaXNjb25uZWN0OwpAQCAtNDI4LDggKzQ0MCwx MCBAQCBleHRlcm4gUEdETExJTVBPUlQgV2FsUmVjZWl2ZXJGdW5jdGlvbnNUeXBlICpXYWxSZWNl aXZlckZ1bmN0aW9uczsKIAlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+d2FscmN2X3JlY2VpdmUoY29u biwgYnVmZmVyLCB3YWl0X2ZkKQogI2RlZmluZSB3YWxyY3Zfc2VuZChjb25uLCBidWZmZXIsIG5i eXRlcykgXAogCVdhbFJlY2VpdmVyRnVuY3Rpb25zLT53YWxyY3Zfc2VuZChjb25uLCBidWZmZXIs IG5ieXRlcykKLSNkZWZpbmUgd2FscmN2X2NyZWF0ZV9zbG90KGNvbm4sIHNsb3RuYW1lLCB0ZW1w b3JhcnksIHR3b19waGFzZSwgc25hcHNob3RfYWN0aW9uLCBsc24pIFwKLQlXYWxSZWNlaXZlckZ1 bmN0aW9ucy0+d2FscmN2X2NyZWF0ZV9zbG90KGNvbm4sIHNsb3RuYW1lLCB0ZW1wb3JhcnksIHR3 b19waGFzZSwgc25hcHNob3RfYWN0aW9uLCBsc24pCisjZGVmaW5lIHdhbHJjdl9jcmVhdGVfc2xv dChjb25uLCBzbG90bmFtZSwgdGVtcG9yYXJ5LCB0d29fcGhhc2UsIGZhaWxvdmVyLCBzbmFwc2hv dF9hY3Rpb24sIGxzbikgXAorCVdhbFJlY2VpdmVyRnVuY3Rpb25zLT53YWxyY3ZfY3JlYXRlX3Ns b3QoY29ubiwgc2xvdG5hbWUsIHRlbXBvcmFyeSwgdHdvX3BoYXNlLCBmYWlsb3Zlciwgc25hcHNo b3RfYWN0aW9uLCBsc24pCisjZGVmaW5lIHdhbHJjdl9hbHRlcl9zbG90KGNvbm4sIHNsb3RuYW1l LCBmYWlsb3ZlcikgXAorCVdhbFJlY2VpdmVyRnVuY3Rpb25zLT53YWxyY3ZfYWx0ZXJfc2xvdChj b25uLCBzbG90bmFtZSwgZmFpbG92ZXIpCiAjZGVmaW5lIHdhbHJjdl9nZXRfYmFja2VuZF9waWQo Y29ubikgXAogCVdhbFJlY2VpdmVyRnVuY3Rpb25zLT53YWxyY3ZfZ2V0X2JhY2tlbmRfcGlkKGNv bm4pCiAjZGVmaW5lIHdhbHJjdl9leGVjKGNvbm4sIGV4ZWMsIG5SZXRUeXBlcywgcmV0VHlwZXMp IFwKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rv b2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggN2U4NjZlM2MzZC4uNTEzYzc3MDJmZiAx MDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rv b2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTg1LDYgKzg1LDcgQEAgQWx0ZXJPd25lclN0 bXQKIEFsdGVyUG9saWN5U3RtdAogQWx0ZXJQdWJsaWNhdGlvbkFjdGlvbgogQWx0ZXJQdWJsaWNh dGlvblN0bXQKK0FsdGVyUmVwbGljYXRpb25TbG90Q21kCiBBbHRlclJvbGVTZXRTdG10CiBBbHRl clJvbGVTdG10CiBBbHRlclNlcVN0bXQKQEAgLTM4ODAsNiArMzg4MSw3IEBAIHZhcmF0dHJpYl8x Yl9lCiB2YXJhdHRyaWJfNGIKIHZiaXRzCiB2ZXJpZmllcl9jb250ZXh0Cit3YWxyY3ZfYWx0ZXJf c2xvdF9mbgogd2FscmN2X2NoZWNrX2Nvbm5pbmZvX2ZuCiB3YWxyY3ZfY29ubmVjdF9mbgogd2Fs cmN2X2NyZWF0ZV9zbG90X2ZuCi0tIAoyLjMwLjAud2luZG93cy4yCgo= --_008_OS0PR01MB571623B1D01003F99A7BB983947A2OS0PR01MB5716jpnp_--