Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vy6yr-00HQqQ-39 for pgsql-hackers@arkaria.postgresql.org; Thu, 05 Mar 2026 11:35:02 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vy6yq-00GzmM-1G for pgsql-hackers@arkaria.postgresql.org; Thu, 05 Mar 2026 11:35:00 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vy6yp-00Gzlu-1R for pgsql-hackers@lists.postgresql.org; Thu, 05 Mar 2026 11:35:00 +0000 Received: from mail-japaneastazlp170110002.outbound.protection.outlook.com ([2a01:111:f403:c405::2] helo=TYVP286CU001.outbound.protection.outlook.com) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1vy6ym-00000000Wis-3DWo for pgsql-hackers@lists.postgresql.org; Thu, 05 Mar 2026 11:34:58 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cPUI6PC01esxomA8T0AQQqXT0sAkjJbtcjozqJnYMuHcDzguMwCWzstv0UMaG7sdUudvi8n/tOWJw2XhxY6aqksnOUZxN87Q4EOfZp5X3tyOA5N5s+bptn2j2g5D3WgHLGFdBjFCBXjVopkjSQUYHEsG0zMmyCDHPLTbSZ5MJj522wMN72DS2knY+TPALlsWVcHHDs2/qjy5YtMvcrNhQf5TVJ/9JPjcQD3+PJIqccNlW1OigCtAoUm1axyPAe2npS98JmR4H+1vmDhFPGWKN4ilpqtuK7rACJ/Jr/kHxpIvaZBBzc10twcCvYwSPUk4AKi9khPwyczqVsgCweu5/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=Ghg4HVsoiEhz2zvFVE5zOls0GEJduMsjCziRuykrXXY=; b=S+49TfPOB2mktKcmfpGCeO1r9YWnckgbMBFUoQT2V7pju/igekmfysbJ3hCLzabcVCrLi+G3byn/5FiuV/OqARHJyh8DnUMgZhh/ePeQC3rCQ1k/vlDphrN2tcxOPbm6nAFieyOGRhXX8DnQ2VeuE0Dc3LoK6Bsp6PLQX5YyWZ07B4f2i9e016hD3WgQCUK1fZw4M2L4S2dpWoGlaXT/OOGaAdLkADjxXp5eo8SM5379CJAal7CVkcRr0fmXFqMcII4hcM12/FeR4XUA/w3ddw7FcnOxKapL8pKG6mJx1f7I2zAOPTwjdcPc9pDRlug4D/MRUpPQzoTXeb6MXsmuqQ== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fujitsu.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ghg4HVsoiEhz2zvFVE5zOls0GEJduMsjCziRuykrXXY=; b=hEfNTvcZnejlSz6XTiLvevw+BMIVgRvyzznBnX2adUcc4xDn41thj2P66bUNtGgrM/6Fl/KpU4IMdD1D/Y7OTG7GA8AtYawg1A7dsd81zbTkkELBCVBiBfToa6emX0gOpXfhhhz+mYctZukVXs8PFCPgijLq5x6T4YdeaoJqGHhbdO4F+tw3smGQxEa8dAqiluzRnmjbxUPboLHKLaNwon+h9HOMZliRC2gDnUPQZl7DzTXH7WDCQSRvrQsc9m9nxkHfbSL1kqpYgYqkcmCB4mPrfi33wpaZ5JdbrqhJVN/dR1cQqJoANXpj2zP3e15pgb8b+isFh8pL1Ayh2nBmbg== Received: from TY4PR01MB16907.jpnprd01.prod.outlook.com (2603:1096:405:338::22) by OSZPR01MB8909.jpnprd01.prod.outlook.com (2603:1096:604:15a::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.17; Thu, 5 Mar 2026 11:34:51 +0000 Received: from TY4PR01MB16907.jpnprd01.prod.outlook.com ([fe80::bbb7:659c:a6e:927d]) by TY4PR01MB16907.jpnprd01.prod.outlook.com ([fe80::bbb7:659c:a6e:927d%4]) with mapi id 15.20.9678.016; Thu, 5 Mar 2026 11:34:51 +0000 From: "Zhijie Hou (Fujitsu)" To: Amit Kapila , shveta malik CC: Ajin Cherian , "Hayato Kuroda (Fujitsu)" , Ashutosh Sharma , PostgreSQL Hackers Subject: RE: [PATCH] Support automatic sequence replication Thread-Topic: [PATCH] Support automatic sequence replication Thread-Index: AQHclMAEzANLvjhWZU6Kdy4EwfRGq7VwxE4AgALLp4CAAdjUAIAAAIgAgAd6mACAAfU5gIAH/IAAgAEknICAACZ5gIAAMc0AgAMzVQCABBduAIAB47QAgABQMgCABLf1qYABZaZQgAMbtXCAA040gIABEEDAgAAYIICAAHAtAIAACApQ Date: Thu, 5 Mar 2026 11:34:51 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-AS, 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?NTBfQWN0aW9uSWQ9NmQ3ZDk5MGMtYjViNi00NGVmLTgzY2ItNTkyYWIzZjEw?= =?utf-8?B?ZjU1O01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?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?ZXREYXRlPTIwMjYtMDMtMDVUMTE6MTU6MzZaO01TSVBfTGFiZWxfYTcyOTVj?= =?utf-8?B?YzEtZDI3OS00MmFjLWFiNGQtM2IwZjRmZWNlMDUwX1NpdGVJZD1hMTlmMTIx?= =?utf-8?B?ZC04MWUxLTQ4NTgtYTlkOC03MzZlMjY3ZmQ0Yzc7TVNJUF9MYWJlbF9hNzI5?= =?utf-8?B?NWNjMS1kMjc5LTQyYWMtYWI0ZC0zYjBmNGZlY2UwNTBfVGFnPTEwLCAzLCAw?= =?utf-8?Q?,_1;?= 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: TY4PR01MB16907:EE_|OSZPR01MB8909:EE_ x-ms-office365-filtering-correlation-id: d3bbcb3e-e3de-468e-504a-08de7aab3724 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|6049299003|376014|366016|1800799024|1580799027|38070700021|4053099003; x-microsoft-antispam-message-info: OvQaRdBGDLeR8iiMfV3rpwmrAqjGwgOpor5Jr+dLipRtQw4SUv0V24pHYANNPfnqRd3NTEJ1Yr1ZmSX3U5ZdUri0AMWehPj7XLM15WdTx+5rG3y2JBD+Mj8FrGXRpG+IcLjdPMKJfoE76oCaTy/ogFwfrTFQpxFiKpQQo5Y4PDCkq4Z5U+LeQ0WvPglWjCR2UauSN5HN+SSlg6vdHjokls7qud0s7NO2YMtpSu9HIqFTRfa0oYr24I+h7C24I7P0cBFKYfcICiv55G6inQoaIPCdbZUe30xi9Wngg3HqAOJF5jEnn/Dl1Zqcr4fxYRsZZId0UlSB8A+xkgzCBoIOdbJGTsLDAj8689gdJ3Tek+EPmEm+lOl1MBh1YwOr0lTPAwZYQEfb/1aCYr3MHzMiRyzZAu1HQhqmqAWQvsZgZtMXdbKjPuhKpSCkA1fUWer0PeaDoZoLOLVZiBuT9aTgm0R+rpIfFyYnHaHVr0X8WK/y6RYurJo1Q27v5UplF186gj7xIfHZs25GFyl+yE3FkcEzdMsJ/XGLUR59r68h7WB3TkQhmqE5ZmAbzsAdsNWXDHOba/+Wq1vAi67ac6qBXitQKu88ROi0tqQFpaZXBB4u8AYGi+u+vTazGDDtbyWO4jsRNNUnq9jm93Mlv1ywT2TPTsbdO6ILIo4aH8IgaaQPaXqTqr4ETOOA4riQfAe5FkBFzu4SfpW20an/OAUWUx2YagRu/hB5OsSNqKMF69kWLOVmWC67g4uBvVHHK3q2nfvhzAuKLXL5eKHDKpm+27AfSs5AGuWSzj7dJYeGVr4= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:ja;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY4PR01MB16907.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(6049299003)(376014)(366016)(1800799024)(1580799027)(38070700021)(4053099003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MkY0eWMrZHk0b09tMXVkM3ZFQXhWL2Z6N3JZOHlrODJFTDNJWm5nN3FxY3Vp?= =?utf-8?B?R3hTMzFMZWtNMk11Q0dCOVRCckR3dWFMQy9mMGVpZnNYK0pTTmsweFpsSE8y?= =?utf-8?B?eC9ZVWFYSGpOOCswMDdyN3pyV3JUd1F5UU5qQTFzazdPRTlUUGp0eEh5R3lJ?= =?utf-8?B?eGRvZWZHSFRIaTZQMmdxN2tObnlnQnBMZ0dzdENKSHNLM3g1UUVoSk8vSndn?= =?utf-8?B?YXFlWG5tZnJwalRLYkVyN2gxSGlwaEhqcmFQR2VnY1Z6aW9ZeXhwVEN5dnM3?= =?utf-8?B?a2R1T0dCSGxyWVNoZG9nWm9IV3pPSitwVzhvZEo2K1Q1Z0FESTJBV3pnVC9y?= =?utf-8?B?NER0b003c1U5L1JTQ1dJdlpSTllqeG1jNEtLbnhBb293bDdQb2dmVFBkYTJy?= =?utf-8?B?NUx6TWU5L0V1Smdxa1hQNFUwRE9ML21lQkZlb0F3N05JQjJ0NjBqb1Z6ekRC?= =?utf-8?B?cjl1RE9UbDBvWmpPMU9KWEo5YzRqaDgwUzFuMFZyU01zQkt2NEhCOGt3N0dV?= =?utf-8?B?MzFmV1BnUkoxSXcybVBLRlcyQi9tZ0FtVC83dDJ3NE5GTThYVGJmeCs1UXpO?= =?utf-8?B?ZXFNenJoTC9HeWpVcDI2ZzVORFpJS2dkalh2dUpxZFhUOENsQ0xRQlBYUXZl?= =?utf-8?B?WlQrTVdZNDZBQnJFL2R5OXQ1djhvOE9tcUQ0VjhhVmwvMUFnb2lZaDIxSUNK?= =?utf-8?B?TVVLVTIyVmRWdUpjT0xZeUxxSEtqRHJYVVVVTk5HZWVJYzFoV21UMElnS211?= =?utf-8?B?Rmx3cW81Q3I4RUxlNjlQNEVOR1hMY1daYnV4MFhhNDlVL2RwQmI1Q25ZbE84?= =?utf-8?B?bDJiRUpGbGEweGtJbDV6WWRMNGVUTmYzRCtHdUQ3eDg4TzI1Z0JkVGp4ajA3?= =?utf-8?B?VTQvcEpTUFlJai9UL0ZjTzRDR09wQ0Vnb25pU2ZtWEdFMVVMbU82cVdPU3pt?= =?utf-8?B?cTZJem1LbHpIRmxSbmV5YmJMTk00NEtmTmhRbGprOGZaTWMwRElvckhRVVFZ?= =?utf-8?B?YVBnR1hxNE0raG1kN3hqVDBiUURIcjFOYjZ5RVNSa282ajNMVU5KQ1I3MFdN?= =?utf-8?B?cVRjT2pzZXFzcnVIbEg4cUNJUEt5UHZsWklIRXNDUytxYTlaSkRKQXUwSmM5?= =?utf-8?B?eklaWTRBM1o2NHJFL0JOTkRaTmRVU0MyVHlyb3V3SW1JREk4aG5tLzdPMFg5?= =?utf-8?B?eDRralhETmJBMjdXcE5lVElTTTE2QTNyZkNEZGJYUHBvRGVKSUQvSEQyZXpN?= =?utf-8?B?MENxcm9NcGZjUTJmSnZyaHIxSHVsc29xUnpTZCtwK214VXZCM3JlNXZObTJn?= =?utf-8?B?MmNobUloMWFQSi8xSmt4b0IxeGkvNXVsckwvM0VNdW9hVlVFRjNERmFVODd3?= =?utf-8?B?NkowYm1ZT2UycWhTRjVzUTROSzNnc2k0c1B5SlV4OENFR1I1VEcvSjE4T24x?= =?utf-8?B?TWdJNXpXRGpvWmxPNC9IT2ZrdDRlM2ZnRlpMdkdKYXdRcUNyVi9ZOWFKRk1G?= =?utf-8?B?SEp4QkRYSTY2TUhlNy96SWIvTXAydGROdW55ZUNQdXpRUHBWcW0rTXZKc2xI?= =?utf-8?B?S2hzQnVmcUdHYmh3OXJsZVZmdDk4RE52Y1RnSVc4Rjc3WFpNNHVtK3dVWi8y?= =?utf-8?B?S1BRb1A4a2l3YjRpQWEwSWFlWTA1amR5UDZoOVJoSW5TZytJU2M0alpPT3hJ?= =?utf-8?B?eXZDYjZvdXBGSzJ3QlZ5Q3pZVGZseGg4NndFcjJoUk43MDRpcEM4VTBJZ2Jk?= =?utf-8?B?c3pxaXFaV2hUOHRTSjE0NFE0V1F1eHhKNUdwVzR4NU0rWFc0OEZQM1BsTEtC?= =?utf-8?B?OXlBQ29OSVVUd0hYNmRGcGprNDFvSUhSTkxNK1REL2kxd2hDdFdvRjVNM3h3?= =?utf-8?B?bG5DcGZ0cDh3WUdaSm9YeG9YOFNicksrZHJOOGxyZ3VCbzQvZWVlcFdFQjJL?= =?utf-8?B?V1FXYTU3SGg1WlRKdjRJNTF6ZDNuM1RTSERtUDFtcG9MSGxMdWR1UGtQZVNl?= =?utf-8?B?dDAwMEZzL0RhQU9uNTFBSkRpZXg0VngrU3VHWldQZnVHQlVkamFnZlFidnVt?= =?utf-8?B?L1lJanBjZlh4MStOcDlmWGw3NjRReThadWhyS0ZwSjRCZ2FkeDFDbTNNTzEv?= =?utf-8?B?OEFPWDEyMG95RW1rK1UvWENhdVZvMFozWWErVGhzS0tPNGVqM0lLMFpQVW9m?= =?utf-8?B?dkpaNEw5c1BMWkFTNW1HTGVjMkF1TFNJeVZhSWdGODdGTGkzcDNublowckhm?= =?utf-8?B?dm9xQ0Rod2o4L3hMcUV6QkVZYnM5MlA5aE9VYjQ0Y2JCbzFtWWhEMnpaYk9i?= =?utf-8?B?c1p1WVdralMxeXBxL21RRG05SnVQaWhVQWdrbHlXR3ArajBYdXlsUT09?= Content-Type: multipart/mixed; boundary="_003_TY4PR01MB169077FE33BDE8363F8795EC5947DATY4PR01MB16907jp_" MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: FXech2R1PnMH2q8FWKrfqL014IzL3wM+k0neYrX9i+yN9SsNfaTnrLFajKTNF4Per0oCv0ThiI4QFgb9suyTBStWgVL6t+3YPqj0CjWPlODqe2XE6W2XB90Ng8Z7LZjrdLv7OQK76hH30/qvzc5CSLGR1Td1Z8kKvlovWVtaWgh5YLfnDLxm4feixCerqwQtxmT/BKt5J43Zxp/qVzpeSkprZm1+ziQpZGRe4Z65S2v7Jow5yzWNKSRz+yhId6J6gOLQ9oBs02CU41Rp0y535YWUQN4ZBiv1kcghxzVnTVZ0Y2OM4nZzMZ46cWEuhadc4lXYaYP1nFfV+n7mO9E6Ng== X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TY4PR01MB16907.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d3bbcb3e-e3de-468e-504a-08de7aab3724 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Mar 2026 11:34:51.5980 (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: IJmlqP8c+C4DvLuSJyqSR+JoYUmYbZWLLHNWxfm2MTDq6biVcXnryhPHuUiyqUnOXLrNkV3xXXhXjJBT0JNc9A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSZPR01MB8909 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_003_TY4PR01MB169077FE33BDE8363F8795EC5947DATY4PR01MB16907jp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 T24gVGh1cnNkYXksIE1hcmNoIDUsIDIwMjYgNjo0NyBQTSBBbWl0IEthcGlsYSA8YW1pdC5rYXBp bGExNkBnbWFpbC5jb20+IHdyb3RlOg0KPiBPbiBUaHUsIE1hciA1LCAyMDI2IGF0IDk6MzXigK9B TSBzaHZldGEgbWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+DQo+IHdyb3RlOg0KPiA+DQo+ ID4NCj4gPiAzKQ0KPiA+ICsgLyogU2xlZXAgZm9yIHRoZSBjb25maWd1cmVkIGludGVydmFsICov DQo+ID4gKyAodm9pZCkgV2FpdExhdGNoKE15TGF0Y2gsDQo+ID4gKyBXTF9MQVRDSF9TRVQgfCBX TF9USU1FT1VUIHwgV0xfRVhJVF9PTl9QTV9ERUFUSCwgc2xlZXBfbXMsDQo+ID4gKyBXQUlUX0VW RU5UX0xPR0lDQUxfU1lOQ19TVEFURV9DSEFOR0UpOw0KPiA+DQo+ID4gSSBkb24ndCB0aGluayB0 aGlzIHdhaXQtZXZlbnQgaXMgYXBwcm9wcmlhdGUuIFVubGlrZSB0YWJsZXN5bmMsIHdlIGFyZQ0K PiA+IG5vdCB3YWl0aW5nIGZvciBhbnkgc3RhdGUgY2hhbmdlIGhlcmUuIFNoYWxsIHdlIGFkZCBh IG5ldyBvbmUgZm9yIG91cg0KPiA+IGNhc2U/IEhvdyBhYm91dCBXQUlUX0VWRU5UX0xPR0lDQUxf U0VRU1lOQ19NQUlOPyBUaG91Z2h0cz8NCj4gPg0KPiANCj4gKzEgZm9yIGEgbmV3IHdhaXQgZXZl bnQuIEZldyBvdGhlciBtaW5vciBjb21tZW50czoNCg0KQWRkZWQuDQoNCj4gDQo+IDEuDQo+ICsg KiBDaGVjayBpZiB0aGUgc3Vic2NyaXB0aW9uIGluY2x1ZGVzIHNlcXVlbmNlcyBhbmQgc3RhcnQg YQ0KPiArIHNlcXVlbmNlc3luYw0KPiArICogd29ya2VyIGlmIG9uZSBpcyBub3QgYWxyZWFkeSBy dW5uaW5nLiBUaGUgYWN0aXZlIHNlcXVlbmNlc3luYyB3b3JrZXINCj4gKyB3aWxsDQo+ICsgKiBo YW5kbGUgYWxsIHBlbmRpbmcgc2VxdWVuY2Ugc3luY2hyb25pemF0aW9uLiBJZiBhbnkgc2VxdWVu Y2VzIHJlbWFpbg0KPiArICogdW5zeW5jaHJvbml6ZWQgYWZ0ZXIgaXQgZXhpdHMsIGEgbmV3IHdv cmtlciBjYW4gYmUgc3RhcnRlZCBpbiB0aGUNCj4gKyBuZXh0DQo+ICsgKiBpdGVyYXRpb24uDQo+ ICAgKg0KPiAtICogU3RhcnQgYSBzZXF1ZW5jZXN5bmMgd29ya2VyIGlmIG9uZSBpcyBub3QgYWxy ZWFkeSBydW5uaW5nLiBUaGUgYWN0aXZlDQo+IC0gKiBzZXF1ZW5jZXN5bmMgd29ya2VyIHdpbGwg aGFuZGxlIGFsbCBwZW5kaW5nIHNlcXVlbmNlIHN5bmNocm9uaXphdGlvbi4gSWYNCj4gYW55DQo+ IC0gKiBzZXF1ZW5jZXMgcmVtYWluIHVuc3luY2hyb25pemVkIGFmdGVyIGl0IGV4aXRzLCBhIG5l dyB3b3JrZXIgY2FuIGJlDQo+IHN0YXJ0ZWQNCj4gLSAqIGluIHRoZSBuZXh0IGl0ZXJhdGlvbi4N Cj4gDQo+IFdoeSBkaWQgdGhpcyBjb21tZW50IGNoYW5nZT8gVGhlIGVhcmxpZXIgb25lIHNvdW5k cyBva2F5IHRvIG1lLg0KDQpJIHRoaW5rIGVpdGhlciB2ZXJzaW9uIGlzIGZpbmUsIHNvIHJldmVy dGVkIHRoaXMgY2hhbmdlIG5vdy4NCg0KPiANCj4gMi4NCj4gICBicmVhazsNCj4gKw0KPiAgIGNh c2UgQ09QWVNFUV9JTlNVRkZJQ0lFTlRfUEVSTToNCj4gDQo+IFdoeSBkb2VzIHRoaXMgcGF0Y2gg YWRkIGFkZGl0aW9uYWwgbmV3IGxpbmVzPyBXZSB1c2UgYm90aCBzdHlsZXMgKGV4aXN0aW5nDQo+ IGFuZCB3aGF0IHRoaXMgcGF0Y2ggZG9lcykgaW4gdGhlIGNvZGUgYnV0IGl0IHNlZW1zIHVubmVj ZXNzYXJ5IHRvIGNoYW5nZSBmb3INCj4gdGhpcyBwYXRjaC4NCg0KUmVtb3ZlZC4NCg0KPiANCj4g My4NCj4gLSBQcm9jZXNzU2VxdWVuY2VzRm9yU3luYygpOw0KPiArDQo+ICsgLyogQ2hlY2sgaWYg c2VxdWVuY2Ugd29ya2VyIG5lZWRzIHRvIGJlIHN0YXJ0ZWQgKi8NCj4gKyBNYXliZUxhdW5jaFNl cXVlbmNlU3luY1dvcmtlcigpOw0KPiANCj4gTm8gbmVlZCBmb3IgYW4gYWRkaXRpb25hbCBsaW5l IGFuZCBhIGNvbW1lbnQgaGVyZS4NCg0KUmVtb3ZlZC4NCg0KSGVyZSBpcyB0aGUgVjExIHBhdGNo IHdoaWNoIGFkZHJlc3NlZCBhbGwgYWJvdmUgY29tbWVudHMgYW5kIFsxXVsyXS4NCg0KWzFdIGh0 dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL21lc3NhZ2UtaWQvQ0FKcHkwdUFmdS1WUHFDa25MTHZK JTJCUFV4X2N5b1ItYjcweFVOVDZQeXY4Ti1vZEtpelElNDBtYWlsLmdtYWlsLmNvbQ0KWzJdIGh0 dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL21lc3NhZ2UtaWQvQ0FKcHkwdUJlQWR6Ni0zUDI2RXJ5 ZXEzVHlqQS1HaUtZM3owaEZNeHpaRCUzREFZR3FRM1ElNDBtYWlsLmdtYWlsLmNvbQ0KDQpCZXN0 IFJlZ2FyZHMsDQpIb3UgemoNCg== --_003_TY4PR01MB169077FE33BDE8363F8795EC5947DATY4PR01MB16907jp_ Content-Type: application/octet-stream; name="v11-0002-Synchronize-sequences-directly-in-REFRESH-SEQUEN.patch" Content-Description: v11-0002-Synchronize-sequences-directly-in-REFRESH-SEQUEN.patch Content-Disposition: attachment; filename="v11-0002-Synchronize-sequences-directly-in-REFRESH-SEQUEN.patch"; size=18979; creation-date="Thu, 05 Mar 2026 11:17:23 GMT"; modification-date="Thu, 05 Mar 2026 11:34:50 GMT" Content-Transfer-Encoding: base64 RnJvbSBjY2UwYzM2N2EwYzkyNWVjOTExMTk0NzM2MmU1YzQ1ODVkZjNiNzgwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBaaGlqaWUgSG91IDxob3V6ai5mbnN0QGZ1aml0c3UuY29tPgpE YXRlOiBUaHUsIDUgTWFyIDIwMjYgMTc6MTc6NDEgKzA4MDAKU3ViamVjdDogW1BBVENIIHYxMSAy LzJdIFN5bmNocm9uaXplIHNlcXVlbmNlcyBkaXJlY3RseSBpbiBSRUZSRVNIIFNFUVVFTkNFUwog Y29tbWFuZAoKVGhlIEFMVEVSIFNVQlNDUklQVElPTiAuLi4gUkVGUkVTSCBTRVFVRU5DRVMgY29t bWFuZCBjdXJyZW50bHkgc2V0cyBhbGwKc2VxdWVuY2Ugc3RhdGVzIGluIHBnX3N1YnNjcmlwdGlv bl9yZWwgdG8gSU5JVCBhbmQgcmVsaWVzIG9uIHRoZSBzZXF1ZW5jZSBzeW5jCndvcmtlciB0byBw ZXJmb3JtIHRoZSBhY3R1YWwgc3luY2hyb25pemF0aW9uIGFuZCB1cGRhdGUgc3RhdGVzIHRvIFJF QURZLgoKV2l0aCB0aGUgcmVjZW50IGNoYW5nZSBtYWtpbmcgdGhlIHNlcXVlbmNlIHN5bmMgd29y a2VyIGxvbmctbGl2ZWQsIG1vc3QKc2VxdWVuY2VzIGFyZSBub3cgc3luY2hyb25pemVkIGluIHRo ZSBiYWNrZ3JvdW5kLCByZWR1Y2luZyB0aGUgbmVlZCBmb3IKUkVGUkVTSCBTRVFVRU5DRVMuIEhv d2V2ZXIsIHRoZSBjb21tYW5kIHJlbWFpbnMgbmVjZXNzYXJ5IGZvciBzZXF1ZW5jZXMgdGhhdApo YXZlbid0IGJlZW4gc3luY2hyb25pemVkLgoKVGhpcyBjb21taXQgZW5oYW5jZXMgUkVGUkVTSCBT RVFVRU5DRVMgdG8gc3luY2hyb25pemUgc2VxdWVuY2VzIGRpcmVjdGx5IHdpdGhpbgp0aGUgY29t bWFuZCBpdHNlbGYsIGVsaW1pbmF0aW5nIHRoZSBvdmVyaGVhZCBvZiBsYXVuY2hpbmcgYSB3b3Jr ZXIgYW5kIHVwZGF0aW5nCmNhdGFsb2cgZW50cmllcyB1bm5lY2Vzc2FyaWx5LgotLS0KIGRvYy9z cmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwgICAgICAgICB8ICAgNiArLQogc3JjL2Jh Y2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jICAgICAgIHwgIDE3ICstCiAuLi4vcmVw bGljYXRpb24vbG9naWNhbC9zZXF1ZW5jZXN5bmMuYyAgICAgICAgfCAxNzUgKysrKysrKysrKysr KysrLS0tCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbl9yZWwuaCAgICAgfCAg IDEgKwogc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vbG9naWNhbHdvcmtlci5oICAgICAgIHwgICA1 ICsKIHNyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNl9zZXF1ZW5jZXMucGwgICAgICB8ICA0OSAr KysrKwogNiBmaWxlcyBjaGFuZ2VkLCAyMDYgaW5zZXJ0aW9ucygrKSwgNDcgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbCBiL2Rv Yy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKaW5kZXggYmI1MjNhZjVkMzcuLjMy M2Q1YjdjN2EwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKQEAgLTE3ODcs OSArMTc4Nyw5IEBAIFB1YmxpY2F0aW9uczoKIAogICA8cGFyYT4KICAgIEEgPGZpcnN0dGVybT5z ZXF1ZW5jZSBzeW5jaHJvbml6YXRpb24gd29ya2VyPC9maXJzdHRlcm0+IHdpbGwgYmUgc3RhcnRl ZAotICAgYWZ0ZXIgZXhlY3V0aW5nIGFueSBvZiB0aGUgYWJvdmUgc3Vic2NyaWJlciBjb21tYW5k cy4gVGhlIHdvcmtlciB3aWxsCi0gICByZW1haW4gcnVubmluZyBmb3IgdGhlIGxpZmUgb2YgdGhl IHN1YnNjcmlwdGlvbiwgcGVyaW9kaWNhbGx5Ci0gICBzeW5jaHJvbml6aW5nIGFsbCBwdWJsaXNo ZWQgc2VxdWVuY2VzLgorICAgYWZ0ZXIgZXhlY3V0aW5nIDxjb21tYW5kPkFMVEVSIFNVQlNDUklQ VElPTiAuLi4gUkVGUkVTSCBQVUJMSUNBVElPTjwvY29tbWFuZD4KKyAgIGNvbW1hbmQuIFRoZSB3 b3JrZXIgd2lsbCByZW1haW4gcnVubmluZyBmb3IgdGhlIGxpZmUgb2YgdGhlIHN1YnNjcmlwdGlv biwKKyAgIHBlcmlvZGljYWxseSBzeW5jaHJvbml6aW5nIGFsbCBwdWJsaXNoZWQgc2VxdWVuY2Vz LgogICA8L3BhcmE+CiAgIDxwYXJhPgogICAgVGhlIGFiaWxpdHkgdG8gbGF1bmNoIGEgc2VxdWVu Y2Ugc3luY2hyb25pemF0aW9uIHdvcmtlciBpcyBsaW1pdGVkIGJ5IHRoZQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCmluZGV4IDVlM2MwOTY0ZDM4Li4wYTVhY2ZkYTBmZiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYwpAQCAtMTI0NSwyNSArMTI0 NSwxMCBAQCBBbHRlclN1YnNjcmlwdGlvbl9yZWZyZXNoX3NlcShTdWJzY3JpcHRpb24gKnN1YikK IAogCVBHX1RSWSgpOwogCXsKLQkJTGlzdAkgICAqc3VicmVsX3N0YXRlczsKLQogCQljaGVja19w dWJsaWNhdGlvbnNfb3JpZ2luX3NlcXVlbmNlcyh3cmNvbm4sIHN1Yi0+cHVibGljYXRpb25zLCB0 cnVlLAogCQkJCQkJCQkJCQlzdWItPm9yaWdpbiwgTlVMTCwgMCwgc3ViLT5uYW1lKTsKIAotCQkv KiBHZXQgbG9jYWwgc2VxdWVuY2UgbGlzdC4gKi8KLQkJc3VicmVsX3N0YXRlcyA9IEdldFN1YnNj cmlwdGlvblJlbGF0aW9ucyhzdWItPm9pZCwgZmFsc2UsIHRydWUsIGZhbHNlKTsKLQkJZm9yZWFj aF9wdHIoU3Vic2NyaXB0aW9uUmVsU3RhdGUsIHN1YnJlbCwgc3VicmVsX3N0YXRlcykKLQkJewot CQkJT2lkCQkJcmVsaWQgPSBzdWJyZWwtPnJlbGlkOwotCi0JCQlVcGRhdGVTdWJzY3JpcHRpb25S ZWxTdGF0ZShzdWItPm9pZCwgcmVsaWQsIFNVQlJFTF9TVEFURV9JTklULAotCQkJCQkJCQkJICAg SW52YWxpZFhMb2dSZWNQdHIsIGZhbHNlKTsKLQkJCWVyZXBvcnQoREVCVUcxLAotCQkJCQllcnJt c2dfaW50ZXJuYWwoInNlcXVlbmNlIFwiJXMuJXNcIiBvZiBzdWJzY3JpcHRpb24gXCIlc1wiIHNl dCB0byBJTklUIHN0YXRlIiwKLQkJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfcmVsX25h bWVzcGFjZShyZWxpZCkpLAotCQkJCQkJCQkJZ2V0X3JlbF9uYW1lKHJlbGlkKSwKLQkJCQkJCQkJ CXN1Yi0+bmFtZSkpOwotCQl9CisJCUFsdGVyU3ViU3luY1NlcXVlbmNlcyh3cmNvbm4sIHN1Yi0+ b2lkLCBzdWItPm5hbWUsIHN1Yi0+cnVuYXNvd25lcik7CiAJfQogCVBHX0ZJTkFMTFkoKTsKIAl7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3NlcXVlbmNlc3lu Yy5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zZXF1ZW5jZXN5bmMuYwppbmRl eCBjZGU5ZWFiYTQ3NC4uY2M3MmY5ZWQwZmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvc2VxdWVuY2VzeW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC9zZXF1ZW5jZXN5bmMuYwpAQCAtMjA3LDcgKzIwNyw3IEBAIGdldF9zZXF1ZW5j ZXNfc3RyaW5nKExpc3QgKnNlcWluZGV4ZXMsIExpc3QgKnNlcWluZm9zLCBTdHJpbmdJbmZvIGJ1 ZikKICAqLwogc3RhdGljIHZvaWQKIHJlcG9ydF9zZXF1ZW5jZV9lcnJvcnMoTGlzdCAqbWlzbWF0 Y2hlZF9zZXFzX2lkeCwgTGlzdCAqaW5zdWZmcGVybV9zZXFzX2lkeCwKLQkJCQkJICAgTGlzdCAq bWlzc2luZ19zZXFzX2lkeCwgTGlzdCAqc2VxaW5mb3MpCisJCQkJCSAgIExpc3QgKm1pc3Npbmdf c2Vxc19pZHgsIExpc3QgKnNlcWluZm9zLCBjaGFyICpzdWJuYW1lKQogewogCVN0cmluZ0luZm8J c2Vxc3RyOwogCkBAIC0yNTMsNyArMjUzLDcgQEAgcmVwb3J0X3NlcXVlbmNlX2Vycm9ycyhMaXN0 ICptaXNtYXRjaGVkX3NlcXNfaWR4LCBMaXN0ICppbnN1ZmZwZXJtX3NlcXNfaWR4LAogCWVyZXBv cnQoRVJST1IsCiAJCQllcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVf U1RBVEUpLAogCQkJZXJybXNnKCJsb2dpY2FsIHJlcGxpY2F0aW9uIHNlcXVlbmNlIHN5bmNocm9u aXphdGlvbiBmYWlsZWQgZm9yIHN1YnNjcmlwdGlvbiBcIiVzXCIiLAotCQkJCSAgIE15U3Vic2Ny aXB0aW9uLT5uYW1lKSk7CisJCQkJICAgc3VibmFtZSkpOwogfQogCiAvKgpAQCAtMjgxLDYgKzI4 MSw3IEBAIGdldF9hbmRfdmFsaWRhdGVfc2VxX2luZm8oVHVwbGVUYWJsZVNsb3QgKnNsb3QsIFJl bGF0aW9uICpzZXF1ZW5jZV9yZWwsCiAJSGVhcFR1cGxlCXR1cDsKIAlGb3JtX3BnX3NlcXVlbmNl IGxvY2FsX3NlcTsKIAlMb2dpY2FsUmVwU2VxdWVuY2VJbmZvICpzZXFpbmZvX2xvY2FsOworCUxP Q0tNT0RFCWxvY2ttb2RlOwogCiAJKnNlcWlkeCA9IERhdHVtR2V0SW50MzIoc2xvdF9nZXRhdHRy KHNsb3QsICsrY29sLCAmaXNudWxsKSk7CiAJQXNzZXJ0KCFpc251bGwpOwpAQCAtMzI2LDggKzMy NywyMiBAQCBnZXRfYW5kX3ZhbGlkYXRlX3NlcV9pbmZvKFR1cGxlVGFibGVTbG90ICpzbG90LCBS ZWxhdGlvbiAqc2VxdWVuY2VfcmVsLAogCUFzc2VydChjb2wgPT0gUkVNT1RFX1NFUV9DT0xfQ09V TlQpOwogCiAJc2VxaW5mb19sb2NhbC0+Zm91bmRfb25fcHViID0gdHJ1ZTsKKwlzZXFpbmZvX2xv Y2FsLT5pbmNyZW1lbnQgPSAocmVtb3RlX2luY3JlbWVudCA+IDApOwogCi0JKnNlcXVlbmNlX3Jl bCA9IHRyeV90YWJsZV9vcGVuKHNlcWluZm9fbG9jYWwtPmxvY2FscmVsaWQsIFJvd0V4Y2x1c2l2 ZUxvY2spOworCS8qCisJICogV2UgdGFrZSBhIHN0cm9uZ2VyIGxvY2sgZHVyaW5nIERETCBjb21t YW5kcyAoY3VycmVudGx5IG9ubHkgQUxURVIKKwkgKiBTVUJTQ1JJUFRJT04gLi4uIFJFRlJFU0gg U0VRVUVOQ0VTKSB0byBwcmV2ZW50IGNvbmN1cnJlbnQgc2VxdWVuY2VzeW5jCisJICogd29ya2Vy cyBmcm9tIHVwZGF0aW5nIHRoZSBwYWdlX2xzbiB3aGlsZSB0aGUgRERMIGlzIGFsc28gdXBkYXRp bmcgdGhlCisJICogc2FtZSBzZXF1ZW5jZS4gVGhpcyBlbnN1cmVzIHdlIGNhbiBhbHdheXMgZmV0 Y2ggdGhlIGxhdGVzdCBwYWdlX2xzbiB0bworCSAqIGRldGVybWluZSB3aGV0aGVyIHRoZSByZW1v dGUgc2VxdWVuY2UgdmFsdWUgc2hvdWxkIGJlIHN5bmNocm9uaXplZCAoc2VlCisJICogdmFsaWRh dGVfc2Vxc3luY19zdGF0ZSkuCisJICovCisJaWYgKElzTG9naWNhbFdvcmtlcigpKQorCQlsb2Nr bW9kZSA9IFJvd0V4Y2x1c2l2ZUxvY2s7CisJZWxzZQorCQlsb2NrbW9kZSA9IFNoYXJlUm93RXhj bHVzaXZlTG9jazsKKworCSpzZXF1ZW5jZV9yZWwgPSB0cnlfdGFibGVfb3BlbihzZXFpbmZvX2xv Y2FsLT5sb2NhbHJlbGlkLCBsb2NrbW9kZSk7CiAKIAkvKiBTZXF1ZW5jZSB3YXMgY29uY3VycmVu dGx5IGRyb3BwZWQ/ICovCiAJaWYgKCEqc2VxdWVuY2VfcmVsKQpAQCAtMzY2LDcgKzM4MSw4IEBA IGdldF9hbmRfdmFsaWRhdGVfc2VxX2luZm8oVHVwbGVUYWJsZVNsb3QgKnNsb3QsIFJlbGF0aW9u ICpzZXF1ZW5jZV9yZWwsCiAgKiB3aGV0aGVyIHRoZSBzZXF1ZW5jZSBoYXMgZHJpZnRlZC4KICAq Lwogc3RhdGljIENvcHlTZXFSZXN1bHQKLXZhbGlkYXRlX3NlcXN5bmNfc3RhdGUoTG9naWNhbFJl cFNlcXVlbmNlSW5mbyAqc2VxaW5mbywgUmVsYXRpb24gc2VxdWVuY2VfcmVsKQordmFsaWRhdGVf c2Vxc3luY19zdGF0ZShMb2dpY2FsUmVwU2VxdWVuY2VJbmZvICpzZXFpbmZvLCBSZWxhdGlvbiBz ZXF1ZW5jZV9yZWwsCisJCQkJCSAgIFhMb2dSZWNQdHIgbG9jYWxfcGFnZV9sc24pCiB7CiAJQWNs UmVzdWx0CWFjbHJlc3VsdDsKIAlPaWQJCQlzZXFvaWQgPSBzZXFpbmZvLT5sb2NhbHJlbGlkOwpA QCAtMzc3LDYgKzM5MywyNCBAQCB2YWxpZGF0ZV9zZXFzeW5jX3N0YXRlKExvZ2ljYWxSZXBTZXF1 ZW5jZUluZm8gKnNlcWluZm8sIFJlbGF0aW9uIHNlcXVlbmNlX3JlbCkKIAkJaW50NjQJCWxvY2Fs X2xhc3RfdmFsdWU7CiAJCWJvb2wJCWxvY2FsX2lzX2NhbGxlZDsKIAorCQkvKgorCQkgKiBBbGxv dyBzeW5jaHJvbml6YXRpb24gaWYgdGhlIHJlbW90ZSBzZXF1ZW5jZSBkYXRhIGhhcyBhIG1vcmUg cmVjZW50CisJCSAqIExTTiB0aGFuIHRoZSBsb2NhbCBzdGF0ZSwgb3IgaWYgbm8gbG9jYWwgTFNO IGV4aXN0cyB5ZXQuCisJCSAqLworCQlpZiAoIVhMb2dSZWNQdHJJc1ZhbGlkKGxvY2FsX3BhZ2Vf bHNuKSB8fAorCQkJbG9jYWxfcGFnZV9sc24gPCBzZXFpbmZvLT5wYWdlX2xzbikKKwkJCXJldHVy biBDT1BZU0VRX0FMTE9XRUQ7CisKKwkJLyoKKwkJICogU2tpcCBzeW5jaHJvbml6YXRpb24gaWYg d2UgYXJlIHByb2Nlc3Npbmcgb3V0ZGF0ZWQgc2VxdWVuY2UgaW5mbworCQkgKiBiYXNlZCBvbiB0 aGUgTFNOLiBUaGlzIG9jY3VycyB3aGVuIHRoZSBzZXF1ZW5jZSBoYXMgYmVlbiB1cGRhdGVkIHRv CisJCSAqIG1vcmUgcmVjZW50IGRhdGEgY29uY3VycmVudGx5ICh2aWEgZWl0aGVyIEFMVEVSIFNV QlNDUklQVElPTiAuLi4KKwkJICogUkVGUkVTSCBTRVFVRU5DRVMgb3IgdGhlIHNlcXVlbmNlc3lu YyB3b3JrZXIpLgorCQkgKi8KKwkJaWYgKFhMb2dSZWNQdHJJc1ZhbGlkKGxvY2FsX3BhZ2VfbHNu KSAmJgorCQkJbG9jYWxfcGFnZV9sc24gPiBzZXFpbmZvLT5wYWdlX2xzbikKKwkJCXJldHVybiBD T1BZU0VRX05PX0RSSUZUOworCiAJCS8qCiAJCSAqIFNraXAgc3luY2hyb25pemF0aW9uIGlmIHRo ZSBjdXJyZW50IHVzZXIgZG9lcyBub3QgaGF2ZSBzdWZmaWNpZW50CiAJCSAqIHByaXZpbGVnZXMg dG8gcmVhZCB0aGUgc2VxdWVuY2UgZGF0YS4KQEAgLTM4NCw2ICs0MTgsNDAgQEAgdmFsaWRhdGVf c2Vxc3luY19zdGF0ZShMb2dpY2FsUmVwU2VxdWVuY2VJbmZvICpzZXFpbmZvLCBSZWxhdGlvbiBz ZXF1ZW5jZV9yZWwpCiAJCWlmICghR2V0U2VxdWVuY2Uoc2VxdWVuY2VfcmVsLCAmbG9jYWxfbGFz dF92YWx1ZSwgJmxvY2FsX2lzX2NhbGxlZCkpCiAJCQlyZXR1cm4gQ09QWVNFUV9JTlNVRkZJQ0lF TlRfUEVSTTsKIAorCQkvKgorCQkgKiBTa2lwIHN5bmNocm9uaXphdGlvbiBpZiBhcHBseWluZyB0 aGUgcmVtb3RlIHZhbHVlIHdvdWxkIGNhdXNlIHRoZQorCQkgKiBsb2NhbCBzZXF1ZW5jZSB0byBt b3ZlIGJhY2t3YXJkLiBUaGlzIGNhbiBoYXBwZW4gd2hlbjoKKwkJICoKKwkJICogLSBGb3IgaW5j cmVtZW50YWwgc2VxdWVuY2VzLCB0aGUgcmVtb3RlIHZhbHVlIGlzIGJlaGluZCB0aGUgbG9jYWwg b25lCisJCSAqIC0gRm9yIGRlY3JlbWVudGFsIHNlcXVlbmNlcywgdGhlIHJlbW90ZSB2YWx1ZSBp cyBhaGVhZCBvZiB0aGUgbG9jYWwKKwkJICogICBvbmUKKwkJICoKKwkJICogWFhYIFRoaXMgb2Nj dXJzIG5vdCBvbmx5IHdoZW4gdGhlIGxvY2FsIHNlcXVlbmNlIGhhcyBiZWVuCisJCSAqIHN5bmNo cm9uaXplZCB0byBhIG5ld2VyIHZhbHVlIGZyb20gdGhlIHB1Ymxpc2hlciAod2hlcmUgc2tpcHBp bmcgaXMKKwkJICogbmVjZXNzYXJ5IHRvIGF2b2lkIGJhY2t3YXJkIG1vdmVtZW50KSwgYnV0IGFs c28gd2hlbiB0aGUgbG9jYWwKKwkJICogc2VxdWVuY2UgaGFzIGJlZW4gbWFudWFsbHkgdXBkYXRl ZCBieSB0aGUgdXNlciBvbiB0aGUgc3Vic2NyaWJlci4gVGhlCisJCSAqIGxhdHRlciBjb3VsZCBi ZSBjb25zaWRlcmVkIGEgcmVwbGljYXRpb24gY29uZmxpY3QsIGFuZCBvdmVyd3JpdGluZworCQkg KiB0aGUgdXNlcidzIHVwZGF0ZSBtaWdodCBiZSBhY2NlcHRhYmxlLiBIb3dldmVyLCBzaW5jZSB3 ZSBjYW5ub3QKKwkJICogZWFzaWx5IGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlc2UgdHdvIHNjZW5h cmlvcywgd2UgY2hvb3NlIHRvIHNraXAKKwkJICogc3luY2hyb25pemF0aW9uIGluIGFsbCBjYXNl cyBhbmQgZW1pdCBhIFdBUk5JTkcgdG8gbm90aWZ5IHRoZSB1c2VyIHRvCisJCSAqIG1hbnVhbGx5 IHJlc29sdmUgdGhlIGNvbmZsaWN0LgorCQkgKi8KKwkJaWYgKChzZXFpbmZvLT5pbmNyZW1lbnQg JiYgbG9jYWxfbGFzdF92YWx1ZSA+IHNlcWluZm8tPmxhc3RfdmFsdWUpIHx8CisJCQkoIXNlcWlu Zm8tPmluY3JlbWVudCAmJiBsb2NhbF9sYXN0X3ZhbHVlIDwgc2VxaW5mby0+bGFzdF92YWx1ZSkp CisJCXsKKwkJCWVyZXBvcnQoV0FSTklORywKKwkJCQkJZXJyY29kZShFUlJDT0RFX09CSkVDVF9O T1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJCQkJZXJybXNnKCJza2lwcGVkIHN5bmNocm9u aXppbmcgdGhlIHNlcXVlbmNlIFwiJXMuJXNcIiIsCisJCQkJCQkgICBzZXFpbmZvLT5uc3BuYW1l LCBzZXFpbmZvLT5zZXFuYW1lKSwKKwkJCQkJc2VxaW5mby0+aW5jcmVtZW50CisJCQkJCT8gZXJy ZGV0YWlsKCJUaGUgbG9jYWwgbGFzdF92YWx1ZSAlbGxkIGlzIGFoZWFkIG9mIHRoZSBvbmUgb24g cHVibGlzaGVyIiwKKwkJCQkJCQkJKGxvbmcgbG9uZyBpbnQpIGxvY2FsX2xhc3RfdmFsdWUpCisJ CQkJCTogZXJyZGV0YWlsKCJUaGUgbG9jYWwgbGFzdF92YWx1ZSAlbGxkIGlzIGJlaGluZCBvZiB0 aGUgb25lIG9uIHB1Ymxpc2hlciIsCisJCQkJCQkJCShsb25nIGxvbmcgaW50KSBsb2NhbF9sYXN0 X3ZhbHVlKSk7CisKKwkJCXJldHVybiBDT1BZU0VRX05PX0RSSUZUOworCQl9CisKIAkJLyoKIAkJ ICogU2tpcCBzeW5jaHJvbml6YXRpb24gaWYgdGhlIHNlcXVlbmNlIGhhcyBub3QgZHJpZnRlZCBm cm9tIHRoZQogCQkgKiBwdWJsaXNoZXIncyB2YWx1ZS4KQEAgLTQwOCwxNiArNDc2LDE1IEBAIHZh bGlkYXRlX3NlcXN5bmNfc3RhdGUoTG9naWNhbFJlcFNlcXVlbmNlSW5mbyAqc2VxaW5mbywgUmVs YXRpb24gc2VxdWVuY2VfcmVsKQogICogc2VxdWVuY2VzIGFscmVhZHkgaW4gUkVBRFkgc3RhdGUs IHN5bmNocm9uaXplIG9ubHkgaWYgZHJpZnQgaXMgZGV0ZWN0ZWQuCiAgKi8KIHN0YXRpYyBDb3B5 U2VxUmVzdWx0Ci1jb3B5X3NlcXVlbmNlKExvZ2ljYWxSZXBTZXF1ZW5jZUluZm8gKnNlcWluZm8s IFJlbGF0aW9uIHNlcXVlbmNlX3JlbCkKK2NvcHlfc2VxdWVuY2UoTG9naWNhbFJlcFNlcXVlbmNl SW5mbyAqc2VxaW5mbywgUmVsYXRpb24gc2VxdWVuY2VfcmVsLAorCQkJICBPaWQgc3ViaWQsIGJv b2wgcnVuX2FzX293bmVyKQogewogCVVzZXJDb250ZXh0IHVjeHQ7Ci0JYm9vbAkJcnVuX2FzX293 bmVyID0gTXlTdWJzY3JpcHRpb24tPnJ1bmFzb3duZXI7CiAJT2lkCQkJc2Vxb2lkID0gc2VxaW5m by0+bG9jYWxyZWxpZDsKIAlDb3B5U2VxUmVzdWx0IHJlc3VsdDsKIAlYTG9nUmVjUHRyCWxvY2Fs X3BhZ2VfbHNuOwogCi0JKHZvaWQpIEdldFN1YnNjcmlwdGlvblJlbFN0YXRlKE15U3Vic2NyaXB0 aW9uLT5vaWQsCi0JCQkJCQkJCSAgIFJlbGF0aW9uR2V0UmVsaWQoc2VxdWVuY2VfcmVsKSwKKwko dm9pZCkgR2V0U3Vic2NyaXB0aW9uUmVsU3RhdGUoc3ViaWQsIFJlbGF0aW9uR2V0UmVsaWQoc2Vx dWVuY2VfcmVsKSwKIAkJCQkJCQkJICAgJmxvY2FsX3BhZ2VfbHNuKTsKIAogCS8qCkBAIC00Mjcs NyArNDk0LDcgQEAgY29weV9zZXF1ZW5jZShMb2dpY2FsUmVwU2VxdWVuY2VJbmZvICpzZXFpbmZv LCBSZWxhdGlvbiBzZXF1ZW5jZV9yZWwpCiAJaWYgKCFydW5fYXNfb3duZXIpCiAJCVN3aXRjaFRv VW50cnVzdGVkVXNlcihzZXF1ZW5jZV9yZWwtPnJkX3JlbC0+cmVsb3duZXIsICZ1Y3h0KTsKIAot CXJlc3VsdCA9IHZhbGlkYXRlX3NlcXN5bmNfc3RhdGUoc2VxaW5mbywgc2VxdWVuY2VfcmVsKTsK KwlyZXN1bHQgPSB2YWxpZGF0ZV9zZXFzeW5jX3N0YXRlKHNlcWluZm8sIHNlcXVlbmNlX3JlbCwg bG9jYWxfcGFnZV9sc24pOwogCiAJaWYgKHJlc3VsdCAhPSBDT1BZU0VRX0FMTE9XRUQpCiAJewpA QCAtNDcyLDcgKzUzOSw4IEBAIGNvcHlfc2VxdWVuY2UoTG9naWNhbFJlcFNlcXVlbmNlSW5mbyAq c2VxaW5mbywgUmVsYXRpb24gc2VxdWVuY2VfcmVsKQogICogUmV0dXJucyB0cnVlL2ZhbHNlIGlm IGFueSBzZXF1ZW5jZXMgd2VyZSBhY3R1YWxseSBjb3BpZWQuCiAgKi8KIHN0YXRpYyBib29sCi1j b3B5X3NlcXVlbmNlcyhXYWxSZWNlaXZlckNvbm4gKmNvbm4sIExpc3QgKnNlcWluZm9zKQorY29w eV9zZXF1ZW5jZXMoV2FsUmVjZWl2ZXJDb25uICpjb25uLCBMaXN0ICpzZXFpbmZvcywgT2lkIHN1 YmlkLCBjaGFyICpzdWJuYW1lLAorCQkJICAgYm9vbCBydW5hc293bmVyKQogewogCWludAkJCWN1 cl9iYXRjaF9iYXNlX2luZGV4ID0gMDsKIAlpbnQJCQluX3NlcWluZm9zID0gbGlzdF9sZW5ndGgo c2VxaW5mb3MpOwpAQCAtNDk4LDExICs1NjYsMTYgQEAgY29weV9zZXF1ZW5jZXMoV2FsUmVjZWl2 ZXJDb25uICpjb25uLCBMaXN0ICpzZXFpbmZvcykKIAkJaW50CQkJYmF0Y2hfbm9fZHJpZnQgPSAw OwogCQlpbnQJCQliYXRjaF9taXNzaW5nX2NvdW50OwogCQlSZWxhdGlvbglzZXF1ZW5jZV9yZWwg PSBOVUxMOworCQlib29sCQlzdGFydGVkX3R4ID0gZmFsc2U7CiAKIAkJV2FsUmN2RXhlY1Jlc3Vs dCAqcmVzOwogCQlUdXBsZVRhYmxlU2xvdCAqc2xvdDsKIAotCQlTdGFydFRyYW5zYWN0aW9uQ29t bWFuZCgpOworCQlpZiAoIUlzVHJhbnNhY3Rpb25TdGF0ZSgpKQorCQl7CisJCQlTdGFydFRyYW5z YWN0aW9uQ29tbWFuZCgpOworCQkJc3RhcnRlZF90eCA9IHRydWU7CisJCX0KIAogCQlmb3IgKGlu dCBpZHggPSBjdXJfYmF0Y2hfYmFzZV9pbmRleDsgaWR4IDwgbl9zZXFpbmZvczsgaWR4KyspCiAJ CXsKQEAgLTU5NCwyMyArNjY3LDIzIEBAIGNvcHlfc2VxdWVuY2VzKFdhbFJlY2VpdmVyQ29ubiAq Y29ubiwgTGlzdCAqc2VxaW5mb3MpCiAJCQkJCQkJCQkJCQkJJnNlcWluZm8sICZzZXFpZHgsIHNl cWluZm9zKTsKIAogCQkJaWYgKHN5bmNfc3RhdHVzID09IENPUFlTRVFfQUxMT1dFRCkKLQkJCQlz eW5jX3N0YXR1cyA9IGNvcHlfc2VxdWVuY2Uoc2VxaW5mbywgc2VxdWVuY2VfcmVsKTsKKwkJCQlz eW5jX3N0YXR1cyA9IGNvcHlfc2VxdWVuY2Uoc2VxaW5mbywgc2VxdWVuY2VfcmVsLAorCQkJCQkJ CQkJCQlzdWJpZCwgcnVuYXNvd25lcik7CiAKIAkJCXN3aXRjaCAoc3luY19zdGF0dXMpCiAJCQl7 CiAJCQkJY2FzZSBDT1BZU0VRX1NVQ0NFU1M6CiAJCQkJCWVsb2coREVCVUcxLAogCQkJCQkJICJs b2dpY2FsIHJlcGxpY2F0aW9uIHN5bmNocm9uaXphdGlvbiBoYXMgdXBkYXRlZCBzZXF1ZW5jZSBc IiVzLiVzXCIgaW4gc3Vic2NyaXB0aW9uIFwiJXNcIiIsCi0JCQkJCQkgc2VxaW5mby0+bnNwbmFt ZSwgc2VxaW5mby0+c2VxbmFtZSwgTXlTdWJzY3JpcHRpb24tPm5hbWUpOworCQkJCQkJIHNlcWlu Zm8tPm5zcG5hbWUsIHNlcWluZm8tPnNlcW5hbWUsIHN1Ym5hbWUpOwogCQkJCQliYXRjaF9zdWNj ZWVkZWRfY291bnQrKzsKIAkJCQkJc2VxdWVuY2VfY29waWVkID0gdHJ1ZTsKIAkJCQkJYnJlYWs7 CiAJCQkJY2FzZSBDT1BZU0VRX01JU01BVENIOgogCiAJCQkJCS8qCi0JCQkJCSAqIFJlbWVtYmVy IG1pc21hdGNoZWQgc2VxdWVuY2VzIGluIFNlcXVlbmNlU3luY0NvbnRleHQKLQkJCQkJICogc2lu Y2UgdGhlc2Ugd2lsbCBiZSB1c2VkIGFmdGVyIHRoZSB0cmFuc2FjdGlvbiBpcwotCQkJCQkgKiBj b21taXR0ZWQuCisJCQkJCSAqIFJlbWVtYmVyIG1pc21hdGNoZWQgc2VxdWVuY2VzIGluIFNlcXVl bmNlU3luY0NvbnRleHQgc2luY2UKKwkJCQkJICogdGhlc2Ugd2lsbCBiZSB1c2VkIGFmdGVyIHRo ZSB0cmFuc2FjdGlvbiBpcyBjb21taXR0ZWQuCiAJCQkJCSAqLwogCQkJCQlvbGRjdHggPSBNZW1v cnlDb250ZXh0U3dpdGNoVG8oU2VxdWVuY2VTeW5jQ29udGV4dCk7CiAJCQkJCW1pc21hdGNoZWRf c2Vxc19pZHggPSBsYXBwZW5kX2ludChtaXNtYXRjaGVkX3NlcXNfaWR4LApAQCAtNjc0LDEzICs3 NDcsMTcgQEAgY29weV9zZXF1ZW5jZXMoV2FsUmVjZWl2ZXJDb25uICpjb25uLCBMaXN0ICpzZXFp bmZvcykKIAogCQllbG9nKERFQlVHMSwKIAkJCSAibG9naWNhbCByZXBsaWNhdGlvbiBzZXF1ZW5j ZSBzeW5jaHJvbml6YXRpb24gZm9yIHN1YnNjcmlwdGlvbiBcIiVzXCIgLSBiYXRjaCAjJWQgPSAl ZCBhdHRlbXB0ZWQsICVkIHN1Y2NlZWRlZCwgJWQgbWlzbWF0Y2hlZCwgJWQgaW5zdWZmaWNpZW50 IHBlcm1pc3Npb24sICVkIG1pc3NpbmcgZnJvbSBwdWJsaXNoZXIsICVkIHNraXBwZWQsICVkIG5v IGRyaWZ0IiwKLQkJCSBNeVN1YnNjcmlwdGlvbi0+bmFtZSwKKwkJCSBzdWJuYW1lLAogCQkJIChj dXJfYmF0Y2hfYmFzZV9pbmRleCAvIE1BWF9TRVFVRU5DRVNfU1lOQ19QRVJfQkFUQ0gpICsgMSwK IAkJCSBiYXRjaF9zaXplLCBiYXRjaF9zdWNjZWVkZWRfY291bnQsIGJhdGNoX21pc21hdGNoZWRf Y291bnQsCiAJCQkgYmF0Y2hfaW5zdWZmcGVybV9jb3VudCwgYmF0Y2hfbWlzc2luZ19jb3VudCwg YmF0Y2hfc2tpcHBlZF9jb3VudCwgYmF0Y2hfbm9fZHJpZnQpOwogCi0JCS8qIENvbW1pdCB0aGlz IGJhdGNoLCBhbmQgcHJlcGFyZSBmb3IgbmV4dCBiYXRjaCAqLwotCQlDb21taXRUcmFuc2FjdGlv bkNvbW1hbmQoKTsKKwkJLyoKKwkJICogQ29tbWl0IHRoaXMgYmF0Y2ggaWYgc3RhcnRlZCBhIHRy YW5zYWN0aW9uLCBhbmQgcHJlcGFyZSBmb3IgbmV4dAorCQkgKiBiYXRjaC4KKwkJICovCisJCWlm IChzdGFydGVkX3R4KQorCQkJQ29tbWl0VHJhbnNhY3Rpb25Db21tYW5kKCk7CiAKIAkJaWYgKGJh dGNoX21pc3NpbmdfY291bnQpCiAJCXsKQEAgLTcwNSw3ICs3ODIsNyBAQCBjb3B5X3NlcXVlbmNl cyhXYWxSZWNlaXZlckNvbm4gKmNvbm4sIExpc3QgKnNlcWluZm9zKQogCiAJLyogUmVwb3J0IG1p c21hdGNoZXMsIHBlcm1pc3Npb24gaXNzdWVzLCBvciBtaXNzaW5nIHNlcXVlbmNlcyAqLwogCXJl cG9ydF9zZXF1ZW5jZV9lcnJvcnMobWlzbWF0Y2hlZF9zZXFzX2lkeCwgaW5zdWZmcGVybV9zZXFz X2lkeCwKLQkJCQkJCSAgIG1pc3Npbmdfc2Vxc19pZHgsIHNlcWluZm9zKTsKKwkJCQkJCSAgIG1p c3Npbmdfc2Vxc19pZHgsIHNlcWluZm9zLCBzdWJuYW1lKTsKIAogCXJldHVybiBzZXF1ZW5jZV9j b3BpZWQ7CiB9CkBAIC03MTcsMjAgKzc5NCwyMyBAQCBjb3B5X3NlcXVlbmNlcyhXYWxSZWNlaXZl ckNvbm4gKmNvbm4sIExpc3QgKnNlcWluZm9zKQogICogUmV0dXJucyB0cnVlIGlmIHNlcXVlbmNl cyBoYXZlIGJlZW4gdXBkYXRlZC4KICAqLwogc3RhdGljIGJvb2wKLUxvZ2ljYWxSZXBTeW5jU2Vx dWVuY2VzKFdhbFJlY2VpdmVyQ29ubiAqY29ubikKK0xvZ2ljYWxSZXBTeW5jU2VxdWVuY2VzKFdh bFJlY2VpdmVyQ29ubiAqY29ubiwgT2lkIHN1YmlkLCBjaGFyICpzdWJuYW1lLAorCQkJCQkJYm9v bCBydW5hc293bmVyKQogewogCVJlbGF0aW9uCXJlbDsKIAlIZWFwVHVwbGUJdHVwOwogCVNjYW5L ZXlEYXRhIHNrZXlbMV07CiAJU3lzU2NhbkRlc2Mgc2NhbjsKLQlPaWQJCQlzdWJpZCA9IE15TG9n aWNhbFJlcFdvcmtlci0+c3ViaWQ7CiAJYm9vbAkJc2VxdWVuY2VfY29waWVkID0gZmFsc2U7CiAJ TGlzdAkgICAqc2VxaW5mb3MgPSBOSUw7CiAJTWVtb3J5Q29udGV4dCBvbGRjdHg7CisJYm9vbAkJ c3RhcnRlZF90eCA9IGZhbHNlOwogCi0JQXNzZXJ0KFNlcXVlbmNlU3luY0NvbnRleHQpOwotCi0J U3RhcnRUcmFuc2FjdGlvbkNvbW1hbmQoKTsKKwlpZiAoIUlzVHJhbnNhY3Rpb25TdGF0ZSgpKQor CXsKKwkJU3RhcnRUcmFuc2FjdGlvbkNvbW1hbmQoKTsKKwkJc3RhcnRlZF90eCA9IHRydWU7CisJ fQogCiAJcmVsID0gdGFibGVfb3BlbihTdWJzY3JpcHRpb25SZWxSZWxhdGlvbklkLCBBY2Nlc3NT aGFyZUxvY2spOwogCkBAIC03OTEsNyArODcxLDggQEAgTG9naWNhbFJlcFN5bmNTZXF1ZW5jZXMo V2FsUmVjZWl2ZXJDb25uICpjb25uKQogCXN5c3RhYmxlX2VuZHNjYW4oc2Nhbik7CiAJdGFibGVf Y2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOwogCi0JQ29tbWl0VHJhbnNhY3Rpb25Db21tYW5k KCk7CisJaWYgKHN0YXJ0ZWRfdHgpCisJCUNvbW1pdFRyYW5zYWN0aW9uQ29tbWFuZCgpOwogCiAJ LyoKIAkgKiBFeGl0IGVhcmx5IGlmIG5vIGNhdGFsb2cgZW50cmllcyBmb3VuZCwgbGlrZWx5IGR1 ZSB0byBjb25jdXJyZW50IGRyb3BzLgpAQCAtODAwLDcgKzg4MSw4IEBAIExvZ2ljYWxSZXBTeW5j U2VxdWVuY2VzKFdhbFJlY2VpdmVyQ29ubiAqY29ubikKIAkJcmV0dXJuIGZhbHNlOwogCiAJLyog UHJvY2VzcyBzZXF1ZW5jZXMgKi8KLQlzZXF1ZW5jZV9jb3BpZWQgPSBjb3B5X3NlcXVlbmNlcyhj b25uLCBzZXFpbmZvcyk7CisJc2VxdWVuY2VfY29waWVkID0gY29weV9zZXF1ZW5jZXMoY29ubiwg c2VxaW5mb3MsIHN1YmlkLCBzdWJuYW1lLAorCQkJCQkJCQkJIHJ1bmFzb3duZXIpOwogCiAJcmV0 dXJuIHNlcXVlbmNlX2NvcGllZDsKIH0KQEAgLTg3Niw3ICs5NTgsMTAgQEAgc3RhcnRfc2VxdWVu Y2Vfc3luYyh2b2lkKQogCQkJLyoKIAkJCSAqIFN5bmNocm9uaXplIGFsbCBzZXF1ZW5jZXMgKGJv dGggUkVBRFkgYW5kIElOSVQgc3RhdGVzKS4KIAkJCSAqLwotCQkJc2VxdWVuY2VfY29waWVkID0g TG9naWNhbFJlcFN5bmNTZXF1ZW5jZXMoTG9nUmVwV29ya2VyV2FsUmN2Q29ubik7CisJCQlzZXF1 ZW5jZV9jb3BpZWQgPSBMb2dpY2FsUmVwU3luY1NlcXVlbmNlcyhMb2dSZXBXb3JrZXJXYWxSY3ZD b25uLAorCQkJCQkJCQkJCQkJCSAgTXlTdWJzY3JpcHRpb24tPm9pZCwKKwkJCQkJCQkJCQkJCQkg IE15U3Vic2NyaXB0aW9uLT5uYW1lLAorCQkJCQkJCQkJCQkJCSAgTXlTdWJzY3JpcHRpb24tPnJ1 bmFzb3duZXIpOwogCiAJCQlNZW1vcnlDb250ZXh0UmVzZXQoU2VxdWVuY2VTeW5jQ29udGV4dCk7 CiAJCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3R4KTsKQEAgLTkzOCwzICsxMDIzLDM3IEBA IFNlcXVlbmNlU3luY1dvcmtlck1haW4oRGF0dW0gbWFpbl9hcmcpCiAKIAlGaW5pc2hTeW5jV29y a2VyKCk7CiB9CisKKy8qCisgKiBXcmFwcGVyIGZvciBMb2dpY2FsUmVwU3luY1NlcXVlbmNlcyB0 byBzeW5jaHJvbml6ZSBhbGwgc2VxdWVuY2VzIG9mIGEKKyAqIHN1YnNjcmlwdGlvbiBmcm9tIG91 dHNpZGUgdGhlIHNlcXVlbmNlc3luYyB3b3JrZXIKKyAqLwordm9pZAorQWx0ZXJTdWJTeW5jU2Vx dWVuY2VzKFdhbFJlY2VpdmVyQ29ubiAqY29ubiwgT2lkIHN1YmlkLCBjaGFyICpzdWJuYW1lLAor CQkJCQkgIGJvb2wgcnVuYXNvd25lcikKK3sKKwkvKgorCSAqIEluaXQgdGhlIFNlcXVlbmNlU3lu Y0NvbnRleHQgd2hpY2ggd2UgY2xlYW4gdXAgYWZ0ZXIgdGhlIHNlcXVlbmNlCisJICogc3luY2hy b25pemF0aW9uLgorCSAqLworCVNlcXVlbmNlU3luY0NvbnRleHQgPSBBbGxvY1NldENvbnRleHRD cmVhdGUoQ3VycmVudE1lbW9yeUNvbnRleHQsCisJCQkJCQkJCQkJCQkiU2VxdWVuY2VTeW5jQ29u dGV4dCIsCisJCQkJCQkJCQkJCQlBTExPQ1NFVF9ERUZBVUxUX1NJWkVTKTsKKworCVBHX1RSWSgp OworCXsKKwkJTWVtb3J5Q29udGV4dAlvbGRjdHg7CisKKwkJb2xkY3R4ID0gTWVtb3J5Q29udGV4 dFN3aXRjaFRvKFNlcXVlbmNlU3luY0NvbnRleHQpOworCisJCUxvZ2ljYWxSZXBTeW5jU2VxdWVu Y2VzKGNvbm4sIHN1YmlkLCBzdWJuYW1lLCBydW5hc293bmVyKTsKKworCQlNZW1vcnlDb250ZXh0 U3dpdGNoVG8ob2xkY3R4KTsKKwl9CisJUEdfRklOQUxMWSgpOworCXsKKwkJTWVtb3J5Q29udGV4 dERlbGV0ZShTZXF1ZW5jZVN5bmNDb250ZXh0KTsKKwkJU2VxdWVuY2VTeW5jQ29udGV4dCA9IE5V TEw7CisJfQorCVBHX0VORF9UUlkoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfc3Vic2NyaXB0aW9uX3JlbC5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3Jp cHRpb25fcmVsLmgKaW5kZXggODY1NzRiNjkxNjkuLjJjNGU2MGM4ZjUyIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbl9yZWwuaAorKysgYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbl9yZWwuaApAQCAtMTAyLDYgKzEwMiw3IEBAIHR5cGVk ZWYgc3RydWN0IExvZ2ljYWxSZXBTZXF1ZW5jZUluZm8KIAlYTG9nUmVjUHRyCXBhZ2VfbHNuOwog CWludDY0CQlsYXN0X3ZhbHVlOwogCWJvb2wJCWlzX2NhbGxlZDsKKwlib29sCQlpbmNyZW1lbnQ7 CiAKIAkvKgogCSAqIFRydWUgaWYgdGhlIHNlcXVlbmNlIGlkZW50aWZpZWQgYnkgbnNwbmFtZSAr IHNlcW5hbWUgZXhpc3RzIG9uIHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRp b24vbG9naWNhbHdvcmtlci5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vbG9naWNhbHdvcmtl ci5oCmluZGV4IDdkNzQ4YTI4ZGE4Li43M2FmZDc4NTNkMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vbG9naWNhbHdvcmtlci5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0 aW9uL2xvZ2ljYWx3b3JrZXIuaApAQCAtMTQsNiArMTQsOCBAQAogCiAjaW5jbHVkZSA8c2lnbmFs Lmg+CiAKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi93YWxyZWNlaXZlci5oIgorCiBleHRlcm4gUEdE TExJTVBPUlQgdm9sYXRpbGUgc2lnX2F0b21pY190IFBhcmFsbGVsQXBwbHlNZXNzYWdlUGVuZGlu ZzsKIAogZXh0ZXJuIHZvaWQgQXBwbHlXb3JrZXJNYWluKERhdHVtIG1haW5fYXJnKTsKQEAgLTMx LDQgKzMzLDcgQEAgZXh0ZXJuIHZvaWQgTG9naWNhbFJlcFdvcmtlcnNXYWtldXBBdENvbW1pdChP aWQgc3ViaWQpOwogCiBleHRlcm4gdm9pZCBBdEVPWGFjdF9Mb2dpY2FsUmVwV29ya2Vycyhib29s IGlzQ29tbWl0KTsKIAorZXh0ZXJuIHZvaWQgQWx0ZXJTdWJTeW5jU2VxdWVuY2VzKFdhbFJlY2Vp dmVyQ29ubiAqY29ubiwgT2lkIHN1YmlkLAorCQkJCQkJCQkgIGNoYXIgKnN1Ym5hbWUsIGJvb2wg cnVuYXNvd25lcik7CisKICNlbmRpZgkJCQkJCQkvKiBMT0dJQ0FMV09SS0VSX0ggKi8KZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNl9zZXF1ZW5jZXMucGwgYi9zcmMvdGVz dC9zdWJzY3JpcHRpb24vdC8wMzZfc2VxdWVuY2VzLnBsCmluZGV4IGFmMTkwNzEzYjJiLi44ZDI1 YWM0MGNlMCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM2X3NlcXVlbmNl cy5wbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzZfc2VxdWVuY2VzLnBsCkBAIC0x NzYsNCArMTc2LDUzIEBAICRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX2xvZygKIAlxci9XQVJO SU5HOiAoIFtBLVowLTldKzopPyBtaXNzaW5nIHNlcXVlbmNlIG9uIHB1Ymxpc2hlciBcKCJwdWJs aWMucmVncmVzc19zNCJcKS8sCiAJJGxvZ19vZmZzZXQpOwogCisjIyMjIyMjIyMjCisjIEFMVEVS IFNVQlNDUklQVElPTiAuLi4gUkVGUkVTSCBTRVFVRU5DRVMgc3luY2hyb25pemVzIHNlcXVlbmNl cyBvbmxpbmUsCisjIGVsaW1pbmF0aW5nIHRoZSBuZWVkIHRvIGxhdW5jaCBhIHNlcXVlbmNlc3lu YyB3b3JrZXIuCisjIyMjIyMjIyMjCisKKyMgUmVkdWNlIG1heF9sb2dpY2FsX3JlcGxpY2F0aW9u X3dvcmtlcnMgdG8gZGlzYWxsb3cgc2VxdWVuY2Ugd29ya2VyIGZyb20gcnVubmluZworJG5vZGVf c3Vic2NyaWJlci0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsCisJcXEobWF4X2xvZ2lj YWxfcmVwbGljYXRpb25fd29ya2VycyA9IDApKTsKKyRub2RlX3N1YnNjcmliZXItPnJlc3RhcnQ7 CisKKyMgVmVyaWZ5IHRoZXJlIGlzIG5vIGxvZ2ljYWwgcmVwbGljYXRpb24gYXBwbHkgd29ya2Vy IHJ1bm5pbmcKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoCisJJ3Bvc3Rn cmVzJywKKwkiU0VMRUNUIGNvdW50KCopIEZST00gcGdfc3RhdF9hY3Rpdml0eSBXSEVSRSBiYWNr ZW5kX3R5cGUgPSAnbG9naWNhbCByZXBsaWNhdGlvbiBhcHBseSB3b3JrZXInIik7CisKK2lzKCRy ZXN1bHQsICcwJywgJ25vIGxvZ2ljYWwgcmVwbGljYXRpb24gd29ya2VyIGlzIHJ1bm5pbmcnKTsK KworIyBJbmNyZW1lbnQgc2VxdWVuY2Ugb24gcHVibGlzaGVyCiskbm9kZV9wdWJsaXNoZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAorCXFxKFNFTEVDVCBuZXh0dmFsKCdyZWdyZXNzX3MxJyk7KSk7 CisKKyMgVGhlIGNvbW1hbmQgc2hvdWxkIGZhaWwgZHVlIHRvIG1pc3Npbmcgc2VxdWVuY2UgKCdy ZWdyZXNzX3M0JykKK215ICgkY21kcmV0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRub2RlX3N1YnNj cmliZXItPnBzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nfc2Vx X3N1YiBSRUZSRVNIIFNFUVVFTkNFUzsiKTsKKworbGlrZSgKKwkkc3RkZXJyLAorCXFyL1dBUk5J Tkc6ICBtaXNzaW5nIHNlcXVlbmNlIG9uIHB1Ymxpc2hlciBcKCJwdWJsaWMucmVncmVzc19zNCJc KS8sCisJIm91dHB1dCB0aGUgd2FucmluZyBmb3IgdGhlIG1pc3Npbmcgc2VxdWVuY2UgcmVncmVz c19zNCIpOworCitsaWtlKAorCSRzdGRlcnIsCisJcXIvRVJST1I6ICBsb2dpY2FsIHJlcGxpY2F0 aW9uIHNlcXVlbmNlIHN5bmNocm9uaXphdGlvbiBmYWlsZWQgZm9yIHN1YnNjcmlwdGlvbiBcInJl Z3Jlc3Nfc2VxX3N1YlwiLywKKwkidGhlIGNvbW1hbmQgZmFpbGVkIGR1ZSB0byB0aGUgbWlzc2lu ZyBzZXF1ZW5jZSByZWdyZXNzX3M0Iik7CisKKyMgUmVmcmVzaCB0aGUgcHVibGljYXRpb24gdG8g cmVtb3ZlIHRoZSBtaXNzaW5nIHNlcXVlbmNlCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywKKwkiQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nfc2VxX3N1YiBSRUZSRVNI IFBVQkxJQ0FUSU9OOyIpOworCisjIFN5bmMgdGhlIHNlcXVlbmNlIHJlZ3Jlc3NfczEKKyRub2Rl X3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBTVUJTQ1JJUFRJT04g cmVncmVzc19zZXFfc3ViIFJFRlJFU0ggU0VRVUVOQ0VTOyIpOworCisjIEdldCB0aGUgY3VycmVu dCBzZXF1ZW5jZSB2YWx1ZSBvbiBzdWJzY3JpYmVyCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJcXEoU0VMRUNUIGxhc3RfdmFsdWUgRlJPTSByZWdy ZXNzX3MxOykpOworCitpcygkcmVzdWx0LCAnMjAxJywgJ3NlcXVlbmNlIHJlZ3Jlc3NfczEgaXMg c3luY2VkIG5vdycpOworCiBkb25lX3Rlc3RpbmcoKTsKLS0gCjIuNTEuMS53aW5kb3dzLjEKCg== --_003_TY4PR01MB169077FE33BDE8363F8795EC5947DATY4PR01MB16907jp_ Content-Type: application/octet-stream; name="v11-0001-Support-automatic-sequence-replication.patch" Content-Description: v11-0001-Support-automatic-sequence-replication.patch Content-Disposition: attachment; filename="v11-0001-Support-automatic-sequence-replication.patch"; size=43549; creation-date="Thu, 05 Mar 2026 11:17:23 GMT"; modification-date="Thu, 05 Mar 2026 11:34:50 GMT" Content-Transfer-Encoding: base64 RnJvbSAwOWE1Y2I5YzdjZjZhYmI0ZmY4MjM4ZWI5ZDk4OWIzOGE0NzVlYmFiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBamluIENoZXJpYW4gPGl0c2FqaW5AZ21haWwuY29tPgpEYXRl OiBUdWUsIDI0IEZlYiAyMDI2IDIxOjM3OjAxICsxMTAwClN1YmplY3Q6IFtQQVRDSCB2MTEgMS8y XSBTdXBwb3J0IGF1dG9tYXRpYyBzZXF1ZW5jZSByZXBsaWNhdGlvbi4KCkN1cnJlbnRseSwgc2Vx dWVuY2UgdmFsdWVzIGFyZSBzeW5jaHJvbml6ZWQgZnJvbSBwdWJsaXNoZXIgdG8gc3Vic2NyaWJl ciBvbmx5CndoZW4gdGhlIHVzZXIgbWFudWFsbHkgcnVucyBBTFRFUiBTVUJTQ1JJUFRJT04gLi4u IFJFRlJFU0ggUFVCTElDQVRJT04gKHdoaWNoCmFmZmVjdHMgb25seSBuZXdseSBzdWJzY3JpYmVk IHNlcXVlbmNlcykgb3IgUkVGUkVTSCBTRVFVRU5DRVMuIFRoZSBzZXF1ZW5jZSBzeW5jCndvcmtl ciBleGl0cyBpbW1lZGlhdGVseSBhZnRlciBjb21wbGV0aW5nIGVhY2ggc3luY2hyb25pemF0aW9u IHJvdW5kLgoKVGhlIHByaW1hcnkgdXNlIGNhc2UgZm9yIHNlcXVlbmNlIHJlcGxpY2F0aW9uIGlz IGR1cmluZyB1cGdyYWRlcywgd2hlcmUgaXQncwpyZWNvbW1lbmRlZCB0aGF0IHVzZXJzIGVuc3Vy ZSBzZXF1ZW5jZXMgYXJlIGluIHN5bmMgYnkgcnVubmluZyBSRUZSRVNIIFNFUVVFTkNFUwpiZWZv cmUgZmluaXNoaW5nIHRoZSB1cGdyYWRlLiBIb3dldmVyLCB0aGlzIGNvbW1hbmQgY2FuIGJlIHNs b3cgd2hlbgpzeW5jaHJvbml6aW5nIGEgbGFyZ2UgbnVtYmVyIG9mIHNlcXVlbmNlcywgcG90ZW50 aWFsbHkgaW5jcmVhc2luZyBkb3dudGltZS4KClRvIGFkZHJlc3MgdGhpcywgdGhpcyBjb21taXQg bWFrZXMgdGhlIHNlcXVlbmNlIHN5bmMgd29ya2VyIGxvbmctbGl2ZWQsCmNvbnRpbnVvdXNseSBt b25pdG9yaW5nIHNlcXVlbmNlcyBhbmQgcmVzeW5jaHJvbml6aW5nIHRoZW0gd2hlbiBkcmlmdCBp cwpkZXRlY3RlZC4gVGhlIHdvcmtlciB1c2VzIGFuIGFkYXB0aXZlIHNsZWVwIGludGVydmFsOiBp dCBzdGFydHMgYXQgMiBzZWNvbmRzLApkb3VibGVzIHVwIHRvIGEgbWF4aW11bSBvZiAzMCBzZWNv bmRzIHdoZW4gbm8gZHJpZnQgaXMgb2JzZXJ2ZWQsIGFuZCByZXNldHMgdG8KdGhlIG1pbmltdW0g aW50ZXJ2YWwgb25jZSBkcmlmdCBpcyBmb3VuZC4KCldpdGggdGhpcyBjaGFuZ2UsIG1vc3Qgc2Vx dWVuY2VzIGFyZSBzaWxlbnRseSBzeW5jaHJvbml6ZWQgaW4gdGhlIGJhY2tncm91bmQsCmVsaW1p bmF0aW5nIHRoZSBuZWVkIHRvIHJ1biBSRUZSRVNIIFNFUVVFTkNFUyBmb3IgdGhlIG1ham9yaXR5 IG9mIGNhc2VzLgoKSG93ZXZlciwgZnJlcXVlbnRseSB1cGRhdGVkIHNlcXVlbmNlcyBtYXkgc3Rp bGwgbGFnIGJlaGluZCwgcmVxdWlyaW5nIGEgZmluYWwKUkVGUkVTSCBTRVFVRU5DRVMgYmVmb3Jl IHVwZ3JhZGUgY29tcGxldGlvbi4gVXNlcnMgY2FuIG1vbml0b3IgcHJvZ3Jlc3MgYnkKY2hlY2tp bmcgd2hldGhlciBzZXF1ZW5jZSBzdGF0ZXMgdHJhbnNpdGlvbiBmcm9tIElOSVQgdG8gUkVBRFkg aW4KcGdfc3Vic2NyaXB0aW9uX3JlbC4KClRoZSBSRUZSRVNIIFNFUVVFTkNFUyBjb21tYW5kIGlz IHJldGFpbmVkIGZvciB0aGlzIGZpbmFsIHN5bmNocm9uaXphdGlvbiBzdGVwLAp0aG91Z2ggaXQg Y3VycmVudGx5IHVwZGF0ZXMgYWxsIHNlcXVlbmNlIHN0YXRlcyB0byBJTklULCB3aGljaCBoYXMg cm9vbSBmb3IKaW1wcm92ZW1lbnQuIEEgZnV0dXJlIHBhdGNoIHdpbGwgZW5oYW5jZSB0aGlzIGNv bW1hbmQgdG8gc3luY2hyb25pemUgc2VxdWVuY2VzCmRpcmVjdGx5IHdpdGhvdXQgbGF1bmNoaW5n IGEgd29ya2VyLCByZWR1Y2luZyBjYXRhbG9nIG92ZXJoZWFkLgoKQXV0aG9yOiBBamluIENoZXJp YW4gPGl0c2FqaW5AZ21haWwuY29tPgpBdXRob3I6IFpoaWppZSBIb3UgPGhvdXpqLmZuc3RAZnVq aXRzdS5jb20+ClJldmlld2VkLWJ5OiBTaHZldGEgTWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5j b20+ClJldmlld2VkLWJ5OiBQZXRlciBTbWl0aCA8c21pdGhwYjIyNTBAZ21haWwuY29tPgpSZXZp ZXdlZC1ieTogQXNodXRvc2ggU2hhcm1hIDxhc2h1LmNvZWs4OEBnbWFpbC5jb20+ClJldmlld2Vk LWJ5OiBBbWl0IEthcGlsYSA8YW1pdC5rYXBpbGExNkBnbWFpbC5jb20+Ci0tLQogZG9jL3NyYy9z Z21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbCAgICAgICAgIHwgIDIzICstCiBkb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sICAgICAgfCAgIDUgLQogc3JjL2JhY2tlbmQv Y29tbWFuZHMvc2VxdWVuY2UuYyAgICAgICAgICAgICAgIHwgIDQxICsrCiAuLi4vcmVwbGljYXRp b24vbG9naWNhbC9zZXF1ZW5jZXN5bmMuYyAgICAgICAgfCAzNjIgKysrKysrKysrKysrKy0tLS0t CiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3N5bmN1dGlscy5jICAgfCAgNDYgKy0t CiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jICAgICAgfCAgMTEgKwog Li4uL3V0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnRfbmFtZXMudHh0ICAgICAgIHwgICAxICsKIHNy Yy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uX3JlbC5oICAgICB8ICAgMSArCiBzcmMv aW5jbHVkZS9jb21tYW5kcy9zZXF1ZW5jZS5oICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2lu Y2x1ZGUvcmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmggICAgIHwgICAyICstCiBzcmMvdGVz dC9zdWJzY3JpcHRpb24vdC8wMjZfc3RhdHMucGwgICAgICAgICAgfCAgIDIgKwogc3JjL3Rlc3Qv c3Vic2NyaXB0aW9uL3QvMDM2X3NlcXVlbmNlcy5wbCAgICAgIHwgIDgxICstLS0KIDEyIGZpbGVz IGNoYW5nZWQsIDM3NSBpbnNlcnRpb25zKCspLCAyMDEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9s b2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKaW5kZXggNTAyOGZlOWFmMDkuLmJiNTIzYWY1ZDM3IDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKQEAgLTE3ODcsOCArMTc4Nyw5IEBA IFB1YmxpY2F0aW9uczoKIAogICA8cGFyYT4KICAgIEEgPGZpcnN0dGVybT5zZXF1ZW5jZSBzeW5j aHJvbml6YXRpb24gd29ya2VyPC9maXJzdHRlcm0+IHdpbGwgYmUgc3RhcnRlZAotICAgYWZ0ZXIg ZXhlY3V0aW5nIGFueSBvZiB0aGUgYWJvdmUgc3Vic2NyaWJlciBjb21tYW5kcywgYW5kIHdpbGwg ZXhpdCBvbmNlIHRoZQotICAgc2VxdWVuY2VzIGFyZSBzeW5jaHJvbml6ZWQuCisgICBhZnRlciBl eGVjdXRpbmcgYW55IG9mIHRoZSBhYm92ZSBzdWJzY3JpYmVyIGNvbW1hbmRzLiBUaGUgd29ya2Vy IHdpbGwKKyAgIHJlbWFpbiBydW5uaW5nIGZvciB0aGUgbGlmZSBvZiB0aGUgc3Vic2NyaXB0aW9u LCBwZXJpb2RpY2FsbHkKKyAgIHN5bmNocm9uaXppbmcgYWxsIHB1Ymxpc2hlZCBzZXF1ZW5jZXMu CiAgIDwvcGFyYT4KICAgPHBhcmE+CiAgICBUaGUgYWJpbGl0eSB0byBsYXVuY2ggYSBzZXF1ZW5j ZSBzeW5jaHJvbml6YXRpb24gd29ya2VyIGlzIGxpbWl0ZWQgYnkgdGhlCkBAIC0xODE3LDcgKzE4 MTgsNyBAQCBQdWJsaWNhdGlvbnM6CiAgIDxzZWN0MiBpZD0ic2VxdWVuY2VzLW91dC1vZi1zeW5j Ij4KICAgIDx0aXRsZT5SZWZyZXNoaW5nIE91dC1vZi1TeW5jIFNlcXVlbmNlczwvdGl0bGU+CiAg ICA8cGFyYT4KLSAgICBTdWJzY3JpYmVyIHNlcXVlbmNlIHZhbHVlcyB3aWxsIGJlY29tZSBvdXQg b2Ygc3luYyBhcyB0aGUgcHVibGlzaGVyCisgICAgU3Vic2NyaWJlciBzZXF1ZW5jZSB2YWx1ZXMg Y2FuIGJlY29tZSBvdXQgb2Ygc3luYyBhcyB0aGUgcHVibGlzaGVyCiAgICAgYWR2YW5jZXMgdGhl bS4KICAgIDwvcGFyYT4KICAgIDxwYXJhPgpAQCAtMjMzNSwxNSArMjMzNiwxMyBAQCBDT05URVhU OiAgcHJvY2Vzc2luZyByZW1vdGUgZGF0YSBmb3IgcmVwbGljYXRpb24gb3JpZ2luICJwZ18xNjM5 NSIgZHVyaW5nICJJTlNFUgogCiAgICA8bGlzdGl0ZW0+CiAgICAgPHBhcmE+Ci0gICAgIEluY3Jl bWVudGFsIHNlcXVlbmNlIGNoYW5nZXMgYXJlIG5vdCByZXBsaWNhdGVkLiAgQWx0aG91Z2ggdGhl IGRhdGEgaW4KLSAgICAgc2VyaWFsIG9yIGlkZW50aXR5IGNvbHVtbnMgYmFja2VkIGJ5IHNlcXVl bmNlcyB3aWxsIGJlIHJlcGxpY2F0ZWQgYXMgcGFydAotICAgICBvZiB0aGUgdGFibGUsIHRoZSBz ZXF1ZW5jZXMgdGhlbXNlbHZlcyBkbyBub3QgcmVwbGljYXRlIG9uZ29pbmcgY2hhbmdlcy4KLSAg ICAgT24gdGhlIHN1YnNjcmliZXIsIGEgc2VxdWVuY2Ugd2lsbCByZXRhaW4gdGhlIGxhc3QgdmFs dWUgaXQgc3luY2hyb25pemVkCi0gICAgIGZyb20gdGhlIHB1Ymxpc2hlci4gSWYgdGhlIHN1YnNj cmliZXIgaXMgdXNlZCBhcyBhIHJlYWQtb25seSBkYXRhYmFzZSwKLSAgICAgdGhlbiB0aGlzIHNo b3VsZCB0eXBpY2FsbHkgbm90IGJlIGEgcHJvYmxlbS4gIElmLCBob3dldmVyLCBzb21lIGtpbmQg b2YKLSAgICAgc3dpdGNob3ZlciBvciBmYWlsb3ZlciB0byB0aGUgc3Vic2NyaWJlciBkYXRhYmFz ZSBpcyBpbnRlbmRlZCwgdGhlbiB0aGUKLSAgICAgc2VxdWVuY2VzIHdvdWxkIG5lZWQgdG8gYmUg dXBkYXRlZCB0byB0aGUgbGF0ZXN0IHZhbHVlcywgZWl0aGVyIGJ5Ci0gICAgIGV4ZWN1dGluZyA8 bGluayBsaW5rZW5kPSJzcWwtYWx0ZXJzdWJzY3JpcHRpb24tcGFyYW1zLXJlZnJlc2gtc2VxdWVu Y2VzIj4KKyAgICAgSW5jcmVtZW50YWwgc2VxdWVuY2UgY2hhbmdlcyBhcmUgY29udGludW91c2x5 IHJlcGxpY2F0ZWQuIElmLCBob3dldmVyLAorICAgICBzb21lIGtpbmQgb2Ygc3dpdGNob3ZlciBv ciBmYWlsb3ZlciB0byB0aGUgc3Vic2NyaWJlciBkYXRhYmFzZSBpcworICAgICBpbnRlbmRlZCwg dGhlbiB0aGUgc2VxdWVuY2VzIHJlcGxpY2F0aW9uIGNvdWxkIGJlIGxhZ2dpbmcgYmVoaW5kIGFu ZAorICAgICB0aGUgc2VxdWVuY2VzIG9uIHRoZSBzdWJzY3JpYmVyIHNob3VsZCBiZSBjb21wYXJl ZCB3aXRoIHRoYXQgb2YgdGhlCisgICAgIHB1Ymxpc2hlciB0byBtYWtlIHN1cmUgdGhhdCB0aGV5 IGFyZSB1cCB0byBkYXRlLCBpZiBub3QgdGhleQorICAgICBuZWVkIHRvIGJlIHVwZGF0ZWQgdG8g dGhlIGxhdGVzdCB2YWx1ZXMsIGVpdGhlciBieSBleGVjdXRpbmcKKyAgICAgPGxpbmsgbGlua2Vu ZD0ic3FsLWFsdGVyc3Vic2NyaXB0aW9uLXBhcmFtcy1yZWZyZXNoLXNlcXVlbmNlcyI+CiAgICAg IDxjb21tYW5kPkFMVEVSIFNVQlNDUklQVElPTiAuLi4gUkVGUkVTSCBTRVFVRU5DRVM8L2NvbW1h bmQ+PC9saW5rPgogICAgICBvciBieSBjb3B5aW5nIHRoZSBjdXJyZW50IGRhdGEgZnJvbSB0aGUg cHVibGlzaGVyIChwZXJoYXBzIHVzaW5nCiAgICAgIDxjb21tYW5kPnBnX2R1bXA8L2NvbW1hbmQ+ KSBvciBieSBkZXRlcm1pbmluZyBhIHN1ZmZpY2llbnRseSBoaWdoIHZhbHVlCmRpZmYgLS1naXQg YS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbAppbmRleCA1MzE4OTk4ZTgwYy4uNWE3YjRmM2My YzIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbApAQCAtMTkwLDEx ICsxOTAsNiBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPAogICAgICAgICAgIFByZXZpb3VzbHkg c3Vic2NyaWJlZCB0YWJsZXMgYXJlIG5vdCBjb3BpZWQsIGV2ZW4gaWYgYSB0YWJsZSdzIHJvdwog ICAgICAgICAgIGZpbHRlciA8bGl0ZXJhbD5XSEVSRTwvbGl0ZXJhbD4gY2xhdXNlIGhhcyBzaW5j ZSBiZWVuIG1vZGlmaWVkLgogICAgICAgICAgPC9wYXJhPgotICAgICAgICAgPHBhcmE+Ci0gICAg ICAgICAgUHJldmlvdXNseSBzdWJzY3JpYmVkIHNlcXVlbmNlcyBhcmUgbm90IHJlLXN5bmNocm9u aXplZC4gVG8gZG8gdGhhdCwKLSAgICAgICAgICB1c2UgPGxpbmsgbGlua2VuZD0ic3FsLWFsdGVy c3Vic2NyaXB0aW9uLXBhcmFtcy1yZWZyZXNoLXNlcXVlbmNlcyI+Ci0gICAgICAgICAgPGNvbW1h bmQ+QUxURVIgU1VCU0NSSVBUSU9OIC4uLiBSRUZSRVNIIFNFUVVFTkNFUzwvY29tbWFuZD48L2xp bms+LgotICAgICAgICAgPC9wYXJhPgogICAgICAgICAgPHBhcmE+CiAgICAgICAgICAgU2VlIDx4 cmVmIGxpbmtlbmQ9InNlcXVlbmNlLWRlZmluaXRpb24tbWlzbWF0Y2hlcyIvPiBmb3IgcmVjb21t ZW5kYXRpb25zIG9uIGhvdwogICAgICAgICAgIHRvIGhhbmRsZSBhbnkgd2FybmluZ3MgYWJvdXQg c2VxdWVuY2UgZGVmaW5pdGlvbiBkaWZmZXJlbmNlcyBiZXR3ZWVuCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jb21tYW5kcy9zZXF1ZW5jZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VxdWVu Y2UuYwppbmRleCBlMWI4MDhiYmI2MC4uOTJhZTVhYWI0ODggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3NlcXVlbmNlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VxdWVu Y2UuYwpAQCAtOTI5LDYgKzkyOSw0NyBAQCBsYXN0dmFsKFBHX0ZVTkNUSU9OX0FSR1MpCiAJUEdf UkVUVVJOX0lOVDY0KHJlc3VsdCk7CiB9CiAKKy8qCisgKiBSZWFkIHRoZSBjdXJyZW50IHNlcXVl bmNlIHZhbHVlcyAobGFzdF92YWx1ZSBhbmQgaXNfY2FsbGVkKQorICoKKyAqIFRoaXMgaXMgYSBy ZWFkLW9ubHkgb3BlcmF0aW9uIHVzZWQgYnkgbG9naWNhbCByZXBsaWNhdGlvbiBzZXF1ZW5jZQor ICogc3luY2hyb25pemF0aW9uIHRvIGRldGVjdCBkcmlmdC4gVGhlIGNhbGxlciBtdXN0IGhvbGQg YSBsb2NrIG9uIHRoZSBzZXF1ZW5jZS4KKyAqCisgKiBSZXR1cm4gZmFsc2UgaWYgdGhlIGNhbGxl ciBkb2VzIG5vdCBoYXZlIHN1ZmZpY2llbnQgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhlCisgKiBz ZXF1ZW5jZSwgdHJ1ZSBvdGhlcndpc2UuCisgKi8KK2Jvb2wKK0dldFNlcXVlbmNlKFJlbGF0aW9u IHNlcXJlbCwgaW50NjQgKmxhc3RfdmFsdWUsIGJvb2wgKmlzX2NhbGxlZCkKK3sKKwlCdWZmZXIJ CWJ1ZjsKKwlIZWFwVHVwbGVEYXRhIHNlcXR1cGxlOworCUZvcm1fcGdfc2VxdWVuY2VfZGF0YSBz ZXE7CisJT2lkCQkJcmVsaWQgPSBSZWxhdGlvbkdldFJlbGlkKHNlcXJlbCk7CisKKwkvKiBDb25m aXJtIHRoYXQgdGhlIHJlbGF0aW9uIGlzIGEgc2VxdWVuY2UgYW5kIGlzIGxvY2tlZCAqLworCUFz c2VydChzZXFyZWwtPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1NFUVVFTkNFKTsKKwlBc3Nl cnQoQ2hlY2tSZWxhdGlvbkxvY2tlZEJ5TWUoc2VxcmVsLCBBY2Nlc3NTaGFyZUxvY2ssIHRydWUp KTsKKworCWlmIChwZ19jbGFzc19hY2xjaGVjayhyZWxpZCwgR2V0VXNlcklkKCksIEFDTF9TRUxF Q1QpICE9IEFDTENIRUNLX09LKQorCXsKKwkJKmxhc3RfdmFsdWUgPSAwOworCQkqaXNfY2FsbGVk ID0gZmFsc2U7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwkvKiBSZWFkIHRoZSBzZXF1ZW5jZSB0 dXBsZSAqLworCXNlcSA9IHJlYWRfc2VxX3R1cGxlKHNlcXJlbCwgJmJ1ZiwgJnNlcXR1cGxlKTsK KworCS8qIEV4dHJhY3QgdGhlIHZhbHVlcyAqLworCSpsYXN0X3ZhbHVlID0gc2VxLT5sYXN0X3Zh bHVlOworCSppc19jYWxsZWQgPSBzZXEtPmlzX2NhbGxlZDsKKworCS8qIFJlbGVhc2UgYnVmZmVy ICovCisJVW5sb2NrUmVsZWFzZUJ1ZmZlcihidWYpOworCisJcmV0dXJuIHRydWU7Cit9CisKIC8q CiAgKiBNYWluIGludGVybmFsIHByb2NlZHVyZSB0aGF0IGhhbmRsZXMgMiAmIDMgYXJnIGZvcm1z IG9mIFNFVFZBTC4KICAqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dp Y2FsL3NlcXVlbmNlc3luYy5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zZXF1 ZW5jZXN5bmMuYwppbmRleCA5YzkyZmRkZDYyNC4uY2RlOWVhYmE0NzQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2VxdWVuY2VzeW5jLmMKKysrIGIvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zZXF1ZW5jZXN5bmMuYwpAQCAtMTksMTAgKzE5LDYg QEAKICAqIENSRUFURSBTVUJTQ1JJUFRJT04KICAqIEFMVEVSIFNVQlNDUklQVElPTiAuLi4gUkVG UkVTSCBQVUJMSUNBVElPTgogICoKLSAqIEV4ZWN1dGluZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQg cmVzZXRzIGFsbCBzZXF1ZW5jZXMgaW4gdGhlIHN1YnNjcmlwdGlvbiB0bwotICogc3RhdGUgSU5J VCwgdHJpZ2dlcmluZyByZS1zeW5jaHJvbml6YXRpb246Ci0gKiBBTFRFUiBTVUJTQ1JJUFRJT04g Li4uIFJFRlJFU0ggU0VRVUVOQ0VTCi0gKgogICogVGhlIGFwcGx5IHdvcmtlciBwZXJpb2RpY2Fs bHkgc2NhbnMgcGdfc3Vic2NyaXB0aW9uX3JlbCBmb3Igc2VxdWVuY2VzIGluCiAgKiBJTklUIHN0 YXRlLiBXaGVuIHN1Y2ggc2VxdWVuY2VzIGFyZSBmb3VuZCwgaXQgc3Bhd25zIGEgc2VxdWVuY2Vz eW5jIHdvcmtlcgogICogdG8gaGFuZGxlIHN5bmNocm9uaXphdGlvbi4KQEAgLTM2LDggKzMyLDI0 IEBACiAgKiBsb2NhbCBzdWJzY3JpYmVyLCBhbmQgZmluYWxseSBtYXJrcyBlYWNoIHNlcXVlbmNl IGFzIFJFQURZIHVwb24gc3VjY2Vzc2Z1bAogICogc3luY2hyb25pemF0aW9uLgogICoKKyAqIFRo ZSBzZXF1ZW5jZXN5bmMgd29ya2VyIHRoZW4gZmV0Y2hlcyBhbGwgc2VxdWVuY2VzIHRoYXQgYXJl CisgKiBpbiB0aGUgUkVBRFkgc3RhdGUsIHF1ZXJpZXMgdGhlIHB1Ymxpc2hlciBmb3IgY3VycmVu dCBzZXF1ZW5jZSB2YWx1ZXMsIGFuZAorICogdXBkYXRlcyBhbnkgc2VxdWVuY2VzIHRoYXQgaGF2 ZSBkcmlmdGVkIGFuZCB0aGVuIGdvZXMgdG8gc2xlZXAuIFRoZSBzbGVlcAorICogaW50ZXJ2YWwg c3RhcnRzIGFzIFNFUVNZTkNfTUlOX1NMRUVQX01TIGFuZCBkb3VibGVzIGFmdGVyIGVhY2ggd2Fr ZSBjeWNsZQorICogKHVwIHRvIFNFUVNZTkNfTUFYX1NMRUVQX01TKS4gV2hlbiBkcmlmdCBpcyBk ZXRlY3RlZCwgdGhlIGludGVydmFsIHJlc2V0cyB0bworICogdGhlIG1pbmltdW0gdG8gZW5zdXJl IHRpbWVseSB1cGRhdGVzLgorICoKKyAqIEFmdGVyIENSRUFURSBTVUJTQ1JJUFRJT04sIHNlcXVl bmNlcyBiZWdpbiBpbiB0aGUgSU5JVCBzdGF0ZS4gU2VxdWVuY2VzCisgKiBhZGRlZCB0aHJvdWdo IEFMVEVSIFNVQlNDUklQVElPTi4uIFJFRlJFU0ggUFVCTElDQVRJT04gYWxzbyBzdGFydCBpbiB0 aGUgSU5JVAorICogc3RhdGUuIEFsbCBJTklUIHNlcXVlbmNlcyBhcmUgc3luY2hyb25pemVkIHVu Y29uZGl0aW9uYWxseSwgdGhlbiB0cmFuc2l0aW9uCisgKiB0byB0aGUgUkVBRFkgc3RhdGUuIE9u Y2UgaW4gdGhlIFJFQURZIHN0YXRlLCBzZXF1ZW5jZXMgYXJlIGNoZWNrZWQgZm9yIGRyaWZ0Cisg KiBmcm9tIHRoZSBwdWJsaXNoZXIgYW5kIHN5bmNocm9uaXplZCBvbmx5IHdoZW4gZHJpZnQgaXMg ZGV0ZWN0ZWQuCisgKgogICogU2VxdWVuY2Ugc3RhdGUgdHJhbnNpdGlvbnMgZm9sbG93IHRoaXMg cGF0dGVybjoKLSAqICAgSU5JVCAtPiBSRUFEWQorICogIElOSVQgLS0+IFJFQURZIC0+LSsKKyAq ICAgICAgICAgICAgIF4gICAgICB8IChjaGVjay9zeW5jaHJvbml6ZSkKKyAqICAgICAgICAgICAg IHwgICAgICB8CisgKiAgICAgICAgICAgICArLS08LS0tKwogICoKICAqIFRvIGF2b2lkIGNyZWF0 aW5nIHRvbyBtYW55IHRyYW5zYWN0aW9ucywgdXAgdG8gTUFYX1NFUVVFTkNFU19TWU5DX1BFUl9C QVRDSAogICogc2VxdWVuY2VzIGFyZSBzeW5jaHJvbml6ZWQgcGVyIHRyYW5zYWN0aW9uLiBUaGUg bG9ja3Mgb24gdGhlIHNlcXVlbmNlCkBAIC02MCw2ICs3Miw3IEBACiAjaW5jbHVkZSAicG9zdG1h c3Rlci9pbnRlcnJ1cHQuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dpY2Fsd29ya2VyLmgi CiAjaW5jbHVkZSAicmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmgiCisjaW5jbHVkZSAic3Rv cmFnZS9sYXRjaC5oIgogI2luY2x1ZGUgInV0aWxzL2FjbC5oIgogI2luY2x1ZGUgInV0aWxzL2J1 aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvZm1ncm9pZHMuaCIKQEAgLTc2LDI1ICs4OSwzNSBA QAogdHlwZWRlZiBlbnVtIENvcHlTZXFSZXN1bHQKIHsKIAlDT1BZU0VRX1NVQ0NFU1MsCisJQ09Q WVNFUV9BTExPV0VELAogCUNPUFlTRVFfTUlTTUFUQ0gsCiAJQ09QWVNFUV9JTlNVRkZJQ0lFTlRf UEVSTSwKLQlDT1BZU0VRX1NLSVBQRUQKKwlDT1BZU0VRX1NLSVBQRUQsCisJQ09QWVNFUV9OT19E UklGVCwKIH0gQ29weVNlcVJlc3VsdDsKIAotc3RhdGljIExpc3QgKnNlcWluZm9zID0gTklMOwor LyogU2xlZXAgaW50ZXJ2YWxzIGZvciBzeW5jICovCisjZGVmaW5lIFNFUVNZTkNfTUlOX1NMRUVQ X01TIDIwMDAJLyogMiBzZWNvbmRzICovCisjZGVmaW5lIFNFUVNZTkNfTUFYX1NMRUVQX01TIDMw MDAwCS8qIDMwIHNlY29uZHMgKi8KKworc3RhdGljIE1lbW9yeUNvbnRleHQgU2VxdWVuY2VTeW5j Q29udGV4dCA9IE5VTEw7CiAKIC8qCi0gKiBBcHBseSB3b3JrZXIgZGV0ZXJtaW5lcyBpZiBzZXF1 ZW5jZSBzeW5jaHJvbml6YXRpb24gaXMgbmVlZGVkLgorICogQXBwbHkgd29ya2VyIGRldGVybWlu ZXMgd2hldGhlciBhIHNlcXVlbmNlIHN5bmMgd29ya2VyIGlzIG5lZWRlZC4KICAqCiAgKiBTdGFy dCBhIHNlcXVlbmNlc3luYyB3b3JrZXIgaWYgb25lIGlzIG5vdCBhbHJlYWR5IHJ1bm5pbmcuIFRo ZSBhY3RpdmUKICAqIHNlcXVlbmNlc3luYyB3b3JrZXIgd2lsbCBoYW5kbGUgYWxsIHBlbmRpbmcg c2VxdWVuY2Ugc3luY2hyb25pemF0aW9uLiBJZiBhbnkKICAqIHNlcXVlbmNlcyByZW1haW4gdW5z eW5jaHJvbml6ZWQgYWZ0ZXIgaXQgZXhpdHMsIGEgbmV3IHdvcmtlciBjYW4gYmUgc3RhcnRlZAog ICogaW4gdGhlIG5leHQgaXRlcmF0aW9uLgorICoKKyAqIFRoZSBwb2ludGVyIHRvIHRoZSBzZXF1 ZW5jZXN5bmMgd29ya2VyIGlzIGNhY2hlZCB0byBhdm9pZCBzY2FubmluZyB0aGUKKyAqIHdvcmtl cnMgYXJyYXkgZWFjaCB0aW1lIHZpYSBsb2dpY2FscmVwX3dvcmtlcl9maW5kKCkuCiAgKi8KIHZv aWQKLVByb2Nlc3NTZXF1ZW5jZXNGb3JTeW5jKHZvaWQpCitNYXliZUxhdW5jaFNlcXVlbmNlU3lu Y1dvcmtlcih2b2lkKQogewotCUxvZ2ljYWxSZXBXb3JrZXIgKnNlcXVlbmNlc3luY193b3JrZXI7 CisJc3RhdGljIExvZ2ljYWxSZXBXb3JrZXIgKnNlcXVlbmNlc3luY193b3JrZXIgPSBOVUxMOwor CiAJaW50CQkJbnN5bmN3b3JrZXJzOwogCWJvb2wJCWhhc19wZW5kaW5nX3NlcXVlbmNlczsKIAli b29sCQlzdGFydGVkX3R4OwpAQCAtMTEyLDYgKzEzNSwxOSBAQCBQcm9jZXNzU2VxdWVuY2VzRm9y U3luYyh2b2lkKQogCiAJTFdMb2NrQWNxdWlyZShMb2dpY2FsUmVwV29ya2VyTG9jaywgTFdfU0hB UkVEKTsKIAorCS8qCisJICogUXVpY2sgZXhpdCBpZiB0aGUgc2VxdWVuY2Ugc3luYyB3b3JrZXIg Zm9yIHRoZSBjdXJyZW50IHN1YnNjcmlwdGlvbiBpcworCSAqIGFscmVhZHkgYWxpdmUuCisJICov CisJaWYgKHNlcXVlbmNlc3luY193b3JrZXIgJiYKKwkJc2VxdWVuY2VzeW5jX3dvcmtlci0+cHJv YyAmJgorCQlpc1NlcXVlbmNlU3luY1dvcmtlcihzZXF1ZW5jZXN5bmNfd29ya2VyKSAmJgorCQlz ZXF1ZW5jZXN5bmNfd29ya2VyLT5zdWJpZCA9PSBNeUxvZ2ljYWxSZXBXb3JrZXItPnN1YmlkKQor CXsKKwkJTFdMb2NrUmVsZWFzZShMb2dpY2FsUmVwV29ya2VyTG9jayk7CisJCXJldHVybjsKKwl9 CisKIAkvKiBDaGVjayBpZiB0aGVyZSBpcyBhIHNlcXVlbmNlc3luYyB3b3JrZXIgYWxyZWFkeSBy dW5uaW5nPyAqLwogCXNlcXVlbmNlc3luY193b3JrZXIgPSBsb2dpY2FscmVwX3dvcmtlcl9maW5k KFdPUktFUlRZUEVfU0VRVUVOQ0VTWU5DLAogCQkJCQkJCQkJCQkJIE15TG9naWNhbFJlcFdvcmtl ci0+c3ViaWQsCkBAIC0xNDQsNyArMTgwLDcgQEAgUHJvY2Vzc1NlcXVlbmNlc0ZvclN5bmModm9p ZCkKICAqIGZvciB0aGUgZ2l2ZW4gbGlzdCBvZiBzZXF1ZW5jZSBpbmRleGVzLgogICovCiBzdGF0 aWMgdm9pZAotZ2V0X3NlcXVlbmNlc19zdHJpbmcoTGlzdCAqc2VxaW5kZXhlcywgU3RyaW5nSW5m byBidWYpCitnZXRfc2VxdWVuY2VzX3N0cmluZyhMaXN0ICpzZXFpbmRleGVzLCBMaXN0ICpzZXFp bmZvcywgU3RyaW5nSW5mbyBidWYpCiB7CiAJcmVzZXRTdHJpbmdJbmZvKGJ1Zik7CiAJZm9yZWFj aF9pbnQoc2VxaWR4LCBzZXFpbmRleGVzKQpAQCAtMTcxLDcgKzIwNyw3IEBAIGdldF9zZXF1ZW5j ZXNfc3RyaW5nKExpc3QgKnNlcWluZGV4ZXMsIFN0cmluZ0luZm8gYnVmKQogICovCiBzdGF0aWMg dm9pZAogcmVwb3J0X3NlcXVlbmNlX2Vycm9ycyhMaXN0ICptaXNtYXRjaGVkX3NlcXNfaWR4LCBM aXN0ICppbnN1ZmZwZXJtX3NlcXNfaWR4LAotCQkJCQkgICBMaXN0ICptaXNzaW5nX3NlcXNfaWR4 KQorCQkJCQkgICBMaXN0ICptaXNzaW5nX3NlcXNfaWR4LCBMaXN0ICpzZXFpbmZvcykKIHsKIAlT dHJpbmdJbmZvCXNlcXN0cjsKIApAQCAtMTgzLDcgKzIxOSw3IEBAIHJlcG9ydF9zZXF1ZW5jZV9l cnJvcnMoTGlzdCAqbWlzbWF0Y2hlZF9zZXFzX2lkeCwgTGlzdCAqaW5zdWZmcGVybV9zZXFzX2lk eCwKIAogCWlmIChtaXNtYXRjaGVkX3NlcXNfaWR4KQogCXsKLQkJZ2V0X3NlcXVlbmNlc19zdHJp bmcobWlzbWF0Y2hlZF9zZXFzX2lkeCwgc2Vxc3RyKTsKKwkJZ2V0X3NlcXVlbmNlc19zdHJpbmco bWlzbWF0Y2hlZF9zZXFzX2lkeCwgc2VxaW5mb3MsIHNlcXN0cik7CiAJCWVyZXBvcnQoV0FSTklO RywKIAkJCQllcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUp LAogCQkJCWVycm1zZ19wbHVyYWwoIm1pc21hdGNoZWQgb3IgcmVuYW1lZCBzZXF1ZW5jZSBvbiBz dWJzY3JpYmVyICglcykiLApAQCAtMTk0LDcgKzIzMCw3IEBAIHJlcG9ydF9zZXF1ZW5jZV9lcnJv cnMoTGlzdCAqbWlzbWF0Y2hlZF9zZXFzX2lkeCwgTGlzdCAqaW5zdWZmcGVybV9zZXFzX2lkeCwK IAogCWlmIChpbnN1ZmZwZXJtX3NlcXNfaWR4KQogCXsKLQkJZ2V0X3NlcXVlbmNlc19zdHJpbmco aW5zdWZmcGVybV9zZXFzX2lkeCwgc2Vxc3RyKTsKKwkJZ2V0X3NlcXVlbmNlc19zdHJpbmcoaW5z dWZmcGVybV9zZXFzX2lkeCwgc2VxaW5mb3MsIHNlcXN0cik7CiAJCWVyZXBvcnQoV0FSTklORywK IAkJCQllcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAog CQkJCWVycm1zZ19wbHVyYWwoImluc3VmZmljaWVudCBwcml2aWxlZ2VzIG9uIHNlcXVlbmNlICgl cykiLApAQCAtMjA1LDcgKzI0MSw3IEBAIHJlcG9ydF9zZXF1ZW5jZV9lcnJvcnMoTGlzdCAqbWlz bWF0Y2hlZF9zZXFzX2lkeCwgTGlzdCAqaW5zdWZmcGVybV9zZXFzX2lkeCwKIAogCWlmIChtaXNz aW5nX3NlcXNfaWR4KQogCXsKLQkJZ2V0X3NlcXVlbmNlc19zdHJpbmcobWlzc2luZ19zZXFzX2lk eCwgc2Vxc3RyKTsKKwkJZ2V0X3NlcXVlbmNlc19zdHJpbmcobWlzc2luZ19zZXFzX2lkeCwgc2Vx aW5mb3MsIHNlcXN0cik7CiAJCWVyZXBvcnQoV0FSTklORywKIAkJCQllcnJjb2RlKEVSUkNPREVf T0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAogCQkJCWVycm1zZ19wbHVyYWwoIm1p c3Npbmcgc2VxdWVuY2Ugb24gcHVibGlzaGVyICglcykiLApAQCAtMjI5LDcgKzI2NSw4IEBAIHJl cG9ydF9zZXF1ZW5jZV9lcnJvcnMoTGlzdCAqbWlzbWF0Y2hlZF9zZXFzX2lkeCwgTGlzdCAqaW5z dWZmcGVybV9zZXFzX2lkeCwKICAqLwogc3RhdGljIENvcHlTZXFSZXN1bHQKIGdldF9hbmRfdmFs aWRhdGVfc2VxX2luZm8oVHVwbGVUYWJsZVNsb3QgKnNsb3QsIFJlbGF0aW9uICpzZXF1ZW5jZV9y ZWwsCi0JCQkJCQkgIExvZ2ljYWxSZXBTZXF1ZW5jZUluZm8gKipzZXFpbmZvLCBpbnQgKnNlcWlk eCkKKwkJCQkJCSAgTG9naWNhbFJlcFNlcXVlbmNlSW5mbyAqKnNlcWluZm8sIGludCAqc2VxaWR4 LAorCQkJCQkJICBMaXN0ICpzZXFpbmZvcykKIHsKIAlib29sCQlpc251bGw7CiAJaW50CQkJY29s ID0gMDsKQEAgLTI0MCw3ICsyNzcsNyBAQCBnZXRfYW5kX3ZhbGlkYXRlX3NlcV9pbmZvKFR1cGxl VGFibGVTbG90ICpzbG90LCBSZWxhdGlvbiAqc2VxdWVuY2VfcmVsLAogCWludDY0CQlyZW1vdGVf bWluOwogCWludDY0CQlyZW1vdGVfbWF4OwogCWJvb2wJCXJlbW90ZV9jeWNsZTsKLQlDb3B5U2Vx UmVzdWx0IHJlc3VsdCA9IENPUFlTRVFfU1VDQ0VTUzsKKwlDb3B5U2VxUmVzdWx0IHJlc3VsdCA9 IENPUFlTRVFfQUxMT1dFRDsKIAlIZWFwVHVwbGUJdHVwOwogCUZvcm1fcGdfc2VxdWVuY2UgbG9j YWxfc2VxOwogCUxvZ2ljYWxSZXBTZXF1ZW5jZUluZm8gKnNlcWluZm9fbG9jYWw7CkBAIC0zMjUs MzIgKzM2Miw3OSBAQCBnZXRfYW5kX3ZhbGlkYXRlX3NlcV9pbmZvKFR1cGxlVGFibGVTbG90ICpz bG90LCBSZWxhdGlvbiAqc2VxdWVuY2VfcmVsLAogfQogCiAvKgotICogQXBwbHkgcmVtb3RlIHNl cXVlbmNlIHN0YXRlIHRvIGxvY2FsIHNlcXVlbmNlIGFuZCBtYXJrIGl0IGFzCi0gKiBzeW5jaHJv bml6ZWQgKFJFQURZKS4KKyAqIENoZWNrIHdoZXRoZXIgdGhlIHVzZXIgaGFzIHJlcXVpcmVkIHBy aXZpbGVnZXMgb24gdGhlIHNlcXVlbmNlIGFuZAorICogd2hldGhlciB0aGUgc2VxdWVuY2UgaGFz IGRyaWZ0ZWQuCiAgKi8KIHN0YXRpYyBDb3B5U2VxUmVzdWx0Ci1jb3B5X3NlcXVlbmNlKExvZ2lj YWxSZXBTZXF1ZW5jZUluZm8gKnNlcWluZm8sIE9pZCBzZXFvd25lcikKK3ZhbGlkYXRlX3NlcXN5 bmNfc3RhdGUoTG9naWNhbFJlcFNlcXVlbmNlSW5mbyAqc2VxaW5mbywgUmVsYXRpb24gc2VxdWVu Y2VfcmVsKQogewotCVVzZXJDb250ZXh0IHVjeHQ7CiAJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlP aWQJCQlzZXFvaWQgPSBzZXFpbmZvLT5sb2NhbHJlbGlkOworCisJLyogUGVyZm9ybSBkcmlmdCBj aGVjayBpZiBpdCdzIG5vdCB0aGUgaW5pdGlhbCBzeW5jICovCisJaWYgKHNlcWluZm8tPnJlbHN0 YXRlID09IFNVQlJFTF9TVEFURV9SRUFEWSkKKwl7CisJCWludDY0CQlsb2NhbF9sYXN0X3ZhbHVl OworCQlib29sCQlsb2NhbF9pc19jYWxsZWQ7CisKKwkJLyoKKwkJICogU2tpcCBzeW5jaHJvbml6 YXRpb24gaWYgdGhlIGN1cnJlbnQgdXNlciBkb2VzIG5vdCBoYXZlIHN1ZmZpY2llbnQKKwkJICog cHJpdmlsZWdlcyB0byByZWFkIHRoZSBzZXF1ZW5jZSBkYXRhLgorCQkgKi8KKwkJaWYgKCFHZXRT ZXF1ZW5jZShzZXF1ZW5jZV9yZWwsICZsb2NhbF9sYXN0X3ZhbHVlLCAmbG9jYWxfaXNfY2FsbGVk KSkKKwkJCXJldHVybiBDT1BZU0VRX0lOU1VGRklDSUVOVF9QRVJNOworCisJCS8qCisJCSAqIFNr aXAgc3luY2hyb25pemF0aW9uIGlmIHRoZSBzZXF1ZW5jZSBoYXMgbm90IGRyaWZ0ZWQgZnJvbSB0 aGUKKwkJICogcHVibGlzaGVyJ3MgdmFsdWUuCisJCSAqLworCQlpZiAobG9jYWxfbGFzdF92YWx1 ZSA9PSBzZXFpbmZvLT5sYXN0X3ZhbHVlICYmCisJCQlsb2NhbF9pc19jYWxsZWQgPT0gc2VxaW5m by0+aXNfY2FsbGVkKQorCQkJcmV0dXJuIENPUFlTRVFfTk9fRFJJRlQ7CisJfQorCisJLyogVmVy aWZ5IHRoYXQgdGhlIGN1cnJlbnQgdXNlciBjYW4gdXBkYXRlIHRoZSBzZXF1ZW5jZSAqLworCWFj bHJlc3VsdCA9IHBnX2NsYXNzX2FjbGNoZWNrKHNlcW9pZCwgR2V0VXNlcklkKCksIEFDTF9VUERB VEUpOworCisJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJcmV0dXJuIENPUFlTRVFf SU5TVUZGSUNJRU5UX1BFUk07CisKKwlyZXR1cm4gQ09QWVNFUV9BTExPV0VEOworfQorCisvKgor ICogQXBwbHkgcmVtb3RlIHNlcXVlbmNlIHN0YXRlIHRvIGxvY2FsIHNlcXVlbmNlLiBGb3Igc2Vx dWVuY2VzIGluIElOSVQgc3RhdGUsCisgKiBhbHdheXMgc3luY2hyb25pemUgYW5kIHRoZW4gbW92 ZSB0aGVtIHRvIFJFQURZIHN0YXRlIHVwb24gY29tcGxldGlvbi4gRm9yCisgKiBzZXF1ZW5jZXMg YWxyZWFkeSBpbiBSRUFEWSBzdGF0ZSwgc3luY2hyb25pemUgb25seSBpZiBkcmlmdCBpcyBkZXRl Y3RlZC4KKyAqLworc3RhdGljIENvcHlTZXFSZXN1bHQKK2NvcHlfc2VxdWVuY2UoTG9naWNhbFJl cFNlcXVlbmNlSW5mbyAqc2VxaW5mbywgUmVsYXRpb24gc2VxdWVuY2VfcmVsKQoreworCVVzZXJD b250ZXh0IHVjeHQ7CiAJYm9vbAkJcnVuX2FzX293bmVyID0gTXlTdWJzY3JpcHRpb24tPnJ1bmFz b3duZXI7CiAJT2lkCQkJc2Vxb2lkID0gc2VxaW5mby0+bG9jYWxyZWxpZDsKKwlDb3B5U2VxUmVz dWx0IHJlc3VsdDsKKwlYTG9nUmVjUHRyCWxvY2FsX3BhZ2VfbHNuOworCisJKHZvaWQpIEdldFN1 YnNjcmlwdGlvblJlbFN0YXRlKE15U3Vic2NyaXB0aW9uLT5vaWQsCisJCQkJCQkJCSAgIFJlbGF0 aW9uR2V0UmVsaWQoc2VxdWVuY2VfcmVsKSwKKwkJCQkJCQkJICAgJmxvY2FsX3BhZ2VfbHNuKTsK IAogCS8qCiAJICogSWYgdGhlIHVzZXIgZGlkIG5vdCBvcHQgdG8gcnVuIGFzIHRoZSBvd25lciBv ZiB0aGUgc3Vic2NyaXB0aW9uCiAJICogKCdydW5fYXNfb3duZXInKSwgdGhlbiBjb3B5IHRoZSBz ZXF1ZW5jZSBhcyB0aGUgb3duZXIgb2YgdGhlIHNlcXVlbmNlLgogCSAqLwogCWlmICghcnVuX2Fz X293bmVyKQotCQlTd2l0Y2hUb1VudHJ1c3RlZFVzZXIoc2Vxb3duZXIsICZ1Y3h0KTsKKwkJU3dp dGNoVG9VbnRydXN0ZWRVc2VyKHNlcXVlbmNlX3JlbC0+cmRfcmVsLT5yZWxvd25lciwgJnVjeHQp OwogCi0JYWNscmVzdWx0ID0gcGdfY2xhc3NfYWNsY2hlY2soc2Vxb2lkLCBHZXRVc2VySWQoKSwg QUNMX1VQREFURSk7CisJcmVzdWx0ID0gdmFsaWRhdGVfc2Vxc3luY19zdGF0ZShzZXFpbmZvLCBz ZXF1ZW5jZV9yZWwpOwogCi0JaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwlpZiAocmVz dWx0ICE9IENPUFlTRVFfQUxMT1dFRCkKIAl7CiAJCWlmICghcnVuX2FzX293bmVyKQogCQkJUmVz dG9yZVVzZXJDb250ZXh0KCZ1Y3h0KTsKIAotCQlyZXR1cm4gQ09QWVNFUV9JTlNVRkZJQ0lFTlRf UEVSTTsKKwkJcmV0dXJuIHJlc3VsdDsKIAl9CiAKIAkvKgpAQCAtMzY4LDE5ICs0NTIsMjcgQEAg Y29weV9zZXF1ZW5jZShMb2dpY2FsUmVwU2VxdWVuY2VJbmZvICpzZXFpbmZvLCBPaWQgc2Vxb3du ZXIpCiAKIAkvKgogCSAqIFJlY29yZCB0aGUgcmVtb3RlIHNlcXVlbmNlJ3MgTFNOIGluIHBnX3N1 YnNjcmlwdGlvbl9yZWwgYW5kIG1hcmsgdGhlCi0JICogc2VxdWVuY2UgYXMgUkVBRFkuCisJICog c2VxdWVuY2UgYXMgUkVBRFkgaWYgdXBkYXRpbmcgYSBzZXF1ZW5jZSB0aGF0IGlzIGluIElOSVQg c3RhdGUuCiAJICovCi0JVXBkYXRlU3Vic2NyaXB0aW9uUmVsU3RhdGUoTXlTdWJzY3JpcHRpb24t Pm9pZCwgc2Vxb2lkLCBTVUJSRUxfU1RBVEVfUkVBRFksCi0JCQkJCQkJICAgc2VxaW5mby0+cGFn ZV9sc24sIGZhbHNlKTsKKwlpZiAoc2VxaW5mby0+cmVsc3RhdGUgPT0gU1VCUkVMX1NUQVRFX0lO SVQgfHwKKwkJc2VxaW5mby0+cGFnZV9sc24gIT0gbG9jYWxfcGFnZV9sc24pCisJCVVwZGF0ZVN1 YnNjcmlwdGlvblJlbFN0YXRlKE15U3Vic2NyaXB0aW9uLT5vaWQsIHNlcW9pZCwgU1VCUkVMX1NU QVRFX1JFQURZLAorCQkJCQkJCQkgICBzZXFpbmZvLT5wYWdlX2xzbiwgZmFsc2UpOwogCiAJcmV0 dXJuIENPUFlTRVFfU1VDQ0VTUzsKIH0KIAogLyoKICAqIENvcHkgZXhpc3RpbmcgZGF0YSBvZiBz ZXF1ZW5jZXMgZnJvbSB0aGUgcHVibGlzaGVyLgorICoKKyAqIElmIHRoZSBzdGF0ZSBvZiBzZXF1 ZW5jZSBpcyBTVUJSRUxfU1RBVEVfUkVBRFksIG9ubHkgc3luY2hyb25pemUgc2VxdWVuY2VzCisg KiB0aGF0IGhhdmUgZHJpZnRlZCBmcm9tIHRoZWlyIHB1Ymxpc2hlciB2YWx1ZXMuIE90aGVyd2lz ZSwgc3luY2hyb25pemUgYWxsCisgKiBzZXF1ZW5jZXMuCisgKgorICogUmV0dXJucyB0cnVlL2Zh bHNlIGlmIGFueSBzZXF1ZW5jZXMgd2VyZSBhY3R1YWxseSBjb3BpZWQuCiAgKi8KLXN0YXRpYyB2 b2lkCi1jb3B5X3NlcXVlbmNlcyhXYWxSZWNlaXZlckNvbm4gKmNvbm4pCitzdGF0aWMgYm9vbAor Y29weV9zZXF1ZW5jZXMoV2FsUmVjZWl2ZXJDb25uICpjb25uLCBMaXN0ICpzZXFpbmZvcykKIHsK IAlpbnQJCQljdXJfYmF0Y2hfYmFzZV9pbmRleCA9IDA7CiAJaW50CQkJbl9zZXFpbmZvcyA9IGxp c3RfbGVuZ3RoKHNlcWluZm9zKTsKQEAgLTM5MCwxMyArNDgyLDEwIEBAIGNvcHlfc2VxdWVuY2Vz KFdhbFJlY2VpdmVyQ29ubiAqY29ubikKIAlTdHJpbmdJbmZvCXNlcXN0ciA9IG1ha2VTdHJpbmdJ bmZvKCk7CiAJU3RyaW5nSW5mbwljbWQgPSBtYWtlU3RyaW5nSW5mbygpOwogCU1lbW9yeUNvbnRl eHQgb2xkY3R4OworCWJvb2wJCXNlcXVlbmNlX2NvcGllZCA9IGZhbHNlOwogCiAjZGVmaW5lIE1B WF9TRVFVRU5DRVNfU1lOQ19QRVJfQkFUQ0ggMTAwCiAKLQllbG9nKERFQlVHMSwKLQkJICJsb2dp Y2FsIHJlcGxpY2F0aW9uIHNlcXVlbmNlIHN5bmNocm9uaXphdGlvbiBmb3Igc3Vic2NyaXB0aW9u IFwiJXNcIiAtIHRvdGFsIHVuc3luY2hyb25pemVkOiAlZCIsCi0JCSBNeVN1YnNjcmlwdGlvbi0+ bmFtZSwgbl9zZXFpbmZvcyk7Ci0KIAl3aGlsZSAoY3VyX2JhdGNoX2Jhc2VfaW5kZXggPCBuX3Nl cWluZm9zKQogCXsKIAkJT2lkCQkJc2VxUm93W1JFTU9URV9TRVFfQ09MX0NPVU5UXSA9IHtJTlQ4 T0lELCBJTlQ4T0lELApAQCAtNDA2LDYgKzQ5NSw3IEBAIGNvcHlfc2VxdWVuY2VzKFdhbFJlY2Vp dmVyQ29ubiAqY29ubikKIAkJaW50CQkJYmF0Y2hfbWlzbWF0Y2hlZF9jb3VudCA9IDA7CiAJCWlu dAkJCWJhdGNoX3NraXBwZWRfY291bnQgPSAwOwogCQlpbnQJCQliYXRjaF9pbnN1ZmZwZXJtX2Nv dW50ID0gMDsKKwkJaW50CQkJYmF0Y2hfbm9fZHJpZnQgPSAwOwogCQlpbnQJCQliYXRjaF9taXNz aW5nX2NvdW50OwogCQlSZWxhdGlvbglzZXF1ZW5jZV9yZWwgPSBOVUxMOwogCkBAIC01MDEsMjgg KzU5MSwyOCBAQCBjb3B5X3NlcXVlbmNlcyhXYWxSZWNlaXZlckNvbm4gKmNvbm4pCiAJCQl9CiAK IAkJCXN5bmNfc3RhdHVzID0gZ2V0X2FuZF92YWxpZGF0ZV9zZXFfaW5mbyhzbG90LCAmc2VxdWVu Y2VfcmVsLAotCQkJCQkJCQkJCQkJCSZzZXFpbmZvLCAmc2VxaWR4KTsKLQkJCWlmIChzeW5jX3N0 YXR1cyA9PSBDT1BZU0VRX1NVQ0NFU1MpCi0JCQkJc3luY19zdGF0dXMgPSBjb3B5X3NlcXVlbmNl KHNlcWluZm8sCi0JCQkJCQkJCQkJCXNlcXVlbmNlX3JlbC0+cmRfcmVsLT5yZWxvd25lcik7CisJ CQkJCQkJCQkJCQkJJnNlcWluZm8sICZzZXFpZHgsIHNlcWluZm9zKTsKKworCQkJaWYgKHN5bmNf c3RhdHVzID09IENPUFlTRVFfQUxMT1dFRCkKKwkJCQlzeW5jX3N0YXR1cyA9IGNvcHlfc2VxdWVu Y2Uoc2VxaW5mbywgc2VxdWVuY2VfcmVsKTsKIAogCQkJc3dpdGNoIChzeW5jX3N0YXR1cykKIAkJ CXsKIAkJCQljYXNlIENPUFlTRVFfU1VDQ0VTUzoKIAkJCQkJZWxvZyhERUJVRzEsCi0JCQkJCQkg ImxvZ2ljYWwgcmVwbGljYXRpb24gc3luY2hyb25pemF0aW9uIGZvciBzdWJzY3JpcHRpb24gXCIl c1wiLCBzZXF1ZW5jZSBcIiVzLiVzXCIgaGFzIGZpbmlzaGVkIiwKLQkJCQkJCSBNeVN1YnNjcmlw dGlvbi0+bmFtZSwgc2VxaW5mby0+bnNwbmFtZSwKLQkJCQkJCSBzZXFpbmZvLT5zZXFuYW1lKTsK KwkJCQkJCSAibG9naWNhbCByZXBsaWNhdGlvbiBzeW5jaHJvbml6YXRpb24gaGFzIHVwZGF0ZWQg c2VxdWVuY2UgXCIlcy4lc1wiIGluIHN1YnNjcmlwdGlvbiBcIiVzXCIiLAorCQkJCQkJIHNlcWlu Zm8tPm5zcG5hbWUsIHNlcWluZm8tPnNlcW5hbWUsIE15U3Vic2NyaXB0aW9uLT5uYW1lKTsKIAkJ CQkJYmF0Y2hfc3VjY2VlZGVkX2NvdW50Kys7CisJCQkJCXNlcXVlbmNlX2NvcGllZCA9IHRydWU7 CiAJCQkJCWJyZWFrOwogCQkJCWNhc2UgQ09QWVNFUV9NSVNNQVRDSDoKIAogCQkJCQkvKgotCQkJ CQkgKiBSZW1lbWJlciBtaXNtYXRjaGVkIHNlcXVlbmNlcyBpbiBhIGxvbmctbGl2ZWQgbWVtb3J5 Ci0JCQkJCSAqIGNvbnRleHQgc2luY2UgdGhlc2Ugd2lsbCBiZSB1c2VkIGFmdGVyIHRoZSB0cmFu c2FjdGlvbgotCQkJCQkgKiBpcyBjb21taXR0ZWQuCisJCQkJCSAqIFJlbWVtYmVyIG1pc21hdGNo ZWQgc2VxdWVuY2VzIGluIFNlcXVlbmNlU3luY0NvbnRleHQKKwkJCQkJICogc2luY2UgdGhlc2Ug d2lsbCBiZSB1c2VkIGFmdGVyIHRoZSB0cmFuc2FjdGlvbiBpcworCQkJCQkgKiBjb21taXR0ZWQu CiAJCQkJCSAqLwotCQkJCQlvbGRjdHggPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oQXBwbHlDb250 ZXh0KTsKKwkJCQkJb2xkY3R4ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKFNlcXVlbmNlU3luY0Nv bnRleHQpOwogCQkJCQltaXNtYXRjaGVkX3NlcXNfaWR4ID0gbGFwcGVuZF9pbnQobWlzbWF0Y2hl ZF9zZXFzX2lkeCwKIAkJCQkJCQkJCQkJCQkgIHNlcWlkeCk7CiAJCQkJCU1lbW9yeUNvbnRleHRT d2l0Y2hUbyhvbGRjdHgpOwpAQCAtNTMxLDExICs2MjEsMTEgQEAgY29weV9zZXF1ZW5jZXMoV2Fs UmVjZWl2ZXJDb25uICpjb25uKQogCQkJCWNhc2UgQ09QWVNFUV9JTlNVRkZJQ0lFTlRfUEVSTToK IAogCQkJCQkvKgotCQkJCQkgKiBSZW1lbWJlciBzZXF1ZW5jZXMgd2l0aCBpbnN1ZmZpY2llbnQg cHJpdmlsZWdlcyBpbiBhCi0JCQkJCSAqIGxvbmctbGl2ZWQgbWVtb3J5IGNvbnRleHQgc2luY2Ug dGhlc2Ugd2lsbCBiZSB1c2VkCi0JCQkJCSAqIGFmdGVyIHRoZSB0cmFuc2FjdGlvbiBpcyBjb21t aXR0ZWQuCisJCQkJCSAqIFJlbWVtYmVyIHNlcXVlbmNlcyB3aXRoIGluc3VmZmljaWVudCBwcml2 aWxlZ2VzIGluCisJCQkJCSAqIFNlcXVlbmNlU3luY0NvbnRleHQgc2luY2UgdGhlc2Ugd2lsbCBi ZSB1c2VkIGFmdGVyIHRoZQorCQkJCQkgKiB0cmFuc2FjdGlvbiBpcyBjb21taXR0ZWQuCiAJCQkJ CSAqLwotCQkJCQlvbGRjdHggPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oQXBwbHlDb250ZXh0KTsK KwkJCQkJb2xkY3R4ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKFNlcXVlbmNlU3luY0NvbnRleHQp OwogCQkJCQlpbnN1ZmZwZXJtX3NlcXNfaWR4ID0gbGFwcGVuZF9pbnQoaW5zdWZmcGVybV9zZXFz X2lkeCwKIAkJCQkJCQkJCQkJCQkgIHNlcWlkeCk7CiAJCQkJCU1lbW9yeUNvbnRleHRTd2l0Y2hU byhvbGRjdHgpOwpAQCAtNTU4LDYgKzY0OCwxMyBAQCBjb3B5X3NlcXVlbmNlcyhXYWxSZWNlaXZl ckNvbm4gKmNvbm4pCiAJCQkJCQliYXRjaF9za2lwcGVkX2NvdW50Kys7CiAJCQkJCX0KIAkJCQkJ YnJlYWs7CisJCQkJY2FzZSBDT1BZU0VRX05PX0RSSUZUOgorCQkJCQkvKiBOb3RoaW5nIHRvIGRv ICovCisJCQkJCWJhdGNoX25vX2RyaWZ0Kys7CisJCQkJCWJyZWFrOworCQkJCWRlZmF1bHQ6CisJ CQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgU2VxdWVuY2UgcmVwbGljYXRpb24gcmVzdWx0 OiAlZCIsIChpbnQpIHN5bmNfc3RhdHVzKTsKKwogCQkJfQogCiAJCQlpZiAoc2VxdWVuY2VfcmVs KQpAQCAtNTcyLDE0ICs2NjksMTUgQEAgY29weV9zZXF1ZW5jZXMoV2FsUmVjZWl2ZXJDb25uICpj b25uKQogCQliYXRjaF9taXNzaW5nX2NvdW50ID0gYmF0Y2hfc2l6ZSAtIChiYXRjaF9zdWNjZWVk ZWRfY291bnQgKwogCQkJCQkJCQkJCQliYXRjaF9taXNtYXRjaGVkX2NvdW50ICsKIAkJCQkJCQkJ CQkJYmF0Y2hfaW5zdWZmcGVybV9jb3VudCArCi0JCQkJCQkJCQkJCWJhdGNoX3NraXBwZWRfY291 bnQpOworCQkJCQkJCQkJCQliYXRjaF9za2lwcGVkX2NvdW50ICsKKwkJCQkJCQkJCQkJYmF0Y2hf bm9fZHJpZnQpOwogCiAJCWVsb2coREVCVUcxLAotCQkJICJsb2dpY2FsIHJlcGxpY2F0aW9uIHNl cXVlbmNlIHN5bmNocm9uaXphdGlvbiBmb3Igc3Vic2NyaXB0aW9uIFwiJXNcIiAtIGJhdGNoICMl ZCA9ICVkIGF0dGVtcHRlZCwgJWQgc3VjY2VlZGVkLCAlZCBtaXNtYXRjaGVkLCAlZCBpbnN1ZmZp Y2llbnQgcGVybWlzc2lvbiwgJWQgbWlzc2luZyBmcm9tIHB1Ymxpc2hlciwgJWQgc2tpcHBlZCIs CisJCQkgImxvZ2ljYWwgcmVwbGljYXRpb24gc2VxdWVuY2Ugc3luY2hyb25pemF0aW9uIGZvciBz dWJzY3JpcHRpb24gXCIlc1wiIC0gYmF0Y2ggIyVkID0gJWQgYXR0ZW1wdGVkLCAlZCBzdWNjZWVk ZWQsICVkIG1pc21hdGNoZWQsICVkIGluc3VmZmljaWVudCBwZXJtaXNzaW9uLCAlZCBtaXNzaW5n IGZyb20gcHVibGlzaGVyLCAlZCBza2lwcGVkLCAlZCBubyBkcmlmdCIsCiAJCQkgTXlTdWJzY3Jp cHRpb24tPm5hbWUsCiAJCQkgKGN1cl9iYXRjaF9iYXNlX2luZGV4IC8gTUFYX1NFUVVFTkNFU19T WU5DX1BFUl9CQVRDSCkgKyAxLAogCQkJIGJhdGNoX3NpemUsIGJhdGNoX3N1Y2NlZWRlZF9jb3Vu dCwgYmF0Y2hfbWlzbWF0Y2hlZF9jb3VudCwKLQkJCSBiYXRjaF9pbnN1ZmZwZXJtX2NvdW50LCBi YXRjaF9taXNzaW5nX2NvdW50LCBiYXRjaF9za2lwcGVkX2NvdW50KTsKKwkJCSBiYXRjaF9pbnN1 ZmZwZXJtX2NvdW50LCBiYXRjaF9taXNzaW5nX2NvdW50LCBiYXRjaF9za2lwcGVkX2NvdW50LCBi YXRjaF9ub19kcmlmdCk7CiAKIAkJLyogQ29tbWl0IHRoaXMgYmF0Y2gsIGFuZCBwcmVwYXJlIGZv ciBuZXh0IGJhdGNoICovCiAJCUNvbW1pdFRyYW5zYWN0aW9uQ29tbWFuZCgpOwpAQCAtNjA3LDQ3 ICs3MDUsNTAgQEAgY29weV9zZXF1ZW5jZXMoV2FsUmVjZWl2ZXJDb25uICpjb25uKQogCiAJLyog UmVwb3J0IG1pc21hdGNoZXMsIHBlcm1pc3Npb24gaXNzdWVzLCBvciBtaXNzaW5nIHNlcXVlbmNl cyAqLwogCXJlcG9ydF9zZXF1ZW5jZV9lcnJvcnMobWlzbWF0Y2hlZF9zZXFzX2lkeCwgaW5zdWZm cGVybV9zZXFzX2lkeCwKLQkJCQkJCSAgIG1pc3Npbmdfc2Vxc19pZHgpOworCQkJCQkJICAgbWlz c2luZ19zZXFzX2lkeCwgc2VxaW5mb3MpOworCisJcmV0dXJuIHNlcXVlbmNlX2NvcGllZDsKIH0K IAogLyoKICAqIElkZW50aWZpZXMgc2VxdWVuY2VzIHRoYXQgcmVxdWlyZSBzeW5jaHJvbml6YXRp b24gYW5kIGluaXRpYXRlcyB0aGUKICAqIHN5bmNocm9uaXphdGlvbiBwcm9jZXNzLgorICoKKyAq IFJldHVybnMgdHJ1ZSBpZiBzZXF1ZW5jZXMgaGF2ZSBiZWVuIHVwZGF0ZWQuCiAgKi8KLXN0YXRp YyB2b2lkCi1Mb2dpY2FsUmVwU3luY1NlcXVlbmNlcyh2b2lkKQorc3RhdGljIGJvb2wKK0xvZ2lj YWxSZXBTeW5jU2VxdWVuY2VzKFdhbFJlY2VpdmVyQ29ubiAqY29ubikKIHsKLQljaGFyCSAgICpl cnI7Ci0JYm9vbAkJbXVzdF91c2VfcGFzc3dvcmQ7CiAJUmVsYXRpb24JcmVsOwogCUhlYXBUdXBs ZQl0dXA7Ci0JU2NhbktleURhdGEgc2tleVsyXTsKKwlTY2FuS2V5RGF0YSBza2V5WzFdOwogCVN5 c1NjYW5EZXNjIHNjYW47CiAJT2lkCQkJc3ViaWQgPSBNeUxvZ2ljYWxSZXBXb3JrZXItPnN1Ymlk OwotCVN0cmluZ0luZm9EYXRhIGFwcF9uYW1lOworCWJvb2wJCXNlcXVlbmNlX2NvcGllZCA9IGZh bHNlOworCUxpc3QJICAgKnNlcWluZm9zID0gTklMOworCU1lbW9yeUNvbnRleHQgb2xkY3R4Owor CisJQXNzZXJ0KFNlcXVlbmNlU3luY0NvbnRleHQpOwogCiAJU3RhcnRUcmFuc2FjdGlvbkNvbW1h bmQoKTsKIAogCXJlbCA9IHRhYmxlX29wZW4oU3Vic2NyaXB0aW9uUmVsUmVsYXRpb25JZCwgQWNj ZXNzU2hhcmVMb2NrKTsKIAorCS8qIFNjYW4gZm9yIGFsbCBzZXF1ZW5jZXMgYmVsb25naW5nIHRv IHRoaXMgc3Vic2NyaXB0aW9uICovCiAJU2NhbktleUluaXQoJnNrZXlbMF0sCiAJCQkJQW51bV9w Z19zdWJzY3JpcHRpb25fcmVsX3Nyc3ViaWQsCiAJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBG X09JREVRLAogCQkJCU9iamVjdElkR2V0RGF0dW0oc3ViaWQpKTsKIAotCVNjYW5LZXlJbml0KCZz a2V5WzFdLAotCQkJCUFudW1fcGdfc3Vic2NyaXB0aW9uX3JlbF9zcnN1YnN0YXRlLAotCQkJCUJU RXF1YWxTdHJhdGVneU51bWJlciwgRl9DSEFSRVEsCi0JCQkJQ2hhckdldERhdHVtKFNVQlJFTF9T VEFURV9JTklUKSk7Ci0KIAlzY2FuID0gc3lzdGFibGVfYmVnaW5zY2FuKHJlbCwgSW52YWxpZE9p ZCwgZmFsc2UsCi0JCQkJCQkJICBOVUxMLCAyLCBza2V5KTsKKwkJCQkJCQkgIE5VTEwsIDEsIHNr ZXkpOworCiAJd2hpbGUgKEhlYXBUdXBsZUlzVmFsaWQodHVwID0gc3lzdGFibGVfZ2V0bmV4dChz Y2FuKSkpCiAJewogCQlGb3JtX3BnX3N1YnNjcmlwdGlvbl9yZWwgc3VicmVsOwogCQlMb2dpY2Fs UmVwU2VxdWVuY2VJbmZvICpzZXE7CiAJCVJlbGF0aW9uCXNlcXVlbmNlX3JlbDsKLQkJTWVtb3J5 Q29udGV4dCBvbGRjdHg7CisJCWNoYXIJCXJlbHN0YXRlOwogCiAJCUNIRUNLX0ZPUl9JTlRFUlJV UFRTKCk7CiAKQEAgLTY2NiwxOCArNzY3LDIxIEBAIExvZ2ljYWxSZXBTeW5jU2VxdWVuY2VzKHZv aWQpCiAJCQljb250aW51ZTsKIAkJfQogCisJCXJlbHN0YXRlID0gc3VicmVsLT5zcnN1YnN0YXRl OworCisJCUFzc2VydChyZWxzdGF0ZSA9PSBTVUJSRUxfU1RBVEVfSU5JVCB8fCByZWxzdGF0ZSA9 PSBTVUJSRUxfU1RBVEVfUkVBRFkpOworCiAJCS8qCiAJCSAqIFdvcmtlciBuZWVkcyB0byBwcm9j ZXNzIHNlcXVlbmNlcyBhY3Jvc3MgdHJhbnNhY3Rpb24gYm91bmRhcnksIHNvCi0JCSAqIGFsbG9j YXRlIHRoZW0gdW5kZXIgbG9uZy1saXZlZCBjb250ZXh0LgorCQkgKiBhbGxvY2F0ZSB0aGVtIHVu ZGVyIFNlcXVlbmNlU3luY0NvbnRleHQuCiAJCSAqLwotCQlvbGRjdHggPSBNZW1vcnlDb250ZXh0 U3dpdGNoVG8oQXBwbHlDb250ZXh0KTsKLQorCQlvbGRjdHggPSBNZW1vcnlDb250ZXh0U3dpdGNo VG8oU2VxdWVuY2VTeW5jQ29udGV4dCk7CiAJCXNlcSA9IHBhbGxvYzBfb2JqZWN0KExvZ2ljYWxS ZXBTZXF1ZW5jZUluZm8pOwogCQlzZXEtPmxvY2FscmVsaWQgPSBzdWJyZWwtPnNycmVsaWQ7CiAJ CXNlcS0+bnNwbmFtZSA9IGdldF9uYW1lc3BhY2VfbmFtZShSZWxhdGlvbkdldE5hbWVzcGFjZShz ZXF1ZW5jZV9yZWwpKTsKIAkJc2VxLT5zZXFuYW1lID0gcHN0cmR1cChSZWxhdGlvbkdldFJlbGF0 aW9uTmFtZShzZXF1ZW5jZV9yZWwpKTsKKwkJc2VxLT5yZWxzdGF0ZSA9IHJlbHN0YXRlOwogCQlz ZXFpbmZvcyA9IGxhcHBlbmQoc2VxaW5mb3MsIHNlcSk7Ci0KIAkJTWVtb3J5Q29udGV4dFN3aXRj aFRvKG9sZGN0eCk7CiAKIAkJdGFibGVfY2xvc2Uoc2VxdWVuY2VfcmVsLCBOb0xvY2spOwpAQCAt NjkzLDM2ICs3OTcsMTYgQEAgTG9naWNhbFJlcFN5bmNTZXF1ZW5jZXModm9pZCkKIAkgKiBFeGl0 IGVhcmx5IGlmIG5vIGNhdGFsb2cgZW50cmllcyBmb3VuZCwgbGlrZWx5IGR1ZSB0byBjb25jdXJy ZW50IGRyb3BzLgogCSAqLwogCWlmICghc2VxaW5mb3MpCi0JCXJldHVybjsKKwkJcmV0dXJuIGZh bHNlOwogCi0JLyogSXMgdGhlIHVzZSBvZiBhIHBhc3N3b3JkIG1hbmRhdG9yeT8gKi8KLQltdXN0 X3VzZV9wYXNzd29yZCA9IE15U3Vic2NyaXB0aW9uLT5wYXNzd29yZHJlcXVpcmVkICYmCi0JCSFN eVN1YnNjcmlwdGlvbi0+b3duZXJzdXBlcnVzZXI7CisJLyogUHJvY2VzcyBzZXF1ZW5jZXMgKi8K KwlzZXF1ZW5jZV9jb3BpZWQgPSBjb3B5X3NlcXVlbmNlcyhjb25uLCBzZXFpbmZvcyk7CiAKLQlp bml0U3RyaW5nSW5mbygmYXBwX25hbWUpOwotCWFwcGVuZFN0cmluZ0luZm8oJmFwcF9uYW1lLCAi cGdfJXVfc2VxdWVuY2Vfc3luY18iIFVJTlQ2NF9GT1JNQVQsCi0JCQkJCSBNeVN1YnNjcmlwdGlv bi0+b2lkLCBHZXRTeXN0ZW1JZGVudGlmaWVyKCkpOwotCi0JLyoKLQkgKiBFc3RhYmxpc2ggdGhl IGNvbm5lY3Rpb24gdG8gdGhlIHB1Ymxpc2hlciBmb3Igc2VxdWVuY2Ugc3luY2hyb25pemF0aW9u LgotCSAqLwotCUxvZ1JlcFdvcmtlcldhbFJjdkNvbm4gPQotCQl3YWxyY3ZfY29ubmVjdChNeVN1 YnNjcmlwdGlvbi0+Y29ubmluZm8sIHRydWUsIHRydWUsCi0JCQkJCSAgIG11c3RfdXNlX3Bhc3N3 b3JkLAotCQkJCQkgICBhcHBfbmFtZS5kYXRhLCAmZXJyKTsKLQlpZiAoTG9nUmVwV29ya2VyV2Fs UmN2Q29ubiA9PSBOVUxMKQotCQllcmVwb3J0KEVSUk9SLAotCQkJCWVycmNvZGUoRVJSQ09ERV9D T05ORUNUSU9OX0ZBSUxVUkUpLAotCQkJCWVycm1zZygic2VxdWVuY2VzeW5jIHdvcmtlciBmb3Ig c3Vic2NyaXB0aW9uIFwiJXNcIiBjb3VsZCBub3QgY29ubmVjdCB0byB0aGUgcHVibGlzaGVyOiAl cyIsCi0JCQkJCSAgIE15U3Vic2NyaXB0aW9uLT5uYW1lLCBlcnIpKTsKLQotCXBmcmVlKGFwcF9u YW1lLmRhdGEpOwotCi0JY29weV9zZXF1ZW5jZXMoTG9nUmVwV29ya2VyV2FsUmN2Q29ubik7CisJ cmV0dXJuIHNlcXVlbmNlX2NvcGllZDsKIH0KIAogLyoKLSAqIEV4ZWN1dGUgdGhlIGluaXRpYWwg c3luYyB3aXRoIGVycm9yIGhhbmRsaW5nLiBEaXNhYmxlIHRoZSBzdWJzY3JpcHRpb24sCisgKiBF eGVjdXRlIHRoZSBzZXF1ZW5jZSBzeW5jIHdpdGggZXJyb3IgaGFuZGxpbmcuIERpc2FibGUgdGhl IHN1YnNjcmlwdGlvbiwKICAqIGlmIHJlcXVpcmVkLgogICoKICAqIE5vdGUgdGhhdCB3ZSBkb24n dCBoYW5kbGUgRkFUQUwgZXJyb3JzIHdoaWNoIGFyZSBwcm9iYWJseSBiZWNhdXNlIG9mIHN5c3Rl bQpAQCAtNzM1LDggKzgxOSw5MiBAQCBzdGFydF9zZXF1ZW5jZV9zeW5jKHZvaWQpCiAKIAlQR19U UlkoKTsKIAl7Ci0JCS8qIENhbGwgaW5pdGlhbCBzeW5jLiAqLwotCQlMb2dpY2FsUmVwU3luY1Nl cXVlbmNlcygpOworCQljaGFyCSAgICplcnI7CisJCWJvb2wJCW11c3RfdXNlX3Bhc3N3b3JkOwor CQlTdHJpbmdJbmZvRGF0YSBhcHBfbmFtZTsKKwkJbG9uZwkJc2xlZXBfbXMgPSBTRVFTWU5DX01J Tl9TTEVFUF9NUzsKKworCQkvKiBJcyB0aGUgdXNlIG9mIGEgcGFzc3dvcmQgbWFuZGF0b3J5PyAq LworCQltdXN0X3VzZV9wYXNzd29yZCA9IE15U3Vic2NyaXB0aW9uLT5wYXNzd29yZHJlcXVpcmVk ICYmCisJCQkhTXlTdWJzY3JpcHRpb24tPm93bmVyc3VwZXJ1c2VyOworCisJCWluaXRTdHJpbmdJ bmZvKCZhcHBfbmFtZSk7CisJCWFwcGVuZFN0cmluZ0luZm8oJmFwcF9uYW1lLCAicGdfJXVfc2Vx dWVuY2Vfc3luY18iIFVJTlQ2NF9GT1JNQVQsCisJCQkJCQkgTXlTdWJzY3JpcHRpb24tPm9pZCwg R2V0U3lzdGVtSWRlbnRpZmllcigpKTsKKworCQkvKgorCQkgKiBFc3RhYmxpc2ggdGhlIGNvbm5l Y3Rpb24gdG8gdGhlIHB1Ymxpc2hlciBmb3Igc2VxdWVuY2UKKwkJICogc3luY2hyb25pemF0aW9u LgorCQkgKi8KKwkJTG9nUmVwV29ya2VyV2FsUmN2Q29ubiA9CisJCQl3YWxyY3ZfY29ubmVjdChN eVN1YnNjcmlwdGlvbi0+Y29ubmluZm8sIHRydWUsIHRydWUsCisJCQkJCQkgICBtdXN0X3VzZV9w YXNzd29yZCwKKwkJCQkJCSAgIGFwcF9uYW1lLmRhdGEsICZlcnIpOworCQlpZiAoTG9nUmVwV29y a2VyV2FsUmN2Q29ubiA9PSBOVUxMKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShF UlJDT0RFX0NPTk5FQ1RJT05fRkFJTFVSRSksCisJCQkJCWVycm1zZygic2VxdWVuY2VzeW5jIHdv cmtlciBmb3Igc3Vic2NyaXB0aW9uIFwiJXNcIiBjb3VsZCBub3QgY29ubmVjdCB0byB0aGUgcHVi bGlzaGVyOiAlcyIsCisJCQkJCQkgICBNeVN1YnNjcmlwdGlvbi0+bmFtZSwgZXJyKSk7CisKKwkJ cGZyZWUoYXBwX25hbWUuZGF0YSk7CisKKwkJLyoKKwkJICogSW5pdCB0aGUgU2VxdWVuY2VTeW5j Q29udGV4dCB3aGljaCB3ZSBjbGVhbiB1cCBhZnRlciBlYWNoIHNlcXVlbmNlCisJCSAqIHN5bmNo cm9uaXphdGlvbi4KKwkJICovCisJCVNlcXVlbmNlU3luY0NvbnRleHQgPSBBbGxvY1NldENvbnRl eHRDcmVhdGUoQXBwbHlDb250ZXh0LAorCQkJCQkJCQkJCQkJCSJTZXF1ZW5jZVN5bmNDb250ZXh0 IiwKKwkJCQkJCQkJCQkJCQlBTExPQ1NFVF9ERUZBVUxUX1NJWkVTKTsKKworCQlmb3IgKDs7KQor CQl7CisJCQlib29sCQlzZXF1ZW5jZV9jb3BpZWQgPSBmYWxzZTsKKwkJCU1lbW9yeUNvbnRleHQg b2xkY3R4OworCisJCQlDSEVDS19GT1JfSU5URVJSVVBUUygpOworCisJCQkvKiBQcm9jZXNzIGFu eSBpbnZhbGlkYXRpb24gbWVzc2FnZXMgdGhhdCBtaWdodCBoYXZlIGFjY3VtdWxhdGVkICovCisJ CQlBY2NlcHRJbnZhbGlkYXRpb25NZXNzYWdlcygpOworCQkJbWF5YmVfcmVyZWFkX3N1YnNjcmlw dGlvbigpOworCisJCQkvKgorCQkJICogUGVyZm9ybSBzZXF1ZW5jZSBzeW5jaHJvbml6YXRpb24g dW5kZXIgU2VxdWVuY2VTeW5jQ29udGV4dCBhbmQKKwkJCSAqIHJlc2V0IGl0IGVhY2ggY3ljbGUg dG8gYXZvaWQgbWFudWFsIG1lbW9yeSBtYW5hZ2VtZW50LgorCQkJICovCisJCQlvbGRjdHggPSBN ZW1vcnlDb250ZXh0U3dpdGNoVG8oU2VxdWVuY2VTeW5jQ29udGV4dCk7CisKKwkJCS8qCisJCQkg KiBTeW5jaHJvbml6ZSBhbGwgc2VxdWVuY2VzIChib3RoIFJFQURZIGFuZCBJTklUIHN0YXRlcyku CisJCQkgKi8KKwkJCXNlcXVlbmNlX2NvcGllZCA9IExvZ2ljYWxSZXBTeW5jU2VxdWVuY2VzKExv Z1JlcFdvcmtlcldhbFJjdkNvbm4pOworCisJCQlNZW1vcnlDb250ZXh0UmVzZXQoU2VxdWVuY2VT eW5jQ29udGV4dCk7CisJCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3R4KTsKKworCQkJLyoK KwkJCSAqIEFkanVzdCBzbGVlcCBpbnRlcnZhbCBiYXNlZCBvbiB3aGV0aGVyIHNlcXVlbmNlcyB3 ZXJlIGNvcGllZAorCQkJICogb3ZlcgorCQkJICovCisJCQlpZiAoc2VxdWVuY2VfY29waWVkKQor CQkJeworCQkJCXNsZWVwX21zID0gU0VRU1lOQ19NSU5fU0xFRVBfTVM7CisJCQl9CisJCQllbHNl CisJCQl7CisJCQkJLyoKKwkJCQkgKiBEb3VibGUgdGhlIHNsZWVwIHRpbWUsIGJ1dCBub3QgYmV5 b25kIHRoZSBtYXhpbXVtIGFsbG93YWJsZQorCQkJCSAqIHZhbHVlLgorCQkJCSAqLworCQkJCXNs ZWVwX21zID0gTWluKHNsZWVwX21zICogMiwgU0VRU1lOQ19NQVhfU0xFRVBfTVMpOworCQkJfQor CisJCQkvKiBTbGVlcCBmb3IgdGhlIGNvbmZpZ3VyZWQgaW50ZXJ2YWwgKi8KKwkJCSh2b2lkKSBX YWl0TGF0Y2goTXlMYXRjaCwKKwkJCQkJCQkgV0xfTEFUQ0hfU0VUIHwgV0xfVElNRU9VVCB8IFdM X0VYSVRfT05fUE1fREVBVEgsCisJCQkJCQkJIHNsZWVwX21zLAorCQkJCQkJCSBXQUlUX0VWRU5U X0xPR0lDQUxfU0VRU1lOQ19NQUlOKTsKKwkJCVJlc2V0TGF0Y2goTXlMYXRjaCk7CisJCX0KIAl9 CiAJUEdfQ0FUQ0goKTsKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL3N5bmN1dGlscy5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zeW5j dXRpbHMuYwppbmRleCBlZjYxY2EwNDM3ZC4uM2EwZGM4NjY5ZjkgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc3luY3V0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vbG9naWNhbC9zeW5jdXRpbHMuYwpAQCAtMTcyLDcgKzE3Miw3IEBAIFByb2Nl c3NTeW5jaW5nUmVsYXRpb25zKFhMb2dSZWNQdHIgY3VycmVudF9sc24pCiAKIAkJY2FzZSBXT1JL RVJUWVBFX0FQUExZOgogCQkJUHJvY2Vzc1N5bmNpbmdUYWJsZXNGb3JBcHBseShjdXJyZW50X2xz bik7Ci0JCQlQcm9jZXNzU2VxdWVuY2VzRm9yU3luYygpOworCQkJTWF5YmVMYXVuY2hTZXF1ZW5j ZVN5bmNXb3JrZXIoKTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgV09SS0VSVFlQRV9TRVFVRU5DRVNZ TkM6CkBAIC0xOTEsMTMgKzE5MSwxMyBAQCBQcm9jZXNzU3luY2luZ1JlbGF0aW9ucyhYTG9nUmVj UHRyIGN1cnJlbnRfbHNuKQogICoKICAqIFRoZSBwZ19zdWJzY3JpcHRpb25fcmVsIGNhdGFsb2cg aXMgc2hhcmVkIGJ5IHRhYmxlcyBhbmQgc2VxdWVuY2VzLiBDaGFuZ2VzCiAgKiB0byBlaXRoZXIg c2VxdWVuY2VzIG9yIHRhYmxlcyBjYW4gYWZmZWN0IHRoZSB2YWxpZGl0eSBvZiByZWxhdGlvbiBz dGF0ZXMsIHNvCi0gKiB3ZSBpZGVudGlmeSBub24tUkVBRFkgdGFibGVzIGFuZCBub24tUkVBRFkg c2VxdWVuY2VzIHRvZ2V0aGVyIHRvIGVuc3VyZQorICogd2UgaWRlbnRpZnkgbm9uLVJFQURZIHRh YmxlcyBhbmQgc2VxdWVuY2VzIChpbiBhbnkgc3RhdGUpIHRvZ2V0aGVyIHRvIGVuc3VyZQogICog Y29uc2lzdGVuY3kuCiAgKgogICogaGFzX3BlbmRpbmdfc3VidGFibGVzOiB0cnVlIGlmIHRoZSBz dWJzY3JpcHRpb24gaGFzIG9uZSBvciBtb3JlIHRhYmxlcyB0aGF0CiAgKiBhcmUgbm90IGluIFJF QURZIHN0YXRlLCBvdGhlcndpc2UgZmFsc2UuCiAgKiBoYXNfcGVuZGluZ19zdWJzZXF1ZW5jZXM6 IHRydWUgaWYgdGhlIHN1YnNjcmlwdGlvbiBoYXMgb25lIG9yIG1vcmUgc2VxdWVuY2VzCi0gKiB0 aGF0IGFyZSBub3QgaW4gUkVBRFkgc3RhdGUsIG90aGVyd2lzZSBmYWxzZS4KKyAqIChpbiBhbnkg c3RhdGUpLCBvdGhlcndpc2UgZmFsc2UuCiAgKi8KIHZvaWQKIEZldGNoUmVsYXRpb25TdGF0ZXMo Ym9vbCAqaGFzX3BlbmRpbmdfc3VidGFibGVzLApAQCAtMjA1LDIzICsyMDUsMjIgQEAgRmV0Y2hS ZWxhdGlvblN0YXRlcyhib29sICpoYXNfcGVuZGluZ19zdWJ0YWJsZXMsCiAJCQkJCWJvb2wgKnN0 YXJ0ZWRfdHgpCiB7CiAJLyoKLQkgKiBoYXNfc3VidGFibGVzIGFuZCBoYXNfc3Vic2VxdWVuY2Vz X25vbl9yZWFkeSBhcmUgZGVjbGFyZWQgYXMgc3RhdGljLAotCSAqIHNpbmNlIHRoZSBzYW1lIHZh bHVlIGNhbiBiZSB1c2VkIHVudGlsIHRoZSBzeXN0ZW0gdGFibGUgaXMgaW52YWxpZGF0ZWQuCisJ ICogaGFzX3N1YnRhYmxlcyBhbmQgaGFzX3N1YnNlcXVlbmNlcyBhcmUgZGVjbGFyZWQgYXMgc3Rh dGljLCBzaW5jZSB0aGUKKwkgKiBzYW1lIHZhbHVlIGNhbiBiZSB1c2VkIHVudGlsIHRoZSBzeXN0 ZW0gdGFibGUgaXMgaW52YWxpZGF0ZWQuCiAJICovCiAJc3RhdGljIGJvb2wgaGFzX3N1YnRhYmxl cyA9IGZhbHNlOwotCXN0YXRpYyBib29sIGhhc19zdWJzZXF1ZW5jZXNfbm9uX3JlYWR5ID0gZmFs c2U7CisJc3RhdGljIGJvb2wgaGFzX3N1YnNlcXVlbmNlcyA9IGZhbHNlOwogCiAJKnN0YXJ0ZWRf dHggPSBmYWxzZTsKLQogCWlmIChyZWxhdGlvbl9zdGF0ZXNfdmFsaWRpdHkgIT0gU1lOQ19SRUxB VElPTlNfU1RBVEVfVkFMSUQpCiAJewogCQlNZW1vcnlDb250ZXh0IG9sZGN0eDsKIAkJTGlzdAkg ICAqcnN0YXRlczsKKwkJTGlzdAkgICAqc2VxX3N0YXRlczsKIAkJU3Vic2NyaXB0aW9uUmVsU3Rh dGUgKnJzdGF0ZTsKIAogCQlyZWxhdGlvbl9zdGF0ZXNfdmFsaWRpdHkgPSBTWU5DX1JFTEFUSU9O U19TVEFURV9SRUJVSUxEX1NUQVJURUQ7Ci0JCWhhc19zdWJzZXF1ZW5jZXNfbm9uX3JlYWR5ID0g ZmFsc2U7Ci0KKwkJaGFzX3N1YnNlcXVlbmNlcyA9IGZhbHNlOwogCQkvKiBDbGVhbiB0aGUgb2xk IGxpc3RzLiAqLwogCQlsaXN0X2ZyZWVfZGVlcCh0YWJsZV9zdGF0ZXNfbm90X3JlYWR5KTsKIAkJ dGFibGVfc3RhdGVzX25vdF9yZWFkeSA9IE5JTDsKQEAgLTIzMSwyNyArMjMwLDI4IEBAIEZldGNo UmVsYXRpb25TdGF0ZXMoYm9vbCAqaGFzX3BlbmRpbmdfc3VidGFibGVzLAogCQkJU3RhcnRUcmFu c2FjdGlvbkNvbW1hbmQoKTsKIAkJCSpzdGFydGVkX3R4ID0gdHJ1ZTsKIAkJfQotCi0JCS8qIEZl dGNoIHRhYmxlcyBhbmQgc2VxdWVuY2VzIHRoYXQgYXJlIGluIG5vbi1SRUFEWSBzdGF0ZS4gKi8K LQkJcnN0YXRlcyA9IEdldFN1YnNjcmlwdGlvblJlbGF0aW9ucyhNeVN1YnNjcmlwdGlvbi0+b2lk LCB0cnVlLCB0cnVlLAorCQkvKiBGZXRjaCB0YWJsZXMgdGhhdCBhcmUgaW4gbm9uLVJFQURZIHN0 YXRlLiAqLworCQlyc3RhdGVzID0gR2V0U3Vic2NyaXB0aW9uUmVsYXRpb25zKE15U3Vic2NyaXB0 aW9uLT5vaWQsIHRydWUsIGZhbHNlLAogCQkJCQkJCQkJCSAgIHRydWUpOwotCisJCS8qIEZldGNo IGFsbCBzZXF1ZW5jZXMgKHJlZ2FyZGxlc3Mgb2Ygc3RhdGUpLiAqLworCQlzZXFfc3RhdGVzID0g R2V0U3Vic2NyaXB0aW9uUmVsYXRpb25zKE15U3Vic2NyaXB0aW9uLT5vaWQsIGZhbHNlLCB0cnVl LAorCQkJCQkJCQkJCQkgIGZhbHNlKTsKIAkJLyogQWxsb2NhdGUgdGhlIHRyYWNraW5nIGluZm8g aW4gYSBwZXJtYW5lbnQgbWVtb3J5IGNvbnRleHQuICovCiAJCW9sZGN0eCA9IE1lbW9yeUNvbnRl eHRTd2l0Y2hUbyhDYWNoZU1lbW9yeUNvbnRleHQpOwogCQlmb3JlYWNoX3B0cihTdWJzY3JpcHRp b25SZWxTdGF0ZSwgc3VicmVsLCByc3RhdGVzKQogCQl7Ci0JCQlpZiAoZ2V0X3JlbF9yZWxraW5k KHN1YnJlbC0+cmVsaWQpID09IFJFTEtJTkRfU0VRVUVOQ0UpCi0JCQkJaGFzX3N1YnNlcXVlbmNl c19ub25fcmVhZHkgPSB0cnVlOwotCQkJZWxzZQotCQkJewotCQkJCXJzdGF0ZSA9IHBhbGxvY19v YmplY3QoU3Vic2NyaXB0aW9uUmVsU3RhdGUpOwotCQkJCW1lbWNweShyc3RhdGUsIHN1YnJlbCwg c2l6ZW9mKFN1YnNjcmlwdGlvblJlbFN0YXRlKSk7Ci0JCQkJdGFibGVfc3RhdGVzX25vdF9yZWFk eSA9IGxhcHBlbmQodGFibGVfc3RhdGVzX25vdF9yZWFkeSwKLQkJCQkJCQkJCQkJCSByc3RhdGUp OwotCQkJfQorCQkJcnN0YXRlID0gcGFsbG9jX29iamVjdChTdWJzY3JpcHRpb25SZWxTdGF0ZSk7 CisJCQltZW1jcHkocnN0YXRlLCBzdWJyZWwsIHNpemVvZihTdWJzY3JpcHRpb25SZWxTdGF0ZSkp OworCQkJdGFibGVfc3RhdGVzX25vdF9yZWFkeSA9IGxhcHBlbmQodGFibGVfc3RhdGVzX25vdF9y ZWFkeSwKKwkJCQkJCQkJCQkJIHJzdGF0ZSk7CiAJCX0KKworCQkvKiBDaGVjayBpZiB0aGVyZSBh cmUgYW55IHNlcXVlbmNlcy4gKi8KKwkJaGFzX3N1YnNlcXVlbmNlcyA9IChzZXFfc3RhdGVzICE9 IE5JTCk7CiAJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjdHgpOwogCisJCWxpc3RfZnJlZV9k ZWVwKHNlcV9zdGF0ZXMpOworCiAJCS8qCiAJCSAqIERvZXMgdGhlIHN1YnNjcmlwdGlvbiBoYXZl IHRhYmxlcz8KIAkJICoKQEAgLTI3Nyw1ICsyNzcsNSBAQCBGZXRjaFJlbGF0aW9uU3RhdGVzKGJv b2wgKmhhc19wZW5kaW5nX3N1YnRhYmxlcywKIAkJKmhhc19wZW5kaW5nX3N1YnRhYmxlcyA9IGhh c19zdWJ0YWJsZXM7CiAKIAlpZiAoaGFzX3BlbmRpbmdfc3Vic2VxdWVuY2VzKQotCQkqaGFzX3Bl bmRpbmdfc3Vic2VxdWVuY2VzID0gaGFzX3N1YnNlcXVlbmNlc19ub25fcmVhZHk7CisJCSpoYXNf cGVuZGluZ19zdWJzZXF1ZW5jZXMgPSBoYXNfc3Vic2VxdWVuY2VzOwogfQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYyBiL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMKaW5kZXggZjljNGI0ODQ3NTQuLmY5MWM4ZjllY2Rl IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCisr KyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMKQEAgLTUwOTksNiAr NTA5OSw5IEBAIG1heWJlX3JlcmVhZF9zdWJzY3JpcHRpb24odm9pZCkKIAkgKiB3b3JrZXIgd29u J3QgcmVzdGFydCBpZiB0aGUgc3RyZWFtaW5nIG9wdGlvbidzIHZhbHVlIGlzIGNoYW5nZWQgZnJv bQogCSAqICdwYXJhbGxlbCcgdG8gYW55IG90aGVyIHZhbHVlIG9yIHRoZSBzZXJ2ZXIgZGVjaWRl cyBub3QgdG8gc3RyZWFtIHRoZQogCSAqIGluLXByb2dyZXNzIHRyYW5zYWN0aW9uLgorCSAqCisJ ICogTm90ZTogc29tZSBwYXJhbWV0ZXJzIG1heSBub3QgYmUgcmVsZXZhbnQgdG8gdGhlIHNlcXVl bmNlIHN5bmMgd29ya2VyLAorCSAqIGJ1dCBleGl0IGFueXdheS4KIAkgKi8KIAlpZiAoc3RyY21w KG5ld3N1Yi0+Y29ubmluZm8sIE15U3Vic2NyaXB0aW9uLT5jb25uaW5mbykgIT0gMCB8fAogCQlz dHJjbXAobmV3c3ViLT5uYW1lLCBNeVN1YnNjcmlwdGlvbi0+bmFtZSkgIT0gMCB8fApAQCAtNTEx NCw2ICs1MTE3LDEwIEBAIG1heWJlX3JlcmVhZF9zdWJzY3JpcHRpb24odm9pZCkKIAkJCWVyZXBv cnQoTE9HLAogCQkJCQkoZXJybXNnKCJsb2dpY2FsIHJlcGxpY2F0aW9uIHBhcmFsbGVsIGFwcGx5 IHdvcmtlciBmb3Igc3Vic2NyaXB0aW9uIFwiJXNcIiB3aWxsIHN0b3AgYmVjYXVzZSBvZiBhIHBh cmFtZXRlciBjaGFuZ2UiLAogCQkJCQkJCU15U3Vic2NyaXB0aW9uLT5uYW1lKSkpOworCQllbHNl IGlmIChhbV9zZXF1ZW5jZXN5bmNfd29ya2VyKCkpCisJCQllcmVwb3J0KExPRywKKwkJCQkJKGVy cm1zZygibG9naWNhbCByZXBsaWNhdGlvbiBzZXF1ZW5jZSBzeW5jaHJvbml6YXRpb24gd29ya2Vy IGZvciBzdWJzY3JpcHRpb24gXCIlc1wiIHdpbGwgc3RvcCBiZWNhdXNlIG9mIGEgcGFyYW1ldGVy IGNoYW5nZSIsCisJCQkJCQkJTXlTdWJzY3JpcHRpb24tPm5hbWUpKSk7CiAJCWVsc2UKIAkJCWVy ZXBvcnQoTE9HLAogCQkJCQkoZXJybXNnKCJsb2dpY2FsIHJlcGxpY2F0aW9uIHdvcmtlciBmb3Ig c3Vic2NyaXB0aW9uIFwiJXNcIiB3aWxsIHJlc3RhcnQgYmVjYXVzZSBvZiBhIHBhcmFtZXRlciBj aGFuZ2UiLApAQCAtNTEzMiw2ICs1MTM5LDEwIEBAIG1heWJlX3JlcmVhZF9zdWJzY3JpcHRpb24o dm9pZCkKIAkJCWVyZXBvcnQoTE9HLAogCQkJCQllcnJtc2coImxvZ2ljYWwgcmVwbGljYXRpb24g cGFyYWxsZWwgYXBwbHkgd29ya2VyIGZvciBzdWJzY3JpcHRpb24gXCIlc1wiIHdpbGwgc3RvcCBi ZWNhdXNlIHRoZSBzdWJzY3JpcHRpb24gb3duZXIncyBzdXBlcnVzZXIgcHJpdmlsZWdlcyBoYXZl IGJlZW4gcmV2b2tlZCIsCiAJCQkJCQkgICBNeVN1YnNjcmlwdGlvbi0+bmFtZSkpOworCQllbHNl IGlmIChhbV9zZXF1ZW5jZXN5bmNfd29ya2VyKCkpCisJCQllcmVwb3J0KExPRywKKwkJCQkJZXJy bXNnKCJsb2dpY2FsIHJlcGxpY2F0aW9uIHNlcXVlbmNlIHN5bmNocm9uaXphdGlvbiB3b3JrZXIg Zm9yIHN1YnNjcmlwdGlvbiBcIiVzXCIgd2lsbCBzdG9wIGJlY2F1c2UgdGhlIHN1YnNjcmlwdGlv biBvd25lcidzIHN1cGVydXNlciBwcml2aWxlZ2VzIGhhdmUgYmVlbiByZXZva2VkIiwKKwkJCQkJ CSAgIE15U3Vic2NyaXB0aW9uLT5uYW1lKSk7CiAJCWVsc2UKIAkJCWVyZXBvcnQoTE9HLAogCQkJ CQllcnJtc2coImxvZ2ljYWwgcmVwbGljYXRpb24gd29ya2VyIGZvciBzdWJzY3JpcHRpb24gXCIl c1wiIHdpbGwgcmVzdGFydCBiZWNhdXNlIHRoZSBzdWJzY3JpcHRpb24gb3duZXIncyBzdXBlcnVz ZXIgcHJpdmlsZWdlcyBoYXZlIGJlZW4gcmV2b2tlZCIsCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50X25hbWVzLnR4dCBiL3NyYy9iYWNrZW5kL3V0aWxz L2FjdGl2aXR5L3dhaXRfZXZlbnRfbmFtZXMudHh0CmluZGV4IDRhYTg2NGZlM2MzLi5hOTEwODVl NzcyMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudF9u YW1lcy50eHQKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudF9uYW1l cy50eHQKQEAgLTYxLDYgKzYxLDcgQEAgSU9fV09SS0VSX01BSU4JIldhaXRpbmcgaW4gbWFpbiBs b29wIG9mIElPIFdvcmtlciBwcm9jZXNzLiIKIExPR0lDQUxfQVBQTFlfTUFJTgkiV2FpdGluZyBp biBtYWluIGxvb3Agb2YgbG9naWNhbCByZXBsaWNhdGlvbiBhcHBseSBwcm9jZXNzLiIKIExPR0lD QUxfTEFVTkNIRVJfTUFJTgkiV2FpdGluZyBpbiBtYWluIGxvb3Agb2YgbG9naWNhbCByZXBsaWNh dGlvbiBsYXVuY2hlciBwcm9jZXNzLiIKIExPR0lDQUxfUEFSQUxMRUxfQVBQTFlfTUFJTgkiV2Fp dGluZyBpbiBtYWluIGxvb3Agb2YgbG9naWNhbCByZXBsaWNhdGlvbiBwYXJhbGxlbCBhcHBseSBw cm9jZXNzLiIKK0xPR0lDQUxfU0VRU1lOQ19NQUlOCSJXYWl0aW5nIGluIG1haW4gbG9vcCBvZiBs b2dpY2FsIHJlcGxpY2F0aW9uIHNlcXVlbmNlIHN5bmMgcHJvY2Vzcy4iCiBSRUNPVkVSWV9XQUxf U1RSRUFNCSJXYWl0aW5nIGluIG1haW4gbG9vcCBvZiBzdGFydHVwIHByb2Nlc3MgZm9yIFdBTCB0 byBhcnJpdmUsIGR1cmluZyBzdHJlYW1pbmcgcmVjb3ZlcnkuIgogUkVQTElDQVRJT05fU0xPVFNZ TkNfTUFJTgkiV2FpdGluZyBpbiBtYWluIGxvb3Agb2Ygc2xvdCBzeW5jaHJvbml6YXRpb24uIgog UkVQTElDQVRJT05fU0xPVFNZTkNfU0hVVERPV04JIldhaXRpbmcgZm9yIHNsb3Qgc3luYyB3b3Jr ZXIgdG8gc2h1dCBkb3duLiIKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vi c2NyaXB0aW9uX3JlbC5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb25fcmVs LmgKaW5kZXggNTAyNjQwZDMwMTguLjg2NTc0YjY5MTY5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbl9yZWwuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3N1YnNjcmlwdGlvbl9yZWwuaApAQCAtOTYsNiArOTYsNyBAQCB0eXBlZGVmIHN0cnVjdCBM b2dpY2FsUmVwU2VxdWVuY2VJbmZvCiAJY2hhcgkgICAqc2VxbmFtZTsKIAljaGFyCSAgICpuc3Bu YW1lOwogCU9pZAkJCWxvY2FscmVsaWQ7CisJY2hhcgkJcmVsc3RhdGU7CiAKIAkvKiBTZXF1ZW5j ZSBpbmZvcm1hdGlvbiByZXRyaWV2ZWQgZnJvbSB0aGUgcHVibGlzaGVyIG5vZGUgKi8KIAlYTG9n UmVjUHRyCXBhZ2VfbHNuOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2VxdWVu Y2UuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3NlcXVlbmNlLmgKaW5kZXggMmMzYzRhM2YwNzQu LmZkNGY2OWJkZDFjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXF1ZW5jZS5o CisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3NlcXVlbmNlLmgKQEAgLTQ3LDYgKzQ3LDcgQEAg ZXh0ZXJuIE9iamVjdEFkZHJlc3MgQWx0ZXJTZXF1ZW5jZShQYXJzZVN0YXRlICpwc3RhdGUsIEFs dGVyU2VxU3RtdCAqc3RtdCk7CiBleHRlcm4gdm9pZCBTZXF1ZW5jZUNoYW5nZVBlcnNpc3RlbmNl KE9pZCByZWxpZCwgY2hhciBuZXdyZWxwZXJzaXN0ZW5jZSk7CiBleHRlcm4gdm9pZCBEZWxldGVT ZXF1ZW5jZVR1cGxlKE9pZCByZWxpZCk7CiBleHRlcm4gdm9pZCBSZXNldFNlcXVlbmNlKE9pZCBz ZXFfcmVsaWQpOworZXh0ZXJuIGJvb2wgR2V0U2VxdWVuY2UoUmVsYXRpb24gc2VxcmVsLCBpbnQ2 NCAqbGFzdF92YWx1ZSwgYm9vbCAqaXNfY2FsbGVkKTsKIGV4dGVybiB2b2lkIFNldFNlcXVlbmNl KE9pZCByZWxpZCwgaW50NjQgbmV4dCwgYm9vbCBpc2NhbGxlZCk7CiBleHRlcm4gdm9pZCBSZXNl dFNlcXVlbmNlQ2FjaGVzKHZvaWQpOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNh dGlvbi93b3JrZXJfaW50ZXJuYWwuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9p bnRlcm5hbC5oCmluZGV4IDRlY2JkY2ZhZGFjLi5hNDFjYjA0NWYxOSAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvcmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmgKKysrIGIvc3JjL2luY2x1ZGUv cmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmgKQEAgLTI4Niw3ICsyODYsNyBAQCBleHRlcm4g dm9pZCBVcGRhdGVUd29QaGFzZVN0YXRlKE9pZCBzdWJvaWQsIGNoYXIgbmV3X3N0YXRlKTsKIAog ZXh0ZXJuIHZvaWQgUHJvY2Vzc1N5bmNpbmdUYWJsZXNGb3JTeW5jKFhMb2dSZWNQdHIgY3VycmVu dF9sc24pOwogZXh0ZXJuIHZvaWQgUHJvY2Vzc1N5bmNpbmdUYWJsZXNGb3JBcHBseShYTG9nUmVj UHRyIGN1cnJlbnRfbHNuKTsKLWV4dGVybiB2b2lkIFByb2Nlc3NTZXF1ZW5jZXNGb3JTeW5jKHZv aWQpOworZXh0ZXJuIHZvaWQgTWF5YmVMYXVuY2hTZXF1ZW5jZVN5bmNXb3JrZXIodm9pZCk7CiAK IHBnX25vcmV0dXJuIGV4dGVybiB2b2lkIEZpbmlzaFN5bmNXb3JrZXIodm9pZCk7CiBleHRlcm4g dm9pZCBJbnZhbGlkYXRlU3luY2luZ1JlbFN0YXRlcyhEYXR1bSBhcmcsIFN5c0NhY2hlSWRlbnRp ZmllciBjYWNoZWlkLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDI2X3N0 YXRzLnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDI2X3N0YXRzLnBsCmluZGV4IDVkNDU3 MDYwYTAyLi4yZmUyMDlmNDYxZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3Qv MDI2X3N0YXRzLnBsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAyNl9zdGF0cy5wbApA QCAtMTYsNiArMTYsOCBAQCAkbm9kZV9wdWJsaXNoZXItPnN0YXJ0OwogIyBDcmVhdGUgc3Vic2Ny aWJlciBub2RlLgogbXkgJG5vZGVfc3Vic2NyaWJlciA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0 ZXItPm5ldygnc3Vic2NyaWJlcicpOwogJG5vZGVfc3Vic2NyaWJlci0+aW5pdDsKKyRub2RlX3N1 YnNjcmliZXItPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLAorCSJtYXhfbG9naWNhbF9y ZXBsaWNhdGlvbl93b3JrZXJzID0gMTAiKTsKICRub2RlX3N1YnNjcmliZXItPnN0YXJ0OwogCiAK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNl9zZXF1ZW5jZXMucGwgYi9z cmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzZfc2VxdWVuY2VzLnBsCmluZGV4IDQ3MTc4MGEzNTg1 Li5hZjE5MDcxM2IyYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM2X3Nl cXVlbmNlcy5wbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzZfc2VxdWVuY2VzLnBs CkBAIC03NSwxOCArNzUsMTQgQEAgaXMoJHJlc3VsdCwgJzEwMHx0JywKIAogIyMjIyMjIyMjIwog IyMgQUxURVIgU1VCU0NSSVBUSU9OIC4uLiBSRUZSRVNIIFBVQkxJQ0FUSU9OIHNob3VsZCBjYXVz ZSBzeW5jIG9mIG5ldwotIyBzZXF1ZW5jZXMgb2YgdGhlIHB1Ymxpc2hlciwgYnV0IGNoYW5nZXMg dG8gZXhpc3Rpbmcgc2VxdWVuY2VzIHNob3VsZAotIyBub3QgYmUgc3luY2VkLgorIyBzZXF1ZW5j ZXMgb2YgdGhlIHB1Ymxpc2hlci4KICMjIyMjIyMjIyMKIAotIyBDcmVhdGUgYSBuZXcgc2VxdWVu Y2UgJ3JlZ3Jlc3NfczInLCBhbmQgdXBkYXRlIGV4aXN0aW5nIHNlcXVlbmNlICdyZWdyZXNzX3Mx JworIyBDcmVhdGUgYSBuZXcgc2VxdWVuY2UgJ3JlZ3Jlc3NfczInCiAkbm9kZV9wdWJsaXNoZXIt PnNhZmVfcHNxbCgKIAkncG9zdGdyZXMnLCBxcSgKIAlDUkVBVEUgU0VRVUVOQ0UgcmVncmVzc19z MjsKIAlJTlNFUlQgSU5UTyByZWdyZXNzX3NlcV90ZXN0IFNFTEVDVCBuZXh0dmFsKCdyZWdyZXNz X3MyJykgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDApOwotCi0JLS0gRXhpc3Rpbmcgc2VxdWVu Y2UKLQlJTlNFUlQgSU5UTyByZWdyZXNzX3NlcV90ZXN0IFNFTEVDVCBuZXh0dmFsKCdyZWdyZXNz X3MxJykgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDApOwogKSk7CiAKICMgRG8gQUxURVIgU1VC U0NSSVBUSU9OIC4uLiBSRUZSRVNIIFBVQkxJQ0FUSU9OCkBAIC05NywxOSArOTMsNiBAQCAkcmVz dWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKAogJG5vZGVfc3Vic2NyaWJlci0+cG9s bF9xdWVyeV91bnRpbCgncG9zdGdyZXMnLCAkc3luY2VkX3F1ZXJ5KQogICBvciBkaWUgIlRpbWVk IG91dCB3aGlsZSB3YWl0aW5nIGZvciBzdWJzY3JpYmVyIHRvIHN5bmNocm9uaXplIGRhdGEiOwog Ci0kcmVzdWx0ID0gJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCi0JJ3Bvc3RncmVzJywgcXEo Ci0JU0VMRUNUIGxhc3RfdmFsdWUsIGlzX2NhbGxlZCBGUk9NIHJlZ3Jlc3NfczE7Ci0pKTsKLWlz KCRyZXN1bHQsICcyMDB8dCcsICdDaGVjayBzZXF1ZW5jZSB2YWx1ZSBpbiB0aGUgcHVibGlzaGVy Jyk7Ci0KLSMgQ2hlY2sgLSBleGlzdGluZyBzZXF1ZW5jZSAoJ3JlZ3Jlc3NfczEnKSBpcyBub3Qg c3luY2VkCi0kcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKAotCSdwb3N0Z3Jl cycsIHFxKAotCVNFTEVDVCBsYXN0X3ZhbHVlLCBpc19jYWxsZWQgRlJPTSByZWdyZXNzX3MxOwot KSk7Ci1pcygkcmVzdWx0LCAnMTAwfHQnLCAnUkVGUkVTSCBQVUJMSUNBVElPTiB3aWxsIG5vdCBz eW5jIGV4aXN0aW5nIHNlcXVlbmNlJyk7Ci0KICMgQ2hlY2sgLSBuZXdseSBwdWJsaXNoZWQgc2Vx dWVuY2UgKCdyZWdyZXNzX3MyJykgaXMgc3luY2VkCiAkcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKAogCSdwb3N0Z3JlcycsIHFxKApAQCAtMTE5LDE2ICsxMDIsMTMgQEAgaXMo JHJlc3VsdCwgJzEwMHx0JywKIAknUkVGUkVTSCBQVUJMSUNBVElPTiB3aWxsIHN5bmMgbmV3bHkg cHVibGlzaGVkIHNlcXVlbmNlJyk7CiAKICMjIyMjIyMjIyMKLSMgVGVzdDogUkVGUkVTSCBTRVFV RU5DRVMgYW5kIFJFRlJFU0ggUFVCTElDQVRJT04gKGNvcHlfZGF0YSA9IGZhbHNlKQotIwotIyAx LiBBTFRFUiBTVUJTQ1JJUFRJT04gLi4uIFJFRlJFU0ggU0VRVUVOQ0VTIHNob3VsZCByZS1zeW5j aHJvbml6ZSBhbGwKLSMgICAgZXhpc3Rpbmcgc2VxdWVuY2VzLCBidXQgbm90IHN5bmNocm9uaXpl IG5ld2x5IGFkZGVkIG9uZXMuCi0jIDIuIEFMVEVSIFNVQlNDUklQVElPTiAuLi4gUkVGUkVTSCBQ VUJMSUNBVElPTiB3aXRoIChjb3B5X2RhdGEgPSBmYWxzZSkgc2hvdWxkCi0jICAgIGFsc28gbm90 IHVwZGF0ZSBzZXF1ZW5jZSB2YWx1ZXMgZm9yIG5ld2x5IGFkZGVkIHNlcXVlbmNlcy4KKyMgVGVz dDoKKyMgMS4gQXV0b21hdGljIHVwZGF0ZSBvZiBleGlzdGluZyBzZXF1ZW5jZSB2YWx1ZXMKKyMg Mi4gTmV3bHkgYWRkZWQgc2VxdWVuY2VzIGFyZSBub3QgYXV0b21hdGljYWxseSB1cGRhdGVkLgog IyMjIyMjIyMjIwogCi0jIENyZWF0ZSBhIG5ldyBzZXF1ZW5jZSAncmVncmVzc19zMycsIGFuZCB1 cGRhdGUgdGhlIGV4aXN0aW5nIHNlcXVlbmNlCi0jICdyZWdyZXNzX3MyJy4KKyMgQ3JlYXRlIGEg bmV3IHNlcXVlbmNlICdyZWdyZXNzX3MzJywgYW5kIHVwZGF0ZSB0aGUgZXhpc3Rpbmcgc2VxdWVu Y2VzCisjICdyZWdyZXNzX3MyJyBhbmQgJ3JlZ3Jlc3NfczEnLgogJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoCiAJJ3Bvc3RncmVzJywgcXEoCiAJQ1JFQVRFIFNFUVVFTkNFIHJlZ3Jlc3NfczM7 CkBAIC0xMzYsNTMgKzExNiwyOCBAQCAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKIAogCS0t IEV4aXN0aW5nIHNlcXVlbmNlCiAJSU5TRVJUIElOVE8gcmVncmVzc19zZXFfdGVzdCBTRUxFQ1Qg bmV4dHZhbCgncmVncmVzc19zMicpIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAwKTsKKwlJTlNF UlQgSU5UTyByZWdyZXNzX3NlcV90ZXN0IFNFTEVDVCBuZXh0dmFsKCdyZWdyZXNzX3MxJykgRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDApOwogKSk7CiAKLSMgMS4gRG8gQUxURVIgU1VCU0NSSVBU SU9OIC4uLiBSRUZSRVNIIFNFUVVFTkNFUwotJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgKLQkncG9zdGdyZXMnLCBxcSgKLQlBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19z ZXFfc3ViIFJFRlJFU0ggU0VRVUVOQ0VTOwotKSk7Ci0kbm9kZV9zdWJzY3JpYmVyLT5wb2xsX3F1 ZXJ5X3VudGlsKCdwb3N0Z3JlcycsICRzeW5jZWRfcXVlcnkpCi0gIG9yIGRpZSAiVGltZWQgb3V0 IHdoaWxlIHdhaXRpbmcgZm9yIHN1YnNjcmliZXIgdG8gc3luY2hyb25pemUgZGF0YSI7Ci0KICMg Q2hlY2sgLSBleGlzdGluZyBzZXF1ZW5jZXMgKCdyZWdyZXNzX3MxJyBhbmQgJ3JlZ3Jlc3NfczIn KSBhcmUgc3luY2VkCi0kcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKAotCSdw b3N0Z3JlcycsIHFxKAotCVNFTEVDVCBsYXN0X3ZhbHVlLCBpc19jYWxsZWQgRlJPTSByZWdyZXNz X3MxOwotKSk7Ci1pcygkcmVzdWx0LCAnMjAwfHQnLCAnUkVGUkVTSCBTRVFVRU5DRVMgd2lsbCBz eW5jIGV4aXN0aW5nIHNlcXVlbmNlcycpOwotJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgKLQkncG9zdGdyZXMnLCBxcSgKLQlTRUxFQ1QgbGFzdF92YWx1ZSwgaXNfY2FsbGVk IEZST00gcmVncmVzc19zMjsKLSkpOwotaXMoJHJlc3VsdCwgJzIwMHx0JywgJ1JFRlJFU0ggU0VR VUVOQ0VTIHdpbGwgc3luYyBleGlzdGluZyBzZXF1ZW5jZXMnKTsKIAotIyBDaGVjayAtIG5ld2x5 IHB1Ymxpc2hlZCBzZXF1ZW5jZSAoJ3JlZ3Jlc3NfczMnKSBpcyBub3Qgc3luY2VkCi0kcmVzdWx0 ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKAotCSdwb3N0Z3JlcycsIHFxKAotCVNFTEVD VCBsYXN0X3ZhbHVlLCBpc19jYWxsZWQgRlJPTSByZWdyZXNzX3MzOwotKSk7Ci1pcygkcmVzdWx0 LCAnMXxmJywKLQknUkVGUkVTSCBTRVFVRU5DRVMgd2lsbCBub3Qgc3luYyBuZXdseSBwdWJsaXNo ZWQgc2VxdWVuY2UnKTsKKyMgUG9sbCB1bnRpbCByZWdyZXNzX3MxIHJlZmxlY3RzIHRoZSB1cGRh dGVkIHNlcXVlbmNlIHZhbHVlCiskbm9kZV9zdWJzY3JpYmVyLT5wb2xsX3F1ZXJ5X3VudGlsKCdw b3N0Z3JlcycsCisgICAgcXEoU0VMRUNUIGxhc3RfdmFsdWUgPSAyMDAgQU5EIGlzX2NhbGxlZCA9 ICd0JyBGUk9NIHJlZ3Jlc3NfczE7KSkKKyAgb3IgZGllICJUaW1lZCBvdXQgd2hpbGUgd2FpdGlu ZyBmb3IgcmVncmVzc19zMSBzZXF1ZW5jZSB0byBzeW5jIjsKIAotIyAyLiBEbyBBTFRFUiBTVUJT Q1JJUFRJT04gLi4uIFJFRlJFU0ggUFVCTElDQVRJT04gd2l0aCBjb3B5X2RhdGEgYXMgZmFsc2UK LSRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoCi0JJ3Bvc3RncmVzJywgcXEo Ci0JQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nfc2VxX3N1YiBSRUZSRVNIIFBVQkxJQ0FUSU9O IFdJVEggKGNvcHlfZGF0YSA9IGZhbHNlKTsKLSkpOwotJG5vZGVfc3Vic2NyaWJlci0+cG9sbF9x dWVyeV91bnRpbCgncG9zdGdyZXMnLCAkc3luY2VkX3F1ZXJ5KQotICBvciBkaWUgIlRpbWVkIG91 dCB3aGlsZSB3YWl0aW5nIGZvciBzdWJzY3JpYmVyIHRvIHN5bmNocm9uaXplIGRhdGEiOworIyBQ b2xsIHVudGlsIHJlZ3Jlc3NfczIgcmVmbGVjdHMgdGhlIHVwZGF0ZWQgc2VxdWVuY2UgdmFsdWUK KyRub2RlX3N1YnNjcmliZXItPnBvbGxfcXVlcnlfdW50aWwoJ3Bvc3RncmVzJywKKyAgICBxcShT RUxFQ1QgbGFzdF92YWx1ZSA9IDIwMCBBTkQgaXNfY2FsbGVkID0gJ3QnIEZST00gcmVncmVzc19z MjspKQorICBvciBkaWUgIlRpbWVkIG91dCB3aGlsZSB3YWl0aW5nIGZvciByZWdyZXNzX3MyIHNl cXVlbmNlIHRvIHN5bmMiOwogCi0jIENoZWNrIC0gbmV3bHkgcHVibGlzaGVkIHNlcXVlbmNlICgn cmVncmVzc19zMycpIGlzIG5vdCBzeW5jZWQgd2l0aCBjb3B5X2RhdGEKLSMgYXMgZmFsc2UuCisj IENoZWNrIC0gbmV3bHkgcHVibGlzaGVkIHNlcXVlbmNlICgncmVncmVzc19zMycpIGlzIG5vdCBz eW5jZWQKICRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoCiAJJ3Bvc3RncmVz JywgcXEoCiAJU0VMRUNUIGxhc3RfdmFsdWUsIGlzX2NhbGxlZCBGUk9NIHJlZ3Jlc3NfczM7CiAp KTsKIGlzKCRyZXN1bHQsICcxfGYnLAotCSdSRUZSRVNIIFBVQkxJQ0FUSU9OIHdpbGwgbm90IHN5 bmMgbmV3bHkgcHVibGlzaGVkIHNlcXVlbmNlIHdpdGggY29weV9kYXRhIGFzIGZhbHNlJwotKTsK KwknTmV3bHkgcHVibGlzaGVkIHNlcXVlbmNlcyBhcmUgbm90IHN5bmNlZCBhdXRvbWF0aWNhbGx5 Jyk7CiAKICMjIyMjIyMjIyMKICMgQUxURVIgU1VCU0NSSVBUSU9OIC4uLiBSRUZSRVNIIFBVQkxJ Q0FUSU9OIHNob3VsZCByZXBvcnQgYW4gZXJyb3Igd2hlbjoKLS0gCjIuNTEuMS53aW5kb3dzLjEK Cg== --_003_TY4PR01MB169077FE33BDE8363F8795EC5947DATY4PR01MB16907jp_--