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 F416FA0554; Wed, 1 Jun 2022 02:05:46 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BE8A740A84; Wed, 1 Jun 2022 02:05:46 +0200 (CEST) Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2067.outbound.protection.outlook.com [40.107.22.67]) by mails.dpdk.org (Postfix) with ESMTP id 3CC3F40150 for ; Wed, 1 Jun 2022 02:05:45 +0200 (CEST) ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=VIC0k3ddtpRGI3bxuCX0N9fJoLOc7JVsUXJGFrSK1Xb+2HJqwLL/+QXaaM6GBthZ9wng0e55X/RatRtCGjyeRzDvUq7BcwJ3IIEYp2Z6YGYrwM2/txFstsBdf2bjWnrxT7nhSh6scvTGJilPvmxZ9NnbZaaZEJ2ftBA4rl0tHeb50WXusrX6SQKlmKJB0sRD7p85BPt9ijAIU9F+L101U5pqrmAVyl+aKiDc5mQtuN8zZrKpi4wa7I+/vfo7UhylGcEjzgzMqHcBc+ygjBPoy5JcF4oJSkexnS5lfp6fCp9dPa5fLwhhmU/0+ZshCB+Mij1uYM9Jo8GX+3WtlvezSQ== ARC-Message-Signature: i=2; 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=kgc9p4Ci6CMf+bnJk46JhZtBUZMLIbF2DQ8SMj/2R3k=; b=JYEhEVN/OOW1M789bQvIqOGGwH6FWQNPPzvER11EBFXt0p0t3UEQagU+akF6RrGrMw/3DR9S6Jc/v5FUQc3fGXUbNQZlYKFvOJHeCYJvUM0aZ2dD6356GMiJff+kiyIH3f4JbNQLz9Ku7jpWO7fB03Ys21gbO9PShmuqTBTEoLHft7zdgrU9MFaoXBKMivxaAoJcAMb1tbmgDUjFYOilVf86uxKuy5Wy+0mh0qh1lnO86Epdg+gIPe4QCZV7Amk2M1DjQijW9vEijPfpRO8u1Z/rXwg6Ta5jGb+HVlPJxt5HT9f3k2fyWXAnzX3hpfh2xrp2TzVdj0igPDY2Pe96mA== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=dpdk.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kgc9p4Ci6CMf+bnJk46JhZtBUZMLIbF2DQ8SMj/2R3k=; b=ZC8lTC1WXpIrL9gowzqGRBB15SN16ZVv2Mue5MEHuETNdi6BlsMm5PJt/f0MqwsWAkPYrFK+/u2qiwwFGAE9CCSE3v0Zga7WS7u8++mWhwswEY42gsLaZYx9DbX6YdW7RjnySeSvYkEg8XVRlL1VHlyI6Gf0lU0dICOIeBHpx1E= Received: from DB6PR07CA0012.eurprd07.prod.outlook.com (2603:10a6:6:2d::22) by DB8PR08MB4091.eurprd08.prod.outlook.com (2603:10a6:10:a2::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5293.16; Wed, 1 Jun 2022 00:05:40 +0000 Received: from DBAEUR03FT010.eop-EUR03.prod.protection.outlook.com (2603:10a6:6:2d:cafe::76) by DB6PR07CA0012.outlook.office365.com (2603:10a6:6:2d::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.12 via Frontend Transport; Wed, 1 Jun 2022 00:05:39 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DBAEUR03FT010.mail.protection.outlook.com (100.127.142.78) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.12 via Frontend Transport; Wed, 1 Jun 2022 00:05:39 +0000 Received: ("Tessian outbound d3318d0cda7b:v120"); Wed, 01 Jun 2022 00:05:39 +0000 X-CR-MTA-TID: 64aa7808 Received: from a3eb06e55fab.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 45CE5B6D-D0C2-4755-9846-FB465BA651DB.1; Wed, 01 Jun 2022 00:05:33 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id a3eb06e55fab.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 01 Jun 2022 00:05:33 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OTk5K/R+xS8WgYiKOcESZLsXNHtbIm6gsxAUqio2rSGZa6Z4w8VvWPkC6zYDB/33+iSnnekVU118zTlRlAPfwqQEPJA6Xnn5fMz+tbLjlldVeLK+l+F4KE3kRcT79F/5wOPxmXFY0MLyX+A1sX0hgOaAZoR2nP56rAov4+Ua74NpPdOoX7NRANr7lKLeSAUkpvf1SCKtUSbjbsVZEYuf7qIG1ZyVlBZXY07/5bIagtXMfCGPhnYXftRcXWMVXQHRYwNrQPxhqAZxQmycO3oE8pXQ8xQiWB54FLG6/ipcudsW/cq6V04nQd76h8I0Z2/8UWObqBNQNHdSdlLwNej/+w== 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=kgc9p4Ci6CMf+bnJk46JhZtBUZMLIbF2DQ8SMj/2R3k=; b=CxQv5USa7lwSUWA8X85aOz6YSflyz1XN9esiFZwvZn3FJ0Tfv7TGkQCU7NzNc/0+iwo0Kw5zDe8DXYYBHuDVtmckgIVMv7ySMVv4FHDDr0c5a1o6PGfRh5gkRQIqUDf+W/NTMYVbmHy5sQYaLfnyFn/ZQ04SqILvQTJzRWMokUcCEeK2yKmAXCRZWPNR5jK2wJ3q4xaPUttuKvcB48VSOggOyz7m5nrVSo5m4JS46vvM9kS63uqVRVuK9TmpVlxAoZ1/ysbay/zWb2hFDMLKT5zfuA3iboTB9icpy+wD3GlHlQD4wUg0lpy05vOH6HNntOXuf5VrwmLU1CO37EpmDw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kgc9p4Ci6CMf+bnJk46JhZtBUZMLIbF2DQ8SMj/2R3k=; b=ZC8lTC1WXpIrL9gowzqGRBB15SN16ZVv2Mue5MEHuETNdi6BlsMm5PJt/f0MqwsWAkPYrFK+/u2qiwwFGAE9CCSE3v0Zga7WS7u8++mWhwswEY42gsLaZYx9DbX6YdW7RjnySeSvYkEg8XVRlL1VHlyI6Gf0lU0dICOIeBHpx1E= Received: from AS8PR08MB7837.eurprd08.prod.outlook.com (2603:10a6:20b:528::11) by VI1PR08MB3631.eurprd08.prod.outlook.com (2603:10a6:803:85::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5293.13; Wed, 1 Jun 2022 00:05:30 +0000 Received: from AS8PR08MB7837.eurprd08.prod.outlook.com ([fe80::4c65:7221:bc8c:ccb]) by AS8PR08MB7837.eurprd08.prod.outlook.com ([fe80::4c65:7221:bc8c:ccb%7]) with mapi id 15.20.5293.019; Wed, 1 Jun 2022 00:05:30 +0000 From: Kathleen Capella To: Don Wallwork , "dev@dpdk.org" CC: "stephen@networkplumber.org" , "fengchengwen@huawei.com" , "mb@smartsharesystems.com" , "anatoly.burakov@intel.com" , "dmitry.kozliuk@gmail.com" , "bruce.richardson@intel.com" , Honnappa Nagarahalli , nd , "haiyue.wang@intel.com" Subject: RE: [PATCH v6] eal: allow worker lcore stacks to be allocated from hugepage memory Thread-Topic: [PATCH v6] eal: allow worker lcore stacks to be allocated from hugepage memory Thread-Index: AQHYb6e/GEEBqzjfp0Cy2xOttByETa05tmPQ Date: Wed, 1 Jun 2022 00:05:30 +0000 Message-ID: References: <20220502141058.12707-1-donw@xsightlabs.com> <20220524195138.4963-1-donw@xsightlabs.com> In-Reply-To: <20220524195138.4963-1-donw@xsightlabs.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 31F76FF87D964A4090B017E75AE51777.0 x-checkrecipientchecked: true Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-MS-Office365-Filtering-Correlation-Id: cfcab51c-ac84-44cd-c215-08da4362763c x-ms-traffictypediagnostic: VI1PR08MB3631:EE_|DBAEUR03FT010:EE_|DB8PR08MB4091:EE_ X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: y/R34173xHg+5evAG2/YgwoayR22KFAGp4ESRgOUs5TE4LumZf0x82+rcmczc9MLGqrMwuqsYsP+FRetfbOYomk2+5diklY2Mnsof/DhDhomGPmx+NT7H2jRMpA+Xp06LOMb511erluj3cVnVx/nUiD604+p4Qs8kIqrr9UGuhHr2Z0Y4vDikUkGhwvRRi3UBcYlwingf7DVlPq5Yb5LkOZbIu9n9cse1nkmSkFCKaZ1hwq/z23Gsg5+izB1NrwzJR9tKYuhP2O/mqVqj4RB8jlJrjeUi3X5pgGL/NvR8CUQJQ9UfKxzJAKShEC6cwW+dpEHfvwYmReAqn7TLBdN+e6uQQ58b5B1206LtggG5xSX35laMox39kpOpF/JDzf/n75dW4E+AXk3GdBGauDTCGwf27nPHAEV+CLtPAjgngeftKYraJ209XClCYuynrV+YIWpl3zgsU6jIGOHlooqAftC+eDnBMK5Wl3LCsiVbKfYGKi89UjGz4v++DwETBro3/j6clcCP3AqXEtLrCsmzgcoYhVzABxjk4IljLzZTt9SrPqn3FmuTjsYwV4KO0ihY89uVXNGx0J+S6krGgLnO6otcNeVtjKqPMnt4eEEq+jE16CeWNSL2bt4vhvwDPhHo0aVwe1+7Ztfw5EhoVeNXgq9Er3HZLEATuDo+1E1DtFhbxPWmP8s+YtxqkkrkxnwpsL48QxIncVdGooaGC7lZw== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB7837.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(110136005)(54906003)(33656002)(316002)(6506007)(9686003)(8676002)(76116006)(38100700002)(71200400001)(66476007)(53546011)(26005)(66946007)(64756008)(66556008)(66446008)(2906002)(4326008)(83380400001)(186003)(7696005)(38070700005)(122000001)(5660300002)(52536014)(55016003)(508600001)(8936002)(66574015)(30864003)(86362001); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB3631 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DBAEUR03FT010.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 2bc3df1b-e4dd-4a28-b8b1-08da436270d5 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0OcmWskRiAv5dG0DP1Q0+UVModrdF2nvkOUDP6ac4FVmGF9Ql0RVbJoA8Gk56lsoKiXQJ6c8tjUjn3iTF5xcDj069z5PvezuhvgLtsOGpRlWhnvaGBa3pz68L/e/vW6qN435qQ2G3eaC+MDi3ez2xGGApYSiGvE7icv5sjUpWKYta88Nhudb/bwxz7Zn+ViMZ2/giq2vNve2fnJm7kgp3t/kpzxq1UridX2Mpigvc1JFxxUuo6iNk/Huf11JacSQkyfyy3WnvrQJeOPViiXDaUJw3smZ6bXLSV7uHF3pYpsqwcvOwNZXgOz4ol0Us+3ROym66NcGehJkSkYuKdvuT3ZkDi3pUii5zZ5WlZQdtm0bWytgqwYA5IsR6PcmI3dSrfh6TnoZQ7O+do5MmycqVbzv6zaD2Rd+h+4Xu8J2ihYMacTGT2SXkwvUVcgq1qHtp2CEkycmK1Cl1Sdpbn+FKah25Fc6HDu7+861KDZjTbLnXyLQLx8eMZq08Qm/IFM2AmIx7UcQiGW1aKccDr0RoHHgq23eqxt1NJMsGda2z39Alc868qyVtSD9KBgIRRR63d943majRC1L+betI0QeDFnDQvhZvxxY8newqmWlKrGwWFVZ1uXdKWXbVJkb6ed/QQFAIt8npsq9QH3X8/xliPO7KcLUoaHigAhtb/EhZRRrcIdiY5ZGMkCRNyPlEkS9 X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230001)(4636009)(46966006)(40470700004)(36840700001)(2906002)(508600001)(4326008)(8676002)(36860700001)(70586007)(107886003)(70206006)(83380400001)(33656002)(5660300002)(81166007)(26005)(7696005)(9686003)(86362001)(6506007)(55016003)(356005)(186003)(82310400005)(8936002)(336012)(110136005)(52536014)(40460700003)(54906003)(30864003)(66574015)(47076005)(316002)(53546011); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jun 2022 00:05:39.5895 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: cfcab51c-ac84-44cd-c215-08da4362763c X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DBAEUR03FT010.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR08MB4091 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 VGVzdGVkIG9rYXkgb24gTjFTRFAgcGxhdGZvcm0gd2l0aCB0ZXN0cG1kIChtYWMgYW5kIGlvIGZ3 ZCkgYW5kIGwzZndkLg0KDQpUZXN0ZWQtYnk6IEthdGhsZWVuIENhcGVsbGEgPGthdGhsZWVuLmNh cGVsbGFAYXJtLmNvbT4NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBE b24gV2FsbHdvcmsgPGRvbndAeHNpZ2h0bGFicy5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIE1heSAy NCwgMjAyMiAyOjUyIFBNDQo+IFRvOiBkZXZAZHBkay5vcmcNCj4gQ2M6IGRvbndAeHNpZ2h0bGFi cy5jb207IHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnOw0KPiBmZW5nY2hlbmd3ZW5AaHVhd2Vp LmNvbTsgbWJAc21hcnRzaGFyZXN5c3RlbXMuY29tOw0KPiBhbmF0b2x5LmJ1cmFrb3ZAaW50ZWwu Y29tOyBkbWl0cnkua296bGl1a0BnbWFpbC5jb207DQo+IGJydWNlLnJpY2hhcmRzb25AaW50ZWwu Y29tOyBIb25uYXBwYSBOYWdhcmFoYWxsaQ0KPiA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNv bT47IG5kIDxuZEBhcm0uY29tPjsNCj4gaGFpeXVlLndhbmdAaW50ZWwuY29tOyBLYXRobGVlbiBD YXBlbGxhIDxLYXRobGVlbi5DYXBlbGxhQGFybS5jb20+DQo+IFN1YmplY3Q6IFtQQVRDSCB2Nl0g ZWFsOiBhbGxvdyB3b3JrZXIgbGNvcmUgc3RhY2tzIHRvIGJlIGFsbG9jYXRlZCBmcm9tDQo+IGh1 Z2VwYWdlIG1lbW9yeQ0KPiANCj4gQWRkIHN1cHBvcnQgZm9yIHVzaW5nIGh1Z2VwYWdlcyBmb3Ig d29ya2VyIGxjb3JlIHN0YWNrIG1lbW9yeS4gIFRoZSBpbnRlbnQgaXMNCj4gdG8gaW1wcm92ZSBw ZXJmb3JtYW5jZSBieSByZWR1Y2luZyBzdGFjayBtZW1vcnkgcmVsYXRlZCBUTEIgbWlzc2VzIGFu ZCBhbHNvDQo+IGJ5IHVzaW5nIG1lbW9yeSBsb2NhbCB0byB0aGUgTlVNQSBub2RlIG9mIGVhY2gg bGNvcmUuDQo+IA0KPiBFQUwgb3B0aW9uICctLWh1Z2Utd29ya2VyLXN0YWNrIFtzdGFjay1zaXpl LWluLWtieXRlc10nIGlzIGFkZGVkIHRvIGFsbG93IHRoZQ0KPiBmZWF0dXJlIHRvIGJlIGVuYWJs ZWQgYXQgcnVudGltZS4gIElmIHRoZSBzaXplIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBzeXN0ZW0g cHRocmVhZA0KPiBzdGFjayBzaXplIHdpbGwgYmUgdXNlZC4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6 IERvbiBXYWxsd29yayA8ZG9ud0B4c2lnaHRsYWJzLmNvbT4NCj4gQWNrZWQtYnk6IE1vcnRlbiBC csO4cnVwIDxtYkBzbWFydHNoYXJlc3lzdGVtcy5jb20+DQo+IEFja2VkLWJ5OiBDaGVuZ3dlbiBG ZW5nIDxmZW5nY2hlbmd3ZW5AaHVhd2VpLmNvbT4NCj4gLS0tDQo+ICBkb2MvZ3VpZGVzL2xpbnV4 X2dzZy9lYWxfYXJncy5pbmNsdWRlLnJzdCAgICAgfCAgNiArKw0KPiAgLi4uL3Byb2dfZ3VpZGUv ZW52X2Fic3RyYWN0aW9uX2xheWVyLnJzdCAgICAgIHwgMjEgKysrKysrKw0KPiAgbGliL2VhbC9j b21tb24vZWFsX2NvbW1vbl9vcHRpb25zLmMgICAgICAgICAgIHwgMzUgKysrKysrKysrKysNCj4g IGxpYi9lYWwvY29tbW9uL2VhbF9pbnRlcm5hbF9jZmcuaCAgICAgICAgICAgICB8ICA0ICsrDQo+ ICBsaWIvZWFsL2NvbW1vbi9lYWxfb3B0aW9ucy5oICAgICAgICAgICAgICAgICAgfCAgMiArDQo+ ICBsaWIvZWFsL2ZyZWVic2QvZWFsLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArKw0K PiAgbGliL2VhbC9saW51eC9lYWwuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjEgKysr KysrKysrKysrKysrKysrLQ0KPiAgbGliL2VhbC93aW5kb3dzL2VhbC5jICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDYgKysNCj4gIDggZmlsZXMgY2hhbmdlZCwgMTM5IGluc2VydGlvbnMoKyks IDIgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy9saW51eF9nc2cv ZWFsX2FyZ3MuaW5jbHVkZS5yc3QNCj4gYi9kb2MvZ3VpZGVzL2xpbnV4X2dzZy9lYWxfYXJncy5p bmNsdWRlLnJzdA0KPiBpbmRleCAzNTQ5YTBjZjU2Li45Y2ZiZjdkZTg0IDEwMDY0NA0KPiAtLS0g YS9kb2MvZ3VpZGVzL2xpbnV4X2dzZy9lYWxfYXJncy5pbmNsdWRlLnJzdA0KPiArKysgYi9kb2Mv Z3VpZGVzL2xpbnV4X2dzZy9lYWxfYXJncy5pbmNsdWRlLnJzdA0KPiBAQCAtMTE2LDYgKzExNiwx MiBAQCBNZW1vcnktcmVsYXRlZCBvcHRpb25zDQo+IA0KPiAgICAgIEZvcmNlIElPVkEgbW9kZSB0 byBhIHNwZWNpZmljIHZhbHVlLg0KPiANCj4gKyogICBgYC0taHVnZS13b3JrZXItc3RhY2tbPXNp emVdYGANCj4gKw0KPiArICAgIEFsbG9jYXRlIHdvcmtlciBzdGFjayBtZW1vcnkgZnJvbSBodWdl cGFnZSBtZW1vcnkuIFN0YWNrIHNpemUgZGVmYXVsdHMNCj4gKyAgICB0byBzeXN0ZW0gcHRocmVh ZCBzdGFjayBzaXplIHVubGVzcyB0aGUgb3B0aW9uYWwgc2l6ZSAoaW4ga2J5dGVzKSBpcw0KPiAr ICAgIHNwZWNpZmllZC4NCj4gKw0KPiAgRGVidWdnaW5nIG9wdGlvbnMNCj4gIH5+fn5+fn5+fn5+ fn5+fn5+DQo+IA0KPiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy9wcm9nX2d1aWRlL2Vudl9hYnN0 cmFjdGlvbl9sYXllci5yc3QNCj4gYi9kb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvZW52X2Fic3RyYWN0 aW9uX2xheWVyLnJzdA0KPiBpbmRleCA1ZjA3NDhmYmExLi5lNzQ1MTZmMGNmIDEwMDY0NA0KPiAt LS0gYS9kb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvZW52X2Fic3RyYWN0aW9uX2xheWVyLnJzdA0KPiAr KysgYi9kb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvZW52X2Fic3RyYWN0aW9uX2xheWVyLnJzdA0KPiBA QCAtMzI5LDYgKzMyOSwyNyBAQCBBbm90aGVyIG9wdGlvbiBpcyB0byB1c2UgYmlnZ2VyIHBhZ2Ug c2l6ZXMuIFNpbmNlIGZld2VyDQo+IHBhZ2VzIGFyZSByZXF1aXJlZCB0byAgY292ZXIgdGhlIHNh bWUgbWVtb3J5IGFyZWEsIGZld2VyIGZpbGUgZGVzY3JpcHRvcnMgd2lsbA0KPiBiZSBzdG9yZWQg aW50ZXJuYWxseSAgYnkgRUFMLg0KPiANCj4gKy4uIF9odWdlLXdvcmtlci1zdGFjazoNCj4gKw0K PiArSHVnZXBhZ2UgV29ya2VyIFN0YWNrcw0KPiArXl5eXl5eXl5eXl5eXl5eXl5eXl5eXg0KPiAr DQo+ICtXaGVuIHRoZSBgYC0taHVnZS13b3JrZXItc3RhY2tbPXNpemVdYGAgRUFMIG9wdGlvbiBp cyBzcGVjaWZpZWQsIHdvcmtlcg0KPiArdGhyZWFkIHN0YWNrcyBhcmUgYWxsb2NhdGVkIGZyb20g aHVnZXBhZ2UgbWVtb3J5IGxvY2FsIHRvIHRoZSBOVU1BIG5vZGUNCj4gK29mIHRoZSB0aHJlYWQu IFdvcmtlciBzdGFjayBzaXplIGRlZmF1bHRzIHRvIHN5c3RlbSBwdGhyZWFkIHN0YWNrIHNpemUN Cj4gK2lmIHRoZSBvcHRpb25hbCBzaXplIHBhcmFtZXRlciBpcyBub3Qgc3BlY2lmaWVkLg0KPiAr DQo+ICsuLiB3YXJuaW5nOjoNCj4gKyAgICBTdGFja3MgYWxsb2NhdGVkIGZyb20gaHVnZXBhZ2Ug bWVtb3J5IGFyZSBub3QgcHJvdGVjdGVkIGJ5IGd1YXJkDQo+ICsgICAgcGFnZXMuIFdvcmtlciBz dGFja3MgbXVzdCBiZSBzdWZmaWNpZW50bHkgc2l6ZWQgdG8gcHJldmVudCBzdGFjaw0KPiArICAg IG92ZXJmbG93IHdoZW4gdGhpcyBvcHRpb24gaXMgdXNlZC4NCj4gKw0KPiArICAgIEFzIHdpdGgg bm9ybWFsIHRocmVhZCBzdGFja3MsIGh1Z2VwYWdlIHdvcmtlciB0aHJlYWQgc3RhY2sgc2l6ZSBp cw0KPiArICAgIGZpeGVkIGFuZCBpcyBub3QgZHluYW1pY2FsbHkgcmVzaXplZC4gVGhlcmVmb3Jl LCBhbiBhcHBsaWNhdGlvbiB0aGF0DQo+ICsgICAgaXMgZnJlZSBvZiBzdGFjayBwYWdlIGZhdWx0 cyB1bmRlciBhIGdpdmVuIGxvYWQgc2hvdWxkIGJlIHNhZmUgd2l0aA0KPiArICAgIGh1Z2VwYWdl IHdvcmtlciB0aHJlYWQgc3RhY2tzIGdpdmVuIHRoZSBzYW1lIHRocmVhZCBzdGFjayBzaXplIGFu ZA0KPiArICAgIGxvYWRpbmcgY29uZGl0aW9ucy4NCj4gKw0KPiAgU3VwcG9ydCBmb3IgRXh0ZXJu YWxseSBBbGxvY2F0ZWQgTWVtb3J5DQo+IH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fg0KPiANCj4gZGlmZiAtLWdpdCBhL2xpYi9lYWwvY29tbW9uL2VhbF9jb21tb25fb3B0 aW9ucy5jDQo+IGIvbGliL2VhbC9jb21tb24vZWFsX2NvbW1vbl9vcHRpb25zLmMNCj4gaW5kZXgg ZjI0N2E0MjQ1NS4uMDJlNTkwNTFlOCAxMDA2NDQNCj4gLS0tIGEvbGliL2VhbC9jb21tb24vZWFs X2NvbW1vbl9vcHRpb25zLmMNCj4gKysrIGIvbGliL2VhbC9jb21tb24vZWFsX2NvbW1vbl9vcHRp b25zLmMNCj4gQEAgLTEwMyw2ICsxMDMsNyBAQCBlYWxfbG9uZ19vcHRpb25zW10gPSB7DQo+ICAJ e09QVF9URUxFTUVUUlksICAgICAgICAgMCwgTlVMTCwgT1BUX1RFTEVNRVRSWV9OVU0gICAgICAg IH0sDQo+ICAJe09QVF9OT19URUxFTUVUUlksICAgICAgMCwgTlVMTCwgT1BUX05PX1RFTEVNRVRS WV9OVU0gICAgIH0sDQo+ICAJe09QVF9GT1JDRV9NQVhfU0lNRF9CSVRXSURUSCwgMSwgTlVMTCwN Cj4gT1BUX0ZPUkNFX01BWF9TSU1EX0JJVFdJRFRIX05VTX0sDQo+ICsJe09QVF9IVUdFX1dPUktF Ul9TVEFDSywgMiwgTlVMTCwNCj4gT1BUX0hVR0VfV09SS0VSX1NUQUNLX05VTSAgICAgfSwNCj4g DQo+ICAJezAsICAgICAgICAgICAgICAgICAgICAgMCwgTlVMTCwgMCAgICAgICAgICAgICAgICAg ICAgICAgIH0NCj4gIH07DQo+IEBAIC0xNjE4LDYgKzE2MTksMjYgQEAgZWFsX3BhcnNlX2h1Z2Vf dW5saW5rKGNvbnN0IGNoYXIgKmFyZywgc3RydWN0DQo+IGh1Z2VwYWdlX2ZpbGVfZGlzY2lwbGlu ZSAqb3V0KQ0KPiAgCXJldHVybiAtMTsNCj4gIH0NCj4gDQo+ICtzdGF0aWMgaW50DQo+ICtlYWxf cGFyc2VfaHVnZV93b3JrZXJfc3RhY2soY29uc3QgY2hhciAqYXJnLCBzaXplX3QNCj4gKypodWdl X3dvcmtlcl9zdGFja19zaXplKSB7DQo+ICsJc2l6ZV90IHdvcmtlcl9zdGFja19zaXplOw0KPiAr CWNoYXIgKmVuZDsNCj4gKw0KPiArCWlmIChhcmcgPT0gTlVMTCB8fCBhcmdbMF0gPT0gJ1wwJykg ew0KPiArCQkqaHVnZV93b3JrZXJfc3RhY2tfc2l6ZSA9IFdPUktFUl9TVEFDS19TSVpFX0ZST01f T1M7DQo+ICsJCXJldHVybiAwOw0KPiArCX0NCj4gKwllcnJubyA9IDA7DQo+ICsJd29ya2VyX3N0 YWNrX3NpemUgPSBzdHJ0b3VsKGFyZywgJmVuZCwgMTApOw0KPiArCWlmIChlcnJubyB8fCBlbmQg PT0gTlVMTCB8fCB3b3JrZXJfc3RhY2tfc2l6ZSA9PSAwIHx8DQo+ICsJICAgIHdvcmtlcl9zdGFj a19zaXplID49IChzaXplX3QpLTEgLyAxMDI0KQ0KPiArCQlyZXR1cm4gLTE7DQo+ICsNCj4gKwkq aHVnZV93b3JrZXJfc3RhY2tfc2l6ZSA9IHdvcmtlcl9zdGFja19zaXplICogMTAyNDsNCj4gKwly ZXR1cm4gMDsNCj4gK30NCj4gKw0KPiAgaW50DQo+ICBlYWxfcGFyc2VfY29tbW9uX29wdGlvbihp bnQgb3B0LCBjb25zdCBjaGFyICpvcHRhcmcsDQo+ICAJCQlzdHJ1Y3QgaW50ZXJuYWxfY29uZmln ICpjb25mKQ0KPiBAQCAtMTkyMSw2ICsxOTQyLDE1IEBAIGVhbF9wYXJzZV9jb21tb25fb3B0aW9u KGludCBvcHQsIGNvbnN0IGNoYXINCj4gKm9wdGFyZywNCj4gIAkJfQ0KPiAgCQlicmVhazsNCj4g DQo+ICsJY2FzZSBPUFRfSFVHRV9XT1JLRVJfU1RBQ0tfTlVNOg0KPiArCQlpZiAoZWFsX3BhcnNl X2h1Z2Vfd29ya2VyX3N0YWNrKG9wdGFyZywNCj4gKwkJCQkJCSZjb25mLQ0KPiA+aHVnZV93b3Jr ZXJfc3RhY2tfc2l6ZSkgPCAwKSB7DQo+ICsJCQlSVEVfTE9HKEVSUiwgRUFMLCAiaW52YWxpZCBw YXJhbWV0ZXIgZm9yIC0tIg0KPiArCQkJCU9QVF9IVUdFX1dPUktFUl9TVEFDSyJcbiIpOw0KPiAr CQkJcmV0dXJuIC0xOw0KPiArCQl9DQo+ICsJCWJyZWFrOw0KPiArDQo+ICAJLyogZG9uJ3Qga25v dyB3aGF0IHRvIGRvLCBsZWF2ZSB0aGlzIHRvIGNhbGxlciAqLw0KPiAgCWRlZmF1bHQ6DQo+ICAJ CXJldHVybiAxOw0KPiBAQCAtMjIzNSw1ICsyMjY1LDEwIEBAIGVhbF9jb21tb25fdXNhZ2Uodm9p ZCkNCj4gIAkgICAgICAgIiAgLS0iT1BUX05PX1BDSSIgICAgICAgICAgICBEaXNhYmxlIFBDSVxu Ig0KPiAgCSAgICAgICAiICAtLSJPUFRfTk9fSFBFVCIgICAgICAgICAgIERpc2FibGUgSFBFVFxu Ig0KPiAgCSAgICAgICAiICAtLSJPUFRfTk9fU0hDT05GIiAgICAgICAgIE5vIHNoYXJlZCBjb25m aWcgKG1tYXAnZCBmaWxlcylcbiINCj4gKwkgICAgICAgIiAgLS0iT1BUX0hVR0VfV09SS0VSX1NU QUNLIls9c2l6ZV1cbiINCj4gKwkgICAgICAgIiAgICAgICAgICAgICAgICAgICAgICBBbGxvY2F0 ZSB3b3JrZXIgdGhyZWFkIHN0YWNrcyBmcm9tXG4iDQo+ICsJICAgICAgICIgICAgICAgICAgICAg ICAgICAgICAgaHVnZXBhZ2UgbWVtb3J5LiBTaXplIGlzIGluIHVuaXRzIG9mXG4iDQo+ICsJICAg ICAgICIgICAgICAgICAgICAgICAgICAgICAga2J5dGVzIGFuZCBkZWZhdWx0cyB0byBzeXN0ZW0g dGhyZWFkXG4iDQo+ICsJICAgICAgICIgICAgICAgICAgICAgICAgICAgICAgc3RhY2sgc2l6ZSBp ZiBub3Qgc3BlY2lmaWVkLlxuIg0KPiAgCSAgICAgICAiXG4iLCBSVEVfTUFYX0xDT1JFKTsNCj4g IH0NCj4gZGlmZiAtLWdpdCBhL2xpYi9lYWwvY29tbW9uL2VhbF9pbnRlcm5hbF9jZmcuaA0KPiBi L2xpYi9lYWwvY29tbW9uL2VhbF9pbnRlcm5hbF9jZmcuaA0KPiBpbmRleCBiNzFmYWFkZDE4Li41 ZTE1NDk2N2U0IDEwMDY0NA0KPiAtLS0gYS9saWIvZWFsL2NvbW1vbi9lYWxfaW50ZXJuYWxfY2Zn LmgNCj4gKysrIGIvbGliL2VhbC9jb21tb24vZWFsX2ludGVybmFsX2NmZy5oDQo+IEBAIC00OCw2 ICs0OCw5IEBAIHN0cnVjdCBodWdlcGFnZV9maWxlX2Rpc2NpcGxpbmUgew0KPiAgCWJvb2wgdW5s aW5rX2V4aXN0aW5nOw0KPiAgfTsNCj4gDQo+ICsvKiogV29ya2VyIGh1Z2VwYWdlIHN0YWNrIHNp emUgc2hvdWxkIGRlZmF1bHQgdG8gT1MgdmFsdWUuICovICNkZWZpbmUNCj4gK1dPUktFUl9TVEFD S19TSVpFX0ZST01fT1MgKChzaXplX3QpfjApDQo+ICsNCj4gIC8qKg0KPiAgICogaW50ZXJuYWwg Y29uZmlndXJhdGlvbg0KPiAgICovDQo+IEBAIC0xMDIsNiArMTA1LDcgQEAgc3RydWN0IGludGVy bmFsX2NvbmZpZyB7DQo+ICAJdW5zaWduZWQgaW50IG5vX3RlbGVtZXRyeTsgLyoqPCB0cnVlIHRv IGRpc2FibGUgVGVsZW1ldHJ5ICovDQo+ICAJc3RydWN0IHNpbWRfYml0d2lkdGggbWF4X3NpbWRf Yml0d2lkdGg7DQo+ICAJLyoqPCBtYXggc2ltZCBiaXR3aWR0aCBwYXRoIHRvIHVzZSAqLw0KPiAr CXNpemVfdCBodWdlX3dvcmtlcl9zdGFja19zaXplOyAvKio8IHdvcmtlciB0aHJlYWQgc3RhY2sg c2l6ZSAqLw0KPiAgfTsNCj4gDQo+ICB2b2lkIGVhbF9yZXNldF9pbnRlcm5hbF9jb25maWcoc3Ry dWN0IGludGVybmFsX2NvbmZpZyAqaW50ZXJuYWxfY2ZnKTsgZGlmZiAtLWdpdA0KPiBhL2xpYi9l YWwvY29tbW9uL2VhbF9vcHRpb25zLmggYi9saWIvZWFsL2NvbW1vbi9lYWxfb3B0aW9ucy5oIGlu ZGV4DQo+IDhlNGY3MjAyYTIuLjNjYzljYjY0MTIgMTAwNjQ0DQo+IC0tLSBhL2xpYi9lYWwvY29t bW9uL2VhbF9vcHRpb25zLmgNCj4gKysrIGIvbGliL2VhbC9jb21tb24vZWFsX29wdGlvbnMuaA0K PiBAQCAtODcsNiArODcsOCBAQCBlbnVtIHsNCj4gIAlPUFRfTk9fVEVMRU1FVFJZX05VTSwNCj4g ICNkZWZpbmUgT1BUX0ZPUkNFX01BWF9TSU1EX0JJVFdJRFRIICAiZm9yY2UtbWF4LXNpbWQtYml0 d2lkdGgiDQo+ICAJT1BUX0ZPUkNFX01BWF9TSU1EX0JJVFdJRFRIX05VTSwNCj4gKyNkZWZpbmUg T1BUX0hVR0VfV09SS0VSX1NUQUNLICAiaHVnZS13b3JrZXItc3RhY2siDQo+ICsJT1BUX0hVR0Vf V09SS0VSX1NUQUNLX05VTSwNCj4gDQo+ICAJT1BUX0xPTkdfTUFYX05VTQ0KPiAgfTsNCj4gZGlm ZiAtLWdpdCBhL2xpYi9lYWwvZnJlZWJzZC9lYWwuYyBiL2xpYi9lYWwvZnJlZWJzZC9lYWwuYyBp bmRleA0KPiBhNmIyMDk2MGYyLi43MzY4OTU2NjQ5IDEwMDY0NA0KPiAtLS0gYS9saWIvZWFsL2Zy ZWVic2QvZWFsLmMNCj4gKysrIGIvbGliL2VhbC9mcmVlYnNkL2VhbC5jDQo+IEBAIC03OTUsNiAr Nzk1LDEyIEBAIHJ0ZV9lYWxfaW5pdChpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQo+ICAJCWNvbmZp Zy0+bWFpbl9sY29yZSwgKHVpbnRwdHJfdClwdGhyZWFkX3NlbGYoKSwgY3B1c2V0LA0KPiAgCQly ZXQgPT0gMCA/ICIiIDogIi4uLiIpOw0KPiANCj4gKwlpZiAoaW50ZXJuYWxfY29uZi0+aHVnZV93 b3JrZXJfc3RhY2tfc2l6ZSAhPSAwKSB7DQo+ICsJCXJ0ZV9lYWxfaW5pdF9hbGVydCgiSHVnZXBh Z2Ugd29ya2VyIHN0YWNrcyBub3Qgc3VwcG9ydGVkIik7DQo+ICsJCXJ0ZV9lcnJubyA9IEVOT1RT VVA7DQo+ICsJCXJldHVybiAtMTsNCj4gKwl9DQo+ICsNCj4gIAlSVEVfTENPUkVfRk9SRUFDSF9X T1JLRVIoaSkgew0KPiANCj4gIAkJLyoNCj4gZGlmZiAtLWdpdCBhL2xpYi9lYWwvbGludXgvZWFs LmMgYi9saWIvZWFsL2xpbnV4L2VhbC5jIGluZGV4DQo+IDFlZjI2MzQzNGEuLmQyOGEwZmRiNzgg MTAwNjQ0DQo+IC0tLSBhL2xpYi9lYWwvbGludXgvZWFsLmMNCj4gKysrIGIvbGliL2VhbC9saW51 eC9lYWwuYw0KPiBAQCAtODU3LDYgKzg1Nyw2NCBAQCBpc19pb21tdV9lbmFibGVkKHZvaWQpDQo+ ICAJcmV0dXJuIG4gPiAyOw0KPiAgfQ0KPiANCj4gK3N0YXRpYyBpbnQNCj4gK2VhbF93b3JrZXJf dGhyZWFkX2NyZWF0ZShzdHJ1Y3QgaW50ZXJuYWxfY29uZmlnICppbnRlcm5hbF9jb25mLA0KPiAr CQkJIGludCBsY29yZV9pZCkNCj4gK3sNCj4gKwlwdGhyZWFkX2F0dHJfdCBhdHRyOw0KPiArCXNp emVfdCBzdGFja19zaXplOw0KPiArCXZvaWQgKnN0YWNrX3B0cjsNCj4gKwlpbnQgcmV0Ow0KPiAr DQo+ICsJaWYgKGludGVybmFsX2NvbmYtPmh1Z2Vfd29ya2VyX3N0YWNrX3NpemUgPT0gMCkNCj4g KwkJcmV0dXJuIHB0aHJlYWRfY3JlYXRlKCZsY29yZV9jb25maWdbbGNvcmVfaWRdLnRocmVhZF9p ZCwNCj4gKwkJCQkgICAgICBOVUxMLA0KPiArCQkJCSAgICAgIGVhbF90aHJlYWRfbG9vcCwNCj4g KwkJCQkgICAgICAodm9pZCAqKSh1aW50cHRyX3QpbGNvcmVfaWQpOw0KPiArDQo+ICsJLyogQWxs b2NhdGUgTlVNQSBhd2FyZSBzdGFjayBtZW1vcnkgYW5kIHNldCBwdGhyZWFkIGF0dHJpYnV0ZXMg Ki8NCj4gKwlpZiAocHRocmVhZF9hdHRyX2luaXQoJmF0dHIpICE9IDApIHsNCj4gKwkJcnRlX2Vh bF9pbml0X2FsZXJ0KCJDYW5ub3QgaW5pdCBwdGhyZWFkIGF0dHJpYnV0ZXMiKTsNCj4gKwkJcnRl X2Vycm5vID0gRUZBVUxUOw0KPiArCQlyZXR1cm4gLTE7DQo+ICsJfQ0KPiArCWlmIChpbnRlcm5h bF9jb25mLT5odWdlX3dvcmtlcl9zdGFja19zaXplID09DQo+IFdPUktFUl9TVEFDS19TSVpFX0ZS T01fT1MpIHsNCj4gKwkJaWYgKHB0aHJlYWRfYXR0cl9nZXRzdGFja3NpemUoJmF0dHIsICZzdGFj a19zaXplKSAhPSAwKSB7DQo+ICsJCQlydGVfZXJybm8gPSBFRkFVTFQ7DQo+ICsJCQlyZXR1cm4g LTE7DQo+ICsJCX0NCj4gKwl9IGVsc2Ugew0KPiArCQlzdGFja19zaXplID0gaW50ZXJuYWxfY29u Zi0+aHVnZV93b3JrZXJfc3RhY2tfc2l6ZTsNCj4gKwl9DQo+ICsJc3RhY2tfcHRyID0gcnRlX3pt YWxsb2Nfc29ja2V0KCJsY29yZV9zdGFjayIsDQo+ICsJCQkJICAgICAgIHN0YWNrX3NpemUsDQo+ ICsJCQkJICAgICAgIFJURV9DQUNIRV9MSU5FX1NJWkUsDQo+ICsJCQkJICAgICAgIHJ0ZV9sY29y ZV90b19zb2NrZXRfaWQobGNvcmVfaWQpKTsNCj4gKw0KPiArCWlmIChzdGFja19wdHIgPT0gTlVM TCkgew0KPiArCQlydGVfZWFsX2luaXRfYWxlcnQoIkNhbm5vdCBhbGxvY2F0ZSB3b3JrZXIgbGNv cmUgc3RhY2sNCj4gbWVtb3J5Iik7DQo+ICsJCXJ0ZV9lcnJubyA9IEVOT01FTTsNCj4gKwkJcmV0 dXJuIC0xOw0KPiArCX0NCj4gKw0KPiArCWlmIChwdGhyZWFkX2F0dHJfc2V0c3RhY2soJmF0dHIs IHN0YWNrX3B0ciwgc3RhY2tfc2l6ZSkgIT0gMCkgew0KPiArCQlydGVfZWFsX2luaXRfYWxlcnQo IkNhbm5vdCBzZXQgcHRocmVhZCBzdGFjayBhdHRyaWJ1dGVzIik7DQo+ICsJCXJ0ZV9lcnJubyA9 IEVGQVVMVDsNCj4gKwkJcmV0dXJuIC0xOw0KPiArCX0NCj4gKw0KPiArCXJldCA9IHB0aHJlYWRf Y3JlYXRlKCZsY29yZV9jb25maWdbbGNvcmVfaWRdLnRocmVhZF9pZCwgJmF0dHIsDQo+ICsJCQkg ICAgIGVhbF90aHJlYWRfbG9vcCwNCj4gKwkJCSAgICAgKHZvaWQgKikodWludHB0cl90KWxjb3Jl X2lkKTsNCj4gKw0KPiArCWlmIChwdGhyZWFkX2F0dHJfZGVzdHJveSgmYXR0cikgIT0gMCkgew0K PiArCQlydGVfZWFsX2luaXRfYWxlcnQoIkNhbm5vdCBkZXN0cm95IHB0aHJlYWQgYXR0cmlidXRl cyIpOw0KPiArCQlydGVfZXJybm8gPSBFRkFVTFQ7DQo+ICsJCXJldHVybiAtMTsNCj4gKwl9DQo+ ICsJcmV0dXJuIHJldDsNCj4gK30NCj4gKw0KPiAgLyogTGF1bmNoIHRocmVhZHMsIGNhbGxlZCBh dCBhcHBsaWNhdGlvbiBpbml0KCkuICovICBpbnQgIHJ0ZV9lYWxfaW5pdChpbnQgYXJnYywgY2hh cg0KPiAqKmFyZ3YpIEBAIC0xMTQ0LDggKzEyMDIsNyBAQCBydGVfZWFsX2luaXQoaW50IGFyZ2Ms IGNoYXIgKiphcmd2KQ0KPiAgCQlsY29yZV9jb25maWdbaV0uc3RhdGUgPSBXQUlUOw0KPiANCj4g IAkJLyogY3JlYXRlIGEgdGhyZWFkIGZvciBlYWNoIGxjb3JlICovDQo+IC0JCXJldCA9IHB0aHJl YWRfY3JlYXRlKCZsY29yZV9jb25maWdbaV0udGhyZWFkX2lkLCBOVUxMLA0KPiAtCQkJCSAgICAg ZWFsX3RocmVhZF9sb29wLCAodm9pZCAqKSh1aW50cHRyX3QpaSk7DQo+ICsJCXJldCA9IGVhbF93 b3JrZXJfdGhyZWFkX2NyZWF0ZShpbnRlcm5hbF9jb25mLCBpKTsNCj4gIAkJaWYgKHJldCAhPSAw KQ0KPiAgCQkJcnRlX3BhbmljKCJDYW5ub3QgY3JlYXRlIHRocmVhZFxuIik7DQo+IA0KPiBkaWZm IC0tZ2l0IGEvbGliL2VhbC93aW5kb3dzL2VhbC5jIGIvbGliL2VhbC93aW5kb3dzL2VhbC5jIGlu ZGV4DQo+IDEyMmRlMmEzMTkuLjVjZDRhNDU4NzIgMTAwNjQ0DQo+IC0tLSBhL2xpYi9lYWwvd2lu ZG93cy9lYWwuYw0KPiArKysgYi9saWIvZWFsL3dpbmRvd3MvZWFsLmMNCj4gQEAgLTQxNiw2ICs0 MTYsMTIgQEAgcnRlX2VhbF9pbml0KGludCBhcmdjLCBjaGFyICoqYXJndikNCj4gIAkJY29uZmln LT5tYWluX2xjb3JlLCAodWludHB0cl90KXB0aHJlYWRfc2VsZigpLCBjcHVzZXQsDQo+ICAJCXJl dCA9PSAwID8gIiIgOiAiLi4uIik7DQo+IA0KPiArCWlmIChpbnRlcm5hbF9jb25mLT5odWdlX3dv cmtlcl9zdGFja19zaXplICE9IDApIHsNCj4gKwkJcnRlX2VhbF9pbml0X2FsZXJ0KCJIdWdlcGFn ZSB3b3JrZXIgc3RhY2tzIG5vdCBzdXBwb3J0ZWQiKTsNCj4gKwkJcnRlX2Vycm5vID0gRU5PVFNV UDsNCj4gKwkJcmV0dXJuIC0xOw0KPiArCX0NCj4gKw0KPiAgCVJURV9MQ09SRV9GT1JFQUNIX1dP UktFUihpKSB7DQo+IA0KPiAgCQkvKg0KPiAtLQ0KPiAyLjE3LjENCg0K