From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 822C2A0C58; Tue, 30 Nov 2021 08:31:37 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4013140DF7; Tue, 30 Nov 2021 08:31:37 +0100 (CET) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2046.outbound.protection.outlook.com [40.107.243.46]) by mails.dpdk.org (Postfix) with ESMTP id 645124068F for ; Tue, 30 Nov 2021 08:31:35 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HG2OMYw5nOyihocDo2RA2AcXr/KbZbcyJZS9I/fUv6UA9CkECi0mbhLLYc92CyWrFJeNrOVm6hh//56luL5bNN1Mi9M30tQMXCD9M7Rb2DrA+KGoGWHdolOL6yM2c1pLqs/eGRPZtHhOWmy0gqLq0P2eWNHS4kRCYTvFxMEnky0UROIjPXUdS84HgD2XIYbCMR3JBEDdla1aK5Uf1ZmfMKEHQFeqUkkLlur0qiBZCipY+9cTlr9elDi9TiwrA5bH5Eookdp0dExd4tLUtb6qJGkWllmqYf108e30TaPUqx8UdtGmm9cHxL5EgVoBkCzrja9gf4Z3Nx3LqhUVsuSv3Q== 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=mVPakjykkjQTgTDwWg2NPUQN1VDSY+rjfPxfP4QKs7g=; b=Rrmw8wd7L9EP2bukWfpAF8mrvRCu1VZV+B7IF+NuvNa3R5CSIPvMHVjyzZ/+gn3wLKG97TQaUoHXw3TqxSKLcuywHSTwNcqTXsw7sWQ+H2p+WtfLbnBRYc8bn4knhbZ5LkUOLfIpPGBmqtc71XCYQ3sNPBdhBReU7toi0lfbwmoncAaOBzDtpP9SNEmrPhwfFSwqnbmtjyrDMPzB5DD2EfL/oVIvW5lu8HvqxAggKkpzqg9A/oE8btOgzS6cenaT2XgivG7dmN/wNmMQsQnLwweDigFtv6iI4/nC9NQQnQnTSQozbEzyH+FxoTdP1RGil56f9MurEuVp36iAnMdeVA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vmware.com; dmarc=pass action=none header.from=vmware.com; dkim=pass header.d=vmware.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vmware.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mVPakjykkjQTgTDwWg2NPUQN1VDSY+rjfPxfP4QKs7g=; b=EQaP7l6hcKhmPuNIYEpF5p/4+PkRSD6qFav83LIfox8JvQoMQaS5V2lpYSq+j6oDcMRUKsnNltuRVEwRsTkk4o+Cs4EKB9KHVNt0dHAIeyGhBS7bWYvLmu9oOd2R9rbo+vuro7YptfQ7EN80FOc2KYlrwk+rtc2JITjbAPvNbNg= Received: from BY3PR05MB8050.namprd05.prod.outlook.com (2603:10b6:a03:36c::17) by SJ0PR05MB7437.namprd05.prod.outlook.com (2603:10b6:a03:288::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.9; Tue, 30 Nov 2021 07:31:32 +0000 Received: from BY3PR05MB8050.namprd05.prod.outlook.com ([fe80::a898:4d39:997:33a6]) by BY3PR05MB8050.namprd05.prod.outlook.com ([fe80::a898:4d39:997:33a6%6]) with mapi id 15.20.4755.012; Tue, 30 Nov 2021 07:31:32 +0000 From: Yong Wang To: "sahithi.singam@oracle.com" CC: "dev@dpdk.org" Subject: Re: [PATCH] net/vmxnet3: add spinlocks to register command access Thread-Topic: [PATCH] net/vmxnet3: add spinlocks to register command access Thread-Index: AQHX1Hn4l/qDs+OMNk+qqtCYXiNnhawbSYaA Date: Tue, 30 Nov 2021 07:31:31 +0000 Message-ID: References: <20211108082331.1407-1-sahithi.singam@oracle.com> In-Reply-To: <20211108082331.1407-1-sahithi.singam@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/16.55.21111400 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vmware.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: dbdd359d-b3e7-4c91-7076-08d9b3d36e5c x-ms-traffictypediagnostic: SJ0PR05MB7437: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6430; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Ehi1eIwrnvyHQVGNnKmHnQTBRpqZMVw29OqAArNbCXJxcrEF3vs/Xk/qinpZnDoXsYTOEvo51jGK7/mIHEXltEVc/TzHh7dqmoIJzKnPlc1shEbuWWVS7O1Yh/ivZRuD5dDDvWs0M82/d6/0qh/a8bdwcHD7aZNsbd7Kgxcy2+29plDpm5gzGllj8s8N7rVXK/mE8Qb4RRA0PJVLv47QjMie8rMBh7dc9dyyayN/bHZr0BSgS/xds2/MRkOBziXuJus5uwwwuwYmngCf4ENRTvA9g9kMx/NBDePxNTrkhApHViKN17HoJIYkOzasCyQzlDDCgf7F4jQ6mXj2DLW7gPG0jfNYA2j0WFGi/f6EVxe639zgO8KpBzM+i3tMxtw/iTEd6SU13juPM6Kga0RuVjanRZh7M8q1u3Nfxl5FR7uu1++Y+b+N4mJCQaxgQCOGBhN9HcBLb/nwpxWh5No7j6l7M8evkOZEkAs9MWMiCsUMxmGywf2D/3rXOkfpGuZ0bT3Tt16aqy0vtSZ3wUcAbe/gA4TCzk6svwTQO7FZXLCD3LYfxoWbtLUhQKcKE7dEsPV6GVzzuxpc2FdFuOPx9CDWveY0mdygFvAos+dKioBuzizft/+CwxMrfIlNlc4XCxMfnhyl+06UUdRVKVQQSdQZQbZC95/INo6l3DkhidX0Ce1IF2iuu/MugtFi+XP8nZcnUmzOxIyNMc/ATjOWBpP/SMFhXk6m0twL1hV64y7NhMsoycYCPE4var54fiTdN1blmwrk9HH+WeAjcMYhUHY1+BtdPK+/9h4+MWX4x0I= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY3PR05MB8050.namprd05.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(64756008)(316002)(66946007)(76116006)(66556008)(66476007)(38070700005)(6512007)(86362001)(66446008)(83380400001)(186003)(33656002)(36756003)(2906002)(4326008)(5660300002)(71200400001)(6506007)(53546011)(8676002)(6916009)(38100700002)(508600001)(122000001)(19627235002)(2616005)(8936002)(6486002)(45980500001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?N1VtbU4zbjl5dStOaVdSeU9vbVpZTlIxekVxUXpodG80UVJyOWJ2elRpbER2?= =?utf-8?B?RmU3dUtsazErdzFFSHRKODlWRUE0RS9NWWJEVTNqbTFQL1B0bEk1ZllKVjI2?= =?utf-8?B?SUFXNm1VSWV1K0lCZTdYamFSYjJZNTA0M29zU1Bnay9PeUxvYVkwWCt6WmdX?= =?utf-8?B?R29Wa0NKWUE3c2NEa0VJSW0zYngzeHU5VzhvT3lmN2hEMS9vNTREdmpFSEJL?= =?utf-8?B?VnhnVGhpVGN2c3ppd1d3djBGamZTcmR2WDJTUzVzUmVxZnRFZmdSTUYvaWhW?= =?utf-8?B?VEl3Q1QxSnoxUmNSZ3FSM3JGUW96cGpCZXpxR3BPZkhnejl4T2JnbXpRaUJk?= =?utf-8?B?a25FYzdxdjdFMW1hY2JvOTNZRDcvRlB1emQ2NUg1RjI5VEhCc0VIS3VSVUJi?= =?utf-8?B?d3JIbkNqRHJpYjF5dlBzUzB2U05YaE5CUElHTnFZdEhNSHZUN0ZQUUx0ajVt?= =?utf-8?B?MU1mcDBYU3k2bW5YOFB2aG9JbXNaTnpGVVd5M3lQS3hEWWFwek5wVm9KWjNY?= =?utf-8?B?V2p4eksvYlVnTUlVUzhGZnI1NEcwdlBrbTB2T0ZuZEd4TGZrVzJRQlJtOS9D?= =?utf-8?B?QmQwb0c5c1REOGpubzU1YjZLdGZwZ1JQUk9SSFhlS0Z5RHhMdU9vaTl3THA5?= =?utf-8?B?U1B1Z1FIdG9vL2NWVVFwVThzY3NUa2VRdFNSR3c4dU9HQmxHRTBuRlcxVlFa?= =?utf-8?B?azhYaTZBTllkWlBiLzVSalltdWNmRUs4S3NtNGUvNnpZd1dPZGgrRDJiRE5u?= =?utf-8?B?ZU5mT1g3QnE2WEhaZExpanRpSHdBb3lrUUwyZUh4OTlxMmNaSDVFVjhIdlA3?= =?utf-8?B?bkpMZ0tCVU1qYno5KzhmMUdLSTk4ZTVTL0NKcE82djlGWVFvQnNwZnpHMGRL?= =?utf-8?B?bEdhMm12VUtiTFpsTmd0TGFpMncyL2ZDd3RLZXpWM3pDME8vM3dja2lqVDNo?= =?utf-8?B?dEFLTDRVRUYyNjY3UVN4WmNSQmw1d1lrNzZuUk9YZTUwSmxQdTdwWlNmYTJh?= =?utf-8?B?d1JXV3lCNmluT0JBZGU2Q1loZWpKUkF2aURpeE0rMzdXV0JEMG93aWxkUW1s?= =?utf-8?B?ZmpneEFtUzJwT3RoNHBhTEp1Z0NxdjZkTjBrOWtFZ1p4by96dVl1ek9hWDk1?= =?utf-8?B?K0crQVM0d3FiR2kwTkF3cUdCREhYSjQ5QVROTFhLMU9Gd1pwWkZaakpUS3ZT?= =?utf-8?B?aEROR1dieXF5RDBWc2xzaEU0R2FBaGZaVUhNeVp6V1dOVGRaQnBkMDF0UnRy?= =?utf-8?B?MnBpRC81OFZvdk5tS0JuVzMvWDNFT2RQT1dLRlNlSVBUMVFKeXlKYmhRKy9B?= =?utf-8?B?RVlEcXRFKy8xU3Y3TXRTY1FWVk4rVDg5M3I4a1kzcmpPc3puNDBWTlRHRWRS?= =?utf-8?B?cHk2amk4TEk3bnl0OXNLRHdFM094SnNUb3pQYmVmSm9lS2tlWm1OaWdaR0Jr?= =?utf-8?B?SStLVG5LdE9Db1dpT1kwSkUrU1JndXJyeG9pZ1JOK1lwR2pTTGxRblNabzJF?= =?utf-8?B?Q0dBL05xcmNCME1DWFo3UzlzZGF4bVU5NGhLWDROV01vU1FyMEN5Y1pZY0pM?= =?utf-8?B?MGhDMUlvaCtVMXF4ZmtRb3VyRTRRZzBsWWliRUhHMWg2WVE4cTg3Ulk2emVF?= =?utf-8?B?b0NIcXpMRDAyenV2ZTcrQVJZZXFnL3pMZG05SkhQUXdBdGNxZFc0NUF3T3Fk?= =?utf-8?B?REQ4TUFDaVhtSXNQeDh3S01PRW9IcWZPRGlLQlNyY0NBbUtHaFdEYWhDUTgv?= =?utf-8?B?NWlMbFc1UXRjYm55c0Zqc0M2SFVuNFNWU1AvR0FtY3J5NmovNXFiTmtKUlpY?= =?utf-8?B?UU5BUzRHUWxIQlIzQlZEUEZhcmpXSEE0bWZQSFZWL1V5TFc2THB6NW56QUZG?= =?utf-8?B?SEhWZzVhZnJBME41WHBoNDRVVVRwMkNya1BiWVhMb0F5MmxtTGJrbHBpd2di?= =?utf-8?B?Wllkc2Q3QXptN2llL2hEUWczTFVHS0dmbWJqblVRS2szK0gzL3d0N25PSHFO?= =?utf-8?B?MUsvUnRTcGFtRUdqRHlEOWt2bTRiOHFUOTREK2pXOFZQRlVTb0QrRVd2emx6?= =?utf-8?B?YW01clNwbnE4TmVHZWR2Ums2TUZqQ2U5UmVVZUtBcERTQnZPME90UkxLMlQz?= =?utf-8?B?VXpPNjI2UEdPV0xqRjg3SXRqbzZENUttNW9hMlprYWR1SVZSUUhTZ3lpcDR4?= =?utf-8?B?eGRqdktONEE2TzYxS1kxVzJ0eVhUTVhpd0EyK1B0WGc3YmFyK3kzdFBFWVpy?= =?utf-8?B?dVhrRElwZXc5RWhFVFFSU3huNHkzMHMraDkzY3NNY3h1ZElwcktpMVRvYTRM?= =?utf-8?Q?ZGElQ6RsEzK1IVE0Z8?= Content-Type: text/plain; charset="utf-8" Content-ID: <120FB6CB4D33E4428C087DCE644BC4E6@namprd05.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY3PR05MB8050.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: dbdd359d-b3e7-4c91-7076-08d9b3d36e5c X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Nov 2021 07:31:31.9046 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: jx39AmPQSY39vY2cGKiml7jYTW2EMTeVmpoIdFaktJhaKTj0hP5qq9RG4ZREDvNWsu6NifXgjdJDDCFOIjFp0w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR05MB7437 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206ICJzYWhpdGhpLnNpbmdhbUBvcmFjbGUu Y29tIiA8c2FoaXRoaS5zaW5nYW1Ab3JhY2xlLmNvbT4NCkRhdGU6IE1vbmRheSwgTm92ZW1iZXIg OCwgMjAyMSBhdCAxMjoyMyBBTQ0KVG86IFlvbmcgV2FuZyA8eW9uZ3dhbmdAdm13YXJlLmNvbT4N CkNjOiAiZGV2QGRwZGsub3JnIiA8ZGV2QGRwZGsub3JnPiwgU2FoaXRoaSBTaW5nYW0gPHNhaGl0 aGkuc2luZ2FtQG9yYWNsZS5jb20+DQpTdWJqZWN0OiBbUEFUQ0hdIG5ldC92bXhuZXQzOiBhZGQg c3BpbmxvY2tzIHRvIHJlZ2lzdGVyIGNvbW1hbmQgYWNjZXNzDQoNCiAgICBGcm9tOiBTYWhpdGhp IFNpbmdhbSA8c2FoaXRoaS5zaW5nYW1Ab3JhY2xlLmNvbT4NCg0KICAgIEF0IHByZXNlbnQsIHRo ZXJlIGFyZSBubyBzcGlubG9ja3MgYXJvdW5kIHJlZ2lzdGVyIGNvbW1hbmQgYWNjZXNzLg0KICAg IFRoaXMgcmVzdWx0ZWQgaW4gYSByYWNlIGNvbmRpdGlvbiB3aGVuIHR3byB0aHJlYWRzIHJ1bm5p bmcgb24NCiAgICB0d28gZGlmZmVyZW50IGNvcmVzIGludm9rZWQgbGlua191cGRhdGUgZnVuY3Rp b24gYXQgdGhlIHNhbWUgdGltZQ0KICAgIHRvIGdldCBsaW5rIHN0YXR1cy4gRHVlIHRvIHRoaXMg cmFjZSBjb25kaXRpb24sIG9uZSBvZiB0aGUgdGhyZWFkcw0KICAgIHJlcG9ydGVkIGZhbHNlIGxp bmsgc3RhdHVzIHZhbHVlLg0KDQogICAgU2lnbmVkLW9mZi1ieTogU2FoaXRoaSBTaW5nYW0gPHNh aGl0aGkuc2luZ2FtQG9yYWNsZS5jb20+DQogICAgLS0tDQoNClRoYW5rcyBTYWhpdGhpIGZvciB0 aGUgcGF0Y2guICBBcyB3ZSBkaXNjdXNzZWQgb2ZmbGluZSwgaW4gRFBESywgdGhlIGV4cGVjdGF0 aW9uIGlzIHRoYXQgY29udHJvbCBsZXZlbCBzeW5jaHJvbml6YXRpb24gc2hvdWxkIGJlIGhhbmRs ZWQgYnkgdGhlIGFwcGxpY2F0aW9uLiAgSW4gbXkga25vd2xlZGdlLCBjdXJyZW50bHkgbm8gUE1E IGd1YXJhbnRlZSBzdWNoIHN5bmNocm9uaXphdGlvbiBhdCBkcml2ZXIgY2FsbGJhY2sgbGV2ZWwu ICBJdCBtYWtlcyBtb3JlIHNlbnNlIHRvIGhhdmUgdGhlIGFwcGxpY2F0aW9uIG1hbmFnZXMgdGhl IHN5bmNocm9uaXphdGlvbiBhcyBtb3N0IGxpa2VseSBpdCBuZWVkcyB0byB3b3JrIHdpdGggbXVs dGlwbGUgUE1EcyBhbmQgaXQncyBiZXR0ZXIgdG8ga2VlcCB0aGlzIGJlaGF2aW9yIGNvbnNpc3Rl bnQgYWNyb3NzIGFsbCBQTURzIChpLmUsIGl0IGRvZXMgbm90IG1ha2UgYSBsb3Qgb2Ygc2Vuc2Ug dG8gc3VwcG9ydCB0aGlzIGJlaGF2aW9yIG9ubHkgaW4gb25lIHBhcnRpY3VsYXIgUE1EKS4NCg0K ICAgICBkcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmMgfCAzNyArKysrKysrKysr KysrKysrKysrKysrKysrKysrDQogICAgIGRyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19ldGhk ZXYuaCB8ICAxICsNCiAgICAgZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX3J4dHguYyAgIHwg IDIgKysNCiAgICAgMyBmaWxlcyBjaGFuZ2VkLCA0MCBpbnNlcnRpb25zKCspDQoNCiAgICBkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX2V0aGRldi5jIGIvZHJpdmVycy9u ZXQvdm14bmV0My92bXhuZXQzX2V0aGRldi5jDQogICAgaW5kZXggZDFlZjFjYWQwOC4uZDRhNDMz ZTBkYiAxMDA2NDQNCiAgICAtLS0gYS9kcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZXRoZGV2 LmMNCiAgICArKysgYi9kcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmMNCiAgICBA QCAtMjUyLDkgKzI1MiwxMSBAQCBldGhfdm14bmV0M190eGRhdGFfZ2V0KHN0cnVjdCB2bXhuZXQz X2h3ICpodykNCiAgICAgew0KICAgICAJdWludDE2IHR4ZGF0YV9kZXNjX3NpemU7DQoNCiAgICAr CXJ0ZV9zcGlubG9ja19sb2NrKCZody0+Y21kX2xvY2spOw0KICAgICAJVk1YTkVUM19XUklURV9C QVIxX1JFRyhodywgVk1YTkVUM19SRUdfQ01ELA0KICAgICAJCQkgICAgICAgVk1YTkVUM19DTURf R0VUX1RYREFUQV9ERVNDX1NJWkUpOw0KICAgICAJdHhkYXRhX2Rlc2Nfc2l6ZSA9IFZNWE5FVDNf UkVBRF9CQVIxX1JFRyhodywgVk1YTkVUM19SRUdfQ01EKTsNCiAgICArCXJ0ZV9zcGlubG9ja191 bmxvY2soJmh3LT5jbWRfbG9jayk7DQoNCiAgICAgCXJldHVybiAodHhkYXRhX2Rlc2Nfc2l6ZSA8 IFZNWE5FVDNfVFhEQVRBX0RFU0NfTUlOX1NJWkUgfHwNCiAgICAgCQl0eGRhdGFfZGVzY19zaXpl ID4gVk1YTkVUM19UWERBVEFfREVTQ19NQVhfU0laRSB8fA0KICAgIEBAIC0yODUsNiArMjg3LDcg QEAgZXRoX3ZteG5ldDNfZGV2X2luaXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2KQ0KICAg ICAJZXRoX2Rldi0+dHhfcGt0X2J1cnN0ID0gJnZteG5ldDNfeG1pdF9wa3RzOw0KICAgICAJZXRo X2Rldi0+dHhfcGt0X3ByZXBhcmUgPSB2bXhuZXQzX3ByZXBfcGt0czsNCiAgICAgCXBjaV9kZXYg PSBSVEVfRVRIX0RFVl9UT19QQ0koZXRoX2Rldik7DQogICAgKwlydGVfc3BpbmxvY2tfaW5pdCgm aHctPmNtZF9sb2NrKTsNCg0KICAgICAJLyogZXh0cmEgbWJ1ZiBmaWVsZCBpcyByZXF1aXJlZCB0 byBndWVzcyBNU1MgKi8NCiAgICAgCXZteG5ldDNfc2Vnc19keW5maWVsZF9vZmZzZXQgPQ0KICAg IEBAIC0zNzUsNyArMzc4LDkgQEAgZXRoX3ZteG5ldDNfZGV2X2luaXQoc3RydWN0IHJ0ZV9ldGhf ZGV2ICpldGhfZGV2KQ0KICAgICAJCSAgICAgaHctPnBlcm1fYWRkclszXSwgaHctPnBlcm1fYWRk cls0XSwgaHctPnBlcm1fYWRkcls1XSk7DQoNCiAgICAgCS8qIFB1dCBkZXZpY2UgaW4gUXVpZXNj ZSBNb2RlICovDQogICAgKwlydGVfc3BpbmxvY2tfbG9jaygmaHctPmNtZF9sb2NrKTsNCiAgICAg CVZNWE5FVDNfV1JJVEVfQkFSMV9SRUcoaHcsIFZNWE5FVDNfUkVHX0NNRCwgVk1YTkVUM19DTURf UVVJRVNDRV9ERVYpOw0KICAgICsJcnRlX3NwaW5sb2NrX3VubG9jaygmaHctPmNtZF9sb2NrKTsN Cg0KICAgICAJLyogYWxsb3cgdW50YWdnZWQgcGt0cyAqLw0KICAgICAJVk1YTkVUM19TRVRfVkZU QUJMRV9FTlRSWShody0+c2hhZG93X3ZmdGEsIDApOw0KICAgIEBAIC00NTEsOSArNDU2LDExIEBA IHZteG5ldDNfYWxsb2NfaW50cl9yZXNvdXJjZXMoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpDQog ICAgIAlpbnQgbnZlYyA9IDE7IC8qIGZvciBsaW5rIGV2ZW50ICovDQoNCiAgICAgCS8qIGludHIg c2V0dGluZ3MgKi8NCiAgICArCXJ0ZV9zcGlubG9ja19sb2NrKCZody0+Y21kX2xvY2spOw0KICAg ICAJVk1YTkVUM19XUklURV9CQVIxX1JFRyhodywgVk1YTkVUM19SRUdfQ01ELA0KICAgICAJCQkg ICAgICAgVk1YTkVUM19DTURfR0VUX0NPTkZfSU5UUik7DQogICAgIAljZmcgPSBWTVhORVQzX1JF QURfQkFSMV9SRUcoaHcsIFZNWE5FVDNfUkVHX0NNRCk7DQogICAgKwlydGVfc3BpbmxvY2tfdW5s b2NrKCZody0+Y21kX2xvY2spOw0KICAgICAJaHctPmludHIudHlwZSA9IGNmZyAmIDB4MzsNCiAg ICAgCWh3LT5pbnRyLm1hc2tfbW9kZSA9IChjZmcgPj4gMikgJiAweDM7DQoNCiAgICBAQCAtOTEw LDggKzkxNywxMCBAQCB2bXhuZXQzX2Rldl9zdGFydChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikN CiAgICAgCQkJICAgICAgIFZNWE5FVDNfR0VUX0FERFJfSEkoaHctPnNoYXJlZFBBKSk7DQoNCiAg ICAgCS8qIEFjdGl2YXRlIGRldmljZSBieSByZWdpc3RlciB3cml0ZSAqLw0KICAgICsJcnRlX3Nw aW5sb2NrX2xvY2soJmh3LT5jbWRfbG9jayk7DQogICAgIAlWTVhORVQzX1dSSVRFX0JBUjFfUkVH KGh3LCBWTVhORVQzX1JFR19DTUQsIFZNWE5FVDNfQ01EX0FDVElWQVRFX0RFVik7DQogICAgIAly ZXQgPSBWTVhORVQzX1JFQURfQkFSMV9SRUcoaHcsIFZNWE5FVDNfUkVHX0NNRCk7DQogICAgKwly dGVfc3BpbmxvY2tfdW5sb2NrKCZody0+Y21kX2xvY2spOw0KDQogICAgIAlpZiAocmV0ICE9IDAp IHsNCiAgICAgCQlQTURfSU5JVF9MT0coRVJSLCAiRGV2aWNlIGFjdGl2YXRpb246IFVOU1VDQ0VT U0ZVTCIpOw0KICAgIEBAIC05MjEsOSArOTMwLDExIEBAIHZteG5ldDNfZGV2X3N0YXJ0KHN0cnVj dCBydGVfZXRoX2RldiAqZGV2KQ0KICAgICAJLyogU2V0dXAgbWVtb3J5IHJlZ2lvbiBmb3Igcngg YnVmZmVycyAqLw0KICAgICAJcmV0ID0gdm14bmV0M19kZXZfc2V0dXBfbWVtcmVnKGRldik7DQog ICAgIAlpZiAocmV0ID09IDApIHsNCiAgICArCQlydGVfc3BpbmxvY2tfbG9jaygmaHctPmNtZF9s b2NrKTsNCiAgICAgCQlWTVhORVQzX1dSSVRFX0JBUjFfUkVHKGh3LCBWTVhORVQzX1JFR19DTUQs DQogICAgIAkJCQkgICAgICAgVk1YTkVUM19DTURfUkVHSVNURVJfTUVNUkVHUyk7DQogICAgIAkJ cmV0ID0gVk1YTkVUM19SRUFEX0JBUjFfUkVHKGh3LCBWTVhORVQzX1JFR19DTUQpOw0KICAgICsJ CXJ0ZV9zcGlubG9ja191bmxvY2soJmh3LT5jbWRfbG9jayk7DQogICAgIAkJaWYgKHJldCAhPSAw KQ0KICAgICAJCQlQTURfSU5JVF9MT0coREVCVUcsDQogICAgIAkJCQkgICAgICJGYWlsZWQgaW4g c2V0dXAgbWVtb3J5IHJlZ2lvbiBjbWRcbiIpOw0KICAgIEBAIC0xMDI3LDEyICsxMDM4LDE2IEBA IHZteG5ldDNfZGV2X3N0b3Aoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpDQogICAgIAlydGVfaW50 cl92ZWNfbGlzdF9mcmVlKGludHJfaGFuZGxlKTsNCg0KICAgICAJLyogcXVpZXNjZSB0aGUgZGV2 aWNlIGZpcnN0ICovDQogICAgKwlydGVfc3BpbmxvY2tfbG9jaygmaHctPmNtZF9sb2NrKTsNCiAg ICAgCVZNWE5FVDNfV1JJVEVfQkFSMV9SRUcoaHcsIFZNWE5FVDNfUkVHX0NNRCwgVk1YTkVUM19D TURfUVVJRVNDRV9ERVYpOw0KICAgICsJcnRlX3NwaW5sb2NrX3VubG9jaygmaHctPmNtZF9sb2Nr KTsNCiAgICAgCVZNWE5FVDNfV1JJVEVfQkFSMV9SRUcoaHcsIFZNWE5FVDNfUkVHX0RTQUwsIDAp Ow0KICAgICAJVk1YTkVUM19XUklURV9CQVIxX1JFRyhodywgVk1YTkVUM19SRUdfRFNBSCwgMCk7 DQoNCiAgICAgCS8qIHJlc2V0IHRoZSBkZXZpY2UgKi8NCiAgICArCXJ0ZV9zcGlubG9ja19sb2Nr KCZody0+Y21kX2xvY2spOw0KICAgICAJVk1YTkVUM19XUklURV9CQVIxX1JFRyhodywgVk1YTkVU M19SRUdfQ01ELCBWTVhORVQzX0NNRF9SRVNFVF9ERVYpOw0KICAgICsJcnRlX3NwaW5sb2NrX3Vu bG9jaygmaHctPmNtZF9sb2NrKTsNCiAgICAgCVBNRF9JTklUX0xPRyhERUJVRywgIkRldmljZSBy ZXNldC4iKTsNCg0KICAgICAJdm14bmV0M19kZXZfY2xlYXJfcXVldWVzKGRldik7DQogICAgQEAg LTExODIsNyArMTE5Nyw5IEBAIHZteG5ldDNfaHdfc3RhdHNfc2F2ZShzdHJ1Y3Qgdm14bmV0M19o dyAqaHcpDQogICAgIHsNCiAgICAgCXVuc2lnbmVkIGludCBpOw0KDQogICAgKwlydGVfc3Bpbmxv Y2tfbG9jaygmaHctPmNtZF9sb2NrKTsNCiAgICAgCVZNWE5FVDNfV1JJVEVfQkFSMV9SRUcoaHcs IFZNWE5FVDNfUkVHX0NNRCwgVk1YTkVUM19DTURfR0VUX1NUQVRTKTsNCiAgICArCXJ0ZV9zcGlu bG9ja191bmxvY2soJmh3LT5jbWRfbG9jayk7DQoNCiAgICAgCVJURV9CVUlMRF9CVUdfT04oUlRF X0VUSERFVl9RVUVVRV9TVEFUX0NOVFJTIDwgVk1YTkVUM19NQVhfVFhfUVVFVUVTKTsNCg0KICAg IEBAIC0xMjg1LDcgKzEzMDIsOSBAQCB2bXhuZXQzX2Rldl9zdGF0c19nZXQoc3RydWN0IHJ0ZV9l dGhfZGV2ICpkZXYsIHN0cnVjdCBydGVfZXRoX3N0YXRzICpzdGF0cykNCiAgICAgCXN0cnVjdCBV UFQxX1R4U3RhdHMgdHhTdGF0czsNCiAgICAgCXN0cnVjdCBVUFQxX1J4U3RhdHMgcnhTdGF0czsN Cg0KICAgICsJcnRlX3NwaW5sb2NrX2xvY2soJmh3LT5jbWRfbG9jayk7DQogICAgIAlWTVhORVQz X1dSSVRFX0JBUjFfUkVHKGh3LCBWTVhORVQzX1JFR19DTUQsIFZNWE5FVDNfQ01EX0dFVF9TVEFU Uyk7DQogICAgKwlydGVfc3BpbmxvY2tfdW5sb2NrKCZody0+Y21kX2xvY2spOw0KDQogICAgIAlS VEVfQlVJTERfQlVHX09OKFJURV9FVEhERVZfUVVFVUVfU1RBVF9DTlRSUyA8IFZNWE5FVDNfTUFY X1RYX1FVRVVFUyk7DQogICAgIAlmb3IgKGkgPSAwOyBpIDwgaHctPm51bV90eF9xdWV1ZXM7IGkr Kykgew0KICAgIEBAIC0xMzM1LDcgKzEzNTQsOSBAQCB2bXhuZXQzX2Rldl9zdGF0c19yZXNldChz dHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCiAgICAgCXN0cnVjdCBVUFQxX1R4U3RhdHMgdHhTdGF0 cyA9IHswfTsNCiAgICAgCXN0cnVjdCBVUFQxX1J4U3RhdHMgcnhTdGF0cyA9IHswfTsNCg0KICAg ICsJcnRlX3NwaW5sb2NrX2xvY2soJmh3LT5jbWRfbG9jayk7DQogICAgIAlWTVhORVQzX1dSSVRF X0JBUjFfUkVHKGh3LCBWTVhORVQzX1JFR19DTUQsIFZNWE5FVDNfQ01EX0dFVF9TVEFUUyk7DQog ICAgKwlydGVfc3BpbmxvY2tfdW5sb2NrKCZody0+Y21kX2xvY2spOw0KDQogICAgIAlSVEVfQlVJ TERfQlVHX09OKFJURV9FVEhERVZfUVVFVUVfU1RBVF9DTlRSUyA8IFZNWE5FVDNfTUFYX1RYX1FV RVVFUyk7DQoNCiAgICBAQCAtMTQ0Myw4ICsxNDY0LDEwIEBAIF9fdm14bmV0M19kZXZfbGlua191 cGRhdGUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQoNCiAgICAgCW1lbXNldCgmbGluaywgMCwg c2l6ZW9mKGxpbmspKTsNCg0KICAgICsJcnRlX3NwaW5sb2NrX2xvY2soJmh3LT5jbWRfbG9jayk7 DQogICAgIAlWTVhORVQzX1dSSVRFX0JBUjFfUkVHKGh3LCBWTVhORVQzX1JFR19DTUQsIFZNWE5F VDNfQ01EX0dFVF9MSU5LKTsNCiAgICAgCXJldCA9IFZNWE5FVDNfUkVBRF9CQVIxX1JFRyhodywg Vk1YTkVUM19SRUdfQ01EKTsNCiAgICArCXJ0ZV9zcGlubG9ja191bmxvY2soJmh3LT5jbWRfbG9j ayk7DQoNCiAgICAgCWlmIChyZXQgJiAweDEpDQogICAgIAkJbGluay5saW5rX3N0YXR1cyA9IFJU RV9FVEhfTElOS19VUDsNCiAgICBAQCAtMTQ3Niw3ICsxNDk5LDkgQEAgdm14bmV0M19kZXZfc2V0 X3J4bW9kZShzdHJ1Y3Qgdm14bmV0M19odyAqaHcsIHVpbnQzMl90IGZlYXR1cmUsIGludCBzZXQp DQogICAgIAllbHNlDQogICAgIAkJcnhDb25mLT5yeE1vZGUgPSByeENvbmYtPnJ4TW9kZSAmICh+ ZmVhdHVyZSk7DQoNCiAgICArCXJ0ZV9zcGlubG9ja19sb2NrKCZody0+Y21kX2xvY2spOw0KICAg ICAJVk1YTkVUM19XUklURV9CQVIxX1JFRyhodywgVk1YTkVUM19SRUdfQ01ELCBWTVhORVQzX0NN RF9VUERBVEVfUlhfTU9ERSk7DQogICAgKwlydGVfc3BpbmxvY2tfdW5sb2NrKCZody0+Y21kX2xv Y2spOw0KICAgICB9DQoNCiAgICAgLyogUHJvbWlzY3VvdXMgc3VwcG9ydGVkIG9ubHkgaWYgVm14 bmV0M19Ecml2ZXJTaGFyZWQgaXMgaW5pdGlhbGl6ZWQgaW4gYWRhcHRlciAqLw0KICAgIEBAIC0x NDg5LDggKzE1MTQsMTAgQEAgdm14bmV0M19kZXZfcHJvbWlzY3VvdXNfZW5hYmxlKHN0cnVjdCBy dGVfZXRoX2RldiAqZGV2KQ0KICAgICAJbWVtc2V0KHZmX3RhYmxlLCAwLCBWTVhORVQzX1ZGVF9U QUJMRV9TSVpFKTsNCiAgICAgCXZteG5ldDNfZGV2X3NldF9yeG1vZGUoaHcsIFZNWE5FVDNfUlhN X1BST01JU0MsIDEpOw0KDQogICAgKwlydGVfc3BpbmxvY2tfbG9jaygmaHctPmNtZF9sb2NrKTsN CiAgICAgCVZNWE5FVDNfV1JJVEVfQkFSMV9SRUcoaHcsIFZNWE5FVDNfUkVHX0NNRCwNCiAgICAg CQkJICAgICAgIFZNWE5FVDNfQ01EX1VQREFURV9WTEFOX0ZJTFRFUlMpOw0KICAgICsJcnRlX3Nw aW5sb2NrX3VubG9jaygmaHctPmNtZF9sb2NrKTsNCg0KICAgICAJcmV0dXJuIDA7DQogICAgIH0N CiAgICBAQCAtMTUwOCw4ICsxNTM1LDEwIEBAIHZteG5ldDNfZGV2X3Byb21pc2N1b3VzX2Rpc2Fi bGUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpDQogICAgIAllbHNlDQogICAgIAkJbWVtc2V0KHZm X3RhYmxlLCAweGZmLCBWTVhORVQzX1ZGVF9UQUJMRV9TSVpFKTsNCiAgICAgCXZteG5ldDNfZGV2 X3NldF9yeG1vZGUoaHcsIFZNWE5FVDNfUlhNX1BST01JU0MsIDApOw0KICAgICsJcnRlX3NwaW5s b2NrX2xvY2soJmh3LT5jbWRfbG9jayk7DQogICAgIAlWTVhORVQzX1dSSVRFX0JBUjFfUkVHKGh3 LCBWTVhORVQzX1JFR19DTUQsDQogICAgIAkJCSAgICAgICBWTVhORVQzX0NNRF9VUERBVEVfVkxB Tl9GSUxURVJTKTsNCiAgICArCXJ0ZV9zcGlubG9ja191bmxvY2soJmh3LT5jbWRfbG9jayk7DQoN CiAgICAgCXJldHVybiAwOw0KICAgICB9DQogICAgQEAgLTE1NjAsOCArMTU4OSwxMCBAQCB2bXhu ZXQzX2Rldl92bGFuX2ZpbHRlcl9zZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90 IHZpZCwgaW50IG9uKQ0KICAgICAJZWxzZQ0KICAgICAJCVZNWE5FVDNfQ0xFQVJfVkZUQUJMRV9F TlRSWSh2Zl90YWJsZSwgdmlkKTsNCg0KICAgICsJcnRlX3NwaW5sb2NrX2xvY2soJmh3LT5jbWRf bG9jayk7DQogICAgIAlWTVhORVQzX1dSSVRFX0JBUjFfUkVHKGh3LCBWTVhORVQzX1JFR19DTUQs DQogICAgIAkJCSAgICAgICBWTVhORVQzX0NNRF9VUERBVEVfVkxBTl9GSUxURVJTKTsNCiAgICAr CXJ0ZV9zcGlubG9ja191bmxvY2soJmh3LT5jbWRfbG9jayk7DQogICAgIAlyZXR1cm4gMDsNCiAg ICAgfQ0KDQogICAgQEAgLTE1NzksOCArMTYxMCwxMCBAQCB2bXhuZXQzX2Rldl92bGFuX29mZmxv YWRfc2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCBpbnQgbWFzaykNCiAgICAgCQllbHNlDQog ICAgIAkJCWRldlJlYWQtPm1pc2MudXB0RmVhdHVyZXMgJj0gflVQVDFfRl9SWFZMQU47DQoNCiAg ICArCQlydGVfc3BpbmxvY2tfbG9jaygmaHctPmNtZF9sb2NrKTsNCiAgICAgCQlWTVhORVQzX1dS SVRFX0JBUjFfUkVHKGh3LCBWTVhORVQzX1JFR19DTUQsDQogICAgIAkJCQkgICAgICAgVk1YTkVU M19DTURfVVBEQVRFX0ZFQVRVUkUpOw0KICAgICsJCXJ0ZV9zcGlubG9ja191bmxvY2soJmh3LT5j bWRfbG9jayk7DQogICAgIAl9DQoNCiAgICAgCWlmIChtYXNrICYgUlRFX0VUSF9WTEFOX0ZJTFRF Ul9NQVNLKSB7DQogICAgQEAgLTE1ODksOCArMTYyMiwxMCBAQCB2bXhuZXQzX2Rldl92bGFuX29m ZmxvYWRfc2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCBpbnQgbWFzaykNCiAgICAgCQllbHNl DQogICAgIAkJCW1lbXNldCh2Zl90YWJsZSwgMHhmZiwgVk1YTkVUM19WRlRfVEFCTEVfU0laRSk7 DQoNCiAgICArCQlydGVfc3BpbmxvY2tfbG9jaygmaHctPmNtZF9sb2NrKTsNCiAgICAgCQlWTVhO RVQzX1dSSVRFX0JBUjFfUkVHKGh3LCBWTVhORVQzX1JFR19DTUQsDQogICAgIAkJCQkgICAgICAg Vk1YTkVUM19DTURfVVBEQVRFX1ZMQU5fRklMVEVSUyk7DQogICAgKwkJcnRlX3NwaW5sb2NrX3Vu bG9jaygmaHctPmNtZF9sb2NrKTsNCiAgICAgCX0NCg0KICAgICAJcmV0dXJuIDA7DQogICAgQEAg LTE2MjIsOCArMTY1NywxMCBAQCB2bXhuZXQzX3Byb2Nlc3NfZXZlbnRzKHN0cnVjdCBydGVfZXRo X2RldiAqZGV2KQ0KDQogICAgIAkvKiBDaGVjayBpZiB0aGVyZSBpcyBhbiBlcnJvciBvbiB4bWl0 L3JlY3YgcXVldWVzICovDQogICAgIAlpZiAoZXZlbnRzICYgKFZNWE5FVDNfRUNSX1RRRVJSIHwg Vk1YTkVUM19FQ1JfUlFFUlIpKSB7DQogICAgKwkJcnRlX3NwaW5sb2NrX2xvY2soJmh3LT5jbWRf bG9jayk7DQogICAgIAkJVk1YTkVUM19XUklURV9CQVIxX1JFRyhodywgVk1YTkVUM19SRUdfQ01E LA0KICAgICAJCQkJICAgICAgIFZNWE5FVDNfQ01EX0dFVF9RVUVVRV9TVEFUVVMpOw0KICAgICsJ CXJ0ZV9zcGlubG9ja191bmxvY2soJmh3LT5jbWRfbG9jayk7DQoNCiAgICAgCQlpZiAoaHctPnRx ZF9zdGFydC0+c3RhdHVzLnN0b3BwZWQpDQogICAgIAkJCVBNRF9EUlZfTE9HKEVSUiwgInRxIGVy cm9yIDB4JXgiLA0KICAgIGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNf ZXRoZGV2LmggYi9kcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmgNCiAgICBpbmRl eCBlZjg1OGFjOTUxLi5kMDdhOGYyNzU3IDEwMDY0NA0KICAgIC0tLSBhL2RyaXZlcnMvbmV0L3Zt eG5ldDMvdm14bmV0M19ldGhkZXYuaA0KICAgICsrKyBiL2RyaXZlcnMvbmV0L3ZteG5ldDMvdm14 bmV0M19ldGhkZXYuaA0KICAgIEBAIC0xMDgsNiArMTA4LDcgQEAgc3RydWN0IHZteG5ldDNfaHcg ew0KICAgICAJdWludDY0X3QgICAgICAgICAgICAgIHF1ZXVlRGVzY1BBOw0KICAgICAJdWludDE2 X3QgICAgICAgICAgICAgIHF1ZXVlX2Rlc2NfbGVuOw0KICAgICAJdWludDE2X3QgICAgICAgICAg ICAgIG10dTsNCiAgICArCXJ0ZV9zcGlubG9ja190ICAgICAgICBjbWRfbG9jazsNCg0KICAgICAJ Vk1YTkVUM19SU1NDb25mICAgICAgICpyc3NfY29uZjsNCiAgICAgCXVpbnQ2NF90ICAgICAgICAg ICAgICByc3NfY29uZlBBOw0KICAgIGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92bXhuZXQzL3Zt eG5ldDNfcnh0eC5jIGIvZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX3J4dHguYw0KICAgIGlu ZGV4IGRlYmE2NGJlNmEuLmM4N2YxYzY0NzAgMTAwNjQ0DQogICAgLS0tIGEvZHJpdmVycy9uZXQv dm14bmV0My92bXhuZXQzX3J4dHguYw0KICAgICsrKyBiL2RyaXZlcnMvbmV0L3ZteG5ldDMvdm14 bmV0M19yeHR4LmMNCiAgICBAQCAtMTMzNCw5ICsxMzM0LDExIEBAIHZteG5ldDNfdjRfcnNzX2Nv bmZpZ3VyZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCiAgICAgCWlmIChyc3NfaGYgJiBSVEVf RVRIX1JTU19OT05GUkFHX0lQVjZfVURQKQ0KICAgICAJCWNtZEluZm8tPnNldFJTU0ZpZWxkcyB8 PSBWTVhORVQzX1JTU19GSUVMRFNfVURQSVA2Ow0KDQogICAgKwlydGVfc3BpbmxvY2tfbG9jaygm aHctPmNtZF9sb2NrKTsNCiAgICAgCVZNWE5FVDNfV1JJVEVfQkFSMV9SRUcoaHcsIFZNWE5FVDNf UkVHX0NNRCwNCiAgICAgCQkJICAgICAgIFZNWE5FVDNfQ01EX1NFVF9SU1NfRklFTERTKTsNCiAg ICAgCXJldCA9IFZNWE5FVDNfUkVBRF9CQVIxX1JFRyhodywgVk1YTkVUM19SRUdfQ01EKTsNCiAg ICArCXJ0ZV9zcGlubG9ja191bmxvY2soJmh3LT5jbWRfbG9jayk7DQoNCiAgICAgCWlmIChyZXQg IT0gVk1YTkVUM19TVUNDRVNTKSB7DQogICAgIAkJUE1EX0RSVl9MT0coRVJSLCAiU2V0IFJTUyBm aWVsZHMgKHY0KSBmYWlsZWQ6ICVkIiwgcmV0KTsNCiAgICAtLSANCiAgICAyLjMyLjAud2luZG93 cy4xDQoNCg0K