From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-002c1b01.pphosted.com (mx0a-002c1b01.pphosted.com [148.163.151.68]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 740271A08AF; Fri, 17 Apr 2026 01:19:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=148.163.151.68 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776388783; cv=fail; b=GchmGni3QwUkwiqONCXCq1KHiU3CSbbbdfOQWjbFFQMwuJd6ZK8pMxp1ZUGE4ZQw7fzDghTi74vxis+Hv2oKxfdEzwJ0DEQrDpCFDSTIphAdYBxHvT4i+E/9e85pgIxwKX/DqL28ATVJ39wKFH6nYXkPKVUkQf67yMigEJAb0mE= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776388783; c=relaxed/simple; bh=FQnMVE0T4hqSgiO/ildXAAV32OkHlqH/A3+9T8aSjHc=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=In3qTF/gAsnnPgMdAIXuAyBBSPqEa2elsUMF2FnPGiiuwMrpkKbq3pHLwOKh+MKTCB2nzW06dzqOK3wh13jL9iYyAlyqb+GXeS24c0u+xL00ImPG4PoGrCfsOzhbBDCPXhOvhBMxoPBwvQdT/sPbQsbJTG8CgoLQ6fkl2vYOBQQ= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nutanix.com; spf=pass smtp.mailfrom=nutanix.com; dkim=pass (2048-bit key) header.d=nutanix.com header.i=@nutanix.com header.b=pKdPJacj; dkim=pass (2048-bit key) header.d=nutanix.com header.i=@nutanix.com header.b=ixcXtDcf; arc=fail smtp.client-ip=148.163.151.68 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nutanix.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nutanix.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nutanix.com header.i=@nutanix.com header.b="pKdPJacj"; dkim=pass (2048-bit key) header.d=nutanix.com header.i=@nutanix.com header.b="ixcXtDcf" Received: from pps.filterd (m0127838.ppops.net [127.0.0.1]) by mx0a-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63GF3G4a3811756; Thu, 16 Apr 2026 18:19:34 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-id:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=FQnMVE0T4hqSgiO/ildXAAV32OkHlqH/A3+9T8aSj Hc=; b=pKdPJacj6VnBiwdKDQfBI6ClJwGpVYA0dWMESu1oRZPfHaOd3f08ToH+v VlgJqni6JCa4xzt6nzh3NM6aXMLXsoIexZXafP1SU6+/q5ZQ+c+KKK/yiINZVT13 +x/NIZDn1fBqexvx/q5AWJgYOp1rgvBqyAlAAh3ze8abArDR2vvbQwmuMvZY57KA wH9aXfbTh/tMySOjq8B8jqnWEss3J9qDG4k6qaB3Y7ofyz9K8n8SkjiHeoaUE881 v4Uae8acrb4Z2zXHRabVRl7kr1ZEqEwTGdpcrVAc8S00C6eyJ95DRauZfPiHwEZS qxtFF5lGIvrX3OKLImbMYcVM/AdpA== Received: from byapr05cu005.outbound.protection.outlook.com (mail-westusazon11020074.outbound.protection.outlook.com [52.101.85.74]) by mx0a-002c1b01.pphosted.com (PPS) with ESMTPS id 4djtbstebj-2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 16 Apr 2026 18:19:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OHATTLBhwlC71sRcIDWMhEOhgYMao20nVw5yugvmVB+IxLELZCI5NdWk9y+Y0HHG8GfilqdZsg5NIqse0xuyXwVjMmKzi0NtoDGoZs284TfX3ykHrFMXlC9vhNGGZ/JE6zlE1jo8lVTdJxT164qx9wyEAazZMGAJWE8gpZ15S92BPyjIrQqBK7b5RIZz75UY30eVPN7tp+XnZphwaBhCL3HxMEvSo64YxdjY64T2ugr5qAMuulBNUJPmS3ixP5vuytJGfnOGeRIqekdMvWtb5hKvp4o+Ax75Y4nf2TFomos67oIaGr96nV6mFj/QxpkLK7fXV2RkVnYGl7MdARhlGA== 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=FQnMVE0T4hqSgiO/ildXAAV32OkHlqH/A3+9T8aSjHc=; b=h9N62TyQRWCTuFSvy4w7JM8RbyFJhlVuzCroZQv4Oj1IB12+C/405dwDvz1dPthtZnA+gHBbPzzr6SkedAaGFDIjVevvTwgJe/o97+4i3XxQZkoSBaTEKJCqMANjblIznD/11RRQA+ayEa1qqKYDWCI5HEaxUXQC7bgetNovQ0yEFvj1NBxH4cA/upBaHZgCVjQ4Y2vYGwhiuYtSTbB2ShHGVLVchD6Em3DHrvEQT+9BtSXlazX3BFymjX6+fRVSs7NiapKK8JpT50Uhyg7BhPmZ7We0i+Cg8DK4CMm81Emn+0FNeubwj3RHRDYVHj/UZy+drQ4fjpY57CAuiOjBMA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FQnMVE0T4hqSgiO/ildXAAV32OkHlqH/A3+9T8aSjHc=; b=ixcXtDcfdtPfJRl1VdwmI4NwZzU1B4sCvF3Dec9ApIaoi5frd3ZkgEal+lAkC/xRWbdSKg2NdiHxanmqEytJcQ1gCEGkGUVunsJS2jnvk9JERTgpZd8Z+R943Pz5qpUICh9nnHpH5naZcx1LXD5ecIsdethyQ4PqBAY2m8N8lTFps7W4p+IsV6lrGIsEv1iwX425EyVYYEMdnGfRnJbuqOtbn/2Xvm2Kb6AXYYaXhKdjhTIVWa58VMKWKAPbTSyqk9BPqYUS7OSZ4H0kjziORU4wjQNHgEAuqgHcf3YbbZekMgtOCN3CM/5gxfOuMM0kUhD8cnWBTcFfbh39KEgIHw== Received: from LV0PR02MB11133.namprd02.prod.outlook.com (2603:10b6:408:333::18) by CH0PR02MB8133.namprd02.prod.outlook.com (2603:10b6:610:10a::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9818.25; Fri, 17 Apr 2026 01:19:32 +0000 Received: from LV0PR02MB11133.namprd02.prod.outlook.com ([fe80::10e5:8031:1b1b:b2dc]) by LV0PR02MB11133.namprd02.prod.outlook.com ([fe80::10e5:8031:1b1b:b2dc%3]) with mapi id 15.20.9818.023; Fri, 17 Apr 2026 01:19:31 +0000 From: Jon Kohler To: Paolo Bonzini CC: "linux-kernel@vger.kernel.org" , "kvm@vger.kernel.org" , Nikunj A Dadhania , "Shah, Amit" , Sean Christopherson , Marcelo Tosatti Subject: Re: [PATCH 15/27] KVM: VMX: enable use of MBEC Thread-Topic: [PATCH 15/27] KVM: VMX: enable use of MBEC Thread-Index: AQHcx25YFQA/PCwfxUy/L0d9q5X4ubXigZOA Date: Fri, 17 Apr 2026 01:19:31 +0000 Message-ID: References: <20260408154217.458420-1-pbonzini@redhat.com> <20260408154217.458420-16-pbonzini@redhat.com> In-Reply-To: <20260408154217.458420-16-pbonzini@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3864.500.181) x-ms-publictraffictype: Email x-ms-traffictypediagnostic: LV0PR02MB11133:EE_|CH0PR02MB8133:EE_ x-ms-office365-filtering-correlation-id: 5b095514-15e4-4481-4f85-08de9c1f610d x-ld-processed: bb047546-786f-4de1-bd75-24e5b6f79043,ExtAddr x-proofpoint-crosstenant: true x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|10070799003|366016|376014|38070700021|22082099003|18002099003|56012099003; x-microsoft-antispam-message-info: xjfEpBeMM97quFMNQY1SXbT2HX9cHeQ+aa1u43Vx10ZKHJNDoGwaSd0Y0IlwRvNee6cpaPRKU29Gxfw79qfCuUuWPqJWQf5jXebWUVIqjpeHopuwwtKmu9mcprxrizS5/MRVPbGN+McgV6X1oCjcJ8Jr/lVvv/IMAzwWajS0nbl7MuefrzSo+Mu1g8M70SARbSpD3xl7eBq976TuxwvvoycsXuhG8E/+B2ZCwLx+pqIp4q49ZjRutOS7tjEtrMks34BXCeAuGP1UedvtI+jX2afOvxhamtzV/ENhzGAlbfWMZWlLjt/qytwqVuRweqsRvnEoFPLI3+wYgJ9hC9Pi5YvCGQWLjoJAY82IAmEfgYm9JmH9hPxCuLebdm2XraYcQgGtSgqx2ZE2e4MUb0STSJTsMaGznTpVYMLqhHf4qULlxEDqMi+HgQEM4FTeuyV+wj8Ep/MOnlvqrYL3uvagLFzpUEEjt+zmMSIqxFCkBcppE/++zDC3C5/ydWjAG5sBPOh8JPZ373jrJGf0BofV8bkjzfyjitluNYcMP1f3Y/Vb1y24GTRuNlZBElkiABm5mK5KVvcQCNT3c/3DZpGhMffHLyfX0T3s8Pks9MbVH83OkCJYrenlcHvum59KqmxaVXJ+boJ+dRXk6aFkFFzQbEzbAjtYUtXDeGnNUcx6wheSnz9tzeYW4dg8KM5F2EGI4tQCoZl916JvWQwAVj696gdF2ulFHpR15/Fs1/Bu+BbbkIDmtKKZHv5sRwAoL2LmR6/y9rWyeaGWoAX0tWMfe2Ck41v4d7LaOdLGtjdz+Y0= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV0PR02MB11133.namprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(366016)(376014)(38070700021)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 2 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?S21kcHZSWDBkaW55ejRuVGc3RkRycWJ4ZTQzL1BHY0thdW44TEJienVkV2p1?= =?utf-8?B?eGJrVnNMWk5pc1NIVWFGUmQ4WFZXQWlSN0R3L2sxV05BV3F0alFyRVJVYzVi?= =?utf-8?B?N0F3b3IvamRMcHhOQkx5MDh0SEcyK0RwWkkyeXpBenQxd2hZeDdNTWFBYWFl?= =?utf-8?B?czBuNUxlaE0vTEJVRE93Vyt4YmxlM1h6akRGSkxQYTBwQlN1NUZLT2lXZ0VH?= =?utf-8?B?ZkVUMDVWM2dSandMZjk5Mm5WcytqTXIyUjl5cXM0QWZLR2tKc2hDZTZvOHJu?= =?utf-8?B?dHhKWnIvV1g3NWhhTEFUbEVlWHpFb0htNFVtWkl2SzdQaEhmejEra05uQWxG?= =?utf-8?B?dXRPQVo5Vm5HZ1VmM0N6SndFTEN3UWxkUDBxb0ZBbEV6cDQxYU1uaGJTWlds?= =?utf-8?B?YkoyRTgxRTA0d2ZNWXE5bzV0bjB4VmkrTVJCbnU5WVpQUmNVYXVabGJjWVFk?= =?utf-8?B?SFdTUWdmNTR6d21GTGkvYWE5UFlJQXZXUEFNOTZ4elBkWGdWeHhHMmgwZktI?= =?utf-8?B?VjJnY01QeEhlSmFEMDJEbFRSa1U0V3l1ZzVadCtwb085MzNOcWQrQTN1bkgv?= =?utf-8?B?SStZUkhYMFM1eWZIS2hsUkxsYVJmOWhTMTJTeEhiYWNXYUtzZWlTcWs5V2Jx?= =?utf-8?B?U3hOSUl6SGRaUk1EVzJwTXZGelFFa0h2eC9xN3hjM0pRemI1R3JKWVRpVTYx?= =?utf-8?B?N0FTWmZBTmMydk9BSmdKa3JSZVhLVVZnbTNpNlRoNVBBOEVDWWg4K1BicjFK?= =?utf-8?B?d29MeUVUcE04UXY2NExzMDFhSmYxeFdXNm1iWUZaRzRJSm00Wi90R0hDVnNY?= =?utf-8?B?bGJGbGN1dGc4UjNIK2U3ejYvSVp0eWNxb3BZMXFDNFpYVHlUYmxyNExEa0tt?= =?utf-8?B?ZHg2Sy9wY1pOdjBsb3E1N2IzN0VyNTlvdHJyamZtNW9mNGdvc0Q1VjB0dG1P?= =?utf-8?B?d1dOTm9IQXZBMjlWTEFDaGcrOHg2T2x5dHI4Ynoxdk1pOXR6R3pkTnJ3dzhv?= =?utf-8?B?V2cyRmRnVkpXekQrWUtmelNlSUU2TmVDZFFHRWx4SzZXeVJDRjgyRGc2UklW?= =?utf-8?B?TFpsSVJ6ME0rcUtKWm1UeEZtUWdQUDB5WTR3NkxZS216K1gvTDRNWEpJV3h5?= =?utf-8?B?elR1TWVNZkxiUzlQZXhkbTlHYzRtdlZYeW9ObGo2Y3lCeGNwSWkrRVR0NTZq?= =?utf-8?B?eWtLOWNjMXpsSHdxMmlJQi9IMU00ZkZyMG9MdjlJWHE1QTg4M3llajBrWFdQ?= =?utf-8?B?OHphVG1jcTBSeXdYZ1lEWE5ZNHFmNVppdzlCWFFLVXNESXdCdkNNS0RGOU5Z?= =?utf-8?B?M0tpa3NqampzYjRZTlVzMEVtN2ZVNS9mYlcwOW9QMFdkTmtCemE5OW1Da0ZR?= =?utf-8?B?bUduSzZTdnlCdEV1dDJvaG8rZWpDU1ppTDJHb1hxc1pnTTlORVpibUp4S1dj?= =?utf-8?B?dWFkQVFNMXVJT2FORjFwcjVQWGJSbGRWdmJyRmgyRTRsMHRRN0ZXdGhHazhy?= =?utf-8?B?eDl3azQ1amxwZ09kdzdLQXFmRUhRTFRPRVg3Sy9rS2NGQk14QVZ6Vy8xam50?= =?utf-8?B?Rm5CdEp4NlI1Z0Vaa2lwTWUvRGhHSEowbkZZWWRQYjdEVmVIM2I0TkxKdDdC?= =?utf-8?B?NFFaN3NkQ1NtaldCUERiSnRKSXBkK2dvcEJ6eXJpTktxcDdZTWMvaVFRK3NS?= =?utf-8?B?ZGJEZW5FMG14OTZBRWplNXpuQmpPNS9xNXM5dEM1aHZidlEwbVZWbnpLNjBj?= =?utf-8?B?dWJQV1J6bC8xcXJCUHcvWmxBOHkyT3BDSG9wdnRzNGpGL0F4Z2hYZnFxQWI4?= =?utf-8?B?QUFIaFIxYmNtNFowTEprMytoTDc0OFBMVXhKY09MZVFPa0Q4VlBZbSt3VUdo?= =?utf-8?B?L3hpY0pXY3BwN09BSi9DTG4razY5ZTF5NStUM1MxSFFmd1hHWUg3VkxSaHFS?= =?utf-8?B?aU54T2UxbDZIV2IrK0IyOUhMWWxsZE83NmNxZDM1Z1UwSjFOQzBJQkgxc3pk?= =?utf-8?B?U21PSWV6UFNKdUhWSUxVOEZWQkJRb3VtNHJuSjJqaXJQTGtRdHR5M3RvaExu?= =?utf-8?B?Zk1QNml0cVdNOGxLemVZQndHekNpSUVYZ3RFWHBYR1Vma1ozNnFRMnVPSSti?= =?utf-8?B?UUtsNng5RmVzV29nRW41NXY5am9OQlcybmFZUkg5a21veUg5NFBvZ2NUUWNQ?= =?utf-8?B?KzloZDB4WFYzY0E5SFV3ZC9hZjBFYWNYTHluYisweTByNXVTbjJldlQwT0sv?= =?utf-8?B?bHlLYTF0dmJnOGJFZTdYd1laa3M4aWtraUg3VzlEeEUwUDJmT0tJTDZZUjdH?= =?utf-8?B?RmRuTVlRaTY2aGNEUG9FTDIwVEI1ZklFVHBZbGxxSUNlNFBmWUtvbkdGR2ls?= =?utf-8?Q?iBoybCE7f55g8ec91HRTmjPsZIl1TVAeeRiFu6Rgi62N4?= x-ms-exchange-antispam-messagedata-1: Z/OmIPT0wk9fo1MA0XXZ90eW50eK+gk+dCs= Content-Type: text/plain; charset="utf-8" Content-ID: <1F7EA2693099894198D043E2CCA416AA@namprd02.prod.outlook.com> Content-Transfer-Encoding: base64 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: hZ48ptBeMGGV7q03ms7ragl5lkj8v2Q2EY/BBxo3XLRADzgoRQfGBVcfh/nrTZfqF5A3WlWG1O9f2lsVUiU/GiwT89iJ3pB4IEZzphD0gFfSBGjLFU9a1j6cMV6YS47peIyov4xyFeo2vKURXtoH8HtBaLKF3FuM4r6UKGkRpb3F9RLgAVMcXCTX8dLGLBJUj86hGIMKyt8pYU6NiPoviDGmQlDwt55VeXe19SsiEi/4pjKjv/2r/9W+dfRx6dwz1tCT+CKFbSgvgeYF8jfMaTHTNsfhjx/a/38BSfXkzoCnPSxII7/wYRw97uUMPBzPjhI0NAthAe5Gz6ILByNigg== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: LV0PR02MB11133.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5b095514-15e4-4481-4f85-08de9c1f610d X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Apr 2026 01:19:31.8828 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: dEC9ehHM1HEzcV8nXrEaHLXy2BcSivM0pud8wsC+iPBx3jpy7sE2T3UnAEzO0UcUBg2rkUYGL3YkELq3GbsLeyqt4NG2+XnrMiDrbOKCVyQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR02MB8133 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDE3MDAxMSBTYWx0ZWRfX1FNRZ0gUc9gT +D9hjhFylHTiR/2msSqVMPVR1IveB8hSUFOVoP6wUFPwq2/fpuVCwi60Pd9bbBjl0AoSS6P3MCx UfQ6MwyBP9Y9ktXgBrzSxNg8zxN9Os0wsDtLM3BajuQBgWPO3RSCP03Lbir6FetBjRQrzEJN2xC 9mF/2CxJaPsKhS93QfysRw3bsF/uNnWeM7B3ChETI5MAUL28cMvj55YFhYT32kltLV2suDQVTjM 91veKa+r5Xt+nMRd/evhANwmH68bz+s3bID8m9pEjcR901yuqWIMo9hYofTa+TPckEpzEiZ1b5/ KLVqRMY8D0Nq8f3Tqp7LzyGQYE4COC54k29xic3Rx5B70xxQfDqOT2YbaRJG64vjVFG3H8jxMNS p2B9Vi9TGPWC1ZjPRnBZBVrsTh3Uio2Unb4bFVNkhNzjVb+zfVtqPrmT00spTrGKjN55KeAKrIw DWOwnYA6nbiTLqXVQmA== X-Authority-Analysis: v=2.4 cv=OOQXGyaB c=1 sm=1 tr=0 ts=69e18aa6 cx=c_pps a=BkzQgYdJoksvgi0GI1zv2w==:117 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=1L6crL_YRTbalZ11mEUO:22 a=20KFwNOVAAAA:8 a=y-oeCz1kvsUc6hZ0LHoA:9 a=QEXdDO2ut3YA:10 X-Proofpoint-GUID: _Zeev1afrBG3-PSORYThHnLTOmtgSOG3 X-Proofpoint-ORIG-GUID: _Zeev1afrBG3-PSORYThHnLTOmtgSOG3 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-16_04,2026-04-16_03,2025-10-01_01 X-Proofpoint-Spam-Reason: safe DQoNCj4gT24gQXByIDgsIDIwMjYsIGF0IDExOjQy4oCvQU0sIFBhb2xvIEJvbnppbmkgPHBib256 aW5pQHJlZGhhdC5jb20+IHdyb3RlOg0KPiANCj4gSWYgYXZhaWxhYmxlLCBzZXQgU0VDT05EQVJZ X0VYRUNfTU9ERV9CQVNFRF9FUFRfRVhFQyBpbiB0aGUgc2Vjb25kYXJ5DQo+IGV4ZWN1dGlvbiBj b250cm9scyBhbmQgY29uZmlndXJlIFhTIGFuZCBYVSBzZXBhcmF0ZWx5IChldmVuIGlmIHRoZXkN Cj4gYXJlIGFsd2F5cyB1c2VkIHRvZ2V0aGVyKS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IFBhb2xv IEJvbnppbmkgPHBib256aW5pQHJlZGhhdC5jb20+DQo+IC0tLQ0KPiBhcmNoL3g4Ni9pbmNsdWRl L2FzbS92bXguaCAgICAgIHwgIDMgKysrDQo+IGFyY2gveDg2L2t2bS9tbXUuaCAgICAgICAgICAg ICAgfCAgNyArKysrKystDQo+IGFyY2gveDg2L2t2bS9tbXUvc3B0ZS5jICAgICAgICAgfCAgNiAr KystLS0NCj4gYXJjaC94ODYva3ZtL21tdS9zcHRlLmggICAgICAgICB8ICA1ICsrKy0tDQo+IGFy Y2gveDg2L2t2bS92bXgvY2FwYWJpbGl0aWVzLmggfCAgNyArKysrKysrDQo+IGFyY2gveDg2L2t2 bS92bXgvY29tbW9uLmggICAgICAgfCAxMCArKysrKy0tLS0tDQo+IGFyY2gveDg2L2t2bS92bXgv bWFpbi5jICAgICAgICAgfCAgOSArKysrKysrKysNCj4gYXJjaC94ODYva3ZtL3ZteC9uZXN0ZWQu YyAgICAgICB8ICAxICsNCj4gYXJjaC94ODYva3ZtL3ZteC92bXguYyAgICAgICAgICB8IDE2ICsr KysrKysrKysrKysrKy0NCj4gYXJjaC94ODYva3ZtL3ZteC92bXguaCAgICAgICAgICB8ICAxICsN Cj4gYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmggICAgICB8ICAxICsNCj4gMTEgZmlsZXMgY2hh bmdlZCwgNTQgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0 IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vdm14LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS92bXgu aA0KPiBpbmRleCA1OWUzYjA5NWEzMTUuLjJiNDQ5YTM5NDhkMyAxMDA2NDQNCj4gLS0tIGEvYXJj aC94ODYvaW5jbHVkZS9hc20vdm14LmgNCj4gKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vdm14 LmgNCj4gQEAgLTYwOCw5ICs2MDgsMTIgQEAgZW51bSB2bV9lbnRyeV9mYWlsdXJlX2NvZGUgew0K PiAjZGVmaW5lIEVQVF9WSU9MQVRJT05fR1ZBX1RSQU5TTEFURUQgQklUKDgpDQo+IA0KPiAjZGVm aW5lIEVQVF9WSU9MQVRJT05fUldYX1RPX1BST1QoX19lcHRlKSAoKChfX2VwdGUpICYgVk1YX0VQ VF9SV1hfTUFTSykgPDwgMykNCj4gKyNkZWZpbmUgRVBUX1ZJT0xBVElPTl9VU0VSX0VYRUNfVE9f UFJPVChfX2VwdGUpICgoKF9fZXB0ZSkgJiBWTVhfRVBUX1VTRVJfRVhFQ1VUQUJMRV9NQVNLKSA+ PiA0KQ0KPiANCj4gc3RhdGljX2Fzc2VydChFUFRfVklPTEFUSU9OX1JXWF9UT19QUk9UKFZNWF9F UFRfUldYX01BU0spID09DQo+ICAgICAgKEVQVF9WSU9MQVRJT05fUFJPVF9SRUFEIHwgRVBUX1ZJ T0xBVElPTl9QUk9UX1dSSVRFIHwgRVBUX1ZJT0xBVElPTl9QUk9UX0VYRUMpKTsNCj4gK3N0YXRp Y19hc3NlcnQoRVBUX1ZJT0xBVElPTl9VU0VSX0VYRUNfVE9fUFJPVChWTVhfRVBUX1VTRVJfRVhF Q1VUQUJMRV9NQVNLKSA9PQ0KPiArICAgICAgKEVQVF9WSU9MQVRJT05fUFJPVF9VU0VSX0VYRUMp KTsNCj4gDQo+IC8qDQo+ICAqIEV4aXQgUXVhbGlmaWNhdGlvbnMgZm9yIE5PVElGWSBWTSBFWElU DQo+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vbW11LmggYi9hcmNoL3g4Ni9rdm0vbW11LmgN Cj4gaW5kZXggZDhjMTNlNDNjMmQ3Li5kMTVmOTA4ZDA0OGYgMTAwNjQ0DQo+IC0tLSBhL2FyY2gv eDg2L2t2bS9tbXUuaA0KPiArKysgYi9hcmNoL3g4Ni9rdm0vbW11LmgNCj4gQEAgLTgzLDEyICs4 MywxNyBAQCBzdGF0aWMgaW5saW5lIGdmbl90IGt2bV9tbXVfbWF4X2dmbih2b2lkKQ0KPiByZXR1 cm4gKDFVTEwgPDwgKG1heF9ncGFfYml0cyAtIFBBR0VfU0hJRlQpKSAtIDE7DQo+IH0NCj4gDQo+ ICtzdGF0aWMgaW5saW5lIGJvb2wgbW11X2hhc19tYmVjKHN0cnVjdCBrdm1fbW11ICptbXUpDQo+ ICt7DQo+ICsgcmV0dXJuIG1tdS0+cm9vdF9yb2xlLmNyNF9zbWVwOw0KPiArfQ0KPiArDQo+IHU4 IGt2bV9tbXVfZ2V0X21heF90ZHBfbGV2ZWwodm9pZCk7DQo+IA0KPiB2b2lkIGt2bV9tbXVfc2V0 X21taW9fc3B0ZV9tYXNrKHU2NCBtbWlvX3ZhbHVlLCB1NjQgbW1pb19tYXNrLCB1NjQgYWNjZXNz X21hc2spOw0KPiB2b2lkIGt2bV9tbXVfc2V0X21taW9fc3B0ZV92YWx1ZShzdHJ1Y3Qga3ZtICpr dm0sIHU2NCBtbWlvX3ZhbHVlKTsNCj4gdm9pZCBrdm1fbW11X3NldF9tZV9zcHRlX21hc2sodTY0 IG1lX3ZhbHVlLCB1NjQgbWVfbWFzayk7DQo+IC12b2lkIGt2bV9tbXVfc2V0X2VwdF9tYXNrcyhi b29sIGhhc19hZF9iaXRzKTsNCj4gK3ZvaWQga3ZtX21tdV9zZXRfZXB0X21hc2tzKGJvb2wgaGFz X2FkX2JpdHMsIGJvb2wgaGFzX21iZWMpOw0KPiANCj4gdm9pZCBrdm1faW5pdF9tbXUoc3RydWN0 IGt2bV92Y3B1ICp2Y3B1KTsNCj4gdm9pZCBrdm1faW5pdF9zaGFkb3dfbnB0X21tdShzdHJ1Y3Qg a3ZtX3ZjcHUgKnZjcHUsIHVuc2lnbmVkIGxvbmcgY3IwLA0KPiBkaWZmIC0tZ2l0IGEvYXJjaC94 ODYva3ZtL21tdS9zcHRlLmMgYi9hcmNoL3g4Ni9rdm0vbW11L3NwdGUuYw0KPiBpbmRleCA3Nzll ZTQ0ODkzYjAuLjZkYTVjNzNkMTAwNCAxMDA2NDQNCj4gLS0tIGEvYXJjaC94ODYva3ZtL21tdS9z cHRlLmMNCj4gKysrIGIvYXJjaC94ODYva3ZtL21tdS9zcHRlLmMNCj4gQEAgLTQ5Nyw3ICs0OTcs NyBAQCB2b2lkIGt2bV9tbXVfc2V0X21lX3NwdGVfbWFzayh1NjQgbWVfdmFsdWUsIHU2NCBtZV9t YXNrKQ0KPiB9DQo+IEVYUE9SVF9TWU1CT0xfRk9SX0tWTV9JTlRFUk5BTChrdm1fbW11X3NldF9t ZV9zcHRlX21hc2spOw0KPiANCj4gLXZvaWQga3ZtX21tdV9zZXRfZXB0X21hc2tzKGJvb2wgaGFz X2FkX2JpdHMpDQo+ICt2b2lkIGt2bV9tbXVfc2V0X2VwdF9tYXNrcyhib29sIGhhc19hZF9iaXRz LCBib29sIGhhc19tYmVjKQ0KPiB7DQo+IGt2bV9hZF9lbmFibGVkID0gaGFzX2FkX2JpdHM7DQo+ IA0KPiBAQCAtNTA2LDEwICs1MDYsMTAgQEAgdm9pZCBrdm1fbW11X3NldF9lcHRfbWFza3MoYm9v bCBoYXNfYWRfYml0cykNCj4gc2hhZG93X2RpcnR5X21hc2sgPSBWTVhfRVBUX0RJUlRZX0JJVDsN Cj4gc2hhZG93X254X21hc2sgPSAwdWxsOw0KPiBzaGFkb3dfeHNfbWFzayA9IFZNWF9FUFRfRVhF Q1VUQUJMRV9NQVNLOw0KPiAtIHNoYWRvd194dV9tYXNrID0gVk1YX0VQVF9FWEVDVVRBQkxFX01B U0s7DQo+ICsgc2hhZG93X3h1X21hc2sgPSBoYXNfbWJlYyA/IFZNWF9FUFRfVVNFUl9FWEVDVVRB QkxFX01BU0sgOiBWTVhfRVBUX0VYRUNVVEFCTEVfTUFTSzsNCj4gc2hhZG93X3ByZXNlbnRfbWFz ayA9IFZNWF9FUFRfU1VQUFJFU1NfVkVfQklUOw0KPiANCj4gLSBzaGFkb3dfYWNjX3RyYWNrX21h c2sgPSBWTVhfRVBUX1JXWF9NQVNLOw0KPiArIHNoYWRvd19hY2NfdHJhY2tfbWFzayA9IFZNWF9F UFRfUldYX01BU0sgfCBzaGFkb3dfeHVfbWFzazsNCj4gc2hhZG93X2hvc3Rfd3JpdGFibGVfbWFz ayA9IEVQVF9TUFRFX0hPU1RfV1JJVEFCTEU7DQo+IHNoYWRvd19tbXVfd3JpdGFibGVfbWFzayAg PSBFUFRfU1BURV9NTVVfV1JJVEFCTEU7DQo+IA0KPiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3Zt L21tdS9zcHRlLmggYi9hcmNoL3g4Ni9rdm0vbW11L3NwdGUuaA0KPiBpbmRleCAwZWQ2OTBmNzhl MTcuLmY1MjYxZDk5M2VhYyAxMDA2NDQNCj4gLS0tIGEvYXJjaC94ODYva3ZtL21tdS9zcHRlLmgN Cj4gKysrIGIvYXJjaC94ODYva3ZtL21tdS9zcHRlLmgNCj4gQEAgLTI0LDcgKzI0LDcgQEANCj4g ICogLSBiaXRzIDU1IChFUFQgb25seSk6IE1NVS13cml0YWJsZQ0KPiAgKiAtIGJpdHMgNTYtNTk6 IHVudXNlZA0KPiAgKiAtIGJpdHMgNjAtNjE6IHR5cGUgb2YgQS9EIHRyYWNraW5nDQo+IC0gKiAt IGJpdHMgNjI6IHVudXNlZA0KPiArICogLSBiaXRzIDYyIChFUFQgb25seSk6IHNhdmVkIFhVIGJp dCBmb3IgZGlzYWJsZWQgQUQNCj4gICovDQo+IA0KPiAvKg0KPiBAQCAtNjUsNyArNjUsOCBAQCBz dGF0aWNfYXNzZXJ0KFNQVEVfVERQX0FEX0VOQUJMRUQgPT0gMCk7DQo+ICAqIG11c3Qgbm90IG92 ZXJsYXAgdGhlIEEvRCB0eXBlIG1hc2suDQo+ICAqLw0KPiAjZGVmaW5lIFNIQURPV19BQ0NfVFJB Q0tfU0FWRURfQklUU19NQVNLIChWTVhfRVBUX1JFQURBQkxFX01BU0sgfCBcDQo+IC0gIFZNWF9F UFRfRVhFQ1VUQUJMRV9NQVNLKQ0KPiArICBWTVhfRVBUX0VYRUNVVEFCTEVfTUFTSyB8IFwNCj4g KyAgVk1YX0VQVF9VU0VSX0VYRUNVVEFCTEVfTUFTSykNCj4gI2RlZmluZSBTSEFET1dfQUNDX1RS QUNLX1NBVkVEX0JJVFNfU0hJRlQgNTINCj4gI2RlZmluZSBTSEFET1dfQUNDX1RSQUNLX1NBVkVE X01BU0sgKFNIQURPV19BQ0NfVFJBQ0tfU0FWRURfQklUU19NQVNLIDw8IFwNCj4gU0hBRE9XX0FD Q19UUkFDS19TQVZFRF9CSVRTX1NISUZUKQ0KPiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3Zt eC9jYXBhYmlsaXRpZXMuaCBiL2FyY2gveDg2L2t2bS92bXgvY2FwYWJpbGl0aWVzLmgNCj4gaW5k ZXggNjA5NDc3ZjE5MGU4Li44M2Q2ODAyOGQ0MTQgMTAwNjQ0DQo+IC0tLSBhL2FyY2gveDg2L2t2 bS92bXgvY2FwYWJpbGl0aWVzLmgNCj4gKysrIGIvYXJjaC94ODYva3ZtL3ZteC9jYXBhYmlsaXRp ZXMuaA0KPiBAQCAtMTUsNiArMTUsNyBAQCBleHRlcm4gYm9vbCBfX3JlYWRfbW9zdGx5IGVuYWJs ZV9lcHQ7DQo+IGV4dGVybiBib29sIF9fcmVhZF9tb3N0bHkgZW5hYmxlX3VucmVzdHJpY3RlZF9n dWVzdDsNCj4gZXh0ZXJuIGJvb2wgX19yZWFkX21vc3RseSBlbmFibGVfZXB0X2FkX2JpdHM7DQo+ IGV4dGVybiBib29sIF9fcmVhZF9tb3N0bHkgZW5hYmxlX3BtbDsNCj4gK2V4dGVybiBib29sIF9f cmVhZF9tb3N0bHkgZW5hYmxlX21iZWM7DQo+IGV4dGVybiBpbnQgX19yZWFkX21vc3RseSBwdF9t b2RlOw0KPiANCj4gI2RlZmluZSBQVF9NT0RFX1NZU1RFTSAwDQo+IEBAIC00MDYsNCArNDA3LDEw IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjcHVfaGFzX25vdGlmeV92bWV4aXQodm9pZCkNCj4gU0VD T05EQVJZX0VYRUNfTk9USUZZX1ZNX0VYSVRJTkc7DQo+IH0NCj4gDQo+ICtzdGF0aWMgaW5saW5l IGJvb2wgY3B1X2hhc19lcHRfbWJlYyh2b2lkKQ0KPiArew0KPiArIHJldHVybiB2bWNzX2NvbmZp Zy5jcHVfYmFzZWRfMm5kX2V4ZWNfY3RybCAmDQo+ICsgU0VDT05EQVJZX0VYRUNfTU9ERV9CQVNF RF9FUFRfRVhFQzsNCj4gK30NCj4gKw0KPiAjZW5kaWYgLyogX19LVk1fWDg2X1ZNWF9DQVBTX0gg Ki8NCj4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvY29tbW9uLmggYi9hcmNoL3g4Ni9r dm0vdm14L2NvbW1vbi5oDQo+IGluZGV4IDFhZmJmMjcyZWZhZS4uNDBmYTcyZjMxZmM3IDEwMDY0 NA0KPiAtLS0gYS9hcmNoL3g4Ni9rdm0vdm14L2NvbW1vbi5oDQo+ICsrKyBiL2FyY2gveDg2L2t2 bS92bXgvY29tbW9uLmgNCj4gQEAgLTkxLDE1ICs5MSwxNSBAQCBzdGF0aWMgaW5saW5lIGludCBf X3ZteF9oYW5kbGVfZXB0X3Zpb2xhdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGdwYV90IGdw YSwNCj4gLyogSXMgaXQgYSBmZXRjaCBmYXVsdD8gKi8NCj4gZXJyb3JfY29kZSB8PSAoZXhpdF9x dWFsaWZpY2F0aW9uICYgRVBUX1ZJT0xBVElPTl9BQ0NfSU5TVFIpDQo+ICAgICAgPyBQRkVSUl9G RVRDSF9NQVNLIDogMDsNCj4gLSAvKg0KPiAtICogZXB0IHBhZ2UgdGFibGUgZW50cnkgaXMgcHJl c2VudD8NCj4gLSAqIG5vdGU6IHVuY29uZGl0aW9uYWxseSBjbGVhciBVU0VSX0VYRUMgdW50aWwg bW9kZS1iYXNlZA0KPiAtICogZXhlY3V0ZSBjb250cm9sIGlzIGltcGxlbWVudGVkDQo+IC0gKi8N Cj4gKyAvKiBlcHQgcGFnZSB0YWJsZSBlbnRyeSBpcyBwcmVzZW50PyAgKi8NCg0Kbml0OiB0aGVy ZSBhcmUgdHdvIHNwYWNlcyBhZnRlciB0aGUgcXVlc3Rpb24gbWFyaw0KDQo+IGVycm9yX2NvZGUg fD0gKGV4aXRfcXVhbGlmaWNhdGlvbiAmDQo+ICAgICAgIChFUFRfVklPTEFUSU9OX1BST1RfTUFT SyAmIH5FUFRfVklPTEFUSU9OX1BST1RfVVNFUl9FWEVDKSkNCj4gICAgICA/IFBGRVJSX1BSRVNF TlRfTUFTSyA6IDA7DQo+IA0KPiArIGlmIChtbXVfaGFzX21iZWModmNwdS0+YXJjaC5tbXUpKQ0K PiArIGVycm9yX2NvZGUgfD0gKGV4aXRfcXVhbGlmaWNhdGlvbiAmIEVQVF9WSU9MQVRJT05fUFJP VF9VU0VSX0VYRUMpDQo+ICsgICAgICA/IFBGRVJSX1BSRVNFTlRfTUFTSyA6IDA7DQo+ICsNCj4g aWYgKGV4aXRfcXVhbGlmaWNhdGlvbiAmIEVQVF9WSU9MQVRJT05fR1ZBX0lTX1ZBTElEKQ0KPiBl cnJvcl9jb2RlIHw9IChleGl0X3F1YWxpZmljYXRpb24gJiBFUFRfVklPTEFUSU9OX0dWQV9UUkFO U0xBVEVEKSA/DQo+ICAgICAgUEZFUlJfR1VFU1RfRklOQUxfTUFTSyA6IFBGRVJSX0dVRVNUX1BB R0VfTUFTSzsNCj4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jIGIvYXJjaC94 ODYva3ZtL3ZteC9tYWluLmMNCj4gaW5kZXggYTQ2Y2NkNjcwNzg1Li5jMGRkNTA2YmVkNjQgMTAw NjQ0DQo+IC0tLSBhL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jDQo+ICsrKyBiL2FyY2gveDg2L2t2 bS92bXgvbWFpbi5jDQo+IEBAIC03NTAsNiArNzUwLDE0IEBAIHN0YXRpYyBpbnQgdnRfc2V0X2lk ZW50aXR5X21hcF9hZGRyKHN0cnVjdCBrdm0gKmt2bSwgdTY0IGlkZW50X2FkZHIpDQo+IHJldHVy biB2bXhfc2V0X2lkZW50aXR5X21hcF9hZGRyKGt2bSwgaWRlbnRfYWRkcik7DQo+IH0NCj4gDQo+ ICtzdGF0aWMgYm9vbCB2dF90ZHBfaGFzX3NtZXAoc3RydWN0IGt2bSAqa3ZtKQ0KPiArew0KPiAr IGlmIChpc190ZChrdm0pKQ0KPiArIHJldHVybiBmYWxzZTsNCj4gKw0KPiArIHJldHVybiB2bXhf dGRwX2hhc19zbWVwKGt2bSk7DQo+ICt9DQo+ICsNCj4gc3RhdGljIHU2NCB2dF9nZXRfbDJfdHNj X29mZnNldChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpDQo+IHsNCj4gLyogVERYIGRvZXNuJ3Qgc3Vw cG9ydCBMMiBndWVzdCBhdCB0aGUgbW9tZW50LiAqLw0KPiBAQCAtOTYxLDYgKzk2OSw3IEBAIHN0 cnVjdCBrdm1feDg2X29wcyB2dF94ODZfb3BzIF9faW5pdGRhdGEgPSB7DQo+IC5zZXRfdHNzX2Fk ZHIgPSB2dF9vcChzZXRfdHNzX2FkZHIpLA0KPiAuc2V0X2lkZW50aXR5X21hcF9hZGRyID0gdnRf b3Aoc2V0X2lkZW50aXR5X21hcF9hZGRyKSwNCj4gLmdldF9tdF9tYXNrID0gdm14X2dldF9tdF9t YXNrLA0KPiArIC50ZHBfaGFzX3NtZXAgPSB2dF9vcCh0ZHBfaGFzX3NtZXApLA0KPiANCj4gLmdl dF9leGl0X2luZm8gPSB2dF9vcChnZXRfZXhpdF9pbmZvKSwNCj4gLmdldF9lbnRyeV9pbmZvID0g dnRfb3AoZ2V0X2VudHJ5X2luZm8pLA0KPiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC9u ZXN0ZWQuYyBiL2FyY2gveDg2L2t2bS92bXgvbmVzdGVkLmMNCj4gaW5kZXggZTRjYjMxNzgwN2Fi Li5jZGMzNWEyNzI4ZDkgMTAwNjQ0DQo+IC0tLSBhL2FyY2gveDg2L2t2bS92bXgvbmVzdGVkLmMN Cj4gKysrIGIvYXJjaC94ODYva3ZtL3ZteC9uZXN0ZWQuYw0KPiBAQCAtMjQ0MCw2ICsyNDQwLDcg QEAgc3RhdGljIHZvaWQgcHJlcGFyZV92bWNzMDJfZWFybHkoc3RydWN0IHZjcHVfdm14ICp2bXgs IHN0cnVjdCBsb2FkZWRfdm1jcyAqdm1jczANCj4gIFNFQ09OREFSWV9FWEVDX1ZJUlRVQUxfSU5U Ul9ERUxJVkVSWSB8DQo+ICBTRUNPTkRBUllfRVhFQ19BUElDX1JFR0lTVEVSX1ZJUlQgfA0KPiAg U0VDT05EQVJZX0VYRUNfRU5BQkxFX1ZNRlVOQyB8DQo+ICsgIFNFQ09OREFSWV9FWEVDX01PREVf QkFTRURfRVBUX0VYRUMgfA0KPiAgU0VDT05EQVJZX0VYRUNfREVTQyk7DQo+IA0KPiBpZiAobmVz dGVkX2NwdV9oYXModm1jczEyLA0KPiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC92bXgu YyBiL2FyY2gveDg2L2t2bS92bXgvdm14LmMNCj4gaW5kZXggZTI3ODY4ZmE0ZWI3Li4zOTA1YmM4 NWE0NmMgMTAwNjQ0DQo+IC0tLSBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMNCj4gKysrIGIvYXJj aC94ODYva3ZtL3ZteC92bXguYw0KPiBAQCAtMTEzLDYgKzExMyw5IEBAIG1vZHVsZV9wYXJhbShl bXVsYXRlX2ludmFsaWRfZ3Vlc3Rfc3RhdGUsIGJvb2wsIDA0NDQpOw0KPiBzdGF0aWMgYm9vbCBf X3JlYWRfbW9zdGx5IGZhc3Rlb2kgPSAxOw0KPiBtb2R1bGVfcGFyYW0oZmFzdGVvaSwgYm9vbCwg MDQ0NCk7DQo+IA0KPiArYm9vbCBfX3JlYWRfbW9zdGx5IGVuYWJsZV9tYmVjID0gMTsNCj4gK21v ZHVsZV9wYXJhbV9uYW1lZChtYmVjLCBlbmFibGVfbWJlYywgYm9vbCwgMDQ0NCk7DQo+ICsNCj4g bW9kdWxlX3BhcmFtKGVuYWJsZV9hcGljdiwgYm9vbCwgMDQ0NCk7DQo+IG1vZHVsZV9wYXJhbShl bmFibGVfaXBpdiwgYm9vbCwgMDQ0NCk7DQo+IA0KPiBAQCAtMjgwOSw2ICsyODEyLDcgQEAgc3Rh dGljIGludCBzZXR1cF92bWNzX2NvbmZpZyhzdHJ1Y3Qgdm1jc19jb25maWcgKnZtY3NfY29uZiwN Cj4gcmV0dXJuIC1FSU87DQo+IA0KPiB2bXhfY2FwLT5lcHQgPSAwOw0KPiArIF9jcHVfYmFzZWRf Mm5kX2V4ZWNfY29udHJvbCAmPSB+U0VDT05EQVJZX0VYRUNfTU9ERV9CQVNFRF9FUFRfRVhFQzsN Cj4gX2NwdV9iYXNlZF8ybmRfZXhlY19jb250cm9sICY9IH5TRUNPTkRBUllfRVhFQ19FUFRfVklP TEFUSU9OX1ZFOw0KPiB9DQo+IGlmICghKF9jcHVfYmFzZWRfMm5kX2V4ZWNfY29udHJvbCAmIFNF Q09OREFSWV9FWEVDX0VOQUJMRV9WUElEKSAmJg0KPiBAQCAtNDg0NCw2ICs0ODQ4LDkgQEAgc3Rh dGljIHUzMiB2bXhfc2Vjb25kYXJ5X2V4ZWNfY29udHJvbChzdHJ1Y3QgdmNwdV92bXggKnZteCkN Cj4gKi8NCj4gZXhlY19jb250cm9sICY9IH5TRUNPTkRBUllfRVhFQ19FTkFCTEVfVk1GVU5DOw0K PiANCj4gKyBpZiAoIWVuYWJsZV9tYmVjKQ0KPiArIGV4ZWNfY29udHJvbCAmPSB+U0VDT05EQVJZ X0VYRUNfTU9ERV9CQVNFRF9FUFRfRVhFQzsNCj4gKw0KPiAvKiBTRUNPTkRBUllfRVhFQ19ERVND IGlzIGVuYWJsZWQvZGlzYWJsZWQgb24gd3JpdGVzIHRvIENSNC5VTUlQLA0KPiAqIGluIHZteF9z ZXRfY3I0LiAgKi8NCj4gZXhlY19jb250cm9sICY9IH5TRUNPTkRBUllfRVhFQ19ERVNDOw0KPiBA QCAtNzkzMiw2ICs3OTM5LDExIEBAIHU4IHZteF9nZXRfbXRfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUg KnZjcHUsIGdmbl90IGdmbiwgYm9vbCBpc19tbWlvKQ0KPiByZXR1cm4gKE1UUlJfVFlQRV9XUkJB Q0sgPDwgVk1YX0VQVF9NVF9FUFRFX1NISUZUKTsNCj4gfQ0KPiANCj4gK2Jvb2wgdm14X3RkcF9o YXNfc21lcChzdHJ1Y3Qga3ZtICprdm0pDQo+ICt7DQo+ICsgcmV0dXJuIGVuYWJsZV9tYmVjOw0K PiArfQ0KPiArDQo+IHN0YXRpYyB2b2lkIHZtY3Nfc2V0X3NlY29uZGFyeV9leGVjX2NvbnRyb2wo c3RydWN0IHZjcHVfdm14ICp2bXgsIHUzMiBuZXdfY3RsKQ0KPiB7DQo+IC8qDQo+IEBAIC04Nzc5 LDYgKzg3OTEsOCBAQCBfX2luaXQgaW50IHZteF9oYXJkd2FyZV9zZXR1cCh2b2lkKQ0KPiBwbGVf d2luZG93X3NocmluayA9IDA7DQo+IH0NCj4gDQo+ICsgaWYgKCFjcHVfaGFzX2VwdF9tYmVjKCkp DQo+ICsgZW5hYmxlX21iZWMgPSAwOw0KPiBpZiAoIWNwdV9oYXNfdm14X2FwaWN2KCkpDQo+IGVu YWJsZV9hcGljdiA9IDA7DQo+IGlmICghZW5hYmxlX2FwaWN2KQ0KPiBAQCAtODc5OCw3ICs4ODEy LDcgQEAgX19pbml0IGludCB2bXhfaGFyZHdhcmVfc2V0dXAodm9pZCkNCj4gc2V0X2JpdCgwLCB2 bXhfdnBpZF9iaXRtYXApOyAvKiAwIGlzIHJlc2VydmVkIGZvciBob3N0ICovDQo+IA0KPiBpZiAo ZW5hYmxlX2VwdCkNCj4gLSBrdm1fbW11X3NldF9lcHRfbWFza3MoZW5hYmxlX2VwdF9hZF9iaXRz KTsNCj4gKyBrdm1fbW11X3NldF9lcHRfbWFza3MoZW5hYmxlX2VwdF9hZF9iaXRzLCBlbmFibGVf bWJlYyk7DQo+IGVsc2UNCj4gdnRfeDg2X29wcy5nZXRfbXRfbWFzayA9IE5VTEw7DQo+IA0KPiBk aWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC92bXguaCBiL2FyY2gveDg2L2t2bS92bXgvdm14 LmgNCj4gaW5kZXggNzBiZmU4MWRlYTU0Li41OTQ3MTdlNjE5ZDkgMTAwNjQ0DQo+IC0tLSBhL2Fy Y2gveDg2L2t2bS92bXgvdm14LmgNCj4gKysrIGIvYXJjaC94ODYva3ZtL3ZteC92bXguaA0KPiBA QCAtNTcwLDYgKzU3MCw3IEBAIHN0YXRpYyBpbmxpbmUgdTggdm14X2dldF9ydmkodm9pZCkNCj4g U0VDT05EQVJZX0VYRUNfRU5BQkxFX1ZNRlVOQyB8IFwNCj4gU0VDT05EQVJZX0VYRUNfQlVTX0xP Q0tfREVURUNUSU9OIHwgXA0KPiBTRUNPTkRBUllfRVhFQ19OT1RJRllfVk1fRVhJVElORyB8IFwN Cj4gKyBTRUNPTkRBUllfRVhFQ19NT0RFX0JBU0VEX0VQVF9FWEVDIHwgXA0KPiBTRUNPTkRBUllf RVhFQ19FTkNMU19FWElUSU5HIHwgXA0KPiBTRUNPTkRBUllfRVhFQ19FUFRfVklPTEFUSU9OX1ZF KQ0KPiANCj4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oIGIvYXJjaC94 ODYva3ZtL3ZteC94ODZfb3BzLmgNCj4gaW5kZXggZDA5YWJlYWMyYjU2Li42OWNmMjc2YmU4OGUg MTAwNjQ0DQo+IC0tLSBhL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oDQo+ICsrKyBiL2FyY2gv eDg2L2t2bS92bXgveDg2X29wcy5oDQo+IEBAIC0xMDMsNiArMTAzLDcgQEAgdm9pZCB2bXhfbG9h ZF9lb2lfZXhpdG1hcChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCAqZW9pX2V4aXRfYml0bWFw KTsNCj4gaW50IHZteF9zZXRfdHNzX2FkZHIoc3RydWN0IGt2bSAqa3ZtLCB1bnNpZ25lZCBpbnQg YWRkcik7DQo+IGludCB2bXhfc2V0X2lkZW50aXR5X21hcF9hZGRyKHN0cnVjdCBrdm0gKmt2bSwg dTY0IGlkZW50X2FkZHIpOw0KPiB1OCB2bXhfZ2V0X210X21hc2soc3RydWN0IGt2bV92Y3B1ICp2 Y3B1LCBnZm5fdCBnZm4sIGJvb2wgaXNfbW1pbyk7DQo+ICtib29sIHZteF90ZHBfaGFzX3NtZXAo c3RydWN0IGt2bSAqa3ZtKTsNCj4gDQo+IHZvaWQgdm14X2dldF9leGl0X2luZm8oc3RydWN0IGt2 bV92Y3B1ICp2Y3B1LCB1MzIgKnJlYXNvbiwNCj4gICAgICAgdTY0ICppbmZvMSwgdTY0ICppbmZv MiwgdTMyICppbnRyX2luZm8sIHUzMiAqZXJyb3JfY29kZSk7DQo+IC0tIA0KPiAyLjUyLjANCj4g DQo+IA0KDQo=