From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: passt.top; dmarc=fail (p=quarantine dis=none) header.from=tamu.edu Received: from mx0a-00178102.pphosted.com (mx0a-00178102.pphosted.com [148.163.135.245]) by passt.top (Postfix) with ESMTPS id 2435A5A0265 for ; Mon, 26 Oct 2026 17:19:46 +0100 (CET) Received: from pps.filterd (m0231227.ppops.net [127.0.0.1]) by mx0b-00178102.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 69QExjjD1517633; Mon, 26 Oct 2026 11:19:45 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tamu.edu; h=cc :content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to; s=ppae6d7b; bh=pNa1aNSswzaW5/9fBbTXOJM8+ tdZJ3BQJwy4RG3dGiQ=; b=h05AFtgi/DPAAzPKOjWtEqRBGLiST1VVLhsTc2E+K FXrKAV35+YLKlWkROhr4avpP6S3tG6QuD7gDDi7n67QapJPjlICYXvH8LudBDb7u YYzATlCFEllhdghFLuWsCrqNjewi73+wVYwCax2+3juOGp+Dk9xtONPVfKb85kOu IS4fiPA+46E0YD3gH3vlEyntMEmDeqOw+l8BzhOA1PRH2+xB/2roNMDfnG/xK+/z PCLVnckUQHPRAOd2mtHdvGoZwlAJSyXVq22TSc6kBhjSCh7aQXenzpTXWsbNdw58 hBM8SqEfdLQcOJFFqs4J9wPS+MiZrxa8gfJB+OuU4Bfvw== Received: from byapr05cu005.outbound.protection.outlook.com (mail-westusazon11010048.outbound.protection.outlook.com [52.101.85.48]) by mx0b-00178102.pphosted.com (PPS) with ESMTPS id 4hj9240vhr-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Mon, 26 Oct 2026 11:19:44 -0500 (CDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Gz+aSEC4YtCVTVXPKFgXTvxZoCmAYaJCE5ZydQepzMMfD3LPrYQ83ugdxufr4zo8ZKekHEDmiagVQ+ml0TTuqiGr4KMjnx4JW8aC1wG9W8Nstess8j7LNzjEfo3SXNHeiww3lkDwuDECJfQ+x9a5alBFCBfkgKTLWRkYBgABb//QZyxC7vLpzKinlOF+YIcuzXkAsgb+ve2JfeYSqpSgcY3m0Czjb0P1eLOTK/Iog9omOpEpO1YyYZg/HNQfSPfmYIoaIwmz551MvcrzSv00OHCOBWDOZJ+voW0NrqWGHnMe7yntKWFrgJGpIADbv2VDIj0LnOcSL+jo5EYp9nsUew== 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=pNa1aNSswzaW5/9fBbTXOJM8+tdZJ3BQJwy4RG3dGiQ=; b=R/HBSDBhSLz+Bwb5dIy0B3nvTakGk9OLDRZDt6veLJQn4JWGfx8xHs3ZMHEh3o3pT8V4QqoT3h/z0kblvU/j2ZY1iSd+99vqEoFkilirDH8TUAHcaij5feWfTqcu3ig+oSj8f3wgW42XrUn4es98fAEEpZUJWneZTEF2QdyVxKdZQTk4uDEkkfJrbpgXqokp4KN2zPbdmm6r0GtjOgANzyKiPslxn6vJyjmq/1/qkRoxypRSZdVnud3PYCldQgLWUI1ncZkeF9XlO/RCQuRWpPzSIlcqnwRFgY8Ntm7rjmBU+EwAmTsAXeExZU2J7YJVc4PZ8aqlhsCxhzaUyZKH7A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=tamu.edu; dmarc=pass action=none header.from=tamu.edu; dkim=pass header.d=tamu.edu; arc=none Received: from DM3PR11MB8713.namprd11.prod.outlook.com (2603:10b6:0:45::15) by SJ0PR11MB5917.namprd11.prod.outlook.com (2603:10b6:a03:42b::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.546.16; Mon, 26 Oct 2026 16:19:41 +0000 Received: from DM3PR11MB8713.namprd11.prod.outlook.com ([fe80::e63e:f56e:ed80:ee28]) by DM3PR11MB8713.namprd11.prod.outlook.com ([fe80::e63e:f56e:ed80:ee28%4]) with mapi id 15.21.0546.021; Mon, 26 Oct 2026 16:19:41 +0000 From: "Lawrence, Richard E" To: Stefano Brivio Subject: Re: [PATCH v2] pasta: Add --pass-fds option to skip closing file descriptors Thread-Topic: [PATCH v2] pasta: Add --pass-fds option to skip closing file descriptors Thread-Index: AQHdYkf2lyQSMi30bU61fFPDN5cQ5LcOLKAAgAHYLLM= Date: Mon, 26 Oct 2026 16:19:41 +0000 Message-ID: References: <20261022170823.868916-1-rlawrence@tamu.edu> <20261025130139.039cda1b@elisabeth> In-Reply-To: <20261025130139.039cda1b@elisabeth> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: authentication-results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=tamu.edu; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM3PR11MB8713:EE_|SJ0PR11MB5917:EE_ x-ms-office365-filtering-correlation-id: ec0c3529-78ae-4a09-f468-08df337cf0b0 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|376014|23010399003|366016|1800799024|786006|6133799003|18002099003|22082099003|261026121527099003|261022075727099003|8096899003|13003099007|3023799007|261022105027099003|261026135527099003|11063799006|4143699003|261021133027099003|261021135927099003|261021123027099003|261021121427099003|261021130227099003|10067099003|261019150727099003|261019141927099003|261019143827099003|261019132127099003|261009223027099003|261026140227099003|261022113327099003|261022115727099003|56012099006|38070700021|261026130827099003; x-microsoft-antispam-message-info: vw5gYKspV8oLwMt+ivBambruDD35qYeGb+ryIShlsdQSzrvxvBdUuI3wWUeQEapDzHbYx6CKCf/MK1WnZAO5tNko5Xxusvx4D5rjeSV8NNRQvPZSZaijCqx6KLOXcQO4Y6ZsJO1btl6ZxbPGshZhI8/AYIdCwIGQBi0ppu9BVxm3HHj7PFm8K6G+exZJp/yT6nW8yCb2k9fpeT14JwPkhbDmHXh+Tc0S9pWfV1Up3lc3iH/Hm9+U3cjMndOGkyjkXgljKRVwhQ+kqJfRmeP+SAnUcfSfX567XWsLwEyvS5+iQXwgVYk8NqGqmn2JQMcvtvLCJnSuFDkOI0yTkhlLHNPP2N1VmPqR3tfMOG+NvmauoKkAfnJcY71vKLxvu9IwrNcYTE134bP7EOoqIs4a7PnwlcVqmUV4fIjGrHYopeO/Jxs+kAGoDm6exRuXLxdTDAX7UfZLxtdvwjAEgy32kNgtjnPFZIgD510Tt+XoMIzngflXUOVnD7M4AiZFjFzoRqsMzAz2R5WWaCh6j27VX6Vo1Y7lHAeRDzTiCLBqBQPV+WoUAOl3lRc8kTbe8T3t+3/3XJrqJ3X8his2MyDyuX0gaP5wOfo2Tj9+Wa7chXEo/uY+6kswls03FGY8bhqSLbMHeclzami5gveTr30stTSnKlOr/Su8N/hbgVVdTbQ= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM3PR11MB8713.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(23010399003)(366016)(1800799024)(786006)(6133799003)(18002099003)(22082099003)(261026121527099003)(261022075727099003)(8096899003)(13003099007)(3023799007)(261022105027099003)(261026135527099003)(11063799006)(4143699003)(261021133027099003)(261021135927099003)(261021123027099003)(261021121427099003)(261021130227099003)(10067099003)(261019150727099003)(261019141927099003)(261019143827099003)(261019132127099003)(261009223027099003)(261026140227099003)(261022113327099003)(261022115727099003)(56012099006)(38070700021)(261026130827099003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SUxzZHQ3OFlZRHptekd2RDZ6c1lDcXprenA1VkdVTU1VTWFXQnNzbGRISzRt?= =?utf-8?B?V0M2S2tWU2FHa0F0bVZDS200YVNYeVZQSjh3QUwxcUJMeDB1bzR5N1JlOWhC?= =?utf-8?B?dGpVRWJ3UFFpWkdiWm5XUjRpdjVpVU01K0hUL3ZNWXRuRGR4NDBEMVRpekRG?= =?utf-8?B?d0U0K2tMbVR0d0lPRzZyaWxyWi9HYlpob1g5TVVTREZlV0ZwOTBzS29sbDNC?= =?utf-8?B?a25adUVwaXF1bFhDWlNHdTBQYXRzdE10SUo4RXFNRU1JVEFTWjhBVC9hREdM?= =?utf-8?B?Z1R0b3JYUjgxUjhRUGw0YVFCWlREdzR2TGE3bWxWYWU0ZjdjV01SNHNZRDlH?= =?utf-8?B?ZkpRK21JbzhlMXE4b3JGVFF6eVpwTWljQTAvZUpSOTFUb2pvaHFyQk9kSjF6?= =?utf-8?B?L0xoZ0dDVHBaWi9ZVlVCOHFxS0ZuN05jbng0U3BqQ0E5b2RCc0ZJNEJqdVRB?= =?utf-8?B?NS9Fam9Ba0FNamhOWmdES01yd0NsWFl6YXVOOEt4OUFLYTdpdzd4MTN0aVl3?= =?utf-8?B?dVNzSVdYclBpVzFndHVnMkZJcEJ0ZG1OVjMrSWhEaUZGNXNCdEhmbTg1WDlj?= =?utf-8?B?MCtKV0xEaXRqWHBrLzVHZEF1R0UzU2crcXZIdGhyMUZ1NVVKVGhsdjM2Mnph?= =?utf-8?B?TFNSS29WM24xUkcrS0poTkM5OEdVaE1uK0IxZVpTTEpyQ0dmNFRva3FJa1JI?= =?utf-8?B?SkhIKzY4MThlZnNCKzZUTS94Tm90U2JnYW9aMjlEZG1DZFZnMDJHVzY5bjBm?= =?utf-8?B?bmhaYnZOSThSRWFXL1RWNDhIRHdnZ0lTY1RLRkNwSHQ4TnVWNTE2ZUxYR0pj?= =?utf-8?B?clVCZGU0RnFBeGhPV1k4VTZ3S2JtbDFya3U0K3czK3cvWFgzMGNJVzI2NjAy?= =?utf-8?B?NUpwaFFwT3czWlFKdjlQL3YzYXlVT2YxL2tYek5rVG5aRE1abnZSdndJS2N3?= =?utf-8?B?eEFEeG1tY2d5SytJN2ZYeWkrNyszSFVDSEkxcXo3UXlPem5rTzF2YXRQaWZx?= =?utf-8?B?TWRWdWNEUmU0ZHhKVWxIQm8xUUZZSElYdkEyWmlGSUUyUzNNY2VFSWZzL3ZY?= =?utf-8?B?bUh1RG9sb3YzVno0YlZJT0ZwY0kzLzE5REhkdXhJc1U3R2J4ZzljcjdHNTE3?= =?utf-8?B?ejNNOElXWG9wbkZUcURLZnNnTHBsRGdYaVVySkZObnNsWllFT21rVlpFL3BZ?= =?utf-8?B?R1hWWUtCVzk4MkpLa1hQWVdxUWlzck1Ldjd3enZkVmUvSklPWXNtcFlPaktn?= =?utf-8?B?MkszekoxdkhuNXBPb0hIYXdud2E4Y2VIak9HN29MaVZEdS9QcnJ5d1lNR2lF?= =?utf-8?B?SWxid2V5dUd4VFZsMlIxUWhuakpDOEx1Q0VMZktxKzY0VTl1OEc5QkVLK1gx?= =?utf-8?B?VCtkRElsOE1mWE5idmZmbFl4aUgzVUV1WCtUQnVNOWFJR2pFcG1DOEQ2cTg4?= =?utf-8?B?ejByWDNFaEo3Z01EVHE2QWtXcnUxWEh5N1lqK24rcXkzNks2bElmdENONlpy?= =?utf-8?B?S0RiRTJaaE51YXRyaDlmY0VNMnNwRWZ3ZG96K1prSENvNXZJNFpWTy8zM1FX?= =?utf-8?B?YnlTOURTYnROdU1sc0xsYnZCNkVxR1lIRGtWY0NFSS9MRXo4R3ZNbjJjeWhH?= =?utf-8?B?QVN0VHo0bldGdytuanVrVzhTckthUHI2NUNRMy9XUVJlWkl5Q0NGbklQc3Bw?= =?utf-8?B?OS9FVUxaVG5hcTY3OUQwR1A3a1RUTW9YK3dMdzVQK0hDWWxhTldSSk5HaFdk?= =?utf-8?B?aktDU09HWFNHemVicTlyZ0lSczhBU0RtSEVuUGRZSEJENFord2k1anA5dlRK?= =?utf-8?B?S3J5U0F3SjRmdEJIZkFRR0dQNWhvbGZBUXZJTDNKVXhwa3M1Z2ZTRGtZWXZk?= =?utf-8?B?ZzhwbGFKUmZPRlY4Ky83NzMyRGhkb0RwRHBMa3NVM1pvREsxYkwxSUwvckZr?= =?utf-8?B?MXdxQ0QvaVJzMHdHWUNaM1puZ05nbDI0cE03aVpvb1BQdFJyS2swU0gyR1NR?= =?utf-8?B?dGpvNVc5T1k0aFpxUitLNTdnZm1TekxzVXpHUW43eFByQjc2VTN2REwyeFF4?= =?utf-8?B?YXpmVTg3MXdkRGszWmJwQ0IvR3ZJU0ZFdDFOMWducU1kME5LQkp1QUdxU1p6?= =?utf-8?B?UVdLWC9Wam12VjVnUGpHRG4xRXB1RFIveXdBOTI3VnoyQi9qV2U1TkxhU25W?= =?utf-8?B?aEdTWmhDUVhHZU5JQkdhTTA1MmlPOHlUU2Q3cVhzSDlSdlMyQWdyemVIenJW?= =?utf-8?B?K1B0bHRuYXJoSzkvYW1YVXpQTWNMWTVzRlBuREQxRkVJN0U4YU12NjBoaXJv?= =?utf-8?Q?FZ8glgOFcmOkXq4paU?= Content-Type: multipart/alternative; boundary="_000_DM3PR11MB8713EDD4284AEF9064BF39ABDA612DM3PR11MB8713namp_" MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: hSHAU77jQ5F08txvWb+Us2CH4st1LITWCHo9F/XjVWSN3CVKKFcF+Irz9qnXpCHz9sY6f/vQKebIVKpmXGLw+us0LYkGI9BRG4UGr7KESdQTNbpC0jDDwYrMArfqVVjL/YJL7WcVovoF6WTVltA0X67C2jDQGbVRr/mYwl+7Dc0O5uyFR7ZghIMtv6QQ3igTFBCcPY+iEytSo9ezZ1QL+U/5CIhRYekyvUhGNahXQlc2M7f0uYwVkSFkIENIV/DLKJDQGVK7MpOHWmyWy3CRfKcDEaCAtJU8j0m069H+a/7xOM8kYWXO4suGcrUkb0vmzv6VIk5Ng7ZW5I/5N6vSvQ== X-OriginatorOrg: tamu.edu X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM3PR11MB8713.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ec0c3529-78ae-4a09-f468-08df337cf0b0 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Oct 2026 16:19:41.6288 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 68f381e3-46da-47b9-ba57-6f322b8f0da1 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: PL+MWvHMcjpawaf1C3L6y525vaVDXBVbzEXHf5xn/5se+jX/ZL8Q+4fPw6k4nnC3WBvOfKNLHh3WI/jQs/perw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB5917 X-Proofpoint-Spam-Info: AW1haW4tMjYxMDI2MDA2NCBTYWx0ZWRfXxLpI+W+igNlJ 8jywsHFBIOEmIZ/o66DGEVH+jgxtTkyi8cDNGcRJnn7IkbAz5/woRQ5KMygQgnwdgDzy/70AEhQ pujRIsBg+KKQn+BvhiCIieyprO3Qy4g= X-Proofpoint-GUID: JeptnEy8N9129nzHUm7DVGv_MBDgxL88 X-Proofpoint-ORIG-GUID: JeptnEy8N9129nzHUm7DVGv_MBDgxL88 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYxMDI2MDA2NCBTYWx0ZWRfX30o+Ebz1PNce +tumKRLS1xAwRFL1Q7+KjLaiTfHvsk3Q5tkUnOxJm3di8YAcf7JHP+HKa2tVIDOHA+oSd9Jcx2h GcKCOE9oNwQKFIAN7WXE4P4zxzQtRVYVfdWP9QccNS/Wxq0jAfZ7ZU73MdkL7aIycmicjP0mYM9 HrWR/GZPLH+v72EYmkycQ3ZkjTXiufBa/hy4EOO+usFRwz1nMZ7ZupOmO3cG59zvcYZlKn9tcZc UsdFBW1jEK0BCnNwguB8I8W0Lbt8p4wBBuj1hXI9DytN/KZFYgCPEdPa6W/WB1CnZARNnHNNMNg E0zqTH/Pi308wD94A6rRWyBbNVVwUf5xvTFB5hq1xJuaqufwsvLj+wherrJYNAC0qMiqDaS4hD6 Qe8s3i3K0pKDPKL+mVxAz71+jjDTdJ/zkk6V7MMB3fupk8XZjbyogPNfkb2Kn1H4FCQAVEo8Q4A tGnZFWeF9weNFaXdFhA== X-Authority-Analysis: v=2.4 cv=EKKTQFZC c=1 sm=1 tr=0 ts=6adf7da0 cx=c_pps a=INYzEgT09ABq+JfORImVWw==:117 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=660iZSQnnn4A:10 a=x7bEGLp0ZPQA:10 a=fWIk7vUBimkA:10 a=VkNPw1HP01LnGYTKEx00:22 a=HuL5yKgYSaDc2Nh3iM7q:22 a=efzhd9O6aJ8jRLlRsDx9:22 a=pNgXkJcRAAAA:8 a=20KFwNOVAAAA:8 a=B910RkmbNBtAme4EkkMA:9 a=QEXdDO2ut3YA:10 a=O8hF6Hzn-FEA:10 a=FAcQHm2xu5N6qU_EPLIA:9 a=2q4O/K3rjNU7EHYdBHB6dYyilSc=:19 a=NZ-q_duOC6sQDp3_:21 a=frz4AuCg-hUA:10 a=_W_S_7VecoQA:10 a=tKe0A8swS_RTMQ4Dt1Wu:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.138,FMLib:17.12.100.49 definitions=2026-10-26_03,2026-10-21_02,2025-10-01_01 X-MailFrom: rlawrence@tamu.edu X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation Message-ID-Hash: NCDIISC26WO7YBRWKGWF3TWS3YEJ7IGD X-Message-ID-Hash: NCDIISC26WO7YBRWKGWF3TWS3YEJ7IGD X-Mailman-Approved-At: Mon, 26 Oct 2026 18:29:48 +0100 CC: "passt-dev@passt.top" X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: --_000_DM3PR11MB8713EDD4284AEF9064BF39ABDA612DM3PR11MB8713namp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SG93ZHkgU3RlZmFubywNCg0KVGhhbmsgeW91IGZvciBleHBsYWluaW5nIGFib3V0IHRoZSB3aGl0 ZXNwYWNlIGFuZCB0aGUgZ2V0b3B0IGxvbmcgaW5kZXguDQoNClBhc3NpbmcgY3R4IGRpcmVjdGx5 IHRvIGNvbmZfZmRzIHNlZW1zIGZpbmUuIEkgY2hvc2UgdG8gcmV0dXJuIGEgc3RydWN0IGJlY2F1 c2UgSSB3YW50ZWQgdG8gYXZvaWQgc2V0dGluZyBjLT5mZF90YXAgaW5pdGlhbGx5IHRvIHRoZSB1 c2VyLXBhc3NlZCB2YWx1ZSwgYmVjYXVzZSBkb2luZyBzbyBvYmZ1c2NhdGVzIHRoZSBmYWN0IHRo YXQgdGhlIHVzZXItcGFzc2VkIHZhbHVlIG1heSBub3QgYWN0dWFsbHkgYmUgdXNlZC4gSW4gcmV0 cm9zcGVjdCwgdGhlIGNvbmZ1c2lvbiB3b3VsZCBhbHNvIGJlIHByZXZlbnRlZCBieSBhIGNvbW1l bnQsIHNvIEkgd2lsbCBqdXN0IGRvIHRoYXQgaW5zdGVhZC4NCg0KSSB3YW50ZWQgdG8gdW5jb25k aXRpb25hbGx5IHJlbG9jYXRlIHRoZSBmZF90YXAgYmVjYXVzZSBJIGltYWdpbmVkIHRoZSBmb2xs b3dpbmcgYnVnOiBpbWFnaW5lIGlmIHNvbWVvbmUgaXMgdXNpbmcgcGFzdGEsIHBhc3NlcyB0aGUg dGFwIG9uIHN0ZGluLCBkb2VzIE5PVCByZXF1ZXN0IHRvIHBhc3MgZmRzICh0YXAgfCBwYXN0YSAt ZmQgMCksIGFuZCB3ZSBjaG9vc2Ugbm90IHRvIHJlbG9jYXRlIHRoZSB0YXAuIFNpbmNlIHN0ZGlu IGlzIG5ldmVyIGNsb3NlZCwgdGhlIHRhcCB3b3VsZCBiZSBwYXNzZWQgdG8gdGhlIHNwYXduZWQg Y29tbWFuZCBvbiBzdGRpbiwgd2hpY2ggd291bGQgbW9zdCBsaWtlbHkgY2F1c2luZyB0aGUgc3Bh d25lZCBjb21tYW5kIHRvIGhhdmUgdW5leHBlY3RlZCBiZWhhdmlvci4gQWRkaXRpb25hbGx5LCB0 aGlzIGNob2ljZSBpcyBlc3BlY2lhbGx5IHdlaXJkIGNvbnNpZGVyaW5nIHRoYXQgdGhlIGh5cG90 aGV0aWNhbCB1c2VyIGRpZCBub3QgZXZlbiByZXF1ZXN0IHRoZSB0YXAgdG8gYmUgcGFzc2VkIHRv IHRoZSBzcGF3bmVkIGNvbW1hbmQgYXQgYWxsLiBJIHdvdWxkIGFsc28gbGlrZSB0byBwb2ludCBv dXQgdGhhdCB0aGUgY29kZSBhbHJlYWR5IHVuY29uZGl0aW9uYWxseSByZWxvY2F0ZXMgdGhlIHRh cDogSSBhc3N1bWUgdGhhdCBzb21lb25lIG11c3QgaGF2ZSBmb3Jlc2VlbiBzb21lIG90aGVyIGJ1 ZyAocGVyaGFwcyByZWxhdGVkIHRvIHN0ZGluIGluIHBhc3N0IG1vZGU/KSBhbmQgSSBkb24ndCB3 YW50IHRvIGNhdXNlIGEgcmVncmVzc2lvbiBpbiBhbm90aGVyIHdvcmtmbG93IHRoYXQgSSBkb24n dCBrbm93IGFueXRoaW5nIGFib3V0Lg0KDQpSaWNoYXJkDQoNCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fDQpGcm9tOiBTdGVmYW5vIEJyaXZpbyA8c2JyaXZpb0ByZWRoYXQuY29tPg0K U2VudDogU3VuZGF5LCBPY3RvYmVyIDI1LCAyMDI2IDc6MDEgQU0NClRvOiBMYXdyZW5jZSwgUmlj aGFyZCBFIDxybGF3cmVuY2VAdGFtdS5lZHU+DQpDYzogcGFzc3QtZGV2QHBhc3N0LnRvcCA8cGFz c3QtZGV2QHBhc3N0LnRvcD4NClN1YmplY3Q6IFJlOiBbUEFUQ0ggdjJdIHBhc3RhOiBBZGQgLS1w YXNzLWZkcyBvcHRpb24gdG8gc2tpcCBjbG9zaW5nIGZpbGUgZGVzY3JpcHRvcnMNCg0KUmljaGFy ZCwgdGhhbmtzIGZvciB0aGUgbmV3IHZlcnNpb24gYW5kIGZvciB5b3VyIHBhdGllbmNlISBUaGUg bG9naWMgbG9va3MgZ29vZCB0byBtZSwgYnV0IEkgdGhpbmsgd2UgY2FuIG1ha2UgdGhlIGltcGxl bWVudGF0aW9uIGEgYml0IHNpbXBsZXIuIEEgZmV3IGNvbW1lbnRzIGlubGluZTogT24gVGh1LCAy MiBPY3QgMjAyNiAxMjrigIowODrigIoyMyAtMDUwMCBSaWNoYXJkIExhd3JlbmNlIDxybGF3cmVu Y2VA4oCKdGFtdS7igIplZHU+DQpaalFjbVFSWUZwZnB0QmFubmVyU3RhcnQNClRoaXMgTWVzc2Fn ZSBJcyBGcm9tIGFuIEV4dGVybmFsIFNlbmRlcg0KVGhpcyBtZXNzYWdlIGNhbWUgZnJvbSBvdXRz aWRlIHlvdXIgb3JnYW5pemF0aW9uLg0KDQpaalFjbVFSWUZwZnB0QmFubmVyRW5kDQoNClJpY2hh cmQsIHRoYW5rcyBmb3IgdGhlIG5ldyB2ZXJzaW9uIGFuZCBmb3IgeW91ciBwYXRpZW5jZSENCg0K VGhlIGxvZ2ljIGxvb2tzIGdvb2QgdG8gbWUsIGJ1dCBJIHRoaW5rIHdlIGNhbiBtYWtlIHRoZSBp bXBsZW1lbnRhdGlvbg0KYSBiaXQgc2ltcGxlci4gIEEgZmV3IGNvbW1lbnRzIGlubGluZToNCg0K T24gVGh1LCAyMiBPY3QgMjAyNiAxMjowODoyMyAtMDUwMA0KUmljaGFyZCBMYXdyZW5jZSA8cmxh d3JlbmNlQHRhbXUuZWR1PiB3cm90ZToNCg0KPiBXaGVuIHBhc3RhIHNwYXducyBhIGNvbW1hbmQg KGBwYXN0YSBbb3B0aW9uc10gLS0gW2NvbW1hbmRdYCksIGFsbCBvcGVuIGZpbGUNCj4gZGVzY3Jp cHRvcnMgaW5oZXJpdGVkIGZyb20gdGhlIHBhcmVudCBwcm9jZXNzIGV4Y2VwdCBzdGFuZGFyZCBz dHJlYW1zICgwLTIpDQo+IGFuZCB0aGUgdGFwIGRlc2NyaXB0b3IgKGAtLWZkYCkgYXJlIG5vcm1h bGx5IGNsb3NlZCBieSBgaXNvbGF0ZV9mZHMoKWAuDQo+DQo+IEhvd2V2ZXIsIHdoZW4gcGFzdGEg aXMgdXNlZCBmb3IgdGVzdGluZywgZGV2ZWxvcG1lbnQsIG9yIGxhdW5jaGluZyB0b29scyBsaWtl DQo+IEJ1YmJsZXdyYXAgKGBid3JhcGApLCB0aGUgc3Bhd25lZCBjb21tYW5kIG1heSByZXF1aXJl IGZpbGUgZGVzY3JpcHRvcnMNCj4gcGFzc2VkIGRpcmVjdGx5IGZyb20gdGhlIHBhcmVudCBwcm9j ZXNzLiBJbiB0aGlzIGNhc2UsIGNsb3NpbmcgaW5oZXJpdGVkIGZpbGUNCj4gZGVzY3JpcHRvcnMg YnJlYWtzIGV4cGVjdGVkIGJlaGF2aW9yLg0KPg0KPiBBZGQgYSBib29sZWFuIGAtLXBhc3MtZmRz YCBmbGFnIGZvciBwYXN0YSBtb2RlIHRoYXQgc2tpcHMgdGhlIGBjbG9zZV9yYW5nZSgpYA0KPiBj bGVhbnVwIHN0ZXAgaW4gYGlzb2xhdGVfZmRzKClgLCBsZWF2aW5nIGFsbCBvcGVuIGZpbGUgZGVz Y3JpcHRvcnMgaW50YWN0DQo+IGZvciB0aGUgY2hpbGQgY29tbWFuZC4NCj4NCj4gU3VtbWFyeSBv ZiBjaGFuZ2VzOg0KPg0KPiAtIEludHJvZHVjZSBgc3RydWN0IGZkX29wdHNgIGFuZCB1cGRhdGUg YGNvbmZfdGFwX2ZkKClgIHRvIGBjb25mX2ZkcygpYCwNCj4gICBhbGxvd2luZyBlYXJseSBwYXJz aW5nIG9mIGJvdGggYC1GYC9gLS1mZGAgYW5kIGAtLXBhc3MtZmRzYCBiZWZvcmUgbWFpbg0KPiAg IG9wdGlvbiBwcm9jZXNzaW5nLg0KPiAtIFVwZGF0ZSBgaXNvbGF0ZV9mZHMoKWAgdG8gY2hlY2sg YG9wdHMucGFzc19mZHNgOiBpZiBzZXQsIHNraXAgY2FsbGluZw0KPiAgIGBjbG9zZV9yYW5nZSgp YCB3aGlsZSBzdGlsbCByZWxvY2F0aW5nIHRoZSB0YXAgZmQgb3V0IG9mIHN0YW5kYXJkIHN0cmVh bQ0KPiAgIHJhbmdlICgwLTIpIGlmIG5lZWRlZC4NCj4gLSBFbmZvcmNlIHZhbGlkYXRpb24gaW4g YGNvbmYoKWAgZW5zdXJpbmcgYC0tcGFzcy1mZHNgIGlzIHJlc3RyaWN0ZWQgdG8gcGFzdGENCj4g ICBtb2RlIHdoZW4gc3Bhd25pbmcgYSBjb21tYW5kIChpbmNvbXBhdGlibGUgd2l0aCBhdHRhY2hp bmcgdG8gYW4NCj4gICBleGlzdGluZyBuZXRucykuDQo+IC0gVXBkYXRlIG1hbiBwYWdlIGFuZCB1 c2FnZSBoZWxwIG91dHB1dC4NCj4NCj4gTGluazogaHR0cHM6Ly91cmxkZWZlbnNlLmNvbS92My9f X2h0dHBzOi8vYnVncy5wYXNzdC50b3Avc2hvd19idWcuY2dpP2lkPTIwNF9fOyEhS3dOVm5xUnYh R09Qb2RzdEpxMTBkX1hMUHRwUUt1amtiSUZWQlBZSW10cDlKX1d5T2xDSW01SzV3T2tpVkw0NTIz Ui1ZRThKUV9GTzl2UV9WbEszMHBZQk4kDQo+IFNpZ25lZC1vZmYtYnk6IFJpY2hhcmQgTGF3cmVu Y2UgPHJsYXdyZW5jZUB0YW11LmVkdT4NCj4gLS0tDQo+ICBjb25mLmMgICAgICB8IDU4ICsrKysr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tDQo+ICBjb25mLmggICAgICB8ICA3 ICsrKystDQo+ICBpc29sYXRpb24uYyB8IDc0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICBpc29sYXRpb24uaCB8ICAyICstDQo+ICBwYXNz dC4xICAgICB8ICA1ICsrKysNCj4gIHBhc3N0LmMgICAgIHwgIDIgKy0NCj4gIHBhc3N0LmggICAg IHwgIDIgKysNCj4gIDcgZmlsZXMgY2hhbmdlZCwgOTkgaW5zZXJ0aW9ucygrKSwgNTEgZGVsZXRp b25zKC0pDQo+DQo+IGRpZmYgLS1naXQgYS9jb25mLmMgYi9jb25mLmMNCj4gaW5kZXggMTQ5YTRj Ny4uNDQ3OTQ2NyAxMDA2NDQNCj4gLS0tIGEvY29uZi5jDQo+ICsrKyBiL2NvbmYuYw0KPiBAQCAt NzUwLDcgKzc1MCw5IEBAIHBhc3RhX29wdHM6DQo+ICAgICAgICAgICAgICAgIiAgICAgICAgICAg ICAgICAgICAgICAgRG9uJ3QgY29weSBhbGwgYWRkcmVzc2VzIHRvIG5hbWVzcGFjZVxuIg0KPiAg ICAgICAgICAgICAgICIgIC0tbnMtbWFjLWFkZHIgQUREUiAgIFNldCBNQUMgYWRkcmVzcyBvbiB0 YXAgaW50ZXJmYWNlXG4iDQo+ICAgICAgICAgICAgICAgIiAgLS1uby1zcGxpY2UgICAgICAgICAg RGlzYWJsZSBpbmJvdW5kIHNvY2tldCBzcGxpY2luZ1xuIg0KPiAtICAgICAgICAgICAgICIgIC0t c3BsaWNlLW9ubHkgICAgICAgIE9ubHkgZW5hYmxlIGxvb3BiYWNrIGZvcndhcmRpbmdcbiIpOw0K PiArICAgICAgICAgICAgICIgIC0tc3BsaWNlLW9ubHkgICAgICAgIE9ubHkgZW5hYmxlIGxvb3Bi YWNrIGZvcndhcmRpbmdcbiINCj4gKyAgICAgICAgICAgICAiICAtLXBhc3MtZmRzICAgICAgICAg ICBQcmVzZXJ2ZSBvcGVuIGZpbGUgZGVzY3JpcHRvcnMgYW5kXG4iDQo+ICsgICAgICAgICAgICAg IiAgICAgICAgICAgICAgICAgICAgICAgcGFzcyB0aGVtIHRvIHRoZSBzcGF3bmVkIGNvbW1hbmRc biIpOw0KDQpUaGUgdXNhZ2UgbWVzc2FnZSBpcyBhbHJlYWR5IHZlcnkgbG9uZywgYW5kIGl0J3Mg bm90IG1lYW50IGFzIGENCmNvbXByZWhlbnNpdmUgZG9jdW1lbnRhdGlvbiwganVzdCBhIHF1aWNr IHJlZmVyZW5jZSwgc28gSSBndWVzcyB3ZQ0KY291bGQgc2ltcGx5IHNheSAiUHJlc2VydmUgb3Bl biBmaWxlIGRlc2NyaXB0b3JzIiBoZXJlLCBhbmQgc2F2ZSBvbmUNCmxpbmUgb2Ygb3V0cHV0Lg0K DQo+DQo+ICAgICAgIHBhc3N0X2V4aXQoc3RhdHVzKTsNCj4gIH0NCj4gQEAgLTExMzYsMzYgKzEx MzgsNDMgQEAgc3RhdGljIHZvaWQgY29uZl9zb2NrX2xpc3Rlbihjb25zdCBzdHJ1Y3QgY3R4ICpj KQ0KPiAgICAgICAgICAgICAgIGRpZV9wZXJyb3IoIkNvdWxkbid0IGFkZCBjb25maWd1cmF0aW9u IHNvY2tldCB0byBlcG9sbCIpOw0KPiAgfQ0KPg0KPiArDQo+ICsNCj4gKw0KDQpVbnJlbGF0ZWQg YmxhbmsgbGluZXMuDQoNCj4gIC8qKg0KPiAtICogY29uZl90YXBfZmQoKSAtIFJlYWQgdGFwIGZk IGFzIHN1cHBsaWVkIGJ5IC1GIGNvbW1hbmQgbGluZSBvcHRpb24NCj4gKyAqIGNvbmZfZmRzKCkg LSBSZWFkIGZkcyBhcyBzdXBwbGllZCBieSAtRi8tLWZkIGFuZCAtLXBhc3MtZmRzIG9wdGlvbnMN Cj4gICAqIEBhcmdjOiAgICBBcmd1bWVudCBjb3VudA0KPiAgICogQGFyZ3Y6ICAgIENvbW1hbmQg bGluZSBvcHRpb25zDQo+IC0gKg0KPiAtICogUmV0dXJuOiBmZCBudW1iZXIgZnJvbSAtLWZkIG9w dGlvbiwgb3IgLTEgaWYgbm90IHN1cHBsaWVkDQo+ICsNCj4gKyAqIFJldHVybjogZmRfb3B0cyB7 IGZkX3RhcCwgcGFzc19mZHMgfQ0KDQpSZXR1cm5pbmcgYSBzdHJ1Y3Qgd29ya3MsIGFuZCBpdCBt aWdodCBldmVuIGxvb2sgZWxlZ2FudCwgYnV0IGl0J3Mgbm90DQpzb21ldGhpbmcgd2UgZG8gZnJl cXVlbnRseSBpbiB0aGlzIGNvZGViYXNlLCBvciBub3QgYXQgYWxsLCB3aXRoIHRoZQ0KZ2VuZXJh bCByZWFzb25pbmcgYmVpbmcgdGhhdCBzdHJ1Y3RzIGV2ZW50dWFsbHkgZ3JvdyBhbmQsIGluDQpu b24tdHJpdmlhbCBjYXNlcywgd2UgcmlzayBoYXZpbmcgY29waWVzIG9uIHJldHVybiB0aGF0IG1p Z2h0IGdyb3cgd2VsbA0KYmV5b25kIHdoYXQgd2FzIGludGVuZGVkLiAgT24gdG9wIG9mIHRoYXQs IGlmIHlvdSB3YW50IHRvIHNpZ25hbCBmYWlsdXJlDQphdCBzb21lIHBvaW50LCB5b3Ugd291bGQg bmVlZCBhIHNtYWxsIHJld29yay4NCg0KSXQncyBhYnNvbHV0ZWx5IGZpbmUgdG8gZG8gdGhpcyBo ZXJlLCBidXQgSSB3b3VsZCBzdGlsbCBoYXZlIGENCnNsaWdodCBwcmVmZXJlbmNlIGZvciBjb25z aXN0ZW5jeSAobWFrZSBpdCBhIHZvaWQgaWYgaXQgbmV2ZXIgZmFpbHMsDQphbmQgcGFzcyB0aGUg dHdvIGFyZ3VtZW50cyBhcyBwb2ludGVycykuICBIb3dldmVyLCBJIGRvbid0IHRoaW5rIHdlDQpu ZWVkIHRoaXMgYXQgYWxsLg0KDQpZb3UgYXJlIGFscmVhZHkgcGFzc2luZyBhIHN0cnVjdCBjdHgg dG8gdGhlIGNhbGxlciBub3csIGlzb2xhdGVfZmRzKCkuDQpJdCBjb250YWlucyAoYWxtb3N0KSB0 aGUgd2hvbGUgY29uZmlndXJhdGlvbi4gIFRoaXMgZnVuY3Rpb24gcmVhZHMNCmNvbmZpZ3VyYXRp b24uICBJdCBjb3VsZCB2ZXJ5IG5hdHVyYWxseSBzdG9yZSBpdCB0aGVyZSBhbmQgeW91J3JlIGRv bmUNCndpdGggaXQ6IGp1c3Qgc2V0IGMtPmZkX3RhcCBhbmQgYy0+cGFzdGFfcGFzc19mZHMgaGVy ZSAod2l0aCBhIG1pbm9yDQpjYXZlYXQgYXJvdW5kIGMtPmZkX3RhcCwgc2VlIGJlbG93KS4NCg0K PiAgICovDQo+IC1pbnQgY29uZl90YXBfZmQoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KPiArc3Ry dWN0IGZkX29wdHMgY29uZl9mZHMoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KPiAgew0KPiAtICAg ICBjb25zdCBzdHJ1Y3Qgb3B0aW9uIG9wdGZkW10gPSB7IHsgImZkIiwgcmVxdWlyZWRfYXJndW1l bnQsIE5VTEwsICdGJyB9LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsgMCB9LCB9Ow0KPiAtICAgICBjb25zdCBjaGFyICpmZGFyZyA9IE5VTEwsICpwOw0KPiAtICAg ICB1bnNpZ25lZCBsb25nIHZhbDsNCj4gKyAgICAgY29uc3Qgc3RydWN0IG9wdGlvbiBvcHRbXSA9 IHsNCj4gKyAgICAgICAgICAgICB7ICJmZCIsICAgICAgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEws ICdGJyB9LA0KDQpZb3UncmUgbGVhdmluZyBhIGJpdCBvZiBzcGFjZSBoZXJlIGJlY2F1c2UgaXQn cyBkb25lIGluIGNvbmYoKSwgc28gdGhhdA0KYXJndW1lbnRzIGNhbiBiZSBhbGlnbiBhbmQgdGhp cyBiZWNvbWVzIGEgbW9yZSByZWFkYWJsZSBmb3JtIG9mIHRhYmxlLA0KYnV0Og0KDQo+ICsgICAg ICAgICAgICAgeyAicGFzcy1mZHMiLCBub19hcmd1bWVudCwgTlVMTCwgMzQgfSwNCg0KLi4udGhl biBpdCdzIG5vdCBhY3R1YWxseSBhbGlnbmVkIGhlcmUuIEFuZCAzNCBqdXN0IGhhcHBlbnMgdG8g YmUgdGhlDQptYXRjaGluZyBpbmRleCBpbiBnZXRvcHRfbG9uZygpIGluIGNvbmYoKSwgYnV0IGl0 J3Mga2luZCBvZiBjb25mdXNpbmcNCnRvIGhhdmUgaXQgaGVyZTogZm9yIHRoZSBwdXJwb3NlcyBv ZiB0aGlzIGZ1bmN0aW9uLCBpdCdzIHRoZSBmaXJzdA0Kb3B0aW9uIGluZGV4IHdpdGhvdXQgc2hv cnQtaGFuZCwgc28gaXQgc2hvdWxkIGJlIDEuDQoNClRoYXQgaXMsIEkgdGhpbmsgdGhpcyBzaG91 bGQgYmU6DQoNCiAgICAgICAgICAgICAgICB7ICJmZCIsICAgICAgICAgcmVxdWlyZWRfYXJndW1l bnQsICAgICAgTlVMTCwgICAnRicgfSwNCiAgICAgICAgICAgICAgICB7ICJwYXNzLWZkcyIsICAg bm9fYXJndW1lbnQsICAgICAgICAgICAgTlVMTCwgICAxIH0sDQoNCj4gKyAgICAgICAgICAgICB7 IDAgfSwNCj4gKyAgICAgfTsNCj4gKyAgICAgc3RydWN0IGZkX29wdHMgb3B0cyA9IHsgLmZkX3Rh cCA9IC0xLCAucGFzc19mZHMgPSBmYWxzZSB9Ow0KPiAgICAgICBpbnQgbmFtZTsNCj4NCj4gICAg ICAgb3B0aW5kID0gMDsNCj4gICAgICAgZG8gew0KPiAtICAgICAgICAgICAgIG5hbWUgPSBnZXRv cHRfbG9uZyhhcmdjLCBhcmd2LCAiLTpGOiIsIG9wdGZkLCBOVUxMKTsNCj4gLSAgICAgICAgICAg ICBpZiAobmFtZSA9PSAnRicpDQo+IC0gICAgICAgICAgICAgICAgICAgICBmZGFyZyA9IG9wdGFy ZzsNCj4gLSAgICAgfSB3aGlsZSAobmFtZSAhPSAtMSk7DQo+IC0NCj4gLSAgICAgaWYgKCFmZGFy ZykNCj4gLSAgICAgICAgICAgICByZXR1cm4gLTE7DQo+ICsgICAgICAgICAgICAgbmFtZSA9IGdl dG9wdF9sb25nKGFyZ2MsIGFyZ3YsICItOkY6Iiwgb3B0LCBOVUxMKTsNCj4gKyAgICAgICAgICAg ICBpZiAobmFtZSA9PSAnRicpIHsNCj4gKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIg KnAgPSBvcHRhcmc7DQo+ICsgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHZhbDsN Cj4NCj4gLSAgICAgcCA9IGZkYXJnOw0KPiAtICAgICBpZiAoIXBhcnNlX3Vuc2lnbmVkKCZwLCAw LCAmdmFsKSB8fCAhcGFyc2VfZW9pKHApIHx8IHZhbCA+IElOVF9NQVgpDQo+IC0gICAgICAgICAg ICAgZGllKCJJbnZhbGlkIC0tZmQ6ICVzIiwgZmRhcmcpOw0KPiArICAgICAgICAgICAgICAgICAg ICAgaWYgKCFwYXJzZV91bnNpZ25lZCgmcCwgMCwgJnZhbCkgfHwgIXBhcnNlX2VvaShwKSB8fA0K PiArICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCA+IElOVF9NQVgpDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRpZSgiSW52YWxpZCAtLWZkOiAlcyIsIG9wdGFyZyk7DQo+DQo+ IC0gICAgIHJldHVybiB2YWw7DQo+ICsgICAgICAgICAgICAgICAgICAgICBvcHRzLmZkX3RhcCA9 IChpbnQpdmFsOw0KPiArICAgICAgICAgICAgIH0gZWxzZSBpZiAobmFtZSA9PSAzNCkgew0KDQoo ZG9uJ3QgZm9yZ2V0IHRvIGNoYW5nZSB0aGlzIHRvICcxJyBpZiB5b3UgZ28gZm9yIHRoZSB2ZXJz aW9uIEkNCnN1Z2dlc3RlZCBhYm92ZSkNCg0KPiArICAgICAgICAgICAgICAgICAgICAgb3B0cy5w YXNzX2ZkcyA9IHRydWU7DQo+ICsgICAgICAgICAgICAgfQ0KPiArICAgICB9IHdoaWxlIChuYW1l ICE9IC0xKTsNCg0KTml0OiBleHRyYSBuZXdsaW5lIGhlcmUgZm9yIGNvbnNpc3RlbmN5IChzZXBh cmF0ZSByZXR1cm4gc3RhdGVtZW50IGZyb20NCmZ1bmN0aW9uIGxvZ2ljKS4NCg0KPiArICAgICBy ZXR1cm4gb3B0czsNCj4gIH0NCj4NCj4gIC8qKg0KPiBAQCAtMTMxNyw2ICsxMzI2LDcgQEAgdm9p ZCBjb25mKHN0cnVjdCBjdHggKmMsIGludCBhcmdjLCBjaGFyICoqYXJndikNCj4gICAgICAgICAg ICAgICB7ImNvbmYtcGF0aCIsICAgcmVxdWlyZWRfYXJndW1lbnQsICAgICAgTlVMTCwgICAgICAg ICAgICdjJyB9LA0KPiAgICAgICAgICAgICAgIHsiY2hyb290LWZhbGxiYWNrIiwgbm9fYXJndW1l bnQsICAgICAgICBOVUxMLCAgICAgICAgICAgMzIgfSwNCj4gICAgICAgICAgICAgICB7Im5vLXBp ZG5zIiwgICAgbm9fYXJndW1lbnQsICAgICAgICAgICAgTlVMTCwgICAgICAgICAgIDMzIH0sDQo+ ICsgICAgICAgICAgICAgeyJwYXNzLWZkcyIsICAgIHJlcXVpcmVkX2FyZ3VtZW50LCAgICAgIE5V TEwsICAgICAgICAgICAzNCB9LA0KPiAgICAgICAgICAgICAgIHsgMCB9LA0KPiAgICAgICB9Ow0K PiAgICAgICBjb25zdCBjaGFyICpvcHRzdHJpbmcgPSAiK2RxZmVsOmhzOmM6RjpJOnA6UDptOmE6 bjpNOmc6aTpvOkQ6UzpIOjQ2MXQ6dTpUOlU6IjsNCj4gQEAgLTE1NjcsNiArMTU3NywxMSBAQCB2 b2lkIGNvbmYoc3RydWN0IGN0eCAqYywgaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KPg0KPiAgICAg ICAgICAgICAgICAgICAgICAgYy0+bm9fcGlkbnMgPSB0cnVlOw0KPiAgICAgICAgICAgICAgICAg ICAgICAgYnJlYWs7DQo+ICsgICAgICAgICAgICAgY2FzZSAzNDoNCj4gKyAgICAgICAgICAgICAg ICAgICAgIC8qIC0tcGFzcy1mZHMgd2FzIHBhcnNlZCBlYXJseSBhbmQgYy0+cGFzdGFfcGFzc19m ZHMgc2V0IGluIG1haW4oKSAqLw0KDQpJdCdzIG5vdCBhY3R1YWxseSBzZXQgaW4gbWFpbigpLiAg QnV0IHRoZSByZWxldmFudCBmYWN0IGhlcmUgaXMgc2ltcGx5DQp0aGF0IC0tcGFzcy1mZHMgd2Fz IHBhcnNlZCBlYXJseSwgc28gdGhhdCB3b3VsZCBiZSBlbm91Z2guICBJZiBpdCdzIG5vdA0KZW5v dWdoIGZvciBzb21lIHJlYXNvbiwgeW91IHNob3VsZCB3cmFwIHRoaXMgY29tbWVudCB0byA4MCBj b2x1bW5zLg0KDQo+ICsgICAgICAgICAgICAgICAgICAgICBpZiAoYy0+bW9kZSAhPSBNT0RFX1BB U1RBKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWUoIi0tcGFzcy1mZHMgaXMg Zm9yIHBhc3RhIG1vZGUgb25seSIpOw0KPiArICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ ICAgICAgICAgICAgICAgY2FzZSAnZCc6DQo+ICAgICAgICAgICAgICAgICAgICAgICBjLT5kZWJ1 ZyA9IDE7DQo+ICAgICAgICAgICAgICAgICAgICAgICBjLT5xdWlldCA9IDA7DQo+IEBAIC0xOTI5 LDYgKzE5NDQsOSBAQCB2b2lkIGNvbmYoc3RydWN0IGN0eCAqYywgaW50IGFyZ2MsIGNoYXIgKiph cmd2KQ0KPiAgICAgICBlbHNlIGlmIChvcHRpbmQgIT0gYXJnYykNCj4gICAgICAgICAgICAgICBk aWUoIkV4dHJhIG5vbi1vcHRpb24gYXJndW1lbnQ6ICVzIiwgYXJndltvcHRpbmRdKTsNCj4NCj4g KyAgICAgaWYgKGMtPnBhc3RhX3Bhc3NfZmRzICYmICpuZXRucykNCj4gKyAgICAgICAgICAgICBk aWUoIi0tcGFzcy1mZHMgY2FuIG9ubHkgYmUgdXNlZCB3aGVuIHNwYXduaW5nIGEgY29tbWFuZCIp Ow0KPiArDQo+ICAgICAgIGlmIChjLT5ub19waWRucyAmJiAqbmV0bnMpDQo+ICAgICAgICAgICAg ICAgZGllKCItLW5vLXBpZG5zIGlzIGluY29tcGF0aWJsZSB3aXRoIFBJRCBvciAtLW5ldG5zIik7 DQo+DQo+IGRpZmYgLS1naXQgYS9jb25mLmggYi9jb25mLmgNCj4gaW5kZXggMTliZjliYy4uZTEx NjYxZiAxMDA2NDQNCj4gLS0tIGEvY29uZi5oDQo+ICsrKyBiL2NvbmYuaA0KPiBAQCAtNiw4ICs2 LDEzIEBADQo+ICAjaWZuZGVmIENPTkZfSA0KPiAgI2RlZmluZSBDT05GX0gNCj4NCj4gK3N0cnVj dCBmZF9vcHRzIHsNCj4gKyAgICAgaW50IGZkX3RhcDsNCj4gKyAgICAgYm9vbCBwYXNzX2ZkczsN Cj4gK307DQo+ICsNCg0KVGhpcyBjb3VsZCBnbyBhd2F5LCBpZiB3ZSBwYXNzIHN0cnVjdCBjdHgg dG8gY29uZl9mZHMoKS4NCg0KPiAgZW51bSBwYXNzdF9tb2RlcyBjb25mX21vZGUoaW50IGFyZ2Ms IGNoYXIgKmFyZ3ZbXSk7DQo+IC1pbnQgY29uZl90YXBfZmQoaW50IGFyZ2MsIGNoYXIgKiphcmd2 KTsNCj4gK3N0cnVjdCBmZF9vcHRzIGNvbmZfZmRzKGludCBhcmdjLCBjaGFyICoqYXJndik7DQo+ ICB2b2lkIGNvbmYoc3RydWN0IGN0eCAqYywgaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsNCj4gIHZv aWQgY29uZl9saXN0ZW5faGFuZGxlcihzdHJ1Y3QgY3R4ICpjLCB1aW50MzJfdCBldmVudHMpOw0K PiAgdm9pZCBjb25mX2hhbmRsZXIoc3RydWN0IGN0eCAqYywgdWludDMyX3QgZXZlbnRzKTsNCj4g ZGlmZiAtLWdpdCBhL2lzb2xhdGlvbi5jIGIvaXNvbGF0aW9uLmMNCj4gaW5kZXggYTAwNDc1Zi4u NDEwNWRjMyAxMDA2NDQNCj4gLS0tIGEvaXNvbGF0aW9uLmMNCj4gKysrIGIvaXNvbGF0aW9uLmMN Cj4gQEAgLTI1MCw0NiArMjUwLDY0IEBAIHZvaWQgaXNvbGF0ZV9pbml0aWFsKHZvaWQpDQo+ICB9 DQo+DQo+ICAvKg0KPiAtICogaXNvbGF0ZV9mZHMoKSAtIENsb3NlIGxlYWtlZCBmaWxlcywgYnV0 IG5vdCAtLWZkLCBzdGRpbiwgc3Rkb3V0LCBzdGRlcnINCj4gKyAqIGlzb2xhdGVfZmRzKCkgLSBD bG9zZSBsZWFrZWQgZmlsZXMgaWYgYXBwbGljYWJsZQ0KPiArICogQGM6ICAgICAgICAgICAgICAg RXhlY3V0aW9uIGNvbnRleHQNCj4gICAqIEBhcmdjOiAgICBBcmd1bWVudCBjb3VudA0KPiAtICog QGFyZ3Y6ICAgIENvbW1hbmQgbGluZSBvcHRpb25zLCBhcyB3ZSBuZWVkIHRvIHNraXAgYW55IGZp bGUgZ2l2ZW4gdmlhIC0tZmQNCj4gKyAqIEBhcmd2OiAgICBDb21tYW5kIGxpbmUgb3B0aW9ucw0K PiAgICoNCj4gICAqIFNob3VsZDoNCj4gLSAqICAtIGNsb3NlIGFsbCBvcGVuIGZpbGVzIGV4Y2Vw dCBmb3Igc3RhbmRhcmQgc3RyZWFtcyBhbmQgdGhlIG9uZSBmcm9tIC0tZmQNCj4gKyAqICAtIGNs b3NlIGFsbCBvcGVuIGZpbGVzIGV4Y2VwdCBmb3Igc3RhbmRhcmQgc3RyZWFtcyBhbmQgdGhlIG9u ZSBmcm9tIC0tZmQsDQo+ICsgICAgICB1bmxlc3MgLS1wYXNzLWZkcyBpcyB1c2VkLCBpbiB3aGlj aCBjYXNlIGFsbCBmZHMgYXJlIHByZXNlcnZlZA0KPiAgICogIC0gbW92ZSB0aGUgLS1mZCBkZXNj cmlwdG9yIG91dCBvZiB0aGUgcmFuZ2UgMC0yDQo+IC0gKg0KPiAtICogUmV0dXJuOiBuZXcgZmQg bnVtYmVyIGZvciBkZXNjcmlwdG9yIGZyb20gLS1mZCwgb3IgLTEgaWYgbm90IHNwZWNpZmllZA0K PiArICogIC0gdXBkYXRlIHRoZSBleGVjdXRpb24gY29udGV4dA0KPiAgICovDQo+IC1pbnQgaXNv bGF0ZV9mZHMoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KPiArdm9pZCBpc29sYXRlX2ZkcyhzdHJ1 Y3QgY3R4ICpjLCBpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQo+ICB7DQo+IC0gICAgIGludCBmZCwg Y2xvc2VfZnJvbSA9IFNUREVSUl9GSUxFTk8gKyAxOw0KPiArICAgICBzdHJ1Y3QgZmRfb3B0cyBv cHRzID0gY29uZl9mZHMoYXJnYywgYXJndik7DQo+ICsgICAgIGlmIChvcHRzLmZkX3RhcCA+PSAw ICYmIG9wdHMuZmRfdGFwIDwgMykgew0KPiArICAgICAgICAgICAgIC8qIE1vdmUgdGhlIHRhcCBm ZCB0byBhIHNhZmVyIGxvY2F0aW9uICovDQoNCkRvIHdlIHJlYWxseSBuZWVkIHRvIGRvIHRoaXMg dW5jb25kaXRpb25hbGx5LCBldmVuIGlmIHdlJ3JlIG5vdCBjbG9zaW5nDQpmaWxlIGRlc2NyaXB0 b3JzPyAgSSBkb24ndCBzZWUgYSByZWFzb24uDQoNClRoYXQgaXMsIEkgZ3Vlc3Mgd2UgY291bGQg bWFrZSB0aGlzIG11Y2ggc2ltcGxlciwgbGV0IGNvbmZfZmRzKCkgc2V0DQpjLT5wYXN0YV9wYXNz X2ZkcywgYW5kIHJldHVybiBlYXJseSBoZXJlIGlmIGl0J3Mgc2V0LiAgTm8gbG9naWMgY2hhbmdl cw0KbmVlZGVkIGluIHRoaXMgZnVuY3Rpb24sIGp1c3Qgc29tZXRoaW5nIHRvIGFkYXB0LCBpbiBj YXNlIHlvdSBnbyB0aGUNCndheSBJIHN1Z2dlc3RlZCB3aXRoIGNvbmZfZmRzKCkgc2V0dGluZyBj LT5mZF90YXA6DQoNCj4gKyAgICAgICAgICAgICBpbnQgbmV3X2ZkID0gZmNudGwob3B0cy5mZF90 YXAsIEZfRFVQRkQsIFNUREVSUl9GSUxFTk8gKyAxKTsNCj4NCj4gLSAgICAgZmQgPSBjb25mX3Rh cF9mZChhcmdjLCBhcmd2KTsNCj4gKyAgICAgICAgICAgICBpZiAobmV3X2ZkIDwgMCkNCj4gKyAg ICAgICAgICAgICAgICAgICAgIGRpZV9wZXJyb3IoIkNvdWxkIG5vdCByZWxvY2F0ZSAtLWZkIGRl c2NyaXB0b3IiKTsNCj4NCj4gLSAgICAgaWYgKGZkID49IDApIHsNCj4gLSAgICAgICAgICAgICAv KiBNb3ZlIHRoZSBwYXNzZWQgZmQgdG8gYSBtb3JlIGNvbnZlbmllbnQgbG9jYXRpb24gKi8NCj4g LSAgICAgICAgICAgICBpZiAoZmQgIT0gY2xvc2VfZnJvbSAgICAgICAgICAgICAgICAgICAgJiYN Cg0KLi4udGhpcyB3b3VsZCBuZWVkIHRvIHVzZSBjLT5mZF90YXAsIGFuZC4uLg0KDQo+IC0gICAg ICAgICAgICAgICAgIChkdXAyKGZkLCBjbG9zZV9mcm9tKSAhPSBjbG9zZV9mcm9tIHx8DQo+IC0g ICAgICAgICAgICAgICAgICBjbG9zZShmZCkpKQ0KPiAtICAgICAgICAgICAgICAgICAgICAgZGll X3BlcnJvcigiQ291bGQgbm90IG1vdmUgLS1mZCBkZXNjcmlwdG9yIik7DQo+IC0gICAgICAgICAg ICAgZmQgPSBjbG9zZV9mcm9tKys7DQo+ICsgICAgICAgICAgICAgY2xvc2Uob3B0cy5mZF90YXAp Ow0KPiArICAgICAgICAgICAgIG9wdHMuZmRfdGFwID0gbmV3X2ZkOw0KPiAgICAgICB9DQo+ICsg ICAgIGMtPmZkX3RhcCA9IG9wdHMuZmRfdGFwOw0KDQouLi50aGlzIHdvdWxkIGdvIGF3YXkgYXMg d2VsbC4NCg0KPiArICAgICBjLT5wYXN0YV9wYXNzX2ZkcyA9IG9wdHMucGFzc19mZHM7DQo+ICsN Cj4gKyAgICAgLyogQ2xvc2UgbGVha2VkIGZpbGUgZGVzY3JpcHRvcnMgdW5sZXNzIC0tcGFzcy1m ZHMgaXMgdXNlZCAqLw0KPiArICAgICBpZiAoIW9wdHMucGFzc19mZHMpIHsNCj4gKyAgICAgICAg ICAgICBpbnQgcmMgPSAwOw0KPiArICAgICAgICAgICAgIC8qIEtlZXAgc3RhbmRhcmQgc3RyZWFt cyBhbmQgdGhlIHRhcCBmZCAoaWYgZ2l2ZW4pICovDQo+ICsgICAgICAgICAgICAgaW50IGtlZXAg PSBvcHRzLmZkX3RhcCA+PSBTVERFUlJfRklMRU5PID8gb3B0cy5mZF90YXAgOiBTVERFUlJfRklM RU5POw0KPiArDQo+ICsgICAgICAgICAgICAgaWYgKGtlZXAgPiBTVERFUlJfRklMRU5PICsgMSkg ew0KPiArICAgICAgICAgICAgICAgICAgICAgLyogVGFwIGZkIHdhcyByZWxvY2F0ZWQgdG8gYWJv dmUgc29tZSBvdGhlciBsZWFrZWQgZmQocykqLw0KPiArICAgICAgICAgICAgICAgICAgICAgLyog Q2xvc2UgZmRzIGJldHdlZW4gc3RkZXJyIGFuZCB0aGUgdGFwIGZkICovDQo+ICsgICAgICAgICAg ICAgICAgICAgICBpZiAoY2xvc2VfcmFuZ2UoU1RERVJSX0ZJTEVOTyArIDEsIGtlZXAgLSAxLCBD TE9TRV9SQU5HRV9VTlNIQVJFKSkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmMg PSAtMTsNCj4gKyAgICAgICAgICAgICB9DQo+DQo+IC0gICAgIGlmIChjbG9zZV9yYW5nZShjbG9z ZV9mcm9tLCB+MFUsIENMT1NFX1JBTkdFX1VOU0hBUkUpKSB7DQo+IC0gICAgICAgICAgICAgaWYg KGVycm5vID09IEVOT1NZUyB8fCBlcnJubyA9PSBFSU5WQUwpIHsNCj4gLSAgICAgICAgICAgICAg ICAgICAgIC8qIFRoaXMgcHJvYmFibHkgbWVhbnMgY2xvc2VfcmFuZ2UoKSBvciB0aGUNCj4gLSAg ICAgICAgICAgICAgICAgICAgICAqIENMT1NFX1JBTkdFX1VOU0hBUkUgZmxhZyBpcyBub3Qgc3Vw cG9ydGVkIGJ5IHRoZQ0KPiAtICAgICAgICAgICAgICAgICAgICAgICoga2VybmVsLiAgTm90IG11 Y2ggd2UgY2FuIGRvIGhlcmUgZXhjZXB0IGNhcnJ5IG9uIGFuZA0KPiAtICAgICAgICAgICAgICAg ICAgICAgICogaG9wZSBmb3IgdGhlIGJlc3QuDQo+IC0gICAgICAgICAgICAgICAgICAgICAgKi8N Cj4gLSAgICAgICAgICAgICAgICAgICAgIHdhcm4oDQo+IC0iQ2FuJ3QgdXNlIGNsb3NlX3Jhbmdl KCkgdG8gZW5zdXJlIG5vIGZpbGVzIGxlYWtlZCBieSBwYXJlbnQiKTsNCj4gLSAgICAgICAgICAg ICB9IGVsc2Ugew0KPiAtICAgICAgICAgICAgICAgICAgICAgZGllX3BlcnJvcigiRmFpbGVkIHRv IGNsb3NlIGZpbGVzIGxlYWtlZCBieSBwYXJlbnQiKTsNCj4gKyAgICAgICAgICAgICAvKiBDbG9z ZSBhbGwgb3RoZXIgZmRzICovDQo+ICsgICAgICAgICAgICAgaWYgKGNsb3NlX3JhbmdlKGtlZXAg KyAxLCB+MFUsIENMT1NFX1JBTkdFX1VOU0hBUkUpKQ0KPiArICAgICAgICAgICAgICAgICAgICAg cmMgPSAtMTsNCj4gKw0KPiArICAgICAgICAgICAgIGlmIChyYykgew0KPiArICAgICAgICAgICAg ICAgICAgICAgaWYgKGVycm5vID09IEVOT1NZUyB8fCBlcnJubyA9PSBFSU5WQUwpIHsNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGhpcyBwcm9iYWJseSBtZWFucyBjbG9zZV9y YW5nZSgpIG9yIHRoZQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIENMT1NFX1JB TkdFX1VOU0hBUkUgZmxhZyBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZQ0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAqIGtlcm5lbC4gIE5vdCBtdWNoIHdlIGNhbiBkbyBoZXJlIGV4Y2Vw dCBjYXJyeSBvbiBhbmQNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBob3BlIGZv ciB0aGUgYmVzdC4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8NCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgd2FybigNCj4gKyAgICAgIkNhbid0IHVzZSBjbG9zZV9y YW5nZSgpIHRvIGVuc3VyZSBubyBmaWxlcyBsZWFrZWQgYnkgcGFyZW50Iik7DQo+ICsgICAgICAg ICAgICAgICAgICAgICB9IGVsc2Ugew0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk aWVfcGVycm9yKCJGYWlsZWQgdG8gY2xvc2UgZmlsZXMgbGVha2VkIGJ5IHBhcmVudCIpOw0KPiAr ICAgICAgICAgICAgICAgICAgICAgfQ0KPiAgICAgICAgICAgICAgIH0NCj4gICAgICAgfQ0KPiAt DQo+IC0gICAgIHJldHVybiBmZDsNCj4gIH0NCj4NCj4gIC8qKg0KPiBkaWZmIC0tZ2l0IGEvaXNv bGF0aW9uLmggYi9pc29sYXRpb24uaA0KPiBpbmRleCBlYzQ3MDM4Li5mZThkN2Q1IDEwMDY0NA0K PiAtLS0gYS9pc29sYXRpb24uaA0KPiArKysgYi9pc29sYXRpb24uaA0KPiBAQCAtMTEsNyArMTEs NyBAQA0KPiAgI2luY2x1ZGUgPHVuaXN0ZC5oPg0KPg0KPiAgdm9pZCBpc29sYXRlX2luaXRpYWwo dm9pZCk7DQo+IC1pbnQgaXNvbGF0ZV9mZHMoaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsNCj4gK3Zv aWQgaXNvbGF0ZV9mZHMoc3RydWN0IGN0eCAqYywgaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsNCj4g IHZvaWQgaXNvbGF0ZV91c2VyKGNvbnN0IHN0cnVjdCBjdHggKmMsIHVpZF90IHVpZCwgZ2lkX3Qg Z2lkLCBib29sIHVzZV91c2VybnMsDQo+ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICp1c2Vy bnMpOw0KPiAgaW50IGlzb2xhdGVfcHJlZm9yayhjb25zdCBzdHJ1Y3QgY3R4ICpjKTsNCj4gZGlm ZiAtLWdpdCBhL3Bhc3N0LjEgYi9wYXNzdC4xDQo+IGluZGV4IDBiNzgwZmUuLjU2ZTI0MWYgMTAw NjQ0DQo+IC0tLSBhL3Bhc3N0LjENCj4gKysrIGIvcGFzc3QuMQ0KPiBAQCAtNzY2LDYgKzc2Niwx MSBAQCBvZiBsb2NhbCB0cmFmZmljIGluIHBhc3RhXGZSIGluIHRoZSBcZkJOT1RFU1xmUiBmb3Ig bW9yZSBkZXRhaWxzLg0KPiAgRG8gbm90IGNyZWF0ZSBhIHRhcCBkZXZpY2UgaW4gdGhlIG5hbWVz cGFjZS4gSW4gdGhpcyBtb2RlLCBcZklwYXN0YVxmUiBvbmx5DQo+ICBmb3J3YXJkcyBsb29wYmFj ayB0cmFmZmljIGJldHdlZW4gbmFtZXNwYWNlcy4NCj4NCj4gKy5UUA0KPiArLkJSIFwtXC1wYXNz XC1mZHMNCj4gK1ByZXNlcnZlIGFsbCBvcGVuIGZpbGUgZGVzY3JpcHRvcnMgYW5kIHBhc3MgdGhl bSB0byB0aGUgc3Bhd25lZCBjb21tYW5kLg0KPiArVGhpcyBvcHRpb24gbWF5IG9ubHkgYmUgdXNl ZCB3aGVuIFxmQnBhc3RhXGZSIHNwYXducyBhIGNvbW1hbmQuDQo+ICsNCj4gIC5TSCBFWEFNUExF Uw0KPg0KPiAgLlNTIFxmQnBhc3RhDQo+IGRpZmYgLS1naXQgYS9wYXNzdC5jIGIvcGFzc3QuYw0K PiBpbmRleCA1MDU0NTUxLi5mYTdhZmM1IDEwMDY0NA0KPiAtLS0gYS9wYXNzdC5jDQo+ICsrKyBi L3Bhc3N0LmMNCj4gQEAgLTM0NSw3ICszNDUsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAq KmFyZ3YpDQo+ICAgICAgIGFyY2hfYXZ4Ml9leGVjKGFyZ3YpOw0KPg0KPiAgICAgICBpc29sYXRl X2luaXRpYWwoKTsNCj4gLSAgICAgYy0+ZmRfdGFwID0gaXNvbGF0ZV9mZHMoYXJnYywgYXJndik7 DQo+ICsgICAgIGlzb2xhdGVfZmRzKGMsIGFyZ2MsIGFyZ3YpOw0KPg0KPiAgICAgICBpZiAoKGRl dm51bGxfZmQgPSBvcGVuKCIvZGV2L251bGwiLCBPX1JEV1IgfCBPX0NMT0VYRUMpKSA8IDApDQo+ ICAgICAgICAgICAgICAgZGllX3BlcnJvcigiRmFpbGVkIHRvIG9wZW4gL2Rldi9udWxsIik7DQo+ IGRpZmYgLS1naXQgYS9wYXNzdC5oIGIvcGFzc3QuaA0KPiBpbmRleCBhZmQ4ZTlmLi5iMDY1ZDQx IDEwMDY0NA0KPiAtLS0gYS9wYXNzdC5oDQo+ICsrKyBiL3Bhc3N0LmgNCj4gQEAgLTE5Niw2ICsx OTYsNyBAQCBzdHJ1Y3QgaXA2X2N0eCB7DQo+ICAgKiBAcGFzdGFfaWZpOiAgICAgICAgICAgICAg IEluZGV4IG9mIG5hbWVzcGFjZSBpbnRlcmZhY2UgZm9yIHBhc3RhDQo+ICAgKiBAcGFzdGFfY29u Zl9uczogICBDb25maWd1cmUgbmFtZXNwYWNlIGFmdGVyIGNyZWF0aW5nIGl0DQo+ICAgKiBAbm9f cGlkbnM6ICAgICAgICAgICAgICAgIERvbid0IGNyZWF0ZSBhIG5ldyBQSUQgbmFtZXNwYWNlIGZv ciBzcGF3bmVkIGNvbW1hbmQNCj4gKyAqIEBwYXN0YV9wYXNzX2ZkczogIERvIG5vdCBjbG9zZSBs ZWFrZWQgZmlsZSBkZXNjcmlwdG9ycw0KDQpEb2VzIGl0IHJlYWxseSBuZWVkIHRvIGhhdmUgJ3Bh c3RhJyBpbiB0aGUgbmFtZT8gIFN1cmUsIGl0J3MNCnBhc3RhLW9ubHksIGJ1dCB0aGlzIGlzIGFs cmVhZHkgZG9jdW1lbnRlZCBpbiBtYW4gcGFnZSwgdXNhZ2UsIGFuZA0KY29uZigpLCBzbyB3ZSBj b3VsZCBwcm9iYWJseSBzYXZlIHNvbWUgdHlwaW5nIGJ5IGNhbGxpbmcgaXQgJ3Bhc3NfZmRzJy4N Cg0KPiAgICogQGZ3ZDogICAgICAgICAgICAgRm9yd2FyZGluZyB0YWJsZXMNCj4gICAqIEBmd2Rf cGVuZGluZzogICAgIFBlbmRpbmcgZm9yd2FyZCB0YWJsZXMNCj4gICAqIEBub190Y3A6ICAgICAg ICAgIERpc2FibGUgVENQIG9wZXJhdGlvbg0KPiBAQCAtMjgwLDYgKzI4MSw3IEBAIHN0cnVjdCBj dHggew0KPiAgICAgICB1bnNpZ25lZCBpbnQgcGFzdGFfaWZpOw0KPiAgICAgICBpbnQgcGFzdGFf Y29uZl9uczsNCj4gICAgICAgYm9vbCBub19waWRuczsNCj4gKyAgICAgYm9vbCBwYXN0YV9wYXNz X2ZkczsNCj4NCj4gICAgICAgc3RydWN0IGZ3ZF90YWJsZSAqZndkW1BJRl9OVU1fVFlQRVNdOw0K PiAgICAgICBzdHJ1Y3QgZndkX3RhYmxlICpmd2RfcGVuZGluZ1tQSUZfTlVNX1RZUEVTXTsNCg0K LS0NClN0ZWZhbm8NCg0KDQo= --_000_DM3PR11MB8713EDD4284AEF9064BF39ABDA612DM3PR11MB8713namp_ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgc3R5bGU9 ImRpc3BsYXk6bm9uZTsiPiBQIHttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowO30gPC9zdHls ZT4NCjwvaGVhZD4NCjxib2R5IGRpcj0ibHRyIj4NCjxkaXYgY2xhc3M9ImVsZW1lbnRUb1Byb29m IiBzdHlsZT0iZm9udC1mYW1pbHk6IEFwdG9zLCBBcHRvc19FbWJlZGRlZEZvbnQsIEFwdG9zX01T Rm9udFNlcnZpY2UsIENhbGlicmksIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAx MnB0OyBjb2xvcjogcmdiKDAsIDAsIDApOyI+DQpIb3dkeSBTdGVmYW5vLCZuYnNwOzwvZGl2Pg0K PGRpdiBjbGFzcz0iZWxlbWVudFRvUHJvb2YiIHN0eWxlPSJmb250LWZhbWlseTogQXB0b3MsIEFw dG9zX0VtYmVkZGVkRm9udCwgQXB0b3NfTVNGb250U2VydmljZSwgQ2FsaWJyaSwgSGVsdmV0aWNh LCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDEycHQ7IGNvbG9yOiByZ2IoMCwgMCwgMCk7Ij4NCjxi cj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iZWxlbWVudFRvUHJvb2YiIHN0eWxlPSJmb250LWZhbWls eTogQXB0b3MsIEFwdG9zX0VtYmVkZGVkRm9udCwgQXB0b3NfTVNGb250U2VydmljZSwgQ2FsaWJy aSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDEycHQ7IGNvbG9yOiByZ2IoMCwg MCwgMCk7Ij4NClRoYW5rIHlvdSBmb3IgZXhwbGFpbmluZyBhYm91dCB0aGUgd2hpdGVzcGFjZSBh bmQgdGhlIGdldG9wdCBsb25nIGluZGV4LiZuYnNwOzwvZGl2Pg0KPGRpdiBjbGFzcz0iZWxlbWVu dFRvUHJvb2YiIHN0eWxlPSJmb250LWZhbWlseTogQXB0b3MsIEFwdG9zX0VtYmVkZGVkRm9udCwg QXB0b3NfTVNGb250U2VydmljZSwgQ2FsaWJyaSwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250 LXNpemU6IDEycHQ7IGNvbG9yOiByZ2IoMCwgMCwgMCk7Ij4NCjxicj4NCjwvZGl2Pg0KPGRpdiBj bGFzcz0iZWxlbWVudFRvUHJvb2YiIHN0eWxlPSJmb250LWZhbWlseTogQXB0b3MsIEFwdG9zX0Vt YmVkZGVkRm9udCwgQXB0b3NfTVNGb250U2VydmljZSwgQ2FsaWJyaSwgSGVsdmV0aWNhLCBzYW5z LXNlcmlmOyBmb250LXNpemU6IDEycHQ7IGNvbG9yOiByZ2IoMCwgMCwgMCk7Ij4NClBhc3Npbmcg PGNvZGU+Y3R4PC9jb2RlPiZuYnNwO2RpcmVjdGx5IHRvIGNvbmZfZmRzIHNlZW1zIGZpbmUuIEkg Y2hvc2UgdG8gcmV0dXJuIGEgc3RydWN0IGJlY2F1c2UgSSB3YW50ZWQgdG8gYXZvaWQgc2V0dGlu Zw0KPGNvZGU+Yy0mZ3Q7ZmRfdGFwPC9jb2RlPiZuYnNwO2luaXRpYWxseSB0byB0aGUgdXNlci1w YXNzZWQgdmFsdWUsIGJlY2F1c2UgZG9pbmcgc28gb2JmdXNjYXRlcyB0aGUgZmFjdCB0aGF0IHRo ZSB1c2VyLXBhc3NlZCB2YWx1ZSBtYXkgbm90IGFjdHVhbGx5IGJlIHVzZWQuIEluIHJldHJvc3Bl Y3QsIHRoZSBjb25mdXNpb24gd291bGQgYWxzbyBiZSBwcmV2ZW50ZWQgYnkgYSBjb21tZW50LCBz byBJIHdpbGwganVzdCBkbyB0aGF0IGluc3RlYWQuJm5ic3A7PC9kaXY+DQo8ZGl2IGNsYXNzPSJl bGVtZW50VG9Qcm9vZiIgc3R5bGU9ImZvbnQtZmFtaWx5OiBBcHRvcywgQXB0b3NfRW1iZWRkZWRG b250LCBBcHRvc19NU0ZvbnRTZXJ2aWNlLCBDYWxpYnJpLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7 IGZvbnQtc2l6ZTogMTJwdDsgY29sb3I6IHJnYigwLCAwLCAwKTsiPg0KPGJyPg0KPC9kaXY+DQo8 ZGl2IGNsYXNzPSJlbGVtZW50VG9Qcm9vZiIgc3R5bGU9ImZvbnQtZmFtaWx5OiBBcHRvcywgQXB0 b3NfRW1iZWRkZWRGb250LCBBcHRvc19NU0ZvbnRTZXJ2aWNlLCBDYWxpYnJpLCBIZWx2ZXRpY2Es IHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTJwdDsgY29sb3I6IHJnYigwLCAwLCAwKTsiPg0KSSB3 YW50ZWQgdG8gdW5jb25kaXRpb25hbGx5IHJlbG9jYXRlIHRoZSA8Y29kZT5mZF90YXA8L2NvZGU+ IGJlY2F1c2UgSSBpbWFnaW5lZCB0aGUgZm9sbG93aW5nIGJ1ZzogaW1hZ2luZSBpZiBzb21lb25l IGlzIHVzaW5nIHBhc3RhLCBwYXNzZXMgdGhlIHRhcCBvbiBzdGRpbiwgZG9lcyBOT1QgcmVxdWVz dCB0byBwYXNzIGZkcyAoPGNvZGU+dGFwIHwgcGFzdGEgLWZkIDA8L2NvZGU+PGNvZGUgc3R5bGU9 ImZvbnQtZmFtaWx5OiBBcHRvcywgQXB0b3NfRW1iZWRkZWRGb250LCBBcHRvc19NU0ZvbnRTZXJ2 aWNlLCBDYWxpYnJpLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7Ij4pLA0KIGFuZCB3ZSBjaG9vc2Ug bm90IHRvIHJlbG9jYXRlIHRoZSB0YXAuPC9jb2RlPiZuYnNwO1NpbmNlIHN0ZGluIGlzIG5ldmVy IGNsb3NlZCwgdGhlIHRhcCB3b3VsZCBiZSBwYXNzZWQgdG8gdGhlIHNwYXduZWQgY29tbWFuZCBv biBzdGRpbiwgd2hpY2ggd291bGQgbW9zdCBsaWtlbHkgY2F1c2luZyB0aGUgc3Bhd25lZCBjb21t YW5kIHRvIGhhdmUgdW5leHBlY3RlZCBiZWhhdmlvci4gQWRkaXRpb25hbGx5LCB0aGlzIGNob2lj ZSBpcyBlc3BlY2lhbGx5IHdlaXJkDQogY29uc2lkZXJpbmcgdGhhdCB0aGUgaHlwb3RoZXRpY2Fs IHVzZXIgZGlkIG5vdCBldmVuIHJlcXVlc3QgdGhlIHRhcCB0byBiZSBwYXNzZWQgdG8gdGhlIHNw YXduZWQgY29tbWFuZCBhdCBhbGwuIEkgd291bGQgYWxzbyBsaWtlIHRvIHBvaW50IG91dCB0aGF0 IHRoZSBjb2RlDQo8aT5hbHJlYWR5PC9pPiZuYnNwO3VuY29uZGl0aW9uYWxseSByZWxvY2F0ZXMg dGhlIHRhcDogSSBhc3N1bWUgdGhhdCBzb21lb25lIG11c3QgaGF2ZSBmb3Jlc2VlbiBzb21lIG90 aGVyIGJ1ZyAocGVyaGFwcyByZWxhdGVkIHRvIHN0ZGluIGluIHBhc3N0IG1vZGU/KSBhbmQgSSBk b24ndCB3YW50IHRvIGNhdXNlIGEgcmVncmVzc2lvbiBpbiBhbm90aGVyIHdvcmtmbG93IHRoYXQg SSBkb24ndCBrbm93IGFueXRoaW5nIGFib3V0LiZuYnNwOyZuYnNwOzwvZGl2Pg0KPGRpdiBjbGFz cz0iZWxlbWVudFRvUHJvb2YiIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1ib3R0b206 IDBweDsgZm9udC1mYW1pbHk6IEFwdG9zLCBBcHRvc19FbWJlZGRlZEZvbnQsIEFwdG9zX01TRm9u dFNlcnZpY2UsIENhbGlicmksIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMnB0 OyBjb2xvcjogcmdiKDAsIDAsIDApOyI+DQo8YnI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9ImVsZW1l bnRUb1Byb29mIiBzdHlsZT0iZm9udC1mYW1pbHk6IEFwdG9zLCBBcHRvc19FbWJlZGRlZEZvbnQs IEFwdG9zX01TRm9udFNlcnZpY2UsIENhbGlicmksIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgZm9u dC1zaXplOiAxMnB0OyBjb2xvcjogcmdiKDAsIDAsIDApOyI+DQpSaWNoYXJkPC9kaXY+DQo8ZGl2 IGNsYXNzPSJlbGVtZW50VG9Qcm9vZiIgc3R5bGU9ImZvbnQtZmFtaWx5OiBBcHRvcywgQXB0b3Nf RW1iZWRkZWRGb250LCBBcHRvc19NU0ZvbnRTZXJ2aWNlLCBDYWxpYnJpLCBIZWx2ZXRpY2EsIHNh bnMtc2VyaWY7IGZvbnQtc2l6ZTogMTJwdDsgY29sb3I6IHJnYigwLCAwLCAwKTsiPg0KPGJyPg0K PC9kaXY+DQo8ZGl2IGlkPSJhcHBlbmRvbnNlbmQiPjwvZGl2Pg0KPGhyIHN0eWxlPSJkaXNwbGF5 OmlubGluZS1ibG9jazt3aWR0aDo5OCUiIHRhYmluZGV4PSItMSI+DQo8ZGl2IGlkPSJkaXZScGx5 RndkTXNnIiBkaXI9Imx0ciI+PGZvbnQgZmFjZT0iQ2FsaWJyaSwgc2Fucy1zZXJpZiIgc3R5bGU9 ImZvbnQtc2l6ZToxMXB0IiBjb2xvcj0iIzAwMDAwMCI+PGI+RnJvbTo8L2I+IFN0ZWZhbm8gQnJp dmlvICZsdDtzYnJpdmlvQHJlZGhhdC5jb20mZ3Q7PGJyPg0KPGI+U2VudDo8L2I+IFN1bmRheSwg T2N0b2JlciAyNSwgMjAyNiA3OjAxIEFNPGJyPg0KPGI+VG86PC9iPiBMYXdyZW5jZSwgUmljaGFy ZCBFICZsdDtybGF3cmVuY2VAdGFtdS5lZHUmZ3Q7PGJyPg0KPGI+Q2M6PC9iPiBwYXNzdC1kZXZA cGFzc3QudG9wICZsdDtwYXNzdC1kZXZAcGFzc3QudG9wJmd0Ozxicj4NCjxiPlN1YmplY3Q6PC9i PiBSZTogW1BBVENIIHYyXSBwYXN0YTogQWRkIC0tcGFzcy1mZHMgb3B0aW9uIHRvIHNraXAgY2xv c2luZyBmaWxlIGRlc2NyaXB0b3JzPC9mb250Pg0KPGRpdj4mbmJzcDs8L2Rpdj4NCjwvZGl2Pg0K PGRpdj4NCjxkaXYgc3R5bGU9ImRpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7IGRpc3BsYXk6bm9uZTsg dmlzaWJpbGl0eTpoaWRkZW47IGZvbnQtc2l6ZToxcHg7IGNvbG9yOiNmZmZmZmY7IGxpbmUtaGVp Z2h0OjFweDsgbWF4LWhlaWdodDowcHg7IG9wYWNpdHk6MDsgb3ZlcmZsb3c6aGlkZGVuIj4NClJp Y2hhcmQsIHRoYW5rcyBmb3IgdGhlIG5ldyB2ZXJzaW9uIGFuZCBmb3IgeW91ciBwYXRpZW5jZSEg VGhlIGxvZ2ljIGxvb2tzIGdvb2QgdG8gbWUsIGJ1dCBJIHRoaW5rIHdlIGNhbiBtYWtlIHRoZSBp bXBsZW1lbnRhdGlvbiBhIGJpdCBzaW1wbGVyLiBBIGZldyBjb21tZW50cyBpbmxpbmU6IE9uIFRo dSwgMjIgT2N0IDIwMjYgMTI64oCKMDg64oCKMjMgLTA1MDAgUmljaGFyZCBMYXdyZW5jZSAmbHQ7 cmxhd3JlbmNlQOKAinRhbXUu4oCKZWR1Jmd0OzwvZGl2Pg0KPGRpdiBzdHlsZT0iZGlzcGxheTpu b25lIWltcG9ydGFudDsgZGlzcGxheTpub25lOyB2aXNpYmlsaXR5OmhpZGRlbjsgZm9udC1zaXpl OjFweDsgY29sb3I6I2ZmZmZmZjsgbGluZS1oZWlnaHQ6MXB4OyBtYXgtaGVpZ2h0OjBweDsgb3Bh Y2l0eTowOyBvdmVyZmxvdzpoaWRkZW4iPg0KWmpRY21RUllGcGZwdEJhbm5lclN0YXJ0PC9kaXY+ DQo8ZGl2IGRpcj0ibHRyIiBsYW5nPSJlbiIgaWQ9InhfcGZwdEJhbm5lcjduNTJxaHkiIHN0eWxl PSJkaXNwbGF5OmJsb2NrIWltcG9ydGFudDsgdGV4dC1hbGlnbjpsZWZ0IWltcG9ydGFudDsgbWFy Z2luOjAgMCAxMHB4IDAhaW1wb3J0YW50OyBwYWRkaW5nOjdweCAxNnB4IDhweCAxNnB4IWltcG9y dGFudDsgYm9yZGVyLXJhZGl1czo0cHghaW1wb3J0YW50OyBtaW4td2lkdGg6MjAwcHghaW1wb3J0 YW50OyBiYWNrZ3JvdW5kLWNvbG9yOiNkMGQ4ZGMhaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9y OiNkMGQ4ZGM7IGJvcmRlci10b3A6NHB4IHNvbGlkICM5MGE0YWUhaW1wb3J0YW50OyBib3JkZXIt dG9wOjRweCBzb2xpZCAjOTBhNGFlIj4NCjxkaXYgaWQ9InhfcGZwdEJhbm5lcjduNTJxaHkiIHN0 eWxlPSJmbG9hdDpsZWZ0IWltcG9ydGFudDsgZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7IG1hcmdp bjoxcHggMCAxcHggMCFpbXBvcnRhbnQ7IG1heC13aWR0aDo2MDBweCFpbXBvcnRhbnQiPg0KPGRp diBpZD0ieF9wZnB0QmFubmVyN241MnFoeSIgc3R5bGU9ImRpc3BsYXk6YmxvY2shaW1wb3J0YW50 OyB2aXNpYmlsaXR5OnZpc2libGUhaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9yOiNkMGQ4ZGMh aW1wb3J0YW50OyBjb2xvcjojMDAwMDAwIWltcG9ydGFudDsgY29sb3I6IzAwMDAwMDsgZm9udC1m YW1pbHk6J0FyaWFsJyxzYW5zLXNlcmlmIWltcG9ydGFudDsgZm9udC1mYW1pbHk6J0FyaWFsJyxz YW5zLXNlcmlmOyBmb250LXdlaWdodDpib2xkIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6Ym9sZDsg Zm9udC1zaXplOjE0cHghaW1wb3J0YW50OyBsaW5lLWhlaWdodDoxLjI5IWltcG9ydGFudDsgbGlu ZS1oZWlnaHQ6MS4yOSI+DQpUaGlzIE1lc3NhZ2UgSXMgRnJvbSBhbiBFeHRlcm5hbCBTZW5kZXIg PC9kaXY+DQo8ZGl2IGlkPSJ4X3BmcHRCYW5uZXI3bjUycWh5IiBzdHlsZT0iZGlzcGxheTpibG9j ayFpbXBvcnRhbnQ7IHZpc2liaWxpdHk6dmlzaWJsZSFpbXBvcnRhbnQ7IGJhY2tncm91bmQtY29s b3I6I2QwZDhkYyFpbXBvcnRhbnQ7IGNvbG9yOiMwMDAwMDAhaW1wb3J0YW50OyBjb2xvcjojMDAw MDAwOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtZmFtaWx5OidBcmlhbCcsc2Fucy1zZXJpZiFp bXBvcnRhbnQ7IGZvbnQtZmFtaWx5OidBcmlhbCcsc2Fucy1zZXJpZjsgZm9udC1zaXplOjEycHgh aW1wb3J0YW50OyBsaW5lLWhlaWdodDoxLjUhaW1wb3J0YW50OyBsaW5lLWhlaWdodDoxLjU7IG1h cmdpbi10b3A6MnB4IWltcG9ydGFudCI+DQpUaGlzIG1lc3NhZ2UgY2FtZSBmcm9tIG91dHNpZGUg eW91ciBvcmdhbml6YXRpb24uIDwvZGl2Pg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJjbGVhcjpib3Ro IWltcG9ydGFudDsgZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7IHZpc2liaWxpdHk6aGlkZGVuIWlt cG9ydGFudDsgbGluZS1oZWlnaHQ6MCFpbXBvcnRhbnQ7IGZvbnQtc2l6ZTowLjAxcHghaW1wb3J0 YW50OyBoZWlnaHQ6MHB4Ij4NCiZuYnNwOzwvZGl2Pg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJkaXNw bGF5Om5vbmUhaW1wb3J0YW50OyBkaXNwbGF5Om5vbmU7IHZpc2liaWxpdHk6aGlkZGVuOyBmb250 LXNpemU6MXB4OyBjb2xvcjojZmZmZmZmOyBsaW5lLWhlaWdodDoxcHg7IG1heC1oZWlnaHQ6MHB4 OyBvcGFjaXR5OjA7IG92ZXJmbG93OmhpZGRlbiI+DQpaalFjbVFSWUZwZnB0QmFubmVyRW5kPC9k aXY+DQo8c3R5bGU+DQo8IS0tDQojeF9wZnB0QmFubmVyN241MnFoeQ0KCXtkaXNwbGF5OmJsb2Nr IWltcG9ydGFudDsNCgl2aXNpYmlsaXR5OnZpc2libGUhaW1wb3J0YW50Ow0KCW9wYWNpdHk6MSFp bXBvcnRhbnQ7DQoJYmFja2dyb3VuZC1jb2xvcjojZDBkOGRjIWltcG9ydGFudDsNCgltYXgtd2lk dGg6bm9uZSFpbXBvcnRhbnQ7DQoJbWF4LWhlaWdodDpub25lIWltcG9ydGFudH0NCmh0bWw6cm9v dCwgaHRtbDpyb290ID4gZGl2DQoJe2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50Ow0KCXZpc2liaWxp dHk6dmlzaWJsZSFpbXBvcnRhbnQ7DQoJb3BhY2l0eToxIWltcG9ydGFudH0NCi0tPg0KPC9zdHls ZT4NCjxwcmUgc3R5bGU9ImZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7IGZvbnQtc2l6ZToxMDAlOyB3 aGl0ZS1zcGFjZTpwcmUtd3JhcDsgd29yZC13cmFwOmJyZWFrLXdvcmQiPlJpY2hhcmQsIHRoYW5r cyBmb3IgdGhlIG5ldyB2ZXJzaW9uIGFuZCBmb3IgeW91ciBwYXRpZW5jZSENCg0KVGhlIGxvZ2lj IGxvb2tzIGdvb2QgdG8gbWUsIGJ1dCBJIHRoaW5rIHdlIGNhbiBtYWtlIHRoZSBpbXBsZW1lbnRh dGlvbg0KYSBiaXQgc2ltcGxlci4gIEEgZmV3IGNvbW1lbnRzIGlubGluZToNCg0KT24gVGh1LCAy MiBPY3QgMjAyNiAxMjowODoyMyAtMDUwMA0KUmljaGFyZCBMYXdyZW5jZSAmbHQ7cmxhd3JlbmNl QHRhbXUuZWR1Jmd0OyB3cm90ZToNCg0KJmd0OyBXaGVuIHBhc3RhIHNwYXducyBhIGNvbW1hbmQg KGBwYXN0YSBbb3B0aW9uc10gLS0gW2NvbW1hbmRdYCksIGFsbCBvcGVuIGZpbGUNCiZndDsgZGVz Y3JpcHRvcnMgaW5oZXJpdGVkIGZyb20gdGhlIHBhcmVudCBwcm9jZXNzIGV4Y2VwdCBzdGFuZGFy ZCBzdHJlYW1zICgwLTIpDQomZ3Q7IGFuZCB0aGUgdGFwIGRlc2NyaXB0b3IgKGAtLWZkYCkgYXJl IG5vcm1hbGx5IGNsb3NlZCBieSBgaXNvbGF0ZV9mZHMoKWAuDQomZ3Q7IA0KJmd0OyBIb3dldmVy LCB3aGVuIHBhc3RhIGlzIHVzZWQgZm9yIHRlc3RpbmcsIGRldmVsb3BtZW50LCBvciBsYXVuY2hp bmcgdG9vbHMgbGlrZQ0KJmd0OyBCdWJibGV3cmFwIChgYndyYXBgKSwgdGhlIHNwYXduZWQgY29t bWFuZCBtYXkgcmVxdWlyZSBmaWxlIGRlc2NyaXB0b3JzDQomZ3Q7IHBhc3NlZCBkaXJlY3RseSBm cm9tIHRoZSBwYXJlbnQgcHJvY2Vzcy4gSW4gdGhpcyBjYXNlLCBjbG9zaW5nIGluaGVyaXRlZCBm aWxlDQomZ3Q7IGRlc2NyaXB0b3JzIGJyZWFrcyBleHBlY3RlZCBiZWhhdmlvci4NCiZndDsgDQom Z3Q7IEFkZCBhIGJvb2xlYW4gYC0tcGFzcy1mZHNgIGZsYWcgZm9yIHBhc3RhIG1vZGUgdGhhdCBz a2lwcyB0aGUgYGNsb3NlX3JhbmdlKClgDQomZ3Q7IGNsZWFudXAgc3RlcCBpbiBgaXNvbGF0ZV9m ZHMoKWAsIGxlYXZpbmcgYWxsIG9wZW4gZmlsZSBkZXNjcmlwdG9ycyBpbnRhY3QNCiZndDsgZm9y IHRoZSBjaGlsZCBjb21tYW5kLg0KJmd0OyANCiZndDsgU3VtbWFyeSBvZiBjaGFuZ2VzOg0KJmd0 OyANCiZndDsgLSBJbnRyb2R1Y2UgYHN0cnVjdCBmZF9vcHRzYCBhbmQgdXBkYXRlIGBjb25mX3Rh cF9mZCgpYCB0byBgY29uZl9mZHMoKWAsDQomZ3Q7ICAgYWxsb3dpbmcgZWFybHkgcGFyc2luZyBv ZiBib3RoIGAtRmAvYC0tZmRgIGFuZCBgLS1wYXNzLWZkc2AgYmVmb3JlIG1haW4NCiZndDsgICBv cHRpb24gcHJvY2Vzc2luZy4NCiZndDsgLSBVcGRhdGUgYGlzb2xhdGVfZmRzKClgIHRvIGNoZWNr IGBvcHRzLnBhc3NfZmRzYDogaWYgc2V0LCBza2lwIGNhbGxpbmcNCiZndDsgICBgY2xvc2VfcmFu Z2UoKWAgd2hpbGUgc3RpbGwgcmVsb2NhdGluZyB0aGUgdGFwIGZkIG91dCBvZiBzdGFuZGFyZCBz dHJlYW0NCiZndDsgICByYW5nZSAoMC0yKSBpZiBuZWVkZWQuDQomZ3Q7IC0gRW5mb3JjZSB2YWxp ZGF0aW9uIGluIGBjb25mKClgIGVuc3VyaW5nIGAtLXBhc3MtZmRzYCBpcyByZXN0cmljdGVkIHRv IHBhc3RhDQomZ3Q7ICAgbW9kZSB3aGVuIHNwYXduaW5nIGEgY29tbWFuZCAoaW5jb21wYXRpYmxl IHdpdGggYXR0YWNoaW5nIHRvIGFuDQomZ3Q7ICAgZXhpc3RpbmcgbmV0bnMpLg0KJmd0OyAtIFVw ZGF0ZSBtYW4gcGFnZSBhbmQgdXNhZ2UgaGVscCBvdXRwdXQuDQomZ3Q7IA0KJmd0OyBMaW5rOiA8 YSBocmVmPSJodHRwczovL3VybGRlZmVuc2UuY29tL3YzL19faHR0cHM6Ly9idWdzLnBhc3N0LnRv cC9zaG93X2J1Zy5jZ2k/aWQ9MjA0X187ISFLd05WbnFSdiFHT1BvZHN0SnExMGRfWExQdHBRS3Vq a2JJRlZCUFlJbXRwOUpfV3lPbENJbTVLNXdPa2lWTDQ1MjNSLVlFOEpRX0ZPOXZRX1ZsSzMwcFlC TiQiPmh0dHBzOi8vdXJsZGVmZW5zZS5jb20vdjMvX19odHRwczovL2J1Z3MucGFzc3QudG9wL3No b3dfYnVnLmNnaT9pZD0yMDRfXzshIUt3TlZucVJ2IUdPUG9kc3RKcTEwZF9YTFB0cFFLdWprYklG VkJQWUltdHA5Sl9XeU9sQ0ltNUs1d09raVZMNDUyM1ItWUU4SlFfRk85dlFfVmxLMzBwWUJOJDwv YT4NCiZndDsgU2lnbmVkLW9mZi1ieTogUmljaGFyZCBMYXdyZW5jZSAmbHQ7cmxhd3JlbmNlQHRh bXUuZWR1Jmd0Ow0KJmd0OyAtLS0NCiZndDsgIGNvbmYuYyAgICAgIHwgNTggKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0NCiZndDsgIGNvbmYuaCAgICAgIHwgIDcgKysr Ky0NCiZndDsgIGlzb2xhdGlvbi5jIHwgNzQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiZndDsgIGlzb2xhdGlvbi5oIHwgIDIgKy0NCiZndDsg IHBhc3N0LjEgICAgIHwgIDUgKysrKw0KJmd0OyAgcGFzc3QuYyAgICAgfCAgMiArLQ0KJmd0OyAg cGFzc3QuaCAgICAgfCAgMiArKw0KJmd0OyAgNyBmaWxlcyBjaGFuZ2VkLCA5OSBpbnNlcnRpb25z KCspLCA1MSBkZWxldGlvbnMoLSkNCiZndDsgDQomZ3Q7IGRpZmYgLS1naXQgYS9jb25mLmMgYi9j b25mLmMNCiZndDsgaW5kZXggMTQ5YTRjNy4uNDQ3OTQ2NyAxMDA2NDQNCiZndDsgLS0tIGEvY29u Zi5jDQomZ3Q7ICsrKyBiL2NvbmYuYw0KJmd0OyBAQCAtNzUwLDcgKzc1MCw5IEBAIHBhc3RhX29w dHM6DQomZ3Q7ICAJCSZxdW90OwkJCURvbid0IGNvcHkgYWxsIGFkZHJlc3NlcyB0byBuYW1lc3Bh Y2VcbiZxdW90Ow0KJmd0OyAgCQkmcXVvdDsgIC0tbnMtbWFjLWFkZHIgQUREUglTZXQgTUFDIGFk ZHJlc3Mgb24gdGFwIGludGVyZmFjZVxuJnF1b3Q7DQomZ3Q7ICAJCSZxdW90OyAgLS1uby1zcGxp Y2UJCURpc2FibGUgaW5ib3VuZCBzb2NrZXQgc3BsaWNpbmdcbiZxdW90Ow0KJmd0OyAtCQkmcXVv dDsgIC0tc3BsaWNlLW9ubHkJT25seSBlbmFibGUgbG9vcGJhY2sgZm9yd2FyZGluZ1xuJnF1b3Q7 KTsNCiZndDsgKwkJJnF1b3Q7ICAtLXNwbGljZS1vbmx5CU9ubHkgZW5hYmxlIGxvb3BiYWNrIGZv cndhcmRpbmdcbiZxdW90Ow0KJmd0OyArCQkmcXVvdDsgIC0tcGFzcy1mZHMJCVByZXNlcnZlIG9w ZW4gZmlsZSBkZXNjcmlwdG9ycyBhbmRcbiZxdW90Ow0KJmd0OyArCQkmcXVvdDsJCQlwYXNzIHRo ZW0gdG8gdGhlIHNwYXduZWQgY29tbWFuZFxuJnF1b3Q7KTsNCg0KVGhlIHVzYWdlIG1lc3NhZ2Ug aXMgYWxyZWFkeSB2ZXJ5IGxvbmcsIGFuZCBpdCdzIG5vdCBtZWFudCBhcyBhDQpjb21wcmVoZW5z aXZlIGRvY3VtZW50YXRpb24sIGp1c3QgYSBxdWljayByZWZlcmVuY2UsIHNvIEkgZ3Vlc3Mgd2UN CmNvdWxkIHNpbXBseSBzYXkgJnF1b3Q7UHJlc2VydmUgb3BlbiBmaWxlIGRlc2NyaXB0b3JzJnF1 b3Q7IGhlcmUsIGFuZCBzYXZlIG9uZQ0KbGluZSBvZiBvdXRwdXQuDQoNCiZndDsgIA0KJmd0OyAg CXBhc3N0X2V4aXQoc3RhdHVzKTsNCiZndDsgIH0NCiZndDsgQEAgLTExMzYsMzYgKzExMzgsNDMg QEAgc3RhdGljIHZvaWQgY29uZl9zb2NrX2xpc3Rlbihjb25zdCBzdHJ1Y3QgY3R4ICpjKQ0KJmd0 OyAgCQlkaWVfcGVycm9yKCZxdW90O0NvdWxkbid0IGFkZCBjb25maWd1cmF0aW9uIHNvY2tldCB0 byBlcG9sbCZxdW90Oyk7DQomZ3Q7ICB9DQomZ3Q7ICANCiZndDsgKw0KJmd0OyArDQomZ3Q7ICsN Cg0KVW5yZWxhdGVkIGJsYW5rIGxpbmVzLg0KDQomZ3Q7ICAvKioNCiZndDsgLSAqIGNvbmZfdGFw X2ZkKCkgLSBSZWFkIHRhcCBmZCBhcyBzdXBwbGllZCBieSAtRiBjb21tYW5kIGxpbmUgb3B0aW9u DQomZ3Q7ICsgKiBjb25mX2ZkcygpIC0gUmVhZCBmZHMgYXMgc3VwcGxpZWQgYnkgLUYvLS1mZCBh bmQgLS1wYXNzLWZkcyBvcHRpb25zDQomZ3Q7ICAgKiBAYXJnYzoJQXJndW1lbnQgY291bnQNCiZn dDsgICAqIEBhcmd2OglDb21tYW5kIGxpbmUgb3B0aW9ucw0KJmd0OyAtICoNCiZndDsgLSAqIFJl dHVybjogZmQgbnVtYmVyIGZyb20gLS1mZCBvcHRpb24sIG9yIC0xIGlmIG5vdCBzdXBwbGllZA0K Jmd0OyArIA0KJmd0OyArICogUmV0dXJuOiBmZF9vcHRzIHsgZmRfdGFwLCBwYXNzX2ZkcyB9DQoN ClJldHVybmluZyBhIHN0cnVjdCB3b3JrcywgYW5kIGl0IG1pZ2h0IGV2ZW4gbG9vayBlbGVnYW50 LCBidXQgaXQncyBub3QNCnNvbWV0aGluZyB3ZSBkbyBmcmVxdWVudGx5IGluIHRoaXMgY29kZWJh c2UsIG9yIG5vdCBhdCBhbGwsIHdpdGggdGhlDQpnZW5lcmFsIHJlYXNvbmluZyBiZWluZyB0aGF0 IHN0cnVjdHMgZXZlbnR1YWxseSBncm93IGFuZCwgaW4NCm5vbi10cml2aWFsIGNhc2VzLCB3ZSBy aXNrIGhhdmluZyBjb3BpZXMgb24gcmV0dXJuIHRoYXQgbWlnaHQgZ3JvdyB3ZWxsDQpiZXlvbmQg d2hhdCB3YXMgaW50ZW5kZWQuICBPbiB0b3Agb2YgdGhhdCwgaWYgeW91IHdhbnQgdG8gc2lnbmFs IGZhaWx1cmUNCmF0IHNvbWUgcG9pbnQsIHlvdSB3b3VsZCBuZWVkIGEgc21hbGwgcmV3b3JrLg0K DQpJdCdzIGFic29sdXRlbHkgZmluZSB0byBkbyB0aGlzIGhlcmUsIGJ1dCBJIHdvdWxkIHN0aWxs IGhhdmUgYQ0Kc2xpZ2h0IHByZWZlcmVuY2UgZm9yIGNvbnNpc3RlbmN5IChtYWtlIGl0IGEgdm9p ZCBpZiBpdCBuZXZlciBmYWlscywNCmFuZCBwYXNzIHRoZSB0d28gYXJndW1lbnRzIGFzIHBvaW50 ZXJzKS4gIEhvd2V2ZXIsIEkgZG9uJ3QgdGhpbmsgd2UNCm5lZWQgdGhpcyBhdCBhbGwuDQoNCllv dSBhcmUgYWxyZWFkeSBwYXNzaW5nIGEgc3RydWN0IGN0eCB0byB0aGUgY2FsbGVyIG5vdywgaXNv bGF0ZV9mZHMoKS4NCkl0IGNvbnRhaW5zIChhbG1vc3QpIHRoZSB3aG9sZSBjb25maWd1cmF0aW9u LiAgVGhpcyBmdW5jdGlvbiByZWFkcw0KY29uZmlndXJhdGlvbi4gIEl0IGNvdWxkIHZlcnkgbmF0 dXJhbGx5IHN0b3JlIGl0IHRoZXJlIGFuZCB5b3UncmUgZG9uZQ0Kd2l0aCBpdDoganVzdCBzZXQg Yy0mZ3Q7ZmRfdGFwIGFuZCBjLSZndDtwYXN0YV9wYXNzX2ZkcyBoZXJlICh3aXRoIGEgbWlub3IN CmNhdmVhdCBhcm91bmQgYy0mZ3Q7ZmRfdGFwLCBzZWUgYmVsb3cpLg0KDQomZ3Q7ICAgKi8NCiZn dDsgLWludCBjb25mX3RhcF9mZChpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQomZ3Q7ICtzdHJ1Y3Qg ZmRfb3B0cyBjb25mX2ZkcyhpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQomZ3Q7ICB7DQomZ3Q7IC0J Y29uc3Qgc3RydWN0IG9wdGlvbiBvcHRmZFtdID0gewl7ICZxdW90O2ZkJnF1b3Q7LCByZXF1aXJl ZF9hcmd1bWVudCwgTlVMTCwgJ0YnIH0sDQomZ3Q7IC0JCQkJCXsgMCB9LCB9Ow0KJmd0OyAtCWNv bnN0IGNoYXIgKmZkYXJnID0gTlVMTCwgKnA7DQomZ3Q7IC0JdW5zaWduZWQgbG9uZyB2YWw7DQom Z3Q7ICsJY29uc3Qgc3RydWN0IG9wdGlvbiBvcHRbXSA9IHsNCiZndDsgKwkJeyAmcXVvdDtmZCZx dW90OywgICAgICByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ0YnIH0sDQoNCllvdSdyZSBsZWF2 aW5nIGEgYml0IG9mIHNwYWNlIGhlcmUgYmVjYXVzZSBpdCdzIGRvbmUgaW4gY29uZigpLCBzbyB0 aGF0DQphcmd1bWVudHMgY2FuIGJlIGFsaWduIGFuZCB0aGlzIGJlY29tZXMgYSBtb3JlIHJlYWRh YmxlIGZvcm0gb2YgdGFibGUsDQpidXQ6DQoNCiZndDsgKwkJeyAmcXVvdDtwYXNzLWZkcyZxdW90 Oywgbm9fYXJndW1lbnQsIE5VTEwsIDM0IH0sDQoNCi4uLnRoZW4gaXQncyBub3QgYWN0dWFsbHkg YWxpZ25lZCBoZXJlLiBBbmQgMzQganVzdCBoYXBwZW5zIHRvIGJlIHRoZQ0KbWF0Y2hpbmcgaW5k ZXggaW4gZ2V0b3B0X2xvbmcoKSBpbiBjb25mKCksIGJ1dCBpdCdzIGtpbmQgb2YgY29uZnVzaW5n DQp0byBoYXZlIGl0IGhlcmU6IGZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBmdW5jdGlvbiwgaXQn cyB0aGUgZmlyc3QNCm9wdGlvbiBpbmRleCB3aXRob3V0IHNob3J0LWhhbmQsIHNvIGl0IHNob3Vs ZCBiZSAxLg0KDQpUaGF0IGlzLCBJIHRoaW5rIHRoaXMgc2hvdWxkIGJlOg0KDQoJCXsgJnF1b3Q7 ZmQmcXVvdDssCQlyZXF1aXJlZF9hcmd1bWVudCwJTlVMTCwJJ0YnIH0sDQoJCXsgJnF1b3Q7cGFz cy1mZHMmcXVvdDssCW5vX2FyZ3VtZW50LAkJTlVMTCwJMSB9LA0KDQomZ3Q7ICsJCXsgMCB9LA0K Jmd0OyArCX07DQomZ3Q7ICsJc3RydWN0IGZkX29wdHMgb3B0cyA9IHsgLmZkX3RhcCA9IC0xLCAu cGFzc19mZHMgPSBmYWxzZSB9Ow0KJmd0OyAgCWludCBuYW1lOw0KJmd0OyAgDQomZ3Q7ICAJb3B0 aW5kID0gMDsNCiZndDsgIAlkbyB7DQomZ3Q7IC0JCW5hbWUgPSBnZXRvcHRfbG9uZyhhcmdjLCBh cmd2LCAmcXVvdDstOkY6JnF1b3Q7LCBvcHRmZCwgTlVMTCk7DQomZ3Q7IC0JCWlmIChuYW1lID09 ICdGJykNCiZndDsgLQkJCWZkYXJnID0gb3B0YXJnOw0KJmd0OyAtCX0gd2hpbGUgKG5hbWUgIT0g LTEpOw0KJmd0OyAtDQomZ3Q7IC0JaWYgKCFmZGFyZykNCiZndDsgLQkJcmV0dXJuIC0xOw0KJmd0 OyArCQluYW1lID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgJnF1b3Q7LTpGOiZxdW90Oywgb3B0 LCBOVUxMKTsNCiZndDsgKwkJaWYgKG5hbWUgPT0gJ0YnKSB7DQomZ3Q7ICsJCQljb25zdCBjaGFy ICpwID0gb3B0YXJnOw0KJmd0OyArCQkJdW5zaWduZWQgbG9uZyB2YWw7DQomZ3Q7ICANCiZndDsg LQlwID0gZmRhcmc7DQomZ3Q7IC0JaWYgKCFwYXJzZV91bnNpZ25lZCgmYW1wO3AsIDAsICZhbXA7 dmFsKSB8fCAhcGFyc2VfZW9pKHApIHx8IHZhbCAmZ3Q7IElOVF9NQVgpDQomZ3Q7IC0JCWRpZSgm cXVvdDtJbnZhbGlkIC0tZmQ6ICVzJnF1b3Q7LCBmZGFyZyk7DQomZ3Q7ICsJCQlpZiAoIXBhcnNl X3Vuc2lnbmVkKCZhbXA7cCwgMCwgJmFtcDt2YWwpIHx8ICFwYXJzZV9lb2kocCkgfHwNCiZndDsg KwkJCSAgICB2YWwgJmd0OyBJTlRfTUFYKQ0KJmd0OyArCQkJCWRpZSgmcXVvdDtJbnZhbGlkIC0t ZmQ6ICVzJnF1b3Q7LCBvcHRhcmcpOw0KJmd0OyAgDQomZ3Q7IC0JcmV0dXJuIHZhbDsNCiZndDsg KwkJCW9wdHMuZmRfdGFwID0gKGludCl2YWw7DQomZ3Q7ICsJCX0gZWxzZSBpZiAobmFtZSA9PSAz NCkgew0KDQooZG9uJ3QgZm9yZ2V0IHRvIGNoYW5nZSB0aGlzIHRvICcxJyBpZiB5b3UgZ28gZm9y IHRoZSB2ZXJzaW9uIEkNCnN1Z2dlc3RlZCBhYm92ZSkNCg0KJmd0OyArCQkJb3B0cy5wYXNzX2Zk cyA9IHRydWU7DQomZ3Q7ICsJCX0NCiZndDsgKwl9IHdoaWxlIChuYW1lICE9IC0xKTsNCg0KTml0 OiBleHRyYSBuZXdsaW5lIGhlcmUgZm9yIGNvbnNpc3RlbmN5IChzZXBhcmF0ZSByZXR1cm4gc3Rh dGVtZW50IGZyb20NCmZ1bmN0aW9uIGxvZ2ljKS4NCg0KJmd0OyArCXJldHVybiBvcHRzOw0KJmd0 OyAgfQ0KJmd0OyAgDQomZ3Q7ICAvKioNCiZndDsgQEAgLTEzMTcsNiArMTMyNiw3IEBAIHZvaWQg Y29uZihzdHJ1Y3QgY3R4ICpjLCBpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQomZ3Q7ICAJCXsmcXVv dDtjb25mLXBhdGgmcXVvdDssCXJlcXVpcmVkX2FyZ3VtZW50LAlOVUxMLAkJJ2MnIH0sDQomZ3Q7 ICAJCXsmcXVvdDtjaHJvb3QtZmFsbGJhY2smcXVvdDssIG5vX2FyZ3VtZW50LAlOVUxMLCAJCTMy IH0sDQomZ3Q7ICAJCXsmcXVvdDtuby1waWRucyZxdW90OywJbm9fYXJndW1lbnQsCQlOVUxMLAkJ MzMgfSwNCiZndDsgKwkJeyZxdW90O3Bhc3MtZmRzJnF1b3Q7LAlyZXF1aXJlZF9hcmd1bWVudCwJ TlVMTCwJCTM0IH0sDQomZ3Q7ICAJCXsgMCB9LA0KJmd0OyAgCX07DQomZ3Q7ICAJY29uc3QgY2hh ciAqb3B0c3RyaW5nID0gJnF1b3Q7K2RxZmVsOmhzOmM6RjpJOnA6UDptOmE6bjpNOmc6aTpvOkQ6 UzpIOjQ2MXQ6dTpUOlU6JnF1b3Q7Ow0KJmd0OyBAQCAtMTU2Nyw2ICsxNTc3LDExIEBAIHZvaWQg Y29uZihzdHJ1Y3QgY3R4ICpjLCBpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQomZ3Q7ICANCiZndDsg IAkJCWMtJmd0O25vX3BpZG5zID0gdHJ1ZTsNCiZndDsgIAkJCWJyZWFrOw0KJmd0OyArCQljYXNl IDM0Og0KJmd0OyArCQkJLyogLS1wYXNzLWZkcyB3YXMgcGFyc2VkIGVhcmx5IGFuZCBjLSZndDtw YXN0YV9wYXNzX2ZkcyBzZXQgaW4gbWFpbigpICovDQoNCkl0J3Mgbm90IGFjdHVhbGx5IHNldCBp biBtYWluKCkuICBCdXQgdGhlIHJlbGV2YW50IGZhY3QgaGVyZSBpcyBzaW1wbHkNCnRoYXQgLS1w YXNzLWZkcyB3YXMgcGFyc2VkIGVhcmx5LCBzbyB0aGF0IHdvdWxkIGJlIGVub3VnaC4gIElmIGl0 J3Mgbm90DQplbm91Z2ggZm9yIHNvbWUgcmVhc29uLCB5b3Ugc2hvdWxkIHdyYXAgdGhpcyBjb21t ZW50IHRvIDgwIGNvbHVtbnMuDQoNCiZndDsgKwkJCWlmIChjLSZndDttb2RlICE9IE1PREVfUEFT VEEpDQomZ3Q7ICsJCQkJZGllKCZxdW90Oy0tcGFzcy1mZHMgaXMgZm9yIHBhc3RhIG1vZGUgb25s eSZxdW90Oyk7DQomZ3Q7ICsJCQlicmVhazsNCiZndDsgIAkJY2FzZSAnZCc6DQomZ3Q7ICAJCQlj LSZndDtkZWJ1ZyA9IDE7DQomZ3Q7ICAJCQljLSZndDtxdWlldCA9IDA7DQomZ3Q7IEBAIC0xOTI5 LDYgKzE5NDQsOSBAQCB2b2lkIGNvbmYoc3RydWN0IGN0eCAqYywgaW50IGFyZ2MsIGNoYXIgKiph cmd2KQ0KJmd0OyAgCWVsc2UgaWYgKG9wdGluZCAhPSBhcmdjKQ0KJmd0OyAgCQlkaWUoJnF1b3Q7 RXh0cmEgbm9uLW9wdGlvbiBhcmd1bWVudDogJXMmcXVvdDssIGFyZ3Zbb3B0aW5kXSk7DQomZ3Q7 ICANCiZndDsgKwlpZiAoYy0mZ3Q7cGFzdGFfcGFzc19mZHMgJmFtcDsmYW1wOyAqbmV0bnMpDQom Z3Q7ICsJCWRpZSgmcXVvdDstLXBhc3MtZmRzIGNhbiBvbmx5IGJlIHVzZWQgd2hlbiBzcGF3bmlu ZyBhIGNvbW1hbmQmcXVvdDspOw0KJmd0OyArDQomZ3Q7ICAJaWYgKGMtJmd0O25vX3BpZG5zICZh bXA7JmFtcDsgKm5ldG5zKQ0KJmd0OyAgCQlkaWUoJnF1b3Q7LS1uby1waWRucyBpcyBpbmNvbXBh dGlibGUgd2l0aCBQSUQgb3IgLS1uZXRucyZxdW90Oyk7DQomZ3Q7ICANCiZndDsgZGlmZiAtLWdp dCBhL2NvbmYuaCBiL2NvbmYuaA0KJmd0OyBpbmRleCAxOWJmOWJjLi5lMTE2NjFmIDEwMDY0NA0K Jmd0OyAtLS0gYS9jb25mLmgNCiZndDsgKysrIGIvY29uZi5oDQomZ3Q7IEBAIC02LDggKzYsMTMg QEANCiZndDsgICNpZm5kZWYgQ09ORl9IDQomZ3Q7ICAjZGVmaW5lIENPTkZfSA0KJmd0OyAgDQom Z3Q7ICtzdHJ1Y3QgZmRfb3B0cyB7DQomZ3Q7ICsJaW50IGZkX3RhcDsNCiZndDsgKwlib29sIHBh c3NfZmRzOw0KJmd0OyArfTsNCiZndDsgKw0KDQpUaGlzIGNvdWxkIGdvIGF3YXksIGlmIHdlIHBh c3Mgc3RydWN0IGN0eCB0byBjb25mX2ZkcygpLg0KDQomZ3Q7ICBlbnVtIHBhc3N0X21vZGVzIGNv bmZfbW9kZShpbnQgYXJnYywgY2hhciAqYXJndltdKTsNCiZndDsgLWludCBjb25mX3RhcF9mZChp bnQgYXJnYywgY2hhciAqKmFyZ3YpOw0KJmd0OyArc3RydWN0IGZkX29wdHMgY29uZl9mZHMoaW50 IGFyZ2MsIGNoYXIgKiphcmd2KTsNCiZndDsgIHZvaWQgY29uZihzdHJ1Y3QgY3R4ICpjLCBpbnQg YXJnYywgY2hhciAqKmFyZ3YpOw0KJmd0OyAgdm9pZCBjb25mX2xpc3Rlbl9oYW5kbGVyKHN0cnVj dCBjdHggKmMsIHVpbnQzMl90IGV2ZW50cyk7DQomZ3Q7ICB2b2lkIGNvbmZfaGFuZGxlcihzdHJ1 Y3QgY3R4ICpjLCB1aW50MzJfdCBldmVudHMpOw0KJmd0OyBkaWZmIC0tZ2l0IGEvaXNvbGF0aW9u LmMgYi9pc29sYXRpb24uYw0KJmd0OyBpbmRleCBhMDA0NzVmLi40MTA1ZGMzIDEwMDY0NA0KJmd0 OyAtLS0gYS9pc29sYXRpb24uYw0KJmd0OyArKysgYi9pc29sYXRpb24uYw0KJmd0OyBAQCAtMjUw LDQ2ICsyNTAsNjQgQEAgdm9pZCBpc29sYXRlX2luaXRpYWwodm9pZCkNCiZndDsgIH0NCiZndDsg IA0KJmd0OyAgLyoNCiZndDsgLSAqIGlzb2xhdGVfZmRzKCkgLSBDbG9zZSBsZWFrZWQgZmlsZXMs IGJ1dCBub3QgLS1mZCwgc3RkaW4sIHN0ZG91dCwgc3RkZXJyDQomZ3Q7ICsgKiBpc29sYXRlX2Zk cygpIC0gQ2xvc2UgbGVha2VkIGZpbGVzIGlmIGFwcGxpY2FibGUNCiZndDsgKyAqIEBjOgkJRXhl Y3V0aW9uIGNvbnRleHQNCiZndDsgICAqIEBhcmdjOglBcmd1bWVudCBjb3VudA0KJmd0OyAtICog QGFyZ3Y6CUNvbW1hbmQgbGluZSBvcHRpb25zLCBhcyB3ZSBuZWVkIHRvIHNraXAgYW55IGZpbGUg Z2l2ZW4gdmlhIC0tZmQNCiZndDsgKyAqIEBhcmd2OglDb21tYW5kIGxpbmUgb3B0aW9ucw0KJmd0 OyAgICoNCiZndDsgICAqIFNob3VsZDoNCiZndDsgLSAqICAtIGNsb3NlIGFsbCBvcGVuIGZpbGVz IGV4Y2VwdCBmb3Igc3RhbmRhcmQgc3RyZWFtcyBhbmQgdGhlIG9uZSBmcm9tIC0tZmQNCiZndDsg KyAqICAtIGNsb3NlIGFsbCBvcGVuIGZpbGVzIGV4Y2VwdCBmb3Igc3RhbmRhcmQgc3RyZWFtcyBh bmQgdGhlIG9uZSBmcm9tIC0tZmQsDQomZ3Q7ICsgICAgICB1bmxlc3MgLS1wYXNzLWZkcyBpcyB1 c2VkLCBpbiB3aGljaCBjYXNlIGFsbCBmZHMgYXJlIHByZXNlcnZlZA0KJmd0OyAgICogIC0gbW92 ZSB0aGUgLS1mZCBkZXNjcmlwdG9yIG91dCBvZiB0aGUgcmFuZ2UgMC0yDQomZ3Q7IC0gKg0KJmd0 OyAtICogUmV0dXJuOiBuZXcgZmQgbnVtYmVyIGZvciBkZXNjcmlwdG9yIGZyb20gLS1mZCwgb3Ig LTEgaWYgbm90IHNwZWNpZmllZA0KJmd0OyArICogIC0gdXBkYXRlIHRoZSBleGVjdXRpb24gY29u dGV4dA0KJmd0OyAgICovDQomZ3Q7IC1pbnQgaXNvbGF0ZV9mZHMoaW50IGFyZ2MsIGNoYXIgKiph cmd2KQ0KJmd0OyArdm9pZCBpc29sYXRlX2ZkcyhzdHJ1Y3QgY3R4ICpjLCBpbnQgYXJnYywgY2hh ciAqKmFyZ3YpDQomZ3Q7ICB7DQomZ3Q7IC0JaW50IGZkLCBjbG9zZV9mcm9tID0gU1RERVJSX0ZJ TEVOTyArIDE7DQomZ3Q7ICsJc3RydWN0IGZkX29wdHMgb3B0cyA9IGNvbmZfZmRzKGFyZ2MsIGFy Z3YpOw0KJmd0OyArCWlmIChvcHRzLmZkX3RhcCAmZ3Q7PSAwICZhbXA7JmFtcDsgb3B0cy5mZF90 YXAgJmx0OyAzKSB7DQomZ3Q7ICsJCS8qIE1vdmUgdGhlIHRhcCBmZCB0byBhIHNhZmVyIGxvY2F0 aW9uICovDQoNCkRvIHdlIHJlYWxseSBuZWVkIHRvIGRvIHRoaXMgdW5jb25kaXRpb25hbGx5LCBl dmVuIGlmIHdlJ3JlIG5vdCBjbG9zaW5nDQpmaWxlIGRlc2NyaXB0b3JzPyAgSSBkb24ndCBzZWUg YSByZWFzb24uDQoNClRoYXQgaXMsIEkgZ3Vlc3Mgd2UgY291bGQgbWFrZSB0aGlzIG11Y2ggc2lt cGxlciwgbGV0IGNvbmZfZmRzKCkgc2V0DQpjLSZndDtwYXN0YV9wYXNzX2ZkcywgYW5kIHJldHVy biBlYXJseSBoZXJlIGlmIGl0J3Mgc2V0LiAgTm8gbG9naWMgY2hhbmdlcw0KbmVlZGVkIGluIHRo aXMgZnVuY3Rpb24sIGp1c3Qgc29tZXRoaW5nIHRvIGFkYXB0LCBpbiBjYXNlIHlvdSBnbyB0aGUN CndheSBJIHN1Z2dlc3RlZCB3aXRoIGNvbmZfZmRzKCkgc2V0dGluZyBjLSZndDtmZF90YXA6DQoN CiZndDsgKwkJaW50IG5ld19mZCA9IGZjbnRsKG9wdHMuZmRfdGFwLCBGX0RVUEZELCBTVERFUlJf RklMRU5PICsgMSk7DQomZ3Q7ICANCiZndDsgLQlmZCA9IGNvbmZfdGFwX2ZkKGFyZ2MsIGFyZ3Yp Ow0KJmd0OyArCQlpZiAobmV3X2ZkICZsdDsgMCkNCiZndDsgKwkJCWRpZV9wZXJyb3IoJnF1b3Q7 Q291bGQgbm90IHJlbG9jYXRlIC0tZmQgZGVzY3JpcHRvciZxdW90Oyk7DQomZ3Q7ICANCiZndDsg LQlpZiAoZmQgJmd0Oz0gMCkgew0KJmd0OyAtCQkvKiBNb3ZlIHRoZSBwYXNzZWQgZmQgdG8gYSBt b3JlIGNvbnZlbmllbnQgbG9jYXRpb24gKi8NCiZndDsgLQkJaWYgKGZkICE9IGNsb3NlX2Zyb20J CQkmYW1wOyZhbXA7DQoNCi4uLnRoaXMgd291bGQgbmVlZCB0byB1c2UgYy0mZ3Q7ZmRfdGFwLCBh bmQuLi4NCg0KJmd0OyAtCQkgICAgKGR1cDIoZmQsIGNsb3NlX2Zyb20pICE9IGNsb3NlX2Zyb20J fHwNCiZndDsgLQkJICAgICBjbG9zZShmZCkpKQ0KJmd0OyAtCQkJZGllX3BlcnJvcigmcXVvdDtD b3VsZCBub3QgbW92ZSAtLWZkIGRlc2NyaXB0b3ImcXVvdDspOw0KJmd0OyAtCQlmZCA9IGNsb3Nl X2Zyb20rKzsNCiZndDsgKwkJY2xvc2Uob3B0cy5mZF90YXApOw0KJmd0OyArCQlvcHRzLmZkX3Rh cCA9IG5ld19mZDsNCiZndDsgIAl9DQomZ3Q7ICsJYy0mZ3Q7ZmRfdGFwID0gb3B0cy5mZF90YXA7 DQoNCi4uLnRoaXMgd291bGQgZ28gYXdheSBhcyB3ZWxsLg0KDQomZ3Q7ICsJYy0mZ3Q7cGFzdGFf cGFzc19mZHMgPSBvcHRzLnBhc3NfZmRzOw0KJmd0OyArDQomZ3Q7ICsJLyogQ2xvc2UgbGVha2Vk IGZpbGUgZGVzY3JpcHRvcnMgdW5sZXNzIC0tcGFzcy1mZHMgaXMgdXNlZCAqLw0KJmd0OyArCWlm ICghb3B0cy5wYXNzX2Zkcykgew0KJmd0OyArCQlpbnQgcmMgPSAwOw0KJmd0OyArCQkvKiBLZWVw IHN0YW5kYXJkIHN0cmVhbXMgYW5kIHRoZSB0YXAgZmQgKGlmIGdpdmVuKSAqLw0KJmd0OyArCQlp bnQga2VlcCA9IG9wdHMuZmRfdGFwICZndDs9IFNUREVSUl9GSUxFTk8gPyBvcHRzLmZkX3RhcCA6 IFNUREVSUl9GSUxFTk87DQomZ3Q7ICsNCiZndDsgKwkJaWYgKGtlZXAgJmd0OyBTVERFUlJfRklM RU5PICsgMSkgew0KJmd0OyArCQkJLyogVGFwIGZkIHdhcyByZWxvY2F0ZWQgdG8gYWJvdmUgc29t ZSBvdGhlciBsZWFrZWQgZmQocykqLw0KJmd0OyArCQkJLyogQ2xvc2UgZmRzIGJldHdlZW4gc3Rk ZXJyIGFuZCB0aGUgdGFwIGZkICovDQomZ3Q7ICsJCQlpZiAoY2xvc2VfcmFuZ2UoU1RERVJSX0ZJ TEVOTyArIDEsIGtlZXAgLSAxLCBDTE9TRV9SQU5HRV9VTlNIQVJFKSkNCiZndDsgKwkJCQlyYyA9 IC0xOw0KJmd0OyArCQl9DQomZ3Q7ICANCiZndDsgLQlpZiAoY2xvc2VfcmFuZ2UoY2xvc2VfZnJv bSwgfjBVLCBDTE9TRV9SQU5HRV9VTlNIQVJFKSkgew0KJmd0OyAtCQlpZiAoZXJybm8gPT0gRU5P U1lTIHx8IGVycm5vID09IEVJTlZBTCkgew0KJmd0OyAtCQkJLyogVGhpcyBwcm9iYWJseSBtZWFu cyBjbG9zZV9yYW5nZSgpIG9yIHRoZQ0KJmd0OyAtCQkJICogQ0xPU0VfUkFOR0VfVU5TSEFSRSBm bGFnIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlDQomZ3Q7IC0JCQkgKiBrZXJuZWwuICBOb3QgbXVj aCB3ZSBjYW4gZG8gaGVyZSBleGNlcHQgY2Fycnkgb24gYW5kDQomZ3Q7IC0JCQkgKiBob3BlIGZv ciB0aGUgYmVzdC4NCiZndDsgLQkJCSAqLw0KJmd0OyAtCQkJd2FybigNCiZndDsgLSZxdW90O0Nh bid0IHVzZSBjbG9zZV9yYW5nZSgpIHRvIGVuc3VyZSBubyBmaWxlcyBsZWFrZWQgYnkgcGFyZW50 JnF1b3Q7KTsNCiZndDsgLQkJfSBlbHNlIHsNCiZndDsgLQkJCWRpZV9wZXJyb3IoJnF1b3Q7RmFp bGVkIHRvIGNsb3NlIGZpbGVzIGxlYWtlZCBieSBwYXJlbnQmcXVvdDspOw0KJmd0OyArCQkvKiBD bG9zZSBhbGwgb3RoZXIgZmRzICovDQomZ3Q7ICsJCWlmIChjbG9zZV9yYW5nZShrZWVwICsgMSwg fjBVLCBDTE9TRV9SQU5HRV9VTlNIQVJFKSkNCiZndDsgKwkJCXJjID0gLTE7DQomZ3Q7ICsNCiZn dDsgKwkJaWYgKHJjKSB7DQomZ3Q7ICsJCQlpZiAoZXJybm8gPT0gRU5PU1lTIHx8IGVycm5vID09 IEVJTlZBTCkgew0KJmd0OyArCQkJCS8qIFRoaXMgcHJvYmFibHkgbWVhbnMgY2xvc2VfcmFuZ2Uo KSBvciB0aGUNCiZndDsgKwkJCQkqIENMT1NFX1JBTkdFX1VOU0hBUkUgZmxhZyBpcyBub3Qgc3Vw cG9ydGVkIGJ5IHRoZQ0KJmd0OyArCQkJCSoga2VybmVsLiAgTm90IG11Y2ggd2UgY2FuIGRvIGhl cmUgZXhjZXB0IGNhcnJ5IG9uIGFuZA0KJmd0OyArCQkJCSogaG9wZSBmb3IgdGhlIGJlc3QuDQom Z3Q7ICsJCQkJKi8NCiZndDsgKwkJCQl3YXJuKA0KJmd0OyArCSZxdW90O0Nhbid0IHVzZSBjbG9z ZV9yYW5nZSgpIHRvIGVuc3VyZSBubyBmaWxlcyBsZWFrZWQgYnkgcGFyZW50JnF1b3Q7KTsNCiZn dDsgKwkJCX0gZWxzZSB7DQomZ3Q7ICsJCQkJZGllX3BlcnJvcigmcXVvdDtGYWlsZWQgdG8gY2xv c2UgZmlsZXMgbGVha2VkIGJ5IHBhcmVudCZxdW90Oyk7DQomZ3Q7ICsJCQl9DQomZ3Q7ICAJCX0N CiZndDsgIAl9DQomZ3Q7IC0NCiZndDsgLQlyZXR1cm4gZmQ7DQomZ3Q7ICB9DQomZ3Q7ICANCiZn dDsgIC8qKg0KJmd0OyBkaWZmIC0tZ2l0IGEvaXNvbGF0aW9uLmggYi9pc29sYXRpb24uaA0KJmd0 OyBpbmRleCBlYzQ3MDM4Li5mZThkN2Q1IDEwMDY0NA0KJmd0OyAtLS0gYS9pc29sYXRpb24uaA0K Jmd0OyArKysgYi9pc29sYXRpb24uaA0KJmd0OyBAQCAtMTEsNyArMTEsNyBAQA0KJmd0OyAgI2lu Y2x1ZGUgJmx0O3VuaXN0ZC5oJmd0Ow0KJmd0OyAgDQomZ3Q7ICB2b2lkIGlzb2xhdGVfaW5pdGlh bCh2b2lkKTsNCiZndDsgLWludCBpc29sYXRlX2ZkcyhpbnQgYXJnYywgY2hhciAqKmFyZ3YpOw0K Jmd0OyArdm9pZCBpc29sYXRlX2ZkcyhzdHJ1Y3QgY3R4ICpjLCBpbnQgYXJnYywgY2hhciAqKmFy Z3YpOw0KJmd0OyAgdm9pZCBpc29sYXRlX3VzZXIoY29uc3Qgc3RydWN0IGN0eCAqYywgdWlkX3Qg dWlkLCBnaWRfdCBnaWQsIGJvb2wgdXNlX3VzZXJucywNCiZndDsgIAkJICBjb25zdCBjaGFyICp1 c2VybnMpOw0KJmd0OyAgaW50IGlzb2xhdGVfcHJlZm9yayhjb25zdCBzdHJ1Y3QgY3R4ICpjKTsN CiZndDsgZGlmZiAtLWdpdCBhL3Bhc3N0LjEgYi9wYXNzdC4xDQomZ3Q7IGluZGV4IDBiNzgwZmUu LjU2ZTI0MWYgMTAwNjQ0DQomZ3Q7IC0tLSBhL3Bhc3N0LjENCiZndDsgKysrIGIvcGFzc3QuMQ0K Jmd0OyBAQCAtNzY2LDYgKzc2NiwxMSBAQCBvZiBsb2NhbCB0cmFmZmljIGluIHBhc3RhXGZSIGlu IHRoZSBcZkJOT1RFU1xmUiBmb3IgbW9yZSBkZXRhaWxzLg0KJmd0OyAgRG8gbm90IGNyZWF0ZSBh IHRhcCBkZXZpY2UgaW4gdGhlIG5hbWVzcGFjZS4gSW4gdGhpcyBtb2RlLCBcZklwYXN0YVxmUiBv bmx5DQomZ3Q7ICBmb3J3YXJkcyBsb29wYmFjayB0cmFmZmljIGJldHdlZW4gbmFtZXNwYWNlcy4N CiZndDsgIA0KJmd0OyArLlRQDQomZ3Q7ICsuQlIgXC1cLXBhc3NcLWZkcw0KJmd0OyArUHJlc2Vy dmUgYWxsIG9wZW4gZmlsZSBkZXNjcmlwdG9ycyBhbmQgcGFzcyB0aGVtIHRvIHRoZSBzcGF3bmVk IGNvbW1hbmQuDQomZ3Q7ICtUaGlzIG9wdGlvbiBtYXkgb25seSBiZSB1c2VkIHdoZW4gXGZCcGFz dGFcZlIgc3Bhd25zIGEgY29tbWFuZC4NCiZndDsgKw0KJmd0OyAgLlNIIEVYQU1QTEVTDQomZ3Q7 ICANCiZndDsgIC5TUyBcZkJwYXN0YQ0KJmd0OyBkaWZmIC0tZ2l0IGEvcGFzc3QuYyBiL3Bhc3N0 LmMNCiZndDsgaW5kZXggNTA1NDU1MS4uZmE3YWZjNSAxMDA2NDQNCiZndDsgLS0tIGEvcGFzc3Qu Yw0KJmd0OyArKysgYi9wYXNzdC5jDQomZ3Q7IEBAIC0zNDUsNyArMzQ1LDcgQEAgaW50IG1haW4o aW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KJmd0OyAgCWFyY2hfYXZ4Ml9leGVjKGFyZ3YpOw0KJmd0 OyAgDQomZ3Q7ICAJaXNvbGF0ZV9pbml0aWFsKCk7DQomZ3Q7IC0JYy0mZ3Q7ZmRfdGFwID0gaXNv bGF0ZV9mZHMoYXJnYywgYXJndik7DQomZ3Q7ICsJaXNvbGF0ZV9mZHMoYywgYXJnYywgYXJndik7 DQomZ3Q7ICANCiZndDsgIAlpZiAoKGRldm51bGxfZmQgPSBvcGVuKCZxdW90Oy9kZXYvbnVsbCZx dW90OywgT19SRFdSIHwgT19DTE9FWEVDKSkgJmx0OyAwKQ0KJmd0OyAgCQlkaWVfcGVycm9yKCZx dW90O0ZhaWxlZCB0byBvcGVuIC9kZXYvbnVsbCZxdW90Oyk7DQomZ3Q7IGRpZmYgLS1naXQgYS9w YXNzdC5oIGIvcGFzc3QuaA0KJmd0OyBpbmRleCBhZmQ4ZTlmLi5iMDY1ZDQxIDEwMDY0NA0KJmd0 OyAtLS0gYS9wYXNzdC5oDQomZ3Q7ICsrKyBiL3Bhc3N0LmgNCiZndDsgQEAgLTE5Niw2ICsxOTYs NyBAQCBzdHJ1Y3QgaXA2X2N0eCB7DQomZ3Q7ICAgKiBAcGFzdGFfaWZpOgkJSW5kZXggb2YgbmFt ZXNwYWNlIGludGVyZmFjZSBmb3IgcGFzdGENCiZndDsgICAqIEBwYXN0YV9jb25mX25zOglDb25m aWd1cmUgbmFtZXNwYWNlIGFmdGVyIGNyZWF0aW5nIGl0DQomZ3Q7ICAgKiBAbm9fcGlkbnM6CQlE b24ndCBjcmVhdGUgYSBuZXcgUElEIG5hbWVzcGFjZSBmb3Igc3Bhd25lZCBjb21tYW5kDQomZ3Q7 ICsgKiBAcGFzdGFfcGFzc19mZHM6CURvIG5vdCBjbG9zZSBsZWFrZWQgZmlsZSBkZXNjcmlwdG9y cw0KDQpEb2VzIGl0IHJlYWxseSBuZWVkIHRvIGhhdmUgJ3Bhc3RhJyBpbiB0aGUgbmFtZT8gIFN1 cmUsIGl0J3MNCnBhc3RhLW9ubHksIGJ1dCB0aGlzIGlzIGFscmVhZHkgZG9jdW1lbnRlZCBpbiBt YW4gcGFnZSwgdXNhZ2UsIGFuZA0KY29uZigpLCBzbyB3ZSBjb3VsZCBwcm9iYWJseSBzYXZlIHNv bWUgdHlwaW5nIGJ5IGNhbGxpbmcgaXQgJ3Bhc3NfZmRzJy4NCg0KJmd0OyAgICogQGZ3ZDoJCUZv cndhcmRpbmcgdGFibGVzDQomZ3Q7ICAgKiBAZndkX3BlbmRpbmc6CVBlbmRpbmcgZm9yd2FyZCB0 YWJsZXMNCiZndDsgICAqIEBub190Y3A6CQlEaXNhYmxlIFRDUCBvcGVyYXRpb24NCiZndDsgQEAg LTI4MCw2ICsyODEsNyBAQCBzdHJ1Y3QgY3R4IHsNCiZndDsgIAl1bnNpZ25lZCBpbnQgcGFzdGFf aWZpOw0KJmd0OyAgCWludCBwYXN0YV9jb25mX25zOw0KJmd0OyAgCWJvb2wgbm9fcGlkbnM7DQom Z3Q7ICsJYm9vbCBwYXN0YV9wYXNzX2ZkczsNCiZndDsgIA0KJmd0OyAgCXN0cnVjdCBmd2RfdGFi bGUgKmZ3ZFtQSUZfTlVNX1RZUEVTXTsNCiZndDsgIAlzdHJ1Y3QgZndkX3RhYmxlICpmd2RfcGVu ZGluZ1tQSUZfTlVNX1RZUEVTXTsNCg0KLS0gDQpTdGVmYW5vDQoNCjwvcHJlPg0KPC9kaXY+DQo8 L2JvZHk+DQo8L2h0bWw+DQo= --_000_DM3PR11MB8713EDD4284AEF9064BF39ABDA612DM3PR11MB8713namp_--