Received: by 2002:a05:7412:31a9:b0:e2:908c:2ebd with SMTP id et41csp2700206rdb; Tue, 12 Sep 2023 09:27:14 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGVU/PPIrffRvSAL/SIMxQBvbZOfjZXjmz3C6EizKjHoN4Fvl92XGev7vF3eJ7pVulpVcJf X-Received: by 2002:a05:6a20:6a07:b0:14c:383b:294a with SMTP id p7-20020a056a206a0700b0014c383b294amr13570691pzk.5.1694536034536; Tue, 12 Sep 2023 09:27:14 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1694536034; cv=pass; d=google.com; s=arc-20160816; b=v2pyAM4eDzFdKUSL7TcJK049GRd9TIEVOl4n3vjvaFbxXkqW8Li2GjL6XWuw+eyhTa yJHwXg/Y78R4edfLB+mKoOr2BmKPG8DJCcSlR9ZNOLVIpXr69oBE8Vq4v/9S4eB6x+9u rHl+ifMPbDYHOkjkPZAFjUtxxGxJa69jtufbd7vBfVXiv86djR7yO9BkhKtqp14kfTZm dTJ7qMI+hz6O/dNc0zXPid/ZTQll8QpizuxIExXxpmQz91sncppeyt6HCtRSHC2KdZhX Wz57ozjIStGgW3sZrbyt7sx6XlYfrmbVGVGsajeTtwOxuTu/JHZzFrBDqzSGRi5sFd2g A9Fg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:thread-topic:subject:cc:to:from :dkim-signature:dkim-signature; bh=Cst6JOKQRYhZueYtZvQs8ds4ozKbBZ9sMLULiVD8wZM=; fh=VE1trls+lJr+kTc+J+X2ZbrFyexX+WMVztoekZXEI3g=; b=rlqmsMUSk+wGOZRj4cRJSJ9gWJZhfGyQix8yVyXt3VWe5fIpO7vWSO4LLHszZHKHaD RYMv/QIb14hO188SpVs47VKf1z18hce0W7yJrqCLiSilbXLnLtR0O/1VntcEiCV4QziE JVkRrdQz/Fz4ZjvLhuHH8Lbv2XPZBS4QgJrAsbqqUctcZfZ+bmmM6q2m5t+ZH+vMf6zN v0b0zPUom3OAYZibD+NtzQM1RCOJX5Wu/oonf6sOUP3NqlOf0rXIq8Vkj6E+QfcC0mHr swgzzKJIPO5oet0EPNDAfwZMH684uA2WsZHKH/rQi/aNMTzsSFMYGtBrlV2oGZfP/2Ys aTVQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@microchip.com header.s=mchp header.b=gAkRYQ28; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b=XAmOSqBs; arc=pass (i=1 spf=pass spfdomain=microchip.com dkim=pass dkdomain=microchip.com dmarc=pass fromdomain=microchip.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=microchip.com Return-Path: Received: from fry.vger.email (fry.vger.email. [23.128.96.38]) by mx.google.com with ESMTPS id w29-20020a63161d000000b0056949ba3f3fsi6417489pgl.253.2023.09.12.09.27.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Sep 2023 09:27:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) client-ip=23.128.96.38; Authentication-Results: mx.google.com; dkim=pass header.i=@microchip.com header.s=mchp header.b=gAkRYQ28; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b=XAmOSqBs; arc=pass (i=1 spf=pass spfdomain=microchip.com dkim=pass dkdomain=microchip.com dmarc=pass fromdomain=microchip.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=microchip.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id 932E781C0C84; Tue, 12 Sep 2023 03:46:17 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234198AbjILKp7 (ORCPT + 99 others); Tue, 12 Sep 2023 06:45:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36248 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234507AbjILKoz (ORCPT ); Tue, 12 Sep 2023 06:44:55 -0400 Received: from esa.microchip.iphmx.com (esa.microchip.iphmx.com [68.232.154.123]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AB6CE10D2 for ; Tue, 12 Sep 2023 03:44:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1694515480; x=1726051480; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=Cst6JOKQRYhZueYtZvQs8ds4ozKbBZ9sMLULiVD8wZM=; b=gAkRYQ28m1i7Dg0QTmB8GrCzcM7PabyPDpQgCk+WwE880nJ1nLEvdGUx 9D/la9ky6qgAeE1biNdYhBPm2KhyLaEwr66tZ4fNbcY0PxyVLUDn4eDtd fGI7YORLQKajdp2Eq/X5lX8ShalEnh+JFUwE7n2CzR+kciopAYMzNt+Ea 5GKKtmOfBhWkoKzhVjEVB7SL0847uXHtHRj6eV7Gep1HZA2VHZxBrUuXA aQcbf8T8sbp8gwB1u7gRmGkizYMEFZfhopwbd7aFMHVSeMjA8eaD4aQTq 8th526e1MvFtgkm7lnTQeobFxhSJ/1N9AXjIs66NIHLz9yaYNJJTAsU9X A==; X-CSE-ConnectionGUID: TiaSJnz2QZScr7UPF8L4rA== X-CSE-MsgGUID: vrO6X55HQFqXjO3WZkGRmw== X-ThreatScanner-Verdict: Negative X-IronPort-AV: E=Sophos;i="6.02,139,1688454000"; d="scan'208";a="4069903" X-Amp-Result: SKIPPED(no attachment in message) Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa4.microchip.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 12 Sep 2023 03:44:39 -0700 Received: from chn-vm-ex02.mchp-main.com (10.10.85.144) by chn-vm-ex03.mchp-main.com (10.10.85.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Tue, 12 Sep 2023 03:44:28 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21 via Frontend Transport; Tue, 12 Sep 2023 03:44:28 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=X5BzhVkzs1+63fP47Lstydh9atomRjX1qLgREvAH8f58hW9HhKkgwR7dfOTG7iXC+h0E7Nz2fYm9yHvBU0mSYMFwF6MBck9IejTV34bVAt9ficFPo9sKNBQa4TmbGnUJbkL2JDyUepbPhhIic9NEs8TtaJxrgpqhYBTjAfA3zyZuCa7G/sz1Qdikj2R1G/qK6RYmtrku4lXYXg5+JEvBqR2cYjommn87GHOPTx4HEabVunkVcA/fsL97i4kQ0MMH8bwxMGRcMc2afstTHQvIUxZ0Z2uv0XK9bID8g7kcdAat1VLdSHb+NM+/SI343efi8bu1bdO2h4nwQ4ajDmAo2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Cst6JOKQRYhZueYtZvQs8ds4ozKbBZ9sMLULiVD8wZM=; b=kEGCuqRMbgLsvyLjOJ4wwZaecuSmjYtUUPnLPpoM6evCJc7QouR+LdhnFCykgWqLrQcuqKG1slodpdDeUtcg5rwdaB9Oc95Ngmx2uMuwCY1ZgWm0xujsUyhNirS0e+qHUVd4spe8P8eUNPBlCbCzE5VOxG5GqkDsfIwB2/1P2KSoV/4iDludGHcj4gUyArEtDuZCuDL+iiRgGfpojyV6BxInKmy6w69AXBsO9VF4HehBiCav7zfCgwXWCz4mQBJlqsPWiXJZmcvQq2qg9ylQs+K7gQChE1NHi0WYVq6RiUlfbyKgPHoOzBRP9+g5H1BDhBsLzqfe0WMok67vwb8KNQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchiptechnology.onmicrosoft.com; s=selector2-microchiptechnology-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Cst6JOKQRYhZueYtZvQs8ds4ozKbBZ9sMLULiVD8wZM=; b=XAmOSqBsrPDf2jfp/s5oPhYykj7P28zw9tjImI16TP6RyvCfxGlLmKNV+AOz7o83/46lhiU8eBsd4lz09A5Xu/ERnTW8wkEGRGUIeaU37YiXss2CJpUIRevq1pQxKubblnnKgFRt7zmzrOTXdQEN4X+4KG5n7pEkM6i41xlmnz4= Received: from IA1PR11MB6193.namprd11.prod.outlook.com (2603:10b6:208:3eb::19) by CO1PR11MB5057.namprd11.prod.outlook.com (2603:10b6:303:6c::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6768.37; Tue, 12 Sep 2023 10:44:25 +0000 Received: from IA1PR11MB6193.namprd11.prod.outlook.com ([fe80::8bf2:b185:cfb9:de89]) by IA1PR11MB6193.namprd11.prod.outlook.com ([fe80::8bf2:b185:cfb9:de89%5]) with mapi id 15.20.6768.029; Tue, 12 Sep 2023 10:44:25 +0000 From: To: , , , , , , , , , , CC: , , , , , , Subject: Re: [PATCH v4 5/8] drm: atmel_hlcdc: Add support for XLCDC in atmel LCD driver Thread-Topic: [PATCH v4 5/8] drm: atmel_hlcdc: Add support for XLCDC in atmel LCD driver Thread-Index: AQHZ11OCc5aAf05oHUOQCl37yNHQKLASxGkAgARZH4A= Date: Tue, 12 Sep 2023 10:44:25 +0000 Message-ID: References: <20230825125444.93222-1-manikandan.m@microchip.com> <20230825125444.93222-6-manikandan.m@microchip.com> <1a3154b5-e849-dc60-8434-892b38cec87e@tuxon.dev> In-Reply-To: <1a3154b5-e849-dc60-8434-892b38cec87e@tuxon.dev> Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microchip.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: IA1PR11MB6193:EE_|CO1PR11MB5057:EE_ x-ms-office365-filtering-correlation-id: b12ef4b2-d7cf-49da-fd0d-08dbb37d3b61 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: HOY6mHSmOe/qJClWVok1EOg4MxN+4nW11xHtB8uM8Cz35Ac43oPbzLfhTPIbIgidN1o+zw4rkKV/5JLL3c+4LQ4M03TGEmS6bjTHbGaWlnF26kaVyKKWepcwFkI/gXe7GLTAJ4quxwlhyvf0QyqrBQMHFmIjkvBtPU6cStwf27tlSZzJV3rJt6ThS63ba0281HCoe38tm5iCRxlBcg3hGwJmQUZQ0VlDlywnwsFWZYpQTeI5AO3WFTH3O9tvch2bvblDy1JAhITQbHcmMmLHX1LvEetPCoIPo6xRsYV12CpVuK+uLGORMRP8R8C/WyY1vM9KUIRlNduZpk1Y/sJezGlRqK2GVU6fJKRKiasbbgVgtUZL8TPSPV3B10OO4bHZAFAHM11o3Sj9d83KxuFVa7WW5fxxROXXidB5bx8xqg/wRiHFegKJQd8OCiMUnMFQWbDOTk4wRc+SUf3AQWa/MdzI+nzDFelSiYShEnafaJMJjSgqtglFKlyn2sWE+R2KNQ8lol8Q6Lw3q+UEkGof3u7BVG4XIskKYJ6x9SoMKfsXOnsABikpEBM5oDiQiUle1/4Jm5tSplBn+iKn4Xt/I765btYovWUb7zfoEvwwhcp4zs3QPnyFEP3xXo3ibh3Vqizbj2+1p0+pn/wJ0dz/IgdbVvfxm1s9+aH8+JUdUSJJ520+0cS1EUbnp4mdyRr6 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR11MB6193.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(396003)(376002)(39860400002)(346002)(136003)(186009)(1800799009)(451199024)(66946007)(83380400001)(71200400001)(107886003)(478600001)(6512007)(53546011)(6486002)(6506007)(36756003)(31696002)(31686004)(2616005)(122000001)(66446008)(921005)(86362001)(26005)(38070700005)(38100700002)(66476007)(66556008)(54906003)(76116006)(64756008)(91956017)(110136005)(316002)(966005)(30864003)(7416002)(2906002)(41300700001)(5660300002)(8676002)(8936002)(4326008)(21314003)(45980500001)(579004)(559001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WkRqdGtYU3dDODlJT0t2aFEzd0IzM3RaamtCbVpCeTN3bkFvMEdjbTZaNDZ6?= =?utf-8?B?U05WTXJmSG5uUm5SM0RDTHJCd2hyWkFXdUVLYTVqZnUvR1did3M4bUlwRDJt?= =?utf-8?B?YXl4czdOQm52elJDV1ZzQ1NtaTZzTSsxL0xsV1RHdkVqaldOcnhTRmVEaGc0?= =?utf-8?B?cVpjTjlQTzZoOGEzdDB0cjBGNHd4Z2NxZUdQZytYMFlVY0l5R3Zaa3c3aDR4?= =?utf-8?B?MHI5NGhiNTRHZzJMNnFDOWZPMnZ6MisrRXc4WGlGbm1IclU2N3dINDNYNW1P?= =?utf-8?B?UmVScHlwRWpWNndPSFk0S3JiVzgyS0V3aXZCMldHbWR0amlwa041WmcxWTZI?= =?utf-8?B?SXhXb3NPaFJ4Nk1keWdIQjZ6d1BnTFEvNW54eXkxbEdTa013YXhobUNNR2FR?= =?utf-8?B?Q05idnVOUnlTanc4Q2RONDFHYmNpRnhmaWNrbTJRSWRzQ3FaZWwrSEVYdUR3?= =?utf-8?B?bXhabmZ3MjRJTkE5U2s4OGhpdDZYcmhXTFZLNDBEZ3QzdFVJVkVzcXRibVVo?= =?utf-8?B?WWpGYjlrUXlNODFyK29jRWRIcVVqajZicVN0VDJaVldDUmNWZGhHTk80b3Ru?= =?utf-8?B?K0o5bGJPYlV6cUdzeVc1MmtYdlVOUmRVZXgxVmlINmc5NnJSV3N4bFRtY1NX?= =?utf-8?B?ZGw4VFBzbGdvWW4vRVBlU2lHZVQ5YW1LVGpNSVFFUk9DTmFFejlwems1emNq?= =?utf-8?B?YmpJYzVVQmlYaDM4M3RtczFFQ0hLbW8wNFl4TkxROUJ0WEpYekU3M2FqRDMv?= =?utf-8?B?OUhkbk1CL2h5SE1vaVkzMGNMcEo1MEg5MUV4dU9obEJ1SnVCRjl1OHBNVDFm?= =?utf-8?B?OUxTREh1K2tVbXBPR3pnS0lTVWdMeVd2WXhKZFdtYzcrYTc0Qjd3SnV2V3FW?= =?utf-8?B?K3pPaGJQMk5HbDFMcTBSbGZvWkJxZTQ5bDdEZ0F5bkdHUXN6bEFyVjZ4WTdB?= =?utf-8?B?Q3dSQmxIQ0hrZWVEN2x6dllXSUQxUm5yM1VlMFU1ay9zdzQzSFhBOWtNQ1du?= =?utf-8?B?bTZjVzk3eXI3Um0wNzFnU2lJdGtZeU15UUx5a2daQStsVjZVMzI5QzBnQy94?= =?utf-8?B?cGNHek4rRFR1WG9rcVRGUzhmNjhFa0NKWWs4UUZmVGlzT2pBMGlVVzBoRXls?= =?utf-8?B?NXovOGhkdlVheDdwT1R5cWRYWjNIdFhFa0F3dUFlOHdTeG81YXBORExhRWNV?= =?utf-8?B?WWlXcTNyeG5lcWZrQWdEcXlnZkZUMHpsTWt3RVRxT0NoTGdqNHhIZHVYNW9r?= =?utf-8?B?eEZ0REN4ZnhZOG40WGtjL1RQd0w4aWFTYjNidlFsbnB1N2V1R0xvY1hNdGRt?= =?utf-8?B?YzlNWFYrMHVSWUFaVGw4Tll3Q3YrQ1RVaHprRmU1RnpmWnNsb2x0NG1Kc2s0?= =?utf-8?B?ZWtoRmxVZXcrNzN2QUpVM0JFZllBM3JoVkVpQXphLzZHVDQyY0lXQTdVWEQ1?= =?utf-8?B?L2hWNmJnL2xtTUVnTitrVHU3cTRGNzlTSWd0cDBuai9tcG9RYVhUdU1Lc1Rw?= =?utf-8?B?M25RN0NmUjAwTktYQkN3UnN6eU03YWEySGlSd3liZXY5WEFYUTBheFJIQVJV?= =?utf-8?B?cjFUYUtOQ0VxY2FyMlZPc1JXUFI0Z0FDdWFjaFBJNE9JNk5pYi9xWEZ6SDFQ?= =?utf-8?B?TnBXeStQOHR3S0FXY0oyQVlXVmdUaVY5a21ydHpvWER3UjhBaE01djlXQ0h0?= =?utf-8?B?N3dGV29LeC9OekN3SVV2bXJNd2ZGamJwa3NEa1JJendEYTBRWmRRVitZQ3Rt?= =?utf-8?B?aFN5TnZOU0h6MCtFb3IwYytIWGltcFV4UHppWGRna2dIWXpGMWprQTVaMzZJ?= =?utf-8?B?dDZLYmk5V0o0OENRdFJ6UzZSUnVQY3lENG5rcWZBeFh4bXJocnJRMEdFd0E1?= =?utf-8?B?M1hFUTlhaTZRNlB6MFB4TWRhdjNEZzl3Z0dDVFhEc1hiSllWaHNhdHA4a3I4?= =?utf-8?B?N1M5SVZLM0ZOTm42M3NzSndFeVkvLytSQ2hoWjhUVFo5L2hmZGptdWswSFlh?= =?utf-8?B?S0RvVkFGSGowU1RuOHQ3TUlaY1BVUUNZTEYzY21hajkwTHdzKzJZS2RTMFJ0?= =?utf-8?B?bU5xNURyL0NJSTViVW5jQkRsYzUyK1I5OUZuTVh3S1pVRnBxUHhHbGJ2NkRN?= =?utf-8?Q?0IkZzZ289nuXNSQZ++zNoCHiz?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: IA1PR11MB6193.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b12ef4b2-d7cf-49da-fd0d-08dbb37d3b61 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Sep 2023 10:44:25.1428 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 3Er4VrMEKFlkgb1aGjFaRVeMxAGdWhHkostXTiwQesTJaJs2e+MiWK+weYBYRCOqcm0o0h7YLbsWYSRPVG4TZBFO3lM8Xqvw/uGoVgi2vKU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB5057 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (fry.vger.email [0.0.0.0]); Tue, 12 Sep 2023 03:46:17 -0700 (PDT) X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on fry.vger.email T24gMDkvMDkvMjMgOTo1MCBwbSwgY2xhdWRpdSBiZXpuZWEgd3JvdGU6DQo+IFtZb3UgZG9uJ3Qg b2Z0ZW4gZ2V0IGVtYWlsIGZyb20gY2xhdWRpdS5iZXpuZWFAdHV4b24uZGV2LiBMZWFybiB3aHkg dGhpcyBpcyBpbXBvcnRhbnQgYXQgaHR0cHM6Ly9ha2EubXMvTGVhcm5BYm91dFNlbmRlcklkZW50 aWZpY2F0aW9uIF0NCj4gDQo+IEVYVEVSTkFMIEVNQUlMOiBEbyBub3QgY2xpY2sgbGlua3Mgb3Ig b3BlbiBhdHRhY2htZW50cyB1bmxlc3MgeW91IGtub3cgdGhlIGNvbnRlbnQgaXMgc2FmZQ0KPiAN Cj4gSGksIE1hbmlrYW5kYW4sDQo+IA0KPiBPbiA4LzI1LzIzIDE1OjU0LCBNYW5pa2FuZGFuIE11 cmFsaWRoYXJhbiB3cm90ZToNCj4+IC0gWExDREMgaW4gU0FNOVg3IGhhcyBkaWZmZXJlbnQgc2V0 cyBvZiByZWdpc3RlcnMgYW5kIGFkZGl0aW9uYWwNCj4+IGNvbmZpZ3VyYXRpb24gYml0cyB3aGVu IGNvbXBhcmVkIHRvIHByZXZpb3VzIEhMQ0RDIElQLiBSZWFkL3dyaXRlDQo+PiBvcGVyYXRpb24g b24gdGhlIGNvbnRyb2xsZXIgcmVnaXN0ZXJzIGlzIG5vdyBzZXBhcmF0ZWQgdXNpbmcgdGhlDQo+ PiBYTENEQyBzdGF0dXMgZmxhZy4NCj4+ICAgICAgICAtIEhFTyBzY2FsaW5nLCB3aW5kb3cgcmVz YW1wbGluZywgQWxwaGEgYmxlbmRpbmcsIFlVVi10by1SR0INCj4+IGNvbnZlcnNpb24gaW4gWExD REMgaXMgZGVyaXZlZCBhbmQgaGFuZGxlZCB1c2luZyBhZGRpdGlvbmFsDQo+PiBjb25maWd1cmF0 aW9uIGJpdHMgYW5kIHJlZ2lzdGVycy4NCj4+ICAgICAgICAtIFdyaXRpbmcgb25lIHRvIHRoZSBF bmFibGUgZmllbGRzIG9mIGVhY2ggbGF5ZXIgaW4gTENEX0FUVFJFDQo+PiBpcyByZXF1aXJlZCB0 byByZWZsZWN0IHRoZSB2YWx1ZXMgc2V0IGluIENvbmZpZ3VyYXRpb24sIEZCQSwgRW5hYmxlDQo+ PiByZWdpc3RlcnMgb2YgZWFjaCBsYXllcg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IE1hbmlrYW5k YW4gTXVyYWxpZGhhcmFuIDxtYW5pa2FuZGFuLm1AbWljcm9jaGlwLmNvbT4NCj4+IENvLWRldmVs b3BlZC1ieTogSGFyaSBQcmFzYXRoIEd1anVsYW4gRWxhbmdvIDxIYXJpLlByYXNhdGhHRUBtaWNy b2NoaXAuY29tPg0KPj4gU2lnbmVkLW9mZi1ieTogSGFyaSBQcmFzYXRoIEd1anVsYW4gRWxhbmdv IDxIYXJpLlByYXNhdGhHRUBtaWNyb2NoaXAuY29tPg0KPj4gQ28tZGV2ZWxvcGVkLWJ5OiBEdXJh aSBNYW5pY2thbSBLUiA8ZHVyYWkubWFuaWNrYW1rckBtaWNyb2NoaXAuY29tPg0KPj4gU2lnbmVk LW9mZi1ieTogRHVyYWkgTWFuaWNrYW0gS1IgPGR1cmFpLm1hbmlja2Fta3JAbWljcm9jaGlwLmNv bT4NCj4+IC0tLQ0KPj4gICAuLi4vZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19jcnRj LmMgICAgfCAgMjUgKy0NCj4+ICAgLi4uL2dwdS9kcm0vYXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNf cGxhbmUuYyAgIHwgMzMzICsrKysrKysrKysrKysrKy0tLQ0KPj4gICAyIGZpbGVzIGNoYW5nZWQs IDI5OSBpbnNlcnRpb25zKCspLCA1OSBkZWxldGlvbnMoLSkNCj4+DQo+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX2NydGMuYyBiL2RyaXZlcnMv Z3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19jcnRjLmMNCj4+IGluZGV4IGNjNWNmNGMy ZmFmNy4uNGIxMWExZGU4YWY0IDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2F0bWVs LWhsY2RjL2F0bWVsX2hsY2RjX2NydGMuYw0KPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2F0bWVs LWhsY2RjL2F0bWVsX2hsY2RjX2NydGMuYw0KPj4gQEAgLTc5LDYgKzc5LDcgQEAgc3RhdGljIHZv aWQgYXRtZWxfaGxjZGNfY3J0Y19tb2RlX3NldF9ub2ZiKHN0cnVjdCBkcm1fY3J0YyAqYykNCj4+ ICAgICAgICB1bnNpZ25lZCBpbnQgbWFzayA9IEFUTUVMX0hMQ0RDX0NMS0RJVl9NQVNLIHwgQVRN RUxfSExDRENfQ0xLUE9MOw0KPj4gICAgICAgIHVuc2lnbmVkIGludCBjZmcgPSAwOw0KPj4gICAg ICAgIGludCBkaXYsIHJldDsNCj4+ICsgICAgIGJvb2wgaXNfeGxjZGMgPSBjcnRjLT5kYy0+ZGVz Yy0+aXNfeGxjZGM7DQo+Pg0KPj4gICAgICAgIC8qIGdldCBlbmNvZGVyIGZyb20gY3J0YyAqLw0K Pj4gICAgICAgIGRybV9mb3JfZWFjaF9lbmNvZGVyKGVuX2l0ZXIsIGRkZXYpIHsNCj4+IEBAIC0x NjQsMTAgKzE2NSwxMCBAQCBzdGF0aWMgdm9pZCBhdG1lbF9obGNkY19jcnRjX21vZGVfc2V0X25v ZmIoc3RydWN0IGRybV9jcnRjICpjKQ0KPj4gICAgICAgIHN0YXRlID0gZHJtX2NydGNfc3RhdGVf dG9fYXRtZWxfaGxjZGNfY3J0Y19zdGF0ZShjLT5zdGF0ZSk7DQo+PiAgICAgICAgY2ZnID0gc3Rh dGUtPm91dHB1dF9tb2RlIDw8IDg7DQo+Pg0KPj4gLSAgICAgaWYgKGFkai0+ZmxhZ3MgJiBEUk1f TU9ERV9GTEFHX05WU1lOQykNCj4+ICsgICAgIGlmICghaXNfeGxjZGMgJiYgKGFkai0+ZmxhZ3Mg JiBEUk1fTU9ERV9GTEFHX05WU1lOQykpDQo+PiAgICAgICAgICAgICAgICBjZmcgfD0gQVRNRUxf SExDRENfVlNQT0w7DQo+Pg0KPj4gLSAgICAgaWYgKGFkai0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFH X05IU1lOQykNCj4+ICsgICAgIGlmICghaXNfeGxjZGMgJiYgKGFkai0+ZmxhZ3MgJiBEUk1fTU9E RV9GTEFHX05IU1lOQykpDQo+PiAgICAgICAgICAgICAgICBjZmcgfD0gQVRNRUxfSExDRENfSFNQ T0w7DQo+Pg0KPj4gICAgICAgIHJlZ21hcF91cGRhdGVfYml0cyhyZWdtYXAsIEFUTUVMX0hMQ0RD X0NGRyg1KSwNCj4+IEBAIC0yMDIsNiArMjAzLDE2IEBAIHN0YXRpYyB2b2lkIGF0bWVsX2hsY2Rj X2NydGNfYXRvbWljX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjLA0KPj4NCj4+ICAgICAgICBw bV9ydW50aW1lX2dldF9zeW5jKGRldi0+ZGV2KTsNCj4+DQo+PiArICAgICBpZiAoY3J0Yy0+ZGMt PmRlc2MtPmlzX3hsY2RjKSB7DQo+PiArICAgICAgICAgICAgIHJlZ21hcF93cml0ZShyZWdtYXAs IEFUTUVMX0hMQ0RDX0RJUywgQVRNRUxfWExDRENfQ00pOw0KPj4gKyAgICAgICAgICAgICByZWdt YXBfcmVhZF9wb2xsX3RpbWVvdXQocmVnbWFwLCBBVE1FTF9ITENEQ19TUiwgc3RhdHVzLA0KPj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIShzdGF0dXMgJiBBVE1FTF9Y TENEQ19DTSksIDEwLCAwKTsNCj4gDQo+IFlvdSBtYXkgd2FudCB0byBjaGVjayB0aGUgcmV0dXJu IHZhbHVlIG9mIHJlZ21hcF9yZWFkX3BvbGxfdGltZW91dCgpLg0KPiBPdGhlcndpc2UgeW91ciBz ZXR1cCBtYXkgZmFpbC4NCj4gDQo+IEFsc28sIHJlZ21hcF9yZWFkX3BvbGxfdGltZW91dCgpIG1h eSBzbGVlcCwgdGhlIG90aGVyIHNldHRpbmdzIGluIHRoaXMNCj4gZnVuY3Rpb25zIGFyZSBkb25l IHdpdGggYnVzc3kgbG9vcGluZywgaXMgdGhlcmUgYSByZWFzb24gZm9yIHRoYXQ/DQo+SGkgQ2xh dWRpdQ0KDQpOb3Qgc3VyZSBpZiBhIG5vbi16ZXJvIHRpbWVvdXRfdXMgY291ZCBiZSBzdWZmaWNp ZW50IGZvciB0aGlzIG9wZXJhdGlvbiwgDQpjb25zaWRlcmluZyB0aGUgbmV4dCBwb3dlci11cCBh bmQgcG93ZXItZG93biBzZXF1ZW5jZSBmb2xsb3dpbmcgdGhlIA0KY3VycmVudCBzdGVwLg0KQW55 IHN1Z2dlc3Rpb24gb24gdGhlIHZhbHVlIG9mIHRpbWVvdXRfdXMgaXMgYXBwcmVjaWFibGUuDQo+ PiArDQo+PiArICAgICAgICAgICAgIHJlZ21hcF93cml0ZShyZWdtYXAsIEFUTUVMX0hMQ0RDX0RJ UywgQVRNRUxfWExDRENfU0QpOw0KPj4gKyAgICAgICAgICAgICByZWdtYXBfcmVhZF9wb2xsX3Rp bWVvdXQocmVnbWFwLCBBVE1FTF9ITENEQ19TUiwgc3RhdHVzLA0KPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzICYgQVRNRUxfWExDRENfU0QsIDEwLCAwKTsN Cj4gDQo+IFNhbWUgaGVyZS4NCj4gDQo+PiArICAgICB9DQo+PiArDQo+PiAgICAgICAgcmVnbWFw X3dyaXRlKHJlZ21hcCwgQVRNRUxfSExDRENfRElTLCBBVE1FTF9ITENEQ19ESVNQKTsNCj4+ICAg ICAgICB3aGlsZSAoIXJlZ21hcF9yZWFkKHJlZ21hcCwgQVRNRUxfSExDRENfU1IsICZzdGF0dXMp ICYmDQo+PiAgICAgICAgICAgICAgIChzdGF0dXMgJiBBVE1FTF9ITENEQ19ESVNQKSkNCj4+IEBA IC0yNTYsNiArMjY3LDE2IEBAIHN0YXRpYyB2b2lkIGF0bWVsX2hsY2RjX2NydGNfYXRvbWljX2Vu YWJsZShzdHJ1Y3QgZHJtX2NydGMgKmMsDQo+PiAgICAgICAgICAgICAgICEoc3RhdHVzICYgQVRN RUxfSExDRENfRElTUCkpDQo+PiAgICAgICAgICAgICAgICBjcHVfcmVsYXgoKTsNCj4+DQo+PiAr ICAgICBpZiAoY3J0Yy0+ZGMtPmRlc2MtPmlzX3hsY2RjKSB7DQo+PiArICAgICAgICAgICAgIHJl Z21hcF93cml0ZShyZWdtYXAsIEFUTUVMX0hMQ0RDX0VOLCBBVE1FTF9YTENEQ19DTSk7DQo+PiAr ICAgICAgICAgICAgIHJlZ21hcF9yZWFkX3BvbGxfdGltZW91dChyZWdtYXAsIEFUTUVMX0hMQ0RD X1NSLCBzdGF0dXMsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dGF0dXMgJiBBVE1FTF9YTENEQ19DTSwgMTAsIDApOw0KPj4gKw0KPj4gKyAgICAgICAgICAgICBy ZWdtYXBfd3JpdGUocmVnbWFwLCBBVE1FTF9ITENEQ19FTiwgQVRNRUxfWExDRENfU0QpOw0KPj4g KyAgICAgICAgICAgICByZWdtYXBfcmVhZF9wb2xsX3RpbWVvdXQocmVnbWFwLCBBVE1FTF9ITENE Q19TUiwgc3RhdHVzLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IShzdGF0dXMgJiBBVE1FTF9YTENEQ19TRCksIDEwLCAwKTsNCj4+ICsgICAgIH0NCj4+ICsNCj4+ ICAgICAgICBwbV9ydW50aW1lX3B1dF9zeW5jKGRldi0+ZGV2KTsNCj4+DQo+PiAgIH0NCj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNfcGxhbmUu YyBiL2RyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19wbGFuZS5jDQo+PiBp bmRleCBkYWE1MDg1MDRmNDcuLjI2Y2FmNGNkZGZhNCAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19wbGFuZS5jDQo+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vYXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNfcGxhbmUuYw0KPj4gQEAgLTMzMCwxMSAr MzMwLDU5IEBAIHN0YXRpYyB2b2lkIGF0bWVsX2hsY2RjX3BsYW5lX3NldHVwX3NjYWxlcihzdHJ1 Y3QgYXRtZWxfaGxjZGNfcGxhbmUgKnBsYW5lLA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5ZmFjdG9yKSk7DQo+ PiAgIH0NCj4+DQo+PiArc3RhdGljIHZvaWQgYXRtZWxfeGxjZGNfcGxhbmVfc2V0dXBfc2NhbGVy KHN0cnVjdCBhdG1lbF9obGNkY19wbGFuZSAqcGxhbmUsDQo+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBhdG1lbF9obGNkY19wbGFuZV9zdGF0ZSAqc3Rh dGUpDQo+PiArew0KPj4gKyAgICAgY29uc3Qgc3RydWN0IGF0bWVsX2hsY2RjX2xheWVyX2Rlc2Mg KmRlc2MgPSBwbGFuZS0+bGF5ZXIuZGVzYzsNCj4+ICsgICAgIHUzMiB4ZmFjdG9yLCB5ZmFjdG9y Ow0KPj4gKw0KPj4gKyAgICAgaWYgKCFkZXNjLT5sYXlvdXQuc2NhbGVyX2NvbmZpZykNCj4+ICsg ICAgICAgICAgICAgcmV0dXJuOw0KPj4gKw0KPj4gKyAgICAgaWYgKHN0YXRlLT5jcnRjX3cgPT0g c3RhdGUtPnNyY193ICYmIHN0YXRlLT5jcnRjX2ggPT0gc3RhdGUtPnNyY19oKSB7DQo+PiArICAg ICAgICAgICAgIGF0bWVsX2hsY2RjX2xheWVyX3dyaXRlX2NmZygmcGxhbmUtPmxheWVyLA0KPj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzYy0+bGF5b3V0LnNj YWxlcl9jb25maWcsIDApOw0KPj4gKyAgICAgICAgICAgICByZXR1cm47DQo+PiArICAgICB9DQo+ PiArDQo+PiArICAgICAvKiB4ZmFjdG9yID0gcm91bmRbKDJeMjAgKiBYTUVNU0laRSkvWFNJWkUp XSAqLw0KPj4gKyAgICAgeGZhY3RvciA9ICh1MzIpKCgoMSA8PCAyMCkgKiBzdGF0ZS0+c3JjX3cp IC8gc3RhdGUtPmNydGNfdyk7DQo+IA0KPiBDb3VsZCAoKDEgPDwgMjApICogc3RhdGUtPnNyY193 KSBvdmVyZmxvdz8NCkl0IGlzIHdpdGhpbiB0aGUgbGltaXRzLCBzdGF0ZS0+c3JjX3cgd2lsbCBj b250YWluIGEgMTFiaXQgcmVnIHZhbHVlIGF0IG1heC4NCj4gDQo+PiArDQo+PiArICAgICAvKiB5 ZmFjdG9yID0gcm91bmRbKDJeMjAgKiBZTUVNU0laRSkvWVNJWkUpXSAqLw0KPj4gKyAgICAgeWZh Y3RvciA9ICh1MzIpKCgoMSA8PCAyMCkgKiBzdGF0ZS0+c3JjX2gpIC8gc3RhdGUtPmNydGNfaCk7 DQo+IA0KPiBTYW1lIGhlcmUuDQo+IA0KPj4gKw0KPj4gKyAgICAgYXRtZWxfaGxjZGNfbGF5ZXJf d3JpdGVfY2ZnKCZwbGFuZS0+bGF5ZXIsIGRlc2MtPmxheW91dC5zY2FsZXJfY29uZmlnLA0KPj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFUTUVMX1hMQ0RDX0xBWUVSX1ZTQ0FM RVJfTFVNQV9FTkFCTEUgfA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFU TUVMX1hMQ0RDX0xBWUVSX1ZTQ0FMRVJfQ0hST01BX0VOQUJMRSB8DQo+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQVRNRUxfWExDRENfTEFZRVJfSFNDQUxFUl9MVU1BX0VOQUJM RSB8DQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVRNRUxfWExDRENfTEFZ RVJfSFNDQUxFUl9DSFJPTUFfRU5BQkxFKTsNCj4+ICsNCj4+ICsgICAgIGF0bWVsX2hsY2RjX2xh eWVyX3dyaXRlX2NmZygmcGxhbmUtPmxheWVyLCBkZXNjLT5sYXlvdXQuc2NhbGVyX2NvbmZpZyAr IDEsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWZhY3Rvcik7DQo+PiAr ICAgICBhdG1lbF9obGNkY19sYXllcl93cml0ZV9jZmcoJnBsYW5lLT5sYXllciwgZGVzYy0+bGF5 b3V0LnNjYWxlcl9jb25maWcgKyAzLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHhmYWN0b3IpOw0KPj4gKw0KPj4gKyAgICAgLyogQXMgcGVyIFlDYkNyIHdpbmRvdyByZXNh bXBsaW5nIGNvbmZpZ3VyYXRpb24gKi8NCj4+ICsgICAgIGlmIChzdGF0ZS0+YmFzZS5mYi0+Zm9y bWF0LT5mb3JtYXQgPT0gRFJNX0ZPUk1BVF9ZVVY0MjApIHsNCj4+ICsgICAgICAgICAgICAgYXRt ZWxfaGxjZGNfbGF5ZXJfd3JpdGVfY2ZnKCZwbGFuZS0+bGF5ZXIsIGRlc2MtPmxheW91dC5zY2Fs ZXJfY29uZmlnICsgMiwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHlmYWN0b3IgLyAyKTsNCj4+ICsgICAgICAgICAgICAgYXRtZWxfaGxjZGNfbGF5ZXJfd3Jp dGVfY2ZnKCZwbGFuZS0+bGF5ZXIsIGRlc2MtPmxheW91dC5zY2FsZXJfY29uZmlnICsgNCwNCj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhmYWN0b3IgLyAyKTsN Cj4+ICsgICAgIH0gZWxzZSB7DQo+PiArICAgICAgICAgICAgIC8qIEFzIHBlciBBUkdCIHdpbmRv dyByZXNhbXBsaW5nIGNvbmZpZ3VyYXRpb24gKi8NCj4+ICsgICAgICAgICAgICAgYXRtZWxfaGxj ZGNfbGF5ZXJfd3JpdGVfY2ZnKCZwbGFuZS0+bGF5ZXIsIGRlc2MtPmxheW91dC5zY2FsZXJfY29u ZmlnICsgMiwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlm YWN0b3IpOw0KPj4gKyAgICAgICAgICAgICBhdG1lbF9obGNkY19sYXllcl93cml0ZV9jZmcoJnBs YW5lLT5sYXllciwgZGVzYy0+bGF5b3V0LnNjYWxlcl9jb25maWcgKyA0LA0KPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGZhY3Rvcik7DQo+PiArICAgICB9DQo+ IA0KPiBUaGlzIGNhbiBiZSB3cml0dGVuIGFzIGZvbGxvd3M6DQo+IGlmIChzdGF0ZS0+YmFzZS5m Yi0+Zm9ybWF0LT5mb3JtYXQgPT0gRFJNX0ZPUk1BVF9ZVVY0MjApIHsNCj4gICAgICAgICAgeWZh Y3RvciAvPSAyKTsNCj4gICAgICAgICAgeGZhY3RvciAvPSAyKTsNCj4gfQ0KPiBhdG1lbF9obGNk Y19sYXllcl93cml0ZV9jZmcoJnBsYW5lLT5sYXllciwgZGVzYy0+bGF5b3V0LnNjYWxlcl9jb25m aWcgKyAyLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlmYWN0b3IpOw0KPiBhdG1l bF9obGNkY19sYXllcl93cml0ZV9jZmcoJnBsYW5lLT5sYXllciwgZGVzYy0+bGF5b3V0LnNjYWxl cl9jb25maWcgKyA0LA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhmYWN0b3IpOw0K PiANCj4gDQo+IA0KPj4gK30NCj4+ICsNCj4+ICAgc3RhdGljIHZvaWQNCj4+ICAgYXRtZWxfaGxj ZGNfcGxhbmVfdXBkYXRlX3Bvc19hbmRfc2l6ZShzdHJ1Y3QgYXRtZWxfaGxjZGNfcGxhbmUgKnBs YW5lLA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBhdG1l bF9obGNkY19wbGFuZV9zdGF0ZSAqc3RhdGUpDQo+PiAgIHsNCj4+ICAgICAgICBjb25zdCBzdHJ1 Y3QgYXRtZWxfaGxjZGNfbGF5ZXJfZGVzYyAqZGVzYyA9IHBsYW5lLT5sYXllci5kZXNjOw0KPj4g KyAgICAgc3RydWN0IGF0bWVsX2hsY2RjX2RjICpkYyA9IHBsYW5lLT5iYXNlLmRldi0+ZGV2X3By aXZhdGU7DQo+Pg0KPj4gICAgICAgIGlmIChkZXNjLT5sYXlvdXQuc2l6ZSkNCj4+ICAgICAgICAg ICAgICAgIGF0bWVsX2hsY2RjX2xheWVyX3dyaXRlX2NmZygmcGxhbmUtPmxheWVyLCBkZXNjLT5s YXlvdXQuc2l6ZSwNCj4+IEBAIC0zNTIsNyArNDAwLDEwIEBAIGF0bWVsX2hsY2RjX3BsYW5lX3Vw ZGF0ZV9wb3NfYW5kX3NpemUoc3RydWN0IGF0bWVsX2hsY2RjX3BsYW5lICpwbGFuZSwNCj4+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFUTUVMX0hMQ0RDX0xBWUVSX1BP UyhzdGF0ZS0+Y3J0Y194LA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLT5jcnRjX3kpKTsNCj4+DQo+PiAtICAgICBh dG1lbF9obGNkY19wbGFuZV9zZXR1cF9zY2FsZXIocGxhbmUsIHN0YXRlKTsNCj4+ICsgICAgIGlm IChkYy0+ZGVzYy0+aXNfeGxjZGMpDQo+PiArICAgICAgICAgICAgIGF0bWVsX3hsY2RjX3BsYW5l X3NldHVwX3NjYWxlcihwbGFuZSwgc3RhdGUpOw0KPj4gKyAgICAgZWxzZQ0KPj4gKyAgICAgICAg ICAgICBhdG1lbF9obGNkY19wbGFuZV9zZXR1cF9zY2FsZXIocGxhbmUsIHN0YXRlKTsNCj4gDQo+ IFdoYXQgaWYgeW91IGVtYmVkZCB0aGUgcGxhbmVfc2V0dXBfc2NhbGxlciBmdW5jdGlvbiBpbiBz dHJ1Y3QNCj4gYXRtZWxfaGxjZGNfZGNfZGVzYyBhbmQgZGVmaW5lIHBlciBsY2RjIHZhcmlhbnQg dGhlIHByb3BlciBmdW5jdGlvbiB5b3UgY2FuDQo+IGhhdmUgaGVyZSBzb21ldGhpbmcgbGlrZToN Cj4gICAgICAgICAgZGMtPmRlc2MtPnBsYW5lX3NldHVwX3NjYWxlcigpOw0KPiANCj4gVGhpcyBp cyB2YWxpZCBmb3Igb3RoZXIgcGxhY2VzIGluIHRoaXMgcGF0Y2ggKHNlZSBiZWxvdykuDQpTdXJl LCBJIHdpbGwgdHJ5IHRvIGluY29wZXJhdGUgdGhpcyBjaGFuZ2UuDQo+IA0KPj4gICB9DQo+Pg0K Pj4gICBzdGF0aWMgdm9pZA0KPj4gQEAgLTM5Myw2ICs0NDQsNDAgQEAgYXRtZWxfaGxjZGNfcGxh bmVfdXBkYXRlX2dlbmVyYWxfc2V0dGluZ3Moc3RydWN0IGF0bWVsX2hsY2RjX3BsYW5lICpwbGFu ZSwNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ZnKTsNCj4+ICAgfQ0K Pj4NCj4+ICtzdGF0aWMgdm9pZA0KPj4gK2F0bWVsX3hsY2RjX3BsYW5lX3VwZGF0ZV9nZW5lcmFs X3NldHRpbmdzKHN0cnVjdCBhdG1lbF9obGNkY19wbGFuZSAqcGxhbmUsDQo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGF0bWVsX2hsY2RjX3BsYW5lX3N0 YXRlICpzdGF0ZSkNCj4+ICt7DQo+PiArICAgICB1bnNpZ25lZCBpbnQgY2ZnOw0KPj4gKyAgICAg Y29uc3Qgc3RydWN0IGF0bWVsX2hsY2RjX2xheWVyX2Rlc2MgKmRlc2MgPSBwbGFuZS0+bGF5ZXIu ZGVzYzsNCj4+ICsgICAgIGNvbnN0IHN0cnVjdCBkcm1fZm9ybWF0X2luZm8gKmZvcm1hdCA9IHN0 YXRlLT5iYXNlLmZiLT5mb3JtYXQ7DQo+PiArDQo+PiArICAgICBhdG1lbF9obGNkY19sYXllcl93 cml0ZV9jZmcoJnBsYW5lLT5sYXllciwgQVRNRUxfWExDRENfTEFZRVJfRE1BX0NGRywNCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVE1FTF9ITENEQ19MQVlFUl9ETUFfQkxF Tl9JTkNSMTYgfCBzdGF0ZS0+YWhiX2lkKTsNCj4+ICsNCj4+ICsgICAgIGNmZyA9IEFUTUVMX1hM Q0RDX0xBWUVSX0RNQSB8IEFUTUVMX1hMQ0RDX0xBWUVSX1JFUDsNCj4+ICsNCj4+ICsgICAgIGlm IChwbGFuZS0+YmFzZS50eXBlICE9IERSTV9QTEFORV9UWVBFX1BSSU1BUlkpIHsNCj4+ICsgICAg ICAgICAgICAgLyoNCj4+ICsgICAgICAgICAgICAgICogQWxwaGEgQmxlbmRpbmcgYml0cyBzcGVj aWZpYyB0byBTQU05WDcgU29DDQo+PiArICAgICAgICAgICAgICAqLw0KPj4gKyAgICAgICAgICAg ICBjZmcgfD0gQVRNRUxfWExDRENfTEFZRVJfU0ZBQ1RDX0EwX01VTFRfQVMgfA0KPj4gKyAgICAg ICAgICAgICAgICAgICAgQVRNRUxfWExDRENfTEFZRVJfU0ZBQ1RBX09ORSB8DQo+PiArICAgICAg ICAgICAgICAgICAgICBBVE1FTF9YTENEQ19MQVlFUl9ERkFDVENfTV9BMF9NVUxUX0FTIHwNCj4+ ICsgICAgICAgICAgICAgICAgICAgIEFUTUVMX1hMQ0RDX0xBWUVSX0RGQUNUQV9PTkU7DQo+PiAr ICAgICAgICAgICAgIGlmIChmb3JtYXQtPmhhc19hbHBoYSkNCj4+ICsgICAgICAgICAgICAgICAg ICAgICBjZmcgfD0gQVRNRUxfWExDRENfTEFZRVJfQTAoMHhmZik7DQo+PiArICAgICAgICAgICAg IGVsc2UNCj4+ICsgICAgICAgICAgICAgICAgICAgICBjZmcgfD0gQVRNRUxfWExDRENfTEFZRVJf QTAoc3RhdGUtPmJhc2UuYWxwaGEpOw0KPj4gKyAgICAgfQ0KPj4gKw0KPj4gKyAgICAgaWYgKHN0 YXRlLT5kaXNjX2ggJiYgc3RhdGUtPmRpc2NfdykNCj4+ICsgICAgICAgICAgICAgY2ZnIHw9IEFU TUVMX1hMQ0RDX0xBWUVSX0RJU0NFTjsNCj4+ICsNCj4+ICsgICAgIGF0bWVsX2hsY2RjX2xheWVy X3dyaXRlX2NmZygmcGxhbmUtPmxheWVyLCBkZXNjLT5sYXlvdXQuZ2VuZXJhbF9jb25maWcsDQo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ZnKTsNCj4+ICt9DQo+PiArDQo+ PiAgIHN0YXRpYyB2b2lkIGF0bWVsX2hsY2RjX3BsYW5lX3VwZGF0ZV9mb3JtYXQoc3RydWN0IGF0 bWVsX2hsY2RjX3BsYW5lICpwbGFuZSwNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBhdG1lbF9obGNkY19wbGFuZV9zdGF0ZSAqc3RhdGUpDQo+PiAgIHsN Cj4+IEBAIC00MzcsMzYgKzUyMiw1NSBAQCBzdGF0aWMgdm9pZCBhdG1lbF9obGNkY19wbGFuZV91 cGRhdGVfY2x1dChzdHJ1Y3QgYXRtZWxfaGxjZGNfcGxhbmUgKnBsYW5lLA0KPj4gICAgICAgIH0N Cj4+ICAgfQ0KPj4NCj4+ICtzdGF0aWMgdm9pZCB1cGRhdGVfaGxjZGNfYnVmZmVycyhzdHJ1Y3Qg YXRtZWxfaGxjZGNfcGxhbmUgKnBsYW5lLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBhdG1lbF9obGNkY19wbGFuZV9zdGF0ZSAqc3RhdGUsIHUzMiBzciwgaW50IGkp DQo+PiArew0KPj4gKyAgICAgYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfcmVnKCZwbGFuZS0+bGF5 ZXIsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVRNRUxfSExDRENfTEFZ RVJfUExBTkVfSEVBRChpKSwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dGF0ZS0+ZHNjcnNbaV0tPnNlbGYpOw0KPj4gKw0KPj4gKyAgICAgaWYgKCEoc3IgJiBBVE1FTF9I TENEQ19MQVlFUl9FTikpIHsNCj4gDQo+IFRvIGF2b2lkIGV4dHJhIGluZGVudGluZzoNCj4gICAg ICAgICAgaWYgKHNyICYgQVRNRUxfSExDRENfTEFZRVJfRU4pDQo+ICAgICAgICAgICAgICAgICAg cmV0dXJuOw0KPiANCj4+ICsgICAgICAgICAgICAgYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfcmVn KCZwbGFuZS0+bGF5ZXIsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBBVE1FTF9ITENEQ19MQVlFUl9QTEFORV9BRERSKGkpLA0KPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUtPmRzY3JzW2ldLT5hZGRyKTsNCj4+ICsg ICAgICAgICAgICAgYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfcmVnKCZwbGFuZS0+bGF5ZXIsDQo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVE1FTF9ITENEQ19M QVlFUl9QTEFORV9DVFJMKGkpLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RhdGUtPmRzY3JzW2ldLT5jdHJsKTsNCj4+ICsgICAgICAgICAgICAgYXRtZWxf aGxjZGNfbGF5ZXJfd3JpdGVfcmVnKCZwbGFuZS0+bGF5ZXIsDQo+PiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBBVE1FTF9ITENEQ19MQVlFUl9QTEFORV9ORVhUKGkp LA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUtPmRz Y3JzW2ldLT5zZWxmKTsNCj4+ICsgICAgIH0NCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIHZvaWQg dXBkYXRlX3hsY2RjX2J1ZmZlcnMoc3RydWN0IGF0bWVsX2hsY2RjX3BsYW5lICpwbGFuZSwNCj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgYXRtZWxfaGxjZGNfcGxhbmVf c3RhdGUgKnN0YXRlLCBpbnQgaSkNCj4+ICt7DQo+PiArICAgICBhdG1lbF9obGNkY19sYXllcl93 cml0ZV9yZWcoJnBsYW5lLT5sYXllciwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBBVE1FTF9YTENEQ19MQVlFUl9QTEFORV9BRERSKGkpLA0KPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0YXRlLT5kc2Nyc1tpXS0+YWRkcik7DQo+PiArfQ0KPj4gKw0K Pj4gICBzdGF0aWMgdm9pZCBhdG1lbF9obGNkY19wbGFuZV91cGRhdGVfYnVmZmVycyhzdHJ1Y3Qg YXRtZWxfaGxjZGNfcGxhbmUgKnBsYW5lLA0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgYXRtZWxfaGxjZGNfcGxhbmVfc3RhdGUgKnN0YXRlKQ0KPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBhdG1lbF9obGNk Y19wbGFuZV9zdGF0ZSAqc3RhdGUpDQo+IA0KPiB1cGRhdGVfaGxjZGNfYnVmZmVycygpIGFuZCB1 cGRhdGVfeGxjZGNfYnVmZmVycygpIGNvdWxkIGFsc28gYmUgbWVtYmVycyBpbg0KPiB0aGUgc3Ry dWN0IGF0bWVsX2hsY2RjX2RjX2Rlc2MgYW5kIGNhbGxlZCBhY2NvcmRpbmdseSB3aGVyZSBuZWVk ZWQgdy9vDQo+IGNoZWNraW5nIGlzX3hsY2RjLg0KPiANCj4+ICAgew0KPj4gICAgICAgIGNvbnN0 IHN0cnVjdCBhdG1lbF9obGNkY19sYXllcl9kZXNjICpkZXNjID0gcGxhbmUtPmxheWVyLmRlc2M7 DQo+PiArICAgICBzdHJ1Y3QgYXRtZWxfaGxjZGNfZGMgKmRjID0gcGxhbmUtPmJhc2UuZGV2LT5k ZXZfcHJpdmF0ZTsNCj4+ICAgICAgICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHN0YXRl LT5iYXNlLmZiOw0KPj4gICAgICAgIHUzMiBzcjsNCj4+ICAgICAgICBpbnQgaTsNCj4+DQo+PiAt ICAgICBzciA9IGF0bWVsX2hsY2RjX2xheWVyX3JlYWRfcmVnKCZwbGFuZS0+bGF5ZXIsIEFUTUVM X0hMQ0RDX0xBWUVSX0NIU1IpOw0KPj4gKyAgICAgaWYgKCFkYy0+ZGVzYy0+aXNfeGxjZGMpDQo+ PiArICAgICAgICAgICAgIHNyID0gYXRtZWxfaGxjZGNfbGF5ZXJfcmVhZF9yZWcoJnBsYW5lLT5s YXllciwgQVRNRUxfSExDRENfTEFZRVJfQ0hTUik7DQo+Pg0KPj4gICAgICAgIGZvciAoaSA9IDA7 IGkgPCBzdGF0ZS0+bnBsYW5lczsgaSsrKSB7DQo+PiAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJt X2dlbV9kbWFfb2JqZWN0ICpnZW0gPSBkcm1fZmJfZG1hX2dldF9nZW1fb2JqKGZiLCBpKTsNCj4+ DQo+PiAgICAgICAgICAgICAgICBzdGF0ZS0+ZHNjcnNbaV0tPmFkZHIgPSBnZW0tPmRtYV9hZGRy ICsgc3RhdGUtPm9mZnNldHNbaV07DQo+Pg0KPj4gLSAgICAgICAgICAgICBhdG1lbF9obGNkY19s YXllcl93cml0ZV9yZWcoJnBsYW5lLT5sYXllciwNCj4+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEFUTUVMX0hMQ0RDX0xBWUVSX1BMQU5FX0hFQUQoaSksDQo+PiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS0+ZHNjcnNbaV0t PnNlbGYpOw0KPj4gLQ0KPj4gLSAgICAgICAgICAgICBpZiAoIShzciAmIEFUTUVMX0hMQ0RDX0xB WUVSX0VOKSkgew0KPj4gLSAgICAgICAgICAgICAgICAgICAgIGF0bWVsX2hsY2RjX2xheWVyX3dy aXRlX3JlZygmcGxhbmUtPmxheWVyLA0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBVE1FTF9ITENEQ19MQVlFUl9QTEFORV9BRERSKGkpLA0KPj4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS0+ZHNjcnNbaV0tPmFkZHIpOw0KPj4gLSAg ICAgICAgICAgICAgICAgICAgIGF0bWVsX2hsY2RjX2xheWVyX3dyaXRlX3JlZygmcGxhbmUtPmxh eWVyLA0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVE1FTF9ITENE Q19MQVlFUl9QTEFORV9DVFJMKGkpLA0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdGF0ZS0+ZHNjcnNbaV0tPmN0cmwpOw0KPj4gLSAgICAgICAgICAgICAgICAgICAg IGF0bWVsX2hsY2RjX2xheWVyX3dyaXRlX3JlZygmcGxhbmUtPmxheWVyLA0KPj4gLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVE1FTF9ITENEQ19MQVlFUl9QTEFORV9ORVhU KGkpLA0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS0+ZHNj cnNbaV0tPnNlbGYpOw0KPj4gLSAgICAgICAgICAgICB9DQo+PiArICAgICAgICAgICAgIGlmIChk Yy0+ZGVzYy0+aXNfeGxjZGMpDQo+PiArICAgICAgICAgICAgICAgICAgICAgdXBkYXRlX3hsY2Rj X2J1ZmZlcnMocGxhbmUsIHN0YXRlLCBpKTsNCj4+ICsgICAgICAgICAgICAgZWxzZQ0KPj4gKyAg ICAgICAgICAgICAgICAgICAgIHVwZGF0ZV9obGNkY19idWZmZXJzKHBsYW5lLCBzdGF0ZSwgc3Is IGkpOw0KPiANCj4gQW5kIGhlcmUgeW91IGNhbiBoYXZlIHNvbWV0aGluZyBsaWtlOg0KPiAgICAg ICAgICAgICAgICAgIGRjLT5kZXNjLT51cGRhdGVfbGNkY19idWZmZXJzKCk7DQo+Pg0KPj4gICAg ICAgICAgICAgICAgaWYgKGRlc2MtPmxheW91dC54c3RyaWRlW2ldKQ0KPj4gICAgICAgICAgICAg ICAgICAgICAgICBhdG1lbF9obGNkY19sYXllcl93cml0ZV9jZmcoJnBsYW5lLT5sYXllciwNCj4+ IEBAIC03MTIsMTEgKzgxNiw4IEBAIHN0YXRpYyBpbnQgYXRtZWxfaGxjZGNfcGxhbmVfYXRvbWlj X2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnAsDQo+PiAgICAgICAgcmV0dXJuIDA7DQo+PiAgIH0N Cj4+DQo+PiAtc3RhdGljIHZvaWQgYXRtZWxfaGxjZGNfcGxhbmVfYXRvbWljX2Rpc2FibGUoc3Ry dWN0IGRybV9wbGFuZSAqcCwNCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpDQo+PiArc3RhdGljIHZvaWQg aGxjZGNfYXRvbWljX2Rpc2FibGUoc3RydWN0IGF0bWVsX2hsY2RjX3BsYW5lICpwbGFuZSkNCj4+ ICAgew0KPj4gLSAgICAgc3RydWN0IGF0bWVsX2hsY2RjX3BsYW5lICpwbGFuZSA9IGRybV9wbGFu ZV90b19hdG1lbF9obGNkY19wbGFuZShwKTsNCj4+IC0NCj4+ICAgICAgICAvKiBEaXNhYmxlIGlu dGVycnVwdHMgKi8NCj4+ICAgICAgICBhdG1lbF9obGNkY19sYXllcl93cml0ZV9yZWcoJnBsYW5l LT5sYXllciwgQVRNRUxfSExDRENfTEFZRVJfSURSLA0KPj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweGZmZmZmZmZmKTsNCj4+IEBAIC03MzEsNiArODMyLDcyIEBAIHN0YXRp YyB2b2lkIGF0bWVsX2hsY2RjX3BsYW5lX2F0b21pY19kaXNhYmxlKHN0cnVjdCBkcm1fcGxhbmUg KnAsDQo+PiAgICAgICAgYXRtZWxfaGxjZGNfbGF5ZXJfcmVhZF9yZWcoJnBsYW5lLT5sYXllciwg QVRNRUxfSExDRENfTEFZRVJfSVNSKTsNCj4+ICAgfQ0KPj4NCj4+ICtzdGF0aWMgdm9pZCB4bGNk Y19hdG9taWNfZGlzYWJsZShzdHJ1Y3QgYXRtZWxfaGxjZGNfcGxhbmUgKnBsYW5lKQ0KPj4gK3sN Cj4+ICsgICAgIC8qIERpc2FibGUgaW50ZXJydXB0cyAqLw0KPj4gKyAgICAgYXRtZWxfaGxjZGNf bGF5ZXJfd3JpdGVfcmVnKCZwbGFuZS0+bGF5ZXIsIEFUTUVMX1hMQ0RDX0xBWUVSX0lEUiwNCj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmKTsNCj4+ICsNCj4+ ICsgICAgIC8qIERpc2FibGUgdGhlIGxheWVyICovDQo+PiArICAgICBhdG1lbF9obGNkY19sYXll cl93cml0ZV9yZWcoJnBsYW5lLT5sYXllciwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBVE1FTF9YTENEQ19MQVlFUl9FTlIsIDApOw0KPj4gKw0KPj4gKyAgICAgLyogQ2xl YXIgYWxsIHBlbmRpbmcgaW50ZXJydXB0cyAqLw0KPj4gKyAgICAgYXRtZWxfaGxjZGNfbGF5ZXJf cmVhZF9yZWcoJnBsYW5lLT5sYXllciwgQVRNRUxfWExDRENfTEFZRVJfSVNSKTsNCj4+ICt9DQo+ PiArDQo+PiArc3RhdGljIHZvaWQgYXRtZWxfaGxjZGNfcGxhbmVfYXRvbWljX2Rpc2FibGUoc3Ry dWN0IGRybV9wbGFuZSAqcCwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpDQo+PiArew0KPj4gKyAgICAg c3RydWN0IGF0bWVsX2hsY2RjX3BsYW5lICpwbGFuZSA9IGRybV9wbGFuZV90b19hdG1lbF9obGNk Y19wbGFuZShwKTsNCj4+ICsgICAgIHN0cnVjdCBhdG1lbF9obGNkY19kYyAqZGMgPSBwbGFuZS0+ YmFzZS5kZXYtPmRldl9wcml2YXRlOw0KPj4gKw0KPj4gKyAgICAgaWYgKGRjLT5kZXNjLT5pc194 bGNkYykNCj4+ICsgICAgICAgICAgICAgeGxjZGNfYXRvbWljX2Rpc2FibGUocGxhbmUpOw0KPj4g KyAgICAgZWxzZQ0KPj4gKyAgICAgICAgICAgICBobGNkY19hdG9taWNfZGlzYWJsZShwbGFuZSk7 DQo+IA0KPiAgICAgICAgICBkYy0+ZGVzYy0+bGNkY19hdG9taWNfZGlzYWJsZSgpOw0KPiANCj4+ ICt9DQo+PiArDQo+PiArc3RhdGljIHZvaWQgaGxjZGNfYXRvbWljX3VwZGF0ZShzdHJ1Y3QgYXRt ZWxfaGxjZGNfcGxhbmUgKnBsYW5lKQ0KPj4gK3sNCj4+ICsgICAgIHUzMiBzcjsNCj4+ICsNCj4+ ICsgICAgIC8qIEVuYWJsZSB0aGUgb3ZlcnJ1biBpbnRlcnJ1cHRzLiAqLw0KPj4gKyAgICAgYXRt ZWxfaGxjZGNfbGF5ZXJfd3JpdGVfcmVnKCZwbGFuZS0+bGF5ZXIsIEFUTUVMX0hMQ0RDX0xBWUVS X0lFUiwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVE1FTF9ITENEQ19M QVlFUl9PVlJfSVJRKDApIHwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB VE1FTF9ITENEQ19MQVlFUl9PVlJfSVJRKDEpIHwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBVE1FTF9ITENEQ19MQVlFUl9PVlJfSVJRKDIpKTsNCj4+ICsNCj4+ICsgICAg IC8qIEFwcGx5IHRoZSBuZXcgY29uZmlnIGF0IHRoZSBuZXh0IFNPRiBldmVudC4gKi8NCj4+ICsg ICAgIHNyID0gYXRtZWxfaGxjZGNfbGF5ZXJfcmVhZF9yZWcoJnBsYW5lLT5sYXllciwgQVRNRUxf SExDRENfTEFZRVJfQ0hTUik7DQo+PiArICAgICBhdG1lbF9obGNkY19sYXllcl93cml0ZV9yZWco JnBsYW5lLT5sYXllciwgQVRNRUxfSExDRENfTEFZRVJfQ0hFUiwNCj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBBVE1FTF9ITENEQ19MQVlFUl9VUERBVEUgfA0KPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzciAmIEFUTUVMX0hMQ0RDX0xBWUVSX0VOID8N Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVE1FTF9ITENEQ19MQVlFUl9B MlEgOiBBVE1FTF9ITENEQ19MQVlFUl9FTikpOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgdm9p ZCB4bGNkY19hdG9taWNfdXBkYXRlKHN0cnVjdCBhdG1lbF9obGNkY19wbGFuZSAqcGxhbmUsDQo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgYXRtZWxfaGxjZGNfZGMgKmRj KQ0KPj4gK3sNCj4+ICsgICAgIC8qIEVuYWJsZSB0aGUgb3ZlcnJ1biBpbnRlcnJ1cHRzLiAqLw0K Pj4gKyAgICAgYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfcmVnKCZwbGFuZS0+bGF5ZXIsIEFUTUVM X1hMQ0RDX0xBWUVSX0lFUiwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB VE1FTF9YTENEQ19MQVlFUl9PVlJfSVJRKDApIHwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBVE1FTF9YTENEQ19MQVlFUl9PVlJfSVJRKDEpIHwNCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBBVE1FTF9YTENEQ19MQVlFUl9PVlJfSVJRKDIpKTsNCj4+ ICsNCj4+ICsgICAgIGF0bWVsX2hsY2RjX2xheWVyX3dyaXRlX3JlZygmcGxhbmUtPmxheWVyLCBB VE1FTF9YTENEQ19MQVlFUl9FTlIsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQVRNRUxfWExDRENfTEFZRVJfRU4pOw0KPj4gKw0KPj4gKyAgICAgLyoNCj4+ICsgICAgICAq IFVwZGF0aW5nIFhMQ0RDX3h4eENGR3gsIFhMQ0RDX3h4eEZCQSBhbmQgWExDRENfeHh4RU4sDQo+ PiArICAgICAgKiAod2hlcmUgeHh4IGluZGljYXRlcyBlYWNoIGxheWVyKSByZXF1aXJlcyB3cml0 aW5nIG9uZSB0byB0aGUNCj4+ICsgICAgICAqIFVwZGF0ZSBBdHRyaWJ1dGUgZmllbGQgZm9yIGVh Y2ggbGF5ZXIgaW4gTENEQ19BVFRSRSByZWdpc3RlciBmb3IgU0FNOVg3Lg0KPj4gKyAgICAgICov DQo+PiArICAgICByZWdtYXBfd3JpdGUoZGMtPmhsY2RjLT5yZWdtYXAsIEFUTUVMX1hMQ0RDX0FU VFJFLCBBVE1FTF9YTENEQ19CQVNFX1VQREFURSB8DQo+PiArICAgICAgICAgICAgICAgICAgQVRN RUxfWExDRENfT1ZSMV9VUERBVEUgfCBBVE1FTF9YTENEQ19PVlIzX1VQREFURSB8DQo+PiArICAg ICAgICAgICAgICAgICAgQVRNRUxfWExDRENfSEVPX1VQREFURSk7DQo+PiArfQ0KPj4gKw0KPj4g ICBzdGF0aWMgdm9pZCBhdG1lbF9obGNkY19wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1f cGxhbmUgKnAsDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQ0KPj4gICB7DQo+PiBAQCAtNzM5LDcgKzkw Niw3IEBAIHN0YXRpYyB2b2lkIGF0bWVsX2hsY2RjX3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0 IGRybV9wbGFuZSAqcCwNCj4+ICAgICAgICBzdHJ1Y3QgYXRtZWxfaGxjZGNfcGxhbmUgKnBsYW5l ID0gZHJtX3BsYW5lX3RvX2F0bWVsX2hsY2RjX3BsYW5lKHApOw0KPj4gICAgICAgIHN0cnVjdCBh dG1lbF9obGNkY19wbGFuZV9zdGF0ZSAqaHN0YXRlID0NCj4+ICAgICAgICAgICAgICAgICAgICAg ICAgZHJtX3BsYW5lX3N0YXRlX3RvX2F0bWVsX2hsY2RjX3BsYW5lX3N0YXRlKG5ld19zKTsNCj4+ IC0gICAgIHUzMiBzcjsNCj4+ICsgICAgIHN0cnVjdCBhdG1lbF9obGNkY19kYyAqZGMgPSBwLT5k ZXYtPmRldl9wcml2YXRlOw0KPj4NCj4+ICAgICAgICBpZiAoIW5ld19zLT5jcnRjIHx8ICFuZXdf cy0+ZmIpDQo+PiAgICAgICAgICAgICAgICByZXR1cm47DQo+PiBAQCAtNzUwLDI5ICs5MTcsNjcg QEAgc3RhdGljIHZvaWQgYXRtZWxfaGxjZGNfcGxhbmVfYXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJt X3BsYW5lICpwLA0KPj4gICAgICAgIH0NCj4+DQo+PiAgICAgICAgYXRtZWxfaGxjZGNfcGxhbmVf dXBkYXRlX3Bvc19hbmRfc2l6ZShwbGFuZSwgaHN0YXRlKTsNCj4+IC0gICAgIGF0bWVsX2hsY2Rj X3BsYW5lX3VwZGF0ZV9nZW5lcmFsX3NldHRpbmdzKHBsYW5lLCBoc3RhdGUpOw0KPj4gKyAgICAg aWYgKGRjLT5kZXNjLT5pc194bGNkYykNCj4+ICsgICAgICAgICAgICAgYXRtZWxfeGxjZGNfcGxh bmVfdXBkYXRlX2dlbmVyYWxfc2V0dGluZ3MocGxhbmUsIGhzdGF0ZSk7DQo+PiArICAgICBlbHNl DQo+PiArICAgICAgICAgICAgIGF0bWVsX2hsY2RjX3BsYW5lX3VwZGF0ZV9nZW5lcmFsX3NldHRp bmdzKHBsYW5lLCBoc3RhdGUpOw0KPiANCj4gICAgICAgICAgZGMtPmRlc2MtPmxjZGNfcGxhbmVf dXBkYXRlX2dlbmVyYWxfc2V0dGlnbnMoKTsNCj4gDQo+PiAgICAgICAgYXRtZWxfaGxjZGNfcGxh bmVfdXBkYXRlX2Zvcm1hdChwbGFuZSwgaHN0YXRlKTsNCj4+ICAgICAgICBhdG1lbF9obGNkY19w bGFuZV91cGRhdGVfY2x1dChwbGFuZSwgaHN0YXRlKTsNCj4+ICAgICAgICBhdG1lbF9obGNkY19w bGFuZV91cGRhdGVfYnVmZmVycyhwbGFuZSwgaHN0YXRlKTsNCj4+ICAgICAgICBhdG1lbF9obGNk Y19wbGFuZV91cGRhdGVfZGlzY19hcmVhKHBsYW5lLCBoc3RhdGUpOw0KPj4NCj4+IC0gICAgIC8q IEVuYWJsZSB0aGUgb3ZlcnJ1biBpbnRlcnJ1cHRzLiAqLw0KPj4gLSAgICAgYXRtZWxfaGxjZGNf bGF5ZXJfd3JpdGVfcmVnKCZwbGFuZS0+bGF5ZXIsIEFUTUVMX0hMQ0RDX0xBWUVSX0lFUiwNCj4+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVE1FTF9ITENEQ19MQVlFUl9PVlJf SVJRKDApIHwNCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVE1FTF9ITENE Q19MQVlFUl9PVlJfSVJRKDEpIHwNCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBVE1FTF9ITENEQ19MQVlFUl9PVlJfSVJRKDIpKTsNCj4+ICsgICAgIGlmIChkYy0+ZGVzYy0+ aXNfeGxjZGMpDQo+PiArICAgICAgICAgICAgIHhsY2RjX2F0b21pY191cGRhdGUocGxhbmUsIGRj KTsNCj4+ICsgICAgIGVsc2UNCj4+ICsgICAgICAgICAgICAgaGxjZGNfYXRvbWljX3VwZGF0ZShw bGFuZSk7DQo+IA0KPiAgICAgICAgICBkYy0+ZGVzYy0+bGNkY19hdG9taWNfdXBkYXRlKCk7DQo+ IA0KPj4gK30NCj4+DQo+PiAtICAgICAvKiBBcHBseSB0aGUgbmV3IGNvbmZpZyBhdCB0aGUgbmV4 dCBTT0YgZXZlbnQuICovDQo+PiAtICAgICBzciA9IGF0bWVsX2hsY2RjX2xheWVyX3JlYWRfcmVn KCZwbGFuZS0+bGF5ZXIsIEFUTUVMX0hMQ0RDX0xBWUVSX0NIU1IpOw0KPj4gLSAgICAgYXRtZWxf aGxjZGNfbGF5ZXJfd3JpdGVfcmVnKCZwbGFuZS0+bGF5ZXIsIEFUTUVMX0hMQ0RDX0xBWUVSX0NI RVIsDQo+PiAtICAgICAgICAgICAgICAgICAgICAgQVRNRUxfSExDRENfTEFZRVJfVVBEQVRFIHwN Cj4+IC0gICAgICAgICAgICAgICAgICAgICAoc3IgJiBBVE1FTF9ITENEQ19MQVlFUl9FTiA/DQo+ PiAtICAgICAgICAgICAgICAgICAgICAgIEFUTUVMX0hMQ0RDX0xBWUVSX0EyUSA6IEFUTUVMX0hM Q0RDX0xBWUVSX0VOKSk7DQo+PiArdTMyIGhsY2RjX2NzY19jb2VmZnNbXSA9IHsNCj4+ICsgICAg IDB4NGM5MDAwOTEsDQo+PiArICAgICAweDdhNWY1MDkwLA0KPj4gKyAgICAgMHg0MDA0MDg5MA0K Pj4gK307DQo+IA0KPiBZb3UgY2FuIG1vdmUgdGhpcyBpbiBmdW5jdGlvbiB3aGVyZSBpdCBpcyB1 c2VkIGFuZCBkZWNsYXJlIGl0IHN0YXRpYy4NCj4gDQo+PiArDQo+PiArdTMyIHhsY2RjX2NzY19j b2VmZnNbXSA9IHsNCj4+ICsgICAgIDB4MDAwMDA0ODgsDQo+PiArICAgICAweDAwMDAwNjQ4LA0K Pj4gKyAgICAgMHgxRUEwMDQ4MCwNCj4+ICsgICAgIDB4MDAwMDFEMjgsDQo+PiArICAgICAweDA4 MTAwNDgwLA0KPj4gKyAgICAgMHgwMDAwMDAwMCwNCj4+ICsgICAgIDB4MDAwMDAwMDcNCj4+ICt9 Ow0KPiANCj4gU2FtZSBoZXJlLg0KPiANCj4+ICsNCj4+ICtzdGF0aWMgdm9pZCBobGNkY19jc2Nf aW5pdChzdHJ1Y3QgYXRtZWxfaGxjZGNfcGxhbmUgKnBsYW5lLA0KPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IHN0cnVjdCBhdG1lbF9obGNkY19sYXllcl9kZXNjICpkZXNjKQ0KPj4g K3sNCj4+ICsgICAgIC8qDQo+PiArICAgICAgKiBUT0RPOiBkZWNsYXJlIGEgInl1di10by1yZ2It Y29udi1mYWN0b3JzIiBwcm9wZXJ0eSB0byBsZXQNCj4+ICsgICAgICAqIHVzZXJzcGFjZSBtb2Rp ZnkgdGhlc2UgZmFjdG9ycyAodXNpbmcgYSBCTE9CIHByb3BlcnR5ID8pLg0KPj4gKyAgICAgICov DQo+PiArICAgICBmb3IgKGludCBpID0gMDsgaSA8IEFSUkFZX1NJWkUoaGxjZGNfY3NjX2NvZWZm cyk7IGkrKykNCj4gDQo+IHsgYXQgdGhlIGVuZCBvZiBmb3Igc3RhdGVtZW50Lg0KPiANCj4+ICsg ICAgICAgICAgICAgYXRtZWxfaGxjZGNfbGF5ZXJfd3JpdGVfY2ZnKCZwbGFuZS0+bGF5ZXIsDQo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjLT5sYXlvdXQu Y3NjICsgaSwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhs Y2RjX2NzY19jb2VmZnNbaV0pOw0KPiANCj4gfSBoZXJlDQo+IA0KPj4gK30NCj4+ICsNCj4+ICtz dGF0aWMgdm9pZCB4bGNkY19jc2NfaW5pdChzdHJ1Y3QgYXRtZWxfaGxjZGNfcGxhbmUgKnBsYW5l LA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBhdG1lbF9obGNkY19s YXllcl9kZXNjICpkZXNjKQ0KPj4gK3sNCj4+ICsgICAgIC8qDQo+PiArICAgICAgKiB5dXYtdG8t cmdiLWNvbnYtZmFjdG9ycyBhcmUgbm93IGRlZmluZWQgZnJvbSBMQ0RDX0hFT0NGRzE2IHRvDQo+ PiArICAgICAgKiBMQ0RDX0hFT0NGRzIxIHJlZ2lzdGVycyBpbiBTQU05WDcuDQo+PiArICAgICAg Ki8NCj4+ICsgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQVJSQVlfU0laRSh4bGNkY19jc2NfY29l ZmZzKTsgaSsrKQ0KPj4gKyAgICAgICAgICAgICBhdG1lbF9obGNkY19sYXllcl93cml0ZV9jZmco JnBsYW5lLT5sYXllciwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRlc2MtPmxheW91dC5jc2MgKyBpLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgeGxjZGNfY3NjX2NvZWZmc1tpXSk7DQo+IA0KPiBEaXR0bw0KPiANCj4+ ICAgfQ0KPj4NCj4+ICAgc3RhdGljIGludCBhdG1lbF9obGNkY19wbGFuZV9pbml0X3Byb3BlcnRp ZXMoc3RydWN0IGF0bWVsX2hsY2RjX3BsYW5lICpwbGFuZSkNCj4+ICAgew0KPj4gICAgICAgIGNv bnN0IHN0cnVjdCBhdG1lbF9obGNkY19sYXllcl9kZXNjICpkZXNjID0gcGxhbmUtPmxheWVyLmRl c2M7DQo+PiArICAgICBzdHJ1Y3QgYXRtZWxfaGxjZGNfZGMgKmRjID0gcGxhbmUtPmJhc2UuZGV2 LT5kZXZfcHJpdmF0ZTsNCj4+DQo+PiAgICAgICAgaWYgKGRlc2MtPnR5cGUgPT0gQVRNRUxfSExD RENfT1ZFUkxBWV9MQVlFUiB8fA0KPj4gICAgICAgICAgICBkZXNjLT50eXBlID09IEFUTUVMX0hM Q0RDX0NVUlNPUl9MQVlFUikgew0KPj4gQEAgLTc5NiwzMSArMTAwMSwxOSBAQCBzdGF0aWMgaW50 IGF0bWVsX2hsY2RjX3BsYW5lX2luaXRfcHJvcGVydGllcyhzdHJ1Y3QgYXRtZWxfaGxjZGNfcGxh bmUgKnBsYW5lKQ0KPj4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPj4gICAg ICAgIH0NCj4+DQo+PiAtICAgICBpZiAoZGVzYy0+bGF5b3V0LmNzYykgew0KPj4gLSAgICAgICAg ICAgICAvKg0KPj4gLSAgICAgICAgICAgICAgKiBUT0RPOiBkZWNhcmUgYSAieXV2LXRvLXJnYi1j b252LWZhY3RvcnMiIHByb3BlcnR5IHRvIGxldA0KPj4gLSAgICAgICAgICAgICAgKiB1c2Vyc3Bh Y2UgbW9kaWZ5IHRoZXNlIGZhY3RvcnMgKHVzaW5nIGEgQkxPQiBwcm9wZXJ0eSA/KS4NCj4+IC0g ICAgICAgICAgICAgICovDQo+PiAtICAgICAgICAgICAgIGF0bWVsX2hsY2RjX2xheWVyX3dyaXRl X2NmZygmcGxhbmUtPmxheWVyLA0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGVzYy0+bGF5b3V0LmNzYywNCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4NGM5MDAwOTEpOw0KPj4gLSAgICAgICAgICAgICBhdG1lbF9obGNk Y19sYXllcl93cml0ZV9jZmcoJnBsYW5lLT5sYXllciwNCj4+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRlc2MtPmxheW91dC5jc2MgKyAxLA0KPj4gLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3YTVmNTA5MCk7DQo+PiAtICAgICAg ICAgICAgIGF0bWVsX2hsY2RjX2xheWVyX3dyaXRlX2NmZygmcGxhbmUtPmxheWVyLA0KPj4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzYy0+bGF5b3V0LmNzYyAr IDIsDQo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwMDQw ODkwKTsNCj4+IC0gICAgIH0NCj4+ICsgICAgIGlmIChkYy0+ZGVzYy0+aXNfeGxjZGMgJiYgZGVz Yy0+bGF5b3V0LmNzYykNCj4+ICsgICAgICAgICAgICAgeGxjZGNfY3NjX2luaXQocGxhbmUsIGRl c2MpOw0KPj4gKyAgICAgZWxzZQ0KPj4gKyAgICAgICAgICAgICBpZiAoZGVzYy0+bGF5b3V0LmNz YykNCj4+ICsgICAgICAgICAgICAgICAgICAgICBobGNkY19jc2NfaW5pdChwbGFuZSwgZGVzYyk7 DQo+IA0KPiAgICAgICAgICBpZiAoZGVzYy0+bGF5b3V0LmNzYykNCj4gICAgICAgICAgICAgICAg ICBkYy0+ZGVzYy0+bGNkY19jc2NfaW5pdCgpOw0KPiANCj4+DQo+PiAgICAgICAgcmV0dXJuIDA7 DQo+PiAgIH0NCj4+DQo+PiAtdm9pZCBhdG1lbF9obGNkY19wbGFuZV9pcnEoc3RydWN0IGF0bWVs X2hsY2RjX3BsYW5lICpwbGFuZSkNCj4+ICtzdGF0aWMgdm9pZCBobGNkY19pcnFfZGJnKHN0cnVj dCBhdG1lbF9obGNkY19wbGFuZSAqcGxhbmUsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBzdHJ1Y3QgYXRtZWxfaGxjZGNfbGF5ZXJfZGVzYyAqZGVzYykNCj4+ICAgew0KPj4gLSAg ICAgY29uc3Qgc3RydWN0IGF0bWVsX2hsY2RjX2xheWVyX2Rlc2MgKmRlc2MgPSBwbGFuZS0+bGF5 ZXIuZGVzYzsNCj4+IC0gICAgIHUzMiBpc3I7DQo+PiAtDQo+PiAtICAgICBpc3IgPSBhdG1lbF9o bGNkY19sYXllcl9yZWFkX3JlZygmcGxhbmUtPmxheWVyLCBBVE1FTF9ITENEQ19MQVlFUl9JU1Ip Ow0KPj4gKyAgICAgdTMyIGlzciA9IGF0bWVsX2hsY2RjX2xheWVyX3JlYWRfcmVnKCZwbGFuZS0+ bGF5ZXIsIEFUTUVMX0hMQ0RDX0xBWUVSX0lTUik7DQo+Pg0KPj4gICAgICAgIC8qDQo+PiAgICAg ICAgICogVGhlcmUncyBub3QgbXVjaCB3ZSBjYW4gZG8gaW4gY2FzZSBvZiBvdmVycnVuIGV4Y2Vw dCBpbmZvcm1pbmcNCj4+IEBAIC04MzAsOCArMTAyMywzNCBAQCB2b2lkIGF0bWVsX2hsY2RjX3Bs YW5lX2lycShzdHJ1Y3QgYXRtZWxfaGxjZGNfcGxhbmUgKnBsYW5lKQ0KPj4gICAgICAgIGlmIChp c3IgJg0KPj4gICAgICAgICAgICAoQVRNRUxfSExDRENfTEFZRVJfT1ZSX0lSUSgwKSB8IEFUTUVM X0hMQ0RDX0xBWUVSX09WUl9JUlEoMSkgfA0KPj4gICAgICAgICAgICAgQVRNRUxfSExDRENfTEFZ RVJfT1ZSX0lSUSgyKSkpDQo+PiAtICAgICAgICAgICAgIGRldl9kYmcocGxhbmUtPmJhc2UuZGV2 LT5kZXYsICJvdmVycnVuIG9uIHBsYW5lICVzXG4iLA0KPj4gLSAgICAgICAgICAgICAgICAgICAg IGRlc2MtPm5hbWUpOw0KPj4gKyAgICAgICAgICAgICBwcl93YXJuKCIlczogb3ZlcnJ1biBvbiBw bGFuZSAlc1xuIiwgX19mdW5jX18sIGRlc2MtPm5hbWUpOw0KPiANCj4gV2h5IGNoYW5naW5nIHRv IHByX3dhcm4/IHdoeSBub3QgZGV2X3dhcm4sIGlmIGFueT8NCj4gDQo+PiArfQ0KPj4gKw0KPj4g K3N0YXRpYyB2b2lkIHhsY2RjX2lycV9kYmcoc3RydWN0IGF0bWVsX2hsY2RjX3BsYW5lICpwbGFu ZSwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBhdG1lbF9obGNkY19s YXllcl9kZXNjICpkZXNjKQ0KPj4gK3sNCj4+ICsgICAgIHUzMiBpc3IgPSBhdG1lbF9obGNkY19s YXllcl9yZWFkX3JlZygmcGxhbmUtPmxheWVyLCBBVE1FTF9YTENEQ19MQVlFUl9JU1IpOw0KPj4g Kw0KPj4gKyAgICAgLyoNCj4+ICsgICAgICAqIFRoZXJlJ3Mgbm90IG11Y2ggd2UgY2FuIGRvIGlu IGNhc2Ugb2Ygb3ZlcnJ1biBleGNlcHQgaW5mb3JtaW5nDQo+PiArICAgICAgKiB0aGUgdXNlci4g SG93ZXZlciwgd2UgYXJlIGluIGludGVycnVwdCBjb250ZXh0IGhlcmUsIGhlbmNlIHRoZQ0KPj4g KyAgICAgICogdXNlIG9mIGRldl9kYmcoKS4NCj4+ICsgICAgICAqLw0KPj4gKyAgICAgaWYgKGlz ciAmDQo+PiArICAgICAgICAgKEFUTUVMX1hMQ0RDX0xBWUVSX09WUl9JUlEoMCkgfCBBVE1FTF9Y TENEQ19MQVlFUl9PVlJfSVJRKDEpIHwNCj4+ICsgICAgICAgICAgQVRNRUxfWExDRENfTEFZRVJf T1ZSX0lSUSgyKSkpDQo+PiArICAgICAgICAgICAgIHByX3dhcm4oIiVzOiBvdmVycnVuIG9uIHBs YW5lICVzXG4iLCBfX2Z1bmNfXywgZGVzYy0+bmFtZSk7DQo+IA0KPiBkZXZfd2FybigpID8NCj4g DQo+PiArfQ0KPj4gKw0KPj4gK3ZvaWQgYXRtZWxfaGxjZGNfcGxhbmVfaXJxKHN0cnVjdCBhdG1l bF9obGNkY19wbGFuZSAqcGxhbmUpDQo+PiArew0KPj4gKyAgICAgY29uc3Qgc3RydWN0IGF0bWVs X2hsY2RjX2xheWVyX2Rlc2MgKmRlc2MgPSBwbGFuZS0+bGF5ZXIuZGVzYzsNCj4+ICsgICAgIHN0 cnVjdCBhdG1lbF9obGNkY19kYyAqZGMgPSBwbGFuZS0+YmFzZS5kZXYtPmRldl9wcml2YXRlOw0K Pj4gKw0KPj4gKyAgICAgaWYgKGRjLT5kZXNjLT5pc194bGNkYykNCj4+ICsgICAgICAgICAgICAg eGxjZGNfaXJxX2RiZyhwbGFuZSwgZGVzYyk7DQo+PiArICAgICBlbHNlDQo+PiArICAgICAgICAg ICAgIGhsY2RjX2lycV9kYmcocGxhbmUsIGRlc2MpOw0KPiANCj4gICAgICAgICAgZGMtPmRlc2Mt PmxjZGNfaXJxX2RiZygpID8NCj4gDQo+PiAgIH0NCj4+DQo+PiAgIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZHJtX3BsYW5lX2hlbHBlcl9mdW5jcyBhdG1lbF9obGNkY19sYXllcl9wbGFuZV9oZWxwZXJf ZnVuY3MgPSB7DQoNCi0tIA0KVGhhbmtzIGFuZCBSZWdhcmRzLA0KTWFuaWthbmRhbiBNLg0KDQo=